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.1.2-14 Date: Mon, 29 Jun 2026 12:23:18 GMT Message-ID: <178273579839.1.15083882899046404669.rpms-gcc-cdb0987e55f8@fedoraproject.org> List-ID: X-Git-Repo: rpms/gcc X-Git-Branch: rhel-f41-base X-Git-Rev: cdb0987e55f8c396bc5c6d520c16bc88659fcf25 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2NjCkJyYW5jaCA6 IHJoZWwtZjQxLWJhc2UKQ29tbWl0IDogY2RiMDk4N2U1NWY4YzM5NmJjNWM2ZDUyMGMxNmJjODg2 NTlmY2YyNQpBdXRob3IgOiBKYWt1YiBKZWxpbmVrIDxqYWt1YkBmZWRvcmFwcm9qZWN0Lm9yZz4K RGF0ZSAgIDogMjAwNy0wNi0yNlQxMzoxMjoxOSswMDowMApTdGF0cyAgOiArNDc5Ly01Nzg5IGlu IDIzIGZpbGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9n Y2MvYy9jZGIwOTg3ZTU1ZjhjMzk2YmM1YzZkNTIwYzE2YmM4ODY1OWZjZjI1P2JyYW5jaD1yaGVs LWY0MS1iYXNlCgpMb2c6CjQuMS4yLTE0CgotLS0KZGlmZiAtLWdpdCBhLy5jdnNpZ25vcmUgYi8u Y3ZzaWdub3JlCmluZGV4IDYyMDU0ODguLjNjYmVhNmYgMTAwNjQ0Ci0tLSBhLy5jdnNpZ25vcmUK KysrIGIvLmN2c2lnbm9yZQpAQCAtMSArMSBAQAotZ2NjLTQuMS4yLTIwMDcwNjE1LnRhci5iejIK K2djYy00LjEuMi0yMDA3MDYyNi50YXIuYnoyCgpkaWZmIC0tZ2l0IGEvZ2NjNDEtYW1kZmFtMTAu cGF0Y2ggYi9nY2M0MS1hbWRmYW0xMC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDBiNmFjMi4uMDAwMDAwMAotLS0gYS9nY2M0MS1hbWRmYW0xMC5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDM2MTkgKzAsMCBAQAotMjAwNy0wMi0xMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVA aW50ZWwuY29tPgotCi0JKiBnY2MudGFyZ2V0L2kzODYvc3NlNGEtZXh0cmFjdC5jOiBBZGQgIkxM IiB0byA2NGJpdCBjb25zdGFudHMuCi0JKiBnY2MudGFyZ2V0L2kzODYvc3NlNGEtaW5zZXJ0LmM6 IExpa2V3aXNlLgotCi0yMDA3LTAyLTA4ICBIYXJzaGEgSmFnYXNpYSAgPGhhcnNoYS5qYWdhc2lh QGFtZC5jb20+Ci0KLQkqIGNvbmZpZy9pMzg2L3htbWludHJpbi5oOiBNYWtlIGluY2x1c2lvbiBv ZiBlbW1pbnRyaW4uaAotCWNvbmRpdGlvbmFsIHRvIF9fU1NFMl9fLgotCSogY29uZmlnL2kzODYv ZW1taW50cmluLmg6IEdlbmVyYXRlICNlcnJvciBpZiBfX1NTRTJfXyBpcyBub3QKLQlkZWZpbmVk LgotCSogY29uZmlnL2kzODYvcG1taW50cmluLmg6IEdlbmVyYXRlICNlcnJvciBpZiBfX1NTRTNf XyBpcyBub3QKLQlkZWZpbmVkLgotCSogY29uZmlnL2kzODYvdG1taW50cmluLmg6IEdlbmVyYXRl ICNlcnJvciBpZiBfX1NTU0UzX18gaXMgbm90Ci0JZGVmaW5lZC4KLQotMjAwNy0wMi0wNSAgSGFy c2hhIEphZ2FzaWEgIDxoYXJzaGEuamFnYXNpYUBhbWQuY29tPgotCi0JKiBjb25maWcvaTM4Ni9h dGhsb24ubWQgKGF0aGxvbl9mbGR4Zl9rOCwgYXRobG9uX2ZsZF9rOCwKLQlhdGhsb25fZnN0eGZf azgsIGF0aGxvbl9mc3RfazgsIGF0aGxvbl9maXN0LCBhdGhsb25fZm1vdiwKLQlhdGhsb25fZmFk ZF9sb2FkLCBhdGhsb25fZmFkZF9sb2FkX2s4LCBhdGhsb25fZmFkZCwgYXRobG9uX2ZtdWwsCi0J YXRobG9uX2ZtdWxfbG9hZCwgYXRobG9uX2ZtdWxfbG9hZF9rOCwgYXRobG9uX2ZzZ24sCi0JYXRo bG9uX2ZkaXZfbG9hZCwgYXRobG9uX2ZkaXZfbG9hZF9rOCwgYXRobG9uX2ZkaXZfazgsCi0JYXRo bG9uX2Zwc3BjX2xvYWQsIGF0aGxvbl9mcHNwYywgYXRobG9uX2ZjbW92X2xvYWQsCi0JYXRobG9u X2ZjbW92X2xvYWRfazgsIGF0aGxvbl9mY21vdl9rOCwgYXRobG9uX2Zjb21pX2xvYWRfazgsCi0J YXRobG9uX2Zjb21pLCBhdGhsb25fZmNvbV9sb2FkX2s4LCBhdGhsb25fZmNvbSk6IEFkZGVkIGFt ZGZhbTEwLgotCi0JKiBjb25maWcvaTM4Ni9pMzg2Lm1kICh4ODZfc2FoZl8xLCBjbXBmcF9pX21p eGVkLCBjbXBmcF9pX3NzZSwKLQljbXBmcF9pX2kzODcsIGNtcGZwX2l1X21peGVkLCBjbXBmcF9p dV9zc2UsIGNtcGZwX2l1XzM4NywKLQlzd2Fwc2ksIHN3YXBoaV8xLCBzd2FwcWlfMSwgc3dhcGRp X3JleDY0LCBmaXhfdHJ1bmNzZmRpX3NzZSwKLQlmaXhfdHJ1bmNkZmRpX3NzZSwgZml4X3RydW5j c2ZzaV9zc2UsIGZpeF90cnVuY2Rmc2lfc3NlLAotCXg4Nl9mbGRjd18xLCBmbG9hdHNpc2YyX21p eGVkLCBmbG9hdHNpc2YyX3NzZSwgZmxvYXRkaXNmMl9taXhlZCwKLQlmbG9hdGRpc2YyX3NzZSwg ZmxvYXRzaWRmMl9taXhlZCwgZmxvYXRzaWRmMl9zc2UsCi0JZmxvYXRkaWRmMl9taXhlZCwgZmxv YXRkaWRmMl9zc2UsIG11bGRpM18xX3JleDY0LCBtdWxzaTNfMSwKLQltdWxzaTNfMV96ZXh0LCBt dWxoaTNfMSwgbXVscWkzXzEsIHVtdWxxaWhpM18xLCBtdWxxaWhpM19pbnNuLAotCXVtdWxkaXRp M19pbnNuLCB1bXVsc2lkaTNfaW5zbiwgbXVsZGl0aTNfaW5zbiwgbXVsc2lkaTNfaW5zbiwKLQl1 bXVsZGkzX2hpZ2hwYXJ0X3JleDY0LCB1bXVsc2kzX2hpZ2hwYXJ0X2luc24sCi0JdW11bHNpM19o aWdocGFydF96ZXh0LCBzbXVsZGkzX2hpZ2hwYXJ0X3JleDY0LAotCXNtdWxzaTNfaGlnaHBhcnRf aW5zbiwgc211bHNpM19oaWdocGFydF96ZXh0LCB4ODZfNjRfc2hsZCwKLQl4ODZfc2hsZF8xLCB4 ODZfNjRfc2hyZCwgc3FydHNmMl9taXhlZCwgc3FydHNmMl9zc2UsCi0Jc3FydHNmMl9pMzg3LCBz cXJ0ZGYyX21peGVkLCBzcXJ0ZGYyX3NzZSwgc3FydGRmMl9pMzg3LAotCXNxcnRleHRlbmRzZmRm Ml9pMzg3LCBzcXJ0eGYyLCBzcXJ0ZXh0ZW5kc2Z4ZjJfaTM4NywKLQlzcXJ0ZXh0ZW5kZGZ4ZjJf aTM4Nyk6IEFkZGVkIGFtZGZhbTEwX2RlY29kZS4KLQkKLQkqIGNvbmZpZy9pMzg2L2F0aGxvbi5t ZCAoYXRobG9uX2lkaXJlY3RfYW1kZmFtMTAsCi0JYXRobG9uX2l2ZWN0b3JfYW1kZmFtMTAsIGF0 aGxvbl9pZGlyZWN0X2xvYWRfYW1kZmFtMTAsCi0JYXRobG9uX2l2ZWN0b3JfbG9hZF9hbWRmYW0x MCwgYXRobG9uX2lkaXJlY3RfYm90aF9hbWRmYW0xMCwKLQlhdGhsb25faXZlY3Rvcl9ib3RoX2Ft ZGZhbTEwLCBhdGhsb25faWRpcmVjdF9zdG9yZV9hbWRmYW0xMCwKLQlhdGhsb25faXZlY3Rvcl9z dG9yZV9hbWRmYW0xMCk6IE5ldyBkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbi4KLQkoYXRobG9uX2lk aXJlY3RfbG9hZG1vdiwgYXRobG9uX2lkaXJlY3RfbW92c3RvcmUpOiBBZGRlZAotCWFtZGZhbTEw LgotCi0JKiBjb25maWcvaTM4Ni9hdGhsb24ubWQgKGF0aGxvbl9jYWxsX2FtZGZhbTEwLAotCWF0 aGxvbl9wb3BfYW1kZmFtMTAsIGF0aGxvbl9sZWFfYW1kZmFtMTApOiBOZXcKLQlkZWZpbmVfaW5z bl9yZXNlcnZhdGlvbi4KLQkoYXRobG9uX2JyYW5jaCwgYXRobG9uX3B1c2gsIGF0aGxvbl9sZWF2 ZV9rOCwgYXRobG9uX2ltdWxfazgsCi0JYXRobG9uX2ltdWxfazhfREksIGF0aGxvbl9pbXVsX21l bV9rOCwgYXRobG9uX2ltdWxfbWVtX2s4X0RJLAotCWF0aGxvbl9pZGl2LCBhdGhsb25faWRpdl9t ZW0sIGF0aGxvbl9zdHIpOiBBZGRlZCBhbWRmYW0xMC4KLQotCSogY29uZmlnL2kzODYvYXRobG9u Lm1kIChhdGhsb25fc3NlbGRfYW1kZmFtMTAsCi0JYXRobG9uX21teGxkX2FtZGZhbTEwLCBhdGhs b25fc3Nlc3RfYW1kZmFtMTAsCi0JYXRobG9uX21teHNzZXN0X3Nob3J0X2FtZGZhbTEwKTogTmV3 IGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uLgotCi0JKiBjb25maWcvaTM4Ni9hdGhsb24ubWQgKGF0 aGxvbl9zc2VpbnNfYW1kZmFtMTApOiBOZXcKLQlkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbi4KLQkq IGNvbmZpZy9pMzg2L2kzODYubWQgKHNzZWlucyk6IEFkZGVkIHNzZWlucyB0byBkZWZpbmVfYXR0 ciB0eXBlCi0JYW5kIGRlZmluZV9hdHRyIHVuaXQuCi0JKiBjb25maWcvaTM4Ni9zc2UubWQ6IFNl dCB0eXBlIGF0dHJpYnV0ZSB0byBzc2VpbnMgZm9yIGluc2VydHEKLQlhbmQgaW5zZXJ0cWkuCi0K LQkqIGNvbmZpZy9pMzg2L2F0aGxvbi5tZCAoc3NlbG9nX2xvYWRfYW1kZmFtMTAsIHNzZWxvZ19h bWRmYW0xMCwKLQlzc2VjbXB2ZWN0b3JfbG9hZF9hbWRmYW0xMCwgc3NlY21wdmVjdG9yX2FtZGZh bTEwLAotCXNzZWNvbWlfbG9hZF9hbWRmYW0xMCwgc3NlY29taV9hbWRmYW0xMCwKLQlzc2VhZGR2 ZWN0b3JfbG9hZF9hbWRmYW0xMCwgc3NlYWRkdmVjdG9yX2FtZGZhbTEwKTogTmV3Ci0JZGVmaW5l X2luc25fcmVzZXJ2YXRpb24uCi0JKHNzZWNtcF9sb2FkX2s4LCBzc2VjbXAsIHNzZWFkZF9sb2Fk X2s4LCBzZWFkZCk6IEFkZGVkIGFtZGZhbTEwLgotCi0JKiBjb25maWcvaTM4Ni9hdGhsb24ubWQg KGN2dHNzMnNkX2xvYWRfYW1kZmFtMTAsCi0JY3Z0c3Myc2RfYW1kZmFtMTAsIGN2dHBzMnBkX2xv YWRfYW1kZmFtMTAsIGN2dHBzMnBkX2FtZGZhbTEwLAotCWN2dHNpMnNkX2xvYWRfYW1kZmFtMTAs IGN2dHNpMnNzX2xvYWRfYW1kZmFtMTAsCi0JY3Z0c2kyc2RfYW1kZmFtMTAsIGN2dHNpMnNzX2Ft ZGZhbTEwLCBjdnRzZDJzc19sb2FkX2FtZGZhbTEwLAotCWN2dHNkMnNzX2FtZGZhbTEwLCBjdnRw ZDJwc19sb2FkX2FtZGZhbTEwLCBjdnRwZDJwc19hbWRmYW0xMCwKLQljdnRzWDJzaV9sb2FkX2Ft ZGZhbTEwLCBjdnRzWDJzaV9hbWRmYW0xMCk6IE5ldyAKLQlkZWZpbmVfaW5zbl9yZXNlcnZhdGlv bi4KLQotCSogY29uZmlnL2kzODYvc3NlLm1kIChjdnRzaTJzcywgY3Z0c2kyc3NxLCBjdnRzczJz aSwKLQljdnRzczJzaXEsIGN2dHRzczJzaSwgY3Z0dHNzMnNpcSwgY3Z0c2kyc2QsIGN2dHNpMnNk cSwKLQljdnRzZDJzaSwgY3Z0c2Qyc2lxLCBjdnR0c2Qyc2ksIGN2dHRzZDJzaXEsCi0JY3Z0cGQy ZHEsIGN2dHRwZDJkcSwgY3Z0c2Qyc3MsIGN2dHNzMnNkLAotCWN2dHBkMnBzLCBjdnRwczJwZCk6 IEFkZGVkIGFtZGZhbTEwX2RlY29kZSBhdHRyaWJ1dGUuCi0KLQkqIGNvbmZpZy9pMzg2L2F0aGxv bi5tZCAoYXRobG9uX3NzZWRpdnZlY3Rvcl9hbWRmYW0xMCwKLQlhdGhsb25fc3NlZGl2dmVjdG9y X2xvYWRfYW1kZmFtMTAsIGF0aGxvbl9zc2VtdWx2ZWN0b3JfYW1kZmFtMTAsCi0JYXRobG9uX3Nz ZW11bHZlY3Rvcl9sb2FkX2FtZGZhbTEwKTogTmV3IGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uLgot CShhdGhsb25fc3NlZGl2LCBhdGhsb25fc3NlZGl2X2xvYWRfazgsIGF0aGxvbl9zc2VtdWwsCi0J YXRobG9uX3NzZW11bF9sb2FkX2s4KTogQWRkZWQgYW1kZmFtMTAuCi0KLQkqIGNvbmZpZy9pMzg2 L2kzODYuaCAoVEFSR0VUX1NTRV9VTkFMSUdORURfTU9WRV9PUFRJTUFMKTogTmV3IG1hY3JvLgot CSh4ODZfc3NlX3VuYWxpZ25lZF9tb3ZlX29wdGltYWwpOiBOZXcgdmFyaWFibGUuCi0JCi0JKiBj b25maWcvaTM4Ni9pMzg2LmMgKHg4Nl9zc2VfdW5hbGlnbmVkX21vdmVfb3B0aW1hbCk6IEVuYWJs ZSBmb3IgIAotCW1fQU1ERkFNMTAuCi0JKGl4ODZfZXhwYW5kX3ZlY3Rvcl9tb3ZlX21pc2FsaWdu KTogQWRkIGNvZGUgdG8gZ2VuZXJhdGUgbW92dXBkL21vdnVwcwotCWZvciB1bmFsaWduZWQgdmVj dG9yIFNTRSBkb3VibGUvc2luZ2xlIHByZWNpc2lvbiBsb2FkcyBmb3IgQU1ERkFNMTAuCi0KLQkq IGNvbmZpZy9pMzg2L2kzODYuaCAoVEFSR0VUX0FNREZBTTEwKTogTmV3IG1hY3JvLgotCShUQVJH RVRfQ1BVX0NQUF9CVUlMVElOUyk6IEFkZCBjb2RlIGZvciBhbWRmYW0xMC4KLQlEZWZpbmUgVEFS R0VUX0NQVV9ERUZBVUxUX2FtZGZhbTEwLgotCShUQVJHRVRfQ1BVX0RFRkFVTFRfTkFNRVMpOiBB ZGQgYW1kZmFtMTAuCi0JKHByb2Nlc3Nvcl90eXBlKTogQWRkIFBST0NFU1NPUl9BTURGQU0xMC4J Ci0JCi0JKiBjb25maWcvaTM4Ni9pMzg2Lm1kOiBBZGQgYW1kZmFtMTAgYXMgYSBuZXcgY3B1IGF0 dHJpYnV0ZSB0byBtYXRjaAotCXByb2Nlc3Nvcl90eXBlIGluIGNvbmZpZy9pMzg2L2kzODYuaC4K LQlFbmFibGUgaW11bCBwZWVwaG9sZXMgZm9yIFRBUkdFVF9BTURGQU0xMC4KLQkKLQkqIGNvbmZp Zy5nY2M6IEFkZCBzdXBwb3J0IGZvciAtLXdpdGgtY3B1IG9wdGlvbiBmb3IgYW1kZmFtMTAuCi0J Ci0JKiBjb25maWcvaTM4Ni9pMzg2LmMgKGFtZGZhbTEwX2Nvc3QpOiBOZXcgdmFyaWFibGUuCi0J KG1fQU1ERkFNMTApOiBOZXcgbWFjcm8uCi0JKG1fQVRITE9OX0s4X0FNREZBTTEwKTogTmV3IG1h Y3JvLgotCSh4ODZfdXNlX2xlYXZlLCB4ODZfcHVzaF9tZW1vcnksIHg4Nl9tb3Z4LCB4ODZfdW5y b2xsX3N0cmxlbiwKLQl4ODZfY21vdmUsIHg4Nl8zZG5vd19hLCB4ODZfZGVlcF9icmFuY2gsIHg4 Nl91c2Vfc2ltb2RlX2Zpb3AsCi0JeDg2X3Byb21vdGVfUUltb2RlLCB4ODZfaW50ZWdlcl9ERm1v ZGVfbW92ZXMsCi0JeDg2X3BhcnRpYWxfcmVnX2RlcGVuZGVuY3ksIHg4Nl9tZW1vcnlfbWlzbWF0 Y2hfc3RhbGwsIAotCXg4Nl9hY2N1bXVsYXRlX291dGdvaW5nX2FyZ3MsIHg4Nl9hcmNoX2Fsd2F5 c19mYW5jeV9tYXRoXzM4NywKLQl4ODZfc3NlX3BhcnRpYWxfcmVnX2RlcGVuZGVuY3ksIHg4Nl9z c2VfdHlwZWxlc3Nfc3RvcmVzLAotCXg4Nl91c2VfZmZyZWVwLCB4ODZfdXNlX2luY2RlYywgeDg2 X2ZvdXJfanVtcF9saW1pdCwKLQl4ODZfc2NoZWR1bGUsIHg4Nl91c2VfYnQsIHg4Nl9jbXB4Y2hn MTZiLCB4ODZfcGFkX3JldHVybnMpOgotCUVuYWJsZS9kaXNhYmxlIGZvciBhbWRmYW0xMC4KLQko b3ZlcnJpZGVfb3B0aW9ucyk6IEFkZCBhbWRmYW0xMF9jb3N0IHRvIHByb2Nlc3Nvcl90YXJnZXRf dGFibGUuCi0JU2V0IHVwIFBST0NFU1NPUl9BTURGQU0xMCBmb3IgYW1kZmFtMTAgZW50cnkgaW4g Ci0JcHJvY2Vzc29yX2FsaWFzX3RhYmxlLgotCShpeDg2X2lzc3VlX3JhdGUpOiBBZGQgUFJPQ0VT U09SX0FNREZBTTEwLgotCShpeDg2X2FkanVzdF9jb3N0KTogQWRkIGNvZGUgZm9yIGFtZGZhbTEw LgotCi0JKiBjb25maWcvaTM4Ni9pMzg2Lm9wdDogQWRkIG5ldyBBZHZhbmNlZCBCaXQgTWFuaXB1 bGF0aW9uICgtbWFibSkKLQlpbnN0cnVjdGlvbiBzZXQgZmVhdHVyZSBmbGFnLiBBZGQgbmV3ICgt bXBvcGNudCkgZmxhZyBmb3IgcG9wY250IAotCWluc3RydWN0aW9uLiBBZGQgbmV3IFNTRTRBICgt bXNzZTRhKSBpbnN0cnVjdGlvbiBzZXQgZmVhdHVyZSBmbGFnLgotCSogY29uZmlnL2kzODYvaTM4 Ni5oOiBBZGQgYnVpbHRpbiBkZWZpbml0aW9uIGZvciBTU0U0QS4KLQkqIGNvbmZpZy9pMzg2L2kz ODYubWQ6IEFkZCBzdXBwb3J0IGZvciBBQk0gaW5zdHJ1Y3Rpb25zIAotCShwb3BjbnQgYW5kIGx6 Y250KS4KLQkqIGNvbmZpZy9pMzg2L3NzZS5tZDogQWRkIHN1cHBvcnQgZm9yIFNTRTRBIGluc3Ry dWN0aW9ucwotCShtb3ZudHNzLCBtb3ZudHNkLCBleHRycSwgaW5zZXJ0cSkuCi0JKiBjb25maWcv aTM4Ni9pMzg2LmM6IEFkZCBzdXBwb3J0IGZvciBBQk0gYW5kIFNTRTRBIGJ1aWx0aW5zLgotCUFk ZCAtbWFyY2g9YW1kZmFtMTAgZmxhZy4KLQkqIGNvbmZpZy9pMzg2L2FtbWludHJpbi5oOiBBZGQg c3VwcG9ydCBmb3IgU1NFNEEgaW50cmluc2ljcy4KLQkqIGRvYy9pbnZva2UudGV4aTogQWRkIGRv Y3VtZW50YXRpb24gb24gZmxhZ3MgZm9yIHNzZTRhLCBhYm0sIHBvcGNudAotCWFuZCBhbWRmYW0x MC4KLQkqIGRvYy9leHRlbmQudGV4aTogQWRkIGRvY3VtZW50YXRpb24gZm9yIFNTRTRBIGJ1aWx0 aW5zLgotCi0yMDA3LTAyLTA1ICBEd2FyYWthbmF0aCBSYWphZ29wYWwgIDxkd2FyYWsucmFqYWdv cGFsQGFtZC5jb20+Ci0KLQkqIGdjYy5kZy9pMzg2LWNwdWlkLmg6IFRlc3Qgd2hldGhlciBTU0U0 QSBpcyBzdXBwb3J0ZWQKLQlmb3IgcnVubmluZyB0ZXN0cy4KLQkqIGdjYy50YXJnZXQvaTM4Ni9z c2U0YS1leHRyYWN0LmM6IE5ldyB0ZXN0LgotCSogZ2NjLnRhcmdldC9pMzg2L3NzZTRhLWluc2Vy dC5jOiBOZXcgdGVzdC4KLQkqIGdjYy50YXJnZXQvaTM4Ni9zc2U0YS1tb250c2QuYzogTmV3IHRl c3QuCi0JKiBnY2MudGFyZ2V0L2kzODYvc3NlNGEtbW9udHNzLmM6IE5ldyB0ZXN0LgotCi0yMDA2 LTEyLTE1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+Ci0KLQkqIGdjYy5kZy9pMzg2 LWNwdWlkLmggKGJpdF9TU1NFMyk6IE5ldy4KLQotMjAwNi0xMS0zMCAgSC5KLiBMdSAgPGhvbmdq aXUubHVAaW50ZWwuY29tPgotCi0JKiBnY2MuZGcvaTM4Ni1jcHVpZC5oIChiaXRfU1NFMyk6IE5l dy4KLQkoaTM4Nl9nZXRfY3B1aWQpOiBOZXcgZnVuY3Rpb24uCi0JKGkzODZfY3B1aWRfZWN4KTog TGlrZXdpc2UuCi0JKGkzODZfY3B1aWRfZWR4KTogTGlrZXdpc2UuCi0JKGkzODZfY3B1aWQpOiBV cGRhdGVkIHRvIGNhbGwgaTM4Nl9jcHVpZF9lZHguCi0KLS0tLSBnY2MvZG9jL2V4dGVuZC50ZXhp LmpqCTIwMDctMDItMDkgMTY6MTg6MjUuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2RvYy9leHRl bmQudGV4aQkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotQEAgLTY5MzEsNiAr NjkzMSwyMyBAQCB2NHNpIF9fYnVpbHRpbl9pYTMyX3BhYnNkMTI4ICh2NHNpKQotIHY4aGkgX19i dWlsdGluX2lhMzJfcGFic3cxMjggKHY4aGkpCi0gQGVuZCBzbWFsbGV4YW1wbGUKLSAKLStUaGUg Zm9sbG93aW5nIGJ1aWx0LWluIGZ1bmN0aW9ucyBhcmUgYXZhaWxhYmxlIHdoZW4gQG9wdGlvbnst bXNzZTRhfSBpcyB1c2VkLgotKwotK0BzbWFsbGV4YW1wbGUKLSt2b2lkICAgICAgICAgICAgIF9t bV9zdHJlYW1fc2QgKGRvdWJsZSosX19tMTI4ZCk7Ci0rR2VuZXJhdGVzIHRoZSBAY29kZXttb3Zu dHNkfSBtYWNoaW5lIGluc3RydWN0aW9uLgotK3ZvaWQgICAgICAgICAgICAgX21tX3N0cmVhbV9z cyAoZmxvYXQqLF9fbTEyOCk7Ci0rR2VuZXJhdGVzIHRoZSBAY29kZXttb3ZudHNzfSBtYWNoaW5l IGluc3RydWN0aW9uLgotK19fbTEyOGkgICAgICAgICAgX21tX2V4dHJhY3Rfc2k2NCAoX19tMTI4 aSwgX19tMTI4aSk7Ci0rR2VuZXJhdGVzIHRoZSBAY29kZXtleHRycX0gbWFjaGluZSBpbnN0cnVj dGlvbiB3aXRoIG9ubHkgU1NFIHJlZ2lzdGVyIG9wZXJhbmRzLgotK19fbTEyOGkgICAgICAgICAg X21tX2V4dHJhY3RpX3NpNjQgKF9fbTEyOGksIGludCwgaW50KTsKLStHZW5lcmF0ZXMgdGhlIEBj b2Rle2V4dHJxfSBtYWNoaW5lIGluc3RydWN0aW9uIHdpdGggU1NFIHJlZ2lzdGVyIGFuZCBpbW1l ZGlhdGUgb3BlcmFuZHMuCi0rX19tMTI4aSAgICAgICAgICBfbW1faW5zZXJ0X3NpNjQgKF9fbTEy OGksIF9fbTEyOGkpOwotK0dlbmVyYXRlcyB0aGUgQGNvZGV7aW5zZXJ0cX0gbWFjaGluZSBpbnN0 cnVjdGlvbiB3aXRoIG9ubHkgU1NFIHJlZ2lzdGVyIG9wZXJhbmRzLgotK19fbTEyOGkgICAgICAg ICAgX21tX2luc2VydGlfc2k2NCAoX19tMTI4aSwgX19tMTI4aSwgaW50LCBpbnQpOwotK0dlbmVy YXRlcyB0aGUgQGNvZGV7aW5zZXJ0cX0gbWFjaGluZSBpbnN0cnVjdGlvbiB3aXRoIFNTRSByZWdp c3RlciBhbmQgaW1tZWRpYXRlIG9wZXJhbmRzLgotK0BlbmQgc21hbGxleGFtcGxlCi0rCi0gVGhl IGZvbGxvd2luZyBidWlsdC1pbiBmdW5jdGlvbnMgYXJlIGF2YWlsYWJsZSB3aGVuIEBvcHRpb257 LW0zZG5vd30gaXMgdXNlZC4KLSBBbGwgb2YgdGhlbSBnZW5lcmF0ZSB0aGUgbWFjaGluZSBpbnN0 cnVjdGlvbiB0aGF0IGlzIHBhcnQgb2YgdGhlIG5hbWUuCi0gCi0tLS0gZ2NjL2RvYy9pbnZva2Uu dGV4aS5qagkyMDA3LTAyLTA5IDE2OjE4OjI1LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9kb2Mv aW52b2tlLnRleGkJMjAwNy0wMi0wOSAyMTo1Njo0NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC01MjIs NyArNTIyLDcgQEAgT2JqZWN0aXZlLUMgYW5kIE9iamVjdGl2ZS1DKysgRGlhbGVjdHN9LgotIC1t bm8tZnAtcmV0LWluLTM4NyAgLW1zb2Z0LWZsb2F0ICAtbXN2cjMtc2hsaWIgQGdvbAotIC1tbm8t d2lkZS1tdWx0aXBseSAgLW1ydGQgIC1tYWxpZ24tZG91YmxlIEBnb2wKLSAtbXByZWZlcnJlZC1z dGFjay1ib3VuZGFyeT1AdmFye251bX0gQGdvbAotLS1tbW14ICAtbXNzZSAgLW1zc2UyIC1tc3Nl MyAtbXNzc2UzIC1tM2Rub3cgQGdvbAotKy1tbW14ICAtbXNzZSAgLW1zc2UyIC1tc3NlMyAtbXNz c2UzIC1tc3NlNGEgLW0zZG5vdyAtbXBvcGNudCAtbWFibSBAZ29sCi0gLW10aHJlYWRzICAtbW5v LWFsaWduLXN0cmluZ29wcyAgLW1pbmxpbmUtYWxsLXN0cmluZ29wcyBAZ29sCi0gLW1wdXNoLWFy Z3MgIC1tYWNjdW11bGF0ZS1vdXRnb2luZy1hcmdzICAtbTEyOGJpdC1sb25nLWRvdWJsZSBAZ29s Ci0gLW05NmJpdC1sb25nLWRvdWJsZSAgLW1yZWdwYXJtPUB2YXJ7bnVtfSAgLW1zc2VyZWdwYXJt IEBnb2wKLUBAIC05MDYyLDYgKzkwNjIsMTAgQEAgaW5zdHJ1Y3Rpb24gc2V0IHN1cHBvcnQuCi0g QGl0ZW0gazgsIG9wdGVyb24sIGF0aGxvbjY0LCBhdGhsb24tZngKLSBBTUQgSzggY29yZSBiYXNl ZCBDUFVzIHdpdGggeDg2LTY0IGluc3RydWN0aW9uIHNldCBzdXBwb3J0LiAgKFRoaXMgc3VwZXJz ZXRzCi0gTU1YLCBTU0UsIFNTRTIsIDNkTk9XISwgZW5oYW5jZWQgM2ROT1chIGFuZCA2NC1iaXQg aW5zdHJ1Y3Rpb24gc2V0IGV4dGVuc2lvbnMuKQotK0BpdGVtIGFtZGZhbTEwCi0rQU1EIEZhbWls eSAxMCBjb3JlIGJhc2VkIENQVXMgd2l0aCB4ODYtNjQgaW5zdHJ1Y3Rpb24gc2V0IHN1cHBvcnQu ICAoVGhpcwotK3N1cGVyc2V0cyBNTVgsIFNTRSwgU1NFMiwgU1NFMywgU1NFNEEsIDNkTk9XISwg ZW5oYW5jZWQgM2ROT1chLCBBQk0gYW5kIDY0LWJpdAotK2luc3RydWN0aW9uIHNldCBleHRlbnNp b25zLikKLSBAaXRlbSB3aW5jaGlwLWM2Ci0gSURUIFdpbmNoaXAgQzYgQ1BVLCBkZWFsdCBpbiBz YW1lIHdheSBhcyBpNDg2IHdpdGggYWRkaXRpb25hbCBNTVggaW5zdHJ1Y3Rpb24KLSBzZXQgc3Vw cG9ydC4KLUBAIC05MzM5LDggKzkzNDMsMTQgQEAgcHJlZmVycmVkIGFsaWdubWVudCB0byBAb3B0 aW9uey1tcHJlZmVycgotIEBpdGVteCAtbW5vLXNzZTMKLSBAaXRlbSAtbXNzc2UzCi0gQGl0ZW14 IC1tbm8tc3NzZTMKLStAaXRlbSAtbXNzZTRhCi0rQGl0ZW0gLW1uby1zc2U0YQotIEBpdGVtIC1t M2Rub3cKLSBAaXRlbXggLW1uby0zZG5vdwotK0BpdGVtIC1tcG9wY250Ci0rQGl0ZW14IC1tbm8t cG9wY250Ci0rQGl0ZW0gLW1hYm0KLStAaXRlbXggLW1uby1hYm0KLSBAb3BpbmRleCBtbW14Ci0g QG9waW5kZXggbW5vLW1teAotIEBvcGluZGV4IG1zc2UKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvaTM4Ni9zc2U0YS1pbnNlcnQuYy5qagkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAw MCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTRhLWluc2VydC5j CTIwMDctMDItMDkgMjE6MjY6MDYuMDAwMDAwMDAwICswMTAwCi1AQCAtMCwwICsxLDExMCBAQAot Ky8qIHsgZGctZG8gcnVuIHsgdGFyZ2V0IGk/ODYtKi0qIHg4Nl82NC0qLSogfSB9ICovCi0rLyog eyBkZy1vcHRpb25zICItTzIgLW1zc2U0YSIgfSAqLwotKyNpbmNsdWRlIDxhbW1pbnRyaW4uaD4K LSsjaW5jbHVkZSA8c3RkbGliLmg+Ci0rI2luY2x1ZGUgIi4uLy4uL2djYy5kZy9pMzg2LWNwdWlk LmgiCi0rCi0rc3RhdGljIHZvaWQgc3NlNGFfdGVzdCAodm9pZCk7Ci0rCi0rdHlwZWRlZiB1bmlv bgotK3sKLSsgIGxvbmcgbG9uZyBpWzJdOwotKyAgX19tMTI4aSB2ZWM7Ci0rfSBMSTsKLSsKLStp bnQKLSttYWluICgpCi0reyAgCi0rICB1bnNpZ25lZCBsb25nIGNwdV9mYWNpbGl0aWVzOwotKwot KyAgY3B1X2ZhY2lsaXRpZXMgPSBpMzg2X2V4dGVuZGVkX2NwdWlkX2VjeCAoKTsKLSsKLSsgIC8q IFJ1biBTU0U0YSB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgU1NFNGEgc3VwcG9ydC4gICovCi0rICBp ZiAoKGNwdV9mYWNpbGl0aWVzICYgYml0X1NTRTRhKSkKLSsgICAgc3NlNGFfdGVzdCAoKTsKLSsK LSsgIGV4aXQgKDApOwotK30KLSsKLStzdGF0aWMgbG9uZyBsb25nCi0rc3NlNGFfdGVzdF9pbnNl cnQgKGxvbmcgbG9uZyBpbjEsIGxvbmcgbG9uZyBpbjIpCi0rewotKyAgX19tMTI4aSB2MSx2MjsK LSsgIGxvbmcgbG9uZyBpbmRleF9sZW5ndGgsIHBhZDsKLSsgIExJIHZfb3V0OwotKyAgaW5kZXhf bGVuZ3RoID0gMHgwMDAwMDAwMDAwMDAwODEwTEw7Ci0rICBwYWQgPSAweDA7Ci0rICB2MSA9IF9t bV9zZXRfZXBpNjR4IChwYWQsIGluMSk7Ci0rICB2MiA9IF9tbV9zZXRfZXBpNjR4IChpbmRleF9s ZW5ndGgsIGluMik7IAotKyAgdl9vdXQudmVjID0gX21tX2luc2VydF9zaTY0ICh2MSwgdjIpOwot KyAgcmV0dXJuICh2X291dC5pWzBdKTsKLSt9Ci0rCi0rc3RhdGljIGxvbmcgbG9uZwotK3NzZTRh X3Rlc3RfaW5zZXJ0aSAobG9uZyBsb25nIGluMSwgbG9uZyBsb25nIGluMikKLSt7Ci0rICBfX20x MjhpIHYxLHYyOwotKyAgbG9uZyBsb25nIHBhZCA9IDB4MDsKLSsgIExJIHZfb3V0OwotKyAgdjEg PSBfbW1fc2V0X2VwaTY0eCAocGFkLCBpbjEpOwotKyAgdjIgPSBfbW1fc2V0X2VwaTY0eCAocGFk LCBpbjIpOyAKLSsgIHZfb3V0LnZlYyA9IF9tbV9pbnNlcnRpX3NpNjQgKHYxLCB2MiwgKHVuc2ln bmVkIGludCkgMHgxMCwgKHVuc2lnbmVkIGludCkgMHgwOCk7Ci0rICByZXR1cm4gKHZfb3V0Lmlb MF0pOyAgCi0rfQotKwotK3N0YXRpYyBjaGsgKGxvbmcgbG9uZyBpMSwgbG9uZyBsb25nIGkyKQot K3sKLSsgIGludCBuX2ZhaWxzID0wOwotKyAgaWYgKGkxICE9IGkyKSAKLSsgICAgbl9mYWlscyAr PTE7Ci0rICByZXR1cm4gbl9mYWlsczsKLSt9Ci0rCi0rbG9uZyBsb25nIHZhbHNfaW4xWzVdID0K LSsgIHsKLSsgICAgMHgxMjM0NTY3ODg3NjU0MzIxTEwsCi0rICAgIDB4MTQ1Njc4MjA5MzAwMjQ5 MExMLAotKyAgICAweDIzNDA5MDkxMjM5OTAzOTBMTCwKLSsgICAgMHg5NTk1OTU5NTk5NTk1OTk5 TEwsCi0rICAgIDB4OTA5OTAzODc5ODAwMDAyOUxMCi0rICB9OwotKwotK2xvbmcgbG9uZyB2YWxz X2luMls1XSA9Ci0rICB7Ci0rICAgIDB4OUFCQ0RFRjAwRkVEQ0JBOUxMLAotKyAgICAweDIzNDU2 NzA5NzI4OTY3MkFMTCwKLSsgICAgMHg0NTQ3NjQ1MzA5N0JEMzQyTEwsCi0rICAgIDB4MjM1Njkw MTJBRTU4NkZGMExMLAotKyAgICAweDQzMjU2N0FCQ0RFRjc2NURMTAotKyAgfTsKLSsKLStsb25n IGxvbmcgdmFsc19vdXRbNV0gPQotKyAgewotKyAgICAweDEyMzQ1Njc4ODdDQkE5MjFMTCwKLSsg ICAgMHgxNDU2NzgyMDkzNjcyQTkwTEwsCi0rICAgIDB4MjM0MDkwOTEyM0QzNDI5MExMLAotKyAg ICAweDk1OTU5NTk1OTk2RkYwOTlMTCwKLSsgICAgMHg5MDk5MDM4Nzk4NzY1RDI5TEwKLSsgIH07 Ci0rCi0rc3RhdGljIHZvaWQKLStzc2U0YV90ZXN0ICh2b2lkKQotK3sKLSsgIGludCBpOwotKyAg aW50IGZhaWwgPSAwOwotKyAgbG9uZyBsb25nIG91dDsKLSsKLSsgIGZvciAoaSA9IDA7IGkgPCA1 OyBpICs9IDEpCi0rICAgIHsKLSsgICAgICBvdXQgPSBzc2U0YV90ZXN0X2luc2VydCAodmFsc19p bjFbaV0sIHZhbHNfaW4yW2ldKTsKLSsgICAgICBmYWlsICs9IGNoayhvdXQsIHZhbHNfb3V0W2ld KTsKLSsKLSsgICAgICBvdXQgPSBzc2U0YV90ZXN0X2luc2VydGkgKHZhbHNfaW4xW2ldLCB2YWxz X2luMltpXSk7Ci0rICAgICAgZmFpbCArPSBjaGsob3V0LCB2YWxzX291dFtpXSk7Ci0rICAgIH0K LSsKLSsgIGlmIChmYWlsICE9IDApCi0rICAgIGFib3J0ICgpOwotKwotKyAgZXhpdCAoMCk7Ci0r fQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2L3NzZTRhLWV4dHJhY3QuYy5qagky MDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9pMzg2L3NzZTRhLWV4dHJhY3QuYwkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAw MCArMDEwMAotQEAgLTAsMCArMSwxMDAgQEAKLSsvKiB7IGRnLWRvIHJ1biB7IHRhcmdldCBpPzg2 LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8yIC1tc3NlNGEiIH0g Ki8KLSsjaW5jbHVkZSA8YW1taW50cmluLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpbmNs dWRlICIuLi8uLi9nY2MuZGcvaTM4Ni1jcHVpZC5oIgotKwotK3N0YXRpYyB2b2lkIHNzZTRhX3Rl c3QgKHZvaWQpOwotKwotK3R5cGVkZWYgdW5pb24KLSt7Ci0rICBsb25nIGxvbmcgaVsyXTsKLSsg IF9fbTEyOGkgdmVjOwotK30gTEk7Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sgIAotKyAgdW5zaWdu ZWQgbG9uZyBjcHVfZmFjaWxpdGllczsKLSsKLSsgIGNwdV9mYWNpbGl0aWVzID0gaTM4Nl9leHRl bmRlZF9jcHVpZF9lY3ggKCk7Ci0rCi0rICAvKiBSdW4gU1NFNGEgdGVzdCBvbmx5IGlmIGhvc3Qg aGFzIFNTRTRhIHN1cHBvcnQuICAqLwotKyAgaWYgKChjcHVfZmFjaWxpdGllcyAmIGJpdF9TU0U0 YSkpCi0rICAgIHNzZTRhX3Rlc3QgKCk7Ci0rCi0rICBleGl0ICgwKTsKLSt9Ci0rCi0rc3RhdGlj IGxvbmcgbG9uZyAKLStzc2U0YV90ZXN0X2V4dHJxIChsb25nIGxvbmcgaW4pCi0rewotKyAgX19t MTI4aSB2MSwgdjI7Ci0rICBsb25nIGxvbmcgaW5kZXhfbGVuZ3RoLCBwYWQ7Ci0rICBMSSB2X291 dDsKLSsgIGluZGV4X2xlbmd0aCA9IDB4MDAwMDAwMDAwMDAwMDgxMExMOyAKLSsgIHBhZCA9IDB4 MDsKLSsgIHYxID0gX21tX3NldF9lcGk2NHggKHBhZCwgaW4pOwotKyAgdjIgPSBfbW1fc2V0X2Vw aTY0eCAocGFkLCBpbmRleF9sZW5ndGgpOyAKLSsgIHZfb3V0LnZlYyA9IF9tbV9leHRyYWN0X3Np NjQgKHYxLCB2Mik7Ci0rICByZXR1cm4gKHZfb3V0LmlbMF0pOyAKLSt9Ci0rCi0rc3RhdGljIGxv bmcgbG9uZyAKLStzc2U0YV90ZXN0X2V4dHJxaSAobG9uZyBsb25nIGluKQotK3sKLSsgIF9fbTEy OGkgdjE7Ci0rICBsb25nIGxvbmcgcGFkID0weDA7Ci0rICBMSSB2X291dDsKLSsgIHYxID0gX21t X3NldF9lcGk2NHggKHBhZCwgaW4pOwotKyAgdl9vdXQudmVjID0gX21tX2V4dHJhY3RpX3NpNjQg KHYxLCAodW5zaWduZWQgaW50KSAweDEwLCh1bnNpZ25lZCBpbnQpIDB4MDgpOwotKyAgcmV0dXJu ICh2X291dC5pWzBdKTsKLSt9Ci0rCi0rc3RhdGljIGNoayAobG9uZyBsb25nIGkxLCBsb25nIGxv bmcgaTIpCi0rewotKyAgaW50IG5fZmFpbHMgPTA7Ci0rICBpZiAoaTEgIT0gaTIpIAotKyAgICBu X2ZhaWxzICs9MTsKLSsgIHJldHVybiBuX2ZhaWxzOwotK30KLSsKLStsb25nIGxvbmcgdmFsc19p bls1XSA9Ci0rICB7Ci0rICAgIDB4MTIzNDU2Nzg4NzY1NDMyMUxMLAotKyAgICAweDE0NTY3ODIw OTMwMDI0OTBMTCwKLSsgICAgMHgyMzQwOTA5MTIzOTkwMzkwTEwsCi0rICAgIDB4OTU5NTk1OTU5 OTU5NTk5OUxMLAotKyAgICAweDkwOTkwMzg3OTgwMDAwMjlMTAotKyAgfTsKLSsKLStsb25nIGxv bmcgdmFsc19vdXRbNV0gPQotKyAgewotKyAgICAweDAwMDAwMDAwMDAwMDY1NDNMTCwKLSsgICAg MHgwMDAwMDAwMDAwMDAwMDI0TEwsCi0rICAgIDB4MDAwMDAwMDAwMDAwOTkwM0xMLAotKyAgICAw eDAwMDAwMDAwMDAwMDU5NTlMTCwKLSsgICAgMHgwMDAwMDAwMDAwMDAwMDAwTEwKLSsgIH07Ci0r Ci0rc3RhdGljIHZvaWQKLStzc2U0YV90ZXN0ICh2b2lkKQotK3sKLSsgIGludCBpOwotKyAgaW50 IGZhaWwgPSAwOwotKyAgbG9uZyBsb25nIG91dDsKLSsKLSsgIGZvciAoaSA9IDA7IGkgPCA1OyBp ICs9IDEpCi0rICAgIHsKLSsgICAgICBvdXQgPSBzc2U0YV90ZXN0X2V4dHJxICh2YWxzX2luW2ld KTsKLSsgICAgICBmYWlsICs9IGNoayhvdXQsIHZhbHNfb3V0W2ldKTsKLSsKLSsgICAgICBvdXQg PSBzc2U0YV90ZXN0X2V4dHJxaSAodmFsc19pbltpXSk7Ci0rICAgICAgZmFpbCArPSBjaGsob3V0 LCB2YWxzX291dFtpXSk7Ci0rICAgIH0KLSsKLSsgIGlmIChmYWlsICE9IDApCi0rICAgIGFib3J0 ICgpOwotKwotKyAgZXhpdCAoMCk7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9p Mzg2L3NzZTRhLW1vbnRzcy5jLmpqCTIwMDctMDItMDkgMjE6MjY6MDYuMDAwMDAwMDAwICswMTAw Ci0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvc3NlNGEtbW9udHNzLmMJMjAwNy0w Mi0wOSAyMToyNjowNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNjQgQEAKLSsvKiB7IGRn LWRvIHJ1biB7IHRhcmdldCBpPzg2LSotKiB4ODZfNjQtKi0qIH0gfSAqLwotKy8qIHsgZGctb3B0 aW9ucyAiLU8yIC1tc3NlNGEiIH0gKi8KLSsjaW5jbHVkZSA8YW1taW50cmluLmg+Ci0rI2luY2x1 ZGUgPHN0ZGxpYi5oPgotKyNpbmNsdWRlICIuLi8uLi9nY2MuZGcvaTM4Ni1jcHVpZC5oIgotKwot K3N0YXRpYyB2b2lkIHNzZTRhX3Rlc3QgKHZvaWQpOwotKwotK2ludAotK21haW4gKCkKLSt7ICAK LSsgIHVuc2lnbmVkIGxvbmcgY3B1X2ZhY2lsaXRpZXM7Ci0rCi0rICBjcHVfZmFjaWxpdGllcyA9 IGkzODZfZXh0ZW5kZWRfY3B1aWRfZWN4ICgpOwotKwotKyAgLyogUnVuIFNTRTRhIHRlc3Qgb25s eSBpZiBob3N0IGhhcyBTU0U0YSBzdXBwb3J0LiAgKi8KLSsgIGlmICgoY3B1X2ZhY2lsaXRpZXMg JiBiaXRfU1NFNGEpKQotKyAgICBzc2U0YV90ZXN0ICgpOwotKwotKyAgZXhpdCAoMCk7Ci0rfQot KwotK3N0YXRpYyB2b2lkIAotK3NzZTRhX3Rlc3RfbW92bnRzcyAoZmxvYXQgKm91dCwgZmxvYXQg KmluKQotK3sKLSsgIF9fbTEyOCBpbl92NHNmID0gX21tX2xvYWRfc3MgKGluKTsKLSsgIF9tbV9z dHJlYW1fc3MgKG91dCwgaW5fdjRzZik7Ci0rfQotKwotK3N0YXRpYyBpbnQgCi0rY2hrX3NzIChm bG9hdCAqdjEsIGZsb2F0ICp2MikKLSt7Ci0rICBpbnQgbl9mYWlscyA9IDA7Ci0rICBpZiAodjFb MF0gIT0gdjJbMF0pCi0rICAgIG5fZmFpbHMgKz0gMTsKLSsgIHJldHVybiBuX2ZhaWxzOwotK30K LSsKLStmbG9hdCB2YWxzWzEwXSA9Ci0rICB7Ci0rICAgIDEwMC4wLCAgMjAwLjAsIDMwMC4wLCA0 MDAuMCwgNS4wLCAKLSsgICAgLTEuMCwgLjM0NSwgLTIxLjUsIDkuMzIsICA4LjQxCi0rICB9Owot KwotK3N0YXRpYyB2b2lkCi0rc3NlNGFfdGVzdCAodm9pZCkKLSt7Ci0rICBpbnQgaTsKLSsgIGlu dCBmYWlsID0gMDsKLSsgIGZsb2F0ICpvdXQ7Ci0rCi0rICBvdXQgPSAoZmxvYXQgKikgbWFsbG9j IChzaXplb2YgKGZsb2F0KSk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgMTA7IGkgKz0gMSkKLSsgICAg ewotKyAgICAgIHNzZTRhX3Rlc3RfbW92bnRzcyAob3V0LCAmdmFsc1tpXSk7Ci0rICAgICAgCi0r ICAgICAgZmFpbCArPSBjaGtfc3MgKG91dCwgJnZhbHNbaV0pOwotKyAgICB9Ci0rCi0rICBpZiAo ZmFpbCAhPSAwKQotKyAgICBhYm9ydCAoKTsKLSsKLSsgIGV4aXQgKDApOwotK30KLS0tLSBnY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9zc2U0YS1tb250c2QuYy5qagkyMDA3LTAyLTA5IDIx OjI2OjA2LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9pMzg2 L3NzZTRhLW1vbnRzZC5jCTIwMDctMDItMDkgMjE6MjY6MDYuMDAwMDAwMDAwICswMTAwCi1AQCAt MCwwICsxLDY0IEBACi0rLyogeyBkZy1kbyBydW4geyB0YXJnZXQgaT84Ni0qLSogeDg2XzY0LSot KiB9IH0gKi8KLSsvKiB7IGRnLW9wdGlvbnMgIi1PMiAtbXNzZTRhIiB9ICovCi0rI2luY2x1ZGUg PGFtbWludHJpbi5oPgotKyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaW5jbHVkZSAiLi4vLi4vZ2Nj LmRnL2kzODYtY3B1aWQuaCIKLSsKLStzdGF0aWMgdm9pZCBzc2U0YV90ZXN0ICh2b2lkKTsKLSsK LStpbnQKLSttYWluICgpCi0reyAgCi0rICB1bnNpZ25lZCBsb25nIGNwdV9mYWNpbGl0aWVzOwot KwotKyAgY3B1X2ZhY2lsaXRpZXMgPSBpMzg2X2V4dGVuZGVkX2NwdWlkX2VjeCAoKTsKLSsKLSsg IC8qIFJ1biBTU0U0YSB0ZXN0IG9ubHkgaWYgaG9zdCBoYXMgU1NFNGEgc3VwcG9ydC4gICovCi0r ICBpZiAoKGNwdV9mYWNpbGl0aWVzICYgYml0X1NTRTRhKSkKLSsgICAgc3NlNGFfdGVzdCAoKTsK LSsKLSsgIGV4aXQgKDApOwotK30KLSsgIAotK3N0YXRpYyB2b2lkIAotK3NzZTRhX3Rlc3RfbW92 bnRzZCAoZG91YmxlICpvdXQsIGRvdWJsZSAqaW4pCi0rewotKyAgX19tMTI4ZCBpbl92MmRmID0g X21tX2xvYWRfc2QgKGluKTsKLSsgIF9tbV9zdHJlYW1fc2QgKG91dCwgaW5fdjJkZik7Ci0rfQot KwotK3N0YXRpYyBpbnQgCi0rY2hrX3NkIChkb3VibGUgKnYxLCBkb3VibGUgKnYyKQotK3sKLSsg IGludCBuX2ZhaWxzID0gMDsKLSsgIGlmICh2MVswXSAhPSB2MlswXSkKLSsgICAgbl9mYWlscyAr PSAxOwotKyAgcmV0dXJuIG5fZmFpbHM7Ci0rfQotKwotK2RvdWJsZSB2YWxzWzEwXSA9Ci0rICB7 Ci0rICAgIDEwMC4wLCAgMjAwLjAsIDMwMC4wLCA0MDAuMCwgNS4wLCAKLSsgICAgLTEuMCwgLjM0 NSwgLTIxLjUsIDkuMzIsICA4LjQxCi0rICB9OwotKwotK3N0YXRpYyB2b2lkCi0rc3NlNGFfdGVz dCAodm9pZCkKLSt7Ci0rICBpbnQgaTsKLSsgIGludCBmYWlsID0gMDsKLSsgIGRvdWJsZSAqb3V0 OwotKwotKyAgb3V0ID0gKGRvdWJsZSAqKSBtYWxsb2MgKHNpemVvZiAoZG91YmxlKSk7Ci0rICBm b3IgKGkgPSAwOyBpIDwgMTA7IGkgKz0gMSkKLSsgICAgewotKyAgICAgIHNzZTRhX3Rlc3RfbW92 bnRzZCAob3V0LCAmdmFsc1tpXSk7Ci0rICAgICAgCi0rICAgICAgZmFpbCArPSBjaGtfc2QgKG91 dCwgJnZhbHNbaV0pOwotKyAgICB9Ci0rCi0rICBpZiAoZmFpbCAhPSAwKQotKyAgICBhYm9ydCAo KTsKLSsKLSsgIGV4aXQgKDApOwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9pMzg2LWNw dWlkLmguamoJMjAwNi0xMC0wNSAwMDoyNjo1My4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVz dHN1aXRlL2djYy5kZy9pMzg2LWNwdWlkLmgJMjAwNy0wMi0wNyAxMzowNzowOC4wMDAwMDAwMDAg KzAxMDAKLUBAIC0yLDIzICsyLDMyIEBACi0gICAgVXNlZCBieSAyMDAyMDUyMy0yLmMgYW5kIGkz ODYtc3NlLTYuYywgYW5kIHBvc3NpYmx5IG90aGVycy4gICovCi0gLyogUGxhZ2FyaXplZCBmcm9t IDIwMDIwNTIzLTIuYy4gICovCi0gCi0rLyogJWVjeCAqLwotKyNkZWZpbmUgYml0X1NTRTMgKDEg PDwgMCkKLSsjZGVmaW5lIGJpdF9TU1NFMyAoMSA8PCA5KQotKwotKy8qICVlZHggKi8KLSAjZGVm aW5lIGJpdF9DTU9WICgxIDw8IDE1KQotICNkZWZpbmUgYml0X01NWCAoMSA8PCAyMykKLSAjZGVm aW5lIGJpdF9TU0UgKDEgPDwgMjUpCi0gI2RlZmluZSBiaXRfU1NFMiAoMSA8PCAyNikKLSAKLSsv KiBFeHRlbmRlZCBGZWF0dXJlcyAqLwotKy8qICVlY3ggKi8KLSsjZGVmaW5lIGJpdF9TU0U0YSAo MSA8PCA2KQotKwotICNpZm5kZWYgTk9JTkxJTkUKLSAjZGVmaW5lIE5PSU5MSU5FIF9fYXR0cmli dXRlX18gKChub2lubGluZSkpCi0gI2VuZGlmCi0gCi0tdW5zaWduZWQgaW50IGkzODZfY3B1aWQg KHZvaWQpIE5PSU5MSU5FOwotLQotLXVuc2lnbmVkIGludCBOT0lOTElORQotLWkzODZfY3B1aWQg KHZvaWQpCi0rc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKLStpMzg2X2dldF9jcHVpZCAodW5z aWduZWQgaW50ICplY3gsIHVuc2lnbmVkIGludCAqZWR4KQotIHsKLS0gIGludCBmbDEsIGZsMjsK LSsgIGludCBmbDE7Ci0gCi0gI2lmbmRlZiBfX3g4Nl82NF9fCi0rICBpbnQgZmwyOwotKwotICAg LyogU2VlIGlmIHdlIGNhbiB1c2UgY3B1aWQuICBPbiBBTUQ2NCB3ZSBhbHdheXMgY2FuLiAgKi8K LSAgIF9fYXNtX18gKCJwdXNoZmw7IHB1c2hmbDsgcG9wbCAlMDsgbW92bCAlMCwlMTsgeG9ybCAl MiwlMDsiCi0gCSAgICJwdXNobCAlMDsgcG9wZmw7IHB1c2hmbDsgcG9wbCAlMDsgcG9wZmwiCi1A QCAtNDIsMTUgKzUxLDk5IEBAIGkzODZfY3B1aWQgKHZvaWQpCi0gICBpZiAoZmwxID09IDApCi0g ICAgIHJldHVybiAoMCk7Ci0gCi0tICAvKiBJbnZva2UgQ1BVSUQoMSksIHJldHVybiAlZWR4OyBj YWxsZXIgY2FuIGV4YW1pbmUgYml0cyB0bwotKyAgLyogSW52b2tlIENQVUlEKDEpLCByZXR1cm4g JWVjeCBhbmQgJWVkeDsgY2FsbGVyIGNhbiBleGFtaW5lIGJpdHMgdG8KLSAgICAgIGRldGVybWlu ZSB3aGF0J3Mgc3VwcG9ydGVkLiAgKi8KLSAjaWZkZWYgX194ODZfNjRfXwotLSAgX19hc21fXyAo InB1c2hxICUlcmN4OyBwdXNocSAlJXJieDsgY3B1aWQ7IHBvcHEgJSVyYng7IHBvcHEgJSVyY3gi Ci0tCSAgIDogIj1kIiAoZmwyKSwgIj1hIiAoZmwxKSA6ICIxIiAoMSkgOiAiY2MiKTsKLSsgIF9f YXNtX18gKCJwdXNocSAlJXJieDsgY3B1aWQ7IHBvcHEgJSVyYngiCi0rCSAgIDogIj1jIiAoKmVj eCksICI9ZCIgKCplZHgpLCAiPWEiIChmbDEpIDogIjIiICgxKSA6ICJjYyIpOwotICNlbHNlCi0t ICBfX2FzbV9fICgicHVzaGwgJSVlY3g7IHB1c2hsICUlZWJ4OyBjcHVpZDsgcG9wbCAlJWVieDsg cG9wbCAlJWVjeCIKLS0JICAgOiAiPWQiIChmbDIpLCAiPWEiIChmbDEpIDogIjEiICgxKSA6ICJj YyIpOwotKyAgX19hc21fXyAoInB1c2hsICUlZWJ4OyBjcHVpZDsgcG9wbCAlJWVieCIKLSsJICAg OiAiPWMiICgqZWN4KSwgIj1kIiAoKmVkeCksICI9YSIgKGZsMSkgOiAiMiIgKDEpIDogImNjIik7 Ci0rI2VuZGlmCi0rCi0rICByZXR1cm4gMTsKLSt9Ci0rCi0rc3RhdGljIGlubGluZSB1bnNpZ25l ZCBpbnQKLStpMzg2X2dldF9leHRlbmRlZF9jcHVpZCAodW5zaWduZWQgaW50ICplY3gsIHVuc2ln bmVkIGludCAqZWR4KQotK3sKLSsgIGludCBmbDE7Ci0rICBpZiAoIShpMzg2X2dldF9jcHVpZCAo ZWN4LCBlZHgpKSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICAvKiBJbnZva2UgQ1BVSUQoMHg4MDAw MDAwMCkgdG8gZ2V0IHRoZSBoaWdoZXN0IHN1cHBvcnRlZCBleHRlbmRlZCBmdW5jdGlvbgotKyAg ICAgbnVtYmVyICovCi0rI2lmZGVmIF9feDg2XzY0X18KLSsgIF9fYXNtX18gKCJjcHVpZCIKLSsJ ICAgOiAiPWEiIChmbDEpIDogIjAiICgweDgwMDAwMDAwKSA6ICJlZHgiLCAiZWN4IiwgImVieCIp OwotKyNlbHNlCi0rICBfX2FzbV9fICgicHVzaGwgJSVlYng7IGNwdWlkOyBwb3BsICUlZWJ4Igot KwkgICA6ICI9YSIgKGZsMSkgOiAiMCIgKDB4ODAwMDAwMDApIDogImVkeCIsICJlY3giKTsKLSsj ZW5kaWYKLSsgIC8qIENoZWNrIGlmIGhpZ2hlc3Qgc3VwcG9ydGVkIGV4dGVuZGVkIGZ1bmN0aW9u IHVzZWQgYmVsb3cgYXJlIHN1cHBvcnRlZCAqLwotKyAgaWYgKGZsMSA8IDB4ODAwMDAwMDEpCi0r ICAgIHJldHVybiAwOyAgCi0rCi0rICAvKiBJbnZva2UgQ1BVSUQoMHg4MDAwMDAwMSksIHJldHVy biAlZWN4IGFuZCAlZWR4OyBjYWxsZXIgY2FuIGV4YW1pbmUgYml0cyB0bwotKyAgICAgZGV0ZXJt aW5lIHdoYXQncyBzdXBwb3J0ZWQuICAqLwotKyNpZmRlZiBfX3g4Nl82NF9fCi0rICBfX2FzbV9f ICgiY3B1aWQiCi0rCSAgIDogIj1jIiAoKmVjeCksICI9ZCIgKCplZHgpLCAiPWEiIChmbDEpIDog IjIiICgweDgwMDAwMDAxKSA6ICJlYngiKTsKLSsjZWxzZQotKyAgX19hc21fXyAoInB1c2hsICUl ZWJ4OyBjcHVpZDsgcG9wbCAlJWVieCIKLSsJICAgOiAiPWMiICgqZWN4KSwgIj1kIiAoKmVkeCks ICI9YSIgKGZsMSkgOiAiMiIgKDB4ODAwMDAwMDEpKTsKLSAjZW5kaWYKLSsgIHJldHVybiAxOwot K30KLSsKLSsKLSt1bnNpZ25lZCBpbnQgaTM4Nl9jcHVpZF9lY3ggKHZvaWQpIE5PSU5MSU5FOwot K3Vuc2lnbmVkIGludCBpMzg2X2NwdWlkX2VkeCAodm9pZCkgTk9JTkxJTkU7Ci0rdW5zaWduZWQg aW50IGkzODZfZXh0ZW5kZWRfY3B1aWRfZWN4ICh2b2lkKSBOT0lOTElORTsKLSt1bnNpZ25lZCBp bnQgaTM4Nl9leHRlbmRlZF9jcHVpZF9lZHggKHZvaWQpIE5PSU5MSU5FOwotKwotK3Vuc2lnbmVk IGludCBOT0lOTElORQotK2kzODZfY3B1aWRfZWN4ICh2b2lkKQotK3sKLSsgIHVuc2lnbmVkIGlu dCBlY3gsIGVkeDsKLSsgIGlmIChpMzg2X2dldF9jcHVpZCAoJmVjeCwgJmVkeCkpCi0rICAgIHJl dHVybiBlY3g7Ci0rICBlbHNlCi0rICAgIHJldHVybiAwOwotK30KLSsKLSt1bnNpZ25lZCBpbnQg Tk9JTkxJTkUKLStpMzg2X2NwdWlkX2VkeCAodm9pZCkKLSt7Ci0rICB1bnNpZ25lZCBpbnQgZWN4 LCBlZHg7Ci0rICBpZiAoaTM4Nl9nZXRfY3B1aWQgKCZlY3gsICZlZHgpKQotKyAgICByZXR1cm4g ZWR4OwotKyAgZWxzZQotKyAgICByZXR1cm4gMDsKLSt9Ci0gCi0tICByZXR1cm4gZmwyOwotK3Vu c2lnbmVkIGludCBOT0lOTElORQotK2kzODZfZXh0ZW5kZWRfY3B1aWRfZWN4ICh2b2lkKQotK3sK LSsgIHVuc2lnbmVkIGludCBlY3gsIGVkeDsKLSsgIGlmIChpMzg2X2dldF9leHRlbmRlZF9jcHVp ZCAoJmVjeCwgJmVkeCkpCi0rICAgIHJldHVybiBlY3g7Ci0rICBlbHNlCi0rICAgIHJldHVybiAw OwotK30KLSsKLSt1bnNpZ25lZCBpbnQgTk9JTkxJTkUKLStpMzg2X2V4dGVuZGVkX2NwdWlkX2Vk eCAodm9pZCkKLSt7Ci0rICB1bnNpZ25lZCBpbnQgZWN4LCBlZHg7Ci0rICBpZiAoaTM4Nl9nZXRf ZXh0ZW5kZWRfY3B1aWQgKCZlY3gsICZlZHgpKQotKyAgICByZXR1cm4gZWR4OwotKyAgZWxzZQot KyAgICByZXR1cm4gMDsKLSt9Ci0rCi0rc3RhdGljIGlubGluZSB1bnNpZ25lZCBpbnQKLStpMzg2 X2NwdWlkICh2b2lkKQotK3sKLSsgIHJldHVybiBpMzg2X2NwdWlkX2VkeCAoKTsKLSB9Ci0tLS0g Z2NjL2NvbmZpZy5nY2MuamoJMjAwNy0wMi0wOSAxNjoxODoyNS4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnY2MvY29uZmlnLmdjYwkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotQEAg LTI2NCwxMiArMjY0LDEyIEBAIHhzY2FsZS0qLSopCi0gaVszNDU2N104Ni0qLSopCi0gCWNwdV90 eXBlPWkzODYKLSAJZXh0cmFfaGVhZGVycz0ibW1pbnRyaW4uaCBtbTNkbm93LmggeG1taW50cmlu LmggZW1taW50cmluLmgKLS0JCSAgICAgICBwbW1pbnRyaW4uaCB0bW1pbnRyaW4uaCIKLSsJCSAg ICAgICBwbW1pbnRyaW4uaCB0bW1pbnRyaW4uaCBhbW1pbnRyaW4uaCIKLSAJOzsKLSB4ODZfNjQt Ki0qKQotIAljcHVfdHlwZT1pMzg2Ci0gCWV4dHJhX2hlYWRlcnM9Im1taW50cmluLmggbW0zZG5v dy5oIHhtbWludHJpbi5oIGVtbWludHJpbi5oCi0tCQkgICAgICAgcG1taW50cmluLmggdG1taW50 cmluLmgiCi0rCQkgICAgICAgcG1taW50cmluLmggdG1taW50cmluLmggYW1taW50cmluLmgiCi0g CW5lZWRfNjRiaXRfaHdpbnQ9eWVzCi0gCTs7Ci0gaWE2NC0qLSopCi1AQCAtMjM5Niw2ICsyMzk2 LDkgQEAgaWYgdGVzdCB4JHdpdGhfY3B1ID0geCA7IHRoZW4KLSAgICAgICA7OwotICAgICBpNjg2 LSotKiB8IGk3ODYtKi0qKQotICAgICAgIGNhc2UgJHt0YXJnZXRfbm9uY2Fub25pY2FsfSBpbgot KyAgICAgICAgYW1kZmFtMTAtKikKLSsgICAgICAgICAgd2l0aF9jcHU9YW1kZmFtMTAKLSsgICAg ICAgICAgOzsKLSAgICAgICAgIGs4LSp8b3B0ZXJvbi0qfGF0aGxvbl82NC0qKQotICAgICAgICAg ICB3aXRoX2NwdT1rOAotICAgICAgICAgICA7OwotQEAgLTI0MzYsNiArMjQzOSw5IEBAIGlmIHRl c3QgeCR3aXRoX2NwdSA9IHggOyB0aGVuCi0gICAgICAgOzsKLSAgICAgeDg2XzY0LSotKikKLSAg ICAgICBjYXNlICR7dGFyZ2V0X25vbmNhbm9uaWNhbH0gaW4KLSsgICAgICAgIGFtZGZhbTEwLSop Ci0rICAgICAgICAgIHdpdGhfY3B1PWFtZGZhbTEwCi0rICAgICAgICAgIDs7Ci0gICAgICAgICBr OC0qfG9wdGVyb24tKnxhdGhsb25fNjQtKikKLSAgICAgICAgICAgd2l0aF9jcHU9azgKLSAgICAg ICAgICAgOzsKLUBAIC0yNjY4LDcgKzI2NzQsNyBAQCBjYXNlICIke3RhcmdldH0iIGluCi0gCQkJ CWVzYWMKLSAJCQkJIyBPSwotIAkJCQk7OwotLQkJCSIiIHwgazggfCBvcHRlcm9uIHwgYXRobG9u NjQgfCBhdGhsb24tZnggfCBub2NvbmEgfCBjb3JlMiB8IGdlbmVyaWMpCi0rCQkJIiIgfCBhbWRm YW0xMCB8IGs4IHwgb3B0ZXJvbiB8IGF0aGxvbjY0IHwgYXRobG9uLWZ4IHwgbm9jb25hIHwgY29y ZTIgfCBnZW5lcmljKQotIAkJCQkjIE9LCi0gCQkJCTs7Ci0gCQkJKikKLS0tLSBnY2MvY29uZmln L2kzODYvaTM4Ni5oLmpqCTIwMDctMDItMDkgMTY6MTg6MjUuMDAwMDAwMDAwICswMTAwCi0rKysg Z2NjL2NvbmZpZy9pMzg2L2kzODYuaAkyMDA3LTAyLTA5IDIxOjI5OjAwLjAwMDAwMDAwMCArMDEw MAotQEAgLTE0MSw2ICsxNDEsNyBAQCBleHRlcm4gY29uc3Qgc3RydWN0IHByb2Nlc3Nvcl9jb3N0 cyAqaXg4Ci0gI2RlZmluZSBUQVJHRVRfR0VORVJJQzMyIChpeDg2X3R1bmUgPT0gUFJPQ0VTU09S X0dFTkVSSUMzMikKLSAjZGVmaW5lIFRBUkdFVF9HRU5FUklDNjQgKGl4ODZfdHVuZSA9PSBQUk9D RVNTT1JfR0VORVJJQzY0KQotICNkZWZpbmUgVEFSR0VUX0dFTkVSSUMgKFRBUkdFVF9HRU5FUklD MzIgfHwgVEFSR0VUX0dFTkVSSUM2NCkKLSsjZGVmaW5lIFRBUkdFVF9BTURGQU0xMCAoaXg4Nl90 dW5lID09IFBST0NFU1NPUl9BTURGQU0xMCkKLSAKLSAjZGVmaW5lIFRVTkVNQVNLICgxIDw8IGl4 ODZfdHVuZSkKLSBleHRlcm4gY29uc3QgaW50IHg4Nl91c2VfbGVhdmUsIHg4Nl9wdXNoX21lbW9y eSwgeDg2X3plcm9fZXh0ZW5kX3dpdGhfYW5kOwotQEAgLTE1OSw2ICsxNjAsNyBAQCBleHRlcm4g Y29uc3QgaW50IHg4Nl9hY2N1bXVsYXRlX291dGdvaW5nCi0gZXh0ZXJuIGNvbnN0IGludCB4ODZf ZXBpbG9ndWVfdXNpbmdfbW92ZSwgeDg2X2RlY29tcG9zZV9sZWE7Ci0gZXh0ZXJuIGNvbnN0IGlu dCB4ODZfYXJjaF9hbHdheXNfZmFuY3lfbWF0aF8zODcsIHg4Nl9zaGlmdDE7Ci0gZXh0ZXJuIGNv bnN0IGludCB4ODZfc3NlX3BhcnRpYWxfcmVnX2RlcGVuZGVuY3ksIHg4Nl9zc2Vfc3BsaXRfcmVn czsKLStleHRlcm4gY29uc3QgaW50IHg4Nl9zc2VfdW5hbGlnbmVkX21vdmVfb3B0aW1hbDsKLSBl eHRlcm4gY29uc3QgaW50IHg4Nl9zc2VfdHlwZWxlc3Nfc3RvcmVzLCB4ODZfc3NlX2xvYWQwX2J5 X3B4b3I7Ci0gZXh0ZXJuIGNvbnN0IGludCB4ODZfdXNlX2ZmcmVlcDsKLSBleHRlcm4gY29uc3Qg aW50IHg4Nl9pbnRlcl91bml0X21vdmVzLCB4ODZfc2NoZWR1bGU7Ci1AQCAtMjA4LDYgKzIxMCw4 IEBAIGV4dGVybiBpbnQgeDg2X3ByZWZldGNoX3NzZSwgeDg2X2NtcHhjaGcKLSAjZGVmaW5lIFRB UkdFVF9QQVJUSUFMX1JFR19ERVBFTkRFTkNZICh4ODZfcGFydGlhbF9yZWdfZGVwZW5kZW5jeSAm IFRVTkVNQVNLKQotICNkZWZpbmUgVEFSR0VUX1NTRV9QQVJUSUFMX1JFR19ERVBFTkRFTkNZIFwK LSAJCQkJICAgICAgKHg4Nl9zc2VfcGFydGlhbF9yZWdfZGVwZW5kZW5jeSAmIFRVTkVNQVNLKQot KyNkZWZpbmUgVEFSR0VUX1NTRV9VTkFMSUdORURfTU9WRV9PUFRJTUFMIFwKLSsJCQkJICAgICAg KHg4Nl9zc2VfdW5hbGlnbmVkX21vdmVfb3B0aW1hbCAmIFRVTkVNQVNLKQotICNkZWZpbmUgVEFS R0VUX1NTRV9TUExJVF9SRUdTICh4ODZfc3NlX3NwbGl0X3JlZ3MgJiBUVU5FTUFTSykKLSAjZGVm aW5lIFRBUkdFVF9TU0VfVFlQRUxFU1NfU1RPUkVTICh4ODZfc3NlX3R5cGVsZXNzX3N0b3JlcyAm IFRVTkVNQVNLKQotICNkZWZpbmUgVEFSR0VUX1NTRV9MT0FEMF9CWV9QWE9SICh4ODZfc3NlX2xv YWQwX2J5X3B4b3IgJiBUVU5FTUFTSykKLUBAIC0zNzYsNiArMzgwLDggQEAgZXh0ZXJuIGludCB4 ODZfcHJlZmV0Y2hfc3NlLCB4ODZfY21weGNoZwotIAl9CQkJCQkJCVwKLSAgICAgICBlbHNlIGlm IChUQVJHRVRfSzgpCQkJCQlcCi0gCWJ1aWx0aW5fZGVmaW5lICgiX190dW5lX2s4X18iKTsJCQkJ XAotKyAgICAgIGVsc2UgaWYgKFRBUkdFVF9BTURGQU0xMCkJCQkJCVwKLSsJYnVpbHRpbl9kZWZp bmUgKCJfX3R1bmVfYW1kZmFtMTBfXyIpOwkJCVwKLSAgICAgICBlbHNlIGlmIChUQVJHRVRfUEVO VElVTTQpCQkJCQlcCi0gCWJ1aWx0aW5fZGVmaW5lICgiX190dW5lX3BlbnRpdW00X18iKTsJCQlc Ci0gICAgICAgZWxzZSBpZiAoVEFSR0VUX05PQ09OQSkJCQkJCVwKLUBAIC00MDAsNiArNDA2LDgg QEAgZXh0ZXJuIGludCB4ODZfcHJlZmV0Y2hfc3NlLCB4ODZfY21weGNoZwotIAkgIGJ1aWx0aW5f ZGVmaW5lICgiX19TU1NFM19fIik7CQkJCVwKLSAJICBidWlsdGluX2RlZmluZSAoIl9fTU5JX18i KTsJCQkJXAotIAl9CQkJCQkJCVwKLSsgICAgICBpZiAoVEFSR0VUX1NTRTRBKQkJCQkJCVwKLSsJ YnVpbHRpbl9kZWZpbmUgKCJfX1NTRTRBX18iKTsJCSAgICAgICAgICAgICAgICBcCi0gICAgICAg aWYgKFRBUkdFVF9TU0VfTUFUSCAmJiBUQVJHRVRfU1NFKQkJCVwKLSAJYnVpbHRpbl9kZWZpbmUg KCJfX1NTRV9NQVRIX18iKTsJCQlcCi0gICAgICAgaWYgKFRBUkdFVF9TU0VfTUFUSCAmJiBUQVJH RVRfU1NFMikJCQlcCi1AQCAtNDU1LDYgKzQ2MywxMSBAQCBleHRlcm4gaW50IHg4Nl9wcmVmZXRj aF9zc2UsIHg4Nl9jbXB4Y2hnCi0gCSAgYnVpbHRpbl9kZWZpbmUgKCJfX2s4Iik7CQkJCVwKLSAJ ICBidWlsdGluX2RlZmluZSAoIl9fazhfXyIpOwkJCQlcCi0gCX0JCQkJCQkJXAotKyAgICAgIGVs c2UgaWYgKGl4ODZfYXJjaCA9PSBQUk9DRVNTT1JfQU1ERkFNMTApCQkJXAotKwl7CQkJCQkJCVwK LSsJICBidWlsdGluX2RlZmluZSAoIl9fYW1kZmFtMTAiKTsJCQlcCi0rCSAgYnVpbHRpbl9kZWZp bmUgKCJfX2FtZGZhbTEwX18iKTsJCQlcCi0rCX0JCQkJCQkJXAotICAgICAgIGVsc2UgaWYgKGl4 ODZfYXJjaCA9PSBQUk9DRVNTT1JfUEVOVElVTTQpCQkJXAotIAl7CQkJCQkJCVwKLSAJICBidWls dGluX2RlZmluZSAoIl9fcGVudGl1bTQiKTsJCQlcCi1AQCAtNDkzLDEzICs1MDYsMTQgQEAgZXh0 ZXJuIGludCB4ODZfcHJlZmV0Y2hfc3NlLCB4ODZfY21weGNoZwotICNkZWZpbmUgVEFSR0VUX0NQ VV9ERUZBVUxUX25vY29uYSAxNwotICNkZWZpbmUgVEFSR0VUX0NQVV9ERUZBVUxUX2NvcmUyIDE4 Ci0gI2RlZmluZSBUQVJHRVRfQ1BVX0RFRkFVTFRfZ2VuZXJpYyAxOQotKyNkZWZpbmUgVEFSR0VU X0NQVV9ERUZBVUxUX2FtZGZhbTEwIDIwCi0gCi0gI2RlZmluZSBUQVJHRVRfQ1BVX0RFRkFVTFRf TkFNRVMgeyJpMzg2IiwgImk0ODYiLCAicGVudGl1bSIsICJwZW50aXVtLW1teCIsXAotIAkJCQkg ICJwZW50aXVtcHJvIiwgInBlbnRpdW0yIiwgInBlbnRpdW0zIiwgXAotIAkJCQkgICJwZW50aXVt NCIsICJnZW9kZSIsICJrNiIsICJrNi0yIiwgIms2LTMiLCBcCi0gCQkJCSAgImF0aGxvbiIsICJh dGhsb24tNCIsICJrOCIsIFwKLSAJCQkJICAicGVudGl1bS1tIiwgInByZXNjb3R0IiwgIm5vY29u YSIsIFwKLS0JCQkJICAiY29yZTIiLCAiZ2VuZXJpYyJ9Ci0rCQkJCSAgImNvcmUyIiwgImdlbmVy aWMiLCAiYW1kZmFtMTAifQotIAotICNpZm5kZWYgQ0MxX1NQRUMKLSAjZGVmaW5lIENDMV9TUEVD ICIlKGNjMV9jcHUpICIKLUBAIC0yMTYyLDYgKzIxNzYsNyBAQCBlbnVtIHByb2Nlc3Nvcl90eXBl Ci0gICBQUk9DRVNTT1JfQ09SRTIsCi0gICBQUk9DRVNTT1JfR0VORVJJQzMyLAotICAgUFJPQ0VT U09SX0dFTkVSSUM2NCwKLSsgIFBST0NFU1NPUl9BTURGQU0xMCwKLSAgIFBST0NFU1NPUl9tYXgK LSB9OwotIAotLS0tIGdjYy9jb25maWcvaTM4Ni9pMzg2Lm1kLmpqCTIwMDctMDItMDkgMTY6MTg6 MjUuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYubWQJMjAwNy0wMi0x MCAxOTozMzo0My4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xNTEsNiArMTUxLDEyIEBACi0gICAgKFVO U1BFQ19QU0hVRkIJCTEyMCkKLSAgICAoVU5TUEVDX1BTSUdOCQkxMjEpCi0gICAgKFVOU1BFQ19Q QUxJR05SCQkxMjIpCi0rCi0rICAgOyBGb3IgU1NFNEEgc3VwcG9ydAotKyAgIChVTlNQRUNfRVhU UlFJICAgICAgICAgICAgICAgMTMwKQotKyAgIChVTlNQRUNfRVhUUlEgICAgICAgICAgICAgICAg MTMxKSAgIAotKyAgIChVTlNQRUNfSU5TRVJUUUkgICAgICAgICAgICAgMTMyKQotKyAgIChVTlNQ RUNfSU5TRVJUUSAgICAgICAgICAgICAgMTMzKQotICAgXSkKLSAKLSAoZGVmaW5lX2NvbnN0YW50 cwotQEAgLTE5MCw3ICsxOTYsOCBAQAotIAwKLSA7OyBQcm9jZXNzb3IgdHlwZS4gIFRoaXMgYXR0 cmlidXRlIG11c3QgZXhhY3RseSBtYXRjaCB0aGUgcHJvY2Vzc29yX3R5cGUKLSA7OyBlbnVtZXJh dGlvbiBpbiBpMzg2LmguCi0tKGRlZmluZV9hdHRyICJjcHUiICJpMzg2LGk0ODYscGVudGl1bSxw ZW50aXVtcHJvLGdlb2RlLGs2LGF0aGxvbixwZW50aXVtNCxrOCxub2NvbmEsY29yZTIsZ2VuZXJp YzMyLGdlbmVyaWM2NCIKLSsoZGVmaW5lX2F0dHIgImNwdSIgImkzODYsaTQ4NixwZW50aXVtLHBl bnRpdW1wcm8sZ2VvZGUsazYsYXRobG9uLHBlbnRpdW00LGs4LAotKyAgICAgICAgICAgICAgICAg ICAgbm9jb25hLGNvcmUyLGdlbmVyaWMzMixnZW5lcmljNjQsYW1kZmFtMTAiCi0gICAoY29uc3Qg KHN5bWJvbF9yZWYgIml4ODZfdHVuZSIpKSkKLSAKLSA7OyBBIGJhc2ljIGluc3RydWN0aW9uIHR5 cGUuICBSZWZpbmVtZW50cyBkdWUgdG8gYXJndW1lbnRzIHRvIGJlCi1AQCAtMjAxLDEwICsyMDgs MTAgQEAKLSAgICBpbmNkZWMsaXNoaWZ0LGlzaGlmdDEscm90YXRlLHJvdGF0ZTEsaW11bCxpZGl2 LAotICAgIGljbXAsdGVzdCxpYnIsc2V0Y2MsaWNtb3YsCi0gICAgcHVzaCxwb3AsY2FsbCxjYWxs dixsZWF2ZSwKLS0gICBzdHIsY2xkLAotKyAgIHN0cixiaXRtYW5pcCxjbGQsCi0gICAgZm1vdixm b3AsZnNnbixmbXVsLGZkaXYsZnBzcGMsZmNtb3YsZmNtcCxmeGNoLGZpc3RwLGZpc3R0cCxmcm5k aW50LAotICAgIHNzZWxvZyxzc2Vsb2cxLHNzZWlhZGQsc3NlaXNoZnQsc3NlaW11bCwKLS0gICBz c2Usc3NlbW92LHNzZWFkZCxzc2VtdWwsc3NlY21wLHNzZWNvbWksc3NlY3Z0LHNzZWljdnQsc3Nl ZGl2LAotKyAgIHNzZSxzc2Vtb3Ysc3NlYWRkLHNzZW11bCxzc2VjbXAsc3NlY29taSxzc2VjdnQs c3NlaWN2dCxzc2VkaXYsc3NlaW5zLAotICAgIG1teCxtbXhtb3YsbW14YWRkLG1teG11bCxtbXhj bXAsbW14Y3Z0LG1teHNoZnQiCi0gICAoY29uc3Rfc3RyaW5nICJvdGhlciIpKQotIAotQEAgLTIx OCw3ICsyMjUsNyBAQAotICAgKGNvbmQgWyhlcV9hdHRyICJ0eXBlIiAiZm1vdixmb3AsZnNnbixm bXVsLGZkaXYsZnBzcGMsZmNtb3YsZmNtcCxmeGNoLGZpc3RwLGZpc3R0cCxmcm5kaW50IikKLSAJ ICAgKGNvbnN0X3N0cmluZyAiaTM4NyIpCi0gCSAoZXFfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vs b2cxLHNzZWlhZGQsc3NlaXNoZnQsc3NlaW11bCwKLS0JCQkgIHNzZSxzc2Vtb3Ysc3NlYWRkLHNz ZW11bCxzc2VjbXAsc3NlY29taSxzc2VjdnQsc3NlaWN2dCxzc2VkaXYiKQotKwkJCSAgc3NlLHNz ZW1vdixzc2VhZGQsc3NlbXVsLHNzZWNtcCxzc2Vjb21pLHNzZWN2dCxzc2VpY3Z0LHNzZWRpdixz c2VpbnMiKQotIAkgICAoY29uc3Rfc3RyaW5nICJzc2UiKQotIAkgKGVxX2F0dHIgInR5cGUiICJt bXgsbW14bW92LG1teGFkZCxtbXhtdWwsbW14Y21wLG1teGN2dCxtbXhzaGZ0IikKLSAJICAgKGNv bnN0X3N0cmluZyAibW14IikKLUBAIC0yMjgsNyArMjM1LDggQEAKLSAKLSA7OyBUaGUgKGJvdW5k aW5nIG1heGltdW0pIGxlbmd0aCBvZiBhbiBpbnN0cnVjdGlvbiBpbW1lZGlhdGUuCi0gKGRlZmlu ZV9hdHRyICJsZW5ndGhfaW1tZWRpYXRlIiAiIgotLSAgKGNvbmQgWyhlcV9hdHRyICJ0eXBlIiAi aW5jZGVjLHNldGNjLGljbW92LHN0cixjbGQsbGVhLG90aGVyLG11bHRpLGlkaXYsbGVhdmUiKQot KyAgKGNvbmQgWyhlcV9hdHRyICJ0eXBlIiAiaW5jZGVjLHNldGNjLGljbW92LHN0cixjbGQsbGVh LG90aGVyLG11bHRpLGlkaXYsbGVhdmUsCi0rCQkJICBiaXRtYW5pcCIpCi0gCSAgIChjb25zdF9p bnQgMCkKLSAJIChlcV9hdHRyICJ1bml0IiAiaTM4Nyxzc2UsbW14IikKLSAJICAgKGNvbnN0X2lu dCAwKQotQEAgLTI4Miw3ICsyOTAsNyBAQAotIDs7IFNldCB3aGVuIDBmIG9wY29kZSBwcmVmaXgg aXMgdXNlZC4KLSAoZGVmaW5lX2F0dHIgInByZWZpeF8wZiIgIiIKLSAgIChpZl90aGVuX2Vsc2Ug Ci0tICAgIChpb3IgKGVxX2F0dHIgInR5cGUiICJpbW92eCxzZXRjYyxpY21vdiIpCi0rICAgIChp b3IgKGVxX2F0dHIgInR5cGUiICJpbW92eCxzZXRjYyxpY21vdixiaXRtYW5pcCIpCi0gCSAoZXFf YXR0ciAidW5pdCIgInNzZSxtbXgiKSkKLSAgICAgKGNvbnN0X2ludCAxKQotICAgICAoY29uc3Rf aW50IDApKSkKLUBAIC00MDcsNyArNDE1LDcgQEAKLSAJICAgKGNvbnN0X3N0cmluZyAibG9hZCIp Ci0gCSAoYW5kIChlcV9hdHRyICJ0eXBlIgotIAkJICIhYWx1MSxuZWdub3QsaXNoaWZ0MSwKLS0J CSAgIGltb3YsaW1vdngsaWNtcCx0ZXN0LAotKwkJICAgaW1vdixpbW92eCxpY21wLHRlc3QsYml0 bWFuaXAsCi0gCQkgICBmbW92LGZjbXAsZnNnbiwKLSAJCSAgIHNzZSxzc2Vtb3Ysc3NlY21wLHNz ZWNvbWksc3NlY3Z0LHNzZWljdnQsc3NlbG9nMSwKLSAJCSAgIG1teCxtbXhtb3YsbW14Y21wLG1t eGN2dCIpCi1AQCAtOTYxLDEwICs5NjksMTEgQEAKLSAgICJzYWhmIgotICAgWyhzZXRfYXR0ciAi bGVuZ3RoIiAiMSIpCi0gICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIikKLSsg ICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiU0kiKV0pCi0gCi0gOzsgUGVudGl1bSBQcm8gY2FuIGRvIHN0ZXBzIDEgdGhyb3VnaCAz IGluIG9uZSBnby4KLS0KLSs7OyBjb21pKiwgdWNvbWkqLCBmY29taSosIGZpY29taSosZnVjb21p KiAoaTM4NyBpbnN0cnVjdGlvbnMgc2V0IGNvbmRpdGlvbiBjb2RlcykgCi0gKGRlZmluZV9pbnNu ICIqY21wZnBfaV9taXhlZCIKLSAgIFsoc2V0IChyZWc6Q0NGUCBGTEFHU19SRUcpCi0gCShjb21w YXJlOkNDRlAgKG1hdGNoX29wZXJhbmQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgImYjeCx4I2YiKQot QEAgLTk3OCw3ICs5ODcsOCBAQAotICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmFuZDpT RiAxICIiICIiKQotICAgICAgICAgKGNvbnN0X3N0cmluZyAiU0YiKQotICAgICAgICAgKGNvbnN0 X3N0cmluZyAiREYiKSkpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIild KQotKyAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0rICAgKHNldF9hdHRy ICJhbWRmYW0xMF9kZWNvZGUiICJkaXJlY3QiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqY21wZnBf aV9zc2UiCi0gICBbKHNldCAocmVnOkNDRlAgRkxBR1NfUkVHKQotQEAgLTk5Myw3ICsxMDAzLDgg QEAKLSAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6U0YgMSAiIiAiIikKLSAgICAg ICAgIChjb25zdF9zdHJpbmcgIlNGIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgIkRGIikpKQot LSAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpXSkKLSsgICAoc2V0X2F0dHIg ImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2Rl IiAiZGlyZWN0IildKQotIAotIChkZWZpbmVfaW5zbiAiKmNtcGZwX2lfaTM4NyIKLSAgIFsoc2V0 IChyZWc6Q0NGUCBGTEFHU19SRUcpCi1AQCAtMTAxMiw3ICsxMDIzLDggQEAKLSAJICAgICAgKGNv bnN0X3N0cmluZyAiREYiKQotIAkgICBdCi0gCSAgIChjb25zdF9zdHJpbmcgIlhGIikpKQotLSAg IChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpXSkKLSsgICAoc2V0X2F0dHIgImF0 aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAi ZGlyZWN0IildKQotIAotIChkZWZpbmVfaW5zbiAiKmNtcGZwX2l1X21peGVkIgotICAgWyhzZXQg KHJlZzpDQ0ZQVSBGTEFHU19SRUcpCi1AQCAtMTAyNyw3ICsxMDM5LDggQEAKLSAgICAgIChpZl90 aGVuX2Vsc2UgKG1hdGNoX29wZXJhbmQ6U0YgMSAiIiAiIikKLSAgICAgICAgIChjb25zdF9zdHJp bmcgIlNGIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgIkRGIikpKQotLSAgIChzZXRfYXR0ciAi YXRobG9uX2RlY29kZSIgInZlY3RvciIpXSkKLSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUi ICJ2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZGlyZWN0IildKQot IAotIChkZWZpbmVfaW5zbiAiKmNtcGZwX2l1X3NzZSIKLSAgIFsoc2V0IChyZWc6Q0NGUFUgRkxB R1NfUkVHKQotQEAgLTEwNDIsNyArMTA1NSw4IEBACi0gICAgICAoaWZfdGhlbl9lbHNlIChtYXRj aF9vcGVyYW5kOlNGIDEgIiIgIiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJTRiIpCi0gICAg ICAgICAoY29uc3Rfc3RyaW5nICJERiIpKSkKLS0gICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUi ICJ2ZWN0b3IiKV0pCi0rICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIikKLSsg ICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpXSkKLSAKLSAoZGVmaW5lX2lu c24gIipjbXBmcF9pdV8zODciCi0gICBbKHNldCAocmVnOkNDRlBVIEZMQUdTX1JFRykKLUBAIC0x MDYxLDcgKzEwNzUsOCBAQAotIAkgICAgICAoY29uc3Rfc3RyaW5nICJERiIpCi0gCSAgIF0KLSAJ ICAgKGNvbnN0X3N0cmluZyAiWEYiKSkpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAi dmVjdG9yIildKQotKyAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0rICAg KHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkaXJlY3QiKV0pCi0gDAotIDs7IE1vdmUgaW5z dHJ1Y3Rpb25zLgotIAotQEAgLTEyNjcsNyArMTI4Miw4IEBACi0gICBbKHNldF9hdHRyICJ0eXBl IiAiaW1vdiIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKQotICAgIChzZXRfYXR0ciAicGVu dF9wYWlyIiAibnAiKQotLSAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpXSkK LSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAi YW1kZmFtMTBfZGVjb2RlIiAiZG91YmxlIildKSAgIAotIAotIChkZWZpbmVfZXhwYW5kICJtb3Zo aSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAi IikKLUBAIC0xMzg0LDggKzE0MDAsMTAgQEAKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJpbW92IikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpCi0gICAgKHNldF9hdHRyICJwZW50X3BhaXIiICJu cCIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIildKQotKyAgIChzZXRf YXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9k ZWNvZGUiICJkb3VibGUiKV0pICAgCi0gCi0rOzsgTm90IGFkZGVkIGFtZGZhbTEwX2RlY29kZSBz aW5jZSBUQVJHRVRfUEFSVElBTF9SRUdfU1RBTEwgaXMgZGlzYWJsZWQgZm9yIEFNREZBTTEwCi0g KGRlZmluZV9pbnNuICIqc3dhcGhpXzIiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiK3IiKQotIAkobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiK3IiKSkKLUBAIC0xNTU4LDggKzE1NzYsMTAgQEAKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJpbW92IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpCi0gICAgKHNldF9hdHRyICJw ZW50X3BhaXIiICJucCIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIild KQotKyAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0rICAgKHNldF9hdHRy ICJhbWRmYW0xMF9kZWNvZGUiICJ2ZWN0b3IiKV0pICAgCi0gCi0rOzsgTm90IGFkZGVkIGFtZGZh bTEwX2RlY29kZSBzaW5jZSBUQVJHRVRfUEFSVElBTF9SRUdfU1RBTEwgaXMgZGlzYWJsZWQgZm9y IEFNREZBTTEwCi0gKGRlZmluZV9pbnNuICIqc3dhcHFpXzIiCi0gICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiK3EiKQotIAkobWF0Y2hfb3BlcmFuZDpRSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiK3EiKSkKLUBAIC0yMTEzLDcgKzIxMzMsOCBAQAotICAgWyhz ZXRfYXR0ciAidHlwZSIgImltb3YiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIikKLSAgICAo c2V0X2F0dHIgInBlbnRfcGFpciIgIm5wIikKLS0gICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUi ICJ2ZWN0b3IiKV0pCi0rICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIikKLSsg ICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpXSkgICAKLSAKLSAoZGVmaW5l X2V4cGFuZCAibW92dGkiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpUSSAwICJub25pbW1lZGlh dGVfb3BlcmFuZCIgIiIpCi1AQCAtNDEyMiw3ICs0MTQzLDggQEAKLSAgICJjdnR0c3Myc2l7cX1c dHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAo c2V0X2F0dHIgIm1vZGUiICJTRiIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAiZG91 YmxlLHZlY3RvciIpXSkKLSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJkb3VibGUsdmVj dG9yIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSxkb3VibGUiKV0p Ci0gCi0gKGRlZmluZV9pbnNuICJmaXhfdHJ1bmNkZmRpX3NzZSIKLSAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyIikKLUBAIC00MTMxLDcgKzQxNTMs OCBAQAotICAgImN2dHRzZDJzaXtxfVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAi dHlwZSIgInNzZWljdnQiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRGIikKLS0gICAoc2V0X2F0 dHIgImF0aGxvbl9kZWNvZGUiICJkb3VibGUsdmVjdG9yIildKQotKyAgIChzZXRfYXR0ciAiYXRo bG9uX2RlY29kZSIgImRvdWJsZSx2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVj b2RlIiAiZG91YmxlLGRvdWJsZSIpXSkKLSAKLSAoZGVmaW5lX2luc24gImZpeF90cnVuY3Nmc2lf c3NlIgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y LHIiKQotQEAgLTQxNDAsNyArNDE2Myw4IEBACi0gICAiY3Z0dHNzMnNpXHR7JTEsICUwfCUwLCAl MX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWN2dCIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiREYiKQotLSAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRvdWJsZSx2ZWN0b3IiKV0p Ci0rICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAiZG91YmxlLHZlY3RvciIpCi0rICAgKHNl dF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkb3VibGUsZG91YmxlIildKQotIAotIChkZWZpbmVf aW5zbiAiZml4X3RydW5jZGZzaV9zc2UiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCi1AQCAtNDE0OSw3ICs0MTczLDggQEAKLSAgICJjdnR0 c2Qyc2lcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICJERiIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2Rl IiAiZG91YmxlLHZlY3RvciIpXSkKLSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJkb3Vi bGUsdmVjdG9yIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSxkb3Vi bGUiKV0pCi0gCi0gOzsgQXZvaWQgdmVjdG9yIGRlY29kZWQgZm9ybXMgb2YgdGhlIGluc3RydWN0 aW9uLgotIChkZWZpbmVfcGVlcGhvbGUyCi1AQCAtNDQxMCw3ICs0NDM1LDggQEAKLSAgIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjIiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIikKLSAgICAoc2V0 X2F0dHIgInVuaXQiICJpMzg3IikKLS0gICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0 b3IiKV0pCi0rICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIikKLSsgICAoc2V0 X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgInZlY3RvciIpXSkgICAKLSAMCi0gOzsgQ29udmVyc2lv biBiZXR3ZWVuIGZpeGVkIHBvaW50IGFuZCBmbG9hdGluZyBwb2ludC4KLSAKLUBAIC00NDYxLDYg KzQ0ODcsNyBAQAotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIikKLSAgICAoc2V0X2F0dHIgInVu aXQiICIqLGkzODcsKiwqIikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICIqLCosdmVj dG9yLGRvdWJsZSIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICIqLCosdmVjdG9y LGRvdWJsZSIpCi0gICAgKHNldF9hdHRyICJmcF9pbnRfc3JjIiAidHJ1ZSIpXSkKLSAKLSAoZGVm aW5lX2luc24gIipmbG9hdHNpc2YyX3NzZSIKLUBAIC00NDcxLDYgKzQ0OTgsNyBAQAotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIikKLSAg ICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IsZG91YmxlIikKLSsgICAoc2V0X2F0 dHIgImFtZGZhbTEwX2RlY29kZSIgInZlY3Rvcixkb3VibGUiKQotICAgIChzZXRfYXR0ciAiZnBf aW50X3NyYyIgInRydWUiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqZmxvYXRzaXNmMl9pMzg3Igot QEAgLTQ1MDQsNiArNDUzMiw3IEBACi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0YiKQotICAgIChz ZXRfYXR0ciAidW5pdCIgIiosaTM4NywqLCoiKQotICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29k ZSIgIiosKix2ZWN0b3IsZG91YmxlIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIg IiosKix2ZWN0b3IsZG91YmxlIikKLSAgICAoc2V0X2F0dHIgImZwX2ludF9zcmMiICJ0cnVlIild KQotIAotIChkZWZpbmVfaW5zbiAiKmZsb2F0ZGlzZjJfc3NlIgotQEAgLTQ1MTQsNiArNDU0Myw3 IEBACi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWN2dCIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiU0YiKQotICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3Rvcixkb3VibGUiKQot KyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAidmVjdG9yLGRvdWJsZSIpCi0gICAgKHNl dF9hdHRyICJmcF9pbnRfc3JjIiAidHJ1ZSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipmbG9hdGRp c2YyX2kzODciCi1AQCAtNDU3Miw2ICs0NjAyLDcgQEAKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJE RiIpCi0gICAgKHNldF9hdHRyICJ1bml0IiAiKixpMzg3LCosKiIpCi0gICAgKHNldF9hdHRyICJh dGhsb25fZGVjb2RlIiAiKiwqLGRvdWJsZSxkaXJlY3QiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFt MTBfZGVjb2RlIiAiKiwqLHZlY3Rvcixkb3VibGUiKQotICAgIChzZXRfYXR0ciAiZnBfaW50X3Ny YyIgInRydWUiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqZmxvYXRzaWRmMl9zc2UiCi1AQCAtNDU4 Miw2ICs0NjEzLDcgQEAKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAoc2V0 X2F0dHIgIm1vZGUiICJERiIpCi0gICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAiZG91Ymxl LGRpcmVjdCIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJ2ZWN0b3IsZG91Ymxl IikKLSAgICAoc2V0X2F0dHIgImZwX2ludF9zcmMiICJ0cnVlIildKQotIAotIChkZWZpbmVfaW5z biAiKmZsb2F0c2lkZjJfaTM4NyIKLUBAIC00NjE1LDYgKzQ2NDcsNyBAQAotICAgIChzZXRfYXR0 ciAibW9kZSIgIkRGIikKLSAgICAoc2V0X2F0dHIgInVuaXQiICIqLGkzODcsKiwqIikKLSAgICAo c2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICIqLCosZG91YmxlLGRpcmVjdCIpCi0rICAgKHNldF9h dHRyICJhbWRmYW0xMF9kZWNvZGUiICIqLCosdmVjdG9yLGRvdWJsZSIpCi0gICAgKHNldF9hdHRy ICJmcF9pbnRfc3JjIiAidHJ1ZSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipmbG9hdGRpZGYyX3Nz ZSIKLUBAIC00NjI1LDYgKzQ2NTgsNyBAQAotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQi KQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRGIikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNv ZGUiICJkb3VibGUsZGlyZWN0IikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgInZl Y3Rvcixkb3VibGUiKQotICAgIChzZXRfYXR0ciAiZnBfaW50X3NyYyIgInRydWUiKV0pCi0gCi0g KGRlZmluZV9pbnNuICIqZmxvYXRkaWRmMl9pMzg3IgotQEAgLTY4MzIsNiArNjg2NiwxNCBAQAot ICAgIlRBUkdFVF82NEJJVCIKLSAgICIiKQotIAotKzs7IE9uIEFNREZBTTEwIAotKzs7IElNVUwg cmVnNjQsIHJlZzY0LCBpbW04IAlEaXJlY3QKLSs7OyBJTVVMIHJlZzY0LCBtZW02NCwgaW1tOCAJ VmVjdG9yUGF0aAotKzs7IElNVUwgcmVnNjQsIHJlZzY0LCBpbW0zMiAJRGlyZWN0Ci0rOzsgSU1V TCByZWc2NCwgbWVtNjQsIGltbTMyIAlWZWN0b3JQYXRoIAotKzs7IElNVUwgcmVnNjQsIHJlZzY0 IAkJRGlyZWN0Ci0rOzsgSU1VTCByZWc2NCwgbWVtNjQgCQlEaXJlY3QKLSsKLSAoZGVmaW5lX2lu c24gIiptdWxkaTNfMV9yZXg2NCIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9cixyLHIiKQotIAkobXVsdDpESSAobWF0Y2hfb3BlcmFuZDpESSAxICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgIiVybSxybSwwIikKLUBAIC02ODU0LDYgKzY4OTYsMTEgQEAK LSAJCSAgICAobWF0Y2hfb3BlcmFuZCAxICJtZW1vcnlfb3BlcmFuZCIgIiIpKQotIAkJICAoY29u c3Rfc3RyaW5nICJ2ZWN0b3IiKV0KLSAJICAgICAgKGNvbnN0X3N0cmluZyAiZGlyZWN0IikpKQot KyAgIChzZXQgKGF0dHIgImFtZGZhbTEwX2RlY29kZSIpCi0rCShjb25kIFsoYW5kIChlcV9hdHRy ICJhbHRlcm5hdGl2ZSIgIjAsMSIpCi0rCQkgICAgKG1hdGNoX29wZXJhbmQgMSAibWVtb3J5X29w ZXJhbmQiICIiKSkKLSsJCSAgKGNvbnN0X3N0cmluZyAidmVjdG9yIildCi0rCSAgICAgIChjb25z dF9zdHJpbmcgImRpcmVjdCIpKSkJICAgICAgCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0p Ci0gCi0gKGRlZmluZV9leHBhbmQgIm11bHNpMyIKLUBAIC02ODY0LDYgKzY5MTEsMTQgQEAKLSAg ICIiCi0gICAiIikKLSAKLSs7OyBPbiBBTURGQU0xMCAKLSs7OyBJTVVMIHJlZzMyLCByZWczMiwg aW1tOCAJRGlyZWN0Ci0rOzsgSU1VTCByZWczMiwgbWVtMzIsIGltbTggCVZlY3RvclBhdGgKLSs7 OyBJTVVMIHJlZzMyLCByZWczMiwgaW1tMzIgCURpcmVjdAotKzs7IElNVUwgcmVnMzIsIG1lbTMy LCBpbW0zMiAJVmVjdG9yUGF0aAotKzs7IElNVUwgcmVnMzIsIHJlZzMyIAkJRGlyZWN0Ci0rOzsg SU1VTCByZWczMiwgbWVtMzIgCQlEaXJlY3QKLSsKLSAoZGVmaW5lX2luc24gIiptdWxzaTNfMSIK LSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyLHIi KQotIAkobXVsdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIg IiVybSxybSwwIikKLUBAIC02ODg1LDYgKzY5NDAsMTEgQEAKLSAJCSAgICAobWF0Y2hfb3BlcmFu ZCAxICJtZW1vcnlfb3BlcmFuZCIgIiIpKQotIAkJICAoY29uc3Rfc3RyaW5nICJ2ZWN0b3IiKV0K LSAJICAgICAgKGNvbnN0X3N0cmluZyAiZGlyZWN0IikpKQotKyAgIChzZXQgKGF0dHIgImFtZGZh bTEwX2RlY29kZSIpCi0rCShjb25kIFsoYW5kIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjAsMSIp Ci0rCQkgICAgKG1hdGNoX29wZXJhbmQgMSAibWVtb3J5X29wZXJhbmQiICIiKSkKLSsJCSAgKGNv bnN0X3N0cmluZyAidmVjdG9yIildCi0rCSAgICAgIChjb25zdF9zdHJpbmcgImRpcmVjdCIpKSkJ ICAgICAgCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIq bXVsc2kzXzFfemV4dCIKLUBAIC02OTEwLDYgKzY5NzAsMTEgQEAKLSAJCSAgICAobWF0Y2hfb3Bl cmFuZCAxICJtZW1vcnlfb3BlcmFuZCIgIiIpKQotIAkJICAoY29uc3Rfc3RyaW5nICJ2ZWN0b3Ii KV0KLSAJICAgICAgKGNvbnN0X3N0cmluZyAiZGlyZWN0IikpKQotKyAgIChzZXQgKGF0dHIgImFt ZGZhbTEwX2RlY29kZSIpCi0rCShjb25kIFsoYW5kIChlcV9hdHRyICJhbHRlcm5hdGl2ZSIgIjAs MSIpCi0rCQkgICAgKG1hdGNoX29wZXJhbmQgMSAibWVtb3J5X29wZXJhbmQiICIiKSkKLSsJCSAg KGNvbnN0X3N0cmluZyAidmVjdG9yIildCi0rCSAgICAgIChjb25zdF9zdHJpbmcgImRpcmVjdCIp KSkJICAgICAgCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gKGRlZmluZV9leHBh bmQgIm11bGhpMyIKLUBAIC02OTIwLDYgKzY5ODUsMTMgQEAKLSAgICJUQVJHRVRfSElNT0RFX01B VEgiCi0gICAiIikKLSAKLSs7OyBPbiBBTURGQU0xMAotKzs7IElNVUwgcmVnMTYsIHJlZzE2LCBp bW04IAlWZWN0b3JQYXRoCi0rOzsgSU1VTCByZWcxNiwgbWVtMTYsIGltbTggCVZlY3RvclBhdGgK LSs7OyBJTVVMIHJlZzE2LCByZWcxNiwgaW1tMTYgCVZlY3RvclBhdGgKLSs7OyBJTVVMIHJlZzE2 LCBtZW0xNiwgaW1tMTYgCVZlY3RvclBhdGgKLSs7OyBJTVVMIHJlZzE2LCByZWcxNiAJCURpcmVj dAotKzs7IElNVUwgcmVnMTYsIG1lbTE2IAkJRGlyZWN0Ci0gKGRlZmluZV9pbnNuICIqbXVsaGkz XzEiCi0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIs cixyIikKLSAJKG11bHQ6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAibm9uaW1tZWRpYXRlX29wZXJh bmQiICIlcm0scm0sMCIpCi1AQCAtNjkzOCw2ICs3MDEwLDEwIEBACi0gCSAgICAgICAoZXFfYXR0 ciAiYWx0ZXJuYXRpdmUiICIxLDIiKQotIAkJICAoY29uc3Rfc3RyaW5nICJ2ZWN0b3IiKV0KLSAJ ICAgICAgKGNvbnN0X3N0cmluZyAiZGlyZWN0IikpKQotKyAgIChzZXQgKGF0dHIgImFtZGZhbTEw X2RlY29kZSIpCi0rCShjb25kIFsoZXFfYXR0ciAiYWx0ZXJuYXRpdmUiICIwLDEiKQotKwkJICAo Y29uc3Rfc3RyaW5nICJ2ZWN0b3IiKV0KLSsJICAgICAgKGNvbnN0X3N0cmluZyAiZGlyZWN0Iikp KQotICAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotIAotIChkZWZpbmVfZXhwYW5kICJtdWxx aTMiCi1AQCAtNjk0OCw2ICs3MDI0LDEwIEBACi0gICAiVEFSR0VUX1FJTU9ERV9NQVRIIgotICAg IiIpCi0gCi0rOztPbiBBTURGQU0xMAotKzs7IE1VTCByZWc4IAlEaXJlY3QKLSs7OyBNVUwgbWVt OCAJRGlyZWN0Ci0rCi0gKGRlZmluZV9pbnNuICIqbXVscWkzXzEiCi0gICBbKHNldCAobWF0Y2hf b3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWEiKQotIAkobXVsdDpRSSAobWF0Y2hf b3BlcmFuZDpRSSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIiUwIikKLUBAIC02OTYyLDYgKzcw NDIsNyBAQAotICAgICAgKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikKLSAg ICAgICAgIChjb25zdF9zdHJpbmcgInZlY3RvciIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJk aXJlY3QiKSkpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkaXJlY3QiKSAgICAg ICAgCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0pCi0gCi0gKGRlZmluZV9leHBhbmQgInVt dWxxaWhpMyIKLUBAIC02OTg4LDYgKzcwNjksNyBAQAotICAgICAgKGlmX3RoZW5fZWxzZSAoZXFf YXR0ciAiY3B1IiAiYXRobG9uIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgInZlY3RvciIpCi0g ICAgICAgICAoY29uc3Rfc3RyaW5nICJkaXJlY3QiKSkpCi0rICAgKHNldF9hdHRyICJhbWRmYW0x MF9kZWNvZGUiICJkaXJlY3QiKSAgICAgICAgCi0gICAgKHNldF9hdHRyICJtb2RlIiAiUUkiKV0p Ci0gCi0gKGRlZmluZV9leHBhbmQgIm11bHFpaGkzIgotQEAgLTcwMTIsNiArNzA5NCw3IEBACi0g ICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJjcHUiICJhdGhsb24iKQotICAgICAgICAgKGNv bnN0X3N0cmluZyAidmVjdG9yIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgImRpcmVjdCIpKSkK LSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpICAgICAgICAKLSAgICAo c2V0X2F0dHIgIm1vZGUiICJRSSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAidW11bGRpdGkzIgot QEAgLTcwMzgsNiArNzEyMSw3IEBACi0gICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJjcHUi ICJhdGhsb24iKQotICAgICAgICAgKGNvbnN0X3N0cmluZyAidmVjdG9yIikKLSAgICAgICAgIChj b25zdF9zdHJpbmcgImRvdWJsZSIpKSkKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIg ImRvdWJsZSIpICAgICAgICAKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSA7OyBX ZSBjYW4ndCB1c2UgdGhpcyBwYXR0ZXJuIGluIDY0Yml0IG1vZGUsIHNpbmNlIGl0IHJlc3VsdHMg aW4gdHdvIHNlcGFyYXRlIDMyYml0IHJlZ2lzdGVycwotQEAgLTcwNjUsNiArNzE0OSw3IEBACi0g ICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJjcHUiICJhdGhsb24iKQotICAgICAgICAgKGNv bnN0X3N0cmluZyAidmVjdG9yIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgImRvdWJsZSIpKSkK LSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpICAgICAgICAKLSAgICAo c2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAibXVsZGl0aTMiCi1A QCAtNzA5MSw2ICs3MTc2LDcgQEAKLSAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImNwdSIg ImF0aGxvbiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJ2ZWN0b3IiKQotICAgICAgICAgKGNv bnN0X3N0cmluZyAiZG91YmxlIikpKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAi ZG91YmxlIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFu ZCAibXVsc2lkaTMiCi1AQCAtNzExNyw2ICs3MjAzLDcgQEAKLSAgICAgIChpZl90aGVuX2Vsc2Ug KGVxX2F0dHIgImNwdSIgImF0aGxvbiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJ2ZWN0b3Ii KQotICAgICAgICAgKGNvbnN0X3N0cmluZyAiZG91YmxlIikpKQotKyAgIChzZXRfYXR0ciAiYW1k ZmFtMTBfZGVjb2RlIiAiZG91YmxlIikgICAgICAgIAotICAgIChzZXRfYXR0ciAibW9kZSIgIlNJ IildKQotIAotIChkZWZpbmVfZXhwYW5kICJ1bXVsZGkzX2hpZ2hwYXJ0IgotQEAgLTcxNTMsNiAr NzI0MCw3IEBACi0gICAgICAoaWZfdGhlbl9lbHNlIChlcV9hdHRyICJjcHUiICJhdGhsb24iKQot ICAgICAgICAgKGNvbnN0X3N0cmluZyAidmVjdG9yIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcg ImRvdWJsZSIpKSkKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpICAg ICAgICAKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAi dW11bHNpM19oaWdocGFydCIKLUBAIC03MTg4LDYgKzcyNzYsNyBAQAotICAgICAgKGlmX3RoZW5f ZWxzZSAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikKLSAgICAgICAgIChjb25zdF9zdHJpbmcgInZl Y3RvciIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJkb3VibGUiKSkpCi0rICAgKHNldF9hdHRy ICJhbWRmYW0xMF9kZWNvZGUiICJkb3VibGUiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIild KQotIAotIChkZWZpbmVfaW5zbiAiKnVtdWxzaTNfaGlnaHBhcnRfemV4dCIKLUBAIC03MjEwLDYg KzcyOTksNyBAQAotICAgICAgKGlmX3RoZW5fZWxzZSAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikK LSAgICAgICAgIChjb25zdF9zdHJpbmcgInZlY3RvciIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5n ICJkb3VibGUiKSkpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkb3VibGUiKQot ICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfZXhwYW5kICJzbXVsZGkz X2hpZ2hwYXJ0IgotQEAgLTcyNDUsNiArNzMzNSw3IEBACi0gICAgICAoaWZfdGhlbl9lbHNlIChl cV9hdHRyICJjcHUiICJhdGhsb24iKQotICAgICAgICAgKGNvbnN0X3N0cmluZyAidmVjdG9yIikK LSAgICAgICAgIChjb25zdF9zdHJpbmcgImRvdWJsZSIpKSkKLSsgICAoc2V0X2F0dHIgImFtZGZh bTEwX2RlY29kZSIgImRvdWJsZSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0g KGRlZmluZV9leHBhbmQgInNtdWxzaTNfaGlnaHBhcnQiCi1AQCAtNzI3OSw2ICs3MzcwLDcgQEAK LSAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIgImNwdSIgImF0aGxvbiIpCi0gICAgICAgICAo Y29uc3Rfc3RyaW5nICJ2ZWN0b3IiKQotICAgICAgICAgKGNvbnN0X3N0cmluZyAiZG91YmxlIikp KQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91YmxlIikKLSAgICAoc2V0X2F0 dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gIipzbXVsc2kzX2hpZ2hwYXJ0X3pl eHQiCi1AQCAtNzMwMCw2ICs3MzkyLDcgQEAKLSAgICAgIChpZl90aGVuX2Vsc2UgKGVxX2F0dHIg ImNwdSIgImF0aGxvbiIpCi0gICAgICAgICAoY29uc3Rfc3RyaW5nICJ2ZWN0b3IiKQotICAgICAg ICAgKGNvbnN0X3N0cmluZyAiZG91YmxlIikpKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVj b2RlIiAiZG91YmxlIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSA7OyBUaGUg cGF0dGVybnMgdGhhdCBtYXRjaCB0aGVzZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGlzIGZpbGUuCi1A QCAtMTAyODEsNyArMTAzNzQsOCBAQAotICAgWyhzZXRfYXR0ciAidHlwZSIgImlzaGlmdCIpCi0g ICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJESSIp Ci0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIildKQotKyAgIChzZXRfYXR0 ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNv ZGUiICJ2ZWN0b3IiKV0pICAgCi0gCi0gKGRlZmluZV9leHBhbmQgIng4Nl82NF9zaGlmdF9hZGoi Ci0gICBbKHNldCAocmVnOkNDWiBGTEFHU19SRUcpCi1AQCAtMTA0OTYsNyArMTA1OTAsOCBAQAot ICAgIChzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0ki KQotICAgIChzZXRfYXR0ciAicGVudF9wYWlyIiAibnAiKQotLSAgIChzZXRfYXR0ciAiYXRobG9u X2RlY29kZSIgInZlY3RvciIpXSkKLSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0 b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAidmVjdG9yIildKSAgIAotIAot IChkZWZpbmVfZXhwYW5kICJ4ODZfc2hpZnRfYWRqXzEiCi0gICBbKHNldCAocmVnOkNDWiBGTEFH U19SRUcpCi1AQCAtMTEyNTYsNyArMTEzNTEsOCBAQAotICAgWyhzZXRfYXR0ciAidHlwZSIgImlz aGlmdCIpCi0gICAgKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJESSIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIildKQotKyAg IChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0rICAgKHNldF9hdHRyICJhbWRm YW0xMF9kZWNvZGUiICJ2ZWN0b3IiKV0pICAgCi0gCi0gKGRlZmluZV9leHBhbmQgImFzaHJkaTMi Ci0gICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJzaGlmdGRpX29wZXJhbmQiICIiKQotQEAg LTE0NTIwLDcgKzE0NjE2LDIzIEBACi0gICAgICBbKHNldCAobWF0Y2hfZHVwIDApICh4b3I6U0kg KG1hdGNoX2R1cCAwKSAoY29uc3RfaW50IDMxKSkpCi0gICAgICAgKGNsb2JiZXIgKHJlZzpDQyBG TEFHU19SRUcpKV0pXQotICAgIiIKLS0gICIiKQotK3sKLSsgIGlmIChUQVJHRVRfQUJNKQotKyAg ICB7Ci0rICAgICAgZW1pdF9pbnNuIChnZW5fY2x6c2kyX2FibSAob3BlcmFuZHNbMF0sIG9wZXJh bmRzWzFdKSk7Ci0rICAgICAgRE9ORTsKLSsgICAgfQotK30pCi0rCi0rKGRlZmluZV9pbnNuICJj bHpzaTJfYWJtIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKLSsgICAgICAgIChjbHo6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAibm9uaW1tZWRp YXRlX29wZXJhbmQiICIiKSkpCi0rICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KLSsg ICJUQVJHRVRfQUJNIgotKyAgImx6Y250e2x9XHR7JTEsICUwfCUwLCAlMX0iCi0rICBbKHNldF9h dHRyICJwcmVmaXhfcmVwIiAiMSIpCi0rICAgKHNldF9hdHRyICJ0eXBlIiAiYml0bWFuaXAiKQot KyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVfaW5zbiAiKmJzciIKLSAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCi1AQCAt MTQ1MjksNyArMTQ2NDEsNDQgQEAKLSAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQot ICAgIiIKLSAgICJic3J7bH1cdHslMSwgJTB8JTAsICUxfSIKLS0gIFsoc2V0X2F0dHIgInByZWZp eF8wZiIgIjEiKV0pCi0rICBbKHNldF9hdHRyICJwcmVmaXhfMGYiICIxIikKLSsgICAoc2V0X2F0 dHIgIm1vZGUiICJTSSIpXSkKLSsKLSsoZGVmaW5lX2luc24gInBvcGNvdW50c2kyIgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLSsJKHBvcGNv dW50OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiIikpKQot KyAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCi0rICAiVEFSR0VUX1BPUENOVCIKLSsg ICJwb3BjbnR7bH1cdHslMSwgJTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0dHIgInByZWZpeF9yZXAi ICIxIikKLSsgICAoc2V0X2F0dHIgInR5cGUiICJiaXRtYW5pcCIpCi0rICAgKHNldF9hdHRyICJt b2RlIiAiU0kiKV0pCi0rCi0rKGRlZmluZV9pbnNuICIqcG9wY291bnRzaTJfY21wIgotKyAgWyhz ZXQgKHJlZyBGTEFHU19SRUcpCi0rCShjb21wYXJlCi0rCSAgKHBvcGNvdW50OlNJIChtYXRjaF9v cGVyYW5kOlNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAicm0iKSkKLSsJICAoY29uc3RfaW50 IDApKSkKLSsgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 ciIpCi0rCShwb3Bjb3VudDpTSSAobWF0Y2hfZHVwIDEpKSldCi0rICAiVEFSR0VUX1BPUENOVCAm JiBpeDg2X21hdGNoX2NjbW9kZSAoaW5zbiwgQ0NabW9kZSkiCi0rICAicG9wY250e2x9XHR7JTEs ICUwfCUwLCAlMX0iCi0rICBbKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0rICAgKHNldF9h dHRyICJ0eXBlIiAiYml0bWFuaXAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotKwot KyhkZWZpbmVfaW5zbiAiKnBvcGNvdW50c2kyX2NtcF96ZXh0IgotKyAgWyhzZXQgKHJlZyBGTEFH U19SRUcpCi0rICAgICAgICAoY29tcGFyZQotKyAgICAgICAgICAocG9wY291bnQ6U0kgKG1hdGNo X29wZXJhbmQ6U0kgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJybSIpKQotKyAgICAgICAgICAo Y29uc3RfaW50IDApKSkKLSsgICAoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciIpCi0rICAgICAgICAoemVyb19leHRlbmQ6REkocG9wY291bnQ6U0kgKG1hdGNo X2R1cCAxKSkpKV0KLSsgICJUQVJHRVRfNjRCSVQgJiYgVEFSR0VUX1BPUENOVCAmJiBpeDg2X21h dGNoX2NjbW9kZSAoaW5zbiwgQ0NabW9kZSkiCi0rICAicG9wY250e2x9XHR7JTEsICUwfCUwLCAl MX0iCi0rICBbKHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0rICAgKHNldF9hdHRyICJ0eXBl IiAiYml0bWFuaXAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNJIildKQotIAotIChkZWZpbmVf ZXhwYW5kICJjbHpkaTIiCi0gICBbKHBhcmFsbGVsCi1AQCAtMTQ1NDEsNyArMTQ2OTAsMjMgQEAK LSAgICAgIFsoc2V0IChtYXRjaF9kdXAgMCkgKHhvcjpESSAobWF0Y2hfZHVwIDApIChjb25zdF9p bnQgNjMpKSkKLSAgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSldCi0gICAiVEFS R0VUXzY0QklUIgotLSAgIiIpCi0rewotKyAgaWYgKFRBUkdFVF9BQk0pCi0rICAgIHsKLSsgICAg ICBlbWl0X2luc24gKGdlbl9jbHpkaTJfYWJtIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMV0pKTsK LSsgICAgICBET05FOwotKyAgICB9Ci0rfSkKLSsKLSsoZGVmaW5lX2luc24gImNsemRpMl9hYm0i Ci0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQot KwkoY2x6OkRJIChtYXRjaF9vcGVyYW5kOkRJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiIikp KQotKyAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldCi0rICAiVEFSR0VUXzY0QklUICYm IFRBUkdFVF9BQk0iCi0rICAibHpjbnR7cX1cdHslMSwgJTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0 dHIgInByZWZpeF9yZXAiICIxIikKLSsgICAoc2V0X2F0dHIgInR5cGUiICJiaXRtYW5pcCIpCi0r ICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqYnNyX3JleDY0 IgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikK LUBAIC0xNDU1MCw3ICsxNDcxNSw5MiBAQAotICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVH KSldCi0gICAiVEFSR0VUXzY0QklUIgotICAgImJzcntxfVx0eyUxLCAlMHwlMCwgJTF9IgotLSAg WyhzZXRfYXR0ciAicHJlZml4XzBmIiAiMSIpXSkKLSsgIFsoc2V0X2F0dHIgInByZWZpeF8wZiIg IjEiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotKwotKyhkZWZpbmVfaW5zbiAicG9w Y291bnRkaTIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQotKwkocG9wY291bnQ6REkgKG1hdGNoX29wZXJhbmQ6REkgMSAibm9uaW1tZWRpYXRl X29wZXJhbmQiICIiKSkpCi0rICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KLSsgICJU QVJHRVRfNjRCSVQgJiYgVEFSR0VUX1BPUENOVCIKLSsgICJwb3BjbnR7cX1cdHslMSwgJTB8JTAs ICUxfSIKLSsgIFsoc2V0X2F0dHIgInByZWZpeF9yZXAiICIxIikKLSsgICAoc2V0X2F0dHIgInR5 cGUiICJiaXRtYW5pcCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiREkiKV0pCi0rCi0rKGRlZmlu ZV9pbnNuICIqcG9wY291bnRkaTJfY21wIgotKyAgWyhzZXQgKHJlZyBGTEFHU19SRUcpCi0rCShj b21wYXJlCi0rCSAgKHBvcGNvdW50OkRJIChtYXRjaF9vcGVyYW5kOkRJIDEgIm5vbmltbWVkaWF0 ZV9vcGVyYW5kIiAicm0iKSkKLSsJICAoY29uc3RfaW50IDApKSkKLSsgICAoc2V0IChtYXRjaF9v cGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCi0rCShwb3Bjb3VudDpESSAobWF0 Y2hfZHVwIDEpKSldCi0rICAiVEFSR0VUXzY0QklUICYmIFRBUkdFVF9QT1BDTlQgJiYgaXg4Nl9t YXRjaF9jY21vZGUgKGluc24sIENDWm1vZGUpIgotKyAgInBvcGNudHtxfVx0eyUxLCAlMHwlMCwg JTF9IgotKyAgWyhzZXRfYXR0ciAicHJlZml4X3JlcCIgIjEiKQotKyAgIChzZXRfYXR0ciAidHlw ZSIgImJpdG1hbmlwIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJESSIpXSkKLSsKLSsoZGVmaW5l X2V4cGFuZCAiY2x6aGkyIgotKyAgWyhwYXJhbGxlbAotKyAgICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0rCSAgIChtaW51czpISSAoY29uc3RfaW50 IDE1KQotKwkJICAgICAoY2x6OkhJIChtYXRjaF9vcGVyYW5kOkhJIDEgIm5vbmltbWVkaWF0ZV9v cGVyYW5kIiAiIikpKSkKLSsgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXSkKLSsg ICAocGFyYWxsZWwKLSsgICAgIFsoc2V0IChtYXRjaF9kdXAgMCkgKHhvcjpISSAobWF0Y2hfZHVw IDApIChjb25zdF9pbnQgMTUpKSkKLSsgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykp XSldCi0rICAiIgotK3sKLSsgIGlmIChUQVJHRVRfQUJNKQotKyAgICB7Ci0rICAgICAgZW1pdF9p bnNuIChnZW5fY2x6aGkyX2FibSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKSk7Ci0rICAgICAg RE9ORTsKLSsgICAgfQotK30pCi0rCi0rKGRlZmluZV9pbnNuICJjbHpoaTJfYWJtIgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLSsJKGNsejpI SSAobWF0Y2hfb3BlcmFuZDpISSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIiIpKSkKLSsgICAo Y2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQotKyAgIlRBUkdFVF9BQk0iCi0rICAibHpjbnR7 d31cdHslMSwgJTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0dHIgInByZWZpeF9yZXAiICIxIikKLSsg ICAoc2V0X2F0dHIgInR5cGUiICJiaXRtYW5pcCIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiSEki KV0pCi0rCi0rKGRlZmluZV9pbnNuICIqYnNyaGkiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpI SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQotKwkobWludXM6SEkgKGNvbnN0X2ludCAxNSkK LSsJCSAgKGNsejpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCIg InJtIikpKSkKLSsgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykpXQotKyAgIiIKLSsgICJi c3J7d31cdHslMSwgJTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0dHIgInByZWZpeF8wZiIgIjEiKQot KyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotKwotKyhkZWZpbmVfaW5zbiAicG9wY291bnRo aTIiCi0rICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIi KQotKwkocG9wY291bnQ6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAibm9uaW1tZWRpYXRlX29wZXJh bmQiICIiKSkpCi0rICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19SRUcpKV0KLSsgICJUQVJHRVRf UE9QQ05UIgotKyAgInBvcGNudHt3fVx0eyUxLCAlMHwlMCwgJTF9IgotKyAgWyhzZXRfYXR0ciAi cHJlZml4X3JlcCIgIjEiKQotKyAgIChzZXRfYXR0ciAidHlwZSIgImJpdG1hbmlwIikKLSsgICAo c2V0X2F0dHIgIm1vZGUiICJISSIpXSkKLSsKLSsoZGVmaW5lX2luc24gIipwb3Bjb3VudGhpMl9j bXAiCi0rICBbKHNldCAocmVnIEZMQUdTX1JFRykKLSsgICAgICAgIChjb21wYXJlCi0rICAgICAg ICAgIChwb3Bjb3VudDpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJub25pbW1lZGlhdGVfb3BlcmFu ZCIgInJtIikpCi0rICAgICAgICAgIChjb25zdF9pbnQgMCkpKQotKyAgIChzZXQgKG1hdGNoX29w ZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKLSsgICAgICAgIChwb3Bjb3VudDpI SSAobWF0Y2hfZHVwIDEpKSldCi0rICAiVEFSR0VUX1BPUENOVCAmJiBpeDg2X21hdGNoX2NjbW9k ZSAoaW5zbiwgQ0NabW9kZSkiCi0rICAicG9wY250e3d9XHR7JTEsICUwfCUwLCAlMX0iCi0rICBb KHNldF9hdHRyICJwcmVmaXhfcmVwIiAiMSIpCi0rICAgKHNldF9hdHRyICJ0eXBlIiAiYml0bWFu aXAiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIkhJIildKQotIAwKLSA7OyBUaHJlYWQtbG9jYWwg c3RvcmFnZSBwYXR0ZXJucyBmb3IgRUxGLgotIDs7Ci1AQCAtMTUzMDIsNyArMTU1NTIsOCBAQAot ICAgIHNxcnRzc1x0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgImZwc3Bj LHNzZSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0YsU0YiKQotLSAgIChzZXRfYXR0ciAiYXRo bG9uX2RlY29kZSIgImRpcmVjdCwqIildKQotKyAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIg ImRpcmVjdCwqIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCwqIild KQotIAotIChkZWZpbmVfaW5zbiAiKnNxcnRzZjJfc3NlIgotICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj14IikKLUBAIC0xNTMxMSw3ICsxNTU2Miw4IEBA Ci0gICAic3FydHNzXHR7JTEsICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3Nl IikKLSAgICAoc2V0X2F0dHIgIm1vZGUiICJTRiIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVj b2RlIiAiKiIpXSkKLSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICIqIikKLSsgICAoc2V0 X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgIioiKV0pCi0gCi0gKGRlZmluZV9pbnNuICIqc3FydHNm Ml9pMzg3IgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1mIikKLUBAIC0xNTMyMCw3ICsxNTU3Miw4IEBACi0gICAiZnNxcnQiCi0gICBbKHNldF9hdHRy ICJ0eXBlIiAiZnBzcGMiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIikKLS0gICAoc2V0X2F0 dHIgImF0aGxvbl9kZWNvZGUiICJkaXJlY3QiKV0pCi0rICAgKHNldF9hdHRyICJhdGhsb25fZGVj b2RlIiAiZGlyZWN0IikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIp XSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAic3FydGRmMiIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkRGIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotQEAgLTE1Mzk5LDcgKzE1NjUyLDggQEAKLSAg ICJmc3FydCIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJmcHNwYyIpCi0gICAgKHNldF9hdHRyICJt b2RlIiAiWEYiKQotLSAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRpcmVjdCIpXSkKLSsg ICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJkaXJlY3QiKQotKyAgIChzZXRfYXR0ciAiYW1k ZmFtMTBfZGVjb2RlIiAiZGlyZWN0IildKQotIAotIChkZWZpbmVfaW5zbiAiZnByZW14ZjQiCi0g ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpYRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWYiKQotQEAg LTIwMTg2LDcgKzIwNDQwLDcgQEAKLSAJCSAgIChtdWx0OkRJIChtYXRjaF9vcGVyYW5kOkRJIDEg Im1lbW9yeV9vcGVyYW5kIiAiIikKLSAJCQkgICAgKG1hdGNoX29wZXJhbmQ6REkgMiAiaW1tZWRp YXRlX29wZXJhbmQiICIiKSkpCi0gCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSld KV0KLS0gICIoVEFSR0VUX0s4IHx8IFRBUkdFVF9HRU5FUklDNjQpICYmICFvcHRpbWl6ZV9zaXpl Ci0rICAiKFRBUkdFVF9LOCB8fCBUQVJHRVRfR0VORVJJQzY0IHx8IFRBUkdFVF9BTURGQU0xMCkg JiYgIW9wdGltaXplX3NpemUKLSAgICAmJiAoR0VUX0NPREUgKG9wZXJhbmRzWzJdKSAhPSBDT05T VF9JTlQKLSAgICAgICAgfHwgIUNPTlNUX09LX0ZPUl9MRVRURVJfUCAoSU5UVkFMIChvcGVyYW5k c1syXSksICdLJykpIgotICAgWyhzZXQgKG1hdGNoX2R1cCAzKSAobWF0Y2hfZHVwIDEpKQotQEAg LTIwMjAwLDcgKzIwNDU0LDcgQEAKLSAJCSAgIChtdWx0OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEg Im1lbW9yeV9vcGVyYW5kIiAiIikKLSAJCQkgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRp YXRlX29wZXJhbmQiICIiKSkpCi0gCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSld KV0KLS0gICIoVEFSR0VUX0s4IHx8IFRBUkdFVF9HRU5FUklDNjQpICYmICFvcHRpbWl6ZV9zaXpl Ci0rICAiKFRBUkdFVF9LOCB8fCBUQVJHRVRfR0VORVJJQzY0IHx8IFRBUkdFVF9BTURGQU0xMCkg JiYgIW9wdGltaXplX3NpemUKLSAgICAmJiAoR0VUX0NPREUgKG9wZXJhbmRzWzJdKSAhPSBDT05T VF9JTlQKLSAgICAgICAgfHwgIUNPTlNUX09LX0ZPUl9MRVRURVJfUCAoSU5UVkFMIChvcGVyYW5k c1syXSksICdLJykpIgotICAgWyhzZXQgKG1hdGNoX2R1cCAzKSAobWF0Y2hfZHVwIDEpKQotQEAg LTIwMjE1LDcgKzIwNDY5LDcgQEAKLSAJCSAgICAgKG11bHQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kg MSAibWVtb3J5X29wZXJhbmQiICIiKQotIAkJCSAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImlt bWVkaWF0ZV9vcGVyYW5kIiAiIikpKSkKLSAJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19S RUcpKV0pXQotLSAgIihUQVJHRVRfSzggfHwgVEFSR0VUX0dFTkVSSUM2NCkgJiYgIW9wdGltaXpl X3NpemUKLSsgICIoVEFSR0VUX0s4IHx8IFRBUkdFVF9HRU5FUklDNjQgfHwgVEFSR0VUX0FNREZB TTEwKSAmJiAhb3B0aW1pemVfc2l6ZQotICAgICYmIChHRVRfQ09ERSAob3BlcmFuZHNbMl0pICE9 IENPTlNUX0lOVAotICAgICAgICB8fCAhQ09OU1RfT0tfRk9SX0xFVFRFUl9QIChJTlRWQUwgKG9w ZXJhbmRzWzJdKSwgJ0snKSkiCi0gICBbKHNldCAobWF0Y2hfZHVwIDMpIChtYXRjaF9kdXAgMSkp Ci1AQCAtMjAyMzMsNyArMjA0ODcsNyBAQAotIAkJCSAgICAobWF0Y2hfb3BlcmFuZDpESSAyICJj b25zdF9pbnRfb3BlcmFuZCIgIiIpKSkKLSAJICAgICAgKGNsb2JiZXIgKHJlZzpDQyBGTEFHU19S RUcpKV0pCi0gICAgKG1hdGNoX3NjcmF0Y2g6REkgMyAiciIpXQotLSAgIihUQVJHRVRfSzggfHwg VEFSR0VUX0dFTkVSSUM2NCkgJiYgIW9wdGltaXplX3NpemUKLSsgICIoVEFSR0VUX0s4IHx8IFRB UkdFVF9HRU5FUklDNjQgfHwgVEFSR0VUX0FNREZBTTEwKSAmJiAhb3B0aW1pemVfc2l6ZQotICAg ICYmIENPTlNUX09LX0ZPUl9MRVRURVJfUCAoSU5UVkFMIChvcGVyYW5kc1syXSksICdLJykiCi0g ICBbKHNldCAobWF0Y2hfZHVwIDMpIChtYXRjaF9kdXAgMikpCi0gICAgKHBhcmFsbGVsIFsoc2V0 IChtYXRjaF9kdXAgMCkgKG11bHQ6REkgKG1hdGNoX2R1cCAwKSAobWF0Y2hfZHVwIDMpKSkKLUBA IC0yMDI0OSw3ICsyMDUwMyw3IEBACi0gCQkJICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0 X2ludF9vcGVyYW5kIiAiIikpKQotIAkgICAgICAoY2xvYmJlciAocmVnOkNDIEZMQUdTX1JFRykp XSkKLSAgICAobWF0Y2hfc2NyYXRjaDpTSSAzICJyIildCi0tICAiKFRBUkdFVF9LOCB8fCBUQVJH RVRfR0VORVJJQzY0KSAmJiAhb3B0aW1pemVfc2l6ZQotKyAgIihUQVJHRVRfSzggfHwgVEFSR0VU X0dFTkVSSUM2NCB8fCBUQVJHRVRfQU1ERkFNMTApICYmICFvcHRpbWl6ZV9zaXplCi0gICAgJiYg Q09OU1RfT0tfRk9SX0xFVFRFUl9QIChJTlRWQUwgKG9wZXJhbmRzWzJdKSwgJ0snKSIKLSAgIFso c2V0IChtYXRjaF9kdXAgMykgKG1hdGNoX2R1cCAyKSkKLSAgICAocGFyYWxsZWwgWyhzZXQgKG1h dGNoX2R1cCAwKSAobXVsdDpTSSAobWF0Y2hfZHVwIDApIChtYXRjaF9kdXAgMykpKQotQEAgLTIw MjY1LDcgKzIwNTE5LDcgQEAKLSAJCQkgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAiaW1tZWRpYXRl X29wZXJhbmQiICIiKSkpCi0gCSAgICAgIChjbG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldKQot ICAgIChtYXRjaF9zY3JhdGNoOkhJIDMgInIiKV0KLS0gICIoVEFSR0VUX0s4IHx8IFRBUkdFVF9H RU5FUklDNjQpICYmICFvcHRpbWl6ZV9zaXplIgotKyAgIihUQVJHRVRfSzggfHwgVEFSR0VUX0dF TkVSSUM2NCB8fCBUQVJHRVRfQU1ERkFNMTApICYmICFvcHRpbWl6ZV9zaXplIgotICAgWyhzZXQg KG1hdGNoX2R1cCAzKSAobWF0Y2hfZHVwIDIpKQotICAgIChwYXJhbGxlbCBbKHNldCAobWF0Y2hf ZHVwIDApIChtdWx0OkhJIChtYXRjaF9kdXAgMCkgKG1hdGNoX2R1cCAzKSkpCi0gCSAgICAgIChj bG9iYmVyIChyZWc6Q0MgRkxBR1NfUkVHKSldKV0KLS0tLSBnY2MvY29uZmlnL2kzODYvYXRobG9u Lm1kLmpqCTIwMDYtMTAtMjkgMjA6NTY6NDUuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZp Zy9pMzg2L2F0aGxvbi5tZAkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotQEAg LTI5LDYgKzI5LDggQEAKLSAJICAgKGNvbnN0X3N0cmluZyAidmVjdG9yIildCi0gCShjb25zdF9z dHJpbmcgImRpcmVjdCIpKSkKLSAKLSsoZGVmaW5lX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRp cmVjdCx2ZWN0b3IsZG91YmxlIgotKyAgKGNvbnN0X3N0cmluZyAiZGlyZWN0IikpCi0gOzsKLSA7 OyAgICAgICAgICAgZGVjb2RlMCBkZWNvZGUxIGRlY29kZTIKLSA7OyAgICAgICAgICAgICAgICAg XCAgICB8ICAgLwotQEAgLTEzMSwxOCArMTMzLDIyIEBACi0gCi0gOzsgSnVtcCBpbnN0cnVjdGlv bnMgYXJlIGV4ZWN1dGVkIGluIHRoZSBicmFuY2ggdW5pdCBjb21wbGV0ZWx5IHRyYW5zcGFyZW50 IHRvIHVzCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fYnJhbmNoIiAwCi0tCQkJ IChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQiKQotKwkJCSAoYW5kIChl cV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikKLSAJCQkgICAgICAo ZXFfYXR0ciAidHlwZSIgImliciIpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24taWV1IikK LSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9jYWxsIiAwCi0gCQkJIChhbmQgKGVx X2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQiKQotIAkJCSAgICAgIChlcV9hdHRyICJ0 eXBlIiAiY2FsbCxjYWxsdiIpKQotIAkJCSAiYXRobG9uLXZlY3RvcixhdGhsb24taWV1IikKLSso ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9jYWxsX2FtZGZhbTEwIiAwCi0rCQkJIChh bmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAoZXFfYXR0ciAidHlwZSIg ImNhbGwsY2FsbHYiKSkKLSsJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWlldSIpCi0gCi0gOzsg TGF0ZW5jeSBvZiBwdXNoIG9wZXJhdGlvbiBpcyAzIGN5Y2xlcywgYnV0IEVTUCB2YWx1ZSBpcyBh dmFpbGFibGUKLSA7OyBlYXJsaWVyCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25f cHVzaCIgMgotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikK LSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIp Ci0gCQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJwdXNoIikpCi0gCQkJICJhdGhsb24tZGlyZWN0 LGF0aGxvbi1hZ3UsYXRobG9uLXN0b3JlIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0 aGxvbl9wb3AiIDQKLUBAIC0xNTMsMTIgKzE1OSwxNiBAQAotIAkJCSAoYW5kIChlcV9hdHRyICJj cHUiICJrOCxnZW5lcmljNjQiKQotIAkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAicG9wIikpCi0g CQkJICJhdGhsb24tZG91YmxlLChhdGhsb24taWV1K2F0aGxvbi1sb2FkKSIpCi0rKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICJhdGhsb25fcG9wX2FtZGZhbTEwIiAzCi0rCQkJIChhbmQgKGVxX2F0 dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAoZXFfYXR0ciAidHlwZSIgInBvcCIpKQot KwkJCSAiYXRobG9uLWRpcmVjdCwoYXRobG9uLWlldSthdGhsb24tbG9hZCkiKQotIChkZWZpbmVf aW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2xlYXZlIiAzCi0gCQkJIChhbmQgKGVxX2F0dHIgImNw dSIgImF0aGxvbiIpCi0gCQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJsZWF2ZSIpKQotIAkJCSAi YXRobG9uLXZlY3RvciwoYXRobG9uLWlldSthdGhsb24tbG9hZCkiKQotIChkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAiYXRobG9uX2xlYXZlX2s4IiAzCi0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIg Ims4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxh bWRmYW0xMCIpCi0gCQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJsZWF2ZSIpKQotIAkJCSAiYXRo bG9uLWRvdWJsZSwoYXRobG9uLWlldSthdGhsb24tbG9hZCkiKQotIAotQEAgLTE2Nyw2ICsxNzcs MTEgQEAKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0g CQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJsZWEiKSkKLSAJCQkgImF0aGxvbi1kaXJlY3QsYXRo bG9uLWFndSxub3RoaW5nIikKLSs7OyBMZWEgZXhlY3V0ZXMgaW4gQUdVIHVuaXQgd2l0aCAxIGN5 Y2xlIGxhdGVuY3kgb24gQU1ERkFNMTAKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxv bl9sZWFfYW1kZmFtMTAiIDEKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQot KwkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAibGVhIikpCi0rCQkJICJhdGhsb24tZGlyZWN0LGF0 aGxvbi1hZ3Usbm90aGluZyIpCi0gCi0gOzsgTXVsIGV4ZWN1dGVzIGluIHNwZWNpYWwgbXVsdGlw bGllciB1bml0IGF0dGFjaGVkIHRvIElFVTAKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0 aGxvbl9pbXVsIiA1Ci1AQCAtMTc2LDI5ICsxOTEsMzUgQEAKLSAJCQkgImF0aGxvbi12ZWN0b3Is YXRobG9uLWlldTAsYXRobG9uLW11bHQsbm90aGluZyxub3RoaW5nLGF0aGxvbi1pZXUwIikKLSA7 OyA/Pz8gV2lkZW5pbmcgbXVsdGlwbHkgaXMgdmVjdG9yIG9yIGRvdWJsZS4KLSAoZGVmaW5lX2lu c25fcmVzZXJ2YXRpb24gImF0aGxvbl9pbXVsX2s4X0RJIiA0Ci0tCQkJIChhbmQgKGVxX2F0dHIg ImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVy aWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImltdWwiKQot IAkJCQkgICAoYW5kIChlcV9hdHRyICJtb2RlIiAiREkiKQotIAkJCQkJKGVxX2F0dHIgIm1lbW9y eSIgIm5vbmUsdW5rbm93biIpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0MCxhdGhsb24taWV1MCxh dGhsb24tbXVsdCxub3RoaW5nLGF0aGxvbi1pZXUwIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRp b24gImF0aGxvbl9pbXVsX2s4IiAzCi0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVy aWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIp Ci0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImltdWwiKQotIAkJCQkgICAoZXFfYXR0 ciAibWVtb3J5IiAibm9uZSx1bmtub3duIikpKQotIAkJCSAiYXRobG9uLWRpcmVjdDAsYXRobG9u LWlldTAsYXRobG9uLW11bHQsYXRobG9uLWlldTAiKQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAiYXRobG9uX2ltdWxfYW1kZmFtMTBfSEkiIDQKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAi YW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJpbXVsIikKLSsJCQkJ ICAgKGFuZCAoZXFfYXR0ciAibW9kZSIgIkhJIikKLSsJCQkJCShlcV9hdHRyICJtZW1vcnkiICJu b25lLHVua25vd24iKSkpKQotKwkJCSAiYXRobG9uLXZlY3RvcixhdGhsb24taWV1MCxhdGhsb24t bXVsdCxub3RoaW5nLGF0aGxvbi1pZXUwIikJCQkgCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9u ICJhdGhsb25faW11bF9tZW0iIDgKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikK LSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiaW11bCIpCi0gCQkJCSAgIChlcV9hdHRy ICJtZW1vcnkiICJsb2FkLGJvdGgiKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1sb2Fk LGF0aGxvbi1pZXUsYXRobG9uLW11bHQsbm90aGluZyxub3RoaW5nLGF0aGxvbi1pZXUiKQotIChk ZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2ltdWxfbWVtX2s4X0RJIiA3Ci0tCQkJIChh bmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNw dSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlw ZSIgImltdWwiKQotIAkJCQkgICAoYW5kIChlcV9hdHRyICJtb2RlIiAiREkiKQotIAkJCQkJKGVx X2F0dHIgIm1lbW9yeSIgImxvYWQsYm90aCIpKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxv bi1sb2FkLGF0aGxvbi1pZXUsYXRobG9uLW11bHQsbm90aGluZyxhdGhsb24taWV1IikKLSAoZGVm aW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9pbXVsX21lbV9rOCIgNgotLQkJCSAoYW5kIChl cV9hdHRyICJjcHUiICJrOCxnZW5lcmljNjQiKQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJr OCxnZW5lcmljNjQsYW1kZmFtMTAiKQotIAkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJp bXVsIikKLSAJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQsYm90aCIpKSkKLSAJCQkgImF0 aGxvbi12ZWN0b3IsYXRobG9uLWxvYWQsYXRobG9uLWlldSxhdGhsb24tbXVsdCxhdGhsb24taWV1 IikKLUBAIC0yMDksMjEgKzIzMCwyMyBAQAotIDs7IG90aGVyIGluc3RydWN0aW9ucy4KLSA7OyA/ Pz8gRXhwZXJpbWVudHMgc2hvdyB0aGF0IHRoZSBpZGl2IGNhbiBvdmVybGFwIHdpdGggcm91Z2hs eSA2IGN5Y2xlcwotIDs7IG9mIHRoZSBvdGhlciBjb2RlCi0rOzsgVXNpbmcgdGhlIHNhbWUgaGV1 cmlzdGljcyBmb3IgYW1kZmFtMTAgYXMgSzggd2l0aCBpZGl2Ci0gCi0gKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICJhdGhsb25faWRpdiIgNgotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhs b24sazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdl bmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImlkaXYi KQotIAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibm9uZSx1bmtub3duIikpKQotIAkJCSAiYXRo bG9uLXZlY3RvciwoYXRobG9uLWlldTAqNisoYXRobG9uLWZwc2NoZWQsYXRobG9uLWZ2ZWN0b3Ip KSIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25faWRpdl9tZW0iIDkKLS0JCQkg KGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVx X2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQsYW1kZmFtMTAiKQotIAkJCSAgICAgIChh bmQgKGVxX2F0dHIgInR5cGUiICJpZGl2IikKLSAJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIgImxv YWQsYm90aCIpKSkKLSAJCQkgImF0aGxvbi12ZWN0b3IsKChhdGhsb24tbG9hZCxhdGhsb24taWV1 MCo2KSsoYXRobG9uLWZwc2NoZWQsYXRobG9uLWZ2ZWN0b3IpKSIpCi0gOzsgVGhlIHBhcmFsbGVs aXNtIG9mIHN0cmluZyBpbnN0cnVjdGlvbnMgaXMgbm90IGRvY3VtZW50ZWQuICBNb2RlbCBpdCBz YW1lIHdheQotIDs7IGFzIGlkaXYgdG8gY3JlYXRlIHNtYWxsZXIgYXV0b21hdGEuICBUaGlzIHBy b2JhYmx5IGRvZXMgbm90IG1hdHRlciBtdWNoLgotKzs7IFVzaW5nIHRoZSBzYW1lIGhldXJpc3Rp Y3MgZm9yIGFtZGZhbTEwIGFzIEs4IHdpdGggaWRpdgotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAiYXRobG9uX3N0ciIgNgotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2Vu ZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxh bWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInN0ciIpCi0gCQkJCSAg IChlcV9hdHRyICJtZW1vcnkiICJsb2FkLGJvdGgsc3RvcmUiKSkpCi0gCQkJICJhdGhsb24tdmVj dG9yLGF0aGxvbi1sb2FkLGF0aGxvbi1pZXUwKjYiKQotQEAgLTIzNCwzNCArMjU3LDYyIEBACi0g CQkJCSAgIChhbmQgKGVxX2F0dHIgInVuaXQiICJpbnRlZ2VyLHVua25vd24iKQotIAkJCQkJKGVx X2F0dHIgIm1lbW9yeSIgIm5vbmUsdW5rbm93biIpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0 aGxvbi1pZXUiKQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2lkaXJlY3RfYW1k ZmFtMTAiIDEKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAg IChhbmQgKGVxX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpCi0rCQkJCSAgIChhbmQg KGVxX2F0dHIgInVuaXQiICJpbnRlZ2VyLHVua25vd24iKQotKwkJCQkJKGVxX2F0dHIgIm1lbW9y eSIgIm5vbmUsdW5rbm93biIpKSkpCi0rCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1pZXUiKQot IChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2l2ZWN0b3IiIDIKLSAJCQkgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGFuZCAoZXFf YXR0ciAiYXRobG9uX2RlY29kZSIgInZlY3RvciIpCi0gCQkJCSAgIChhbmQgKGVxX2F0dHIgInVu aXQiICJpbnRlZ2VyLHVua25vd24iKQotIAkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUsdW5r bm93biIpKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1pZXUsYXRobG9uLWlldSIpCi0r KGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25faXZlY3Rvcl9hbWRmYW0xMCIgMgotKwkJ CSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0 ciAiYW1kZmFtMTBfZGVjb2RlIiAidmVjdG9yIikKLSsJCQkJICAgKGFuZCAoZXFfYXR0ciAidW5p dCIgImludGVnZXIsdW5rbm93biIpCi0rCQkJCQkoZXFfYXR0ciAibWVtb3J5IiAibm9uZSx1bmtu b3duIikpKSkKLSsJCQkgImF0aGxvbi12ZWN0b3IsYXRobG9uLWlldSxhdGhsb24taWV1IikKLSsK LSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9pZGlyZWN0X2xvYWRtb3YiIDMKLS0J CQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQg KGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQsYW1kZmFtMTAiKQotIAkJCSAgICAg IChhbmQgKGVxX2F0dHIgInR5cGUiICJpbW92IikKLSAJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIg ImxvYWQiKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1sb2FkIikKLSsKLSAoZGVmaW5l X2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9pZGlyZWN0X2xvYWQiIDQKLSAJCQkgKGFuZCAoZXFf YXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0 ciAiYXRobG9uX2RlY29kZSIgImRpcmVjdCIpCi0gCQkJCSAgIChhbmQgKGVxX2F0dHIgInVuaXQi ICJpbnRlZ2VyLHVua25vd24iKQotIAkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQot IAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tbG9hZCxhdGhsb24taWV1IikKLSsoZGVmaW5lX2lu c25fcmVzZXJ2YXRpb24gImF0aGxvbl9pZGlyZWN0X2xvYWRfYW1kZmFtMTAiIDQKLSsJCQkgKGFu ZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgImFt ZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIgInVuaXQiICJp bnRlZ2VyLHVua25vd24iKQotKwkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQotKwkJ CSAiYXRobG9uLWRpcmVjdCxhdGhsb24tbG9hZCxhdGhsb24taWV1IikKLSAoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gImF0aGxvbl9pdmVjdG9yX2xvYWQiIDYKLSAJCQkgKGFuZCAoZXFfYXR0ciAi Y3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAiYXRo bG9uX2RlY29kZSIgInZlY3RvciIpCi0gCQkJCSAgIChhbmQgKGVxX2F0dHIgInVuaXQiICJpbnRl Z2VyLHVua25vd24iKQotIAkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQotIAkJCSAi YXRobG9uLXZlY3RvcixhdGhsb24tbG9hZCxhdGhsb24taWV1LGF0aGxvbi1pZXUiKQotKyhkZWZp bmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2l2ZWN0b3JfbG9hZF9hbWRmYW0xMCIgNgotKwkJ CSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0 ciAiYW1kZmFtMTBfZGVjb2RlIiAidmVjdG9yIikKLSsJCQkJICAgKGFuZCAoZXFfYXR0ciAidW5p dCIgImludGVnZXIsdW5rbm93biIpCi0rCQkJCQkoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkp Ci0rCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1sb2FkLGF0aGxvbi1pZXUsYXRobG9uLWlldSIp Ci0rCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25faWRpcmVjdF9tb3ZzdG9yZSIg MQotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikKLSsJCQkg KGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJ ICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImltb3YiKQotIAkJCQkgICAoZXFfYXR0ciAibWVt b3J5IiAic3RvcmUiKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1hZ3UsYXRobG9uLXN0 b3JlIikKLSsKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9pZGlyZWN0X2JvdGgi IDQKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0gCQkJ ICAgICAgKGFuZCAoZXFfYXR0ciAiYXRobG9uX2RlY29kZSIgImRpcmVjdCIpCi1AQCAtMjcwLDYg KzMyMSwxNSBAQAotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tbG9hZCwKLSAJCQkgIGF0aGxv bi1pZXUsYXRobG9uLXN0b3JlLAotIAkJCSAgYXRobG9uLXN0b3JlIikKLSsoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gImF0aGxvbl9pZGlyZWN0X2JvdGhfYW1kZmFtMTAiIDQKLSsJCQkgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgImFtZGZh bTEwX2RlY29kZSIgImRpcmVjdCIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIgInVuaXQiICJpbnRl Z2VyLHVua25vd24iKQotKwkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgImJvdGgiKSkpKQotKwkJCSAi YXRobG9uLWRpcmVjdCxhdGhsb24tbG9hZCwKLSsJCQkgIGF0aGxvbi1pZXUsYXRobG9uLXN0b3Jl LAotKwkJCSAgYXRobG9uLXN0b3JlIikJCQkgIAotKwotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAiYXRobG9uX2l2ZWN0b3JfYm90aCIgNgotIAkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhs b24sazgsZ2VuZXJpYzY0IikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJhdGhsb25fZGVjb2Rl IiAidmVjdG9yIikKLUBAIC0yNzksNiArMzM5LDE2IEBACi0gCQkJICBhdGhsb24taWV1LAotIAkJ CSAgYXRobG9uLWlldSwKLSAJCQkgIGF0aGxvbi1zdG9yZSIpCi0rKGRlZmluZV9pbnNuX3Jlc2Vy dmF0aW9uICJhdGhsb25faXZlY3Rvcl9ib3RoX2FtZGZhbTEwIiA2Ci0rCQkJIChhbmQgKGVxX2F0 dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAoYW5kIChlcV9hdHRyICJhbWRmYW0xMF9k ZWNvZGUiICJ2ZWN0b3IiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJ1bml0IiAiaW50ZWdlcix1 bmtub3duIikKLSsJCQkJCShlcV9hdHRyICJtZW1vcnkiICJib3RoIikpKSkKLSsJCQkgImF0aGxv bi12ZWN0b3IsYXRobG9uLWxvYWQsCi0rCQkJICBhdGhsb24taWV1LAotKwkJCSAgYXRobG9uLWll dSwKLSsJCQkgIGF0aGxvbi1zdG9yZSIpCi0rCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJh dGhsb25faWRpcmVjdF9zdG9yZSIgMQotIAkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24s azgsZ2VuZXJpYzY0IikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJhdGhsb25fZGVjb2RlIiAi ZGlyZWN0IikKLUBAIC0yODYsNiArMzU2LDE0IEBACi0gCQkJCQkoZXFfYXR0ciAibWVtb3J5IiAi c3RvcmUiKSkpKQotIAkJCSAiYXRobG9uLWRpcmVjdCwoYXRobG9uLWlldSthdGhsb24tYWd1KSwK LSAJCQkgIGF0aGxvbi1zdG9yZSIpCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25f aWRpcmVjdF9zdG9yZV9hbWRmYW0xMCIgMQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRm YW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZGlyZWN0 IikKLSsJCQkJICAgKGFuZCAoZXFfYXR0ciAidW5pdCIgImludGVnZXIsdW5rbm93biIpCi0rCQkJ CQkoZXFfYXR0ciAibWVtb3J5IiAic3RvcmUiKSkpKQotKwkJCSAiYXRobG9uLWRpcmVjdCwoYXRo bG9uLWlldSthdGhsb24tYWd1KSwKLSsJCQkgIGF0aGxvbi1zdG9yZSIpCi0rCi0gKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICJhdGhsb25faXZlY3Rvcl9zdG9yZSIgMgotIAkJCSAoYW5kIChlcV9h dHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRy ICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIikKLUBAIC0yOTMsNiArMzcxLDEzIEBACi0gCQkJCQko ZXFfYXR0ciAibWVtb3J5IiAic3RvcmUiKSkpKQotIAkJCSAiYXRobG9uLXZlY3RvciwoYXRobG9u LWlldSthdGhsb24tYWd1KSxhdGhsb24taWV1LAotIAkJCSAgYXRobG9uLXN0b3JlIikKLSsoZGVm aW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9pdmVjdG9yX3N0b3JlX2FtZGZhbTEwIiAyCi0r CQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAoYW5kIChlcV9h dHRyICJhbWRmYW0xMF9kZWNvZGUiICJ2ZWN0b3IiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJ1 bml0IiAiaW50ZWdlcix1bmtub3duIikKLSsJCQkJCShlcV9hdHRyICJtZW1vcnkiICJzdG9yZSIp KSkpCi0rCQkJICJhdGhsb24tdmVjdG9yLChhdGhsb24taWV1K2F0aGxvbi1hZ3UpLGF0aGxvbi1p ZXUsCi0rCQkJICBhdGhsb24tc3RvcmUiKQotIAotIDs7IEF0aGxvbiBmbG9hdGluIHBvaW50IHVu aXQKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9mbGR4ZiIgMTIKLUBAIC0zMDIs NyArMzg3LDcgQEAKLSAJCQkJCShlcV9hdHRyICJtb2RlIiAiWEYiKSkpKQotIAkJCSAiYXRobG9u LXZlY3RvcixhdGhsb24tZnBsb2FkMixhdGhsb24tZnZlY3Rvcio5IikKLSAoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gImF0aGxvbl9mbGR4Zl9rOCIgMTMKLS0JCQkgKGFuZCAoZXFfYXR0ciAiY3B1 IiAiazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0 LGFtZGZhbTEwIikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiZm1vdiIpCi0gCQkJ CSAgIChhbmQgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKQotIAkJCQkJKGVxX2F0dHIgIm1vZGUi ICJYRiIpKSkpCi1AQCAtMzE0LDcgKzM5OSw3IEBACi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnki ICJsb2FkIikpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkLGF0aGxvbi1mYW55 IikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9mbGRfazgiIDIKLS0JCQkgKGFu ZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1 IiAiazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBl IiAiZm1vdiIpCi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKQotIAkJCSAiYXRo bG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkazgsYXRobG9uLWZzdG9yZSIpCi1AQCAtMzI2LDcgKzQx MSw3IEBACi0gCQkJCQkoZXFfYXR0ciAibW9kZSIgIlhGIikpKSkKLSAJCQkgImF0aGxvbi12ZWN0 b3IsKGF0aGxvbi1mcHNjaGVkK2F0aGxvbi1hZ3UpLChhdGhsb24tc3RvcmUyKyhhdGhsb24tZnZl Y3Rvcio3KSkiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2ZzdHhmX2s4IiA4 Ci0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVx X2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFf YXR0ciAidHlwZSIgImZtb3YiKQotIAkJCQkgICAoYW5kIChlcV9hdHRyICJtZW1vcnkiICJzdG9y ZSxib3RoIikKLSAJCQkJCShlcV9hdHRyICJtb2RlIiAiWEYiKSkpKQotQEAgLTMzNywxNiArNDIy LDE2IEBACi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJzdG9yZSxib3RoIikpKQotIAkJCSAi YXRobG9uLWRpcmVjdCwoYXRobG9uLWZwc2NoZWQrYXRobG9uLWFndSksKGF0aGxvbi1mc3RvcmUr YXRobG9uLXN0b3JlKSIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fZnN0X2s4 IiAyCi0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQg KGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAo ZXFfYXR0ciAidHlwZSIgImZtb3YiKQotIAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAic3RvcmUs Ym90aCIpKSkKLSAJCQkgImF0aGxvbi1kaXJlY3QsKGF0aGxvbi1mcHNjaGVkK2F0aGxvbi1hZ3Up LChhdGhsb24tZnN0b3JlK2F0aGxvbi1zdG9yZSkiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAiYXRobG9uX2Zpc3QiIDQKLS0JCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdl bmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQs YW1kZmFtMTAiKQotIAkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAiZmlzdHAsZmlzdHRwIikpCi0g CQkJICJhdGhsb24tZGlyZWN0LChhdGhsb24tZnBzY2hlZCthdGhsb24tYWd1KSwoYXRobG9uLWZz dG9yZSthdGhsb24tc3RvcmUpIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9m bW92IiAyCi0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQiKQot KwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikK LSAJCQkgICAgICAoZXFfYXR0ciAidHlwZSIgImZtb3YiKSkKLSAJCQkgImF0aGxvbi1kaXJlY3Qs YXRobG9uLWZwc2NoZWQsYXRobG9uLWZhZGRtdWwiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAiYXRobG9uX2ZhZGRfbG9hZCIgNAotQEAgLTM1NSwxMiArNDQwLDEyIEBACi0gCQkJCSAgIChl cV9hdHRyICJtZW1vcnkiICJsb2FkIikpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBs b2FkLGF0aGxvbi1mYWRkIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9mYWRk X2xvYWRfazgiIDYKLS0JCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0IikKLSsJ CQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikKLSAJCQkgICAg ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAiZm9wIikKLSAJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIg ImxvYWQiKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZmFk ZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fZmFkZCIgNAotLQkJCSAoYW5k IChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0 ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGVxX2F0 dHIgInR5cGUiICJmb3AiKSkKLSAJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwc2NoZWQsYXRo bG9uLWZhZGQiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX2ZtdWxfbG9hZCIg NAotQEAgLTM2OSwxNiArNDU0LDE2IEBACi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJsb2Fk IikpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkLGF0aGxvbi1mbXVsIikKLSAo ZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9mbXVsX2xvYWRfazgiIDYKLS0JCQkgKGFu ZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1 IiAiazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBl IiAiZm11bCIpCi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKQotIAkJCSAiYXRo bG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkazgsYXRobG9uLWZtdWwiKQotIChkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAiYXRobG9uX2ZtdWwiIDQKLS0JCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRo bG9uLGs4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxn ZW5lcmljNjQsYW1kZmFtMTAiKQotIAkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAiZm11bCIpKQot IAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBzY2hlZCxhdGhsb24tZm11bCIpCi0gKGRlZmlu ZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fZnNnbiIgMgotLQkJCSAoYW5kIChlcV9hdHRyICJj cHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRo bG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJm c2duIikpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcHNjaGVkLGF0aGxvbi1mbXVsIikK LSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9mZGl2X2xvYWQiIDI0Ci1AQCAtMzg3 LDcgKzQ3Miw3IEBACi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKQotIAkJCSAi YXRobG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkLGF0aGxvbi1mbXVsIikKLSAoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gImF0aGxvbl9mZGl2X2xvYWRfazgiIDEzCi0tCQkJIChhbmQgKGVxX2F0dHIg ImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVy aWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImZkaXYiKQot IAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkKLSAJCQkgImF0aGxvbi1kaXJlY3Qs YXRobG9uLWZwbG9hZGs4LGF0aGxvbi1mbXVsIikKLUBAIC0zOTYsMTYgKzQ4MSwxNiBAQAotIAkJ CSAgICAgIChlcV9hdHRyICJ0eXBlIiAiZmRpdiIpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhs b24tZnBzY2hlZCxhdGhsb24tZm11bCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhs b25fZmRpdl9rOCIgMTEKLS0JCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0IikK LSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikKLSAJCQkg ICAgICAoZXFfYXR0ciAidHlwZSIgImZkaXYiKSkKLSAJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9u LWZwc2NoZWQsYXRobG9uLWZtdWwiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9u X2Zwc3BjX2xvYWQiIDEwMwotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2Vu ZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxh bWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImZwc3BjIikKLSAJCQkJ ICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxv bi1mcGxvYWQsYXRobG9uLWZ2ZWN0b3IiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRo bG9uX2Zwc3BjIiAxMDAKLS0JCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVy aWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQsYW1k ZmFtMTAiKQotIAkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAiZnBzcGMiKSkKLSAJCQkgImF0aGxv bi12ZWN0b3IsYXRobG9uLWZwc2NoZWQsYXRobG9uLWZ2ZWN0b3IiKQotIChkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAiYXRobG9uX2ZjbW92X2xvYWQiIDcKLUBAIC00MTgsMTIgKzUwMywxMiBAQAot IAkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAiZmNtb3YiKSkKLSAJCQkgImF0aGxvbi12ZWN0b3Is YXRobG9uLWZwc2NoZWQsYXRobG9uLWZ2ZWN0b3IiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlv biAiYXRobG9uX2ZjbW92X2xvYWRfazgiIDE3Ci0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4 LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRm YW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImZjbW92IikKLSAJCQkJICAg KGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1m cGxvYWRrOCxhdGhsb24tZnZlY3RvciIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhs b25fZmNtb3ZfazgiIDE1Ci0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIp Ci0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJ ICAgICAgKGVxX2F0dHIgInR5cGUiICJmY21vdiIpKQotIAkJCSAiYXRobG9uLXZlY3RvcixhdGhs b24tZnBzY2hlZCxhdGhsb24tZnZlY3RvciIpCi0gOzsgZmNvbWkgaXMgdmVjdG9yIGRlY29kZWQg YnkgdXNlcyBvbmx5IG9uZSBwaXBlLgotQEAgLTQzNCwxMyArNTE5LDEzIEBACi0gCQkJCSAgICAg ICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQotIAkJCSAiYXRobG9uLXZlY3RvcixhdGhs b24tZnBsb2FkLGF0aGxvbi1mYWRkIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxv bl9mY29taV9sb2FkX2s4IiA1Ci0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2 NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0g CQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgImZjbXAiKQotIAkJCQkgICAoYW5kIChlcV9h dHRyICJhdGhsb25fZGVjb2RlIiAidmVjdG9yIikKLSAJCQkJICAgICAgICAoZXFfYXR0ciAibWVt b3J5IiAibG9hZCIpKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1mcGxvYWRrOCxhdGhs b24tZmFkZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fZmNvbWkiIDMKLS0J CQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQg KGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQsYW1kZmFtMTAiKQotIAkJCSAgICAg IChhbmQgKGVxX2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IiKQotIAkJCQkgICAoZXFfYXR0 ciAidHlwZSIgImZjbXAiKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1mcHNjaGVkLGF0 aGxvbi1mYWRkIikKLUBAIC00NTAsMTggKzUzNSwxOCBAQAotIAkJCQkgICAoZXFfYXR0ciAibWVt b3J5IiAibG9hZCIpKSkKLSAJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwbG9hZCxhdGhsb24t ZmFkZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fZmNvbV9sb2FkX2s4IiA0 Ci0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVx X2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFf YXR0ciAidHlwZSIgImZjbXAiKQotIAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkK LSAJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwbG9hZGs4LGF0aGxvbi1mYWRkIikKLSAoZGVm aW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9mY29tIiAyCi0tCQkJIChhbmQgKGVxX2F0dHIg ImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQiKQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJh dGhsb24sazgsZ2VuZXJpYzY0LGFtZGZhbTEwIikKLSAJCQkgICAgICAoZXFfYXR0ciAidHlwZSIg ImZjbXAiKSkKLSAJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwc2NoZWQsYXRobG9uLWZhZGQi KQotIDs7IE5ldmVyIHNlZW4gYnkgdGhlIHNjaGVkdWxlciBiZWNhdXNlIHdlIHN0aWxsIGRvbid0 IGRvIHBvc3QgcmVnLXN0YWNrCi0gOzsgc2NoZWR1bGluZy4KLSA7KGRlZmluZV9pbnNuX3Jlc2Vy dmF0aW9uICJhdGhsb25fZnhjaCIgMgotLTsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9u LGs4LGdlbmVyaWM2NCIpCi0rOwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2Vu ZXJpYzY0LGFtZGZhbTEwIikKLSA7CQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJmeGNoIikpCi0g OwkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBzY2hlZCxhdGhsb24tZmFueSIpCi0gCi1AQCAt NTE2LDYgKzYwMSwyMyBAQAotIAkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJtbXhtb3Ys c3NlbW92IikKLSAJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpCi0gCQkJICJhdGhs b24tZGlyZWN0LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZnN0b3JlIikKLSs7OyBPbiBBTURGQU0x MCBhbGwgZG91YmxlLCBzaW5nbGUgYW5kIGludGVnZXIgcGFja2VkIGFuZCBzY2FsYXIgU1NFeCBk YXRhCi0rOzsgbG9hZHMgIGdlbmVyYXRlZCBhcmUgZGlyZWN0IHBhdGgsIGxhdGVuY3kgb2YgMiBh bmQgZG8gbm90IHVzZSBhbnkgRlAKLSs7OyBleGVjdXRpb25zIHVuaXRzLiBObyBzZXBlcmF0ZSBl bnRyaWVzIGZvciBtb3ZscHgvbW92aHB4IGxvYWRzLCB3aGljaAotKzs7IGFyZSBkaXJlY3QgcGF0 aCwgbGF0ZW5jeSBvZiA0IGFuZCB1c2UgdGhlIEZBREQvRk1VTCBGUCBleGVjdXRpb24gdW5pdHMs Ci0rOzsgYXMgdGhleSB3aWxsIG5vdCBiZSBnZW5lcmF0ZWQuCi0rKGRlZmluZV9pbnNuX3Jlc2Vy dmF0aW9uICJhdGhsb25fc3NlbGRfYW1kZmFtMTAiIDIKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1 IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2Vtb3YiKQot KwkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkKLSsJCQkgImF0aGxvbi1kaXJlY3Qs YXRobG9uLWZwbG9hZGs4IikKLSs7OyBPbiBBTURGQU0xMCBNTVggZGF0YSBsb2FkcyAgZ2VuZXJh dGVkIGFyZSBkaXJlY3QgcGF0aCwgbGF0ZW5jeSBvZiA0Ci0rOzsgYW5kIGNhbiB1c2UgYW55ICBG UCBleGVjdXRpb25zIHVuaXRzCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fbW14 bGRfYW1kZmFtMTAiIDQKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJ CSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJtbXhtb3YiKQotKwkJCQkgICAoZXFfYXR0ciAi bWVtb3J5IiAibG9hZCIpKSkKLSsJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwbG9hZGs4LCBh dGhsb24tZmFueSIpCQkJIAotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX21teHNz ZXN0IiAzCi0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0gCQkJICAg ICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgIm1teG1vdixzc2Vtb3YiKQotQEAgLTUzMyw2ICs2MzUs MjUgQEAKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibW14bW92LHNzZW1vdiIpCi0g CQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJzdG9yZSxib3RoIikpKQotIAkJCSAiYXRobG9uLWRp cmVjdCwoYXRobG9uLWZwc2NoZWQrYXRobG9uLWFndSksKGF0aGxvbi1mc3RvcmUrYXRobG9uLXN0 b3JlKSIpCi0rOzsgT24gQU1ERkFNMTAgYWxsIGRvdWJsZSwgc2luZ2xlIGFuZCBpbnRlZ2VyIHBh Y2tlZCBTU0V4IGRhdGEgc3RvcmVzCi0rOzsgZ2VuZXJhdGVkIGFyZSBhbGwgZG91YmxlIHBhdGgs IGxhdGVuY3kgb2YgMiBhbmQgdXNlIHRoZSBGU1RPUkUgRlAKLSs7OyBleGVjdXRpb24gdW5pdC4g Tm8gZW50cmllcyBzZXBlcmF0ZSBmb3IgbW92dXB4L21vdmRxdSwgd2hpY2ggYXJlCi0rOzsgdmVj dG9yIHBhdGgsIGxhdGVuY3kgb2YgMyBhbmQgdXNlIHRoZSBGU1RPUkUqMiBGUCBleGVjdXRpb24g dW5pdCwKLSs7OyBhcyB0aGV5IHdpbGwgbm90IGJlIGdlbmVyYXRlZC4KLSsoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gImF0aGxvbl9zc2VzdF9hbWRmYW0xMCIgMgotKwkJCSAoYW5kIChlcV9hdHRy ICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZW1v diIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIgIm1vZGUiICJWNFNGLFYyREYsVEkiKQotKwkJCQkJ KGVxX2F0dHIgIm1lbW9yeSIgInN0b3JlLGJvdGgiKSkpKQotKwkJCSAiYXRobG9uLWRvdWJsZSwo YXRobG9uLWZwc2NoZWQrYXRobG9uLWFndSksKChhdGhsb24tZnN0b3JlK2F0aGxvbi1zdG9yZSkq MikiKQotKzs7IE9uIEFNREZBTTEwIGFsbCBkb3VibGUsIHNpbmdsZSBhbmQgaW50ZWdlciBzY2Fs YXIgU1NFeCBhbmQgTU1YCi0rOzsgZGF0YSBzdG9yZXMgZ2VuZXJhdGVkIGFyZSBhbGwgZGlyZWN0 IHBhdGgsIGxhdGVuY3kgb2YgMiBhbmQgdXNlCi0rOzsgdGhlIEZTVE9SRSBGUCBleGVjdXRpb24g dW5pdAotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX21teHNzZXN0X3Nob3J0X2Ft ZGZhbTEwIiAyCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAg ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAibW14bW92LHNzZW1vdiIpCi0rCQkJCSAgIChlcV9hdHRy ICJtZW1vcnkiICJzdG9yZSxib3RoIikpKQotKwkJCSAiYXRobG9uLWRpcmVjdCwoYXRobG9uLWZw c2NoZWQrYXRobG9uLWFndSksKGF0aGxvbi1mc3RvcmUrYXRobG9uLXN0b3JlKSIpCi0gKGRlZmlu ZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fbW92YXBzX2s4IiAyCi0gCQkJIChhbmQgKGVxX2F0 dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIg InNzZW1vdiIpCi1AQCAtNTc4LDYgKzY5OSwxMSBAQAotIAkJCSAgICAgIChhbmQgKGVxX2F0dHIg InR5cGUiICJzc2Vsb2csc3NlbG9nMSIpCi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJsb2Fk IikpKQotIAkJCSAiYXRobG9uLWRvdWJsZSxhdGhsb24tZnBsb2FkMms4LChhdGhsb24tZm11bCoy KSIpCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlbG9nX2xvYWRfYW1kZmFt MTAiIDQKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChh bmQgKGVxX2F0dHIgInR5cGUiICJzc2Vsb2csc3NlbG9nMSIpCi0rCQkJCSAgIChlcV9hdHRyICJt ZW1vcnkiICJsb2FkIikpKQotKwkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkazgsKGF0 aGxvbi1mYWRkfGF0aGxvbi1mbXVsKSIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhs b25fc3NlbG9nIiAzCi0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbiIpCi0gCQkJICAg ICAgKGVxX2F0dHIgInR5cGUiICJzc2Vsb2csc3NlbG9nMSIpKQotQEAgLTU4Niw2ICs3MTIsMTEg QEAKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJpYzY0IikKLSAJCQkgICAgICAo ZXFfYXR0ciAidHlwZSIgInNzZWxvZyxzc2Vsb2cxIikpCi0gCQkJICJhdGhsb24tZG91YmxlLGF0 aGxvbi1mcHNjaGVkLGF0aGxvbi1mbXVsIikKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0 aGxvbl9zc2Vsb2dfYW1kZmFtMTAiIDIKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFt MTAiKQotKwkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAic3NlbG9nLHNzZWxvZzEiKSkKLSsJCQkg ImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwc2NoZWQsKGF0aGxvbi1mYWRkfGF0aGxvbi1mbXVsKSIp Ci0rCi0gOzsgPz8/IHBjbXAgZXhlY3V0ZXMgaW4gYWRkbXVsLCBwcm9iYWJseSBub3Qgd29ydGh3 aGlsZSB0byBib3RoZXIgYWJvdXQgdGhhdC4KLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0 aGxvbl9zc2VjbXBfbG9hZCIgMgotIAkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24iKQot QEAgLTU5NCwxMyArNzI1LDEzIEBACi0gCQkJCQkoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkp Ci0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcGxvYWQsYXRobG9uLWZhZGQiKQotIChkZWZp bmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWNtcF9sb2FkX2s4IiA0Ci0tCQkJIChhbmQg KGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIg Ims4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIg InNzZWNtcCIpCi0gCQkJCSAgIChhbmQgKGVxX2F0dHIgIm1vZGUiICJTRixERixESSxUSSIpCi0g CQkJCQkoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0 aGxvbi1mcGxvYWRrOCxhdGhsb24tZmFkZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJh dGhsb25fc3NlY21wIiAyCi0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5l cmljNjQiKQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0LGFt ZGZhbTEwIikKLSAJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlY21wIikKLSAJCQkJ ICAgKGVxX2F0dHIgIm1vZGUiICJTRixERixESSxUSSIpKSkKLSAJCQkgImF0aGxvbi1kaXJlY3Qs YXRobG9uLWZwc2NoZWQsYXRobG9uLWZhZGQiKQotQEAgLTYxNCw2ICs3NDUsMTEgQEAKLSAJCQkg ICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlY21wIikKLSAJCQkJICAgKGVxX2F0dHIgIm1l bW9yeSIgImxvYWQiKSkpCi0gCQkJICJhdGhsb24tZG91YmxlLGF0aGxvbi1mcGxvYWQyazgsKGF0 aGxvbi1mYWRkKjIpIikKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VjbXB2 ZWN0b3JfbG9hZF9hbWRmYW0xMCIgNAotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0x MCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWNtcCIpCi0rCQkJCSAgIChl cV9hdHRyICJtZW1vcnkiICJsb2FkIikpKQotKwkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBs b2FkazgsYXRobG9uLWZhZGQiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3Nz ZWNtcHZlY3RvciIgMwotIAkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24iKQotIAkJCSAg ICAgIChlcV9hdHRyICJ0eXBlIiAic3NlY21wIikpCi1AQCAtNjIyLDYgKzc1OCwxMCBAQAotIAkJ CSAoYW5kIChlcV9hdHRyICJjcHUiICJrOCxnZW5lcmljNjQiKQotIAkJCSAgICAgIChlcV9hdHRy ICJ0eXBlIiAic3NlY21wIikpCi0gCQkJICJhdGhsb24tZG91YmxlLGF0aGxvbi1mcHNjaGVkLChh dGhsb24tZmFkZCoyKSIpCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlY21w dmVjdG9yX2FtZGZhbTEwIiAyCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikK LSsJCQkgICAgICAoZXFfYXR0ciAidHlwZSIgInNzZWNtcCIpKQotKwkJCSAiYXRobG9uLWRpcmVj dCxhdGhsb24tZnBzY2hlZCxhdGhsb24tZmFkZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9u ICJhdGhsb25fc3NlY29taV9sb2FkIiA0Ci0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxv biIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWNvbWkiKQotQEAgLTYzMiwx MCArNzcyLDIwIEBACi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWNvbWkiKQot IAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkKLSAJCQkgImF0aGxvbi12ZWN0b3Is YXRobG9uLWZwbG9hZGs4LGF0aGxvbi1mYWRkIikKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24g ImF0aGxvbl9zc2Vjb21pX2xvYWRfYW1kZmFtMTAiIDUKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1 IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2Vjb21pIikK LSsJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpCi0rCQkJICJhdGhsb24tZGlyZWN0 LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZmFkZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9u ICJhdGhsb25fc3NlY29taSIgNAotIAkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgs Z2VuZXJpYzY0IikKLSAJCQkgICAgICAoZXFfYXR0ciAidHlwZSIgInNzZWNtcCIpKQotIAkJCSAi YXRobG9uLXZlY3RvcixhdGhsb24tZnBzY2hlZCxhdGhsb24tZmFkZCIpCi0rKGRlZmluZV9pbnNu X3Jlc2VydmF0aW9uICJhdGhsb25fc3NlY29taV9hbWRmYW0xMCIgMwotKwkJCSAoYW5kIChlcV9h dHRyICJjcHUiICJhbWRmYW0xMCIpCi0rOzsgSXQgc2VlbXMgYXRobG9uX3NzZWNvbWkgaGFzIGEg YnVnIGluIHRoZSBhdHRyX3R5cGUsIGZpeGVkIGZvciBhbWRmYW0xMAotKwkJCSAgICAgIChlcV9h dHRyICJ0eXBlIiAic3NlY29taSIpKQotKwkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBzY2hl ZCxhdGhsb24tZmFkZCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlYWRk X2xvYWQiIDQKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikKLSAJCQkgICAgICAo YW5kIChlcV9hdHRyICJ0eXBlIiAic3NlYWRkIikKLUBAIC02NDMsMTMgKzc5MywxMyBAQAotIAkJ CQkJKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhs b24tZnBsb2FkLGF0aGxvbi1mYWRkIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxv bl9zc2VhZGRfbG9hZF9rOCIgNgotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJrOCxnZW5lcmlj NjQiKQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJrOCxnZW5lcmljNjQsYW1kZmFtMTAiKQot IAkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2VhZGQiKQotIAkJCQkgICAoYW5kIChl cV9hdHRyICJtb2RlIiAiU0YsREYsREkiKQotIAkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQi KSkpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkazgsYXRobG9uLWZhZGQiKQot IChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWFkZCIgNAotLQkJCSAoYW5kIChl cV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAoZXFfYXR0ciAi Y3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFf YXR0ciAidHlwZSIgInNzZWFkZCIpCi0gCQkJCSAgIChlcV9hdHRyICJtb2RlIiAiU0YsREYsREki KSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcHNjaGVkLGF0aGxvbi1mYWRkIikKLUBA IC02NjMsNiArODEzLDExIEBACi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWFk ZCIpCi0gCQkJCSAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKQotIAkJCSAiYXRobG9uLWRv dWJsZSxhdGhsb24tZnBsb2FkMms4LChhdGhsb24tZmFkZCoyKSIpCi0rKGRlZmluZV9pbnNuX3Jl c2VydmF0aW9uICJhdGhsb25fc3NlYWRkdmVjdG9yX2xvYWRfYW1kZmFtMTAiIDYKLSsJCQkgKGFu ZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5 cGUiICJzc2VhZGQiKQotKwkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkKLSsJCQkg ImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwbG9hZGs4LGF0aGxvbi1mYWRkIikKLSAoZGVmaW5lX2lu c25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VhZGR2ZWN0b3IiIDUKLSAJCQkgKGFuZCAoZXFfYXR0 ciAiY3B1IiAiYXRobG9uIikKLSAJCQkgICAgICAoZXFfYXR0ciAidHlwZSIgInNzZWFkZCIpKQot QEAgLTY3MSw2ICs4MjYsMTAgQEAKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsZ2VuZXJp YzY0IikKLSAJCQkgICAgICAoZXFfYXR0ciAidHlwZSIgInNzZWFkZCIpKQotIAkJCSAiYXRobG9u LWRvdWJsZSxhdGhsb24tZnBzY2hlZCwoYXRobG9uLWZhZGQqMikiKQotKyhkZWZpbmVfaW5zbl9y ZXNlcnZhdGlvbiAiYXRobG9uX3NzZWFkZHZlY3Rvcl9hbWRmYW0xMCIgNAotKwkJCSAoYW5kIChl cV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJzc2Vh ZGQiKSkKLSsJCQkgImF0aGxvbi1kaXJlY3QsYXRobG9uLWZwc2NoZWQsYXRobG9uLWZhZGQiKQot IAotIDs7IENvbnZlcnNpb25zIGJlaGF2ZXMgdmVyeSBpcnJlZ3VsYXJseSBhbmQgdGhlIHNjaGVk dWxpbmcgaXMgY3JpdGljYWwgaGVyZS4KLSA7OyBUYWtlIGVhY2ggaW5zdHJ1Y3Rpb24gc2VwYXJh dGVseS4gIEFzc3VtZSB0aGF0IHRoZSBtb2RlIGlzIGFsd2F5cyBzZXQgdG8gdGhlCi1AQCAtNjg0 LDEyICs4NDMsMjUgQEAKLSAJCQkJCShhbmQgKGVxX2F0dHIgIm1vZGUiICJERiIpCi0gCQkJCQkg ICAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0 aGxvbi1mcGxvYWRrOCxhdGhsb24tZnN0b3JlIikKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24g ImF0aGxvbl9zc2VjdnRfY3Z0c3Myc2RfbG9hZF9hbWRmYW0xMCIgNwotKwkJCSAoYW5kIChlcV9h dHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNz ZWN2dCIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIp Ci0rCQkJCQkoYW5kIChlcV9hdHRyICJtb2RlIiAiREYiKQotKwkJCQkJICAgICAoZXFfYXR0ciAi bWVtb3J5IiAibG9hZCIpKSkpKQotKwkJCSAiYXRobG9uLWRvdWJsZSxhdGhsb24tZnBsb2Fkazgs KGF0aGxvbi1mYWRkbXVsK2F0aGxvbi1mc3RvcmUpIikKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRp b24gImF0aGxvbl9zc2VjdnRfY3Z0c3Myc2QiIDIKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAi YXRobG9uLGs4LGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNz ZWN2dCIpCi0gCQkJCSAgIChhbmQgKGVxX2F0dHIgImF0aGxvbl9kZWNvZGUiICJkaXJlY3QiKQot IAkJCQkJKGVxX2F0dHIgIm1vZGUiICJERiIpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxv bi1mcHNjaGVkLGF0aGxvbi1mc3RvcmUiKQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRo bG9uX3NzZWN2dF9jdnRzczJzZF9hbWRmYW0xMCIgNwotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUi ICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0r CQkJCSAgIChhbmQgKGVxX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgInZlY3RvciIpCi0rCQkJCQko ZXFfYXR0ciAibW9kZSIgIkRGIikpKSkKLSsJCQkgImF0aGxvbi12ZWN0b3IsYXRobG9uLWZwc2No ZWQsYXRobG9uLWZhZGRtdWwsKGF0aGxvbi1mc3RvcmUqMikiKQotIDs7IGN2dHBzMnBkLiAgTW9k ZWwgc2FtZSB3YXkgdGhlIG90aGVyIGRvdWJsZSBkZWNvZGVkIEZQIGNvbnZlcnNpb25zLgotIChk ZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWN2dF9jdnRwczJwZF9sb2FkX2s4IiA1 Ci0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGF0aGxvbixnZW5lcmljNjQiKQotQEAgLTY5 OCwxMiArODcwLDI1IEBACi0gCQkJCQkoYW5kIChlcV9hdHRyICJtb2RlIiAiVjJERixWNFNGLFRJ IikKLSAJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKSkKLSAJCQkgImF0aGxv bi1kb3VibGUsYXRobG9uLWZwbG9hZDJrOCwoYXRobG9uLWZzdG9yZSoyKSIpCi0rKGRlZmluZV9p bnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlY3Z0X2N2dHBzMnBkX2xvYWRfYW1kZmFtMTAiIDQK LSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVx X2F0dHIgInR5cGUiICJzc2VjdnQiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJhbWRmYW0xMF9k ZWNvZGUiICJkaXJlY3QiKQotKwkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlYyREYsVjRTRixU SSIpCi0rCQkJCQkgICAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKSkpCi0rCQkJICJhdGhs b24tZGlyZWN0LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZnN0b3JlIikKLSAoZGVmaW5lX2luc25f cmVzZXJ2YXRpb24gImF0aGxvbl9zc2VjdnRfY3Z0cHMycGRfazgiIDMKLSAJCQkgKGFuZCAoZXFf YXR0ciAiY3B1IiAiazgsYXRobG9uLGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0 ciAidHlwZSIgInNzZWN2dCIpCi0gCQkJCSAgIChhbmQgKGVxX2F0dHIgImF0aGxvbl9kZWNvZGUi ICJkb3VibGUiKQotIAkJCQkJKGVxX2F0dHIgIm1vZGUiICJWMkRGLFY0U0YsVEkiKSkpKQotIAkJ CSAiYXRobG9uLWRvdWJsZSxhdGhsb24tZnBzY2hlZCxhdGhsb24tZnN0b3JlLGF0aGxvbi1mc3Rv cmUiKQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWN2dF9jdnRwczJwZF9h bWRmYW0xMCIgMgotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAg ICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIg ImFtZGZhbTEwX2RlY29kZSIgImRpcmVjdCIpCi0rCQkJCQkoZXFfYXR0ciAibW9kZSIgIlYyREYs VjRTRixUSSIpKSkpCi0rCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcHNjaGVkLGF0aGxvbi1m c3RvcmUiKQotIDs7IGN2dHNpMnNkIG1lbSxyZWcgaXMgZGlyZWN0cGF0aCBwYXRoICAoY3Z0c2ky c2QgcmVnLHJlZyBpcyBkb3VibGVwYXRoKQotIDs7IGN2dHNpMnNkIGhhcyB0cm91Z2hwdXQgMSBh bmQgaXMgZXhlY3V0ZWQgaW4gc3RvcmUgdW5pdCB3aXRoIGxhdGVuY3kgb2YgNgotIChkZWZpbmVf aW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWljdnRfY3Z0c2kyc2RfbG9hZCIgNgotQEAgLTcx Myw2ICs4OTgsMTMgQEAKLSAJCQkJCShhbmQgKGVxX2F0dHIgIm1vZGUiICJTRixERiIpCi0gCQkJ CQkgICAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0 LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZnN0b3JlIikKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRp b24gImF0aGxvbl9zc2VpY3Z0X2N2dHNpMnNkX2xvYWRfYW1kZmFtMTAiIDkKLSsJCQkgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJzc2VpY3Z0IikKLSsJCQkJICAgKGFuZCAoZXFfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91 YmxlIikKLSsJCQkJCShhbmQgKGVxX2F0dHIgIm1vZGUiICJTRixERiIpCi0rCQkJCQkgICAgIChl cV9hdHRyICJtZW1vcnkiICJsb2FkIikpKSkpCi0rCQkJICJhdGhsb24tZG91YmxlLGF0aGxvbi1m cGxvYWRrOCwoYXRobG9uLWZhZGRtdWwrYXRobG9uLWZzdG9yZSkiKQotIDs7IGN2dHNpMnNzIG1l bSwgcmVnIGlzIGRvdWJsZXBhdGgKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9z c2VpY3Z0X2N2dHNpMnNzX2xvYWQiIDkKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9u IikKLUBAIC03MjgsNiArOTIwLDEzIEBACi0gCQkJCQkoYW5kIChlcV9hdHRyICJtb2RlIiAiU0Ys REYiKQotIAkJCQkJICAgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkpKQotIAkJCSAiYXRo bG9uLWRvdWJsZSxhdGhsb24tZnBsb2FkazgsKGF0aGxvbi1mc3RvcmUqMikiKQotKyhkZWZpbmVf aW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWljdnRfY3Z0c2kyc3NfbG9hZF9hbWRmYW0xMCIg OQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAo ZXFfYXR0ciAidHlwZSIgInNzZWljdnQiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJhbWRmYW0x MF9kZWNvZGUiICJkb3VibGUiKQotKwkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlNGLERGIikK LSsJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKSkKLSsJCQkgImF0aGxvbi1k b3VibGUsYXRobG9uLWZwbG9hZGs4LChhdGhsb24tZmFkZG11bCthdGhsb24tZnN0b3JlKSIpCQkJ IAotIDs7IGN2dHNpMnNkIHJlZyxyZWcgaXMgZG91YmxlIGRlY29kZWQgKHZlY3RvciBvbiBBdGhs b24pCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlaWN2dF9jdnRzaTJzZF9r OCIgMTEKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiazgsYXRobG9uLGdlbmVyaWM2NCIpCi1A QCAtNzM2LDYgKzkzNSwxMyBAQAotIAkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlNGLERGIikK LSAJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpKSkKLSAJCQkgImF0aGxvbi1k b3VibGUsYXRobG9uLWZwbG9hZGs4LGF0aGxvbi1mc3RvcmUiKQotKyhkZWZpbmVfaW5zbl9yZXNl cnZhdGlvbiAiYXRobG9uX3NzZWljdnRfY3Z0c2kyc2RfYW1kZmFtMTAiIDE0Ci0rCQkJIChhbmQg KGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBl IiAic3NlaWN2dCIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgInZl Y3RvciIpCi0rCQkJCQkoYW5kIChlcV9hdHRyICJtb2RlIiAiU0YsREYiKQotKwkJCQkJICAgICAo ZXFfYXR0ciAibWVtb3J5IiAibm9uZSIpKSkpKQotKwkJCSAiYXRobG9uLXZlY3RvcixhdGhsb24t ZnBsb2FkazgsKGF0aGxvbi1mYWRkbXVsK2F0aGxvbi1mc3RvcmUpIikKLSA7OyBjdnRzaTJzcyBy ZWcsIHJlZyBpcyBkb3VibGVwYXRoCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25f c3NlaWN2dF9jdnRzaTJzcyIgMTQKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4 LGdlbmVyaWM2NCIpCi1AQCAtNzQ0LDYgKzk1MCwxMyBAQAotIAkJCQkJKGFuZCAoZXFfYXR0ciAi bW9kZSIgIlNGLERGIikKLSAJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpKSkK LSAJCQkgImF0aGxvbi12ZWN0b3IsYXRobG9uLWZwbG9hZGs4LChhdGhsb24tZnZlY3RvcioyKSIp Ci0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlaWN2dF9jdnRzaTJzc19hbWRm YW0xMCIgMTQKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAg IChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSsJCQkJICAgKGFuZCAoZXFfYXR0ciAi YW1kZmFtMTBfZGVjb2RlIiAidmVjdG9yIikKLSsJCQkJCShhbmQgKGVxX2F0dHIgIm1vZGUiICJT RixERiIpCi0rCQkJCQkgICAgIChlcV9hdHRyICJtZW1vcnkiICJub25lIikpKSkpCi0rCQkJICJh dGhsb24tdmVjdG9yLGF0aGxvbi1mcGxvYWRrOCwoYXRobG9uLWZhZGRtdWwrYXRobG9uLWZzdG9y ZSkiKQotIDs7IGN2dHNkMnNzIG1lbSxyZWcgaXMgZG91YmxlcGF0aCwgdHJvdWdocHV0IHVua25v d24sIGxhdGVuY3kgOQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWN2dF9j dnRzZDJzc19sb2FkX2s4IiA5Ci0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGF0aGxvbixn ZW5lcmljNjQiKQotQEAgLTc1Miw2ICs5NjUsMTMgQEAKLSAJCQkJCShhbmQgKGVxX2F0dHIgIm1v ZGUiICJTRiIpCi0gCQkJCQkgICAgIChlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKSkpCi0gCQkJ ICJhdGhsb24tZG91YmxlLGF0aGxvbi1mcGxvYWRrOCwoYXRobG9uLWZzdG9yZSozKSIpCi0rKGRl ZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlY3Z0X2N2dHNkMnNzX2xvYWRfYW1kZmFt MTAiIDkKLSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChh bmQgKGVxX2F0dHIgInR5cGUiICJzc2VjdnQiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJhbWRm YW0xMF9kZWNvZGUiICJkb3VibGUiKQotKwkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlNGIikK LSsJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKSkKLSsJCQkgImF0aGxvbi1k b3VibGUsYXRobG9uLWZwbG9hZGs4LChhdGhsb24tZmFkZG11bCthdGhsb24tZnN0b3JlKSIpCi0g OzsgY3Z0c2Qyc3MgcmVnLHJlZyBpcyB2ZWN0b3JwYXRoLCB0cm91Z2hwdXQgdW5rbm93biwgbGF0 ZW5jeSAxMgotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWN2dF9jdnRzZDJz cyIgMTIKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCIpCi1A QCAtNzYwLDYgKzk4MCwxMyBAQAotIAkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlNGIikKLSAJ CQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpKSkKLSAJCQkgImF0aGxvbi12ZWN0 b3IsYXRobG9uLWZwc2NoZWQsKGF0aGxvbi1mdmVjdG9yKjMpIikKLSsoZGVmaW5lX2luc25fcmVz ZXJ2YXRpb24gImF0aGxvbl9zc2VjdnRfY3Z0c2Qyc3NfYW1kZmFtMTAiIDgKLSsJCQkgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUi ICJzc2VjdnQiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJ2ZWN0 b3IiKQotKwkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlNGIikKLSsJCQkJCSAgICAgKGVxX2F0 dHIgIm1lbW9yeSIgIm5vbmUiKSkpKSkKLSsJCQkgImF0aGxvbi12ZWN0b3IsYXRobG9uLWZwc2No ZWQsYXRobG9uLWZhZGRtdWwsKGF0aGxvbi1mc3RvcmUqMikiKQotIChkZWZpbmVfaW5zbl9yZXNl cnZhdGlvbiAiYXRobG9uX3NzZWN2dF9jdnRwZDJwc19sb2FkX2s4IiA4Ci0gCQkJIChhbmQgKGVx X2F0dHIgImNwdSIgImF0aGxvbixrOCxnZW5lcmljNjQiKQotIAkJCSAgICAgIChhbmQgKGVxX2F0 dHIgInR5cGUiICJzc2VjdnQiKQotQEAgLTc2Nyw2ICs5OTQsMTMgQEAKLSAJCQkJCShhbmQgKGVx X2F0dHIgIm1vZGUiICJWNFNGLFYyREYsVEkiKQotIAkJCQkJICAgICAoZXFfYXR0ciAibWVtb3J5 IiAibG9hZCIpKSkpKQotIAkJCSAiYXRobG9uLWRvdWJsZSxhdGhsb24tZnBsb2FkMms4LChhdGhs b24tZnN0b3JlKjMpIikKLSsoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VjdnRf Y3Z0cGQycHNfbG9hZF9hbWRmYW0xMCIgOQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRm YW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0rCQkJCSAg IChhbmQgKGVxX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpCi0rCQkJCQkoYW5kIChl cV9hdHRyICJtb2RlIiAiVjRTRixWMkRGLFRJIikKLSsJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9y eSIgImxvYWQiKSkpKSkKLSsJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWZwbG9hZGs4LChhdGhs b24tZmFkZG11bCthdGhsb24tZnN0b3JlKSIpCi0gOzsgY3Z0cGQycHMgbWVtLHJlZyBpcyB2ZWN0 b3JwYXRoLCB0cm91Z2hwdXQgdW5rbm93biwgbGF0ZW5jeSAxMAotIDs7ID8/PyBXaHkgaXQgaXMg ZmF0ZXIgdGhhbiBjdnRzZDJzcz8KLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9z c2VjdnRfY3Z0cGQycHMiIDgKLUBAIC03NzYsNiArMTAxMCwxMyBAQAotIAkJCQkJKGFuZCAoZXFf YXR0ciAibW9kZSIgIlY0U0YsVjJERixUSSIpCi0gCQkJCQkgICAgIChlcV9hdHRyICJtZW1vcnki ICJub25lIikpKSkpCi0gCQkJICJhdGhsb24tdmVjdG9yLGF0aGxvbi1mcHNjaGVkLGF0aGxvbi1m dmVjdG9yKjIiKQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWN2dF9jdnRw ZDJwc19hbWRmYW0xMCIgNwotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0r CQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWN2dCIpCi0rCQkJCSAgIChhbmQgKGVx X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpCi0rCQkJCQkoYW5kIChlcV9hdHRyICJt b2RlIiAiVjRTRixWMkRGLFRJIikKLSsJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUi KSkpKSkKLSsJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWZwc2NoZWQsKGF0aGxvbi1mYWRkbXVs K2F0aGxvbi1mc3RvcmUpIikKLSA7OyBjdnRzZDJzaSBtZW0scmVnIGlzIGRvdWJsZXBhdGgsIHRy b3VnaHB1dCAxLCBsYXRlbmN5IDkKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9z ZWN2dF9jdnRzWDJzaV9sb2FkIiA5Ci0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbixr OCxnZW5lcmljNjQiKQotQEAgLTc4NCw2ICsxMDI1LDEzIEBACi0gCQkJCQkoYW5kIChlcV9hdHRy ICJtb2RlIiAiU0ksREkiKQotIAkJCQkJICAgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkp KQotIAkJCSAiYXRobG9uLXZlY3RvcixhdGhsb24tZnBsb2FkazgsYXRobG9uLWZ2ZWN0b3IiKQot KyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NlY3Z0X2N2dHNYMnNpX2xvYWRfYW1k ZmFtMTAiIDEwCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAg ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlaWN2dCIpCi0rCQkJCSAgIChhbmQgKGVxX2F0dHIg ImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpCi0rCQkJCQkoYW5kIChlcV9hdHRyICJtb2RlIiAi U0ksREkiKQotKwkJCQkJICAgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkpKQotKwkJCSAi YXRobG9uLWRvdWJsZSxhdGhsb24tZnBsb2FkazgsKGF0aGxvbi1mYWRkK2F0aGxvbi1mc3RvcmUp IikKLSA7OyBjdnRzZDJzaSByZWcscmVnIGlzIGRvdWJsZXBhdGgsIHRyb3VnaHB1dCAxLCBsYXRl bmN5IDkKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VjdnRfY3Z0c1gyc2ki IDkKLSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikKLUBAIC03OTksNiArMTA0Nywy OSBAQAotIAkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlNJLERJIikKLSAJCQkJCSAgICAgKGVx X2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpKSkKLSAJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWZw c2NoZWQsYXRobG9uLWZzdG9yZSIpCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25f c3NlY3Z0X2N2dHNYMnNpX2FtZGZhbTEwIiA4Ci0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFt ZGZhbTEwIikKLSsJCQkgICAgICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlaWN2dCIpCi0rCQkJ CSAgIChhbmQgKGVxX2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIpCi0rCQkJCQkoYW5k IChlcV9hdHRyICJtb2RlIiAiU0ksREkiKQotKwkJCQkJICAgICAoZXFfYXR0ciAibWVtb3J5IiAi bm9uZSIpKSkpKQotKwkJCSAiYXRobG9uLWRvdWJsZSxhdGhsb24tZnBzY2hlZCwoYXRobG9uLWZh ZGQrYXRobG9uLWZzdG9yZSkiKQotKzs7IGN2dHBkMmRxIHJlZyxtZW0gaXMgZG91YmxlcGF0aCwg dHJvdWdocHV0IDEsIGxhdGVuY3kgOSBvbiBhbWRmYW0xMAotKyhkZWZpbmVfaW5zbl9yZXNlcnZh dGlvbiAiYXRobG9uX3NzZWljdnRfY3Z0cGQyZHFfbG9hZF9hbWRmYW0xMCIgOQotKwkJCSAoYW5k IChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlw ZSIgInNzZWljdnQiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJk b3VibGUiKQotKwkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlRJIikKLSsJCQkJCSAgICAgKGVx X2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKSkKLSsJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWZw bG9hZGs4LChhdGhsb24tZmFkZG11bCthdGhsb24tZnN0b3JlKSIpCi0rOzsgY3Z0cGQyZHEgcmVn LG1lbSBpcyBkb3VibGVwYXRoLCB0cm91Z2hwdXQgMSwgbGF0ZW5jeSA3IG9uIGFtZGZhbTEwCi0r KGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlaWN2dF9jdnRwZDJkcV9hbWRmYW0x MCIgNwotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhbWRmYW0xMCIpCi0rCQkJICAgICAgKGFu ZCAoZXFfYXR0ciAidHlwZSIgInNzZWljdnQiKQotKwkJCQkgICAoYW5kIChlcV9hdHRyICJhbWRm YW0xMF9kZWNvZGUiICJkb3VibGUiKQotKwkJCQkJKGFuZCAoZXFfYXR0ciAibW9kZSIgIlRJIikK LSsJCQkJCSAgICAgKGVxX2F0dHIgIm1lbW9yeSIgIm5vbmUiKSkpKSkKLSsJCQkgImF0aGxvbi1k b3VibGUsYXRobG9uLWZwc2NoZWQsKGF0aGxvbi1mYWRkbXVsK2F0aGxvbi1mc3RvcmUpIikKLSAK LSAKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VtdWxfbG9hZCIgNAotQEAg LTgwOCwxMyArMTA3OSwxMyBAQAotIAkJCQkJKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQot IAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBsb2FkLGF0aGxvbi1mbXVsIikKLSAoZGVmaW5l X2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VtdWxfbG9hZF9rOCIgNgotLQkJCSAoYW5kIChl cV9hdHRyICJjcHUiICJrOCxnZW5lcmljNjQiKQotKwkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJr OCxnZW5lcmljNjQsYW1kZmFtMTAiKQotIAkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJz c2VtdWwiKQotIAkJCQkgICAoYW5kIChlcV9hdHRyICJtb2RlIiAiU0YsREYiKQotIAkJCQkJKGVx X2F0dHIgIm1lbW9yeSIgImxvYWQiKSkpKQotIAkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBs b2FkazgsYXRobG9uLWZtdWwiKQotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3Nz ZW11bCIgNAotLQkJCSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikK LSsJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIp Ci0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZW11bCIpCi0gCQkJCSAgIChlcV9h dHRyICJtb2RlIiAiU0YsREYiKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcHNjaGVk LGF0aGxvbi1mbXVsIikKLUBAIC04MjgsNiArMTA5OSwxMSBAQAotIAkJCSAgICAgIChhbmQgKGVx X2F0dHIgInR5cGUiICJzc2VtdWwiKQotIAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIp KSkKLSAJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWZwbG9hZDJrOCwoYXRobG9uLWZtdWwqMiki KQotKyhkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZW11bHZlY3Rvcl9sb2FkX2Ft ZGZhbTEwIiA2Ci0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAg ICAoYW5kIChlcV9hdHRyICJ0eXBlIiAic3NlbXVsIikKLSsJCQkJICAgKGVxX2F0dHIgIm1lbW9y eSIgImxvYWQiKSkpCi0rCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24t Zm11bCIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlbXVsdmVjdG9yIiA1 Ci0gCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImF0aGxvbiIpCi0gCQkJICAgICAgKGVxX2F0dHIg InR5cGUiICJzc2VtdWwiKSkKLUBAIC04MzYsNiArMTExMiwxMCBAQAotIAkJCSAoYW5kIChlcV9h dHRyICJjcHUiICJrOCxnZW5lcmljNjQiKQotIAkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAic3Nl bXVsIikpCi0gCQkJICJhdGhsb24tZG91YmxlLGF0aGxvbi1mcHNjaGVkLChhdGhsb24tZm11bCoy KSIpCi0rKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlbXVsdmVjdG9yX2FtZGZh bTEwIiA0Ci0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAo ZXFfYXR0ciAidHlwZSIgInNzZW11bCIpKQotKwkJCSAiYXRobG9uLWRpcmVjdCxhdGhsb24tZnBz Y2hlZCxhdGhsb24tZm11bCIpCQkJIAotIDs7IGRpdnNkIHRpbWluZ3MuICBkaXZzcyBpcyBmYXN0 ZXIKLSAoZGVmaW5lX2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VkaXZfbG9hZCIgMjAKLSAJ CQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikKLUBAIC04NDQsMTMgKzExMjQsMTMgQEAK LSAJCQkJCShlcV9hdHRyICJtZW1vcnkiICJsb2FkIikpKSkKLSAJCQkgImF0aGxvbi1kaXJlY3Qs YXRobG9uLWZwbG9hZCxhdGhsb24tZm11bCoxNyIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9u ICJhdGhsb25fc3NlZGl2X2xvYWRfazgiIDIyCi0tCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4 LGdlbmVyaWM2NCIpCi0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgIms4LGdlbmVyaWM2NCxhbWRm YW0xMCIpCi0gCQkJICAgICAgKGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWRpdiIpCi0gCQkJCSAg IChhbmQgKGVxX2F0dHIgIm1vZGUiICJTRixERiIpCi0gCQkJCQkoZXFfYXR0ciAibWVtb3J5IiAi bG9hZCIpKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZm11 bCoxNyIpCi0gKGRlZmluZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlZGl2IiAyMAotLQkJ CSAoYW5kIChlcV9hdHRyICJjcHUiICJhdGhsb24sazgsZ2VuZXJpYzY0IikKLSsJCQkgKGFuZCAo ZXFfYXR0ciAiY3B1IiAiYXRobG9uLGs4LGdlbmVyaWM2NCxhbWRmYW0xMCIpCi0gCQkJICAgICAg KGFuZCAoZXFfYXR0ciAidHlwZSIgInNzZWRpdiIpCi0gCQkJCSAgIChlcV9hdHRyICJtb2RlIiAi U0YsREYiKSkpCi0gCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcHNjaGVkLGF0aGxvbi1mbXVs KjE3IikKLUBAIC04NjQsNiArMTE0NCwxMSBAQAotIAkJCSAgICAgIChhbmQgKGVxX2F0dHIgInR5 cGUiICJzc2VkaXYiKQotIAkJCQkgICAoZXFfYXR0ciAibWVtb3J5IiAibG9hZCIpKSkKLSAJCQkg ImF0aGxvbi1kb3VibGUsYXRobG9uLWZwbG9hZDJrOCxhdGhsb24tZm11bCozNCIpCi0rKGRlZmlu ZV9pbnNuX3Jlc2VydmF0aW9uICJhdGhsb25fc3NlZGl2dmVjdG9yX2xvYWRfYW1kZmFtMTAiIDIy Ci0rCQkJIChhbmQgKGVxX2F0dHIgImNwdSIgImFtZGZhbTEwIikKLSsJCQkgICAgICAoYW5kIChl cV9hdHRyICJ0eXBlIiAic3NlZGl2IikKLSsJCQkJICAgKGVxX2F0dHIgIm1lbW9yeSIgImxvYWQi KSkpCi0rCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mcGxvYWRrOCxhdGhsb24tZm11bCoxNyIp CQkJIAotIChkZWZpbmVfaW5zbl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWRpdnZlY3RvciIgMzkK LSAJCQkgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYXRobG9uIikKLSAJCQkgICAgICAoZXFfYXR0ciAi dHlwZSIgInNzZWRpdiIpKQotQEAgLTg3MiwzICsxMTU3LDEyIEBACi0gCQkJIChhbmQgKGVxX2F0 dHIgImNwdSIgIms4LGdlbmVyaWM2NCIpCi0gCQkJICAgICAgKGVxX2F0dHIgInR5cGUiICJzc2Vk aXYiKSkKLSAJCQkgImF0aGxvbi1kb3VibGUsYXRobG9uLWZtdWwqMzQiKQotKyhkZWZpbmVfaW5z bl9yZXNlcnZhdGlvbiAiYXRobG9uX3NzZWRpdnZlY3Rvcl9hbWRmYW0xMCIgMjAKLSsJCQkgKGFu ZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKwkJCSAgICAgIChlcV9hdHRyICJ0eXBlIiAi c3NlZGl2IikpCi0rCQkJICJhdGhsb24tZGlyZWN0LGF0aGxvbi1mbXVsKjE3IikKLSsoZGVmaW5l X2luc25fcmVzZXJ2YXRpb24gImF0aGxvbl9zc2VpbnNfYW1kZmFtMTAiIDUKLSsgICAgICAgICAg ICAgICAgICAgICAgICAgKGFuZCAoZXFfYXR0ciAiY3B1IiAiYW1kZmFtMTAiKQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChhbmQgKGVxX2F0dHIgInR5cGUiICJzc2VpbnMiKQotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVxX2F0dHIgIm1vZGUiICJUSSIpKSkK LSsgICAgICAgICAgICAgICAgICAgICAgICAgImF0aGxvbi12ZWN0b3IsYXRobG9uLWZwc2NoZWQs YXRobG9uLWZhZGRtdWwiKQotLS0tIGdjYy9jb25maWcvaTM4Ni9wbW1pbnRyaW4uaC5qagkyMDA2 LTEwLTA1IDAwOjI5OjI5LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvaTM4Ni9wbW1p bnRyaW4uaAkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotQEAgLTMwLDcgKzMw LDExIEBACi0gI2lmbmRlZiBfUE1NSU5UUklOX0hfSU5DTFVERUQKLSAjZGVmaW5lIF9QTU1JTlRS SU5fSF9JTkNMVURFRAotIAotLSNpZmRlZiBfX1NTRTNfXwotKyNpZm5kZWYgX19TU0UzX18KLSsj IGVycm9yICJTU0UzIGluc3RydWN0aW9uIHNldCBub3QgZW5hYmxlZCIKLSsjZWxzZQotKwotKy8q IFdlIG5lZWQgZGVmaW5pdGlvbnMgZnJvbSB0aGUgU1NFMiBhbmQgU1NFIGhlYWRlciBmaWxlcyov Ci0gI2luY2x1ZGUgPHhtbWludHJpbi5oPgotICNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KLSAKLS0t LSBnY2MvY29uZmlnL2kzODYvdG1taW50cmluLmguamoJMjAwNy0wMi0wOSAxNjoxODoyNS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2kzODYvdG1taW50cmluLmgJMjAwNy0wMi0wOSAy MToyNjowNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0zMCw3ICszMCwxMSBAQAotICNpZm5kZWYgX1RN TUlOVFJJTl9IX0lOQ0xVREVECi0gI2RlZmluZSBfVE1NSU5UUklOX0hfSU5DTFVERUQKLSAKLS0j aWZkZWYgX19TU1NFM19fCi0rI2lmbmRlZiBfX1NTU0UzX18KLSsjIGVycm9yICJTU1NFMyBpbnN0 cnVjdGlvbiBzZXQgbm90IGVuYWJsZWQiCi0rI2Vsc2UKLSsKLSsvKiBXZSBuZWVkIGRlZmluaXRp b25zIGZyb20gdGhlIFNTRTMsIFNTRTIgYW5kIFNTRSBoZWFkZXIgZmlsZXMqLwotICNpbmNsdWRl IDxwbW1pbnRyaW4uaD4KLSAKLSBzdGF0aWMgX19pbmxpbmUgX19tMTI4aQotLS0tIGdjYy9jb25m aWcvaTM4Ni9zc2UubWQuamoJMjAwNy0wMi0wOSAxNjoxODoyNS4wMDAwMDAwMDAgKzAxMDAKLSsr KyBnY2MvY29uZmlnL2kzODYvc3NlLm1kCTIwMDctMDItMDkgMjE6MjY6MDYuMDAwMDAwMDAwICsw MTAwCi1AQCAtOTYzLDYgKzk2Myw3IEBACi0gICAiY3Z0c2kyc3NcdHslMiwgJTB8JTAsICUyfSIK LSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9k ZWNvZGUiICJ2ZWN0b3IsZG91YmxlIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIg InZlY3Rvcixkb3VibGUiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotIAotIChkZWZp bmVfaW5zbiAic3NlX2N2dHNpMnNzcSIKLUBAIC05NzYsNiArOTc3LDcgQEAKLSAgICJjdnRzaTJz c3FcdHslMiwgJTB8JTAsICUyfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAg ICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJ2ZWN0b3IsZG91YmxlIikKLSsgICAoc2V0X2F0 dHIgImFtZGZhbTEwX2RlY29kZSIgInZlY3Rvcixkb3VibGUiKQotICAgIChzZXRfYXR0ciAibW9k ZSIgIlNGIildKQotIAotIChkZWZpbmVfaW5zbiAic3NlX2N2dHNzMnNpIgotQEAgLTk4OSw2ICs5 OTEsNyBAQAotICAgImN2dHNzMnNpXHR7JTEsICUwfCUwLCAlMX0iCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlaWN2dCIpCi0gICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAiZG91YmxlLHZl Y3RvciIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkb3VibGUsZG91YmxlIikK LSAgICAoc2V0X2F0dHIgIm1vZGUiICJTSSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZV9jdnRz czJzaXEiCi1AQCAtMTAwMiw2ICsxMDA1LDcgQEAKLSAgICJjdnRzczJzaXFcdHslMSwgJTB8JTAs ICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAoc2V0X2F0dHIgImF0 aGxvbl9kZWNvZGUiICJkb3VibGUsdmVjdG9yIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2Rl Y29kZSIgImRvdWJsZSxkb3VibGUiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAot IChkZWZpbmVfaW5zbiAic3NlX2N2dHRzczJzaSIKLUBAIC0xMDE0LDYgKzEwMTgsNyBAQAotICAg ImN2dHRzczJzaVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlj dnQiKQotICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRvdWJsZSx2ZWN0b3IiKQotKyAg IChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91YmxlLGRvdWJsZSIpCi0gICAgKHNldF9h dHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2VfY3Z0dHNzMnNpcSIKLUBA IC0xMDI2LDYgKzEwMzEsNyBAQAotICAgImN2dHRzczJzaXFcdHslMSwgJTB8JTAsICUxfSIKLSAg IFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNv ZGUiICJkb3VibGUsdmVjdG9yIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRv dWJsZSxkb3VibGUiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQotIAotIChkZWZpbmVf aW5zbiAic3NlMl9jdnRkcTJwcyIKLUBAIC0xOTIxLDcgKzE5MjcsOCBAQAotICAgImN2dHNpMnNk XHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0eXBlIiAic3NlaWN2dCIpCi0gICAg KHNldF9hdHRyICJtb2RlIiAiREYiKQotLSAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRv dWJsZSxkaXJlY3QiKV0pCi0rICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAiZG91YmxlLGRp cmVjdCIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJ2ZWN0b3IsZG91YmxlIild KQotIAotIChkZWZpbmVfaW5zbiAic3NlMl9jdnRzaTJzZHEiCi0gICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpWMkRGIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9eCx4IikKLUBAIC0xOTM0LDcgKzE5NDEs OCBAQAotICAgImN2dHNpMnNkcVx0eyUyLCAlMHwlMCwgJTJ9IgotICAgWyhzZXRfYXR0ciAidHlw ZSIgInNzZWljdnQiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRGIikKLS0gICAoc2V0X2F0dHIg ImF0aGxvbl9kZWNvZGUiICJkb3VibGUsZGlyZWN0IildKQotKyAgIChzZXRfYXR0ciAiYXRobG9u X2RlY29kZSIgImRvdWJsZSxkaXJlY3QiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2Rl IiAidmVjdG9yLGRvdWJsZSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTJfY3Z0c2Qyc2kiCi0g ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCi1A QCAtMTk0Nyw2ICsxOTU1LDcgQEAKLSAgICJjdnRzZDJzaVx0eyUxLCAlMHwlMCwgJTF9IgotICAg WyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQotICAgIChzZXRfYXR0ciAiYXRobG9uX2RlY29k ZSIgImRvdWJsZSx2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91 YmxlLGRvdWJsZSIpCi0gICAgKHNldF9hdHRyICJtb2RlIiAiU0kiKV0pCi0gCi0gKGRlZmluZV9p bnNuICJzc2UyX2N2dHNkMnNpcSIKLUBAIC0xOTYwLDYgKzE5NjksNyBAQAotICAgImN2dHNkMnNp cVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWljdnQiKQotICAg IChzZXRfYXR0ciAiYXRobG9uX2RlY29kZSIgImRvdWJsZSx2ZWN0b3IiKQotKyAgIChzZXRfYXR0 ciAiYW1kZmFtMTBfZGVjb2RlIiAiZG91YmxlLGRvdWJsZSIpCi0gICAgKHNldF9hdHRyICJtb2Rl IiAiREkiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2UyX2N2dHRzZDJzaSIKLUBAIC0xOTcyLDcg KzE5ODIsOCBAQAotICAgImN2dHRzZDJzaVx0eyUxLCAlMHwlMCwgJTF9IgotICAgWyhzZXRfYXR0 ciAidHlwZSIgInNzZWljdnQiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNJIikKLS0gICAoc2V0 X2F0dHIgImF0aGxvbl9kZWNvZGUiICJkb3VibGUsdmVjdG9yIildKQotKyAgIChzZXRfYXR0ciAi YXRobG9uX2RlY29kZSIgImRvdWJsZSx2ZWN0b3IiKQotKyAgIChzZXRfYXR0ciAiYW1kZmFtMTBf ZGVjb2RlIiAiZG91YmxlLGRvdWJsZSIpXSkKLSAKLSAoZGVmaW5lX2luc24gInNzZTJfY3Z0dHNk MnNpcSIKLSAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9 cixyIikKLUBAIC0xOTg0LDcgKzE5OTUsOCBAQAotICAgImN2dHRzZDJzaXFcdHslMSwgJTB8JTAs ICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJzc2VpY3Z0IikKLSAgICAoc2V0X2F0dHIgIm1v ZGUiICJESSIpCi0tICAgKHNldF9hdHRyICJhdGhsb25fZGVjb2RlIiAiZG91YmxlLHZlY3RvciIp XSkKLSsgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNvZGUiICJkb3VibGUsdmVjdG9yIikKLSsgICAo c2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSxkb3VibGUiKV0pCi0gCi0gKGRlZmlu ZV9pbnNuICJzc2UyX2N2dGRxMnBkIgotICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJERiAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotQEAgLTIwMTUsNyArMjAyNyw4IEBACi0gICAiVEFSR0VU X1NTRTIiCi0gICAiY3Z0cGQyZHFcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5 cGUiICJzc2VjdnQiKQotLSAgIChzZXRfYXR0ciAibW9kZSIgIlRJIildKQotKyAgIChzZXRfYXR0 ciAibW9kZSIgIlRJIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgImRvdWJsZSIp XSkKLSAKLSAoZGVmaW5lX2V4cGFuZCAic3NlMl9jdnR0cGQyZHEiCi0gICBbKHNldCAobWF0Y2hf b3BlcmFuZDpWNFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQotQEAgLTIwMzMsNyArMjA0Niw4 IEBACi0gICAiVEFSR0VUX1NTRTIiCi0gICAiY3Z0dHBkMmRxXHR7JTEsICUwfCUwLCAlMX0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLS0gICAoc2V0X2F0dHIgIm1vZGUiICJUSSIp XSkKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9k ZWNvZGUiICJkb3VibGUiKV0pCi0gCi0gKGRlZmluZV9pbnNuICJzc2UyX2N2dHNkMnNzIgotICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6VjRTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgseCIpCi1A QCAtMjA0NywyMCArMjA2MSwyMiBAQAotICAgImN2dHNkMnNzXHR7JTIsICUwfCUwLCAlMn0iCi0g ICBbKHNldF9hdHRyICJ0eXBlIiAic3NlY3Z0IikKLSAgICAoc2V0X2F0dHIgImF0aGxvbl9kZWNv ZGUiICJ2ZWN0b3IsZG91YmxlIikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgInZl Y3Rvcixkb3VibGUiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotIAotIChkZWZpbmVf aW5zbiAic3NlMl9jdnRzczJzZCIKLS0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14IikKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREYgMCAicmVn aXN0ZXJfb3BlcmFuZCIgIj14LHgiKQotIAkodmVjX21lcmdlOlYyREYKLSAJICAoZmxvYXRfZXh0 ZW5kOlYyREYKLSAJICAgICh2ZWNfc2VsZWN0OlYyU0YKLS0JICAgICAgKG1hdGNoX29wZXJhbmQ6 VjRTRiAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgInhtIikKLSsJICAgICAgKG1hdGNoX29wZXJh bmQ6VjRTRiAyICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIngsbSIpCi0gCSAgICAgIChwYXJhbGxl bCBbKGNvbnN0X2ludCAwKSAoY29uc3RfaW50IDEpXSkpKQotLQkgIChtYXRjaF9vcGVyYW5kOlYy REYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQotKwkgIChtYXRjaF9vcGVyYW5kOlYyREYgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIjAsMCIpCi0gCSAgKGNvbnN0X2ludCAxKSkpXQotICAgIlRBUkdF VF9TU0UyIgotICAgImN2dHNzMnNkXHR7JTIsICUwfCUwLCAlMn0iCi0gICBbKHNldF9hdHRyICJ0 eXBlIiAic3NlY3Z0IikKLSsgICAoc2V0X2F0dHIgImFtZGZhbTEwX2RlY29kZSIgInZlY3Rvcixk b3VibGUiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRGIildKQotIAotIChkZWZpbmVfZXhwYW5k ICJzc2UyX2N2dHBkMnBzIgotQEAgLTIwODEsNyArMjA5Nyw4IEBACi0gICAiVEFSR0VUX1NTRTIi Ci0gICAiY3Z0cGQycHNcdHslMSwgJTB8JTAsICUxfSIKLSAgIFsoc2V0X2F0dHIgInR5cGUiICJz c2VjdnQiKQotLSAgIChzZXRfYXR0ciAibW9kZSIgIlY0U0YiKV0pCi0rICAgKHNldF9hdHRyICJt b2RlIiAiVjRTRiIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9kZWNvZGUiICJkb3VibGUiKV0p Ci0gCi0gKGRlZmluZV9pbnNuICJzc2UyX2N2dHBzMnBkIgotICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6VjJERiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotQEAgLTIwOTIsNyArMjEwOSw4IEBA Ci0gICAiVEFSR0VUX1NTRTIiCi0gICAiY3Z0cHMycGRcdHslMSwgJTB8JTAsICUxfSIKLSAgIFso c2V0X2F0dHIgInR5cGUiICJzc2VjdnQiKQotLSAgIChzZXRfYXR0ciAibW9kZSIgIlYyREYiKV0p Ci0rICAgKHNldF9hdHRyICJtb2RlIiAiVjJERiIpCi0rICAgKHNldF9hdHRyICJhbWRmYW0xMF9k ZWNvZGUiICJkaXJlY3QiKV0pCi0gCi0gOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ci0gOzsKLUBAIC00NTUwLDMgKzQ1 NjgsOTIgQEAKLSAgICJwYWJzPG1teHZlY3NpemU+XHR7JTEsICUwfCUwLCAlMX0iOwotICAgWyhz ZXRfYXR0ciAidHlwZSIgInNzZWxvZzEiKQotICAgIChzZXRfYXR0ciAibW9kZSIgIkRJIildKQot KwotKzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwotKzs7Ci0rOzsgQU1EIFNTRTRBIGluc3RydWN0aW9ucwotKzs7Ci0r Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ci0rCi0rKGRlZmluZV9pbnNuICJzc2U0YV92bW1vdm50djJkZiIKLSsgIFso c2V0IChtYXRjaF9vcGVyYW5kOkRGIDAgIm1lbW9yeV9vcGVyYW5kIiAiPW0iKQotKyAgICAgICAg KHVuc3BlYzpERiBbKHZlY19zZWxlY3Q6REYgCi0rICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9vcGVyYW5kOlYyREYgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotKyAgICAgICAgICAgICAg ICAgICAgICAocGFyYWxsZWwgWyhjb25zdF9pbnQgMCldKSldCi0rICAgICAgICAgICAgICAgICAg IFVOU1BFQ19NT1ZOVCkpXQotKyAgIlRBUkdFVF9TU0U0QSIKLSsgICJtb3ZudHNkXHR7JTEsICUw fCUwLCAlMX0iCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92IikKLSsgICAoc2V0X2F0dHIg Im1vZGUiICJERiIpXSkKLSsKLSsoZGVmaW5lX2luc24gInNzZTRhX21vdm50ZGYiCi0rICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpERiAwICJtZW1vcnlfb3BlcmFuZCIgIj1tIikKLSsgICAgICAgICh1 bnNwZWM6REYgWyhtYXRjaF9vcGVyYW5kOkRGIDEgInJlZ2lzdGVyX29wZXJhbmQiICJ4IildCi0r ICAgICAgICAgICAgICAgICAgIFVOU1BFQ19NT1ZOVCkpXQotKyAgIlRBUkdFVF9TU0U0QSIKLSsg ICJtb3ZudHNkXHR7JTEsICUwfCUwLCAlMX0iCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlbW92 IikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJERiIpXSkKLSsKLSsoZGVmaW5lX2luc24gInNzZTRh X3ZtbW92bnR2NHNmIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAibWVtb3J5X29wZXJh bmQiICI9bSIpCi0rCSh1bnNwZWM6U0YgWyh2ZWNfc2VsZWN0OlNGIAotKwkgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlY0U0YgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIngiKQotKwkJICAgICAg KHBhcmFsbGVsIFsoY29uc3RfaW50IDApXSkpXQotKwkJICAgVU5TUEVDX01PVk5UKSldCi0rICAi VEFSR0VUX1NTRTRBIgotKyAgIm1vdm50c3NcdHslMSwgJTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0 dHIgInR5cGUiICJzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotKwotKyhk ZWZpbmVfaW5zbiAic3NlNGFfbW92bnRzZiIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAg Im1lbW9yeV9vcGVyYW5kIiAiPW0iKQotKwkodW5zcGVjOlNGIFsobWF0Y2hfb3BlcmFuZDpTRiAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAieCIpXQotKwkJICAgVU5TUEVDX01PVk5UKSldCi0rICAiVEFS R0VUX1NTRTRBIgotKyAgIm1vdm50c3NcdHslMSwgJTB8JTAsICUxfSIKLSsgIFsoc2V0X2F0dHIg InR5cGUiICJzc2Vtb3YiKQotKyAgIChzZXRfYXR0ciAibW9kZSIgIlNGIildKQotKwotKyhkZWZp bmVfaW5zbiAic3NlNGFfZXh0cnFpIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotKyAgICAgICAgKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3Bl cmFuZDpWMkRJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKLSsgICAgICAgICAgICAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJhbmQiICIiKQotKyAgICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZCAzICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpXQotKyAg ICAgICAgICAgICAgICAgICAgIFVOU1BFQ19FWFRSUUkpKV0KLSsgICJUQVJHRVRfU1NFNEEiCi0r ICAiZXh0cnFcdHslMywgJTIsICUwfCUwLCAlMiwgJTN9IgotKyAgWyhzZXRfYXR0ciAidHlwZSIg InNzZSIpCi0rICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0rCi0rKGRlZmluZV9pbnNuICJz c2U0YV9leHRycSIKLSsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlYyREkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj14IikKLSsgICAgICAgICh1bnNwZWM6VjJESSBbKG1hdGNoX29wZXJhbmQ6VjJESSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCi0rICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlYxNlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJ4IildCi0rICAgICAgICAgICAgICAg ICAgICAgVU5TUEVDX0VYVFJRKSldCi0rICAiVEFSR0VUX1NTRTRBIgotKyAgImV4dHJxXHR7JTIs ICUwfCUwLCAlMn0iCi0rICBbKHNldF9hdHRyICJ0eXBlIiAic3NlIikKLSsgICAoc2V0X2F0dHIg Im1vZGUiICJUSSIpXSkKLSsKLSsoZGVmaW5lX2luc24gInNzZTRhX2luc2VydHFpIgotKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXgiKQotKyAgICAg ICAgKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIwIikKLSsgICAgICAgIAkgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIgInJlZ2lzdGVyX29w ZXJhbmQiICJ4IikKLSsgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQgMyAiY29u c3RfaW50X29wZXJhbmQiICIiKQotKyAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZCA0ICJjb25zdF9pbnRfb3BlcmFuZCIgIiIpXQotKyAgICAgICAgICAgICAgICAgICAgIFVOU1BF Q19JTlNFUlRRSSkpXQotKyAgIlRBUkdFVF9TU0U0QSIKLSsgICJpbnNlcnRxXHR7JTQsICUzLCAl MiwgJTB8JTAsICUyLCAlMywgJTR9IgotKyAgWyhzZXRfYXR0ciAidHlwZSIgInNzZWlucyIpCi0r ICAgKHNldF9hdHRyICJtb2RlIiAiVEkiKV0pCi0rCi0rKGRlZmluZV9pbnNuICJzc2U0YV9pbnNl cnRxIgotKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VjJESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAi PXgiKQotKyAgICAgICAgKHVuc3BlYzpWMkRJIFsobWF0Y2hfb3BlcmFuZDpWMkRJIDEgInJlZ2lz dGVyX29wZXJhbmQiICIwIikKLSsgICAgICAgIAkgICAgICAobWF0Y2hfb3BlcmFuZDpWMkRJIDIg InJlZ2lzdGVyX29wZXJhbmQiICJ4IildCi0rICAgICAgICAJICAgICBVTlNQRUNfSU5TRVJUUSkp XQotKyAgIlRBUkdFVF9TU0U0QSIKLSsgICJpbnNlcnRxXHR7JTIsICUwfCUwLCAlMn0iCi0rICBb KHNldF9hdHRyICJ0eXBlIiAic3NlaW5zIikKLSsgICAoc2V0X2F0dHIgIm1vZGUiICJUSSIpXSkK LS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQuamoJMjAwNy0wMi0wOSAxNjoxODoyNS4wMDAw MDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2kzODYvaTM4Ni5vcHQJMjAwNy0wMi0wOSAyMToy NjowNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0yMDUsNiArMjA1LDIyIEBAIG1tbmkKLSBUYXJnZXQg VW5kb2N1bWVudGVkIE1hc2soU1NTRTMpIE1hc2tFeGlzdHMKLSBTdXBwb3J0IE1NWCwgU1NFLCBT U0UyLCBTU0UzIGFuZCBTU1NFMyBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2VuZXJhdGlv bgotIAotK21zc2U0YQotK1RhcmdldCBSZXBvcnQgTWFzayhTU0U0QSkKLStTdXBwb3J0IE1NWCwg U1NFLCBTU0UyLCBTU0UzIGFuZCBTU0U0QSBidWlsdC1pbiBmdW5jdGlvbnMgYW5kIGNvZGUgZ2Vu ZXJhdGlvbgotKwotK21wb3BjbnQKLStUYXJnZXQgUmVwb3J0IE1hc2soUE9QQ05UKQotK1N1cHBv cnQgY29kZSBnZW5lcmF0aW9uIG9mIHBvcGNvdW50IGluc3RydWN0aW9uIGZvciBwb3Bjb3VudCBi dWlsdC1pbnMgCi0rbmFtZWx5IF9fYnVpbHRpbl9wb3Bjb3VudCwgX19idWlsdGluX3BvcGNvdW50 bCBhbmQgX19idWlsdGluX3BvcGNvdW50bGwKLSsKLSttYWJtCi0rVGFyZ2V0IFJlcG9ydCBNYXNr KEFCTSkKLStTdXBwb3J0IGNvZGUgZ2VuZXJhdGlvbiBvZiBBZHZhbmNlZCBCaXQgTWFuaXB1bGF0 aW9uIChBQk0pIGluc3RydWN0aW9ucywKLSt3aGljaCBpbmNsdWRlIHBvcGNudCBhbmQgbHpjbnQg aW5zdHJ1Y3Rpb25zLCBmb3IgcG9wY291bnQgYW5kIGNseiBidWlsdC1pbnMKLStuYW1lbHkgX19i dWlsdGluX3BvcGNvdW50LCBfX2J1aWx0aW5fcG9wY291bnRsLCBfX2J1aWx0aW5fcG9wY291bnRs bCBhbmQKLStfX2J1aWx0aW5fY2x6LCBfX2J1aWx0aW5fY2x6bCwgX19idWlsdGluX2NsemxsCi0r Ci0gbXNzZXJlZ3Bhcm0KLSBUYXJnZXQgUmVqZWN0TmVnYXRpdmUgTWFzayhTU0VSRUdQQVJNKQot IFVzZSBTU0UgcmVnaXN0ZXIgcGFzc2luZyBjb252ZW50aW9ucyBmb3IgU0YgYW5kIERGIG1vZGUK LS0tLSBnY2MvY29uZmlnL2kzODYvYW1taW50cmluLmguamoJMjAwNy0wMi0wOSAyMToyNjowNi4w MDAwMDAwMDAgKzAxMDAKLSsrKyBnY2MvY29uZmlnL2kzODYvYW1taW50cmluLmgJMjAwNy0wMi0w OSAyMToyNjowNi4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsNzMgQEAKLSsvKiBDb3B5cmln aHQgKEMpIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR0NDLgotKwotKyAgIEdDQyBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5Ci0rICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsgICB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBv cHRpb24pCi0rICAgYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rICAgR0NDIGlzIGRpc3RyaWJ1dGVk IGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJVEhPVVQgQU5Z IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl Ci0rICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZQotKyAgIGFsb25nIHdpdGggR0NDOyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElm IG5vdCwgd3JpdGUgdG8KLSsgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCA1MSBGcmFu a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotKyAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB LiAgKi8KLSsKLSsvKiBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiB5b3UgaW5jbHVkZSB0aGlz IGhlYWRlciBmaWxlIGludG8gc291cmNlCi0rICAgZmlsZXMgY29tcGlsZWQgYnkgR0NDLCB0aGlz IGhlYWRlciBmaWxlIGRvZXMgbm90IGJ5IGl0c2VsZiBjYXVzZQotKyAgIHRoZSByZXN1bHRpbmcg ZXhlY3V0YWJsZSB0byBiZSBjb3ZlcmVkIGJ5IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKLSsgICBM aWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgaG93ZXZlciBpbnZhbGlkYXRlIGFueSBv dGhlcgotKyAgIHJlYXNvbnMgd2h5IHRoZSBleGVjdXRhYmxlIGZpbGUgbWlnaHQgYmUgY292ZXJl ZCBieSB0aGUgR05VIEdlbmVyYWwKLSsgICBQdWJsaWMgTGljZW5zZS4gICovCi0rCi0rLyogSW1w bGVtZW50ZWQgZnJvbSB0aGUgc3BlY2lmaWNhdGlvbiBpbmNsdWRlZCBpbiB0aGUgQU1EIFByb2dy YW1tZXJzCi0rICAgTWFudWFsIFVwZGF0ZSwgdmVyc2lvbiAyLnggKi8KLSsKLSsjaWZuZGVmIF9B TU1JTlRSSU5fSF9JTkNMVURFRAotKyNkZWZpbmUgX0FNTUlOVFJJTl9IX0lOQ0xVREVECi0rCi0r I2lmbmRlZiBfX1NTRTRBX18KLSsjIGVycm9yICJTU0U0QSBpbnN0cnVjdGlvbiBzZXQgbm90IGVu YWJsZWQiCi0rI2Vsc2UKLSsKLSsvKiBXZSBuZWVkIGRlZmluaXRpb25zIGZyb20gdGhlIFNTRTMs IFNTRTIgYW5kIFNTRSBoZWFkZXIgZmlsZXMqLwotKyNpbmNsdWRlIDxwbW1pbnRyaW4uaD4KLSsK LStzdGF0aWMgX19pbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykp Ci0rX21tX3N0cmVhbV9zZCAoZG91YmxlICogX19QLCBfX20xMjhkIF9fWSkKLSt7Ci0rICBfX2J1 aWx0aW5faWEzMl9tb3ZudHNkIChfX1AsIChfX3YyZGYpIF9fWSk7Ci0rfQotKwotK3N0YXRpYyBf X2lubGluZSB2b2lkIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKLStfbW1fc3Ry ZWFtX3NzIChmbG9hdCAqIF9fUCwgX19tMTI4IF9fWSkKLSt7Ci0rICBfX2J1aWx0aW5faWEzMl9t b3ZudHNzIChfX1AsIChfX3Y0c2YpIF9fWSk7Ci0rfQotKwotK3N0YXRpYyBfX2lubGluZSBfX20x MjhpIF9fYXR0cmlidXRlX18oKF9fYWx3YXlzX2lubGluZV9fKSkKLStfbW1fZXh0cmFjdF9zaTY0 IChfX20xMjhpIF9fWCwgX19tMTI4aSBfX1kpCi0rewotKyAgcmV0dXJuIChfX20xMjhpKSBfX2J1 aWx0aW5faWEzMl9leHRycSAoKF9fdjJkaSkgX19YLCAoX192MTZxaSkgX19ZKTsKLSt9Ci0rCi0r I2RlZmluZSBfbW1fZXh0cmFjdGlfc2k2NChYLCBJLCBMKSBcCi0rKChfX20xMjhpKSBfX2J1aWx0 aW5faWEzMl9leHRycWkgKChfX3YyZGkpKFgpLCBJLCBMKSkKLSsKLStzdGF0aWMgX19pbmxpbmUg X19tMTI4aSBfX2F0dHJpYnV0ZV9fKChfX2Fsd2F5c19pbmxpbmVfXykpCi0rX21tX2luc2VydF9z aTY0IChfX20xMjhpIF9fWCxfX20xMjhpIF9fWSkKLSt7Ci0rICByZXR1cm4gKF9fbTEyOGkpIF9f YnVpbHRpbl9pYTMyX2luc2VydHEgKChfX3YyZGkpX19YLCAoX192MmRpKV9fWSk7Ci0rfQotKwot KyNkZWZpbmUgX21tX2luc2VydGlfc2k2NChYLCBZLCBJLCBMKSBcCi0rKChfX20xMjhpKSBfX2J1 aWx0aW5faWEzMl9pbnNlcnRxaSAoKF9fdjJkaSkoWCksIChfX3YyZGkpKFkpLCBJLCBMKSkKLSsK LSsKLSsjZW5kaWYgLyogX19TU0U0QV9fICovCi0rCi0rI2VuZGlmIC8qIF9BTU1JTlRSSU5fSF9J TkNMVURFRCAqLwotLS0tIGdjYy9jb25maWcvaTM4Ni9lbW1pbnRyaW4uaC5qagkyMDA2LTEwLTA1 IDAwOjI5OjI5LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvaTM4Ni9lbW1pbnRyaW4u aAkyMDA3LTAyLTA5IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotQEAgLTMwLDcgKzMwLDExIEBA Ci0gI2lmbmRlZiBfRU1NSU5UUklOX0hfSU5DTFVERUQKLSAjZGVmaW5lIF9FTU1JTlRSSU5fSF9J TkNMVURFRAotIAotLSNpZmRlZiBfX1NTRTJfXwotKyNpZm5kZWYgX19TU0UyX18KLSsjIGVycm9y ICJTU0UyIGluc3RydWN0aW9uIHNldCBub3QgZW5hYmxlZCIKLSsjZWxzZQotKwotKy8qIFdlIG5l ZWQgZGVmaW5pdGlvbnMgZnJvbSB0aGUgU1NFIGhlYWRlciBmaWxlcyovCi0gI2luY2x1ZGUgPHht bWludHJpbi5oPgotIAotIC8qIFNTRTIgKi8KLS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5jLmpq CTIwMDctMDItMDkgMTY6MjQ6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgZ2NjL2NvbmZpZy9pMzg2 L2kzODYuYwkyMDA3LTAyLTEwIDE5OjQ3OjA1LjAwMDAwMDAwMCArMDEwMAotQEAgLTUzNCw2ICs1 MzQsNzEgQEAgc3RydWN0IHByb2Nlc3Nvcl9jb3N0cyBrOF9jb3N0ID0gewotICAgQ09TVFNfTl9J TlNOUyAoMzUpLAkJCS8qIGNvc3Qgb2YgRlNRUlQgaW5zdHJ1Y3Rpb24uICAqLwotIH07Ci0gCi0r c3RydWN0IHByb2Nlc3Nvcl9jb3N0cyBhbWRmYW0xMF9jb3N0ID0gewotKyAgQ09TVFNfTl9JTlNO UyAoMSksICAgICAgICAgICAgICAgICAgICAvKiBjb3N0IG9mIGFuIGFkZCBpbnN0cnVjdGlvbiAq LwotKyAgQ09TVFNfTl9JTlNOUyAoMiksICAgICAgICAgICAgICAgICAgICAvKiBjb3N0IG9mIGEg bGVhIGluc3RydWN0aW9uICovCi0rICBDT1NUU19OX0lOU05TICgxKSwgICAgICAgICAgICAgICAg ICAgIC8qIHZhcmlhYmxlIHNoaWZ0IGNvc3RzICovCi0rICBDT1NUU19OX0lOU05TICgxKSwgICAg ICAgICAgICAgICAgICAgIC8qIGNvbnN0YW50IHNoaWZ0IGNvc3RzICovCi0rICB7Q09TVFNfTl9J TlNOUyAoMyksICAgICAgICAgICAgICAgICAgIC8qIGNvc3Qgb2Ygc3RhcnRpbmcgbXVsdGlwbHkg Zm9yIFFJICovCi0rICAgQ09TVFNfTl9JTlNOUyAoNCksICAgICAgICAgICAgICAgICAgIC8qICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhJICovCi0rICAgQ09TVFNfTl9JTlNOUyAoMyks ICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNJICov Ci0rICAgQ09TVFNfTl9JTlNOUyAoNCksICAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERJICovCi0rICAgQ09TVFNfTl9JTlNOUyAoNSl9LCAgICAgICAg ICAgICAgICAgIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyICovCi0rICAw LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGNvc3Qgb2YgbXVsdGlwbHkg cGVyIGVhY2ggYml0IHNldCAqLwotKyAge0NPU1RTX05fSU5TTlMgKDE5KSwgICAgICAgICAgICAg ICAgICAvKiBjb3N0IG9mIGEgZGl2aWRlL21vZCBmb3IgUUkgKi8KLSsgICBDT1NUU19OX0lOU05T ICgzNSksICAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIEhJICov Ci0rICAgQ09TVFNfTl9JTlNOUyAoNTEpLCAgICAgICAgICAgICAgICAgIC8qICAgICAgICAgICAg ICAgICAgICAgICAgICBTSSAqLwotKyAgIENPU1RTX05fSU5TTlMgKDgzKSwgICAgICAgICAgICAg ICAgICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgREkgKi8KLSsgICBDT1NUU19OX0lOU05T ICg4Myl9LCAgICAgICAgICAgICAgICAgLyogICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVy ICovCi0rICBDT1NUU19OX0lOU05TICgxKSwJCQkvKiBjb3N0IG9mIG1vdnN4ICovCi0rICBDT1NU U19OX0lOU05TICgxKSwJCQkvKiBjb3N0IG9mIG1vdnp4ICovCi0rICA4LAkJCQkJLyogImxhcmdl IiBpbnNuICovCi0rICA5LAkJCQkJLyogTU9WRV9SQVRJTyAqLwotKyAgNCwJCQkJCS8qIGNvc3Qg Zm9yIGxvYWRpbmcgUUltb2RlIHVzaW5nIG1vdnpibCAqLwotKyAgezMsIDQsIDN9LAkJCQkvKiBj b3N0IG9mIGxvYWRpbmcgaW50ZWdlciByZWdpc3RlcnMKLSsJCQkJCSAgIGluIFFJbW9kZSwgSElt b2RlIGFuZCBTSW1vZGUuCi0rCQkJCQkgICBSZWxhdGl2ZSB0byByZWctcmVnIG1vdmUgKDIpLiAg Ki8KLSsgIHszLCA0LCAzfSwJCQkJLyogY29zdCBvZiBzdG9yaW5nIGludGVnZXIgcmVnaXN0ZXJz ICovCi0rICA0LAkJCQkJLyogY29zdCBvZiByZWcscmVnIGZsZC9mc3QgKi8KLSsgIHs0LCA0LCAx Mn0sCQkJCS8qIGNvc3Qgb2YgbG9hZGluZyBmcCByZWdpc3RlcnMKLSsJCSAgIAkJCSAgIGluIFNG bW9kZSwgREZtb2RlIGFuZCBYRm1vZGUgKi8KLSsgIHs2LCA2LCA4fSwJCQkJLyogY29zdCBvZiBz dG9yaW5nIGZwIHJlZ2lzdGVycwotKyAJCSAgIAkJCSAgIGluIFNGbW9kZSwgREZtb2RlIGFuZCBY Rm1vZGUgKi8KLSsgIDIsCQkJCQkvKiBjb3N0IG9mIG1vdmluZyBNTVggcmVnaXN0ZXIgKi8KLSsg IHszLCAzfSwJCQkJLyogY29zdCBvZiBsb2FkaW5nIE1NWCByZWdpc3RlcnMKLSsJCQkJCSAgIGlu IFNJbW9kZSBhbmQgREltb2RlICovCi0rICB7NCwgNH0sCQkJCS8qIGNvc3Qgb2Ygc3RvcmluZyBN TVggcmVnaXN0ZXJzCi0rCQkJCQkgICBpbiBTSW1vZGUgYW5kIERJbW9kZSAqLwotKyAgMiwJCQkJ CS8qIGNvc3Qgb2YgbW92aW5nIFNTRSByZWdpc3RlciAqLwotKyAgezQsIDQsIDN9LAkJCQkvKiBj b3N0IG9mIGxvYWRpbmcgU1NFIHJlZ2lzdGVycwotKwkJCQkJICAgaW4gU0ltb2RlLCBESW1vZGUg YW5kIFRJbW9kZSAqLwotKyAgezQsIDQsIDV9LAkJCQkvKiBjb3N0IG9mIHN0b3JpbmcgU1NFIHJl Z2lzdGVycwotKwkJCQkJICAgaW4gU0ltb2RlLCBESW1vZGUgYW5kIFRJbW9kZSAqLwotKyAgMywJ CQkJCS8qIE1NWCBvciBTU0UgcmVnaXN0ZXIgdG8gaW50ZWdlciAqLwotKyAgCQkJCQkvKiBPbiBL OAotKyAgCQkJCQkgICAgTU9WRCByZWc2NCwgeG1tcmVnIAlEb3VibGUJRlNUT1JFIDQKLSsJCQkJ CSAgICBNT1ZEIHJlZzMyLCB4bW1yZWcgCURvdWJsZQlGU1RPUkUgNAotKwkJCQkJICAgT24gQU1E RkFNMTAKLSsJCQkJCSAgICBNT1ZEIHJlZzY0LCB4bW1yZWcgCURvdWJsZQlGQUREIDMKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMS8xICAxLzEKLSsJCQkJCSAgICBNT1ZEIHJlZzMyLCB4bW1yZWcgCURvdWJsZQlGQUREIDMK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMS8xICAxLzEgKi8KLSsgIDY0LAkJCQkJLyogc2l6ZSBvZiBwcmVmZXRjaCBibG9j ayAqLwotKyAgLyogTmV3IEFNRCBwcm9jZXNzb3JzIG5ldmVyIGRyb3AgcHJlZmV0Y2hlczsgaWYg dGhleSBjYW5ub3QgYmUgcGVyZm9ybWVkCi0rICAgICBpbW1lZGlhdGVseSwgdGhleSBhcmUgcXVl dWVkLiAgV2Ugc2V0IG51bWJlciBvZiBzaW11bHRhbmVvdXMgcHJlZmV0Y2hlcwotKyAgICAgdG8g YSBsYXJnZSBjb25zdGFudCB0byByZWZsZWN0IHRoaXMgKGl0IHByb2JhYmx5IGlzIG5vdCBhIGdv b2QgaWRlYSBub3QKLSsgICAgIHRvIGxpbWl0IG51bWJlciBvZiBwcmVmZXRjaGVzIGF0IGFsbCwg YXMgdGhlaXIgZXhlY3V0aW9uIGFsc28gdGFrZXMgc29tZQotKyAgICAgdGltZSkuICAqLwotKyAg MTAwLAkJCQkJLyogbnVtYmVyIG9mIHBhcmFsbGVsIHByZWZldGNoZXMgKi8KLSsgIDUsCQkJCQkv KiBCcmFuY2ggY29zdCAqLwotKyAgQ09TVFNfTl9JTlNOUyAoNCksCQkJLyogY29zdCBvZiBGQURE IGFuZCBGU1VCIGluc25zLiAgKi8KLSsgIENPU1RTX05fSU5TTlMgKDQpLAkJCS8qIGNvc3Qgb2Yg Rk1VTCBpbnN0cnVjdGlvbi4gICovCi0rICBDT1NUU19OX0lOU05TICgxOSksCQkJLyogY29zdCBv ZiBGRElWIGluc3RydWN0aW9uLiAgKi8KLSsgIENPU1RTX05fSU5TTlMgKDIpLAkJCS8qIGNvc3Qg b2YgRkFCUyBpbnN0cnVjdGlvbi4gICovCi0rICBDT1NUU19OX0lOU05TICgyKSwJCQkvKiBjb3N0 IG9mIEZDSFMgaW5zdHJ1Y3Rpb24uICAqLwotKyAgQ09TVFNfTl9JTlNOUyAoMzUpLAkJCS8qIGNv c3Qgb2YgRlNRUlQgaW5zdHJ1Y3Rpb24uICAqLwotK307Ci0rCi0gc3RhdGljIGNvbnN0Ci0gc3Ry dWN0IHByb2Nlc3Nvcl9jb3N0cyBwZW50aXVtNF9jb3N0ID0gewotICAgQ09TVFNfTl9JTlNOUyAo MSksCQkJLyogY29zdCBvZiBhbiBhZGQgaW5zdHJ1Y3Rpb24gKi8KLUBAIC04MTYsMTEgKzg4MSwx MyBAQCBjb25zdCBzdHJ1Y3QgcHJvY2Vzc29yX2Nvc3RzICppeDg2X2Nvc3QgCi0gI2RlZmluZSBt X1BFTlQ0ICAoMTw8UFJPQ0VTU09SX1BFTlRJVU00KQotICNkZWZpbmUgbV9LOCAgKDE8PFBST0NF U1NPUl9LOCkKLSAjZGVmaW5lIG1fQVRITE9OX0s4ICAobV9LOCB8IG1fQVRITE9OKQotKyNkZWZp bmUgbV9BTURGQU0xMCAgKDE8PFBST0NFU1NPUl9BTURGQU0xMCkKLSAjZGVmaW5lIG1fTk9DT05B ICAoMTw8UFJPQ0VTU09SX05PQ09OQSkKLSAjZGVmaW5lIG1fQ09SRTIgICgxPDxQUk9DRVNTT1Jf Q09SRTIpCi0gI2RlZmluZSBtX0dFTkVSSUMzMiAoMTw8UFJPQ0VTU09SX0dFTkVSSUMzMikKLSAj ZGVmaW5lIG1fR0VORVJJQzY0ICgxPDxQUk9DRVNTT1JfR0VORVJJQzY0KQotICNkZWZpbmUgbV9H RU5FUklDIChtX0dFTkVSSUMzMiB8IG1fR0VORVJJQzY0KQotKyNkZWZpbmUgbV9BVEhMT05fSzhf QU1ERkFNMTAgIChtX0s4IHwgbV9BVEhMT04gfCBtX0FNREZBTTEwKQotIAotIC8qIEdlbmVyaWMg aW5zdHJ1Y3Rpb24gY2hvaWNlIHNob3VsZCBiZSBjb21tb24gc3Vic2V0IG9mIHN1cHBvcnRlZCBD UFVzCi0gICAgKFBQcm8vUEVOVDQvTk9DT05BL0NPUkUyL0F0aGxvbi9LOCkuICAqLwotQEAgLTgy OCwyMyArODk1LDMxIEBAIGNvbnN0IHN0cnVjdCBwcm9jZXNzb3JfY29zdHMgKml4ODZfY29zdCAK LSAvKiBMZWF2ZSBpcyBub3QgYWZmZWN0aW5nIE5vY29uYSBTUEVDMjAwMCByZXN1bHRzIG5lZ2F0 aXZlbHksIHNvIGVuYWJsaW5nIGZvcgotICAgIEdlbmVyaWM2NCBzZWVtcyBsaWtlIGdvb2QgY29k ZSBzaXplIHRyYWRlb2ZmLiAgV2UgY2FuJ3QgZW5hYmxlIGl0IGZvciAzMmJpdAotICAgIGdlbmVy aWMgYmVjYXVzZSBpdCBpcyBub3Qgd29ya2luZyB3ZWxsIHdpdGggUFBybyBiYXNlIGNoaXBzLiAg Ki8KLS1jb25zdCBpbnQgeDg2X3VzZV9sZWF2ZSA9IG1fMzg2IHwgbV9LNl9HRU9ERSB8IG1fQVRI TE9OX0s4IHwgbV9DT1JFMiB8IG1fR0VORVJJQzY0OwotLWNvbnN0IGludCB4ODZfcHVzaF9tZW1v cnkgPSBtXzM4NiB8IG1fSzZfR0VPREUgfCBtX0FUSExPTl9LOCB8IG1fUEVOVDQgfCBtX05PQ09O QSB8IG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0rY29uc3QgaW50IHg4Nl91c2VfbGVhdmUgPSBtXzM4 NiB8IG1fSzZfR0VPREUgfCBtX0FUSExPTl9LOF9BTURGQU0xMCB8IG1fQ09SRTIKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgbV9HRU5FUklDNjQ7Ci0rY29uc3QgaW50IHg4Nl9wdXNoX21l bW9yeSA9IG1fMzg2IHwgbV9LNl9HRU9ERSB8IG1fQVRITE9OX0s4X0FNREZBTTEwIHwgbV9QRU5U NAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1f R0VORVJJQzsKLSBjb25zdCBpbnQgeDg2X3plcm9fZXh0ZW5kX3dpdGhfYW5kID0gbV80ODYgfCBt X1BFTlQ7Ci0tY29uc3QgaW50IHg4Nl9tb3Z4ID0gbV9BVEhMT05fSzggfCBtX1BQUk8gfCBtX1BF TlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUyIHwgbV9HRU5FUklDIHwgbV9HRU9ERSAvKiBtXzM4NiB8 IG1fSzYgKi87Ci0rLyogRW5hYmxlIHRvIHplcm8gZXh0ZW5kIGludGVnZXIgcmVnaXN0ZXJzIHRv IGF2b2lkIHBhcnRpYWwgZGVwZW5kZW5jaWVzICovCi0rY29uc3QgaW50IHg4Nl9tb3Z4ID0gbV9B VEhMT05fSzhfQU1ERkFNMTAgfCBtX1BQUk8gfCBtX1BFTlQ0IHwgbV9OT0NPTkEKLSsgICAgICAg ICAgICAgICAgICAgICB8IG1fQ09SRTIgfCBtX0dFTkVSSUMgfCBtX0dFT0RFIC8qIG1fMzg2IHwg bV9LNiAqLzsKLSBjb25zdCBpbnQgeDg2X2RvdWJsZV93aXRoX2FkZCA9IH5tXzM4NjsKLSBjb25z dCBpbnQgeDg2X3VzZV9iaXRfdGVzdCA9IG1fMzg2OwotLWNvbnN0IGludCB4ODZfdW5yb2xsX3N0 cmxlbiA9IG1fNDg2IHwgbV9QRU5UIHwgbV9QUFJPIHwgbV9BVEhMT05fSzggfCBtX0s2IHwgbV9D T1JFMiB8IG1fR0VORVJJQzsKLS1jb25zdCBpbnQgeDg2X2Ntb3ZlID0gbV9QUFJPIHwgbV9HRU9E RSB8IG1fQVRITE9OX0s4IHwgbV9QRU5UNCB8IG1fTk9DT05BOyAKLStjb25zdCBpbnQgeDg2X3Vu cm9sbF9zdHJsZW4gPSBtXzQ4NiB8IG1fUEVOVCB8IG1fUFBSTyB8IG1fQVRITE9OX0s4X0FNREZB TTEwCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX0s2IHwgbV9DT1JFMiB8IG1f R0VORVJJQzsKLStjb25zdCBpbnQgeDg2X2Ntb3ZlID0gbV9QUFJPIHwgbV9HRU9ERSB8IG1fQVRI TE9OX0s4X0FNREZBTTEwIHwgbV9QRU5UNAotKyAgICAgICAgICAgICAgICAgICAgICB8IG1fTk9D T05BOwotIGNvbnN0IGludCB4ODZfZmlzdHRwID0gbV9OT0NPTkE7Ci0tY29uc3QgaW50IHg4Nl8z ZG5vd19hID0gbV9BVEhMT05fSzg7Ci0tY29uc3QgaW50IHg4Nl9kZWVwX2JyYW5jaCA9IG1fUFBS TyB8IG1fSzZfR0VPREUgfCBtX0FUSExPTl9LOCB8IG1fUEVOVDQgfCBtX05PQ09OQSB8IG1fQ09S RTIgfCBtX0dFTkVSSUM7Ci0rY29uc3QgaW50IHg4Nl8zZG5vd19hID0gbV9BVEhMT05fSzhfQU1E RkFNMTA7Ci0rY29uc3QgaW50IHg4Nl9kZWVwX2JyYW5jaCA9IG1fUFBSTyB8IG1fSzZfR0VPREUg fCBtX0FUSExPTl9LOF9BTURGQU0xMAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1f UEVOVDQgfCBtX05PQ09OQSB8IG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0gLyogQnJhbmNoIGhpbnRz IHdlcmUgcHV0IGluIFA0IGJhc2VkIG9uIHNpbXVsYXRpb24gcmVzdWx0LiBCdXQKLSAgICBhZnRl ciBQNCB3YXMgbWFkZSwgbm8gcGVyZm9ybWFuY2UgYmVuZWZpdCB3YXMgb2JzZXJ2ZWQgd2l0aAot ICAgIGJyYW5jaCBoaW50cy4gSXQgYWxzbyBpbmNyZWFzZXMgdGhlIGNvZGUgc2l6ZS4gQXMgdGhl IHJlc3VsdCwKLSAgICBpY2MgbmV2ZXIgZ2VuZXJhdGVzIGJyYW5jaCBoaW50cy4gICovCi0gY29u c3QgaW50IHg4Nl9icmFuY2hfaGludHMgPSAwOwotLWNvbnN0IGludCB4ODZfdXNlX3NhaGYgPSBt X1BQUk8gfCBtX0s2X0dFT0RFIHwgbV9QRU5UNCB8IG1fTk9DT05BIHwgbV9HRU5FUklDMzI7IC8q bV9HRU5FUklDIHwgbV9BVEhMT05fSzggPyAqLwotK2NvbnN0IGludCB4ODZfdXNlX3NhaGYgPSBt X1BQUk8gfCBtX0s2X0dFT0RFIHwgbV9QRU5UNCB8IG1fTk9DT05BIHwgbV9HRU5FUklDMzI7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgIC8qbV9HRU5FUklDIHwgbV9BVEhMT05fSzggPyAqLwot IC8qIFdlIHByb2JhYmx5IG91Z2h0IHRvIHdhdGNoIGZvciBwYXJ0aWFsIHJlZ2lzdGVyIHN0YWxs cyBvbiBHZW5lcmljMzIKLSAgICBjb21waWxhdGlvbiBzZXR0aW5nIGFzIHdlbGwuICBIb3dldmVy IGluIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gdGhlCi0gICAgcGFydGlhbCByZWdpc3RlciBzdGFs bHMgYXJlIG5vdCBlbGltaW5hdGVkIHZlcnkgd2VsbCAtIHRoZXkgY2FuCi1AQCAtODU2LDEzICs5 MzEsMTYgQEAgY29uc3QgaW50IHg4Nl91c2Vfc2FoZiA9IG1fUFBSTyB8IG1fSzZfRwotIGNvbnN0 IGludCB4ODZfcGFydGlhbF9yZWdfc3RhbGwgPSBtX1BQUk87Ci0gY29uc3QgaW50IHg4Nl9wYXJ0 aWFsX2ZsYWdfcmVnX3N0YWxsID0gIG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0gY29uc3QgaW50IHg4 Nl91c2VfaGltb2RlX2Zpb3AgPSBtXzM4NiB8IG1fNDg2IHwgbV9LNl9HRU9ERTsKLS1jb25zdCBp bnQgeDg2X3VzZV9zaW1vZGVfZmlvcCA9IH4obV9QUFJPIHwgbV9BVEhMT05fSzggfCBtX1BFTlQg fCBtX0NPUkUyIHwgbV9HRU5FUklDKTsKLStjb25zdCBpbnQgeDg2X3VzZV9zaW1vZGVfZmlvcCA9 IH4obV9QUFJPIHwgbV9BVEhMT05fSzhfQU1ERkFNMTAgfCBtX1BFTlQKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBtX0NPUkUyIHwgbV9HRU5FUklDKTsKLSBjb25zdCBpbnQg eDg2X3VzZV9tb3YwID0gbV9LNjsKLSBjb25zdCBpbnQgeDg2X3VzZV9jbHRkID0gfihtX1BFTlQg fCBtX0s2IHwgbV9DT1JFMiB8IG1fR0VORVJJQyk7Ci0gY29uc3QgaW50IHg4Nl9yZWFkX21vZGlm eV93cml0ZSA9IH5tX1BFTlQ7Ci0gY29uc3QgaW50IHg4Nl9yZWFkX21vZGlmeSA9IH4obV9QRU5U IHwgbV9QUFJPKTsKLSBjb25zdCBpbnQgeDg2X3NwbGl0X2xvbmdfbW92ZXMgPSBtX1BQUk87Ci0t Y29uc3QgaW50IHg4Nl9wcm9tb3RlX1FJbW9kZSA9IG1fSzZfR0VPREUgfCBtX1BFTlQgfCBtXzM4 NiB8IG1fNDg2IHwgbV9BVEhMT05fSzggfCBtX0NPUkUyIHwgbV9HRU5FUklDOyAvKiBtX1BFTlQ0 ID8gKi8KLStjb25zdCBpbnQgeDg2X3Byb21vdGVfUUltb2RlID0gbV9LNl9HRU9ERSB8IG1fUEVO VCB8IG1fMzg2IHwgbV80ODYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX0FU SExPTl9LOF9BTURGQU0xMCB8IG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC8qIG1fUEVOVDQgPyAqLwotIGNvbnN0IGludCB4ODZfZmFzdF9wcmVm aXggPSB+KG1fUEVOVCB8IG1fNDg2IHwgbV8zODYpOwotIGNvbnN0IGludCB4ODZfc2luZ2xlX3N0 cmluZ29wID0gbV8zODYgfCBtX1BFTlQ0IHwgbV9OT0NPTkE7Ci0gY29uc3QgaW50IHg4Nl9xaW1v ZGVfbWF0aCA9IH4oMCk7Ci1AQCAtODcyLDE4ICs5NTAsMzcgQEAgY29uc3QgaW50IHg4Nl9wcm9t b3RlX3FpX3JlZ3MgPSAwOwotICAgIGlmIG91ciBzY2hlbWUgZm9yIGF2b2lkaW5nIHBhcnRpYWwg c3RhbGxzIHdhcyBtb3JlIGVmZmVjdGl2ZS4gICovCi0gY29uc3QgaW50IHg4Nl9oaW1vZGVfbWF0 aCA9IH4obV9QUFJPKTsKLSBjb25zdCBpbnQgeDg2X3Byb21vdGVfaGlfcmVncyA9IG1fUFBSTzsK LS1jb25zdCBpbnQgeDg2X3N1Yl9lc3BfNCA9IG1fQVRITE9OX0s4IHwgbV9QUFJPIHwgbV9QRU5U NCB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQzsKLS1jb25zdCBpbnQgeDg2X3N1Yl9l c3BfOCA9IG1fQVRITE9OX0s4IHwgbV9QUFJPIHwgbV8zODYgfCBtXzQ4NiB8IG1fUEVOVDQgfCBt X05PQ09OQSB8IG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0tY29uc3QgaW50IHg4Nl9hZGRfZXNwXzQg PSBtX0FUSExPTl9LOCB8IG1fSzZfR0VPREUgfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUy IHwgbV9HRU5FUklDOwotLWNvbnN0IGludCB4ODZfYWRkX2VzcF84ID0gbV9BVEhMT05fSzggfCBt X1BQUk8gfCBtX0s2X0dFT0RFIHwgbV8zODYgfCBtXzQ4NiB8IG1fUEVOVDQgfCBtX05PQ09OQSB8 IG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0tY29uc3QgaW50IHg4Nl9pbnRlZ2VyX0RGbW9kZV9tb3Zl cyA9IH4obV9BVEhMT05fSzggfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX1BQUk8gfCBtX0NPUkUy IHwgbV9HRU5FUklDIHwgbV9HRU9ERSk7Ci0tY29uc3QgaW50IHg4Nl9wYXJ0aWFsX3JlZ19kZXBl bmRlbmN5ID0gbV9BVEhMT05fSzggfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUyIHwgbV9H RU5FUklDOwotLWNvbnN0IGludCB4ODZfbWVtb3J5X21pc21hdGNoX3N0YWxsID0gbV9BVEhMT05f SzggfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotLWNvbnN0IGlu dCB4ODZfYWNjdW11bGF0ZV9vdXRnb2luZ19hcmdzID0gbV9BVEhMT05fSzggfCBtX1BFTlQ0IHwg bV9OT0NPTkEgfCBtX1BQUk8gfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotKy8qIEVuYWJsZSBpZiBh ZGQvc3ViIHJzcCBpcyBwcmVmZXJyZWQgb3ZlciAxIG9yIDIgcHVzaC9wb3AgKi8KLStjb25zdCBp bnQgeDg2X3N1Yl9lc3BfNCA9IG1fQVRITE9OX0s4X0FNREZBTTEwIHwgbV9QUFJPIHwgbV9QRU5U NCB8IG1fTk9DT05BCi0rICAgICAgICAgICAgICAgICAgICAgICAgICB8IG1fQ09SRTIgfCBtX0dF TkVSSUM7Ci0rY29uc3QgaW50IHg4Nl9zdWJfZXNwXzggPSBtX0FUSExPTl9LOF9BTURGQU0xMCB8 IG1fUFBSTyB8IG1fMzg2IHwgbV80ODYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9Q RU5UNCB8IG1fTk9DT05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQzsKLStjb25zdCBpbnQgeDg2X2Fk ZF9lc3BfNCA9IG1fQVRITE9OX0s4X0FNREZBTTEwIHwgbV9LNl9HRU9ERSB8IG1fUEVOVDQgfCBt X05PQ09OQQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX0NPUkUyIHwgbV9HRU5FUklD OwotK2NvbnN0IGludCB4ODZfYWRkX2VzcF84ID0gbV9BVEhMT05fSzhfQU1ERkFNMTAgfCBtX1BQ Uk8gfCBtX0s2X0dFT0RFIHwgbV8zODYKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV80 ODYgfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotKy8qIEVuYWJs ZSBpZiBpbnRlZ2VyIG1vdmVzIGFyZSBwcmVmZXJyZWQgZm9yIERGbW9kZSBjb3BpZXMgKi8KLStj b25zdCBpbnQgeDg2X2ludGVnZXJfREZtb2RlX21vdmVzID0gfihtX0FUSExPTl9LOF9BTURGQU0x MCB8IG1fUEVOVDQgfCBtX05PQ09OQQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgbV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VORVJJQyB8IG1fR0VPREUpOwotK2NvbnN0 IGludCB4ODZfcGFydGlhbF9yZWdfZGVwZW5kZW5jeSA9IG1fQVRITE9OX0s4X0FNREZBTTEwIHwg bV9QRU5UNCB8IG1fTk9DT05BCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotK2NvbnN0IGludCB4ODZfbWVtb3J5X21pc21hdGNo X3N0YWxsID0gbV9BVEhMT05fSzhfQU1ERkFNMTAgfCBtX1BFTlQ0IHwgbV9OT0NPTkEKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9DT1JFMiB8IG1fR0VORVJJQzsK LSsvKiBJZiBBQ0NVTVVMQVRFX09VVEdPSU5HX0FSR1MgaXMgZW5hYmxlZCwgdGhlIG1heGltdW0g YW1vdW50IG9mIHNwYWNlIHJlcXVpcmVkCi0rICAgZm9yIG91dGdvaW5nIGFyZ3VtZW50cyB3aWxs IGJlIGNvbXB1dGVkIGFuZCBwbGFjZWQgaW50byB0aGUgdmFyaWFibGUKLSsgICBgY3VycmVudF9m dW5jdGlvbl9vdXRnb2luZ19hcmdzX3NpemUnLiBObyBzcGFjZSB3aWxsIGJlIHB1c2hlZCBvbnRv IHRoZSBzdGFjawotKyAgIGZvciBlYWNoIGNhbGw7IGluc3RlYWQsIHRoZSBmdW5jdGlvbiBwcm9s b2d1ZSBzaG91bGQgaW5jcmVhc2UgdGhlIHN0YWNrIGZyYW1lCi0rICAgc2l6ZSBieSB0aGlzIGFt b3VudC4gU2V0dGluZyBib3RoIFBVU0hfQVJHUyBhbmQgQUNDVU1VTEFURV9PVVRHT0lOR19BUkdT IGlzCi0rICAgbm90IHByb3Blci4gKi8KLStjb25zdCBpbnQgeDg2X2FjY3VtdWxhdGVfb3V0Z29p bmdfYXJncyA9IG1fQVRITE9OX0s4X0FNREZBTTEwIHwgbV9QRU5UNAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX05PQ09OQSB8IG1fUFBSTyB8IG1fQ09SRTIK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9HRU5FUklDOwot IGNvbnN0IGludCB4ODZfcHJvbG9ndWVfdXNpbmdfbW92ZSA9IG1fQVRITE9OX0s4IHwgbV9QUFJP IHwgbV9DT1JFMiB8IG1fR0VORVJJQzsKLSBjb25zdCBpbnQgeDg2X2VwaWxvZ3VlX3VzaW5nX21v dmUgPSBtX0FUSExPTl9LOCB8IG1fUFBSTyB8IG1fQ09SRTIgfCBtX0dFTkVSSUM7Ci0gY29uc3Qg aW50IHg4Nl9zaGlmdDEgPSB+bV80ODY7Ci0tY29uc3QgaW50IHg4Nl9hcmNoX2Fsd2F5c19mYW5j eV9tYXRoXzM4NyA9IG1fUEVOVCB8IG1fUFBSTyB8IG1fQVRITE9OX0s4IHwgbV9QRU5UNCB8IG1f Tk9DT05BIHwgbV9DT1JFMiB8IG1fR0VORVJJQzsKLStjb25zdCBpbnQgeDg2X2FyY2hfYWx3YXlz X2ZhbmN5X21hdGhfMzg3ID0gbV9QRU5UIHwgbV9QUFJPCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgbV9BVEhMT05fSzhfQU1ERkFNMTAgfCBtX1BFTlQ0Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbV9OT0NPTkEgfCBt X0NPUkUyIHwgbV9HRU5FUklDOwotIC8qIEluIEdlbmVyaWMgbW9kZWwgd2UgaGF2ZSBhbiBjb25m aWN0IGhlcmUgaW4gYmV0d2VlbiBQUHJvL1BlbnRpdW00IGJhc2VkIGNoaXBzCi0gICAgdGhhdCB0 aHJlYWQgMTI4Yml0IFNTRSByZWdpc3RlcnMgYXMgc2luZ2xlIHVuaXRzIHZlcnN1cyBLOCBiYXNl ZCBjaGlwcyB0aGF0Ci0gICAgZGl2aWRlIFNTRSByZWdpc3RlcnMgdG8gdHdvIDY0Yml0IGhhbHZl cy4KLUBAIC04OTMsMTUgKzk5MCw2NiBAQCBjb25zdCBpbnQgeDg2X2FyY2hfYWx3YXlzX2ZhbmN5 X21hdGhfMzg3Ci0gICAgdGhpcyBvcHRpb24gb24gUDQgYnJpbmdzIG92ZXIgMjAlIFNQRUNmcCBy ZWdyZXNzaW9uLCB3aGlsZSBlbmFibGluZyBpdCBvbgotICAgIEs4IGJyaW5ncyByb3VnaGx5IDIu NCUgcmVncmVzc2lvbiB0aGF0IGNhbiBiZSBwYXJ0bHkgbWFza2VkIGJ5IGNhcmVmdWwgc2NoZWR1 bGluZwotICAgIG9mIG1vdmVzLiAgKi8KLS1jb25zdCBpbnQgeDg2X3NzZV9wYXJ0aWFsX3JlZ19k ZXBlbmRlbmN5ID0gbV9QRU5UNCB8IG1fTk9DT05BIHwgbV9QUFJPIHwgbV9DT1JFMiB8IG1fR0VO RVJJQzsKLStjb25zdCBpbnQgeDg2X3NzZV9wYXJ0aWFsX3JlZ19kZXBlbmRlbmN5ID0gbV9QRU5U NCB8IG1fTk9DT05BIHwgbV9QUFJPIHwgbV9DT1JFMgotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IG1fR0VORVJJQyB8IG1fQU1ERkFNMTA7Ci0gLyogU2V0IGZv ciBtYWNoaW5lcyB3aGVyZSB0aGUgdHlwZSBhbmQgZGVwZW5kZW5jaWVzIGFyZSByZXNvbHZlZCBv biBTU0UKLSAgICByZWdpc3RlciBwYXJ0cyBpbnN0ZWFkIG9mIHdob2xlIHJlZ2lzdGVycywgc28g d2UgbWF5IG1haW50YWluIGp1c3QKLSAgICBsb3dlciBwYXJ0IG9mIHNjYWxhciB2YWx1ZXMgaW4g cHJvcGVyIGZvcm1hdCBsZWF2aW5nIHRoZSB1cHBlciBwYXJ0Ci0gICAgdW5kZWZpbmVkLiAgKi8K LSBjb25zdCBpbnQgeDg2X3NzZV9zcGxpdF9yZWdzID0gbV9BVEhMT05fSzg7Ci0tY29uc3QgaW50 IHg4Nl9zc2VfdHlwZWxlc3Nfc3RvcmVzID0gbV9BVEhMT05fSzg7Ci0rLyogQ29kZSBnZW5lcmF0 aW9uIGZvciBzY2FsYXIgcmVnLXJlZyBtb3ZlcyBvZiBzaW5nbGUgYW5kIGRvdWJsZSBwcmVjaXNp b24gZGF0YToKLSsgICAgIGlmICh4ODZfc3NlX3BhcnRpYWxfcmVnX2RlcGVuZGVuY3kgPT0gdHJ1 ZSB8IHg4Nl9zc2Vfc3BsaXRfcmVncyA9PSB0cnVlKQotKyAgICAgICBtb3ZhcHMgcmVnLCByZWcK LSsgICAgIGVsc2UKLSsgICAgICAgbW92c3MgcmVnLCByZWcKLSsgICAgIGlmICh4ODZfc3NlX3Bh cnRpYWxfcmVnX2RlcGVuZGVuY3kgPT0gdHJ1ZSkKLSsgICAgICAgbW92YXBkIHJlZywgcmVnCi0r ICAgICBlbHNlCi0rICAgICAgIG1vdnNkIHJlZywgcmVnCi0rCi0rICAgQ29kZSBnZW5lcmF0aW9u IGZvciBzY2FsYXIgbG9hZHMgb2YgZG91YmxlIHByZWNpc2lvbiBkYXRhOgotKyAgICAgaWYgKHg4 Nl9zc2Vfc3BsaXRfcmVncyA9PSB0cnVlKQotKyAgICAgICBtb3ZscGQgbWVtLCByZWcgICAgICAo Z2FzIHN5bnRheCkKLSsgICAgIGVsc2UKLSsgICAgICAgbW92c2QgbWVtLCByZWcKLSsKLSsgICBD b2RlIGdlbmVyYXRpb24gZm9yIHVuYWxpZ25lZCBwYWNrZWQgbG9hZHMgb2Ygc2luZ2xlIHByZWNp c2lvbiBkYXRhCi0rICAgKHg4Nl9zc2VfdW5hbGlnbmVkX21vdmVfb3B0aW1hbCBvdmVycmlkZXMg eDg2X3NzZV9wYXJ0aWFsX3JlZ19kZXBlbmRlbmN5KToKLSsgICAgIGlmICh4ODZfc3NlX3VuYWxp Z25lZF9tb3ZlX29wdGltYWwpCi0rICAgICAgIG1vdnVwcyBtZW0sIHJlZwotKwotKyAgICAgaWYg KHg4Nl9zc2VfcGFydGlhbF9yZWdfZGVwZW5kZW5jeSA9PSB0cnVlKQotKyAgICAgICB7Ci0rICAg ICAgICAgeG9ycHMgIHJlZywgcmVnCi0rICAgICAgICAgbW92bHBzIG1lbSwgcmVnCi0rICAgICAg ICAgbW92aHBzIG1lbSs4LCByZWcKLSsgICAgICAgfQotKyAgICAgZWxzZQotKyAgICAgICB7Ci0r ICAgICAgICAgbW92bHBzIG1lbSwgcmVnCi0rICAgICAgICAgbW92aHBzIG1lbSs4LCByZWcKLSsg ICAgICAgfQotKwotKyAgIENvZGUgZ2VuZXJhdGlvbiBmb3IgdW5hbGlnbmVkIHBhY2tlZCBsb2Fk cyBvZiBkb3VibGUgcHJlY2lzaW9uIGRhdGEKLSsgICAoeDg2X3NzZV91bmFsaWduZWRfbW92ZV9v cHRpbWFsIG92ZXJyaWRlcyB4ODZfc3NlX3NwbGl0X3JlZ3MpOgotKyAgICAgaWYgKHg4Nl9zc2Vf dW5hbGlnbmVkX21vdmVfb3B0aW1hbCkKLSsgICAgICAgbW92dXBkIG1lbSwgcmVnCi0rCi0rICAg ICBpZiAoeDg2X3NzZV9zcGxpdF9yZWdzID09IHRydWUpCi0rICAgICAgIHsKLSsgICAgICAgICBt b3ZscGQgbWVtLCByZWcKLSsgICAgICAgICBtb3ZocGQgbWVtKzgsIHJlZwotKyAgICAgICB9Ci0r ICAgICBlbHNlCi0rICAgICAgIHsKLSsgICAgICAgICBtb3ZzZCAgbWVtLCByZWcKLSsgICAgICAg ICBtb3ZocGQgbWVtKzgsIHJlZwotKyAgICAgICB9Ci0rICovCi0rY29uc3QgaW50IHg4Nl9zc2Vf dW5hbGlnbmVkX21vdmVfb3B0aW1hbCA9IG1fQU1ERkFNMTA7Ci0rY29uc3QgaW50IHg4Nl9zc2Vf dHlwZWxlc3Nfc3RvcmVzID0gbV9BVEhMT05fSzhfQU1ERkFNMTA7Ci0gY29uc3QgaW50IHg4Nl9z c2VfbG9hZDBfYnlfcHhvciA9IG1fUFBSTyB8IG1fUEVOVDQgfCBtX05PQ09OQTsKLS1jb25zdCBp bnQgeDg2X3VzZV9mZnJlZXAgPSBtX0FUSExPTl9LODsKLStjb25zdCBpbnQgeDg2X3VzZV9mZnJl ZXAgPSBtX0FUSExPTl9LOF9BTURGQU0xMDsKLSBjb25zdCBpbnQgeDg2X3JlcF9tb3ZsX29wdGlt YWwgPSBtXzM4NiB8IG1fUEVOVCB8IG1fUFBSTyB8IG1fSzZfR0VPREUgfCBtX0NPUkUyOwotIGNv bnN0IGludCB4ODZfdXNlX2luY2RlYyA9IH4obV9QRU5UNCB8IG1fTk9DT05BIHwgbV9DT1JFMiB8 IG1fR0VORVJJQyk7Ci0gCi1AQCAtOTA5LDE5ICsxMDU3LDIyIEBAIGNvbnN0IGludCB4ODZfdXNl X2luY2RlYyA9IH4obV9QRU5UNCB8IG0KLSAgICBpbnRlZ2VyIGRhdGEgaW4geG1tIHJlZ2lzdGVy cy4gIFdoaWNoIHJlc3VsdHMgaW4gcHJldHR5IGFieXNtYWwgY29kZS4gICovCi0gY29uc3QgaW50 IHg4Nl9pbnRlcl91bml0X21vdmVzID0gMCAvKiB+KG1fQVRITE9OX0s4KSAqLzsKLSAKLS1jb25z dCBpbnQgeDg2X2V4dF84MDM4N19jb25zdGFudHMgPSBtX0s2X0dFT0RFIHwgbV9BVEhMT04gfCBt X1BFTlQ0IHwgbV9OT0NPTkEgfCBtX1BQUk8gfCBtX0dFTkVSSUMzMjsKLStjb25zdCBpbnQgeDg2 X2V4dF84MDM4N19jb25zdGFudHMgPSBtX0s2X0dFT0RFIHwgbV9BVEhMT04gfCBtX1BFTlQ0Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX05PQ09OQSB8IG1fUFBSTyB8 IG1fR0VORVJJQzMyOwotIC8qIFNvbWUgQ1BVIGNvcmVzIGFyZSBub3QgYWJsZSB0byBwcmVkaWN0 IG1vcmUgdGhhbiA0IGJyYW5jaCBpbnN0cnVjdGlvbnMgaW4KLSAgICB0aGUgMTYgYnl0ZSB3aW5k b3cuICAqLwotLWNvbnN0IGludCB4ODZfZm91cl9qdW1wX2xpbWl0ID0gbV9QUFJPIHwgbV9BVEhM T05fSzggfCBtX1BFTlQ0IHwgbV9OT0NPTkEgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotLWNvbnN0 IGludCB4ODZfc2NoZWR1bGUgPSBtX1BQUk8gfCBtX0FUSExPTl9LOCB8IG1fSzZfR0VPREUgfCBt X1BFTlQgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotLWNvbnN0IGludCB4ODZfdXNlX2J0ID0gbV9B VEhMT05fSzg7Ci0rY29uc3QgaW50IHg4Nl9mb3VyX2p1bXBfbGltaXQgPSBtX1BQUk8gfCBtX0FU SExPTl9LOF9BTURGQU0xMCB8IG1fUEVOVDQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgbV9OT0NPTkEgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotK2NvbnN0IGludCB4ODZfc2No ZWR1bGUgPSBtX1BQUk8gfCBtX0FUSExPTl9LOF9BTURGQU0xMCB8IG1fSzZfR0VPREUgfCBtX1BF TlQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotK2Nv bnN0IGludCB4ODZfdXNlX2J0ID0gbV9BVEhMT05fSzhfQU1ERkFNMTA7Ci0gLyogQ29tcGFyZSBh bmQgZXhjaGFuZ2Ugd2FzIGFkZGVkIGZvciA4MDQ4Ni4gICovCi0gY29uc3QgaW50IHg4Nl9jbXB4 Y2hnID0gfm1fMzg2OwotIC8qIENvbXBhcmUgYW5kIGV4Y2hhbmdlIDggYnl0ZXMgd2FzIGFkZGVk IGZvciBwZW50aXVtLiAgKi8KLSBjb25zdCBpbnQgeDg2X2NtcHhjaGc4YiA9IH4obV8zODYgfCBt XzQ4Nik7Ci0gLyogRXhjaGFuZ2UgYW5kIGFkZCB3YXMgYWRkZWQgZm9yIDgwNDg2LiAgKi8KLSBj b25zdCBpbnQgeDg2X3hhZGQgPSB+bV8zODY7Ci0tY29uc3QgaW50IHg4Nl9wYWRfcmV0dXJucyA9 IG1fQVRITE9OX0s4IHwgbV9DT1JFMiB8IG1fR0VORVJJQzsKLStjb25zdCBpbnQgeDg2X3BhZF9y ZXR1cm5zID0gbV9BVEhMT05fSzhfQU1ERkFNMTAgfCBtX0NPUkUyIHwgbV9HRU5FUklDOwotIAot IC8qIEluIGNhc2UgdGhlIGF2ZXJhZ2UgaW5zbiBjb3VudCBmb3Igc2luZ2xlIGZ1bmN0aW9uIGlu dm9jYXRpb24gaXMKLSAgICBsb3dlciB0aGFuIHRoaXMgY29uc3RhbnQsIGVtaXQgZmFzdCAoYnV0 IGxvbmdlcikgcHJvbG9ndWUgYW5kCi1AQCAtMTQ4NSwxNiArMTYzNiwyNCBAQCBpeDg2X2hhbmRs ZV9vcHRpb24gKHNpemVfdCBjb2RlLCBjb25zdCBjCi0gICAgIGNhc2UgT1BUX21zc2U6Ci0gICAg ICAgaWYgKCF2YWx1ZSkKLSAJewotLQkgIHRhcmdldF9mbGFncyAmPSB+KE1BU0tfU1NFMiB8IE1B U0tfU1NFMyk7Ci0tCSAgdGFyZ2V0X2ZsYWdzX2V4cGxpY2l0IHw9IE1BU0tfU1NFMiB8IE1BU0tf U1NFMzsKLSsJICB0YXJnZXRfZmxhZ3MgJj0gfihNQVNLX1NTRTIgfCBNQVNLX1NTRTMgfCBNQVNL X1NTRTRBKTsKLSsJICB0YXJnZXRfZmxhZ3NfZXhwbGljaXQgfD0gTUFTS19TU0UyIHwgTUFTS19T U0UzIHwgTUFTS19TU0U0QTsKLSAJfQotICAgICAgIHJldHVybiB0cnVlOwotIAotICAgICBjYXNl IE9QVF9tc3NlMjoKLSAgICAgICBpZiAoIXZhbHVlKQotIAl7Ci0tCSAgdGFyZ2V0X2ZsYWdzICY9 IH5NQVNLX1NTRTM7Ci0tCSAgdGFyZ2V0X2ZsYWdzX2V4cGxpY2l0IHw9IE1BU0tfU1NFMzsKLSsJ ICB0YXJnZXRfZmxhZ3MgJj0gfihNQVNLX1NTRTMgfCBNQVNLX1NTRTRBKTsKLSsJICB0YXJnZXRf ZmxhZ3NfZXhwbGljaXQgfD0gTUFTS19TU0UzIHwgTUFTS19TU0U0QTsKLSsJfQotKyAgICAgIHJl dHVybiB0cnVlOwotKwotKyAgICBjYXNlIE9QVF9tc3NlMzoKLSsgICAgICBpZiAoIXZhbHVlKQot Kwl7Ci0rCSAgdGFyZ2V0X2ZsYWdzICY9IH5NQVNLX1NTRTRBOwotKwkgIHRhcmdldF9mbGFnc19l eHBsaWNpdCB8PSBNQVNLX1NTRTRBOwotIAl9Ci0gICAgICAgcmV0dXJuIHRydWU7Ci0gCi1AQCAt MTU0Niw3ICsxNzA1LDggQEAgb3ZlcnJpZGVfb3B0aW9ucyAodm9pZCkKLSAgICAgICB7Jm5vY29u YV9jb3N0LCAwLCAwLCAwLCAwLCAwLCAwLCAwfSwKLSAgICAgICB7JmNvcmUyX2Nvc3QsIDAsIDAs IDE2LCA3LCAxNiwgNywgMTZ9LAotICAgICAgIHsmZ2VuZXJpYzMyX2Nvc3QsIDAsIDAsIDE2LCA3 LCAxNiwgNywgMTZ9LAotLSAgICAgIHsmZ2VuZXJpYzY0X2Nvc3QsIDAsIDAsIDE2LCA3LCAxNiwg NywgMTZ9Ci0rICAgICAgeyZnZW5lcmljNjRfY29zdCwgMCwgMCwgMTYsIDcsIDE2LCA3LCAxNn0s Ci0rICAgICAgeyZhbWRmYW0xMF9jb3N0LCAwLCAwLCAzMiwgNywgMzIsIDcsIDMyfQotICAgICB9 OwotIAotICAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBjcHVfbmFtZXNbXSA9IFRBUkdFVF9D UFVfREVGQVVMVF9OQU1FUzsKLUBAIC0xNTY1LDcgKzE3MjUsMTAgQEAgb3ZlcnJpZGVfb3B0aW9u cyAodm9pZCkKLSAJICBQVEFfM0ROT1dfQSA9IDY0LAotIAkgIFBUQV82NEJJVCA9IDEyOCwKLSAJ ICBQVEFfU1NTRTMgPSAyNTYsCi0tCSAgUFRBX0NYMTYgPSA1MTIKLSsJICBQVEFfQ1gxNiA9IDUx MiwKLSsJICBQVEFfUE9QQ05UID0gMTAyNCwKLSsJICBQVEFfQUJNID0gMjA0OCwKLSsgCSAgUFRB X1NTRTRBID0gNDA5NgotIAl9IGZsYWdzOwotICAgICB9Ci0gICBjb25zdCBwcm9jZXNzb3JfYWxp YXNfdGFibGVbXSA9Ci1AQCAtMTYyMSw2ICsxNzg0LDEwIEBAIG92ZXJyaWRlX29wdGlvbnMgKHZv aWQpCi0gCQkJCSAgICAgIHwgUFRBXzNETk9XX0EgfCBQVEFfU1NFIHwgUFRBX1NTRTJ9LAotICAg ICAgIHsiYXRobG9uLWZ4IiwgUFJPQ0VTU09SX0s4LCBQVEFfTU1YIHwgUFRBX1BSRUZFVENIX1NT RSB8IFBUQV8zRE5PVyB8IFBUQV82NEJJVAotIAkJCQkgICAgICB8IFBUQV8zRE5PV19BIHwgUFRB X1NTRSB8IFBUQV9TU0UyfSwKLSsgICAgICB7ImFtZGZhbTEwIiwgUFJPQ0VTU09SX0FNREZBTTEw LCBQVEFfTU1YIHwgUFRBX1BSRUZFVENIX1NTRSB8IFBUQV8zRE5PVwotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgUFRBXzY0QklUIHwgUFRBXzNETk9XX0EgfCBQVEFf U1NFCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBQVEFfU1NFMiB8 IFBUQV9TU0UzIHwgUFRBX1BPUENOVAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgUFRBX0FCTSB8IFBUQV9TU0U0QSB8IFBUQV9DWDE2fSwKLSAgICAgICB7ImdlbmVy aWMzMiIsIFBST0NFU1NPUl9HRU5FUklDMzIsIDAgLyogZmxhZ3MgYXJlIG9ubHkgdXNlZCBmb3Ig LW1hcmNoIHN3aXRjaC4gICovIH0sCi0gICAgICAgeyJnZW5lcmljNjQiLCBQUk9DRVNTT1JfR0VO RVJJQzY0LCBQVEFfNjRCSVQgLyogZmxhZ3MgYXJlIG9ubHkgdXNlZCBmb3IgLW1hcmNoIHN3aXRj aC4gICovIH0sCi0gICAgIH07Ci1AQCAtMTc3Miw2ICsxOTM5LDE1IEBAIG92ZXJyaWRlX29wdGlv bnMgKHZvaWQpCi0gCSAgeDg2X3ByZWZldGNoX3NzZSA9IHRydWU7Ci0gCWlmIChwcm9jZXNzb3Jf YWxpYXNfdGFibGVbaV0uZmxhZ3MgJiBQVEFfQ1gxNikKLSAJICB4ODZfY21weGNoZzE2YiA9IHRy dWU7Ci0rCWlmIChwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0uZmxhZ3MgJiBQVEFfUE9QQ05UCi0r CSAgICAmJiAhKHRhcmdldF9mbGFnc19leHBsaWNpdCAmIE1BU0tfUE9QQ05UKSkKLSsJICB0YXJn ZXRfZmxhZ3MgfD0gTUFTS19QT1BDTlQ7Ci0rCWlmIChwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0u ZmxhZ3MgJiBQVEFfQUJNCi0rCSAgICAmJiAhKHRhcmdldF9mbGFnc19leHBsaWNpdCAmIE1BU0tf QUJNKSkKLSsJICB0YXJnZXRfZmxhZ3MgfD0gTUFTS19BQk07Ci0rCWlmIChwcm9jZXNzb3JfYWxp YXNfdGFibGVbaV0uZmxhZ3MgJiBQVEFfU1NFNEEKLSsJICAgICYmICEodGFyZ2V0X2ZsYWdzX2V4 cGxpY2l0ICYgTUFTS19TU0U0QSkpCi0rCSAgdGFyZ2V0X2ZsYWdzIHw9IE1BU0tfU1NFNEE7Ci0g CWlmIChUQVJHRVRfNjRCSVQgJiYgIShwcm9jZXNzb3JfYWxpYXNfdGFibGVbaV0uZmxhZ3MgJiBQ VEFfNjRCSVQpKQotIAkgIGVycm9yICgiQ1BVIHlvdSBzZWxlY3RlZCBkb2VzIG5vdCBzdXBwb3J0 IHg4Ni02NCAiCi0gCQkgImluc3RydWN0aW9uIHNldCIpOwotQEAgLTE5NjMsNiArMjEzOSwxMCBA QCBvdmVycmlkZV9vcHRpb25zICh2b2lkKQotICAgaWYgKFRBUkdFVF9TU1NFMykKLSAgICAgdGFy Z2V0X2ZsYWdzIHw9IE1BU0tfU1NFMzsKLSAKLSsgIC8qIFR1cm4gb24gU1NFMyBidWlsdGlucyBm b3IgLW1zc2U0YS4gICovCi0rICBpZiAoVEFSR0VUX1NTRTRBKQotKyAgICB0YXJnZXRfZmxhZ3Mg fD0gTUFTS19TU0UzOwotKwotICAgLyogVHVybiBvbiBTU0UyIGJ1aWx0aW5zIGZvciAtbXNzZTMu ICAqLwotICAgaWYgKFRBUkdFVF9TU0UzKQotICAgICB0YXJnZXRfZmxhZ3MgfD0gTUFTS19TU0Uy OwotQEAgLTE5ODIsNiArMjE2MiwxMCBAQCBvdmVycmlkZV9vcHRpb25zICh2b2lkKQotICAgaWYg KFRBUkdFVF8zRE5PVykKLSAgICAgdGFyZ2V0X2ZsYWdzIHw9IE1BU0tfTU1YOwotIAotKyAgLyog VHVybiBvbiBQT1BDTlQgYnVpbHRpbnMgZm9yIC1tYWJtLiAgKi8KLSsgIGlmIChUQVJHRVRfQUJN KQotKyAgICB0YXJnZXRfZmxhZ3MgfD0gTUFTS19QT1BDTlQ7Ci0rCi0gICBpZiAoVEFSR0VUXzY0 QklUKQotICAgICB7Ci0gICAgICAgaWYgKFRBUkdFVF9BTElHTl9ET1VCTEUpCi1AQCAtODkwMCw4 ICs5MDg0LDE2IEBAIGl4ODZfZXhwYW5kX3ZlY3Rvcl9tb3ZlX21pc2FsaWduIChlbnVtIG0KLSAJ fQotIAotICAgICAgIGlmIChUQVJHRVRfU1NFMiAmJiBtb2RlID09IFYyREZtb2RlKQotLQl7Ci0t CSAgcnR4IHplcm87Ci0rICAgICAgICB7Ci0rICAgICAgICAgIHJ0eCB6ZXJvOwotKwotKyAgICAg ICAgICBpZiAoVEFSR0VUX1NTRV9VTkFMSUdORURfTU9WRV9PUFRJTUFMKQotKyAgICAgICAgICAg IHsKLSsgICAgICAgICAgICAgIG9wMCA9IGdlbl9sb3dwYXJ0IChWMkRGbW9kZSwgb3AwKTsKLSsg ICAgICAgICAgICAgIG9wMSA9IGdlbl9sb3dwYXJ0IChWMkRGbW9kZSwgb3AxKTsKLSsgICAgICAg ICAgICAgIGVtaXRfaW5zbiAoZ2VuX3NzZTJfbW92dXBkIChvcDAsIG9wMSkpOwotKyAgICAgICAg ICAgICAgcmV0dXJuOwotKyAgICAgICAgICAgIH0KLSAKLSAJICAvKiBXaGVuIFNTRSByZWdpc3Rl cnMgYXJlIHNwbGl0IGludG8gaGFsdmVzLCB3ZSBjYW4gYXZvaWQKLSAJICAgICB3cml0aW5nIHRv IHRoZSB0b3AgaGFsZiB0d2ljZS4gICovCi1AQCAtODkyOSw3ICs5MTIxLDE1IEBAIGl4ODZfZXhw YW5kX3ZlY3Rvcl9tb3ZlX21pc2FsaWduIChlbnVtIG0KLSAJICBlbWl0X2luc24gKGdlbl9zc2Uy X2xvYWRocGQgKG9wMCwgb3AwLCBtKSk7Ci0gCX0KLSAgICAgICBlbHNlCi0tCXsKLSsgICAgICAg IHsKLSsgICAgICAgICAgaWYgKFRBUkdFVF9TU0VfVU5BTElHTkVEX01PVkVfT1BUSU1BTCkKLSsg ICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICBvcDAgPSBnZW5fbG93cGFydCAoVjRTRm1vZGUs IG9wMCk7Ci0rICAgICAgICAgICAgICBvcDEgPSBnZW5fbG93cGFydCAoVjRTRm1vZGUsIG9wMSk7 Ci0rICAgICAgICAgICAgICBlbWl0X2luc24gKGdlbl9zc2VfbW92dXBzIChvcDAsIG9wMSkpOwot KyAgICAgICAgICAgICAgcmV0dXJuOwotKyAgICAgICAgICAgIH0KLSsKLSAJICBpZiAoVEFSR0VU X1NTRV9QQVJUSUFMX1JFR19ERVBFTkRFTkNZKQotIAkgICAgZW1pdF9tb3ZlX2luc24gKG9wMCwg Q09OU1QwX1JUWCAobW9kZSkpOwotIAkgIGVsc2UKLUBAIC0xMzQ2MSw2ICsxMzY2MSw3IEBAIGl4 ODZfaXNzdWVfcmF0ZSAodm9pZCkKLSAgICAgY2FzZSBQUk9DRVNTT1JfUEVOVElVTTQ6Ci0gICAg IGNhc2UgUFJPQ0VTU09SX0FUSExPTjoKLSAgICAgY2FzZSBQUk9DRVNTT1JfSzg6Ci0rICAgIGNh c2UgUFJPQ0VTU09SX0FNREZBTTEwOgotICAgICBjYXNlIFBST0NFU1NPUl9OT0NPTkE6Ci0gICAg IGNhc2UgUFJPQ0VTU09SX0dFTkVSSUMzMjoKLSAgICAgY2FzZSBQUk9DRVNTT1JfR0VORVJJQzY0 OgotQEAgLTEzNjU5LDYgKzEzODYwLDcgQEAgaXg4Nl9hZGp1c3RfY29zdCAocnR4IGluc24sIHJ0 eCBsaW5rLCBydAotIAotICAgICBjYXNlIFBST0NFU1NPUl9BVEhMT046Ci0gICAgIGNhc2UgUFJP Q0VTU09SX0s4OgotKyAgICBjYXNlIFBST0NFU1NPUl9BTURGQU0xMDoKLSAgICAgY2FzZSBQUk9D RVNTT1JfR0VORVJJQzMyOgotICAgICBjYXNlIFBST0NFU1NPUl9HRU5FUklDNjQ6Ci0gICAgICAg bWVtb3J5ID0gZ2V0X2F0dHJfbWVtb3J5IChpbnNuKTsKLUBAIC0xNDM3MCw2ICsxNDU3MiwxNCBA QCBlbnVtIGl4ODZfYnVpbHRpbnMKLSAgIElYODZfQlVJTFRJTl9QQUJTVzEyOCwKLSAgIElYODZf QlVJTFRJTl9QQUJTRDEyOCwKLSAKLSsgIC8qIEFNREZBTTEwIC0gU1NFNEEgTmV3IEluc3RydWN0 aW9ucy4gICovCi0rICBJWDg2X0JVSUxUSU5fTU9WTlRTRCwKLSsgIElYODZfQlVJTFRJTl9NT1ZO VFNTLAotKyAgSVg4Nl9CVUlMVElOX0VYVFJRSSwKLSsgIElYODZfQlVJTFRJTl9FWFRSUSwKLSsg IElYODZfQlVJTFRJTl9JTlNFUlRRSSwKLSsgIElYODZfQlVJTFRJTl9JTlNFUlRRLAotKwotICAg SVg4Nl9CVUlMVElOX1ZFQ19JTklUX1YyU0ksCi0gICBJWDg2X0JVSUxUSU5fVkVDX0lOSVRfVjRI SSwKLSAgIElYODZfQlVJTFRJTl9WRUNfSU5JVF9WOFFJLAotQEAgLTE1MTAyLDYgKzE1MzEyLDE4 IEBAIGl4ODZfaW5pdF9tbXhfc3NlX2J1aWx0aW5zICh2b2lkKQotICAgICA9IGJ1aWxkX2Z1bmN0 aW9uX3R5cGVfbGlzdCAodm9pZF90eXBlX25vZGUsCi0gCQkJICAgICAgICBwY2hhcl90eXBlX25v ZGUsIFYxNlFJX3R5cGVfbm9kZSwgTlVMTF9UUkVFKTsKLSAKLSsgIHRyZWUgdjJkaV9mdHlwZV92 MmRpX3Vuc2lnbmVkX3Vuc2lnbmVkCi0rICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9saXN0IChW MkRJX3R5cGVfbm9kZSwgVjJESV90eXBlX25vZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZF90eXBlX25vZGUsIHVuc2lnbmVkX3R5cGVfbm9kZSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTExfVFJFRSk7Ci0rICB0cmVlIHYyZGlfZnR5cGVf djJkaV92MmRpX3Vuc2lnbmVkX3Vuc2lnbmVkCi0rICAgID0gYnVpbGRfZnVuY3Rpb25fdHlwZV9s aXN0IChWMkRJX3R5cGVfbm9kZSwgVjJESV90eXBlX25vZGUsIFYyRElfdHlwZV9ub2RlLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWRfdHlwZV9ub2RlLCB1bnNpZ25l ZF90eXBlX25vZGUsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMX1RSRUUp OwotKyAgdHJlZSB2MmRpX2Z0eXBlX3YyZGlfdjE2cWkKLSsgICAgPSBidWlsZF9mdW5jdGlvbl90 eXBlX2xpc3QgKFYyRElfdHlwZV9ub2RlLCBWMkRJX3R5cGVfbm9kZSwgVjE2UUlfdHlwZV9ub2Rl LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTF9UUkVFKTsKLSsKLSAgIHRy ZWUgZmxvYXQ4MF90eXBlOwotICAgdHJlZSBmbG9hdDEyOF90eXBlOwotICAgdHJlZSBmdHlwZTsK LUBAIC0xNTQzNSw2ICsxNTY1NywyMCBAQCBpeDg2X2luaXRfbW14X3NzZV9idWlsdGlucyAodm9p ZCkKLSAgIGRlZl9idWlsdGluIChNQVNLX1NTU0UzLCAiX19idWlsdGluX2lhMzJfcGFsaWduciIs IGRpX2Z0eXBlX2RpX2RpX2ludCwKLSAJICAgICAgIElYODZfQlVJTFRJTl9QQUxJR05SKTsKLSAK LSsgIC8qIEFNREZBTTEwIFNTRTRBIE5ldyBidWlsdC1pbnMgICovCi0rICBkZWZfYnVpbHRpbiAo TUFTS19TU0U0QSwgIl9fYnVpbHRpbl9pYTMyX21vdm50c2QiLCAKLSsgICAgICAgICAgICAgICB2 b2lkX2Z0eXBlX3Bkb3VibGVfdjJkZiwgSVg4Nl9CVUlMVElOX01PVk5UU0QpOwotKyAgZGVmX2J1 aWx0aW4gKE1BU0tfU1NFNEEsICJfX2J1aWx0aW5faWEzMl9tb3ZudHNzIiwgCi0rICAgICAgICAg ICAgICAgdm9pZF9mdHlwZV9wZmxvYXRfdjRzZiwgSVg4Nl9CVUlMVElOX01PVk5UU1MpOwotKyAg ZGVmX2J1aWx0aW4gKE1BU0tfU1NFNEEsICJfX2J1aWx0aW5faWEzMl9leHRycWkiLCAKLSsgICAg ICAgICAgICAgICB2MmRpX2Z0eXBlX3YyZGlfdW5zaWduZWRfdW5zaWduZWQsIElYODZfQlVJTFRJ Tl9FWFRSUUkpOwotKyAgZGVmX2J1aWx0aW4gKE1BU0tfU1NFNEEsICJfX2J1aWx0aW5faWEzMl9l eHRycSIsCi0rICAgICAgICAgICAgICAgdjJkaV9mdHlwZV92MmRpX3YxNnFpLCAgSVg4Nl9CVUlM VElOX0VYVFJRKTsKLSsgIGRlZl9idWlsdGluIChNQVNLX1NTRTRBLCAiX19idWlsdGluX2lhMzJf aW5zZXJ0cWkiLAotKyAgICAgICAgICAgICAgIHYyZGlfZnR5cGVfdjJkaV92MmRpX3Vuc2lnbmVk X3Vuc2lnbmVkLCBJWDg2X0JVSUxUSU5fSU5TRVJUUUkpOwotKyAgZGVmX2J1aWx0aW4gKE1BU0tf U1NFNEEsICJfX2J1aWx0aW5faWEzMl9pbnNlcnRxIiwKLSsgICAgICAgICAgICAgICB2MmRpX2Z0 eXBlX3YyZGlfdjJkaSwgSVg4Nl9CVUlMVElOX0lOU0VSVFEpOwotKwotICAgLyogQWNjZXNzIHRv IHRoZSB2ZWNfaW5pdCBwYXR0ZXJucy4gICovCi0gICBmdHlwZSA9IGJ1aWxkX2Z1bmN0aW9uX3R5 cGVfbGlzdCAoVjJTSV90eXBlX25vZGUsIGludGVnZXJfdHlwZV9ub2RlLAotIAkJCQkgICAgaW50 ZWdlcl90eXBlX25vZGUsIE5VTExfVFJFRSk7Ci1AQCAtMTU5MjMsOSArMTYxNTksOSBAQCBpeDg2 X2V4cGFuZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhcmdlCi0gICBlbnVtIGluc25fY29kZSBp Y29kZTsKLSAgIHRyZWUgZm5kZWNsID0gVFJFRV9PUEVSQU5EIChUUkVFX09QRVJBTkQgKGV4cCwg MCksIDApOwotICAgdHJlZSBhcmdsaXN0ID0gVFJFRV9PUEVSQU5EIChleHAsIDEpOwotLSAgdHJl ZSBhcmcwLCBhcmcxLCBhcmcyOwotLSAgcnR4IG9wMCwgb3AxLCBvcDIsIHBhdDsKLS0gIGVudW0g bWFjaGluZV9tb2RlIHRtb2RlLCBtb2RlMCwgbW9kZTEsIG1vZGUyLCBtb2RlMzsKLSsgIHRyZWUg YXJnMCwgYXJnMSwgYXJnMiwgYXJnMzsKLSsgIHJ0eCBvcDAsIG9wMSwgb3AyLCBvcDMsIHBhdDsK LSsgIGVudW0gbWFjaGluZV9tb2RlIHRtb2RlLCBtb2RlMCwgbW9kZTEsIG1vZGUyLCBtb2RlMywg bW9kZTQ7Ci0gICB1bnNpZ25lZCBpbnQgZmNvZGUgPSBERUNMX0ZVTkNUSU9OX0NPREUgKGZuZGVj bCk7Ci0gCi0gICBzd2l0Y2ggKGZjb2RlKQotQEAgLTE2MzQwLDYgKzE2NTc2LDExNCBAQCBpeDg2 X2V4cGFuZF9idWlsdGluICh0cmVlIGV4cCwgcnR4IHRhcmdlCi0gICAgICAgZW1pdF9pbnNuIChw YXQpOwotICAgICAgIHJldHVybiB0YXJnZXQ7Ci0gCi0rICAgIGNhc2UgSVg4Nl9CVUlMVElOX01P Vk5UU0Q6Ci0rICAgICAgcmV0dXJuIGl4ODZfZXhwYW5kX3N0b3JlX2J1aWx0aW4gKENPREVfRk9S X3NzZTRhX3ZtbW92bnR2MmRmLCBhcmdsaXN0KTsKLSsKLSsgICAgY2FzZSBJWDg2X0JVSUxUSU5f TU9WTlRTUzoKLSsgICAgICByZXR1cm4gaXg4Nl9leHBhbmRfc3RvcmVfYnVpbHRpbiAoQ09ERV9G T1Jfc3NlNGFfdm1tb3ZudHY0c2YsIGFyZ2xpc3QpOwotKwotKyAgICBjYXNlIElYODZfQlVJTFRJ Tl9JTlNFUlRROgotKyAgICBjYXNlIElYODZfQlVJTFRJTl9FWFRSUToKLSsgICAgICBpY29kZSA9 IChmY29kZSA9PSBJWDg2X0JVSUxUSU5fRVhUUlEKLSsgICAgICAgICAgICAgICA/IENPREVfRk9S X3NzZTRhX2V4dHJxCi0rICAgICAgICAgICAgICAgOiBDT0RFX0ZPUl9zc2U0YV9pbnNlcnRxKTsK LSsgICAgICBhcmcwID0gVFJFRV9WQUxVRSAoYXJnbGlzdCk7Ci0rICAgICAgYXJnMSA9IFRSRUVf VkFMVUUgKFRSRUVfQ0hBSU4gKGFyZ2xpc3QpKTsKLSsgICAgICBvcDAgPSBleHBhbmRfZXhwciAo YXJnMCwgTlVMTF9SVFgsIFZPSURtb2RlLCAwKTsKLSsgICAgICBvcDEgPSBleHBhbmRfZXhwciAo YXJnMSwgTlVMTF9SVFgsIFZPSURtb2RlLCAwKTsKLSsgICAgICB0bW9kZSA9IGluc25fZGF0YVtp Y29kZV0ub3BlcmFuZFswXS5tb2RlOwotKyAgICAgIG1vZGUxID0gaW5zbl9kYXRhW2ljb2RlXS5v cGVyYW5kWzFdLm1vZGU7Ci0rICAgICAgbW9kZTIgPSBpbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRb Ml0ubW9kZTsKLSsgICAgICBpZiAoISAoKmluc25fZGF0YVtpY29kZV0ub3BlcmFuZFsxXS5wcmVk aWNhdGUpIChvcDAsIG1vZGUxKSkKLSsgICAgICAgIG9wMCA9IGNvcHlfdG9fbW9kZV9yZWcgKG1v ZGUxLCBvcDApOwotKyAgICAgIGlmICghICgqaW5zbl9kYXRhW2ljb2RlXS5vcGVyYW5kWzJdLnBy ZWRpY2F0ZSkgKG9wMSwgbW9kZTIpKQotKyAgICAgICAgb3AxID0gY29weV90b19tb2RlX3JlZyAo bW9kZTIsIG9wMSk7Ci0rICAgICAgaWYgKG9wdGltaXplIHx8IHRhcmdldCA9PSAwCi0rICAgICAg ICAgIHx8IEdFVF9NT0RFICh0YXJnZXQpICE9IHRtb2RlCi0rICAgICAgICAgIHx8ICEgKCppbnNu X2RhdGFbaWNvZGVdLm9wZXJhbmRbMF0ucHJlZGljYXRlKSAodGFyZ2V0LCB0bW9kZSkpCi0rICAg ICAgICB0YXJnZXQgPSBnZW5fcmVnX3J0eCAodG1vZGUpOwotKyAgICAgIHBhdCA9IEdFTl9GQ04g KGljb2RlKSAodGFyZ2V0LCBvcDAsIG9wMSk7Ci0rICAgICAgaWYgKCEgcGF0KQotKyAgICAgICAg cmV0dXJuIE5VTExfUlRYOwotKyAgICAgIGVtaXRfaW5zbiAocGF0KTsKLSsgICAgICByZXR1cm4g dGFyZ2V0OwotKwotKyAgICBjYXNlIElYODZfQlVJTFRJTl9FWFRSUUk6Ci0rICAgICAgaWNvZGUg PSBDT0RFX0ZPUl9zc2U0YV9leHRycWk7Ci0rICAgICAgYXJnMCA9IFRSRUVfVkFMVUUgKGFyZ2xp c3QpOwotKyAgICAgIGFyZzEgPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChhcmdsaXN0KSk7Ci0r ICAgICAgYXJnMiA9IFRSRUVfVkFMVUUgKFRSRUVfQ0hBSU4gKFRSRUVfQ0hBSU4gKGFyZ2xpc3Qp KSk7Ci0rICAgICAgb3AwID0gZXhwYW5kX2V4cHIgKGFyZzAsIE5VTExfUlRYLCBWT0lEbW9kZSwg MCk7Ci0rICAgICAgb3AxID0gZXhwYW5kX2V4cHIgKGFyZzEsIE5VTExfUlRYLCBWT0lEbW9kZSwg MCk7Ci0rICAgICAgb3AyID0gZXhwYW5kX2V4cHIgKGFyZzIsIE5VTExfUlRYLCBWT0lEbW9kZSwg MCk7Ci0rICAgICAgdG1vZGUgPSBpbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbMF0ubW9kZTsKLSsg ICAgICBtb2RlMSA9IGluc25fZGF0YVtpY29kZV0ub3BlcmFuZFsxXS5tb2RlOwotKyAgICAgIG1v ZGUyID0gaW5zbl9kYXRhW2ljb2RlXS5vcGVyYW5kWzJdLm1vZGU7Ci0rICAgICAgbW9kZTMgPSBp bnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbM10ubW9kZTsKLSsgICAgICBpZiAoISAoKmluc25fZGF0 YVtpY29kZV0ub3BlcmFuZFsxXS5wcmVkaWNhdGUpIChvcDAsIG1vZGUxKSkKLSsgICAgICAgIG9w MCA9IGNvcHlfdG9fbW9kZV9yZWcgKG1vZGUxLCBvcDApOwotKyAgICAgIGlmICghICgqaW5zbl9k YXRhW2ljb2RlXS5vcGVyYW5kWzJdLnByZWRpY2F0ZSkgKG9wMSwgbW9kZTIpKQotKyAgICAgICAg ewotKyAgICAgICAgICBlcnJvciAoImluZGV4IG1hc2sgbXVzdCBiZSBhbiBpbW1lZGlhdGUiKTsK LSsgICAgICAgICAgcmV0dXJuIGdlbl9yZWdfcnR4ICh0bW9kZSk7Ci0rICAgICAgICB9Ci0rICAg ICAgaWYgKCEgKCppbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbM10ucHJlZGljYXRlKSAob3AyLCBt b2RlMykpCi0rICAgICAgICB7Ci0rICAgICAgICAgIGVycm9yICgibGVuZ3RoIG1hc2sgbXVzdCBi ZSBhbiBpbW1lZGlhdGUiKTsKLSsgICAgICAgICAgcmV0dXJuIGdlbl9yZWdfcnR4ICh0bW9kZSk7 Ci0rICAgICAgICB9Ci0rICAgICAgaWYgKG9wdGltaXplIHx8IHRhcmdldCA9PSAwCi0rICAgICAg ICAgIHx8IEdFVF9NT0RFICh0YXJnZXQpICE9IHRtb2RlCi0rICAgICAgICAgIHx8ICEgKCppbnNu X2RhdGFbaWNvZGVdLm9wZXJhbmRbMF0ucHJlZGljYXRlKSAodGFyZ2V0LCB0bW9kZSkpCi0rICAg ICAgICB0YXJnZXQgPSBnZW5fcmVnX3J0eCAodG1vZGUpOwotKyAgICAgIHBhdCA9IEdFTl9GQ04g KGljb2RlKSAodGFyZ2V0LCBvcDAsIG9wMSwgb3AyKTsKLSsgICAgICBpZiAoISBwYXQpCi0rICAg ICAgICByZXR1cm4gTlVMTF9SVFg7Ci0rICAgICAgZW1pdF9pbnNuIChwYXQpOwotKyAgICAgIHJl dHVybiB0YXJnZXQ7Ci0rCi0rICAgIGNhc2UgSVg4Nl9CVUlMVElOX0lOU0VSVFFJOgotKyAgICAg IGljb2RlID0gQ09ERV9GT1Jfc3NlNGFfaW5zZXJ0cWk7Ci0rICAgICAgYXJnMCA9IFRSRUVfVkFM VUUgKGFyZ2xpc3QpOwotKyAgICAgIGFyZzEgPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChhcmds aXN0KSk7Ci0rICAgICAgYXJnMiA9IFRSRUVfVkFMVUUgKFRSRUVfQ0hBSU4gKFRSRUVfQ0hBSU4g KGFyZ2xpc3QpKSk7Ci0rICAgICAgYXJnMyA9IFRSRUVfVkFMVUUgKFRSRUVfQ0hBSU4gKFRSRUVf Q0hBSU4gKFRSRUVfQ0hBSU4gKGFyZ2xpc3QpKSkpOwotKyAgICAgIG9wMCA9IGV4cGFuZF9leHBy IChhcmcwLCBOVUxMX1JUWCwgVk9JRG1vZGUsIDApOwotKyAgICAgIG9wMSA9IGV4cGFuZF9leHBy IChhcmcxLCBOVUxMX1JUWCwgVk9JRG1vZGUsIDApOwotKyAgICAgIG9wMiA9IGV4cGFuZF9leHBy IChhcmcyLCBOVUxMX1JUWCwgVk9JRG1vZGUsIDApOwotKyAgICAgIG9wMyA9IGV4cGFuZF9leHBy IChhcmczLCBOVUxMX1JUWCwgVk9JRG1vZGUsIDApOwotKyAgICAgIHRtb2RlID0gaW5zbl9kYXRh W2ljb2RlXS5vcGVyYW5kWzBdLm1vZGU7Ci0rICAgICAgbW9kZTEgPSBpbnNuX2RhdGFbaWNvZGVd Lm9wZXJhbmRbMV0ubW9kZTsKLSsgICAgICBtb2RlMiA9IGluc25fZGF0YVtpY29kZV0ub3BlcmFu ZFsyXS5tb2RlOwotKyAgICAgIG1vZGUzID0gaW5zbl9kYXRhW2ljb2RlXS5vcGVyYW5kWzNdLm1v ZGU7Ci0rICAgICAgbW9kZTQgPSBpbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbNF0ubW9kZTsKLSsK LSsgICAgICBpZiAoISAoKmluc25fZGF0YVtpY29kZV0ub3BlcmFuZFsxXS5wcmVkaWNhdGUpIChv cDAsIG1vZGUxKSkKLSsgICAgICAgIG9wMCA9IGNvcHlfdG9fbW9kZV9yZWcgKG1vZGUxLCBvcDAp OwotKwotKyAgICAgIGlmICghICgqaW5zbl9kYXRhW2ljb2RlXS5vcGVyYW5kWzJdLnByZWRpY2F0 ZSkgKG9wMSwgbW9kZTIpKQotKyAgICAgICAgb3AxID0gY29weV90b19tb2RlX3JlZyAobW9kZTIs IG9wMSk7Ci0rCi0rICAgICAgaWYgKCEgKCppbnNuX2RhdGFbaWNvZGVdLm9wZXJhbmRbM10ucHJl ZGljYXRlKSAob3AyLCBtb2RlMykpCi0rICAgICAgICB7Ci0rICAgICAgICAgIGVycm9yICgiaW5k ZXggbWFzayBtdXN0IGJlIGFuIGltbWVkaWF0ZSIpOwotKyAgICAgICAgICByZXR1cm4gZ2VuX3Jl Z19ydHggKHRtb2RlKTsKLSsgICAgICAgIH0KLSsgICAgICBpZiAoISAoKmluc25fZGF0YVtpY29k ZV0ub3BlcmFuZFs0XS5wcmVkaWNhdGUpIChvcDMsIG1vZGU0KSkKLSsgICAgICAgIHsKLSsgICAg ICAgICAgZXJyb3IgKCJsZW5ndGggbWFzayBtdXN0IGJlIGFuIGltbWVkaWF0ZSIpOwotKyAgICAg ICAgICByZXR1cm4gZ2VuX3JlZ19ydHggKHRtb2RlKTsKLSsgICAgICAgIH0KLSsgICAgICBpZiAo b3B0aW1pemUgfHwgdGFyZ2V0ID09IDAKLSsgICAgICAgICAgfHwgR0VUX01PREUgKHRhcmdldCkg IT0gdG1vZGUKLSsgICAgICAgICAgfHwgISAoKmluc25fZGF0YVtpY29kZV0ub3BlcmFuZFswXS5w cmVkaWNhdGUpICh0YXJnZXQsIHRtb2RlKSkKLSsgICAgICAgIHRhcmdldCA9IGdlbl9yZWdfcnR4 ICh0bW9kZSk7Ci0rICAgICAgcGF0ID0gR0VOX0ZDTiAoaWNvZGUpICh0YXJnZXQsIG9wMCwgb3Ax LCBvcDIsIG9wMyk7Ci0rICAgICAgaWYgKCEgcGF0KQotKyAgICAgICAgcmV0dXJuIE5VTExfUlRY OwotKyAgICAgIGVtaXRfaW5zbiAocGF0KTsKLSsgICAgICByZXR1cm4gdGFyZ2V0OwotKwotICAg ICBjYXNlIElYODZfQlVJTFRJTl9WRUNfSU5JVF9WMlNJOgotICAgICBjYXNlIElYODZfQlVJTFRJ Tl9WRUNfSU5JVF9WNEhJOgotICAgICBjYXNlIElYODZfQlVJTFRJTl9WRUNfSU5JVF9WOFFJOgot LS0tIGdjYy9jb25maWcvaTM4Ni94bW1pbnRyaW4uaC5qagkyMDA2LTEwLTA1IDAwOjI5OjI5LjAw MDAwMDAwMCArMDIwMAotKysrIGdjYy9jb25maWcvaTM4Ni94bW1pbnRyaW4uaAkyMDA3LTAyLTA5 IDIxOjI2OjA2LjAwMDAwMDAwMCArMDEwMAotQEAgLTEyNDEsNyArMTI0MSw5IEBAIGRvIHsJCQkJ CQkJCQlcCi0gfSB3aGlsZSAoMCkKLSAKLSAvKiBGb3IgYmFja3dhcmQgc291cmNlIGNvbXBhdGli aWxpdHkuICAqLwotLSNpbmNsdWRlIDxlbW1pbnRyaW4uaD4KLSsjaWZkZWYgX19TU0UyX18KLSsj IGluY2x1ZGUgPGVtbWludHJpbi5oPgotKyNlbmRpZgotIAotICNlbmRpZiAvKiBfX1NTRV9fICov Ci0gI2VuZGlmIC8qIF9YTU1JTlRSSU5fSF9JTkNMVURFRCAqLwoKZGlmZiAtLWdpdCBhL2djYzQx LW11bHRpMzItaGFjay5wYXRjaCBiL2djYzQxLW11bHRpMzItaGFjay5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZTY5N2Y5Ni4uMDAwMDAwMAotLS0gYS9nY2M0MS1tdWx0aTMy LWhhY2sucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotLS0tIGxpYmNwcC9j b25maWd1cmUuYWMuamoJMjAwNS0xMC0yOCAyMzoxMzo0MC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBs aWJjcHAvY29uZmlndXJlLmFjCTIwMDUtMTEtMjUgMTQ6MzQ6MzEuMDAwMDAwMDAwICswMTAwCi1A QCAtMTEyLDYgKzExMiw4IEBAIGZpCi0gCi0gbTRfY2hhbmdlcXVvdGUoLCkKLSBjYXNlICR0YXJn ZXQgaW4KLSsJcG93ZXJwYy0qLWxpbnV4KikKLSsJCW5lZWRfNjRiaXRfaHdpbnQ9bm8gOzsKLSAJ YWxwaGEqLSotKiB8IFwKLSAJYXJtKi0qLSplYWJpKiB8IFwKLSAJYXJtKi0qLXN5bWJpYW5lbGYq IHwgXAotLS0tIGxpYmNwcC9jb25maWd1cmUuamoJMjAwNS0xMC0yOCAyMzoxMzo0MC4wMDAwMDAw MDAgKzAyMDAKLSsrKyBsaWJjcHAvY29uZmlndXJlCTIwMDUtMTEtMjUgMTQ6MzQ6NDAuMDAwMDAw MDAwICswMTAwCi1AQCAtODIxNyw2ICs4MjE3LDggQEAgZmkKLSAKLSAKLSBjYXNlICR0YXJnZXQg aW4KLSsJcG93ZXJwYy0qLWxpbnV4KikKLSsJCW5lZWRfNjRiaXRfaHdpbnQ9bm8gOzsKLSAJYWxw aGEqLSotKiB8IFwKLSAJYXJtKi0qLSplYWJpKiB8IFwKLSAJYXJtKi0qLXN5bWJpYW5lbGYqIHwg XAotLS0tIGdjYy9jb25maWcuZ2NjLmpqCTIwMDUtMTEtMTkgMDk6Mjc6MTYuMDAwMDAwMDAwICsw MTAwCi0rKysgZ2NjL2NvbmZpZy5nY2MJMjAwNS0xMS0yNSAxNDoyOTozMC4wMDAwMDAwMDAgKzAx MDAKLUBAIC0yOTQsNyArMjk0LDEwIEBAIG1pcHMqLSotKikKLSBwb3dlcnBjKi0qLSopCi0gCWNw dV90eXBlPXJzNjAwMAotIAlleHRyYV9oZWFkZXJzPSJwcGMtYXNtLmggYWx0aXZlYy5oIHNwZS5o IgotLQluZWVkXzY0Yml0X2h3aW50PXllcwotKwljYXNlICR7dGFyZ2V0fSBpbgotKwlwb3dlcnBj LSotbGludXgqKSA7OwotKwkqKSBuZWVkXzY0Yml0X2h3aW50PXllcyA7OwotKwllc2FjCi0gCWNh c2UgeCR3aXRoX2NwdSBpbgotIAkgICAgeHBvd2VycGM2NHx4ZGVmYXVsdDY0fHg2WzIzXTB8eDk3 MHx4RzV8eHBvd2VyWzM0NV18eHJzNjRhKQotIAkJY3B1X2lzXzY0Yml0PXllcwotLS0tIGdjYy9n Y2MuYy5qagkyMDA1LTExLTE5IDIxOjE2OjM5LjAwMDAwMDAwMCArMDEwMAotKysrIGdjYy9nY2Mu YwkyMDA1LTExLTI4IDEzOjAwOjU4LjAwMDAwMDAwMCArMDEwMAotQEAgLTMxNTQsNiArMzE1NCw4 IEBAIHByb2Nlc3NfY29tbWFuZCAoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKioKLSAgIGNvbnN0IGNo YXIgKnNwZWNfbGFuZyA9IDA7Ci0gICBpbnQgbGFzdF9sYW5ndWFnZV9uX2luZmlsZXM7Ci0gICBp bnQgbGFuZ19uX2luZmlsZXMgPSAwOwotKyAgaW50IGhhY2szMiA9IDE7Ci0rICBpbnQgdXNlZF9C ID0gMDsKLSAjaWZkZWYgTU9ESUZZX1RBUkdFVF9OQU1FCi0gICBpbnQgaXNfbW9kaWZ5X3Rhcmdl dF9uYW1lOwotICAgaW50IGo7Ci1AQCAtMzY4MCw2ICszNjgyLDcgQEAgd2FycmFudHk7IG5vdCBl dmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgbwotIAkJCSAgICBQUkVGSVhfUFJJT1JJVFlfQl9PUFQs IDAsIDApOwotIAkJYWRkX3ByZWZpeCAoJmluY2x1ZGVfcHJlZml4ZXMsIHZhbHVlLCBOVUxMLAot IAkJCSAgICBQUkVGSVhfUFJJT1JJVFlfQl9PUFQsIDAsIDApOwotKwkJdXNlZF9CID0gMTsKLSAJ CW5fc3dpdGNoZXMrKzsKLSAJICAgICAgfQotIAkgICAgICBicmVhazsKLUBAIC0zNzQyLDYgKzM3 NDUsMjEgQEAgd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgbwotICNlbmRp ZgotIAkgICAgICBnb3RvIG5vcm1hbF9zd2l0Y2g7Ci0gCi0rCSAgICAvKiBIQUNLIFNUQVJUICov Ci0rCSAgICBjYXNlICdtJzoKLSsJICAgICAgaWYgKChwWzFdID09ICc2JyAmJiBwWzJdID09ICc0 JykKLSsJCSAgfHwgKHBbMV0gPT0gJ2EnICYmIHN0cm5jbXAgKHAgKyAyLCAibHRpdmVjIiwgNikg PT0gMCkKLSsJCSAgfHwgKHBbMV0gPT0gJ2MnICYmIHN0cm5jbXAgKHAgKyAyLCAicHU9IiwgMykg PT0gMAotKwkJICAgICAgJiYgKHN0cm5jbXAgKHAgKyA1LCAiNzQwMCIsIDQpID09IDAKLSsJCQkg IHx8IHN0cm5jbXAgKHAgKyA1LCAiNzQ1MCIsIDQpID09IDAKLSsJCQkgIHx8IHN0cm5jbXAgKHAg KyA1LCAiRzQiLCAyKSA9PSAwCi0rCQkJICB8fCBzdHJuY21wIChwICsgNSwgIjk3MCIsIDMpID09 IDAKLSsJCQkgIHx8IHN0cm5jbXAgKHAgKyA1LCAiRzUiLCAyKSA9PSAwKSkKLSsJCSAgfHwgKHBb MV0gPT0gJ3AnICYmIHN0cm5jbXAgKHAgKyAyLCAib3dlcnBjNjQiLCA4KSA9PSAwKSkKLSsJCWhh Y2szMiA9IDA7Ci0rCSAgICAvKiBGQUxMVEhST1VHSCAqLwotKwkgICAgLyogSEFDSyBFTkQgKi8K LSsKLSAJICAgIGRlZmF1bHQ6Ci0gCSAgICBub3JtYWxfc3dpdGNoOgotIAotQEAgLTM4MTIsNiAr MzgzMCwyNiBAQCB3YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvCi0gICAv KiBVc2UgMiBhcyBmb3VydGggYXJnIG1lYW5pbmcgdHJ5IGp1c3QgdGhlIG1hY2hpbmUgYXMgYSBz dWZmaXgsCi0gICAgICBhcyB3ZWxsIGFzIHRyeWluZyB0aGUgbWFjaGluZSBhbmQgdGhlIHZlcnNp b24uICAqLwotICNpZm5kZWYgT1MyCi0rICAvKiBIQUNLIFNUQVJUICovCi0rICBpZiAoaGFjazMy ICYmICF1c2VkX0IgJiYgIXN0cm5jbXAgKHNwZWNfbWFjaGluZSwgInNwYXJjNjQtIiwgOCkpCi0r ICAgIHsKLSsgICAgICBjb25zdCBjaGFyICpzcGFyYzMyX2V4ZWNfcHJlZml4ID0KLSsJY29uY2F0 IChzdGFuZGFyZF9saWJleGVjX3ByZWZpeCwgInNwYXJjLSIsIHNwZWNfbWFjaGluZSArIDgsCi0r CQlkaXJfc2VwYXJhdG9yX3N0ciwgc3BlY192ZXJzaW9uLCBkaXJfc2VwYXJhdG9yX3N0ciwgTlVM TCk7Ci0rICAgICAgYWRkX3ByZWZpeCAoJmV4ZWNfcHJlZml4ZXMsIHNwYXJjMzJfZXhlY19wcmVm aXgsICJHQ0MiLAotKwkJICBQUkVGSVhfUFJJT1JJVFlfTEFTVCwgMCwgMCk7Ci0rICAgIH0KLSsg IC8qIEhBQ0sgRU5EICovCi0rICAvKiBIQUNLIFNUQVJUICovCi0rICBpZiAoaGFjazMyICYmICF1 c2VkX0IgJiYgIXN0cm5jbXAgKHNwZWNfbWFjaGluZSwgInBwYzY0LSIsIDYpKQotKyAgICB7Ci0r ICAgICAgY29uc3QgY2hhciAqcHBjMzJfZXhlY19wcmVmaXggPQotKwljb25jYXQgKHN0YW5kYXJk X2xpYmV4ZWNfcHJlZml4LCAicHBjLSIsIHNwZWNfbWFjaGluZSArIDYsCi0rCQlkaXJfc2VwYXJh dG9yX3N0ciwgc3BlY192ZXJzaW9uLCBkaXJfc2VwYXJhdG9yX3N0ciwgTlVMTCk7Ci0rICAgICAg YWRkX3ByZWZpeCAoJmV4ZWNfcHJlZml4ZXMsIHBwYzMyX2V4ZWNfcHJlZml4LCAiR0NDIiwKLSsJ CSAgUFJFRklYX1BSSU9SSVRZX0xBU1QsIDAsIDApOwotKyAgICB9Ci0rICAvKiBIQUNLIEVORCAq LwotICAgYWRkX3ByZWZpeCAoJmV4ZWNfcHJlZml4ZXMsIHN0YW5kYXJkX2xpYmV4ZWNfcHJlZml4 LCAiR0NDIiwKLSAJICAgICAgUFJFRklYX1BSSU9SSVRZX0xBU1QsIDEsIDApOwotICAgYWRkX3By ZWZpeCAoJmV4ZWNfcHJlZml4ZXMsIHN0YW5kYXJkX2xpYmV4ZWNfcHJlZml4LCAiQklOVVRJTFMi LAoKZGlmZiAtLWdpdCBhL2djYzQxLW9iamMtcmgxODUzOTgucGF0Y2ggYi9nY2M0MS1vYmpjLXJo MTg1Mzk4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZmYzM2EyLi4wMDAw MDAwCi0tLSBhL2djYzQxLW9iamMtcmgxODUzOTgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwy OCArMCwwIEBACi0yMDA2LTA0LTA2ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4K LQotCSogb2JqYy9jb21waWxlLzIwMDYwNDA2LTEubTogTmV3IHRlc3QuCi0KLS0tLSBnY2MvdGVz dHN1aXRlL29iamMvY29tcGlsZS8yMDA2MDQwNi0xLm0uamoJMjAwNi0wNC0wNiAxNzoyNTo1OS4w MDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL29iamMvY29tcGlsZS8yMDA2MDQwNi0x Lm0JMjAwNi0wNC0wNiAxNzoyMDo0OC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjEgQEAK LSt0eXBlZGVmIHN0cnVjdAotK3sKLSsgIHZvaWQgKnA7Ci0rfSAqUzsKLSsKLStAcHJvdG9jb2wg TwotKy0gKHVuc2lnbmVkKWo7Ci0rQGVuZAotKwotK0BpbnRlcmZhY2UgSQotKysgKHVuc2lnbmVk IGNoYXIpVDooUzxPPlsyXSlwIHY6KFM8Tz4paDsKLStAZW5kCi0rCi0rQGltcGxlbWVudGF0aW9u IEkKLSsrICh1bnNpZ25lZCBjaGFyKVQ6KFM8Tz5bMl0pcCB2OihTPE8+KWgKLSt7Ci0rICBwWzBd ID0gKFMpIDA7Ci0rICBwWzFdID0gKFMpIDA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rQGVuZAoKZGlm ZiAtLWdpdCBhL2djYzQxLXByMjQwMzYtcmV2ZXJ0LnBhdGNoIGIvZ2NjNDEtcHIyNDAzNi1yZXZl cnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0MGU5NDAuLjAwMDAwMDAK LS0tIGEvZ2NjNDEtcHIyNDAzNi1yZXZlcnQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMDIg KzAsMCBAQAotMjAwNi0xMi0yMSAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5jb20+Ci0K LQlSZXZlcnQ6Ci0JMjAwNi0xMi0xNiAgSm9zZXBoIE15ZXJzICA8am9zZXBoQGNvZGVzb3VyY2Vy eS5jb20+Ci0JCSAgICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+Ci0JUFIgdGFy Z2V0LzI0MDM2Ci0JKiBkb2MvdG0udGV4aSAoSEFSRF9SRUdOT19OUkVHU19IQVNfUEFERElORywK LQlIQVJEX1JFR05PX05SRUdTX1dJVEhfUEFERElORyk6IERvY3VtZW50IG5ldyB0YXJnZXQgbWFj cm9zLgotCSogZGVmYXVsdHMuaCAoSEFSRF9SRUdOT19OUkVHU19IQVNfUEFERElORywKLQlIQVJE X1JFR05PX05SRUdTX1dJVEhfUEFERElORyk6IERlZmluZS4KLQkqIGNvbmZpZy9pMzg2L2kzODYu aCAoSEFSRF9SRUdOT19OUkVHU19IQVNfUEFERElORywKLQlIQVJEX1JFR05PX05SRUdTX1dJVEhf UEFERElORyk6IERlZmluZS4KLQkqIHJ0bGFuYWwuYyAoc3VicmVnX3JlZ25vX29mZnNldCwgc3Vi cmVnX29mZnNldF9yZXByZXNlbnRhYmxlX3ApOgotCVVzZSBuZXcgbWFjcm9zIHRvIGRldGVjdCBt b2RlcyB3aXRoIGhvbGVzOyBkbyBub3QgbG9vayBhdCBpbnRlZ2VyCi0JdW5pdHMuCi0JKHN1YnJl Z19vZmZzZXRfcmVwcmVzZW50YWJsZV9wKTogQ2hlY2sgZm9yIGFuZCBkaXNhbGxvdyBjYXNlcwot CXdoZXJlIHRoZSBtb2RlcyB1c2UgZGlmZmVyZW50IG51bWJlcnMgb2YgYml0cyBmcm9tIHJlZ2lz dGVycy4KLQkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9lbWl0X21vdmUpOiBIYW5k bGUgVEZtb2RlCi0JY29uc3RhbnQgZm9yIHNvZnQtZmxvYXQuCi0JKHJzNjAwMF9oYXJkX3JlZ25v X25yZWdzKTogVXNlIFVOSVRTX1BFUl9GUF9XT1JEIGZvciBlNTAwIEdQUnMKLQljb250YWluaW5n IGRvdWJsZXMuCi0JKHJzNjAwMF9zcGxpdF9tdWx0aXJlZ19tb3ZlKTogVXNlIERGbW9kZSByZWdf bW9kZSBmb3IgVEZtb2RlIG1vdmVzCi0JaW4gRTUwMCBkb3VibGUgY2FzZS4KLQkqIGNvbmZpZy9y czYwMDAvcnM2MDAwLm1kIChtb3Z0Zik6IEFsbG93IHNvZnQtZmxvYXQuCi0JKG1vdnRmX3NvZnRm bG9hdCk6IE5ldy4KLQotLS0tIGdjYy9kb2MvdG0udGV4aQkocmV2aXNpb24gMTE5OTY3KQotKysr IGdjYy9kb2MvdG0udGV4aQkocmV2aXNpb24gMTE5OTY2KQotQEAgLTE5MzcsMzMgKzE5MzcsNiBA QCBkZWZpbml0aW9uIG9mIHRoaXMgbWFjcm8gaXMKLSBAZW5kIHNtYWxsZXhhbXBsZQotIEBlbmQg ZGVmbWFjCi0gCi0tQGRlZm1hYyBIQVJEX1JFR05PX05SRUdTX0hBU19QQURESU5HIChAdmFye3Jl Z25vfSwgQHZhcnttb2RlfSkKLS1BIEMgZXhwcmVzc2lvbiB0aGF0IGlzIG5vbnplcm8gaWYgYSB2 YWx1ZSBvZiBtb2RlIEB2YXJ7bW9kZX0sIHN0b3JlZAotLWluIG1lbW9yeSwgZW5kcyB3aXRoIHBh ZGRpbmcgdGhhdCBjYXVzZXMgaXQgdG8gdGFrZSB1cCBtb3JlIHNwYWNlIHRoYW4KLS1pbiByZWdp c3RlcnMgc3RhcnRpbmcgYXQgcmVnaXN0ZXIgbnVtYmVyIEB2YXJ7cmVnbm99IChhcyBkZXRlcm1p bmVkIGJ5Ci0tbXVsdGlwbHlpbmcgR0NDJ3Mgbm90aW9uIG9mIHRoZSBzaXplIG9mIHRoZSByZWdp c3RlciB3aGVuIGNvbnRhaW5pbmcKLS10aGlzIG1vZGUgYnkgdGhlIG51bWJlciBvZiByZWdpc3Rl cnMgcmV0dXJuZWQgYnkKLS1AY29kZXtIQVJEX1JFR05PX05SRUdTfSkuICBCeSBkZWZhdWx0IHRo aXMgaXMgemVyby4KLS0KLS1Gb3IgZXhhbXBsZSwgaWYgYSBmbG9hdGluZy1wb2ludCB2YWx1ZSBp cyBzdG9yZWQgaW4gdGhyZWUgMzItYml0Ci0tcmVnaXN0ZXJzIGJ1dCB0YWtlcyB1cCAxMjggYml0 cyBpbiBtZW1vcnksIHRoZW4gdGhpcyB3b3VsZCBiZQotLW5vbnplcm8uCi0tCi0tVGhpcyBtYWNy b3Mgb25seSBuZWVkcyB0byBiZSBkZWZpbmVkIGlmIHRoZXJlIGFyZSBjYXNlcyB3aGVyZQotLUBj b2Rle3N1YnJlZ19yZWdub19vZmZzZXR9IGFuZCBAY29kZXtzdWJyZWdfb2Zmc2V0X3JlcHJlc2Vu dGFibGVfcH0KLS13b3VsZCBvdGhlcndpc2Ugd3JvbmdseSBkZXRlcm1pbmUgdGhhdCBhIEBjb2Rl e3N1YnJlZ30gY2FuIGJlCi0tcmVwcmVzZW50ZWQgYnkgYW4gb2Zmc2V0IHRvIHRoZSByZWdpc3Rl ciBudW1iZXIsIHdoZW4gaW4gZmFjdCBzdWNoIGEKLS1AY29kZXtzdWJyZWd9IHdvdWxkIGNvbnRh aW4gc29tZSBvZiB0aGUgcGFkZGluZyBub3Qgc3RvcmVkIGluCi0tcmVnaXN0ZXJzIGFuZCBzbyBu b3QgYmUgcmVwcmVzZW50YWJsZS4KLS1AZW5kIGRlZm1hYwotLQotLUBkZWZtYWMgSEFSRF9SRUdO T19OUkVHU19XSVRIX1BBRERJTkcgKEB2YXJ7cmVnbm99LCBAdmFye21vZGV9KQotLUZvciB2YWx1 ZXMgb2YgQHZhcntyZWdub30gYW5kIEB2YXJ7bW9kZX0gZm9yIHdoaWNoCi0tQGNvZGV7SEFSRF9S RUdOT19OUkVHU19IQVNfUEFERElOR30gcmV0dXJucyBub256ZXJvLCBhIEMgZXhwcmVzc2lvbgot LXJldHVybmluZyB0aGUgZ3JlYXRlciBudW1iZXIgb2YgcmVnaXN0ZXJzIHJlcXVpcmVkIHRvIGhv bGQgdGhlIHZhbHVlCi0taW5jbHVkaW5nIGFueSBwYWRkaW5nLiAgSW4gdGhlIGV4YW1wbGUgYWJv dmUsIHRoZSB2YWx1ZSB3b3VsZCBiZSBmb3VyLgotLUBlbmQgZGVmbWFjCi0tCi0gQGRlZm1hYyBS RUdNT0RFX05BVFVSQUxfU0laRSAoQHZhcnttb2RlfSkKLSBEZWZpbmUgdGhpcyBtYWNybyBpZiB0 aGUgbmF0dXJhbCBzaXplIG9mIHJlZ2lzdGVycyB0aGF0IGhvbGQgdmFsdWVzCi0gb2YgbW9kZSBA dmFye21vZGV9IGlzIG5vdCB0aGUgd29yZCBzaXplLiAgSXQgaXMgYSBDIGV4cHJlc3Npb24gdGhh dAotLS0tIGdjYy9kZWZhdWx0cy5oCShyZXZpc2lvbiAxMTk5NjcpCi0rKysgZ2NjL2RlZmF1bHRz LmgJKHJldmlzaW9uIDExOTk2NikKLUBAIC04NjcsOSArODY3LDQgQEAgU29mdHdhcmUgRm91bmRh dGlvbiwgNTEgRnJhbmtsaW4gU3RyZWV0LAotICNkZWZpbmUgSU5DT01JTkdfRlJBTUVfU1BfT0ZG U0VUIDAKLSAjZW5kaWYKLSAKLS0jaWZuZGVmIEhBUkRfUkVHTk9fTlJFR1NfSEFTX1BBRERJTkcK LS0jZGVmaW5lIEhBUkRfUkVHTk9fTlJFR1NfSEFTX1BBRERJTkcoUkVHTk8sIE1PREUpIDAKLS0j ZGVmaW5lIEhBUkRfUkVHTk9fTlJFR1NfV0lUSF9QQURESU5HKFJFR05PLCBNT0RFKSAtMQotLSNl bmRpZgotLQotICNlbmRpZiAgLyogISBHQ0NfREVGQVVMVFNfSCAqLwotLS0tIGdjYy9ydGxhbmFs LmMJKHJldmlzaW9uIDExOTk2NykKLSsrKyBnY2MvcnRsYW5hbC5jCShyZXZpc2lvbiAxMTk5NjYp Ci1AQCAtMzEzOCwxNSArMzEzOCwzNCBAQCB1bnNpZ25lZCBpbnQKLSBzdWJyZWdfcmVnbm9fb2Zm c2V0ICh1bnNpZ25lZCBpbnQgeHJlZ25vLCBlbnVtIG1hY2hpbmVfbW9kZSB4bW9kZSwKLSAJCSAg ICAgdW5zaWduZWQgaW50IG9mZnNldCwgZW51bSBtYWNoaW5lX21vZGUgeW1vZGUpCi0gewotLSAg aW50IG5yZWdzX3htb2RlLCBucmVnc195bW9kZTsKLSsgIGludCBucmVnc194bW9kZSwgbnJlZ3Nf eW1vZGUsIG5yZWdzX3htb2RlX3VuaXRfaW50OwotICAgaW50IG1vZGVfbXVsdGlwbGUsIG5yZWdz X211bHRpcGxlOwotICAgaW50IHlfb2Zmc2V0OwotKyAgZW51bSBtYWNoaW5lX21vZGUgeG1vZGVf dW5pdCwgeG1vZGVfdW5pdF9pbnQ7Ci0gCi0gICBnY2NfYXNzZXJ0ICh4cmVnbm8gPCBGSVJTVF9Q U0VVRE9fUkVHSVNURVIpOwotIAotKyAgaWYgKEdFVF9NT0RFX0lOTkVSICh4bW9kZSkgPT0gVk9J RG1vZGUpCi0rICAgIHhtb2RlX3VuaXQgPSB4bW9kZTsKLSsgIGVsc2UKLSsgICAgeG1vZGVfdW5p dCA9IEdFVF9NT0RFX0lOTkVSICh4bW9kZSk7Ci0rICAKLSsgIGlmIChGTE9BVF9NT0RFX1AgKHht b2RlX3VuaXQpKQotKyAgICB7Ci0rICAgICAgeG1vZGVfdW5pdF9pbnQgPSBpbnRfbW9kZV9mb3Jf bW9kZSAoeG1vZGVfdW5pdCk7Ci0rICAgICAgaWYgKHhtb2RlX3VuaXRfaW50ID09IEJMS21vZGUp Ci0rCS8qIEl0J3MgcHJvYmFibHkgYmFkIHRvIGJlIGhlcmU7IGEgcG9ydCBzaG91bGQgaGF2ZSBh biBpbnRlZ2VyIG1vZGUKLSsJICAgdGhhdCdzIHRoZSBzYW1lIHNpemUgYXMgYW55dGhpbmcgb2Yg d2hpY2ggaXQgdGFrZXMgYSBTVUJSRUcuICAqLwotKwl4bW9kZV91bml0X2ludCA9IHhtb2RlX3Vu aXQ7Ci0rICAgIH0KLSsgIGVsc2UKLSsgICAgeG1vZGVfdW5pdF9pbnQgPSB4bW9kZV91bml0Owot KwotKyAgbnJlZ3NfeG1vZGVfdW5pdF9pbnQgPSBoYXJkX3JlZ25vX25yZWdzW3hyZWdub11beG1v ZGVfdW5pdF9pbnRdOwotKwotICAgLyogQWRqdXN0IG5yZWdzX3htb2RlIHRvIGFsbG93IGZvciAn aG9sZXMnLiAgKi8KLS0gIGlmIChIQVJEX1JFR05PX05SRUdTX0hBU19QQURESU5HICh4cmVnbm8s IHhtb2RlKSkKLS0gICAgbnJlZ3NfeG1vZGUgPSBIQVJEX1JFR05PX05SRUdTX1dJVEhfUEFERElO RyAoeHJlZ25vLCB4bW9kZSk7Ci0rICBpZiAobnJlZ3NfeG1vZGVfdW5pdF9pbnQgIT0gaGFyZF9y ZWdub19ucmVnc1t4cmVnbm9dW3htb2RlX3VuaXRdKQotKyAgICBucmVnc194bW9kZSA9IG5yZWdz X3htb2RlX3VuaXRfaW50ICogR0VUX01PREVfTlVOSVRTICh4bW9kZSk7Ci0gICBlbHNlCi0gICAg IG5yZWdzX3htb2RlID0gaGFyZF9yZWdub19ucmVnc1t4cmVnbm9dW3htb2RlXTsKLSAgICAgCi1A QCAtMzE4NCwzMSArMzIwMywzOCBAQCBib29sCi0gc3VicmVnX29mZnNldF9yZXByZXNlbnRhYmxl X3AgKHVuc2lnbmVkIGludCB4cmVnbm8sIGVudW0gbWFjaGluZV9tb2RlIHhtb2RlLAotIAkJCSAg ICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0LCBlbnVtIG1hY2hpbmVfbW9kZSB5bW9kZSkKLSB7Ci0t ICBpbnQgbnJlZ3NfeG1vZGUsIG5yZWdzX3ltb2RlOwotKyAgaW50IG5yZWdzX3htb2RlLCBucmVn c195bW9kZSwgbnJlZ3NfeG1vZGVfdW5pdCwgbnJlZ3NfeG1vZGVfdW5pdF9pbnQ7Ci0gICBpbnQg bW9kZV9tdWx0aXBsZSwgbnJlZ3NfbXVsdGlwbGU7Ci0gICBpbnQgeV9vZmZzZXQ7Ci0tICBpbnQg cmVnc2l6ZV94bW9kZSwgcmVnc2l6ZV95bW9kZTsKLSsgIGVudW0gbWFjaGluZV9tb2RlIHhtb2Rl X3VuaXQsIHhtb2RlX3VuaXRfaW50OwotIAotICAgZ2NjX2Fzc2VydCAoeHJlZ25vIDwgRklSU1Rf UFNFVURPX1JFR0lTVEVSKTsKLSAKLSsgIGlmIChHRVRfTU9ERV9JTk5FUiAoeG1vZGUpID09IFZP SURtb2RlKQotKyAgICB4bW9kZV91bml0ID0geG1vZGU7Ci0rICBlbHNlCi0rICAgIHhtb2RlX3Vu aXQgPSBHRVRfTU9ERV9JTk5FUiAoeG1vZGUpOwotKyAgCi0rICBpZiAoRkxPQVRfTU9ERV9QICh4 bW9kZV91bml0KSkKLSsgICAgewotKyAgICAgIHhtb2RlX3VuaXRfaW50ID0gaW50X21vZGVfZm9y X21vZGUgKHhtb2RlX3VuaXQpOwotKyAgICAgIGlmICh4bW9kZV91bml0X2ludCA9PSBCTEttb2Rl KQotKwkvKiBJdCdzIHByb2JhYmx5IGJhZCB0byBiZSBoZXJlOyBhIHBvcnQgc2hvdWxkIGhhdmUg YW4gaW50ZWdlciBtb2RlCi0rCSAgIHRoYXQncyB0aGUgc2FtZSBzaXplIGFzIGFueXRoaW5nIG9m IHdoaWNoIGl0IHRha2VzIGEgU1VCUkVHLiAgKi8KLSsJeG1vZGVfdW5pdF9pbnQgPSB4bW9kZV91 bml0OwotKyAgICB9Ci0rICBlbHNlCi0rICAgIHhtb2RlX3VuaXRfaW50ID0geG1vZGVfdW5pdDsK LSsKLSsgIG5yZWdzX3htb2RlX3VuaXQgPSBoYXJkX3JlZ25vX25yZWdzW3hyZWdub11beG1vZGVf dW5pdF07Ci0rICBucmVnc194bW9kZV91bml0X2ludCA9IGhhcmRfcmVnbm9fbnJlZ3NbeHJlZ25v XVt4bW9kZV91bml0X2ludF07Ci0rCi0gICAvKiBJZiB0aGVyZSBhcmUgaG9sZXMgaW4gYSBub24t c2NhbGFyIG1vZGUgaW4gcmVnaXN0ZXJzLCB3ZSBleHBlY3QKLSAgICAgIHRoYXQgaXQgaXMgbWFk ZSB1cCBvZiBpdHMgdW5pdHMgY29uY2F0ZW5hdGVkIHRvZ2V0aGVyLiAgKi8KLS0gIGlmIChIQVJE X1JFR05PX05SRUdTX0hBU19QQURESU5HICh4cmVnbm8sIHhtb2RlKSkKLSsgIGlmIChucmVnc194 bW9kZV91bml0ICE9IG5yZWdzX3htb2RlX3VuaXRfaW50KQotICAgICB7Ci0tICAgICAgZW51bSBt YWNoaW5lX21vZGUgeG1vZGVfdW5pdDsKLS0KLS0gICAgICBucmVnc194bW9kZSA9IEhBUkRfUkVH Tk9fTlJFR1NfV0lUSF9QQURESU5HICh4cmVnbm8sIHhtb2RlKTsKLS0gICAgICBpZiAoR0VUX01P REVfSU5ORVIgKHhtb2RlKSA9PSBWT0lEbW9kZSkKLS0JeG1vZGVfdW5pdCA9IHhtb2RlOwotLSAg ICAgIGVsc2UKLS0JeG1vZGVfdW5pdCA9IEdFVF9NT0RFX0lOTkVSICh4bW9kZSk7Ci0tICAgICAg Z2NjX2Fzc2VydCAoSEFSRF9SRUdOT19OUkVHU19IQVNfUEFERElORyAoeHJlZ25vLCB4bW9kZV91 bml0KSk7Ci0tICAgICAgZ2NjX2Fzc2VydCAobnJlZ3NfeG1vZGUKLS0JCSAgPT0gKEdFVF9NT0RF X05VTklUUyAoeG1vZGUpCi0tCQkgICAgICAqIEhBUkRfUkVHTk9fTlJFR1NfV0lUSF9QQURESU5H ICh4cmVnbm8sIHhtb2RlX3VuaXQpKSk7Ci0tICAgICAgZ2NjX2Fzc2VydCAoaGFyZF9yZWdub19u cmVnc1t4cmVnbm9dW3htb2RlXQotLQkJICA9PSAoaGFyZF9yZWdub19ucmVnc1t4cmVnbm9dW3ht b2RlX3VuaXRdCi0tCQkgICAgICAqIEdFVF9NT0RFX05VTklUUyAoeG1vZGUpKSk7Ci0rICAgICAg Z2NjX2Fzc2VydCAobnJlZ3NfeG1vZGVfdW5pdCAqIEdFVF9NT0RFX05VTklUUyAoeG1vZGUpCi0r CQkgID09IGhhcmRfcmVnbm9fbnJlZ3NbeHJlZ25vXVt4bW9kZV0pOwotIAotICAgICAgIC8qIFlv dSBjYW4gb25seSBhc2sgZm9yIGEgU1VCUkVHIG9mIGEgdmFsdWUgd2l0aCBob2xlcyBpbiB0aGUg bWlkZGxlCi0gCSBpZiB5b3UgZG9uJ3QgY3Jvc3MgdGhlIGhvbGVzLiAgKFN1Y2ggYSBTVUJSRUcg c2hvdWxkIGJlIGRvbmUgYnkKLUBAIC0zMjE4LDEyICszMjQ0LDE1IEBAIHN1YnJlZ19vZmZzZXRf cmVwcmVzZW50YWJsZV9wICh1bnNpZ25lZCAKLSAJIDMgZm9yIGVhY2ggcGFydCwgYnV0IGluIG1l bW9yeSBpdCdzIHR3byAxMjgtYml0IHBhcnRzLiAgCi0gCSBQYWRkaW5nIGlzIGFzc3VtZWQgdG8g YmUgYXQgdGhlIGVuZCAobm90IG5lY2Vzc2FyaWx5IHRoZSAnaGlnaCBwYXJ0JykKLSAJIG9mIGVh Y2ggdW5pdC4gICovCi0tICAgICAgaWYgKChvZmZzZXQgLyBHRVRfTU9ERV9TSVpFICh4bW9kZV91 bml0KSArIDEgCi0tCSAgIDwgR0VUX01PREVfTlVOSVRTICh4bW9kZSkpCi0tCSAgJiYgKG9mZnNl dCAvIEdFVF9NT0RFX1NJWkUgKHhtb2RlX3VuaXQpCi0rICAgICAgaWYgKG5yZWdzX3htb2RlX3Vu aXQgIT0gbnJlZ3NfeG1vZGVfdW5pdF9pbnQKLSsJICAmJiAob2Zmc2V0IC8gR0VUX01PREVfU0la RSAoeG1vZGVfdW5pdF9pbnQpICsgMSAKLSsJICAgICAgPCBHRVRfTU9ERV9OVU5JVFMgKHhtb2Rl KSkKLSsJICAmJiAob2Zmc2V0IC8gR0VUX01PREVfU0laRSAoeG1vZGVfdW5pdF9pbnQpIAotIAkg ICAgICAhPSAoKG9mZnNldCArIEdFVF9NT0RFX1NJWkUgKHltb2RlKSAtIDEpCi0tCQkgIC8gR0VU X01PREVfU0laRSAoeG1vZGVfdW5pdCkpKSkKLSsJCSAgLyBHRVRfTU9ERV9TSVpFICh4bW9kZV91 bml0X2ludCkpKSkKLSAJcmV0dXJuIGZhbHNlOwotKwotKyAgICAgIG5yZWdzX3htb2RlID0gbnJl Z3NfeG1vZGVfdW5pdF9pbnQgKiBHRVRfTU9ERV9OVU5JVFMgKHhtb2RlKTsKLSAgICAgfQotICAg ZWxzZQotICAgICBucmVnc194bW9kZSA9IGhhcmRfcmVnbm9fbnJlZ3NbeHJlZ25vXVt4bW9kZV07 Ci1AQCAtMzIzNywxNSArMzI2Niw2IEBAIHN1YnJlZ19vZmZzZXRfcmVwcmVzZW50YWJsZV9wICh1 bnNpZ25lZCAKLSAJICA/IFdPUkRTX0JJR19FTkRJQU4gOiBCWVRFU19CSUdfRU5ESUFOKSkKLSAg ICAgcmV0dXJuIHRydWU7Ci0gCi0tICAvKiBJZiByZWdpc3RlcnMgc3RvcmUgZGlmZmVyZW50IG51 bWJlcnMgb2YgYml0cyBpbiB0aGUgZGlmZmVyZW50Ci0tICAgICBtb2Rlcywgd2UgY2Fubm90IGdl bmVyYWxseSBmb3JtIHRoaXMgc3VicmVnLiAgKi8KLS0gIHJlZ3NpemVfeG1vZGUgPSBHRVRfTU9E RV9TSVpFICh4bW9kZSkgLyBucmVnc194bW9kZTsKLS0gIHJlZ3NpemVfeW1vZGUgPSBHRVRfTU9E RV9TSVpFICh5bW9kZSkgLyBucmVnc195bW9kZTsKLS0gIGlmIChyZWdzaXplX3htb2RlID4gcmVn c2l6ZV95bW9kZSAmJiBucmVnc195bW9kZSA+IDEpCi0tICAgIHJldHVybiBmYWxzZTsKLS0gIGlm IChyZWdzaXplX3ltb2RlID4gcmVnc2l6ZV94bW9kZSAmJiBucmVnc194bW9kZSA+IDEpCi0tICAg IHJldHVybiBmYWxzZTsKLS0KLSAgIC8qIExvd3BhcnQgc3VicmVncyBhcmUgb3RoZXJ3aXNlIHZh bGlkLiAgKi8KLSAgIGlmIChvZmZzZXQgPT0gc3VicmVnX2xvd3BhcnRfb2Zmc2V0ICh5bW9kZSwg eG1vZGUpKQotICAgICByZXR1cm4gdHJ1ZTsKLS0tLSBnY2MvY29uZmlnL2kzODYvaTM4Ni5oCShy ZXZpc2lvbiAxMTk5NjcpCi0rKysgZ2NjL2NvbmZpZy9pMzg2L2kzODYuaAkocmV2aXNpb24gMTE5 OTY2KQotQEAgLTgyNywxNSArODI3LDYgQEAgZG8gewkJCQkJCQkJCVwKLSAgICAgICA/IChUQVJH RVRfNjRCSVQgPyA0IDogNikJCQkJCQlcCi0gICAgICAgOiAoKEdFVF9NT0RFX1NJWkUgKE1PREUp ICsgVU5JVFNfUEVSX1dPUkQgLSAxKSAvIFVOSVRTX1BFUl9XT1JEKSkpCi0gCi0tI2RlZmluZSBI QVJEX1JFR05PX05SRUdTX0hBU19QQURESU5HKFJFR05PLCBNT0RFKQkJCVwKLS0gICgoVEFSR0VU XzEyOEJJVF9MT05HX0RPVUJMRSAmJiAhVEFSR0VUXzY0QklUKQkJCQlcCi0tICAgPyAoRlBfUkVH Tk9fUCAoUkVHTk8pIHx8IFNTRV9SRUdOT19QIChSRUdOTykgfHwgTU1YX1JFR05PX1AgKFJFR05P KQlcCi0tICAgICAgPyAwCQkJCQkJCQlcCi0tICAgICAgOiAoKE1PREUpID09IFhGbW9kZSB8fCAo TU9ERSkgPT0gWENtb2RlKSkJCQkJXAotLSAgIDogMCkKLS0KLS0jZGVmaW5lIEhBUkRfUkVHTk9f TlJFR1NfV0lUSF9QQURESU5HKFJFR05PLCBNT0RFKSAoKE1PREUpID09IFhGbW9kZSA/IDQgOiA4 KQotLQotICNkZWZpbmUgVkFMSURfU1NFMl9SRUdfTU9ERShNT0RFKSBcCi0gICAgICgoTU9ERSkg PT0gVjE2UUltb2RlIHx8IChNT0RFKSA9PSBWOEhJbW9kZSB8fCAoTU9ERSkgPT0gVjJERm1vZGUg ICAgXAotICAgICAgfHwgKE1PREUpID09IFYyREltb2RlIHx8IChNT0RFKSA9PSBERm1vZGUpCi0t LS0gZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMJKHJldmlzaW9uIDExOTk2NykKLSsrKyBnY2Mv Y29uZmlnL3JzNjAwMC9yczYwMDAuYwkocmV2aXNpb24gMTE5OTY2KQotQEAgLTM1NzMsNiArMzU3 Myw5IEBAIHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzIChpbnQgcmVnbm8sIGVudW0KLSAgIGlmIChG UF9SRUdOT19QIChyZWdubykpCi0gICAgIHJldHVybiAoR0VUX01PREVfU0laRSAobW9kZSkgKyBV TklUU19QRVJfRlBfV09SRCAtIDEpIC8gVU5JVFNfUEVSX0ZQX1dPUkQ7Ci0gCi0rICBpZiAoVEFS R0VUX0U1MDBfRE9VQkxFICYmIG1vZGUgPT0gREZtb2RlKQotKyAgICByZXR1cm4gMTsKLSsKLSAg IGlmIChTUEVfU0lNRF9SRUdOT19QIChyZWdubykgJiYgVEFSR0VUX1NQRSAmJiBTUEVfVkVDVE9S X01PREUgKG1vZGUpKQotICAgICByZXR1cm4gKEdFVF9NT0RFX1NJWkUgKG1vZGUpICsgVU5JVFNf UEVSX1NQRV9XT1JEIC0gMSkgLyBVTklUU19QRVJfU1BFX1dPUkQ7Ci0gCi1AQCAtMzU4MCwxNCAr MzU4Myw2IEBAIHJzNjAwMF9oYXJkX3JlZ25vX25yZWdzIChpbnQgcmVnbm8sIGVudW0KLSAgICAg cmV0dXJuCi0gICAgICAgKEdFVF9NT0RFX1NJWkUgKG1vZGUpICsgVU5JVFNfUEVSX0FMVElWRUNf V09SRCAtIDEpIC8gVU5JVFNfUEVSX0FMVElWRUNfV09SRDsKLSAKLS0gIC8qIFRoZSB2YWx1ZSBy ZXR1cm5lZCBmb3IgU0Ntb2RlIGluIHRoZSBFNTAwIGRvdWJsZSBjYXNlIGlzIDIgZm9yCi0tICAg ICBBQkkgY29tcGF0aWJpbGl0eTsgc3RvcmluZyBhbiBTQ21vZGUgdmFsdWUgaW4gYSBzaW5nbGUg cmVnaXN0ZXIKLS0gICAgIHdvdWxkIHJlcXVpcmUgZnVuY3Rpb25fYXJnIGFuZCByczYwMDBfc3Bl X2Z1bmN0aW9uX2FyZyB0byBoYW5kbGUKLS0gICAgIFNDbW9kZSBzbyBhcyB0byBwYXNzIHRoZSB2 YWx1ZSBjb3JyZWN0bHkgaW4gYSBwYWlyIG9mCi0tICAgICByZWdpc3RlcnMuICAqLwotLSAgaWYg KFRBUkdFVF9FNTAwX0RPVUJMRSAmJiBGTE9BVF9NT0RFX1AgKG1vZGUpICYmIG1vZGUgIT0gU0Nt b2RlKQotLSAgICByZXR1cm4gKEdFVF9NT0RFX1NJWkUgKG1vZGUpICsgVU5JVFNfUEVSX0ZQX1dP UkQgLSAxKSAvIFVOSVRTX1BFUl9GUF9XT1JEOwotLQotICAgcmV0dXJuIChHRVRfTU9ERV9TSVpF IChtb2RlKSArIFVOSVRTX1BFUl9XT1JEIC0gMSkgLyBVTklUU19QRVJfV09SRDsKLSB9Ci0gCi1A QCAtMzk1Niw3ICszOTUxLDggQEAgcnM2MDAwX2VtaXRfbW92ZSAocnR4IGRlc3QsIHJ0eCBzb3Vy Y2UsIAotIAotICAgLyogMTI4LWJpdCBjb25zdGFudCBmbG9hdGluZy1wb2ludCB2YWx1ZXMgb24g RGFyd2luIHNob3VsZCByZWFsbHkgYmUKLSAgICAgIGxvYWRlZCBhcyB0d28gcGFydHMuICAqLwot LSAgaWYgKCFUQVJHRVRfSUVFRVFVQUQgJiYgVEFSR0VUX0xPTkdfRE9VQkxFXzEyOAotKyAgaWYg KCFUQVJHRVRfSUVFRVFVQUQKLSsgICAgICAmJiBUQVJHRVRfSEFSRF9GTE9BVCAmJiBUQVJHRVRf RlBSUyAmJiBUQVJHRVRfTE9OR19ET1VCTEVfMTI4Ci0gICAgICAgJiYgbW9kZSA9PSBURm1vZGUg JiYgR0VUX0NPREUgKG9wZXJhbmRzWzFdKSA9PSBDT05TVF9ET1VCTEUpCi0gICAgIHsKLSAgICAg ICAvKiBESW1vZGUgaXMgdXNlZCwgbm90IERGbW9kZSwgYmVjYXVzZSBzaW1wbGlmeV9nZW5fc3Vi cmVnIGRvZXNuJ3QKLUBAIC0xMjQwMiw4ICsxMjM5OCw2IEBAIHJzNjAwMF9zcGxpdF9tdWx0aXJl Z19tb3ZlIChydHggZHN0LCBydHgKLSAgICAgcmVnX21vZGUgPSBERm1vZGU7Ci0gICBlbHNlIGlm IChBTFRJVkVDX1JFR05PX1AgKHJlZykpCi0gICAgIHJlZ19tb2RlID0gVjE2UUltb2RlOwotLSAg ZWxzZSBpZiAoVEFSR0VUX0U1MDBfRE9VQkxFICYmIG1vZGUgPT0gVEZtb2RlKQotLSAgICByZWdf bW9kZSA9IERGbW9kZTsKLSAgIGVsc2UKLSAgICAgcmVnX21vZGUgPSB3b3JkX21vZGU7Ci0gICBy ZWdfbW9kZV9zaXplID0gR0VUX01PREVfU0laRSAocmVnX21vZGUpOwotLS0tIGdjYy9jb25maWcv cnM2MDAwL3JzNjAwMC5tZAkocmV2aXNpb24gMTE5OTY3KQotKysrIGdjYy9jb25maWcvcnM2MDAw L3JzNjAwMC5tZAkocmV2aXNpb24gMTE5OTY2KQotQEAgLTc3ODksNyArNzc4OSw4IEBAIChkZWZp bmVfaW5zbiAiKm1vdmRmX3NvZnRmbG9hdDY0IgotIChkZWZpbmVfZXhwYW5kICJtb3Z0ZiIKLSAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlRGIDAgImdlbmVyYWxfb3BlcmFuZCIgIiIpCi0gCShtYXRj aF9vcGVyYW5kOlRGIDEgImFueV9vcGVyYW5kIiAiIikpXQotLSAgIiFUQVJHRVRfSUVFRVFVQUQg JiYgVEFSR0VUX0xPTkdfRE9VQkxFXzEyOCIKLSsgICIhVEFSR0VUX0lFRUVRVUFECi0rICAgJiYg VEFSR0VUX0hBUkRfRkxPQVQgJiYgVEFSR0VUX0ZQUlMgJiYgVEFSR0VUX0xPTkdfRE9VQkxFXzEy OCIKLSAgICJ7IHJzNjAwMF9lbWl0X21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSwgVEZt b2RlKTsgRE9ORTsgfSIpCi0gCi0gOyBJdCdzIGltcG9ydGFudCB0byBsaXN0IHRoZSBvLT5mIGFu ZCBmLT5vIG1vdmVzIGJlZm9yZSBmLT5mIGJlY2F1c2UKLUBAIC03ODA4LDE5ICs3ODA5LDYgQEAg KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm1vdnRmX2ludGVybmFsIgotIHsgcnM2MDAwX3NwbGl0 X211bHRpcmVnX21vdmUgKG9wZXJhbmRzWzBdLCBvcGVyYW5kc1sxXSk7IERPTkU7IH0KLSAgIFso c2V0X2F0dHIgImxlbmd0aCIgIjgsOCw4LDIwLDIwLDE2IildKQotIAotLShkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIiptb3Z0Zl9zb2Z0ZmxvYXQiCi0tICBbKHNldCAobWF0Y2hfb3BlcmFuZDpURiAw ICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yLFksciIpCi0tCShtYXRjaF9vcGVyYW5kOlRGIDEg ImlucHV0X29wZXJhbmQiICAgICAgICAgIllHSEYscixyIikpXQotLSAgIiFUQVJHRVRfSUVFRVFV QUQKLS0gICAmJiAoVEFSR0VUX1NPRlRfRkxPQVQgfHwgIVRBUkdFVF9GUFJTKSAmJiBUQVJHRVRf TE9OR19ET1VCTEVfMTI4Ci0tICAgJiYgKGdwY19yZWdfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFRG bW9kZSkKLS0gICAgICAgfHwgZ3BjX3JlZ19vcGVyYW5kIChvcGVyYW5kc1sxXSwgVEZtb2RlKSki Ci0tICAiIyIKLS0gICImJiByZWxvYWRfY29tcGxldGVkIgotLSAgWyhwYyldCi0teyByczYwMDBf c3BsaXRfbXVsdGlyZWdfbW92ZSAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFdKTsgRE9ORTsgfQot LSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMjAsMjAsMTYiKV0pCi0tCi0gKGRlZmluZV9leHBhbmQg ImV4dGVuZGRmdGYyIgotICAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfb3BlcmFuZDpURiAwICJu b25pbW1lZGlhdGVfb3BlcmFuZCIgIiIpCi0gCQkgICAoZmxvYXRfZXh0ZW5kOlRGIChtYXRjaF9v cGVyYW5kOkRGIDEgImlucHV0X29wZXJhbmQiICIiKSkpCgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcHIy NzU2Ny5wYXRjaCBiL2djYzQxLXByMjc1NjcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGI1ZjEyYWQuLjAwMDAwMDAKLS0tIGEvZ2NjNDEtcHIyNzU2Ny5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDQzOSArMCwwIEBACi0yMDA2LTA5LTAxICBKYWt1YiBKZWxpbmVrICA8amFr dWJAcmVkaGF0LmNvbT4KLQotCVBSIG1pZGRsZS1lbmQvMjc1NjcKLQkqIGJ1aWx0aW5zLmMgKGZv bGRfYnVpbHRpbl9tZW1jcHksIGZvbGRfYnVpbHRpbl9tZW1tb3ZlKTogUmVtb3ZlLgotCShmb2xk X2J1aWx0aW5fbWVtcGNweSk6IFJlbmFtZSB0by4uLgotCShmb2xkX2J1aWx0aW5fbWVtb3J5X29w KTogLi4uIHRoaXMuICBPcHRpbWl6ZSBvbmUgZWxlbWVudCBjb3B5Ci0JaW50byBhbiBhc3NpZ25t ZW50LgotCShmb2xkX2J1aWx0aW5fbWVtc2V0LCBmb2xkX2J1aWx0aW5fYnplcm8sIGZvbGRfYnVp bHRpbl9iY29weSk6IE5ldwotCWZ1bmN0aW9ucy4KLQkoZXhwYW5kX2J1aWx0aW5fc3RyY3B5LCBl eHBhbmRfYnVpbHRpbl9zdHJuY3B5KTogSGFuZGxlIENPTVBPVU5EX0VYUFIuCi0JKGV4cGFuZF9i dWlsdGluX21lbWNweSwgZXhwYW5kX2J1aWx0aW5fbWVtcGNweSwKLQlleHBhbmRfYnVpbHRpbl9t ZW1tb3ZlKTogTGlrZXdpc2UuICBVc2UgZm9sZF9idWlsdGluX21lbW9yeV9vcC4KLQkoZm9sZF9i dWlsdGluXzEpOiBIYW5kbGUgQlVJTFRfSU5fTUVNU0VULCBCVUlMVF9JTl9CWkVSTyBhbmQKLQlC VUlMVF9JTl9CQ09QWS4gIFVzZSBmb2xkX2J1aWx0aW5fbWVtb3J5X29wIGZvcgotCUJVSUxUX0lO X01FTXtDUFksUENQWSxNT1ZFfS4KLQotLS0tIGdjYy9idWlsdGlucy5jLmpqCTIwMDYtMDgtMjgg MTM6MDA6MjMuMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL2J1aWx0aW5zLmMJMjAwNi0wOS0wMSAx MTo1NTo1MS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0xNjAsOSArMTYwLDcgQEAgc3RhdGljIHRyZWUg Zm9sZF9idWlsdGluX2NlaWwgKHRyZWUsIHRyZQotIHN0YXRpYyB0cmVlIGZvbGRfYnVpbHRpbl9y b3VuZCAodHJlZSwgdHJlZSk7Ci0gc3RhdGljIHRyZWUgZm9sZF9idWlsdGluX2ludF9yb3VuZGlu Z2ZuICh0cmVlLCB0cmVlKTsKLSBzdGF0aWMgdHJlZSBmb2xkX2J1aWx0aW5fYml0b3AgKHRyZWUs IHRyZWUpOwotLXN0YXRpYyB0cmVlIGZvbGRfYnVpbHRpbl9tZW1jcHkgKHRyZWUsIHRyZWUpOwot LXN0YXRpYyB0cmVlIGZvbGRfYnVpbHRpbl9tZW1wY3B5ICh0cmVlLCB0cmVlLCBpbnQpOwotLXN0 YXRpYyB0cmVlIGZvbGRfYnVpbHRpbl9tZW1tb3ZlICh0cmVlLCB0cmVlKTsKLStzdGF0aWMgdHJl ZSBmb2xkX2J1aWx0aW5fbWVtb3J5X29wICh0cmVlLCB0cmVlLCBib29sLCBpbnQpOwotIHN0YXRp YyB0cmVlIGZvbGRfYnVpbHRpbl9zdHJjaHIgKHRyZWUsIHRyZWUpOwotIHN0YXRpYyB0cmVlIGZv bGRfYnVpbHRpbl9tZW1jbXAgKHRyZWUpOwotIHN0YXRpYyB0cmVlIGZvbGRfYnVpbHRpbl9zdHJj bXAgKHRyZWUpOwotQEAgLTI4OTAsMTAgKzI4ODgsMTkgQEAgZXhwYW5kX2J1aWx0aW5fbWVtY3B5 ICh0cmVlIGV4cCwgcnR4IHRhcgotICAgICAgIHVuc2lnbmVkIGludCBkZXN0X2FsaWduCi0gCT0g Z2V0X3BvaW50ZXJfYWxpZ25tZW50IChkZXN0LCBCSUdHRVNUX0FMSUdOTUVOVCk7Ci0gICAgICAg cnR4IGRlc3RfbWVtLCBzcmNfbWVtLCBkZXN0X2FkZHIsIGxlbl9ydHg7Ci0tICAgICAgdHJlZSBy ZXN1bHQgPSBmb2xkX2J1aWx0aW5fbWVtY3B5IChmbmRlY2wsIGFyZ2xpc3QpOwotKyAgICAgIHRy ZWUgcmVzdWx0ID0gZm9sZF9idWlsdGluX21lbW9yeV9vcCAoYXJnbGlzdCwgVFJFRV9UWVBFIChU UkVFX1RZUEUgKGZuZGVjbCkpLAotKwkJCQkJICAgIGZhbHNlLCAvKmVuZHA9Ki8wKTsKLSAKLSAg ICAgICBpZiAocmVzdWx0KQotLQlyZXR1cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFyZ2V0LCBt b2RlLCBFWFBBTkRfTk9STUFMKTsKLSsJewotKwkgIHdoaWxlIChUUkVFX0NPREUgKHJlc3VsdCkg PT0gQ09NUE9VTkRfRVhQUikKLSsJICAgIHsKLSsJICAgICAgZXhwYW5kX2V4cHIgKFRSRUVfT1BF UkFORCAocmVzdWx0LCAwKSwgY29uc3QwX3J0eCwgVk9JRG1vZGUsCi0rCQkJICAgRVhQQU5EX05P Uk1BTCk7Ci0rCSAgICAgIHJlc3VsdCA9IFRSRUVfT1BFUkFORCAocmVzdWx0LCAxKTsKLSsJICAg IH0KLSsJICByZXR1cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFyZ2V0LCBtb2RlLCBFWFBBTkRf Tk9STUFMKTsKLSsJfQotIAotICAgICAgIC8qIElmIERFU1QgaXMgbm90IGEgcG9pbnRlciB0eXBl LCBjYWxsIHRoZSBub3JtYWwgZnVuY3Rpb24uICAqLwotICAgICAgIGlmIChkZXN0X2FsaWduID09 IDApCi1AQCAtMjk3OSwxMSArMjk4NiwxOSBAQCBleHBhbmRfYnVpbHRpbl9tZW1wY3B5ICh0cmVl IGFyZ2xpc3QsIHRyCi0gICAgICAgdW5zaWduZWQgaW50IGRlc3RfYWxpZ24KLSAJPSBnZXRfcG9p bnRlcl9hbGlnbm1lbnQgKGRlc3QsIEJJR0dFU1RfQUxJR05NRU5UKTsKLSAgICAgICBydHggZGVz dF9tZW0sIHNyY19tZW0sIGxlbl9ydHg7Ci0tICAgICAgdHJlZSByZXN1bHQgPSBmb2xkX2J1aWx0 aW5fbWVtcGNweSAoYXJnbGlzdCwgdHlwZSwgZW5kcCk7Ci0rICAgICAgdHJlZSByZXN1bHQgPSBm b2xkX2J1aWx0aW5fbWVtb3J5X29wIChhcmdsaXN0LCB0eXBlLCBmYWxzZSwgZW5kcCk7Ci0gCi0g ICAgICAgaWYgKHJlc3VsdCkKLS0JcmV0dXJuIGV4cGFuZF9leHByIChyZXN1bHQsIHRhcmdldCwg bW9kZSwgRVhQQU5EX05PUk1BTCk7Ci0tICAgICAgCi0rCXsKLSsJICB3aGlsZSAoVFJFRV9DT0RF IChyZXN1bHQpID09IENPTVBPVU5EX0VYUFIpCi0rCSAgICB7Ci0rCSAgICAgIGV4cGFuZF9leHBy IChUUkVFX09QRVJBTkQgKHJlc3VsdCwgMCksIGNvbnN0MF9ydHgsIFZPSURtb2RlLAotKwkJCSAg IEVYUEFORF9OT1JNQUwpOwotKwkgICAgICByZXN1bHQgPSBUUkVFX09QRVJBTkQgKHJlc3VsdCwg MSk7Ci0rCSAgICB9Ci0rCSAgcmV0dXJuIGV4cGFuZF9leHByIChyZXN1bHQsIHRhcmdldCwgbW9k ZSwgRVhQQU5EX05PUk1BTCk7Ci0rCX0KLSsKLSAgICAgICAvKiBJZiBlaXRoZXIgU1JDIG9yIERF U1QgaXMgbm90IGEgcG9pbnRlciB0eXBlLCBkb24ndCBkbyB0aGlzCi0gICAgICAgICAgb3BlcmF0 aW9uIGluLWxpbmUuICAqLwotICAgICAgIGlmIChkZXN0X2FsaWduID09IDAgfHwgc3JjX2FsaWdu ID09IDApCi1AQCAtMzA1MywxMCArMzA2OCwxOCBAQCBleHBhbmRfYnVpbHRpbl9tZW1tb3ZlICh0 cmVlIGFyZ2xpc3QsIHRyCi0gICAgICAgdW5zaWduZWQgaW50IHNyY19hbGlnbiA9IGdldF9wb2lu dGVyX2FsaWdubWVudCAoc3JjLCBCSUdHRVNUX0FMSUdOTUVOVCk7Ci0gICAgICAgdW5zaWduZWQg aW50IGRlc3RfYWxpZ24KLSAJPSBnZXRfcG9pbnRlcl9hbGlnbm1lbnQgKGRlc3QsIEJJR0dFU1Rf QUxJR05NRU5UKTsKLS0gICAgICB0cmVlIHJlc3VsdCA9IGZvbGRfYnVpbHRpbl9tZW1tb3ZlIChh cmdsaXN0LCB0eXBlKTsKLSsgICAgICB0cmVlIHJlc3VsdCA9IGZvbGRfYnVpbHRpbl9tZW1vcnlf b3AgKGFyZ2xpc3QsIHR5cGUsIGZhbHNlLCAvKmVuZHA9Ki8zKTsKLSAKLSAgICAgICBpZiAocmVz dWx0KQotLQlyZXR1cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFyZ2V0LCBtb2RlLCBFWFBBTkRf Tk9STUFMKTsKLSsJewotKwkgIHdoaWxlIChUUkVFX0NPREUgKHJlc3VsdCkgPT0gQ09NUE9VTkRf RVhQUikKLSsJICAgIHsKLSsJICAgICAgZXhwYW5kX2V4cHIgKFRSRUVfT1BFUkFORCAocmVzdWx0 LCAwKSwgY29uc3QwX3J0eCwgVk9JRG1vZGUsCi0rCQkJICAgRVhQQU5EX05PUk1BTCk7Ci0rCSAg ICAgIHJlc3VsdCA9IFRSRUVfT1BFUkFORCAocmVzdWx0LCAxKTsKLSsJICAgIH0KLSsJICByZXR1 cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFyZ2V0LCBtb2RlLCBFWFBBTkRfTk9STUFMKTsKLSsJ fQotIAotICAgICAgIC8qIElmIERFU1QgaXMgbm90IGEgcG9pbnRlciB0eXBlLCBjYWxsIHRoZSBu b3JtYWwgZnVuY3Rpb24uICAqLwotICAgICAgIGlmIChkZXN0X2FsaWduID09IDApCi1AQCAtMzIw NCw3ICszMjI3LDE1IEBAIGV4cGFuZF9idWlsdGluX3N0cmNweSAodHJlZSBmbmRlY2wsIHRyZWUK LSAgICAgewotICAgICAgIHRyZWUgcmVzdWx0ID0gZm9sZF9idWlsdGluX3N0cmNweSAoZm5kZWNs LCBhcmdsaXN0LCAwKTsKLSAgICAgICBpZiAocmVzdWx0KQotLQlyZXR1cm4gZXhwYW5kX2V4cHIg KHJlc3VsdCwgdGFyZ2V0LCBtb2RlLCBFWFBBTkRfTk9STUFMKTsKLSsJewotKwkgIHdoaWxlIChU UkVFX0NPREUgKHJlc3VsdCkgPT0gQ09NUE9VTkRfRVhQUikKLSsJICAgIHsKLSsJICAgICAgZXhw YW5kX2V4cHIgKFRSRUVfT1BFUkFORCAocmVzdWx0LCAwKSwgY29uc3QwX3J0eCwgVk9JRG1vZGUs Ci0rCQkJICAgRVhQQU5EX05PUk1BTCk7Ci0rCSAgICAgIHJlc3VsdCA9IFRSRUVfT1BFUkFORCAo cmVzdWx0LCAxKTsKLSsJICAgIH0KLSsJICByZXR1cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFy Z2V0LCBtb2RlLCBFWFBBTkRfTk9STUFMKTsKLSsJfQotIAotICAgICAgIHJldHVybiBleHBhbmRf bW92c3RyIChUUkVFX1ZBTFVFIChhcmdsaXN0KSwKLSAJCQkgICAgVFJFRV9WQUxVRSAoVFJFRV9D SEFJTiAoYXJnbGlzdCkpLAotQEAgLTMzMzAsNyArMzM2MSwxNSBAQCBleHBhbmRfYnVpbHRpbl9z dHJuY3B5ICh0cmVlIGV4cCwgcnR4IHRhCi0gICAgICAgdHJlZSByZXN1bHQgPSBmb2xkX2J1aWx0 aW5fc3RybmNweSAoZm5kZWNsLCBhcmdsaXN0LCBzbGVuKTsKLSAgICAgICAKLSAgICAgICBpZiAo cmVzdWx0KQotLQlyZXR1cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFyZ2V0LCBtb2RlLCBFWFBB TkRfTk9STUFMKTsKLSsJewotKwkgIHdoaWxlIChUUkVFX0NPREUgKHJlc3VsdCkgPT0gQ09NUE9V TkRfRVhQUikKLSsJICAgIHsKLSsJICAgICAgZXhwYW5kX2V4cHIgKFRSRUVfT1BFUkFORCAocmVz dWx0LCAwKSwgY29uc3QwX3J0eCwgVk9JRG1vZGUsCi0rCQkJICAgRVhQQU5EX05PUk1BTCk7Ci0r CSAgICAgIHJlc3VsdCA9IFRSRUVfT1BFUkFORCAocmVzdWx0LCAxKTsKLSsJICAgIH0KLSsJICBy ZXR1cm4gZXhwYW5kX2V4cHIgKHJlc3VsdCwgdGFyZ2V0LCBtb2RlLCBFWFBBTkRfTk9STUFMKTsK LSsJfQotIAotICAgICAgIC8qIFdlIG11c3QgYmUgcGFzc2VkIGEgY29uc3RhbnQgbGVuIGFuZCBz cmMgcGFyYW1ldGVyLiAgKi8KLSAgICAgICBpZiAoIWhvc3RfaW50ZWdlcnAgKGxlbiwgMSkgfHwg IXNsZW4gfHwgIWhvc3RfaW50ZWdlcnAgKHNsZW4sIDEpKQotQEAgLTc5ODIsNzggKzgwMjEsMTIx IEBAIGZvbGRfYnVpbHRpbl9leHBvbmVudCAodHJlZSBmbmRlY2wsIHRyZWUKLSAgIHJldHVybiAw OwotIH0KLSAKLS0vKiBGb2xkIGZ1bmN0aW9uIGNhbGwgdG8gYnVpbHRpbiBtZW1jcHkuICBSZXR1 cm4KLSsvKiBGb2xkIGZ1bmN0aW9uIGNhbGwgdG8gYnVpbHRpbiBtZW1zZXQuICBSZXR1cm4KLSAg ICBOVUxMX1RSRUUgaWYgbm8gc2ltcGxpZmljYXRpb24gY2FuIGJlIG1hZGUuICAqLwotIAotIHN0 YXRpYyB0cmVlCi0tZm9sZF9idWlsdGluX21lbWNweSAodHJlZSBmbmRlY2wsIHRyZWUgYXJnbGlz dCkKLStmb2xkX2J1aWx0aW5fbWVtc2V0ICh0cmVlIGFyZ2xpc3QsIHRyZWUgdHlwZSwgYm9vbCBp Z25vcmUpCi0gewotLSAgdHJlZSBkZXN0LCBzcmMsIGxlbjsKLSsgIHRyZWUgZGVzdCwgYywgbGVu LCB2YXIsIHJldDsKLSsgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgbGVuZ3RoLCBjdmFsOwotIAot ICAgaWYgKCF2YWxpZGF0ZV9hcmdsaXN0IChhcmdsaXN0LAotLQkJCSBQT0lOVEVSX1RZUEUsIFBP SU5URVJfVFlQRSwgSU5URUdFUl9UWVBFLCBWT0lEX1RZUEUpKQotKwkJCSBQT0lOVEVSX1RZUEUs IElOVEVHRVJfVFlQRSwgSU5URUdFUl9UWVBFLCBWT0lEX1RZUEUpKQotICAgICByZXR1cm4gMDsK LSAKLSAgIGRlc3QgPSBUUkVFX1ZBTFVFIChhcmdsaXN0KTsKLS0gIHNyYyA9IFRSRUVfVkFMVUUg KFRSRUVfQ0hBSU4gKGFyZ2xpc3QpKTsKLSsgIGMgPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChh cmdsaXN0KSk7Ci0gICBsZW4gPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChUUkVFX0NIQUlOIChh cmdsaXN0KSkpOwotIAotKyAgaWYgKCEgaG9zdF9pbnRlZ2VycCAobGVuLCAxKSkKLSsgICAgcmV0 dXJuIDA7Ci0rCi0gICAvKiBJZiB0aGUgTEVOIHBhcmFtZXRlciBpcyB6ZXJvLCByZXR1cm4gREVT VC4gICovCi0gICBpZiAoaW50ZWdlcl96ZXJvcCAobGVuKSkKLS0gICAgcmV0dXJuIG9taXRfb25l X29wZXJhbmQgKFRSRUVfVFlQRSAoVFJFRV9UWVBFIChmbmRlY2wpKSwgZGVzdCwgc3JjKTsKLSsg ICAgcmV0dXJuIG9taXRfb25lX29wZXJhbmQgKHR5cGUsIGRlc3QsIGMpOwotIAotLSAgLyogSWYg U1JDIGFuZCBERVNUIGFyZSB0aGUgc2FtZSAoYW5kIG5vdCB2b2xhdGlsZSksIHJldHVybiBERVNU LiAgKi8KLS0gIGlmIChvcGVyYW5kX2VxdWFsX3AgKHNyYywgZGVzdCwgMCkpCi0tICAgIHJldHVy biBvbWl0X29uZV9vcGVyYW5kIChUUkVFX1RZUEUgKFRSRUVfVFlQRSAoZm5kZWNsKSksIGRlc3Qs IGxlbik7Ci0rICBpZiAoISBob3N0X2ludGVnZXJwIChjLCAxKSB8fCBUUkVFX1NJREVfRUZGRUNU UyAoZGVzdCkpCi0rICAgIHJldHVybiAwOwotIAotLSAgcmV0dXJuIDA7Ci0rICB2YXIgPSBkZXN0 OwotKyAgU1RSSVBfTk9QUyAodmFyKTsKLSsgIGlmIChUUkVFX0NPREUgKHZhcikgIT0gQUREUl9F WFBSKQotKyAgICByZXR1cm4gMDsKLSsKLSsgIHZhciA9IFRSRUVfT1BFUkFORCAodmFyLCAwKTsK LSsgIGlmIChUUkVFX1RISVNfVk9MQVRJTEUgKHZhcikpCi0rICAgIHJldHVybiAwOwotKwotKyAg aWYgKCFJTlRFR1JBTF9UWVBFX1AgKFRSRUVfVFlQRSAodmFyKSkKLSsgICAgICAmJiAhUE9JTlRF Ul9UWVBFX1AgKFRSRUVfVFlQRSAodmFyKSkpCi0rICAgIHJldHVybiAwOwotKwotKyAgbGVuZ3Ro ID0gdHJlZV9sb3dfY3N0IChsZW4sIDEpOwotKyAgaWYgKEdFVF9NT0RFX1NJWkUgKFRZUEVfTU9E RSAoVFJFRV9UWVBFICh2YXIpKSkgIT0gbGVuZ3RoCi0rICAgICAgfHwgZ2V0X3BvaW50ZXJfYWxp Z25tZW50IChkZXN0LCBCSUdHRVNUX0FMSUdOTUVOVCkgLyBCSVRTX1BFUl9VTklUCi0rCSA8IChp bnQpIGxlbmd0aCkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBpZiAobGVuZ3RoID4gSE9TVF9CSVRT X1BFUl9XSURFX0lOVCAvIEJJVFNfUEVSX1VOSVQpCi0rICAgIHJldHVybiAwOwotKwotKyAgaWYg KGludGVnZXJfemVyb3AgKGMpKQotKyAgICBjdmFsID0gMDsKLSsgIGVsc2UKLSsgICAgewotKyAg ICAgIGlmIChDSEFSX0JJVCAhPSA4IHx8IEJJVFNfUEVSX1VOSVQgIT0gOCB8fCBIT1NUX0JJVFNf UEVSX1dJREVfSU5UID4gNjQpCi0rCXJldHVybiAwOwotKwotKyAgICAgIGN2YWwgPSB0cmVlX2xv d19jc3QgKGMsIDEpOwotKyAgICAgIGN2YWwgJj0gMHhmZjsKLSsgICAgICBjdmFsIHw9IGN2YWwg PDwgODsKLSsgICAgICBjdmFsIHw9IGN2YWwgPDwgMTY7Ci0rICAgICAgY3ZhbCB8PSAoY3ZhbCA8 PCAzMSkgPDwgMTsKLSsgICAgfQotKwotKyAgcmV0ID0gYnVpbGRfaW50X2NzdF90eXBlIChUUkVF X1RZUEUgKHZhciksIGN2YWwpOwotKyAgcmV0ID0gYnVpbGQyIChNT0RJRllfRVhQUiwgVFJFRV9U WVBFICh2YXIpLCB2YXIsIHJldCk7Ci0rICBpZiAoaWdub3JlKQotKyAgICByZXR1cm4gcmV0Owot KwotKyAgcmV0dXJuIG9taXRfb25lX29wZXJhbmQgKHR5cGUsIGRlc3QsIHJldCk7Ci0gfQotIAot LS8qIEZvbGQgZnVuY3Rpb24gY2FsbCB0byBidWlsdGluIG1lbXBjcHkuICBSZXR1cm4KLSsvKiBG b2xkIGZ1bmN0aW9uIGNhbGwgdG8gYnVpbHRpbiBtZW1zZXQuICBSZXR1cm4KLSAgICBOVUxMX1RS RUUgaWYgbm8gc2ltcGxpZmljYXRpb24gY2FuIGJlIG1hZGUuICAqLwotIAotIHN0YXRpYyB0cmVl Ci0tZm9sZF9idWlsdGluX21lbXBjcHkgKHRyZWUgYXJnbGlzdCwgdHJlZSB0eXBlLCBpbnQgZW5k cCkKLStmb2xkX2J1aWx0aW5fYnplcm8gKHRyZWUgYXJnbGlzdCwgYm9vbCBpZ25vcmUpCi0gewot LSAgaWYgKHZhbGlkYXRlX2FyZ2xpc3QgKGFyZ2xpc3QsCi0tCQkJUE9JTlRFUl9UWVBFLCBQT0lO VEVSX1RZUEUsIElOVEVHRVJfVFlQRSwgVk9JRF9UWVBFKSkKLS0gICAgewotLSAgICAgIHRyZWUg ZGVzdCA9IFRSRUVfVkFMVUUgKGFyZ2xpc3QpOwotLSAgICAgIHRyZWUgc3JjID0gVFJFRV9WQUxV RSAoVFJFRV9DSEFJTiAoYXJnbGlzdCkpOwotLSAgICAgIHRyZWUgbGVuID0gVFJFRV9WQUxVRSAo VFJFRV9DSEFJTiAoVFJFRV9DSEFJTiAoYXJnbGlzdCkpKTsKLSsgIHRyZWUgZGVzdCwgc2l6ZSwg bmV3YXJnbGlzdDsKLSAKLS0gICAgICAvKiBJZiB0aGUgTEVOIHBhcmFtZXRlciBpcyB6ZXJvLCBy ZXR1cm4gREVTVC4gICovCi0tICAgICAgaWYgKGludGVnZXJfemVyb3AgKGxlbikpCi0tCXJldHVy biBvbWl0X29uZV9vcGVyYW5kICh0eXBlLCBkZXN0LCBzcmMpOwotKyAgaWYgKCF2YWxpZGF0ZV9h cmdsaXN0IChhcmdsaXN0LCBQT0lOVEVSX1RZUEUsIElOVEVHRVJfVFlQRSwgVk9JRF9UWVBFKSkK LSsgICAgcmV0dXJuIDA7Ci0gCi0tICAgICAgLyogSWYgU1JDIGFuZCBERVNUIGFyZSB0aGUgc2Ft ZSAoYW5kIG5vdCB2b2xhdGlsZSksIHJldHVybiBERVNUK0xFTi4gICovCi0tICAgICAgaWYgKG9w ZXJhbmRfZXF1YWxfcCAoc3JjLCBkZXN0LCAwKSkKLS0gICAgICAgIHsKLS0JICBpZiAoZW5kcCA9 PSAwKQotLQkgICAgcmV0dXJuIG9taXRfb25lX29wZXJhbmQgKHR5cGUsIGRlc3QsIGxlbik7Ci0r ICBpZiAoIWlnbm9yZSkKLSsgICAgcmV0dXJuIDA7Ci0gCi0tCSAgaWYgKGVuZHAgPT0gMikKLS0J ICAgIGxlbiA9IGZvbGRfYnVpbGQyIChNSU5VU19FWFBSLCBUUkVFX1RZUEUgKGxlbiksIGxlbiwK LS0JCQkgICAgICAgc3NpemVfaW50ICgxKSk7Ci0tICAgICAgCi0tCSAgbGVuID0gZm9sZF9jb252 ZXJ0IChUUkVFX1RZUEUgKGRlc3QpLCBsZW4pOwotLQkgIGxlbiA9IGZvbGRfYnVpbGQyIChQTFVT X0VYUFIsIFRSRUVfVFlQRSAoZGVzdCksIGRlc3QsIGxlbik7Ci0tCSAgcmV0dXJuIGZvbGRfY29u dmVydCAodHlwZSwgbGVuKTsKLS0JfQotLSAgICB9Ci0tICByZXR1cm4gMDsKLSsgIGRlc3QgPSBU UkVFX1ZBTFVFIChhcmdsaXN0KTsKLSsgIHNpemUgPSBUUkVFX1ZBTFVFIChUUkVFX0NIQUlOIChh cmdsaXN0KSk7Ci0rCi0rICAvKiBOZXcgYXJndW1lbnQgbGlzdCB0cmFuc2Zvcm1pbmcgYnplcm8o cHRyIHgsIGludCB5KSB0bwotKyAgICAgbWVtc2V0KHB0ciB4LCBpbnQgMCwgc2l6ZV90IHkpLiAg IFRoaXMgaXMgZG9uZSB0aGlzIHdheQotKyAgICAgc28gdGhhdCBpZiBpdCBpc24ndCBleHBhbmRl ZCBpbmxpbmUsIHdlIGZhbGxiYWNrIHRvCi0rICAgICBjYWxsaW5nIGJ6ZXJvIGluc3RlYWQgb2Yg bWVtc2V0LiAgKi8KLSsKLSsgIG5ld2FyZ2xpc3QgPSBidWlsZF90cmVlX2xpc3QgKE5VTExfVFJF RSwgZm9sZF9jb252ZXJ0IChzaXpldHlwZSwgc2l6ZSkpOwotKyAgbmV3YXJnbGlzdCA9IHRyZWVf Y29ucyAoTlVMTF9UUkVFLCBpbnRlZ2VyX3plcm9fbm9kZSwgbmV3YXJnbGlzdCk7Ci0rICBuZXdh cmdsaXN0ID0gdHJlZV9jb25zIChOVUxMX1RSRUUsIGRlc3QsIG5ld2FyZ2xpc3QpOwotKyAgcmV0 dXJuIGZvbGRfYnVpbHRpbl9tZW1zZXQgKG5ld2FyZ2xpc3QsIHZvaWRfdHlwZV9ub2RlLCBpZ25v cmUpOwotIH0KLSAKLS0vKiBGb2xkIGZ1bmN0aW9uIGNhbGwgdG8gYnVpbHRpbiBtZW1tb3ZlLiAg UmV0dXJuCi0tICAgTlVMTF9UUkVFIGlmIG5vIHNpbXBsaWZpY2F0aW9uIGNhbiBiZSBtYWRlLiAg Ki8KLSsvKiBGb2xkIGZ1bmN0aW9uIGNhbGwgdG8gYnVpbHRpbiBtZW17eyxwfWNweSxtb3ZlfS4g IFJldHVybgotKyAgIE5VTExfVFJFRSBpZiBubyBzaW1wbGlmaWNhdGlvbiBjYW4gYmUgbWFkZS4K LSsgICBJZiBFTkRQIGlzIDAsIHJldHVybiBERVNUIChsaWtlIG1lbWNweSkuCi0rICAgSWYgRU5E UCBpcyAxLCByZXR1cm4gREVTVCtMRU4gKGxpa2UgbWVtcGNweSkuCi0rICAgSWYgRU5EUCBpcyAy LCByZXR1cm4gREVTVCtMRU4tMSAobGlrZSBzdHBjcHkpLgotKyAgIElmIEVORFAgaXMgMywgcmV0 dXJuIERFU1QsIGFkZGl0aW9uYWxseSAqU1JDIGFuZCAqREVTVCBtYXkgb3ZlcmxhcAotKyAgICht ZW1tb3ZlKS4gICAqLwotIAotIHN0YXRpYyB0cmVlCi0tZm9sZF9idWlsdGluX21lbW1vdmUgKHRy ZWUgYXJnbGlzdCwgdHJlZSB0eXBlKQotK2ZvbGRfYnVpbHRpbl9tZW1vcnlfb3AgKHRyZWUgYXJn bGlzdCwgdHJlZSB0eXBlLCBib29sIGlnbm9yZSwgaW50IGVuZHApCi0gewotLSAgdHJlZSBkZXN0 LCBzcmMsIGxlbjsKLSsgIHRyZWUgZGVzdCwgc3JjLCBsZW4sIGRlc3R2YXIsIHNyY3ZhciwgZXhw cjsKLSsgIHVuc2lnbmVkIEhPU1RfV0lERV9JTlQgbGVuZ3RoOwotIAotLSAgaWYgKCF2YWxpZGF0 ZV9hcmdsaXN0IChhcmdsaXN0LAotLQkJCSBQT0lOVEVSX1RZUEUsIFBPSU5URVJfVFlQRSwgSU5U RUdFUl9UWVBFLCBWT0lEX1RZUEUpKQotKyAgaWYgKCEgdmFsaWRhdGVfYXJnbGlzdCAoYXJnbGlz dCwKLSsJCQkgIFBPSU5URVJfVFlQRSwgUE9JTlRFUl9UWVBFLCBJTlRFR0VSX1RZUEUsIFZPSURf VFlQRSkpCi0gICAgIHJldHVybiAwOwotIAotICAgZGVzdCA9IFRSRUVfVkFMVUUgKGFyZ2xpc3Qp OwotQEAgLTgwNjQsMTEgKzgxNDYsMTE1IEBAIGZvbGRfYnVpbHRpbl9tZW1tb3ZlICh0cmVlIGFy Z2xpc3QsIHRyZWUKLSAgIGlmIChpbnRlZ2VyX3plcm9wIChsZW4pKQotICAgICByZXR1cm4gb21p dF9vbmVfb3BlcmFuZCAodHlwZSwgZGVzdCwgc3JjKTsKLSAKLS0gIC8qIElmIFNSQyBhbmQgREVT VCBhcmUgdGhlIHNhbWUgKGFuZCBub3Qgdm9sYXRpbGUpLCByZXR1cm4gREVTVC4gICovCi0rICAv KiBJZiBTUkMgYW5kIERFU1QgYXJlIHRoZSBzYW1lIChhbmQgbm90IHZvbGF0aWxlKSwgcmV0dXJu Ci0rICAgICBERVNUeywrTEVOLCtMRU4tMX0uICAqLwotICAgaWYgKG9wZXJhbmRfZXF1YWxfcCAo c3JjLCBkZXN0LCAwKSkKLS0gICAgcmV0dXJuIG9taXRfb25lX29wZXJhbmQgKHR5cGUsIGRlc3Qs IGxlbik7Ci0rICAgIGV4cHIgPSBsZW47Ci0rICBlbHNlCi0rICAgIHsKLSsgICAgICBpZiAoISBo b3N0X2ludGVnZXJwIChsZW4sIDEpKQotKwlyZXR1cm4gMDsKLSAKLS0gIHJldHVybiAwOwotKyAg ICAgIGlmIChUUkVFX1NJREVfRUZGRUNUUyAoZGVzdCkgfHwgVFJFRV9TSURFX0VGRkVDVFMgKHNy YykpCi0rCXJldHVybiAwOwotKwotKyAgICAgIGRlc3R2YXIgPSBkZXN0OwotKyAgICAgIFNUUklQ X05PUFMgKGRlc3R2YXIpOwotKyAgICAgIGlmIChUUkVFX0NPREUgKGRlc3R2YXIpICE9IEFERFJf RVhQUikKLSsJcmV0dXJuIDA7Ci0rCi0rICAgICAgZGVzdHZhciA9IFRSRUVfT1BFUkFORCAoZGVz dHZhciwgMCk7Ci0rICAgICAgaWYgKFRSRUVfVEhJU19WT0xBVElMRSAoZGVzdHZhcikpCi0rCXJl dHVybiAwOwotKwotKyAgICAgIGlmICghSU5URUdSQUxfVFlQRV9QIChUUkVFX1RZUEUgKGRlc3R2 YXIpKQotKwkgICYmICFQT0lOVEVSX1RZUEVfUCAoVFJFRV9UWVBFIChkZXN0dmFyKSkKLSsJICAm JiAhU0NBTEFSX0ZMT0FUX1RZUEVfUCAoVFJFRV9UWVBFIChkZXN0dmFyKSkpCi0rCXJldHVybiAw OwotKwotKyAgICAgIHNyY3ZhciA9IHNyYzsKLSsgICAgICBTVFJJUF9OT1BTIChzcmN2YXIpOwot KyAgICAgIGlmIChUUkVFX0NPREUgKHNyY3ZhcikgIT0gQUREUl9FWFBSKQotKwlyZXR1cm4gMDsK LSsKLSsgICAgICBzcmN2YXIgPSBUUkVFX09QRVJBTkQgKHNyY3ZhciwgMCk7Ci0rICAgICAgaWYg KFRSRUVfVEhJU19WT0xBVElMRSAoc3JjdmFyKSkKLSsJcmV0dXJuIDA7Ci0rCi0rICAgICAgaWYg KCFJTlRFR1JBTF9UWVBFX1AgKFRSRUVfVFlQRSAoc3JjdmFyKSkKLSsJICAmJiAhUE9JTlRFUl9U WVBFX1AgKFRSRUVfVFlQRSAoc3JjdmFyKSkKLSsJICAmJiAhU0NBTEFSX0ZMT0FUX1RZUEVfUCAo VFJFRV9UWVBFIChzcmN2YXIpKSkKLSsJcmV0dXJuIDA7Ci0rCi0rICAgICAgbGVuZ3RoID0gdHJl ZV9sb3dfY3N0IChsZW4sIDEpOwotKyAgICAgIGlmIChHRVRfTU9ERV9TSVpFIChUWVBFX01PREUg KFRSRUVfVFlQRSAoZGVzdHZhcikpKSAhPSBsZW5ndGgKLSsJICB8fCBnZXRfcG9pbnRlcl9hbGln bm1lbnQgKGRlc3QsIEJJR0dFU1RfQUxJR05NRU5UKSAvIEJJVFNfUEVSX1VOSVQKLSsJICAgICA8 IChpbnQpIGxlbmd0aAotKwkgIHx8IEdFVF9NT0RFX1NJWkUgKFRZUEVfTU9ERSAoVFJFRV9UWVBF IChzcmN2YXIpKSkgIT0gbGVuZ3RoCi0rCSAgfHwgZ2V0X3BvaW50ZXJfYWxpZ25tZW50IChzcmMs IEJJR0dFU1RfQUxJR05NRU5UKSAvIEJJVFNfUEVSX1VOSVQKLSsJICAgICA8IChpbnQpIGxlbmd0 aCkKLSsJcmV0dXJuIDA7Ci0rCi0rICAgICAgaWYgKChJTlRFR1JBTF9UWVBFX1AgKFRSRUVfVFlQ RSAoc3JjdmFyKSkKLSsJICAgfHwgUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoc3JjdmFyKSkp Ci0rCSAgJiYgKElOVEVHUkFMX1RZUEVfUCAoVFJFRV9UWVBFIChkZXN0dmFyKSkKLSsJICAgICAg fHwgUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAoZGVzdHZhcikpKSkKLSsJZXhwciA9IGZvbGRf Y29udmVydCAoVFJFRV9UWVBFIChkZXN0dmFyKSwgc3JjdmFyKTsKLSsgICAgICBlbHNlCi0rCWV4 cHIgPSBmb2xkX2J1aWxkMSAoVklFV19DT05WRVJUX0VYUFIsIFRSRUVfVFlQRSAoZGVzdHZhciks IHNyY3Zhcik7Ci0rICAgICAgZXhwciA9IGJ1aWxkMiAoTU9ESUZZX0VYUFIsIFRSRUVfVFlQRSAo ZGVzdHZhciksIGRlc3R2YXIsIGV4cHIpOwotKyAgICB9Ci0rCi0rICBpZiAoaWdub3JlKQotKyAg ICByZXR1cm4gZXhwcjsKLSsKLSsgIGlmIChlbmRwID09IDAgfHwgZW5kcCA9PSAzKQotKyAgICBy ZXR1cm4gb21pdF9vbmVfb3BlcmFuZCAodHlwZSwgZGVzdCwgZXhwcik7Ci0rCi0rICBpZiAoZXhw ciA9PSBsZW4pCi0rICAgIGV4cHIgPSAwOwotKwotKyAgaWYgKGVuZHAgPT0gMikKLSsgICAgbGVu ID0gZm9sZF9idWlsZDIgKE1JTlVTX0VYUFIsIFRSRUVfVFlQRSAobGVuKSwgbGVuLAotKwkJICAg ICAgIHNzaXplX2ludCAoMSkpOwotKwotKyAgbGVuID0gZm9sZF9jb252ZXJ0IChUUkVFX1RZUEUg KGRlc3QpLCBsZW4pOwotKyAgZGVzdCA9IGZvbGRfYnVpbGQyIChQTFVTX0VYUFIsIFRSRUVfVFlQ RSAoZGVzdCksIGRlc3QsIGxlbik7Ci0rICBkZXN0ID0gZm9sZF9jb252ZXJ0ICh0eXBlLCBkZXN0 KTsKLSsgIGlmIChleHByKQotKyAgICBkZXN0ID0gb21pdF9vbmVfb3BlcmFuZCAodHlwZSwgZGVz dCwgZXhwcik7Ci0rICByZXR1cm4gZGVzdDsKLSt9Ci0rCi0rLyogRm9sZCBmdW5jdGlvbiBjYWxs IHRvIGJ1aWx0aW4gYmNvcHkuICBSZXR1cm4gTlVMTF9UUkVFIGlmIG5vCi0rICAgc2ltcGxpZmlj YXRpb24gY2FuIGJlIG1hZGUuICAqLwotKwotK3N0YXRpYyB0cmVlCi0rZm9sZF9idWlsdGluX2Jj b3B5ICh0cmVlIGFyZ2xpc3QsIGJvb2wgaWdub3JlKQotK3sKLSsgIHRyZWUgc3JjLCBkZXN0LCBz aXplLCBuZXdhcmdsaXN0OwotKwotKyAgaWYgKCF2YWxpZGF0ZV9hcmdsaXN0IChhcmdsaXN0LAot KwkJCSBQT0lOVEVSX1RZUEUsIFBPSU5URVJfVFlQRSwgSU5URUdFUl9UWVBFLCBWT0lEX1RZUEUp KQotKyAgICByZXR1cm4gMDsKLSsKLSsgIGlmICghIGlnbm9yZSkKLSsgICAgcmV0dXJuIDA7Ci0r Ci0rICBzcmMgPSBUUkVFX1ZBTFVFIChhcmdsaXN0KTsKLSsgIGRlc3QgPSBUUkVFX1ZBTFVFIChU UkVFX0NIQUlOIChhcmdsaXN0KSk7Ci0rICBzaXplID0gVFJFRV9WQUxVRSAoVFJFRV9DSEFJTiAo VFJFRV9DSEFJTiAoYXJnbGlzdCkpKTsKLSsKLSsgIC8qIE5ldyBhcmd1bWVudCBsaXN0IHRyYW5z Zm9ybWluZyBiY29weShwdHIgeCwgcHRyIHksIGludCB6KSB0bwotKyAgICAgbWVtbW92ZShwdHIg eSwgcHRyIHgsIHNpemVfdCB6KS4gICBUaGlzIGlzIGRvbmUgdGhpcyB3YXkKLSsgICAgIHNvIHRo YXQgaWYgaXQgaXNuJ3QgZXhwYW5kZWQgaW5saW5lLCB3ZSBmYWxsYmFjayB0bwotKyAgICAgY2Fs bGluZyBiY29weSBpbnN0ZWFkIG9mIG1lbW1vdmUuICAqLwotKwotKyAgbmV3YXJnbGlzdCA9IGJ1 aWxkX3RyZWVfbGlzdCAoTlVMTF9UUkVFLCBmb2xkX2NvbnZlcnQgKHNpemV0eXBlLCBzaXplKSk7 Ci0rICBuZXdhcmdsaXN0ID0gdHJlZV9jb25zIChOVUxMX1RSRUUsIHNyYywgbmV3YXJnbGlzdCk7 Ci0rICBuZXdhcmdsaXN0ID0gdHJlZV9jb25zIChOVUxMX1RSRUUsIGRlc3QsIG5ld2FyZ2xpc3Qp OwotKwotKyAgcmV0dXJuIGZvbGRfYnVpbHRpbl9tZW1vcnlfb3AgKG5ld2FyZ2xpc3QsIHZvaWRf dHlwZV9ub2RlLCB0cnVlLCAvKmVuZHA9Ki8zKTsKLSB9Ci0gCi0gLyogRm9sZCBmdW5jdGlvbiBj YWxsIHRvIGJ1aWx0aW4gc3RyY3B5LiAgSWYgTEVOIGlzIG5vdCBOVUxMLCBpdCByZXByZXNlbnRz Ci1AQCAtOTAzOSwxNCArOTIyNSwyMyBAQCBmb2xkX2J1aWx0aW5fMSAodHJlZSBmbmRlY2wsIHRy ZWUgYXJnbGlzCi0gICAgIGNhc2UgQlVJTFRfSU5fUEFSSVRZTEw6Ci0gICAgICAgcmV0dXJuIGZv bGRfYnVpbHRpbl9iaXRvcCAoZm5kZWNsLCBhcmdsaXN0KTsKLSAKLSsgICAgY2FzZSBCVUlMVF9J Tl9NRU1TRVQ6Ci0rICAgICAgcmV0dXJuIGZvbGRfYnVpbHRpbl9tZW1zZXQgKGFyZ2xpc3QsIHR5 cGUsIGlnbm9yZSk7Ci0rCi0gICAgIGNhc2UgQlVJTFRfSU5fTUVNQ1BZOgotLSAgICAgIHJldHVy biBmb2xkX2J1aWx0aW5fbWVtY3B5IChmbmRlY2wsIGFyZ2xpc3QpOwotKyAgICAgIHJldHVybiBm b2xkX2J1aWx0aW5fbWVtb3J5X29wIChhcmdsaXN0LCB0eXBlLCBpZ25vcmUsIC8qZW5kcD0qLzAp OwotIAotICAgICBjYXNlIEJVSUxUX0lOX01FTVBDUFk6Ci0tICAgICAgcmV0dXJuIGZvbGRfYnVp bHRpbl9tZW1wY3B5IChhcmdsaXN0LCB0eXBlLCAvKmVuZHA9Ki8xKTsKLSsgICAgICByZXR1cm4g Zm9sZF9idWlsdGluX21lbW9yeV9vcCAoYXJnbGlzdCwgdHlwZSwgaWdub3JlLCAvKmVuZHA9Ki8x KTsKLSAKLSAgICAgY2FzZSBCVUlMVF9JTl9NRU1NT1ZFOgotLSAgICAgIHJldHVybiBmb2xkX2J1 aWx0aW5fbWVtbW92ZSAoYXJnbGlzdCwgdHlwZSk7Ci0rICAgICAgcmV0dXJuIGZvbGRfYnVpbHRp bl9tZW1vcnlfb3AgKGFyZ2xpc3QsIHR5cGUsIGlnbm9yZSwgLyplbmRwPSovMyk7Ci0rCi0rICAg IGNhc2UgQlVJTFRfSU5fQlpFUk86Ci0rICAgICAgcmV0dXJuIGZvbGRfYnVpbHRpbl9iemVybyAo YXJnbGlzdCwgaWdub3JlKTsKLSsKLSsgICAgY2FzZSBCVUlMVF9JTl9CQ09QWToKLSsgICAgICBy ZXR1cm4gZm9sZF9idWlsdGluX2Jjb3B5IChhcmdsaXN0LCBpZ25vcmUpOwotIAotICAgICBjYXNl IEJVSUxUX0lOX1NJR05CSVQ6Ci0gICAgIGNhc2UgQlVJTFRfSU5fU0lHTkJJVEY6CgpkaWZmIC0t Z2l0IGEvZ2NjNDEtcHIyODY5MC5wYXRjaCBiL2djYzQxLXByMjg2OTAucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjFjMmNjMQotLS0gL2Rldi9udWxsCisrKyBiL2dj YzQxLXByMjg2OTAucGF0Y2gKQEAgLTAsMCArMSwxNTUgQEAKKzIwMDctMDYtMjYgIEpha3ViIEpl bGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgorCisJKiBkZWZhdWx0cy5oIChUQVJHRVRfSU5ERVhf T1BFUkFORF9GSVJTVCk6IERlZmluZS4KKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmggKFRBUkdF VF9JTkRFWF9PUEVSQU5EX0ZJUlNUKTogRGVmaW5lLgorCSogb3B0YWJzLmMgKGVtaXRfY21wX2Fu ZF9qdW1wX2luc25zKTogRG9uJ3QgY2FsbCBzd2FwX29wZXJhbmQKKwl0d2ljZS4KKwkqIHJ0bGFu YWwuYyAoY29tbXV0YXRpdmVfb3BlcmFuZF9wcmVjZWRlbmNlKTogT25seSBwcmVmZXIKKwlSRUdf UE9JTlRFUiBhbmQgTUVNX1BPSU5URVIgb3BlcmFuZHMgb3ZlciBSRUcgYW5kIE1FTSBvcGVyYW5k cworCWlmIFRBUkdFVF9JTkRFWF9PUEVSQU5EX0ZJUlNULgorCShzd2FwX2NvbW11dGF0aXZlX29w ZXJhbmRzX3ApOiBPbmx5IHNvcnQgb24gUkVHTk8gaWYKKwlUQVJHRVRfSU5ERVhfT1BFUkFORF9G SVJTVC4KKwkqIHRyZWUtc3NhLWFkZHJlc3MuYyAoZ2VuX2FkZHJfcnR4KTogT25seSB1c2Ugc2lt cGxpZnlfZ2VuX2JpbmFyeQorCWluc3RlYWQgb2YgZ2VuX3J0eF9QTFVTIGlmIFRBUkdFVF9JTkRF WF9PUEVSQU5EX0ZJUlNULgorCisyMDA3LTA2LTIwICBQZXRlciBCZXJnbmVyICA8YmVyZ25lckB2 bmV0LmlibS5jb20+CisKKwlQUiBtaWRkbGUtZW5kLzI4NjkwCisJKiBvcHRhYnMuYyAoZW1pdF9j bXBfYW5kX2p1bXBfaW5zbnMpOiBBbGxvdyBFUSBjb21wYXJlcy4KKwkqIHJ0bGFuYWwuYyAoY29t bXV0YXRpdmVfb3BlcmFuZF9wcmVjZWRlbmNlKTogUHJlZmVyIGJvdGggUkVHX1BPSU5URVIKKwlh bmQgTUVNX1BPSU5URVIgb3BlcmFuZHMgb3ZlciBSRUcgYW5kIE1FTSBvcGVyYW5kcy4KKwkoc3dh cF9jb21tdXRhdGl2ZV9vcGVyYW5kc19wKTogSW4gY2FzZSBvZiBhIHRpZSwgc29ydCBvbiBSRUdO Ty4KKwkqIHRyZWUtc3NhLWFkZHJlc3MuYyAoZ2VuX2FkZHJfcnR4KTogVXNlIHNpbXBsaWZ5X2dl bl9iaW5hcnkKKwlpbnN0ZWFkIG9mIGdlbl9ydHhfUExVUy4KKworLS0tIGdjYy9kZWZhdWx0cy5o LmpqCTIwMDctMDItMjAgMjI6Mzk6MTIuMDAwMDAwMDAwICswMTAwCisrKysgZ2NjL2RlZmF1bHRz LmgJMjAwNy0wNi0yNiAwMDozMjoxNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC03ODUsNiArNzg1LDEw IEBAIFNvZnR3YXJlIEZvdW5kYXRpb24sIDUxIEZyYW5rbGluIFN0cmVldCwKKyAjZGVmaW5lIFRB UkdFVF9DOTlfRlVOQ1RJT05TIDAKKyAjZW5kaWYKKyAKKysjaWZuZGVmIFRBUkdFVF9JTkRFWF9P UEVSQU5EX0ZJUlNUCisrI2RlZmluZSBUQVJHRVRfSU5ERVhfT1BFUkFORF9GSVJTVCAwCisrI2Vu ZGlmCisrCisgLyogSW5kaWNhdGUgdGhhdCBDTFogYW5kIENUWiBhcmUgdW5kZWZpbmVkIGF0IHpl cm8uICAqLworICNpZm5kZWYgQ0xaX0RFRklORURfVkFMVUVfQVRfWkVSTworICNkZWZpbmUgQ0xa X0RFRklORURfVkFMVUVfQVRfWkVSTyhNT0RFLCBWQUxVRSkgIDAKKy0tLSBnY2MvY29uZmlnL3Jz NjAwMC9yczYwMDAuaC5qagkyMDA3LTAyLTIwIDIyOjM5OjAwLjAwMDAwMDAwMCArMDEwMAorKysr IGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5oCTIwMDctMDYtMjYgMDA6MzM6MzIuMDAwMDAwMDAw ICswMjAwCitAQCAtNTcsNiArNTcsOCBAQAorICNkZWZpbmUgUFBDNDA1X0VSUkFUVU03NyAwCisg I2VuZGlmCisgCisrI2RlZmluZSBUQVJHRVRfSU5ERVhfT1BFUkFORF9GSVJTVCAocnM2MDAwX2Nw dSA9PSBQUk9DRVNTT1JfUE9XRVI2KQorKworIC8qIENvbW1vbiBBU00gZGVmaW5pdGlvbnMgdXNl ZCBieSBBU01fU1BFQyBhbW9uZyB0aGUgdmFyaW91cyB0YXJnZXRzCisgICAgZm9yIGhhbmRsaW5n IC1tY3B1PXh4eCBzd2l0Y2hlcy4gICovCisgI2RlZmluZSBBU01fQ1BVX1NQRUMgXAorLS0tIGdj Yy9vcHRhYnMuYy5qagkyMDA3LTAyLTIwIDIyOjM5OjEyLjAwMDAwMDAwMCArMDEwMAorKysrIGdj Yy9vcHRhYnMuYwkyMDA3LTA2LTI2IDAwOjMwOjI3LjAwMDAwMDAwMCArMDIwMAorQEAgLTM2NzMs MTIgKzM2NzMsMTYgQEAgZW1pdF9jbXBfYW5kX2p1bXBfaW5zbnMgKHJ0eCB4LCBydHggeSwgZQor ICAgLyogU3dhcCBvcGVyYW5kcyBhbmQgY29uZGl0aW9uIHRvIGVuc3VyZSBjYW5vbmljYWwgUlRM LiAgKi8KKyAgIGlmIChzd2FwX2NvbW11dGF0aXZlX29wZXJhbmRzX3AgKHgsIHkpKQorICAgICB7 CistICAgICAgLyogSWYgd2UncmUgbm90IGVtaXR0aW5nIGEgYnJhbmNoLCB0aGlzIG1lYW5zIHNv bWUgY2FsbGVyCistICAgICAgICAgaXMgb3V0IG9mIHN5bmMuICAqLworLSAgICAgIGdjY19hc3Nl cnQgKGxhYmVsKTsKKysgICAgICBlbnVtIHJ0eF9jb2RlIHN3YXBwZWRfY29tcGFyaXNvbiA9IHN3 YXBfY29uZGl0aW9uIChjb21wYXJpc29uKTsKKysKKysgICAgICAvKiBJZiB3ZSdyZSBub3QgZW1p dHRpbmcgYSBicmFuY2gsIGNhbGxlcnMgYXJlIHJlcXVpcmVkIHRvIHBhc3MKKysJIG9wZXJhbmRz IGluIGFuIG9yZGVyIGNvbmZvcm1pbmcgdG8gY2Fub25pY2FsIFJUTC4gIFdlIHJlbGF4IHRoaXMK KysJIGZvciBjb21tdXRhdGl2ZSBjb21wYXJzaW9ucyBzbyBjYWxsZXJzIHVzaW5nIEVRIGRvbid0 IG5lZWQgdG8gZG8KKysJIHN3YXBwaW5nIGJ5IGhhbmQuICAqLworKyAgICAgIGdjY19hc3NlcnQg KGxhYmVsIHx8IHN3YXBwZWRfY29tcGFyaXNvbiA9PSBjb21wYXJpc29uKTsKKyAKKyAgICAgICBv cDAgPSB5LCBvcDEgPSB4OworLSAgICAgIGNvbXBhcmlzb24gPSBzd2FwX2NvbmRpdGlvbiAoY29t cGFyaXNvbik7CisrICAgICAgY29tcGFyaXNvbiA9IHN3YXBwZWRfY29tcGFyaXNvbjsKKyAgICAg fQorIAorICNpZmRlZiBIQVZFX2NjMAorLS0tIGdjYy9ydGxhbmFsLmMuamoJMjAwNy0wMi0yMCAy MjozOToxMi4wMDAwMDAwMDAgKzAxMDAKKysrKyBnY2MvcnRsYW5hbC5jCTIwMDctMDYtMjYgMDA6 Mjg6NTYuMDAwMDAwMDAwICswMjAwCitAQCAtMjg5MCw5ICsyODkwLDkgQEAgY29tbXV0YXRpdmVf b3BlcmFuZF9wcmVjZWRlbmNlIChydHggb3ApCisgICAKKyAgIC8qIENvbnN0YW50cyBhbHdheXMg Y29tZSB0aGUgc2Vjb25kIG9wZXJhbmQuICBQcmVmZXIgIm5pY2UiIGNvbnN0YW50cy4gICovCisg ICBpZiAoY29kZSA9PSBDT05TVF9JTlQpCistICAgIHJldHVybiAtNzsKKysgICAgcmV0dXJuIC0x MDsKKyAgIGlmIChjb2RlID09IENPTlNUX0RPVUJMRSkKKy0gICAgcmV0dXJuIC02OworKyAgICBy ZXR1cm4gLTk7CisgICBvcCA9IGF2b2lkX2NvbnN0YW50X3Bvb2xfcmVmZXJlbmNlIChvcCk7Cisg ICBjb2RlID0gR0VUX0NPREUgKG9wKTsKKyAKK0BAIC0yOTAwLDI2ICsyOTAwLDMxIEBAIGNvbW11 dGF0aXZlX29wZXJhbmRfcHJlY2VkZW5jZSAocnR4IG9wKQorICAgICB7CisgICAgIGNhc2UgUlRY X0NPTlNUX09CSjoKKyAgICAgICBpZiAoY29kZSA9PSBDT05TVF9JTlQpCistICAgICAgICByZXR1 cm4gLTU7CisrCXJldHVybiAtODsKKyAgICAgICBpZiAoY29kZSA9PSBDT05TVF9ET1VCTEUpCist ICAgICAgICByZXR1cm4gLTQ7CistICAgICAgcmV0dXJuIC0zOworKwlyZXR1cm4gLTc7CisrICAg ICAgcmV0dXJuIC02OworIAorICAgICBjYXNlIFJUWF9FWFRSQToKKyAgICAgICAvKiBTVUJSRUdz IG9mIG9iamVjdHMgc2hvdWxkIGNvbWUgc2Vjb25kLiAgKi8KKyAgICAgICBpZiAoY29kZSA9PSBT VUJSRUcgJiYgT0JKRUNUX1AgKFNVQlJFR19SRUcgKG9wKSkpCistICAgICAgICByZXR1cm4gLTI7 CisrCXJldHVybiAtNTsKKyAKKyAgICAgICBpZiAoIUNPTlNUQU5UX1AgKG9wKSkKKyAgICAgICAg IHJldHVybiAwOworICAgICAgIGVsc2UKKyAJLyogQXMgZm9yIFJUWF9DT05TVF9PQkouICAqLwor LQlyZXR1cm4gLTM7CisrCXJldHVybiAtNjsKKyAKKyAgICAgY2FzZSBSVFhfT0JKOgorICAgICAg IC8qIENvbXBsZXggZXhwcmVzc2lvbnMgc2hvdWxkIGJlIHRoZSBmaXJzdCwgc28gZGVjcmVhc2Ug cHJpb3JpdHkKKyAgICAgICAgICBvZiBvYmplY3RzLiAgKi8KKy0gICAgICByZXR1cm4gLTE7Cisr ICAgICAgaWYgKCFUQVJHRVRfSU5ERVhfT1BFUkFORF9GSVJTVCkKKysJcmV0dXJuIC0xOworKyAg ICAgIGlmIChSRUdfUCAob3ApKQorKwlyZXR1cm4gKFJFR19QT0lOVEVSIChvcCkpID8gLTEgOiAt MzsKKysgICAgICBlbHNlCisrCXJldHVybiAoTUVNX1AgKG9wKSAmJiBNRU1fUE9JTlRFUiAob3Ap KSA/IC0yIDogLTQ7CisgCisgICAgIGNhc2UgUlRYX0NPTU1fQVJJVEg6CisgICAgICAgLyogUHJl ZmVyIG9wZXJhbmRzIHRoYXQgYXJlIHRoZW1zZWx2ZXMgY29tbXV0YXRpdmUgdG8gYmUgZmlyc3Qu CitAQCAtMjk0OSw4ICsyOTU0LDE2IEBAIGNvbW11dGF0aXZlX29wZXJhbmRfcHJlY2VkZW5jZSAo cnR4IG9wKQorIGludAorIHN3YXBfY29tbXV0YXRpdmVfb3BlcmFuZHNfcCAocnR4IHgsIHJ0eCB5 KQorIHsKKy0gIHJldHVybiAoY29tbXV0YXRpdmVfb3BlcmFuZF9wcmVjZWRlbmNlICh4KQorLQkg IDwgY29tbXV0YXRpdmVfb3BlcmFuZF9wcmVjZWRlbmNlICh5KSk7CisrICBpbnQgcmVzdWx0ID0g KGNvbW11dGF0aXZlX29wZXJhbmRfcHJlY2VkZW5jZSAoeCkKKysJCS0gY29tbXV0YXRpdmVfb3Bl cmFuZF9wcmVjZWRlbmNlICh5KSk7CisrICBpZiAoIVRBUkdFVF9JTkRFWF9PUEVSQU5EX0ZJUlNU IHx8IHJlc3VsdCkKKysgICAgcmV0dXJuIHJlc3VsdCA8IDA7CisrCisrICAvKiBHcm91cCB0b2dl dGhlciBlcXVhbCBSRUdzIHRvIGRvIG1vcmUgc2ltcGxpZmljYXRpb24uICAqLworKyAgaWYgKFJF R19QICh4KSAmJiBSRUdfUCAoeSkpCisrICAgIHJldHVybiBSRUdOTyAoeCkgPiBSRUdOTyAoeSk7 CisrCisrICByZXR1cm4gMDsKKyB9CisgCisgLyogUmV0dXJuIDEgaWYgWCBpcyBhbiBhdXRvaW5j cmVtZW50IHNpZGUgZWZmZWN0IGFuZCB0aGUgcmVnaXN0ZXIgaXMKKy0tLSBnY2MvdHJlZS1zc2Et YWRkcmVzcy5jLmpqCTIwMDctMDItMjAgMjI6Mzk6MTIuMDAwMDAwMDAwICswMTAwCisrKysgZ2Nj L3RyZWUtc3NhLWFkZHJlc3MuYwkyMDA3LTA2LTI2IDAwOjI5OjQ5LjAwMDAwMDAwMCArMDIwMAor QEAgLTEyNCw3ICsxMjQsOSBAQCBnZW5fYWRkcl9ydHggKHJ0eCBzeW1ib2wsIHJ0eCBiYXNlLCBy dHggCisgICBpZiAoYmFzZSkKKyAgICAgeworICAgICAgIGlmICgqYWRkcikKKy0JKmFkZHIgPSBn ZW5fcnR4X1BMVVMgKFBtb2RlLCAqYWRkciwgYmFzZSk7CisrCSphZGRyID0gKFRBUkdFVF9JTkRF WF9PUEVSQU5EX0ZJUlNUCisrCQkgPyBzaW1wbGlmeV9nZW5fYmluYXJ5IChQTFVTLCBQbW9kZSwg YmFzZSwgKmFkZHIpCisrCQkgOiBnZW5fcnR4X1BMVVMgKFBtb2RlLCAqYWRkciwgYmFzZSkpOwor ICAgICAgIGVsc2UKKyAJKmFkZHIgPSBiYXNlOworICAgICB9CgpkaWZmIC0tZ2l0IGEvZ2NjNDEt cHIyODcwOS5wYXRjaCBiL2djYzQxLXByMjg3MDkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDMzYzllZWYuLjAwMDAwMDAKLS0tIGEvZ2NjNDEtcHIyODcwOS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDg0ICswLDAgQEAKLTIwMDYtMDgtMTYgIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgotCi0JUFIgcHJlcHJvY2Vzc29yLzI4NzA5Ci0JKiBtYWNyby5jIChw YXN0ZV90b2tlbnMpOiBEbyBlcnJvciByZXBvcnRpbmcgaGVyZSwgdXNlIEJVRiB3aXRoIHRoZQot CXNwZWxsZWQgTEhTIHRva2VuIGFzIG9wcG9zZWQgdG8gc3BlbGxpbmcgaXQgYWdhaW4uCi0JKHBh c3RlX2FsbF90b2tlbnMpOiBEb24ndCByZXBvcnQgZXJyb3JzIGhlcmUsIGp1c3QgYnJlYWsgb24g ZmFpbHVyZS4KLQotCSogZ2NjLmRnL2NwcC9wYXN0ZTE0LmM6IE5ldyB0ZXN0LgotCi0tLS0gbGli Y3BwL21hY3JvLmMuamoJMjAwNi0wNi0wOSAyMzowNzo1NC4wMDAwMDAwMDAgKzAyMDAKLSsrKyBs aWJjcHAvbWFjcm8uYwkyMDA2LTA4LTE2IDE3OjMwOjE3LjAwMDAwMDAwMCArMDIwMAotQEAgLTQz MCwxNSArNDMwLDE0IEBAIHN0cmluZ2lmeV9hcmcgKGNwcF9yZWFkZXIgKnBmaWxlLCBtYWNyb18K LSBzdGF0aWMgYm9vbAotIHBhc3RlX3Rva2VucyAoY3BwX3JlYWRlciAqcGZpbGUsIGNvbnN0IGNw cF90b2tlbiAqKnBsaHMsIGNvbnN0IGNwcF90b2tlbiAqcmhzKQotIHsKLS0gIHVuc2lnbmVkIGNo YXIgKmJ1ZiwgKmVuZDsKLSsgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgKmVuZCwgKmxoc2VuZDsKLSAg IGNvbnN0IGNwcF90b2tlbiAqbGhzOwotICAgdW5zaWduZWQgaW50IGxlbjsKLS0gIGJvb2wgdmFs aWQ7Ci0gCi0gICBsaHMgPSAqcGxoczsKLSAgIGxlbiA9IGNwcF90b2tlbl9sZW4gKGxocykgKyBj cHBfdG9rZW5fbGVuIChyaHMpICsgMTsKLSAgIGJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIGFsbG9j YSAobGVuKTsKLS0gIGVuZCA9IGNwcF9zcGVsbF90b2tlbiAocGZpbGUsIGxocywgYnVmLCBmYWxz ZSk7Ci0rICBlbmQgPSBsaHNlbmQgPSBjcHBfc3BlbGxfdG9rZW4gKHBmaWxlLCBsaHMsIGJ1Ziwg ZmFsc2UpOwotIAotICAgLyogQXZvaWQgY29tbWVudCBoZWFkZXJzLCBzaW5jZSB0aGV5IGFyZSBz dGlsbCBwcm9jZXNzZWQgaW4gc3RhZ2UgMy4KLSAgICAgIEl0IGlzIHNpbXBsZXIgdG8gaW5zZXJ0 IGEgc3BhY2UgaGVyZSwgcmF0aGVyIHRoYW4gbW9kaWZ5aW5nIHRoZQotQEAgLTQ1NSwxMCArNDU0 LDIyIEBAIHBhc3RlX3Rva2VucyAoY3BwX3JlYWRlciAqcGZpbGUsIGNvbnN0IGMKLSAgIC8qIFNl dCBwZmlsZS0+Y3VyX3Rva2VuIGFzIHJlcXVpcmVkIGJ5IF9jcHBfbGV4X2RpcmVjdC4gICovCi0g ICBwZmlsZS0+Y3VyX3Rva2VuID0gX2NwcF90ZW1wX3Rva2VuIChwZmlsZSk7Ci0gICAqcGxocyA9 IF9jcHBfbGV4X2RpcmVjdCAocGZpbGUpOwotLSAgdmFsaWQgPSBwZmlsZS0+YnVmZmVyLT5jdXIg PT0gcGZpbGUtPmJ1ZmZlci0+cmxpbWl0OwotLSAgX2NwcF9wb3BfYnVmZmVyIChwZmlsZSk7Ci0r ICBpZiAocGZpbGUtPmJ1ZmZlci0+Y3VyICE9IHBmaWxlLT5idWZmZXItPnJsaW1pdCkKLSsgICAg ewotKyAgICAgIF9jcHBfcG9wX2J1ZmZlciAocGZpbGUpOwotKyAgICAgIF9jcHBfYmFja3VwX3Rv a2VucyAocGZpbGUsIDEpOwotKyAgICAgICpsaHNlbmQgPSAnXDAnOwotIAotLSAgcmV0dXJuIHZh bGlkOwotKyAgICAgIC8qIE1hbmRhdG9yeSBlcnJvciBmb3IgYWxsIGFwYXJ0IGZyb20gYXNzZW1i bGVyLiAgKi8KLSsgICAgICBpZiAoQ1BQX09QVElPTiAocGZpbGUsIGxhbmcpICE9IENMS19BU00p Ci0rCWNwcF9lcnJvciAocGZpbGUsIENQUF9ETF9FUlJPUiwKLSsJICJwYXN0aW5nIFwiJXNcIiBh bmQgXCIlc1wiIGRvZXMgbm90IGdpdmUgYSB2YWxpZCBwcmVwcm9jZXNzaW5nIHRva2VuIiwKLSsJ CSAgIGJ1ZiwgY3BwX3Rva2VuX2FzX3RleHQgKHBmaWxlLCByaHMpKTsKLSsgICAgICByZXR1cm4g ZmFsc2U7Ci0rICAgIH0KLSsKLSsgIF9jcHBfcG9wX2J1ZmZlciAocGZpbGUpOwotKyAgcmV0dXJu IHRydWU7Ci0gfQotIAotIC8qIEhhbmRsZXMgYW4gYXJiaXRyYXJpbHkgbG9uZyBzZXF1ZW5jZSBv ZiAjIyBvcGVyYXRvcnMsIHdpdGggaW5pdGlhbAotQEAgLTQ5MCwxNyArNTAxLDcgQEAgcGFzdGVf YWxsX3Rva2VucyAoY3BwX3JlYWRlciAqcGZpbGUsIGNvbgotIAlhYm9ydCAoKTsKLSAKLSAgICAg ICBpZiAoIXBhc3RlX3Rva2VucyAocGZpbGUsICZsaHMsIHJocykpCi0tCXsKLS0JICBfY3BwX2Jh Y2t1cF90b2tlbnMgKHBmaWxlLCAxKTsKLS0KLS0JICAvKiBNYW5kYXRvcnkgZXJyb3IgZm9yIGFs bCBhcGFydCBmcm9tIGFzc2VtYmxlci4gICovCi0tCSAgaWYgKENQUF9PUFRJT04gKHBmaWxlLCBs YW5nKSAhPSBDTEtfQVNNKQotLQkgICAgY3BwX2Vycm9yIChwZmlsZSwgQ1BQX0RMX0VSUk9SLAot LQkgInBhc3RpbmcgXCIlc1wiIGFuZCBcIiVzXCIgZG9lcyBub3QgZ2l2ZSBhIHZhbGlkIHByZXBy b2Nlc3NpbmcgdG9rZW4iLAotLQkJICAgICAgIGNwcF90b2tlbl9hc190ZXh0IChwZmlsZSwgbGhz KSwKLS0JCSAgICAgICBjcHBfdG9rZW5fYXNfdGV4dCAocGZpbGUsIHJocykpOwotLQkgIGJyZWFr OwotLQl9Ci0rCWJyZWFrOwotICAgICB9Ci0gICB3aGlsZSAocmhzLT5mbGFncyAmIFBBU1RFX0xF RlQpOwotIAotLS0tIGdjYy90ZXN0c3VpdGUvZ2NjLmRnL2NwcC9wYXN0ZTE0LmMuamoJMjAwNi0w OC0xNiAxNjo1MTo0NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9j cHAvcGFzdGUxNC5jCTIwMDYtMDgtMTYgMTY6NTM6MzAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCww ICsxLDcgQEAKLSsvKiBQUiBwcmVwcm9jZXNzb3IvMjg3MDkgKi8KLSsvKiB7IGRnLWRvIHByZXBy b2Nlc3MgfSAqLwotKwotKyNkZWZpbmUgZm9vIC0gIyMgPj4KLStmb28JCS8qIHsgZGctZXJyb3Ig InBhc3RpbmcgXCItXCIgYW5kIFwiPj5cIiIgfSAqLwotKyNkZWZpbmUgYmFyID0gIyMgPT0KLSti YXIJCS8qIHsgZGctZXJyb3IgInBhc3RpbmcgXCI9XCIgYW5kIFwiPT1cIiIgfSAqLwoKZGlmZiAt LWdpdCBhL2djYzQxLXByMjkwNTkucGF0Y2ggYi9nY2M0MS1wcjI5MDU5LnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOWRiZDhhLi4wMDAwMDAwCi0tLSBhL2djYzQxLXByMjkw NTkucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw3NiArMCwwIEBACi0yMDA2LTA5LTE2ICBBbmRy ZXcgUGluc2tpICA8cGluc2tpYUBwaHlzaWNzLnVjLmVkdT4KLQotCVBSIHRyZWUtb3B0LzI5MDU5 Ci0JKiB0cmVlLXNzYS1wcm9wYWdhdGUuYyAoc2V0X3Jocyk6IFJlamVjdCBNT0RJRllfRVhQUiBy aWdodAotCWF3YXkgZm9yIHRoZSBleHByIGFyZ3VtZW50LgotCi0JKiBnY2MuYy10b3J0dXJlL2Nv bXBpbGUvc3RyY3B5LTEuYzogTmV3IHRlc3QuCi0JKiBnY2MuYy10b3J0dXJlL2NvbXBpbGUvc3Ry Y3B5LTIuYzogTmV3IHRlc3QuCi0JKiBnY2MuYy10b3J0dXJlL2NvbXBpbGUvbWVtY3B5LTEuYzog TmV3IHRlc3QuCi0JKiBnY2MuYy10b3J0dXJlL2NvbXBpbGUvbWVtY3B5LTIuYzogTmV3IHRlc3Qu Ci0KLS0tLSBnY2MvdHJlZS1zc2EtcHJvcGFnYXRlLmMJKHJldmlzaW9uIDExNjk5NikKLSsrKyBn Y2MvdHJlZS1zc2EtcHJvcGFnYXRlLmMJKHJldmlzaW9uIDExNjk5NykKLUBAIC01ODgsNyArNTg4 LDggQEAgc2V0X3JocyAodHJlZSAqc3RtdF9wLCB0cmVlIGV4cHIpCi0gCSAgJiYgIWlzX2dpbXBs ZV92YWwgKFRSRUVfT1BFUkFORCAoVFJFRV9PUEVSQU5EIChleHByLCAwKSwgMSkpKQotIAlyZXR1 cm4gZmFsc2U7Ci0gICAgIH0KLS0gIGVsc2UgaWYgKGNvZGUgPT0gQ09NUE9VTkRfRVhQUikKLSsg IGVsc2UgaWYgKGNvZGUgPT0gQ09NUE9VTkRfRVhQUgotKwkgICB8fCBjb2RlID09IE1PRElGWV9F WFBSKQotICAgICByZXR1cm4gZmFsc2U7Ci0gCi0gICBzd2l0Y2ggKFRSRUVfQ09ERSAoc3RtdCkp Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2NvbXBpbGUvc3RyY3B5LTEuYwkocmV2 aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvY29tcGlsZS9zdHJjcHkt MS5jCShyZXZpc2lvbiAxMTY5OTcpCi1AQCAtMCwwICsxLDE1IEBACi0rCi0rCi0rdHlwZWRlZiBz dHJ1Y3QKLSt7Ci0rICBjaGFyIHN0clsyMF07Ci0rfVNUQUNLOwotK1NUQUNLIHN0YWNrWzE1XTsK LStpbnQgbGV2ZWw7Ci0rcmV6ZXJvICgpCi0rewotKyAgbGV2ZWwgPSAwOwotKyAgX19idWlsdGlu X3N0cmNweSAoc3RhY2tbbGV2ZWxdLnN0ciwgIiIpOwotK30KLSsKLSsKLS0tLSBnY2MvdGVzdHN1 aXRlL2djYy5jLXRvcnR1cmUvY29tcGlsZS9zdHJjcHktMi5jCShyZXZpc2lvbiAwKQotKysrIGdj Yy90ZXN0c3VpdGUvZ2NjLmMtdG9ydHVyZS9jb21waWxlL3N0cmNweS0yLmMJKHJldmlzaW9uIDEx Njk5NykKLUBAIC0wLDAgKzEsNyBAQAotK2NoYXIgd3Jrc3RyX3VuWzI3MF07Ci0rZXh0ZXJuIHZv aWQKLStMb2FkVXNlckFscGggKGNoYXIgKnMpCi0rewotKyAgcyA9ICZ3cmtzdHJfdW5bMF07Ci0r ICBfX2J1aWx0aW5fc3RyY3B5IChzLCAiIik7Ci0rfTsKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5j LXRvcnR1cmUvY29tcGlsZS9tZW1jcHktMS5jCShyZXZpc2lvbiAwKQotKysrIGdjYy90ZXN0c3Vp dGUvZ2NjLmMtdG9ydHVyZS9jb21waWxlL21lbWNweS0xLmMJKHJldmlzaW9uIDExNjk5NykKLUBA IC0wLDAgKzEsOSBAQAotK3N0YXRpYyBjb25zdCBjaGFyIE9nZ0ZMQUNfX01BUFBJTkdfVkVSU0lP Tl9NQUpPUiA9IDE7Ci0rdm9pZCBmKHZvaWQpCi0rewotKyAgY2hhciBzeW50aGV0aWNfZmlyc3Rf cGFja2V0X2JvZHlbMTBdOwotKyAgY2hhciAqYiA9ICZzeW50aGV0aWNfZmlyc3RfcGFja2V0X2Jv ZHlbNF07Ci0rICBfX2J1aWx0aW5fbWVtY3B5IChiLCAmT2dnRkxBQ19fTUFQUElOR19WRVJTSU9O X01BSk9SLCAoMXUpKTsKLSt9Ci0rCi0rCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJl L2NvbXBpbGUvbWVtY3B5LTIuYwkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5j LXRvcnR1cmUvY29tcGlsZS9tZW1jcHktMi5jCShyZXZpc2lvbiAxMTY5OTcpCi1AQCAtMCwwICsx LDEwIEBACi0rc3RhdGljIGNvbnN0IGNoYXIgT2dnRkxBQ19fTUFQUElOR19WRVJTSU9OX01BSk9S ID0gMTsKLSt2b2lkIGYodm9pZCkKLSt7Ci0rICBjaGFyIHN5bnRoZXRpY19maXJzdF9wYWNrZXRf Ym9keVsxMF07Ci0rICBjaGFyICpiID0gc3ludGhldGljX2ZpcnN0X3BhY2tldF9ib2R5OwotKyAg Yis9NHU7Ci0rICBfX2J1aWx0aW5fbWVtY3B5IChiLCAmT2dnRkxBQ19fTUFQUElOR19WRVJTSU9O X01BSk9SLCAoMXUpKTsKLSt9Ci0rCi0rCgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcHIyOTI3Mi5wYXRj aCBiL2djYzQxLXByMjkyNzIucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUw ZmRmOTkuLjAwMDAwMDAKLS0tIGEvZ2NjNDEtcHIyOTI3Mi5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDExMCArMCwwIEBACi0yMDA2LTA5LTI4ICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0 LmNvbT4KLQotCVBSIG1pZGRsZS1lbmQvMjkyNzIKLQkqIGJ1aWx0aW5zLmMgKGZvbGRfYnVpbHRp bl9tZW1zZXQsIGZvbGRfYnVpbHRpbl9tZW1vcnlfb3ApOiBSZXN0cmljdAotCXNpbmdsZSBlbnRy eSBvcHRpbWl6YXRpb24gdG8gdmFyaWFibGVzIGFuZCBjb21wb25lbnRzIHRoZXJlb2YuCi0KLQkq IGdjYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA2MDkzMC0xLmM6IE5ldyB0ZXN0LgotCi0tLS0gZ2Nj L2J1aWx0aW5zLmMuamoJMjAwNi0wOS0yMiAxMDoyOTo1NS4wMDAwMDAwMDAgKzAyMDAKLSsrKyBn Y2MvYnVpbHRpbnMuYwkyMDA2LTA5LTI4IDIwOjMxOjMwLjAwMDAwMDAwMCArMDIwMAotQEAgLTc5 MDUsNyArNzkwNSw3IEBAIGZvbGRfYnVpbHRpbl9leHBvbmVudCAodHJlZSBmbmRlY2wsIHRyZWUK LSBzdGF0aWMgdHJlZQotIGZvbGRfYnVpbHRpbl9tZW1zZXQgKHRyZWUgYXJnbGlzdCwgdHJlZSB0 eXBlLCBib29sIGlnbm9yZSkKLSB7Ci0tICB0cmVlIGRlc3QsIGMsIGxlbiwgdmFyLCByZXQ7Ci0r ICB0cmVlIGRlc3QsIGMsIGxlbiwgdmFyLCByZXQsIGlubmVyOwotICAgdW5zaWduZWQgSE9TVF9X SURFX0lOVCBsZW5ndGgsIGN2YWw7Ci0gCi0gICBpZiAoIXZhbGlkYXRlX2FyZ2xpc3QgKGFyZ2xp c3QsCi1AQCAtNzkzOSw2ICs3OTM5LDE1IEBAIGZvbGRfYnVpbHRpbl9tZW1zZXQgKHRyZWUgYXJn bGlzdCwgdHJlZSAKLSAgICAgICAmJiAhUE9JTlRFUl9UWVBFX1AgKFRSRUVfVFlQRSAodmFyKSkp Ci0gICAgIHJldHVybiAwOwotIAotKyAgLyogSWYgdmFyIGlzIGEgVkFSX0RFQ0wgb3IgYSBjb21w b25lbnQgdGhlcmVvZiwKLSsgICAgIHdlIGNhbiB1c2UgaXRzIGFsaWFzIHNldCwgb3RoZXJ3aXNl IHdlJ2QgbmVlZCB0byBtYWtlCi0rICAgICBzdXJlIHdlIGdvIHRocm91Z2ggYWxpYXMgc2V0IDAu ICAqLwotKyAgaW5uZXIgPSB2YXI7Ci0rICB3aGlsZSAoaGFuZGxlZF9jb21wb25lbnRfcCAoaW5u ZXIpKQotKyAgICBpbm5lciA9IFRSRUVfT1BFUkFORCAoaW5uZXIsIDApOwotKyAgaWYgKCEgU1NB X1ZBUl9QIChpbm5lcikpCi0rICAgIHJldHVybiAwOwotKwotICAgbGVuZ3RoID0gdHJlZV9sb3df Y3N0IChsZW4sIDEpOwotICAgaWYgKEdFVF9NT0RFX1NJWkUgKFRZUEVfTU9ERSAoVFJFRV9UWVBF ICh2YXIpKSkgIT0gbGVuZ3RoCi0gICAgICAgfHwgZ2V0X3BvaW50ZXJfYWxpZ25tZW50IChkZXN0 LCBCSUdHRVNUX0FMSUdOTUVOVCkgLyBCSVRTX1BFUl9VTklUCi1AQCAtODAwOSw3ICs4MDE4LDcg QEAgZm9sZF9idWlsdGluX2J6ZXJvICh0cmVlIGFyZ2xpc3QsIGJvb2wgaQotIHN0YXRpYyB0cmVl Ci0gZm9sZF9idWlsdGluX21lbW9yeV9vcCAodHJlZSBhcmdsaXN0LCB0cmVlIHR5cGUsIGJvb2wg aWdub3JlLCBpbnQgZW5kcCkKLSB7Ci0tICB0cmVlIGRlc3QsIHNyYywgbGVuLCBkZXN0dmFyLCBz cmN2YXIsIGV4cHI7Ci0rICB0cmVlIGRlc3QsIHNyYywgbGVuLCBkZXN0dmFyLCBzcmN2YXIsIGV4 cHIsIGlubmVyOwotICAgdW5zaWduZWQgSE9TVF9XSURFX0lOVCBsZW5ndGg7Ci0gCi0gICBpZiAo ISB2YWxpZGF0ZV9hcmdsaXN0IChhcmdsaXN0LAotQEAgLTgwNTAsNiArODA1OSwxNSBAQCBmb2xk X2J1aWx0aW5fbWVtb3J5X29wICh0cmVlIGFyZ2xpc3QsIHRyCi0gCSAgJiYgIVNDQUxBUl9GTE9B VF9UWVBFX1AgKFRSRUVfVFlQRSAoZGVzdHZhcikpKQotIAlyZXR1cm4gMDsKLSAKLSsgICAgICAv KiBJZiBkZXN0dmFyIGlzIGEgVkFSX0RFQ0wgb3IgYSBjb21wb25lbnQgdGhlcmVvZiwKLSsJIHdl IGNhbiB1c2UgaXRzIGFsaWFzIHNldCwgb3RoZXJ3aXNlIHdlJ2QgbmVlZCB0byBtYWtlCi0rCSBz dXJlIHdlIGdvIHRocm91Z2ggYWxpYXMgc2V0IDAuICAqLwotKyAgICAgIGlubmVyID0gZGVzdHZh cjsKLSsgICAgICB3aGlsZSAoaGFuZGxlZF9jb21wb25lbnRfcCAoaW5uZXIpKQotKwlpbm5lciA9 IFRSRUVfT1BFUkFORCAoaW5uZXIsIDApOwotKyAgICAgIGlmICghIFNTQV9WQVJfUCAoaW5uZXIp KQotKwlyZXR1cm4gMDsKLSsKLSAgICAgICBzcmN2YXIgPSBzcmM7Ci0gICAgICAgU1RSSVBfTk9Q UyAoc3JjdmFyKTsKLSAgICAgICBpZiAoVFJFRV9DT0RFIChzcmN2YXIpICE9IEFERFJfRVhQUikK LUBAIC04MDY0LDYgKzgwODIsMTUgQEAgZm9sZF9idWlsdGluX21lbW9yeV9vcCAodHJlZSBhcmds aXN0LCB0cgotIAkgICYmICFTQ0FMQVJfRkxPQVRfVFlQRV9QIChUUkVFX1RZUEUgKHNyY3Zhcikp KQotIAlyZXR1cm4gMDsKLSAKLSsgICAgICAvKiBJZiBzcmN2YXIgaXMgYSBWQVJfREVDTCBvciBh IGNvbXBvbmVudCB0aGVyZW9mLAotKwkgd2UgY2FuIHVzZSBpdHMgYWxpYXMgc2V0LCBvdGhlcndp c2Ugd2UnZCBuZWVkIHRvIG1ha2UKLSsJIHN1cmUgd2UgZ28gdGhyb3VnaCBhbGlhcyBzZXQgMC4g ICovCi0rICAgICAgaW5uZXIgPSBzcmN2YXI7Ci0rICAgICAgd2hpbGUgKGhhbmRsZWRfY29tcG9u ZW50X3AgKGlubmVyKSkKLSsJaW5uZXIgPSBUUkVFX09QRVJBTkQgKGlubmVyLCAwKTsKLSsgICAg ICBpZiAoISBTU0FfVkFSX1AgKGlubmVyKSkKLSsJcmV0dXJuIDA7Ci0rCi0gICAgICAgbGVuZ3Ro ID0gdHJlZV9sb3dfY3N0IChsZW4sIDEpOwotICAgICAgIGlmIChHRVRfTU9ERV9TSVpFIChUWVBF X01PREUgKFRSRUVfVFlQRSAoZGVzdHZhcikpKSAhPSBsZW5ndGgKLSAJICB8fCBnZXRfcG9pbnRl cl9hbGlnbm1lbnQgKGRlc3QsIEJJR0dFU1RfQUxJR05NRU5UKSAvIEJJVFNfUEVSX1VOSVQKLS0t LSBnY2MvdGVzdHN1aXRlL2djYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA2MDkzMC0xLmMuamoJMjAw Ni0wOS0zMCAyMToxMDoxNy4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5j LXRvcnR1cmUvZXhlY3V0ZS8yMDA2MDkzMC0xLmMJMjAwNi0wOS0zMCAyMTowOTozMy4wMDAwMDAw MDAgKzAyMDAKLUBAIC0wLDAgKzEsMzEgQEAKLSsvKiBQUiBtaWRkbGUtZW5kLzI5MjcyICovCi0r Ci0rZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotKwotK3N0cnVjdCBTIHsgc3RydWN0IFMgKnM7 IH0gczsKLStzdHJ1Y3QgVCB7IHN0cnVjdCBUICp0OyB9IHQ7Ci0rCi0rc3RhdGljIGlubGluZSB2 b2lkCi0rZm9vICh2b2lkICpzKQotK3sKLSsgIHN0cnVjdCBUICpwID0gczsKLSsgIF9fYnVpbHRp bl9tZW1jcHkgKCZwLT50LCAmdC50LCBzaXplb2YgKHQudCkpOwotK30KLSsKLSt2b2lkICoKLStf X2F0dHJpYnV0ZV9fKChub2lubGluZSkpCi0rYmFyICh2b2lkICpwLCBzdHJ1Y3QgUyAqcSkKLSt7 Ci0rICBxLT5zID0gJnM7Ci0rICBmb28gKHApOwotKyAgcmV0dXJuIHEtPnM7Ci0rfQotKwotK2lu dAotK21haW4gKHZvaWQpCi0rewotKyAgdC50ID0gJnQ7Ci0rICBpZiAoYmFyICgmcywgJnMpICE9 ICh2b2lkICopICZ0KQotKyAgICBhYm9ydCAoKTsKLSsgIHJldHVybiAwOwotK30KCmRpZmYgLS1n aXQgYS9nY2M0MS1wcjI5Mjk5LnBhdGNoIGIvZ2NjNDEtcHIyOTI5OS5wYXRjaApkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggZmYwYWNmNS4uMDAwMDAwMAotLS0gYS9nY2M0MS1wcjI5Mjk5 LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAotMjAwNi0xMC0xOCAgSmFuIEh1 Ymlja2EgIDxqaEBzdXNlLmN6PgotCi0JUFIgbWlkZGxlLWVuZC8yOTI5OQotCSogY2ZnZXhwYW5k LmMgKGV4cGFuZF91c2VkX3ZhcnNfZm9yX2Jsb2NrKTogVmFycyBtYXJrZWQgdXNlZCBieSB1c2Vy Ci0JYXJlIHVzZWQuCi0KLTIwMDYtMTAtMTUgIEphbiBIdWJpY2thICA8amhAc3VzZS5jej4KLSAg ICAgICAgICAgIFJpY2hhcmQgR3VlbnRoZXIgIDxyZ3VlbnRoZXJAc3VzZS5kZT4KLQotCVBSIG1p ZGRsZS1lbmQvMjkyOTkKLQkqIGNncmFwaHVuaXQuYyAoY2dyYXBoX2ZpbmFsaXplX2NvbXBpbGF0 aW9uX3VuaXQpOiBDYWxsCi0JcHJvY2Vzc19mdW5jdGlvbl9hbmRfdmFyaWFibGVfYXR0cmlidXRl cyBvbiBhbGwgdmFyaWFibGVzLCBpbmNsdWRpbmcKLQl0aG9zZSBkaXNjb3ZlcmVkIGR1cmluZyBj Z3JhcGggY29uc3RydWN0aW9uIHBoYXNlLgotCi0JKiBnY2MuZGcvcHIyOTI5OS5jOiBOZXcgdGVz dGNhc2UuCi0KLS0tLSBnY2MvY2dyYXBodW5pdC5jCShyZXZpc2lvbiAxMTc3NDUpCi0rKysgZ2Nj L2NncmFwaHVuaXQuYwkocmV2aXNpb24gMTE3ODYzKQotQEAgLTEwNTUsNiArMTA1NSw3IEBAIGNn cmFwaF9maW5hbGl6ZV9jb21waWxhdGlvbl91bml0ICh2b2lkKQotICAgLyogS2VlcCB0cmFjayBv ZiBhbHJlYWR5IHByb2Nlc3NlZCBub2RlcyB3aGVuIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyBmb3IK LSAgICAgIGludGVybW9kdWxlIG9wdGltaXphdGlvbi4gICovCi0gICBzdGF0aWMgc3RydWN0IGNn cmFwaF9ub2RlICpmaXJzdF9hbmFseXplZDsKLSsgIHN0cnVjdCBjZ3JhcGhfbm9kZSAqZmlyc3Rf cHJvY2Vzc2VkID0gZmlyc3RfYW5hbHl6ZWQ7Ci0gICBzdGF0aWMgc3RydWN0IGNncmFwaF92YXJw b29sX25vZGUgKmZpcnN0X2FuYWx5emVkX3ZhcjsKLSAKLSAgIGlmIChlcnJvcmNvdW50IHx8IHNv cnJ5Y291bnQpCi1AQCAtMTA3Nyw3ICsxMDc4LDEwIEBAIGNncmFwaF9maW5hbGl6ZV9jb21waWxh dGlvbl91bml0ICh2b2lkKQotICAgICB9Ci0gCi0gICB0aW1ldmFyX3B1c2ggKFRWX0NHUkFQSCk7 Ci0tICBwcm9jZXNzX2Z1bmN0aW9uX2FuZF92YXJpYWJsZV9hdHRyaWJ1dGVzIChmaXJzdF9hbmFs eXplZCwgZmlyc3RfYW5hbHl6ZWRfdmFyKTsKLSsgIHByb2Nlc3NfZnVuY3Rpb25fYW5kX3Zhcmlh YmxlX2F0dHJpYnV0ZXMgKGZpcnN0X3Byb2Nlc3NlZCwKLSsJCQkJCSAgICBmaXJzdF9hbmFseXpl ZF92YXIpOwotKyAgZmlyc3RfcHJvY2Vzc2VkID0gY2dyYXBoX25vZGVzOwotKyAgZmlyc3RfYW5h bHl6ZWRfdmFyID0gY2dyYXBoX3ZhcnBvb2xfbm9kZXM7Ci0gICBjZ3JhcGhfdmFycG9vbF9hbmFs eXplX3BlbmRpbmdfZGVjbHMgKCk7Ci0gICBpZiAoY2dyYXBoX2R1bXBfZmlsZSkKLSAgICAgewot QEAgLTExMTksMTEgKzExMjMsMTYgQEAgY2dyYXBoX2ZpbmFsaXplX2NvbXBpbGF0aW9uX3VuaXQg KHZvaWQpCi0gCWlmICghZWRnZS0+Y2FsbGVlLT5yZWFjaGFibGUpCi0gCSAgY2dyYXBoX21hcmtf cmVhY2hhYmxlX25vZGUgKGVkZ2UtPmNhbGxlZSk7Ci0gCi0rICAgICAgLyogV2UgZmluYWxpemUg bG9jYWwgc3RhdGljIHZhcmlhYmxlcyBkdXJpbmcgY29uc3RydWN0aW5nIGNhbGxncmFwaAotKyAg ICAgICAgIGVkZ2VzLiAgUHJvY2VzcyB0aGVpciBhdHRyaWJ1dGVzIHRvby4gICovCi0rICAgICAg cHJvY2Vzc19mdW5jdGlvbl9hbmRfdmFyaWFibGVfYXR0cmlidXRlcyAoZmlyc3RfcHJvY2Vzc2Vk LAotKwkJCQkJCWZpcnN0X2FuYWx5emVkX3Zhcik7Ci0rICAgICAgZmlyc3RfcHJvY2Vzc2VkID0g Y2dyYXBoX25vZGVzOwotKyAgICAgIGZpcnN0X2FuYWx5emVkX3ZhciA9IGNncmFwaF92YXJwb29s X25vZGVzOwotICAgICAgIGNncmFwaF92YXJwb29sX2FuYWx5emVfcGVuZGluZ19kZWNscyAoKTsK LSAgICAgfQotIAotICAgLyogQ29sbGVjdCBlbnRyeSBwb2ludHMgdG8gdGhlIHVuaXQuICAqLwot LQotICAgaWYgKGNncmFwaF9kdW1wX2ZpbGUpCi0gICAgIHsKLSAgICAgICBmcHJpbnRmIChjZ3Jh cGhfZHVtcF9maWxlLCAiVW5pdCBlbnRyeSBwb2ludHM6Iik7Ci1AQCAtMTE2Myw3ICsxMTcyLDYg QEAgY2dyYXBoX2ZpbmFsaXplX2NvbXBpbGF0aW9uX3VuaXQgKHZvaWQpCi0gICAgICAgZHVtcF9j Z3JhcGggKGNncmFwaF9kdW1wX2ZpbGUpOwotICAgICB9Ci0gICBmaXJzdF9hbmFseXplZCA9IGNn cmFwaF9ub2RlczsKLS0gIGZpcnN0X2FuYWx5emVkX3ZhciA9IGNncmFwaF92YXJwb29sX25vZGVz OwotICAgZ2djX2NvbGxlY3QgKCk7Ci0gICB0aW1ldmFyX3BvcCAoVFZfQ0dSQVBIKTsKLSB9Ci0t LS0gZ2NjL2NmZ2V4cGFuZC5jCShyZXZpc2lvbiAxMTc3NDUpCi0rKysgZ2NjL2NmZ2V4cGFuZC5j CShyZXZpc2lvbiAxMTc4NjMpCi1AQCAtNzY0LDcgKzc2NCwxMiBAQCBleHBhbmRfdXNlZF92YXJz X2Zvcl9ibG9jayAodHJlZSBibG9jaywgCi0gCi0gICAvKiBFeHBhbmQgYWxsIHZhcmlhYmxlcyBh dCB0aGlzIGxldmVsLiAgKi8KLSAgIGZvciAodCA9IEJMT0NLX1ZBUlMgKGJsb2NrKTsgdCA7IHQg PSBUUkVFX0NIQUlOICh0KSkKLS0gICAgaWYgKFRSRUVfVVNFRCAodCkpCi0rICAgIGlmIChUUkVF X1VTRUQgKHQpCi0rCS8qIEZvcmNlIGxvY2FsIHN0YXRpYyB2YXJpYWJsZXMgdG8gYmUgb3V0cHV0 IHdoZW4gbWFya2VkIGJ5Ci0rCSAgIHVzZWQgYXR0cmlidXRlLiAgRm9yIHVuaXQtYXQtYS10aW1l LCBjZ3JhcGggY29kZSBhbHJlYWR5IHRha2VzCi0rCSAgIGNhcmUgb2YgdGhpcy4gICovCi0rCXx8 ICghZmxhZ191bml0X2F0X2FfdGltZSAmJiBUUkVFX1NUQVRJQyAodCkKLSsJICAgICYmIERFQ0xf UFJFU0VSVkVfUCAodCkpKQotICAgICAgIGV4cGFuZF9vbmVfdmFyICh0LCB0b3BsZXZlbCk7Ci0g Ci0gICB0aGlzX3N2X251bSA9IHN0YWNrX3ZhcnNfbnVtOwotLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL3ByMjkyOTkuYwkocmV2aXNpb24gMCkKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9wcjI5 Mjk5LmMJKHJldmlzaW9uIDExNzg2MykKLUBAIC0wLDAgKzEsMTAgQEAKLSsvKiB7IGRnLWRvIGNv bXBpbGUgfSAqLwotKy8qIHsgZGctb3B0aW9ucyAiLU8iIH0gKi8KLSsKLStzdGF0aWMgaW50IGJv ZiBfX2F0dHJpYnV0ZV9fKCh1c2VkKSk7Ci0raW50IGZvbygpCi0rewotKwlzdGF0aWMgaW50IGJh cmJhcmJhcmJhciBfX2F0dHJpYnV0ZV9fKCh1c2VkKSk7Ci0rfTsKLSsKLSsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgImJhcmJhcmJhcmJhciIgfSB9ICovCgpkaWZmIC0tZ2l0IGEvZ2Nj NDEtcHIzMTE4Ny5wYXRjaCBiL2djYzQxLXByMzExODcucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDMzZDY4OGMuLjAwMDAwMDAKLS0tIGEvZ2NjNDEtcHIzMTE4Ny5wYXRjaAor KysgL2Rldi9udWxsCkBAIC0xLDExMyArMCwwIEBACi0yMDA3LTAzLTMwICBKYXNvbiBNZXJyaWxs ICA8amFzb25AcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8zMTE4NwotCSogdHlwZWNrLmMgKGNwX3R5 cGVfcmVhZG9ubHkpOiBOZXcgZm4uCi0JKiBjcC10cmVlLmg6IERlY2xhcmUgaXQuCi0JKiBkZWNs LmMgKHN0YXJ0X2RlY2wpOiBTZXQgaW1wbGljaXQgREVDTF9USElTX1NUQVRJQyBoZXJlLgotCShj cF9maW5pc2hfZGVjbCk6IE5vdCBoZXJlLgotCi0yMDA3LTA0LTAyICBKYXNvbiBNZXJyaWxsICA8 amFzb25AcmVkaGF0LmNvbT4KLQotCVBSIGMrKy8zMTE4NwotCSogZysrLmRnL2V4dC92aXNpYmls aXR5L2Fub24zLkM6IE5ldyB0ZXN0LgotCi0tLS0gZ2NjL2NwL3R5cGVjay5jCShyZXZpc2lvbiAx MjM0MzEpCi0rKysgZ2NjL2NwL3R5cGVjay5jCShyZXZpc2lvbiAxMjM0MzIpCi1AQCAtNjg5Nyw2 ICs2ODk3LDE2IEBAIGNwX3R5cGVfcXVhbHMgKHRyZWUgdHlwZSkKLSAgIHJldHVybiBUWVBFX1FV QUxTICh0eXBlKTsKLSB9Ci0gCi0rLyogUmV0dXJucyBub256ZXJvIGlmIHRoZSBUWVBFIGlzIGNv bnN0IGZyb20gYSBDKysgcGVyc3BlY3RpdmU6IGxvb2sgaW5zaWRlCi0rICAgYXJyYXlzLiAgKi8K LSsKLStib29sCi0rY3BfdHlwZV9yZWFkb25seSAodHJlZSB0eXBlKQotK3sKLSsgIHR5cGUgPSBz dHJpcF9hcnJheV90eXBlcyAodHlwZSk7Ci0rICByZXR1cm4gVFlQRV9SRUFET05MWSAodHlwZSk7 Ci0rfQotKwotIC8qIFJldHVybnMgbm9uemVybyBpZiB0aGUgVFlQRSBjb250YWlucyBhIG11dGFi bGUgbWVtYmVyLiAgKi8KLSAKLSBib29sCi0tLS0gZ2NjL2NwL2RlY2wuYwkocmV2aXNpb24gMTIz NDMxKQotKysrIGdjYy9jcC9kZWNsLmMJKHJldmlzaW9uIDEyMzQzMikKLUBAIC0zODE3LDYgKzM4 MTcsNyBAQCBzdGFydF9kZWNsIChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhCi0gICB0cmVl IGRlY2w7Ci0gICB0cmVlIHR5cGUsIHRlbTsKLSAgIHRyZWUgY29udGV4dDsKLSsgIGJvb2wgd2Fz X3B1YmxpYzsKLSAKLSAgICpwdXNoZWRfc2NvcGVfcCA9IE5VTExfVFJFRTsKLSAKLUBAIC0zOTY5 LDYgKzM5NzAsOCBAQCBzdGFydF9kZWNsIChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhCi0g CQkgZGVjbCk7Ci0gICAgIH0KLSAKLSsgIHdhc19wdWJsaWMgPSBUUkVFX1BVQkxJQyAoZGVjbCk7 Ci0rCi0gICAvKiBFbnRlciB0aGlzIGRlY2xhcmF0aW9uIGludG8gdGhlIHN5bWJvbCB0YWJsZS4g ICovCi0gICB0ZW0gPSBtYXliZV9wdXNoX2RlY2wgKGRlY2wpOwotIAotQEAgLTM5ODgsNiArMzk5 MSwxNyBAQCBzdGFydF9kZWNsIChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhCi0gCQkgICAg ICAgJiYgKGZsYWdfY29uc2VydmVfc3BhY2UgfHwgISBUUkVFX1BVQkxJQyAodGVtKSkpOwotICNl bmRpZgotIAotKyAgaWYgKFRSRUVfQ09ERSAodGVtKSA9PSBWQVJfREVDTAotKyAgICAgICYmIERF Q0xfTkFNRVNQQUNFX1NDT1BFX1AgKHRlbSkgJiYgIVRSRUVfUFVCTElDICh0ZW0pICYmICF3YXNf cHVibGljCi0rICAgICAgJiYgIURFQ0xfVEhJU19TVEFUSUMgKHRlbSkgJiYgIURFQ0xfQVJUSUZJ Q0lBTCAodGVtKSkKLSsgICAgewotKyAgICAgIC8qIFRoaXMgaXMgYSBjb25zdCB2YXJpYWJsZSB3 aXRoIGltcGxpY2l0ICdzdGF0aWMnLiAgU2V0Ci0rCSBERUNMX1RISVNfU1RBVElDIHNvIHdlIGNh biB0ZWxsIGl0IGZyb20gdmFyaWFibGVzIHRoYXQgYXJlCi0rCSAhVFJFRV9QVUJMSUMgYmVjYXVz ZSBvZiB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZS4gICovCi0rICAgICAgZ2NjX2Fzc2VydCAoY3Bf dHlwZV9yZWFkb25seSAoVFJFRV9UWVBFICh0ZW0pKSk7Ci0rICAgICAgREVDTF9USElTX1NUQVRJ QyAodGVtKSA9IDE7Ci0rICAgIH0KLSsKLSAgIGlmICghIHByb2Nlc3NpbmdfdGVtcGxhdGVfZGVj bCkKLSAgICAgc3RhcnRfZGVjbF8xICh0ZW0pOwotIAotQEAgLTUzMjAsMTQgKzUzMzQsNiBAQCBj cF9maW5pc2hfZGVjbCAodHJlZSBkZWNsLCB0cmVlIGluaXQsIGJvCi0gCXsKLSAJICBsYXlvdXRf dmFyX2RlY2wgKGRlY2wpOwotIAkgIG1heWJlX2NvbW1vbml6ZV92YXIgKGRlY2wpOwotLQkgIGlm IChERUNMX05BTUVTUEFDRV9TQ09QRV9QIChkZWNsKSAmJiAhVFJFRV9QVUJMSUMgKGRlY2wpCi0t CSAgICAgICYmICFERUNMX1RISVNfU1RBVElDIChkZWNsKSAmJiAhREVDTF9BUlRJRklDSUFMIChk ZWNsKSkKLS0JICAgIHsKLS0JICAgICAgLyogVGhpcyBpcyBhIGNvbnN0IHZhcmlhYmxlIHdpdGgg aW1wbGljaXQgJ3N0YXRpYycuICBTZXQKLS0JCSBERUNMX1RISVNfU1RBVElDIHNvIHdlIGNhbiB0 ZWxsIGl0IGZyb20gdmFyaWFibGVzIHRoYXQgYXJlCi0tCQkgIVRSRUVfUFVCTElDIGJlY2F1c2Ug b2YgdGhlIGFub255bW91cyBuYW1lc3BhY2UuICAqLwotLQkgICAgICBERUNMX1RISVNfU1RBVElD IChkZWNsKSA9IDE7Ci0tCSAgICB9Ci0gCX0KLSAKLSAgICAgICBtYWtlX3J0bF9mb3Jfbm9ubG9j YWxfZGVjbCAoZGVjbCwgaW5pdCwgYXNtc3BlYyk7Ci0tLS0gZ2NjL2NwL2NwLXRyZWUuaAkocmV2 aXNpb24gMTIzNDMxKQotKysrIGdjYy9jcC9jcC10cmVlLmgJKHJldmlzaW9uIDEyMzQzMikKLUBA IC00NzQyLDYgKzQ3NDIsNyBAQCBleHRlcm4gYm9vbCBjb21wX3B0cl90dHlwZXNfY29uc3QJCSh0 cmVlCi0gZXh0ZXJuIGludCBwdHJfcmVhc29uYWJseV9zaW1pbGFyCQkodHJlZSwgdHJlZSk7Ci0g ZXh0ZXJuIHRyZWUgYnVpbGRfcHRybWVtZnVuYwkJCSh0cmVlLCB0cmVlLCBpbnQsIGJvb2wpOwot IGV4dGVybiBpbnQgY3BfdHlwZV9xdWFscwkJCSh0cmVlKTsKLStleHRlcm4gYm9vbCBjcF90eXBl X3JlYWRvbmx5CQkJKHRyZWUpOwotIGV4dGVybiBib29sIGNwX2hhc19tdXRhYmxlX3AJCQkodHJl ZSk7Ci0gZXh0ZXJuIGJvb2wgYXRfbGVhc3RfYXNfcXVhbGlmaWVkX3AJCSh0cmVlLCB0cmVlKTsK LSBleHRlcm4gdm9pZCBjcF9hcHBseV90eXBlX3F1YWxzX3RvX2RlY2wJCShpbnQsIHRyZWUpOwot LS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL2V4dC92aXNpYmlsaXR5L2Fub24zLkMJKHJldmlzaW9u IDApCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZXh0L3Zpc2liaWxpdHkvYW5vbjMuQwkocmV2 aXNpb24gMTIzNDMyKQotQEAgLTAsMCArMSwxNiBAQAotKy8vIFBSIGMrKy8zMTE4NwotKy8vIEJ1 ZzogdGhlIHJlcGVhdGVkIGRlY2xhcmF0aW9uIHdhcyBjb25mdXNpbmcgdGhlIGNvbXBpbGVyIGlu dG8KLSsvLyB0aGlua2luZyB0aGF0IGZvbzEgaGFkIGxhbmd1YWdlIGludGVybmFsIGxpbmthZ2Uu Ci0rCi0rY2xhc3MgZm9vIHsgfTsKLSsKLStuYW1lc3BhY2UKLSt7Ci0rICBleHRlcm4gZm9vIGZv bzE7Ci0rICBmb28gZm9vMTsKLSt9Ci0rCi0rdGVtcGxhdGU8IGZvbyAqID4KLStjbGFzcyBiYXIg eyB9OwotKwotK2JhcjwgJmZvbzEgPiBiYXIxOwoKZGlmZiAtLWdpdCBhL2djYzQxLXByMzE4MDku cGF0Y2ggYi9nY2M0MS1wcjMxODA5LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBhNjIwYTJkLi4wMDAwMDAwCi0tLSBhL2djYzQxLXByMzE4MDkucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSw2OCArMCwwIEBACi0yMDA3LTA1LTMxICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVk aGF0LmNvbT4KLQotCVBSIGMrKy8zMTgwNgotCSogZGVjbC5jIChjcF9maW5pc2hfZGVjbCk6IEFs c28gY2xlYXIgd2FzX3JlYWRvbmx5IGlmIGEgc3RhdGljIHZhcgotCW5lZWRzIHJ1bnRpbWUgaW5p dGlhbGl6YXRpb24uCi0KLTIwMDctMDUtMzAgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQu Y29tPgotCi0JUFIgYysrLzMxODA5Ci0JKiBkZWNsLmMgKGNwX2ZpbmlzaF9kZWNsKTogQ2xlYXIg VFJFRV9SRUFET05MWSBmbGFnIG9uIFRSRUVfU1RBVElDCi0JdmFyaWFibGVzIHRoYXQgbmVlZCBy dW50aW1lIGluaXRpYWxpemF0aW9uLgotCi0JKiBnKysuZGcvb3B0L3N0YXRpYzUuQzogTmV3IHRl c3QuCi0KLS0tLSBnY2MvY3AvZGVjbC5jCShyZXZpc2lvbiAxMjUyMDApCi0rKysgZ2NjL2NwL2Rl Y2wuYwkocmV2aXNpb24gMTI1MjI5KQotQEAgLTUzNTcsNyArNTM1NywxOCBAQCBjcF9maW5pc2hf ZGVjbCAodHJlZSBkZWNsLCB0cmVlIGluaXQsIGJvCi0gCSAgICAgaW5pdGlhbGl6ZXIuICBJdCBp cyBub3QgbGVnYWwgdG8gcmVkZWNsYXJlIGEgc3RhdGljIGRhdGEKLSAJICAgICBtZW1iZXIsIHNv IHRoaXMgaXNzdWUgZG9lcyBub3QgYXJpc2UgaW4gdGhhdCBjYXNlLiAgKi8KLSAJICBpZiAodmFy X2RlZmluaXRpb25fcCAmJiBUUkVFX1NUQVRJQyAoZGVjbCkpCi0tCSAgICBleHBhbmRfc3RhdGlj X2luaXQgKGRlY2wsIGluaXQpOwotKwkgICAgewotKwkgICAgICAvKiBJZiBhIFRSRUVfUkVBRE9O TFkgdmFyaWFibGUgbmVlZHMgaW5pdGlhbGl6YXRpb24KLSsJCSBhdCBydW50aW1lLCBpdCBpcyBu byBsb25nZXIgcmVhZG9ubHkgYW5kIHdlIG5lZWQgdG8KLSsJCSBhdm9pZCBNRU1fUkVBRE9OTFlf UCBiZWluZyBzZXQgb24gUlRMIGNyZWF0ZWQgZm9yIGl0LiAgKi8KLSsJICAgICAgaWYgKGluaXQp Ci0rCQl7Ci0rCQkgIGlmIChUUkVFX1JFQURPTkxZIChkZWNsKSkKLSsJCSAgICBUUkVFX1JFQURP TkxZIChkZWNsKSA9IDA7Ci0rCQkgIHdhc19yZWFkb25seSA9IDA7Ci0rCQl9Ci0rCSAgICAgIGV4 cGFuZF9zdGF0aWNfaW5pdCAoZGVjbCwgaW5pdCk7Ci0rCSAgICB9Ci0gCX0KLSAgICAgfQotIAot LS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL29wdC9zdGF0aWM1LkMJKHJldmlzaW9uIDApCi0rKysg Z2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3B0L3N0YXRpYzUuQwkocmV2aXNpb24gMTI1MjI5KQotQEAg LTAsMCArMSwyOSBAQAotKy8vIFBSIGMrKy8zMTgwOQotKy8vIHsgZGctZG8gcnVuIH0KLSsvLyB7 IGRnLW9wdGlvbnMgIi1PMiIgfQotKwotK3N0cnVjdCBTCi0rewotKyAgdW5zaWduZWQgdjsKLSsg IHN0YXRpYyBpbmxpbmUgUyBmICh1bnNpZ25lZCBhKTsKLSt9OwotKwotK2lubGluZSBTCi0rUzo6 ZiAodW5zaWduZWQgYSkKLSt7Ci0rICBzdGF0aWMgUyB0ID0geyBhIH07Ci0rICByZXR1cm4gdDsK LSt9Ci0rCi0rY29uc3Qgc3RhdGljIFMgcyA9IFM6OmYgKDI2KTsKLSsKLStleHRlcm4gIkMiIHZv aWQgYWJvcnQgKHZvaWQpOwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rICBTIHQgPSBzOwotKyAg aWYgKHQudiAhPSAyNikKLSsgICAgYWJvcnQgKCk7Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0t Z2l0IGEvZ2NjNDEtcHIzMjI4NS5wYXRjaCBiL2djYzQxLXByMzIyODUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE4NjM4MzAuLjAwMDAwMDAKLS0tIGEvZ2NjNDEtcHIzMjI4 NS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTIwMDctMDYtMTQgIEpha3Vi IEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JUFIgbWlkZGxlLWVuZC8zMjI4NQotCSog Y2FsbHMuYyAocHJlY29tcHV0ZV9hcmd1bWVudHMpOiBBbHNvIHByZWNvbXB1dGUgQ0FMTF9FWFBS IGFyZ3VtZW50cwotCWlmIEFDQ1VNVUxBVEVfT1VUR09JTkdfQVJHUy4KLQotCSogZ2NjLmMtdG9y dHVyZS9leGVjdXRlLzIwMDcwNjE0LTEuYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvY2FsbHMuYy5q agkyMDA3LTA2LTEzIDE3OjM4OjU1LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9jYWxscy5jCTIw MDctMDYtMTQgMTQ6NTA6NTYuMDAwMDAwMDAwICswMjAwCi1AQCAtMTI2OSwxMyArMTI2OSwyNSBA QCBwcmVjb21wdXRlX2FyZ3VtZW50cyAoaW50IGZsYWdzLCBpbnQgbnVtCi0gCi0gICAvKiBJZiB0 aGlzIGlzIGEgbGliY2FsbCwgdGhlbiBwcmVjb21wdXRlIGFsbCBhcmd1bWVudHMgc28gdGhhdCB3 ZSBkbyBub3QKLSAgICAgIGdldCBleHRyYW5lb3VzIGluc3RydWN0aW9ucyBlbWl0dGVkIGFzIHBh cnQgb2YgdGhlIGxpYmNhbGwgc2VxdWVuY2UuICAqLwotLSAgaWYgKChmbGFncyAmIEVDRl9MSUJD QUxMX0JMT0NLKSA9PSAwKQotKwotKyAgLyogSWYgd2UgcHJlYWxsb2NhdGVkIHRoZSBzdGFjayBz cGFjZSwgYW5kIHNvbWUgYXJndW1lbnRzIG11c3QgYmUgcGFzc2VkCi0rICAgICBvbiB0aGUgc3Rh Y2ssIHRoZW4gd2UgbXVzdCBwcmVjb21wdXRlIGFueSBwYXJhbWV0ZXIgd2hpY2ggY29udGFpbnMg YQotKyAgICAgZnVuY3Rpb24gY2FsbCB3aGljaCB3aWxsIHN0b3JlIGFyZ3VtZW50cyBvbiB0aGUg c3RhY2suCi0rICAgICBPdGhlcndpc2UsIGV2YWx1YXRpbmcgdGhlIHBhcmFtZXRlciBtYXkgY2xv YmJlciBwcmV2aW91cyBwYXJhbWV0ZXJzCi0rICAgICB3aGljaCBoYXZlIGFscmVhZHkgYmVlbiBz dG9yZWQgaW50byB0aGUgc3RhY2suICAod2UgaGF2ZSBjb2RlIHRvIGF2b2lkCi0rICAgICBzdWNo IGNhc2UgYnkgc2F2aW5nIHRoZSBvdXRnb2luZyBzdGFjayBhcmd1bWVudHMsIGJ1dCBpdCByZXN1 bHRzIGluCi0rICAgICB3b3JzZSBjb2RlKSAgKi8KLSsgIGlmICgoZmxhZ3MgJiBFQ0ZfTElCQ0FM TF9CTE9DSykgPT0gMCAmJiAhQUNDVU1VTEFURV9PVVRHT0lOR19BUkdTKQotICAgICByZXR1cm47 Ci0gCi0gICBmb3IgKGkgPSAwOyBpIDwgbnVtX2FjdHVhbHM7IGkrKykKLSAgICAgewotICAgICAg IGVudW0gbWFjaGluZV9tb2RlIG1vZGU7Ci0gCi0rICAgICAgaWYgKChmbGFncyAmIEVDRl9MSUJD QUxMX0JMT0NLKSA9PSAwCi0rCSAgJiYgVFJFRV9DT0RFIChhcmdzW2ldLnRyZWVfdmFsdWUpICE9 IENBTExfRVhQUikKLSsJY29udGludWU7Ci0rCi0gICAgICAgLyogSWYgdGhpcyBpcyBhbiBhZGRy ZXNzYWJsZSB0eXBlLCB3ZSBjYW5ub3QgcHJlLWV2YWx1YXRlIGl0LiAgKi8KLSAgICAgICBnY2Nf YXNzZXJ0ICghVFJFRV9BRERSRVNTQUJMRSAoVFJFRV9UWVBFIChhcmdzW2ldLnRyZWVfdmFsdWUp KSk7Ci0gCi0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwNzA2MTQt MS5jLmpqCTIwMDctMDYtMTQgMTU6MzI6MjguMDAwMDAwMDAwICswMjAwCi0rKysgZ2NjL3Rlc3Rz dWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwNzA2MTQtMS5jCTIwMDctMDYtMTEgMTM6MjM6 MTkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMzIEBACi0rZXh0ZXJuIHZvaWQgYWJvcnQg KHZvaWQpOwotKwotK19Db21wbGV4IHYgPSAzLjAgKyAxLjBpRjsKLSsKLSt2b2lkCi0rZm9vIChf Q29tcGxleCB6LCBpbnQgKngpCi0rewotKyAgaWYgKHogIT0gdikKLSsgICAgYWJvcnQgKCk7Ci0r fQotKwotK19Db21wbGV4IGJhciAoX0NvbXBsZXggeikgX19hdHRyaWJ1dGVfXyAoKHB1cmUpKTsK LStfQ29tcGxleAotK2JhciAoX0NvbXBsZXggeikKLSt7Ci0rICByZXR1cm4gdjsKLSt9Ci0rCi0r aW50Ci0rYmF6ICh2b2lkKQotK3sKLSsgIGludCBhLCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDY7 IGkrKykKLSsgICAgZm9vIChiYXIgKDEuMGlGICogaSksICZhKTsKLSsgIHJldHVybiAwOwotK30K LSsKLStpbnQKLSttYWluICgpCi0rewotKyAgYmF6ICgpOwotKyAgcmV0dXJuIDA7Ci0rfQoKZGlm ZiAtLWdpdCBhL2djYzQxLXByMzIzNTMucGF0Y2ggYi9nY2M0MS1wcjMyMzUzLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OWUyYzJiLi4wMDAwMDAwCi0tLSBhL2djYzQxLXBy MzIzNTMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0yMDA3LTA2LTE1ICBK YWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCVBSIHRyZWUtb3B0aW1pemF0aW9u LzMyMzUzCi0JKiB0cmVlLXNzYS1zdHJ1Y3RhbGlhcy5jIChzZXRfdWlkc19pbl9wdHNldCk6IEFs c28gaGFuZGxlIFJFU1VMVF9ERUNMLgotCi0JKiBnKysuZGcvb3B0L25ydjEzLkM6IE5ldyB0ZXN0 LgotCi0tLS0gZ2NjL3RyZWUtc3NhLXN0cnVjdGFsaWFzLmMuamoJMjAwNy0wNi0xMSAxMToxMjoy Ny4wMDAwMDAwMDAgKzAyMDAKLSsrKyBnY2MvdHJlZS1zc2Etc3RydWN0YWxpYXMuYwkyMDA3LTA2 LTE1IDE2OjQwOjI5LjAwMDAwMDAwMCArMDIwMAotQEAgLTQzNDMsNyArNDM0Myw4IEBAIHNldF91 aWRzX2luX3B0c2V0ICh0cmVlIHB0ciwgYml0bWFwIGludG8KLSAJICAgIGJpdG1hcF9zZXRfYml0 IChpbnRvLCBERUNMX1VJRCAoc3YtPnZhcikpOwotIAl9Ci0gICAgICAgZWxzZSBpZiAoVFJFRV9D T0RFICh2aS0+ZGVjbCkgPT0gVkFSX0RFQ0wgCi0tCSAgICAgICB8fCBUUkVFX0NPREUgKHZpLT5k ZWNsKSA9PSBQQVJNX0RFQ0wpCi0rCSAgICAgICB8fCBUUkVFX0NPREUgKHZpLT5kZWNsKSA9PSBQ QVJNX0RFQ0wKLSsJICAgICAgIHx8IFRSRUVfQ09ERSAodmktPmRlY2wpID09IFJFU1VMVF9ERUNM KQotIAl7Ci0gCSAgaWYgKHZhcl9jYW5faGF2ZV9zdWJ2YXJzICh2aS0+ZGVjbCkKLSAJICAgICAg JiYgZ2V0X3N1YnZhcnNfZm9yX3ZhciAodmktPmRlY2wpKQotLS0tIGdjYy90ZXN0c3VpdGUvZysr LmRnL29wdC9ucnYxMy5DLmpqCTIwMDctMDYtMTUgMTY6NTk6MDIuMDAwMDAwMDAwICswMjAwCi0r KysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvb3B0L25ydjEzLkMJMjAwNy0wNi0xNSAxNzowMzozOS4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNDIgQEAKLSsvLyBQUiB0cmVlLW9wdGltaXphdGlv bi8zMjM1MwotKy8vIHsgZGctZG8gcnVuIH0KLSsvLyB7IGRnLW9wdGlvbnMgIi1PMiIgfQotKwot K2V4dGVybiAiQyIgdm9pZCBhYm9ydCAoKTsKLSsKLStzdHJ1Y3QgQQotK3sKLSsgIGludCBmOwot KyAgQSAoaW50IHgpIDogZiAoeCkge30KLSt9OwotKwotK0EKLStmb28gKGNvbnN0IEEgJngsIGNv bnN0IEEgJnkpCi0rewotKyAgQSByICgwKTsKLSsgIHIgPSB4LmYgPT0gLTExMSA/IHkgOiAoeS5m ID09IC0xMTEgfHwgeC5mID4geS5mKSA/IHggOiB5OwotKyAgQSBzICgwKTsKLSsgIHIgPSByLmYg PT0gLTExMSA/IHMgOiAoci5mID4gcy5mKSA/IHIgOiBzOwotKyAgcmV0dXJuIHI7Ci0rfQotKwot K2ludAotK21haW4gKCkKLSt7Ci0rICBpZiAoZm9vIChBICgwKSwgQSAoMSkpLmYgIT0gMSkKLSsg ICAgYWJvcnQgKCk7Ci0rICBpZiAoZm9vIChBICgxKSwgQSAoOSkpLmYgIT0gOSkKLSsgICAgYWJv cnQgKCk7Ci0rICBpZiAoZm9vIChBICg5KSwgQSAoMSkpLmYgIT0gOSkKLSsgICAgYWJvcnQgKCk7 Ci0rICBpZiAoZm9vIChBICgtNCksIEEgKC01KSkuZiAhPSAwKQotKyAgICBhYm9ydCAoKTsKLSsg IGlmIChmb28gKEEgKC0xMTEpLCBBICgtMTExKSkuZiAhPSAwKQotKyAgICBhYm9ydCAoKTsKLSsg IGlmIChmb28gKEEgKDIpLCBBICgtMTExKSkuZiAhPSAyKQotKyAgICBhYm9ydCAoKTsKLSsgIGlm IChmb28gKEEgKC0xMTEpLCBBICg2KSkuZiAhPSA2KQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChm b28gKEEgKC0xMTEpLCBBICgtNCkpLmYgIT0gMCkKLSsgICAgYWJvcnQgKCk7Ci0rfQoKZGlmZiAt LWdpdCBhL2djYzQxLXByMzI0NjgtMi5wYXRjaCBiL2djYzQxLXByMzI0NjgtMi5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMzhkODA3Ci0tLSAvZGV2L251bGwKKysr IGIvZ2NjNDEtcHIzMjQ2OC0yLnBhdGNoCkBAIC0wLDAgKzEsMTgzIEBACisyMDA3LTA2LTI1ICBK YWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KKworCVBSIGxpYmdvbXAvMzI0NjgKKwkq IG9tcC1sb3cuYyAoY2hlY2tfY29tYmluZWRfcGFyYWxsZWwpOiBOZXcgZnVuY3Rpb24uCisJKGxv d2VyX29tcF9wYXJhbGxlbCk6IENhbGwgaXQgdmlhIHdhbGtfc3RtdHMsIHNldAorCU9NUF9QQVJB TExFTF9DT01CSU5FRCBpZiBhcHByb3ByaWF0ZS4KKwkoZGV0ZXJtaW5lX3BhcmFsbGVsX3R5cGUp OiBJZiBPTVBfRk9SIHJlc3AuIE9NUF9TRUNUSU9OUworCWlzbid0IHRoZSBvbmx5IHN0YXRlbWVu dCBpbiBXU19FTlRSWV9CQiBvciBPTVBfUkVUVVJOCisJdGhlIG9ubHkgb25lIGluIFBBUl9FWElU X0JCIGFuZCBub3QgT01QX1BBUkFMTEVMX0NPTUJJTkVELAorCWRvbid0IGNvbnNpZGVyIGl0IGFz IGNvbWJpbmVkIHBhcmFsbGVsLgorCistLS0gZ2NjL29tcC1sb3cuYy5qagkyMDA3LTA2LTIxIDEz OjM4OjEwLjAwMDAwMDAwMCArMDIwMAorKysrIGdjYy9vbXAtbG93LmMJMjAwNy0wNi0yNSAxOToy MTozNS4wMDAwMDAwMDAgKzAyMDAKK0BAIC0zODUsMTAgKzM4NSwxMyBAQCBkZXRlcm1pbmVfcGFy YWxsZWxfdHlwZSAoc3RydWN0IG9tcF9yZWdpCisgCisgICBpZiAoc2luZ2xlX3N1Y2MgKHBhcl9l bnRyeV9iYikgPT0gd3NfZW50cnlfYmIKKyAgICAgICAmJiBzaW5nbGVfc3VjYyAod3NfZXhpdF9i YikgPT0gcGFyX2V4aXRfYmIKKy0gICAgICAmJiB3b3Jrc2hhcmVfc2FmZV90b19jb21iaW5lX3Ag KHBhcl9lbnRyeV9iYiwgd3NfZW50cnlfYmIpKQorKyAgICAgICYmIHdvcmtzaGFyZV9zYWZlX3Rv X2NvbWJpbmVfcCAocGFyX2VudHJ5X2JiLCB3c19lbnRyeV9iYikKKysgICAgICAmJiAoT01QX1BB UkFMTEVMX0NPTUJJTkVEIChsYXN0X3N0bXQgKHBhcl9lbnRyeV9iYikpCisrCSAgfHwgKGxhc3Rf YW5kX29ubHlfc3RtdCAod3NfZW50cnlfYmIpCisrCSAgICAgICYmIGxhc3RfYW5kX29ubHlfc3Rt dCAocGFyX2V4aXRfYmIpKSkpCisgICAgIHsKKy0gICAgICB0cmVlIHdzX3N0bXQgPSBsYXN0X3N0 bXQgKHJlZ2lvbi0+aW5uZXItPmVudHJ5KTsKKysgICAgICB0cmVlIHdzX3N0bXQgPSBsYXN0X3N0 bXQgKHdzX2VudHJ5X2JiKTsKKyAKKyAgICAgICBpZiAocmVnaW9uLT5pbm5lci0+dHlwZSA9PSBP TVBfRk9SKQorIAl7CisgCSAgLyogSWYgdGhpcyBpcyBhIGNvbWJpbmVkIHBhcmFsbGVsIGxvb3As IHdlIG5lZWQgdG8gZGV0ZXJtaW5lCitAQCAtNDA2MCw2ICs0MDY1LDI4IEBAIGxvd2VyX29tcF9m b3IgKHRyZWUgKnN0bXRfcCwgb21wX2NvbnRleHQKKyAgICpzdG10X3AgPSBuZXdfc3RtdDsKKyB9 CisgCisrLyogQ2FsbGJhY2sgZm9yIHdhbGtfc3RtdHMuICBDaGVjayBpZiAqVFAgb25seSBjb250 YWlucyBPTVBfRk9SCisrICAgb3IgT01QX1BBUkFMTEVMLiAgKi8KKysKKytzdGF0aWMgdHJlZQor K2NoZWNrX2NvbWJpbmVkX3BhcmFsbGVsICh0cmVlICp0cCwgaW50ICp3YWxrX3N1YnRyZWVzLCB2 b2lkICpkYXRhKQorK3sKKysgIHN0cnVjdCB3YWxrX3N0bXRfaW5mbyAqd2kgPSBkYXRhOworKyAg aW50ICppbmZvID0gd2ktPmluZm87CisrCisrICAqd2Fsa19zdWJ0cmVlcyA9IDA7CisrICBzd2l0 Y2ggKFRSRUVfQ09ERSAoKnRwKSkKKysgICAgeworKyAgICBjYXNlIE9NUF9GT1I6CisrICAgIGNh c2UgT01QX1NFQ1RJT05TOgorKyAgICAgICppbmZvID0gKmluZm8gPT0gMCA/IDEgOiAtMTsKKysg ICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICAqaW5mbyA9IC0xOworKyAgICAgIGJy ZWFrOworKyAgICB9CisrICByZXR1cm4gTlVMTDsKKyt9CisgCisgLyogTG93ZXIgdGhlIE9wZW5N UCBwYXJhbGxlbCBkaXJlY3RpdmUgaW4gKlNUTVRfUC4gIENUWCBob2xkcyBjb250ZXh0CisgICAg aW5mb3JtYXRpb24gZm9yIHRoZSBkaXJlY3RpdmUuICAqLworQEAgLTQwNzcsNiArNDEwNCwxOSBA QCBsb3dlcl9vbXBfcGFyYWxsZWwgKHRyZWUgKnN0bXRfcCwgb21wX2NvCisgICBwYXJfYmluZCA9 IE9NUF9QQVJBTExFTF9CT0RZIChzdG10KTsKKyAgIHBhcl9ib2R5ID0gQklORF9FWFBSX0JPRFkg KHBhcl9iaW5kKTsKKyAgIGNoaWxkX2ZuID0gY3R4LT5jYi5kc3RfZm47CisrICBpZiAoIU9NUF9Q QVJBTExFTF9DT01CSU5FRCAoc3RtdCkpCisrICAgIHsKKysgICAgICBzdHJ1Y3Qgd2Fsa19zdG10 X2luZm8gd2k7CisrICAgICAgaW50IHdzX251bSA9IDA7CisrCisrICAgICAgbWVtc2V0ICgmd2ks IDAsIHNpemVvZiAod2kpKTsKKysgICAgICB3aS5jYWxsYmFjayA9IGNoZWNrX2NvbWJpbmVkX3Bh cmFsbGVsOworKyAgICAgIHdpLmluZm8gPSAmd3NfbnVtOworKyAgICAgIHdpLnZhbF9vbmx5ID0g dHJ1ZTsKKysgICAgICB3YWxrX3N0bXRzICgmd2ksICZwYXJfYmluZCk7CisrICAgICAgaWYgKHdz X251bSA9PSAxKQorKwlPTVBfUEFSQUxMRUxfQ09NQklORUQgKHN0bXQpID0gMTsKKysgICAgfQor IAorICAgcHVzaF9naW1wbGlmeV9jb250ZXh0ICgpOworIAorLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnL2dvbXAvcHIzMjQ2OC0xLmMuamoJMjAwNy0wNi0yNSAyMTowNDozMS4wMDAwMDAwMDAgKzAy MDAKKysrKyBnY2MvdGVzdHN1aXRlL2djYy5kZy9nb21wL3ByMzI0NjgtMS5jCTIwMDctMDYtMjUg MjE6MDc6MzUuMDAwMDAwMDAwICswMjAwCitAQCAtMCwwICsxLDEwMCBAQAorKy8qIFBSIGxpYmdv bXAvMzI0NjggKi8KKysvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworKy8qIHsgZGctb3B0aW9ucyAi LU8yIC1mb3Blbm1wIC1mZHVtcC10cmVlLW9tcGV4cCIgfSAqLworKworK2V4dGVybiBpbnQgcHJp bnRmIChjb25zdCBjaGFyICosIC4uLik7CisrZXh0ZXJuIGludCBvbXBfZ2V0X3RocmVhZF9udW0g KHZvaWQpLCBvbXBfZ2V0X251bV90aHJlYWRzICh2b2lkKTsKKytleHRlcm4gaW50IGJhciAodm9p ZCk7CisrZXh0ZXJuIGludCBiYXogKGNvbnN0IGNoYXIgKiwgLi4uKTsKKysKKyt2b2lkCisrZjEg KHZvaWQpCisreworKyNwcmFnbWEgb21wIHBhcmFsbGVsCisrICB7CisrICAgIGJheiAoIiVkLyVk XG4iLCBvbXBfZ2V0X3RocmVhZF9udW0gKCksIG9tcF9nZXRfbnVtX3RocmVhZHMgKCkpOworKyAg ICAjcHJhZ21hIG9tcCBzZWN0aW9ucworKyAgICAgIHsKKysJI3ByYWdtYSBvbXAgc2VjdGlvbgor KwlwcmludGYgKCJzZWN0aW9uMSAlZC8lZFxuIiwgb21wX2dldF90aHJlYWRfbnVtICgpLCBvbXBf Z2V0X251bV90aHJlYWRzICgpKTsKKysJI3ByYWdtYSBvbXAgc2VjdGlvbgorKwlwcmludGYgKCJz ZWN0aW9uMiAlZC8lZFxuIiwgb21wX2dldF90aHJlYWRfbnVtICgpLCBvbXBfZ2V0X251bV90aHJl YWRzICgpKTsKKysgICAgICB9CisrICB9CisrfQorKworK3ZvaWQKKytmMiAodm9pZCkKKyt7Cisr I3ByYWdtYSBvbXAgcGFyYWxsZWwKKysgIHsKKysgICAgI3ByYWdtYSBvbXAgc2VjdGlvbnMKKysg ICAgICB7CisrCSNwcmFnbWEgb21wIHNlY3Rpb24KKysJcHJpbnRmICgic2VjdGlvbjEgJWQvJWRc biIsIG9tcF9nZXRfdGhyZWFkX251bSAoKSwgb21wX2dldF9udW1fdGhyZWFkcyAoKSk7CisrCSNw cmFnbWEgb21wIHNlY3Rpb24KKysJcHJpbnRmICgic2VjdGlvbjIgJWQvJWRcbiIsIG9tcF9nZXRf dGhyZWFkX251bSAoKSwgb21wX2dldF9udW1fdGhyZWFkcyAoKSk7CisrICAgICAgfQorKyAgICBi YXogKCIlZC8lZFxuIiwgb21wX2dldF90aHJlYWRfbnVtICgpLCBvbXBfZ2V0X251bV90aHJlYWRz ICgpKTsKKysgIH0KKyt9CisrCisrdm9pZAorK2YzICh2b2lkKQorK3sKKysjcHJhZ21hIG9tcCBw YXJhbGxlbAorKyAgeworKyAgICBpbnQgYmIgPSBiYXIgKCk7CisrICAgICNwcmFnbWEgb21wIHNl Y3Rpb25zCisrICAgICAgeworKwkjcHJhZ21hIG9tcCBzZWN0aW9uCisrCXByaW50ZiAoInNlY3Rp b24xICVkLyVkXG4iLCBvbXBfZ2V0X3RocmVhZF9udW0gKCksIG9tcF9nZXRfbnVtX3RocmVhZHMg KCkpOworKwkjcHJhZ21hIG9tcCBzZWN0aW9uCisrCXByaW50ZiAoInNlY3Rpb24yICVkLyVkXG4i LCBvbXBfZ2V0X3RocmVhZF9udW0gKCksIG9tcF9nZXRfbnVtX3RocmVhZHMgKCkpOworKyAgICAg IH0KKysgIH0KKyt9CisrCisrdm9pZAorK2Y0ICh2b2lkKQorK3sKKysgIGludCBpOworKyNwcmFn bWEgb21wIHBhcmFsbGVsCisrICB7CisrICAgIGJheiAoIiVkLyVkXG4iLCBvbXBfZ2V0X3RocmVh ZF9udW0gKCksIG9tcF9nZXRfbnVtX3RocmVhZHMgKCkpOworKyAgICAjcHJhZ21hIG9tcCBmb3Ig c2NoZWR1bGUgKGR5bmFtaWMsIDE1KQorKyAgICBmb3IgKGkgPSAwOyBpIDwgMTAwMDA7IGkrKykK KysgICAgICBwcmludGYgKCJzZWN0aW9uMSAlZC8lZFxuIiwgb21wX2dldF90aHJlYWRfbnVtICgp LCBvbXBfZ2V0X251bV90aHJlYWRzICgpKTsKKysgIH0KKyt9CisrCisrdm9pZAorK2Y1ICh2b2lk KQorK3sKKysgIGludCBpOworKyNwcmFnbWEgb21wIHBhcmFsbGVsCisrICB7CisrICAgICNwcmFn bWEgb21wIGZvciBzY2hlZHVsZSAoZHluYW1pYywgMTUpCisrICAgIGZvciAoaSA9IDA7IGkgPCAx MDAwMDsgaSsrKQorKyAgICAgIHByaW50ZiAoInNlY3Rpb24xICVkLyVkXG4iLCBvbXBfZ2V0X3Ro cmVhZF9udW0gKCksIG9tcF9nZXRfbnVtX3RocmVhZHMgKCkpOworKyAgICBiYXogKCIlZC8lZFxu Iiwgb21wX2dldF90aHJlYWRfbnVtICgpLCBvbXBfZ2V0X251bV90aHJlYWRzICgpKTsKKysgIH0K Kyt9CisrCisrdm9pZAorK2Y2ICh2b2lkKQorK3sKKysgIGludCBpOworKyNwcmFnbWEgb21wIHBh cmFsbGVsCisrICB7CisrICAgIGludCBiYiA9IGJhciAoKTsKKysgICAgI3ByYWdtYSBvbXAgZm9y IHNjaGVkdWxlIChydW50aW1lKQorKyAgICBmb3IgKGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKKysg ICAgICBwcmludGYgKCJzZWN0aW9uMSAlZC8lZFxuIiwgb21wX2dldF90aHJlYWRfbnVtICgpLCBv bXBfZ2V0X251bV90aHJlYWRzICgpKTsKKysgIH0KKyt9CisrCisrLyogVGhlcmUgc2hvdWxkIG5v dCBiZSBhIEdPTVBfcGFyYWxsZWxfe2xvb3Asc2VjdGlvbnN9KiBjYWxsLiAgKi8KKysvKiB7IGRn LWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtdGltZXMgIkdPTVBfcGFyYWxsZWxfbG9vcCIgMCAib21w ZXhwIn0gfSAqLworKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcC10aW1lcyAiR09NUF9w YXJhbGxlbF9zZWN0aW9ucyIgMCAib21wZXhwIn0gfSAqLworKy8qIHsgZGctZmluYWwgeyBjbGVh bnVwLXRyZWUtZHVtcCAib21wZXhwIiB9IH0gKi8KKworCUpha3ViCgpkaWZmIC0tZ2l0IGEvZ2Nj NDEtcHIzMjQ2OC5wYXRjaCBiL2djYzQxLXByMzI0NjgucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uODJmMDkxZAotLS0gL2Rldi9udWxsCisrKyBiL2djYzQxLXByMzI0 NjgucGF0Y2gKQEAgLTAsMCArMSw1NCBAQAorMjAwNy0wNi0yNSAgSmFrdWIgSmVsaW5layAgPGph a3ViQHJlZGhhdC5jb20+CisKKwlQUiBsaWJnb21wLzMyNDY4CisJKiBzZWN0aW9ucy5jIChHT01Q X3BhcmFsbGVsX3NlY3Rpb25zX3N0YXJ0KTogT25seSBkZWNyZWFzZQorCW51bWJlciBvZiB0aHJl YWRzIHRvIENPVU5UIGlmIGR5bl92YXIgaXMgdHJ1ZS4KKworCSogbGliZ29tcC5jL3ByMzI0Njgu YzogTmV3IHRlc3QuCisKKy0tLSBsaWJnb21wL3NlY3Rpb25zLmMuamoJMjAwNi0xMC0wNSAwMDoy NDo0MC4wMDAwMDAwMDAgKzAyMDAKKysrKyBsaWJnb21wL3NlY3Rpb25zLmMJMjAwNy0wNi0yNSAy MjowMzoxNy4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xLDQgKzEsNCBAQAorLS8qIENvcHlyaWdodCAo QykgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysvKiBDb3B5cmlnaHQgKEMp IDIwMDUsIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICAgQ29udHJpYnV0 ZWQgYnkgUmljaGFyZCBIZW5kZXJzb24gPHJ0aEByZWRoYXQuY29tPi4KKyAKKyAgICBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIE9wZW5NUCBMaWJyYXJ5IChsaWJnb21wKS4KK0BAIC0xMDYs NyArMTA2LDcgQEAgR09NUF9wYXJhbGxlbF9zZWN0aW9uc19zdGFydCAodm9pZCAoKmZuKQorICAg c3RydWN0IGdvbXBfd29ya19zaGFyZSAqd3M7CisgCisgICBudW1fdGhyZWFkcyA9IGdvbXBfcmVz b2x2ZV9udW1fdGhyZWFkcyAobnVtX3RocmVhZHMpOworLSAgaWYgKG51bV90aHJlYWRzID4gY291 bnQpCisrICBpZiAoZ29tcF9keW5fdmFyICYmIG51bV90aHJlYWRzID4gY291bnQpCisgICAgIG51 bV90aHJlYWRzID0gY291bnQ7CisgCisgICB3cyA9IGdvbXBfbmV3X3dvcmtfc2hhcmUgKGZhbHNl LCBudW1fdGhyZWFkcyk7CistLS0gbGliZ29tcC90ZXN0c3VpdGUvbGliZ29tcC5jL3ByMzI0Njgu Yy5qagkyMDA3LTA2LTI1IDIxOjUxOjA3LjAwMDAwMDAwMCArMDIwMAorKysrIGxpYmdvbXAvdGVz dHN1aXRlL2xpYmdvbXAuYy9wcjMyNDY4LmMJMjAwNy0wNi0yNSAyMTo1NTo0NC4wMDAwMDAwMDAg KzAyMDAKK0BAIC0wLDAgKzEsMjYgQEAKKysvKiBQUiBsaWJnb21wLzMyNDY4ICovCisrLyogeyBk Zy1kbyBydW4gfSAqLworKworKyNpbmNsdWRlIDxvbXAuaD4KKysjaW5jbHVkZSA8c3RkbGliLmg+ CisrCisraW50CisrbWFpbiAodm9pZCkKKyt7CisrICBpbnQgcmVzWzJdID0geyAtMSwgLTEgfTsK KysgIG9tcF9zZXRfZHluYW1pYyAoMCk7CisrICBvbXBfc2V0X251bV90aHJlYWRzICg0KTsKKysj cHJhZ21hIG9tcCBwYXJhbGxlbAorKyAgeworKyAgICAjcHJhZ21hIG9tcCBzZWN0aW9ucworKyAg ICAgIHsKKysJI3ByYWdtYSBvbXAgc2VjdGlvbgorKwlyZXNbMF0gPSBvbXBfZ2V0X251bV90aHJl YWRzICgpICE9IDQ7CisrCSNwcmFnbWEgb21wIHNlY3Rpb24KKysJcmVzWzFdID0gb21wX2dldF9u dW1fdGhyZWFkcyAoKSAhPSA0OworKyAgICAgIH0KKysgIH0KKysgIGlmIChyZXNbMF0gIT0gMCB8 fCByZXNbMV0gIT0gMCkKKysgICAgYWJvcnQgKCk7CisrICByZXR1cm4gMDsKKyt9CgpkaWZmIC0t Z2l0IGEvZ2NjNDEtcmgyMzQ1MTUucGF0Y2ggYi9nY2M0MS1yaDIzNDUxNS5wYXRjaApkZWxldGVk IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTJhMjQxZC4uMDAwMDAwMAotLS0gYS9nY2M0MS1yaDIz NDUxNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDczICswLDAgQEAKLTIwMDctMDEtMjQgICBT dGV2ZSBMb0Jhc3NvIDxzbG9iYXNzb0B5YWhvby5jb20+Ci0JICAgICBQYW9sbyBDYXJsaW5pICA8 cGNhcmxpbmlAc3VzZS5kZT4KLQotCSogaW5jbHVkZS9iaXRzL2RlcXVlLnRjYyAoZGVxdWU8Pjo6 ZXJhc2UoaXRlcmF0b3IsIGl0ZXJhdG9yKSk6Ci0JRml4IGNvbmRpdGlvbi4KLQkqIHRlc3RzdWl0 ZS8yM19jb250YWluZXJzL2RlcXVlL21vZGlmaWVycy9lcmFzZS8zLmNjOiBOZXcuCi0KLS0tLSBs aWJzdGRjKystdjMvaW5jbHVkZS9iaXRzL2RlcXVlLnRjYwkocmV2aXNpb24gMTIxMTQ2KQotKysr IGxpYnN0ZGMrKy12My9pbmNsdWRlL2JpdHMvZGVxdWUudGNjCShyZXZpc2lvbiAxMjExNDcpCi1A QCAtMTQyLDcgKzE0Miw3IEBAIG5hbWVzcGFjZSBfR0xJQkNYWF9TVEQKLSAJICBjb25zdCBkaWZm ZXJlbmNlX3R5cGUgX19uID0gX19sYXN0IC0gX19maXJzdDsKLSAJICBjb25zdCBkaWZmZXJlbmNl X3R5cGUgX19lbGVtc19iZWZvcmUgPSAoX19maXJzdAotIAkJCQkJCSAgLSB0aGlzLT5fTV9pbXBs Ll9NX3N0YXJ0KTsKLS0JICBpZiAoc3RhdGljX2Nhc3Q8c2l6ZV90eXBlPihfX2VsZW1zX2JlZm9y ZSkgPCAoc2l6ZSgpIC0gX19uKSAvIDIpCi0rCSAgaWYgKHN0YXRpY19jYXN0PHNpemVfdHlwZT4o X19lbGVtc19iZWZvcmUpIDw9IChzaXplKCkgLSBfX24pIC8gMikKLSAJICAgIHsKLSAJICAgICAg c3RkOjpjb3B5X2JhY2t3YXJkKHRoaXMtPl9NX2ltcGwuX01fc3RhcnQsIF9fZmlyc3QsIF9fbGFz dCk7Ci0gCSAgICAgIGl0ZXJhdG9yIF9fbmV3X3N0YXJ0ID0gdGhpcy0+X01faW1wbC5fTV9zdGFy dCArIF9fbjsKLS0tLSBsaWJzdGRjKystdjMvdGVzdHN1aXRlLzIzX2NvbnRhaW5lcnMvZGVxdWUv bW9kaWZpZXJzL2VyYXNlLzMuY2MJKHJldmlzaW9uIDApCi0rKysgbGlic3RkYysrLXYzL3Rlc3Rz dWl0ZS8yM19jb250YWluZXJzL2RlcXVlL21vZGlmaWVycy9lcmFzZS8zLmNjCShyZXZpc2lvbiAx MjExNDcpCi1AQCAtMCwwICsxLDUyIEBACi0rLy8gQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKy8vCi0rLy8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBJU08gQysrIExpYnJhcnkuICBUaGlzIGxpYnJhcnkgaXMgZnJlZQotKy8vIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIHRoZQotKy8v IHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg dGhlCi0rLy8gRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAo YXQgeW91ciBvcHRpb24pCi0rLy8gYW55IGxhdGVyIHZlcnNpb24uCi0rCi0rLy8gVGhpcyBsaWJy YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0r Ly8gYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSsvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCi0rLy8gR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v cmUgZGV0YWlscy4KLSsKLSsvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZwotKy8vIHdpdGggdGhpcyBsaWJyYXJ5 OyBzZWUgdGhlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKLSsvLyBT b2Z0d2FyZSBGb3VuZGF0aW9uLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0 b24sIE1BIDAyMTEwLTEzMDEsCi0rLy8gVVNBLgotKwotKy8vIDIzLjIuMS4zIGRlcXVlIG1vZGlm aWVycwotKwotKyNpbmNsdWRlIDxkZXF1ZT4KLSsjaW5jbHVkZSA8dGVzdHN1aXRlX2hvb2tzLmg+ Ci0rCi0rdm9pZCBlcmFzZShzaXplX3QgbnVtX2VsbSwgc2l6ZV90IGVsbV9zdHJ0LCBzaXplX3Qg ZWxtX2VuZCkKLSt7Ci0rICBib29sIHRlc3QgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgPSB0cnVl OwotKyAgdXNpbmcgX19nbnVfdGVzdDo6Y29weV90cmFja2VyOwotKyAgdXNpbmcgX19nbnVfdGVz dDo6YXNzaWdubWVudF9vcGVyYXRvcjsKLSsKLSsgIHN0ZDo6ZGVxdWU8Y29weV90cmFja2VyPiB4 KG51bV9lbG0pOwotKyAgY29weV90cmFja2VyOjpyZXNldCgpOwotKyAgCi0rICB4LmVyYXNlKHgu YmVnaW4oKSArIGVsbV9zdHJ0LCB4LmJlZ2luKCkgKyBlbG1fZW5kKTsKLSsgIAotKyAgY29uc3Qg c2l6ZV90IG1pbl9udW1fY3B5ID0gc3RkOjptaW4oZWxtX3N0cnQsIG51bV9lbG0gLSBlbG1fZW5k KTsKLSsgIFZFUklGWSggYXNzaWdubWVudF9vcGVyYXRvcjo6Y291bnQoKSA9PSBtaW5fbnVtX2Nw eSApOwotK30KLSsKLSsvLyBodHRwOi8vZ2NjLmdudS5vcmcvbWwvbGlic3RkYysrLzIwMDctMDEv bXNnMDAwOTguaHRtbAotK3ZvaWQgdGVzdDAxKCkKLSt7Ci0rICBmb3IgKHNpemVfdCBudW1fZWxt ID0gMDsgbnVtX2VsbSA8PSAxMDsgKytudW1fZWxtKQotKyAgICBmb3IgKHNpemVfdCBlbG1fc3Ry dCA9IDA7IGVsbV9zdHJ0IDw9IG51bV9lbG07ICsrZWxtX3N0cnQpCi0rICAgICAgZm9yIChzaXpl X3QgZWxtX2VuZCA9IGVsbV9zdHJ0OyBlbG1fZW5kIDw9IG51bV9lbG07ICsrZWxtX2VuZCkKLSsJ ZXJhc2UobnVtX2VsbSwgZWxtX3N0cnQsIGVsbV9lbmQpOwotK30KLSsKLStpbnQgbWFpbigpCi0r ewotKyAgdGVzdDAxKCk7Ci0rICByZXR1cm4gMDsKLSt9CgpkaWZmIC0tZ2l0IGEvZ2NjNDEtcmgy NDU0MjQucGF0Y2ggYi9nY2M0MS1yaDI0NTQyNC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4zMzc5ZGUyCi0tLSAvZGV2L251bGwKKysrIGIvZ2NjNDEtcmgyNDU0MjQu cGF0Y2gKQEAgLTAsMCArMSwzNSBAQAorMjAwNy0wNi0yNSAgSmFrdWIgSmVsaW5layAgPGpha3Vi QHJlZGhhdC5jb20+CisKKwkqIGNvbmZpZy9yczYwMDAvcnM2MDAwLmMgKHJzNjAwMF9mdW5jdGlv bl9va19mb3Jfc2liY2FsbCk6IEVuc3VyZQorCWRlY2wgaXMgbm9uLWV4dGVybmFsIGZvciBBSVgg QUJJLgorCisyMDA3LTA2LTI1ICBEYXZpZCBFZGVsc29obiAgPGVkZWxzb2huQGdudS5vcmc+CisK KwkqIGNvbmZpZy9yczYwMDAvcHJlZGljYXRlcy5tZCAoY3VycmVudF9maWxlX2Z1bmN0aW9uX29w ZXJhbmQpOgorCUVuc3VyZSB0aGUgc3ltYm9sIGlzIG5vbi1leHRlcm5hbCBmb3IgQUlYIEFCSS4K KworLS0tIGdjYy9jb25maWcvcnM2MDAwL3JzNjAwMC5jLmpqCTIwMDctMDYtMjUgMjI6MjI6NDEu MDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9yczYwMDAvcnM2MDAwLmMJMjAwNy0wNi0y NSAyMzoxMToyMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0xMzkzOCw3ICsxMzkzOCw4IEBAIHJzNjAw MF9mdW5jdGlvbl9va19mb3Jfc2liY2FsbCAodHJlZSBkZWMKKyAJICAgIH0KKyAJfQorICAgICAg IGlmIChERUZBVUxUX0FCSSA9PSBBQklfREFSV0lOCistCSAgfHwgKCp0YXJnZXRtLmJpbmRzX2xv Y2FsX3ApIChkZWNsKSkKKysJICB8fCAoKCp0YXJnZXRtLmJpbmRzX2xvY2FsX3ApIChkZWNsKQor KwkgICAgICAmJiAoREVGQVVMVF9BQkkgIT0gQUJJX0FJWCB8fCAhREVDTF9FWFRFUk5BTCAoZGVj bCkpKSkKKyAJeworIAkgIHRyZWUgYXR0cl9saXN0ID0gVFlQRV9BVFRSSUJVVEVTIChUUkVFX1RZ UEUgKGRlY2wpKTsKKyAKKy0tLSBnY2MvY29uZmlnL3JzNjAwMC9wcmVkaWNhdGVzLm1kLmpqCTIw MDctMDYtMjUgMjI6MjI6NDEuMDAwMDAwMDAwICswMjAwCisrKysgZ2NjL2NvbmZpZy9yczYwMDAv cHJlZGljYXRlcy5tZAkyMDA3LTA2LTI1IDIyOjU3OjE5LjAwMDAwMDAwMCArMDIwMAorQEAgLTY5 Niw3ICs2OTYsOSBAQAorIChkZWZpbmVfcHJlZGljYXRlICJjdXJyZW50X2ZpbGVfZnVuY3Rpb25f b3BlcmFuZCIKKyAgIChhbmQgKG1hdGNoX2NvZGUgInN5bWJvbF9yZWYiKQorICAgICAgICAobWF0 Y2hfdGVzdCAiKERFRkFVTFRfQUJJICE9IEFCSV9BSVggfHwgU1lNQk9MX1JFRl9GVU5DVElPTl9Q IChvcCkpCistCQkgICAgJiYgKFNZTUJPTF9SRUZfTE9DQUxfUCAob3ApCisrCQkgICAgJiYgKChT WU1CT0xfUkVGX0xPQ0FMX1AgKG9wKQorKwkJCSAmJiAoREVGQVVMVF9BQkkgIT0gQUJJX0FJWAor KwkJCSAgICAgfHwgIVNZTUJPTF9SRUZfRVhURVJOQUxfUCAob3ApKSkKKyAJCSAgICAgICAgfHwg KG9wID09IFhFWFAgKERFQ0xfUlRMIChjdXJyZW50X2Z1bmN0aW9uX2RlY2wpLAorIAkJCQkJCSAg MCkpKSIpKSkKKyAKCmRpZmYgLS1naXQgYS9nY2M0MS1zdHJuY2F0LWNoay5wYXRjaCBiL2djYzQx LXN0cm5jYXQtY2hrLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMWMwMWI4 Li4wMDAwMDAwCi0tLSBhL2djYzQxLXN0cm5jYXQtY2hrLnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsOTMgKzAsMCBAQAotMjAwNi0wOS0xOCAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5j b20+Ci0KLQkqIGJ1aWx0aW5zLmMgKGV4cGFuZF9idWlsdGluLCBtYXliZV9lbWl0X2Noa193YXJu aW5nKTogSGFuZGxlCi0JQlVJTFRfSU5fU1RSTkNBVF9DSEsuCi0KLQkqIGdjYy5kZy9idWlsdGlu LXN0cm5jYXQtY2hrLTEuYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvYnVpbHRpbnMuYy5qagkyMDA2 LTA5LTAyIDA4OjU0OjIyLjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy9idWlsdGlucy5jCTIwMDYt MDktMTggMTY6NTQ6NTcuMDAwMDAwMDAwICswMjAwCi1AQCAtNjQzNyw2ICs2NDM3LDcgQEAgZXhw YW5kX2J1aWx0aW4gKHRyZWUgZXhwLCBydHggdGFyZ2V0LCBydAotICAgICBjYXNlIEJVSUxUX0lO X1NUUENQWV9DSEs6Ci0gICAgIGNhc2UgQlVJTFRfSU5fU1RSTkNQWV9DSEs6Ci0gICAgIGNhc2Ug QlVJTFRfSU5fU1RSQ0FUX0NISzoKLSsgICAgY2FzZSBCVUlMVF9JTl9TVFJOQ0FUX0NISzoKLSAg ICAgY2FzZSBCVUlMVF9JTl9TTlBSSU5URl9DSEs6Ci0gICAgIGNhc2UgQlVJTFRfSU5fVlNOUFJJ TlRGX0NISzoKLSAgICAgICBtYXliZV9lbWl0X2Noa193YXJuaW5nIChleHAsIGZjb2RlKTsKLUBA IC0xMDEyOCw2ICsxMDEyOSwxMSBAQCBtYXliZV9lbWl0X2Noa193YXJuaW5nICh0cmVlIGV4cCwg ZW51bSBiCi0gICAgICAgYXJnX21hc2sgPSA2OwotICAgICAgIGlzX3N0cmxlbiA9IDE7Ci0gICAg ICAgYnJlYWs7Ci0rICAgIGNhc2UgQlVJTFRfSU5fU1RSTkNBVF9DSEs6Ci0rICAgIC8qIEZvciBf X3N0cm5jYXRfY2hrIHRoZSB3YXJuaW5nIHdpbGwgYmUgZW1pdHRlZCBvbmx5IGlmIG92ZXJmbG93 aW5nCi0rICAgICAgIGJ5IGF0IGxlYXN0IHN0cmxlbiAoZGVzdCkgKyAxIGJ5dGVzLiAgKi8KLSsg ICAgICBhcmdfbWFzayA9IDEyOwotKyAgICAgIGJyZWFrOwotICAgICBjYXNlIEJVSUxUX0lOX1NU Uk5DUFlfQ0hLOgotICAgICAgIGFyZ19tYXNrID0gMTI7Ci0gICAgICAgYnJlYWs7Ci1AQCAtMTAx NjUsNiArMTAxNzEsMjIgQEAgbWF5YmVfZW1pdF9jaGtfd2FybmluZyAodHJlZSBleHAsIGVudW0g YgotICAgICAgIGlmICghIGxlbiB8fCAhIGhvc3RfaW50ZWdlcnAgKGxlbiwgMSkgfHwgdHJlZV9p bnRfY3N0X2x0IChsZW4sIHNpemUpKQotIAlyZXR1cm47Ci0gICAgIH0KLSsgIGVsc2UgaWYgKGZj b2RlID09IEJVSUxUX0lOX1NUUk5DQVRfQ0hLKQotKyAgICB7Ci0rICAgICAgdHJlZSBzcmMgPSBU UkVFX1ZBTFVFIChUUkVFX0NIQUlOIChhcmdsaXN0KSk7Ci0rICAgICAgaWYgKCEgc3JjIHx8ICEg aG9zdF9pbnRlZ2VycCAobGVuLCAxKSB8fCB0cmVlX2ludF9jc3RfbHQgKGxlbiwgc2l6ZSkpCi0r CXJldHVybjsKLSsgICAgICBzcmMgPSBjX3N0cmxlbiAoc3JjLCAxKTsKLSsgICAgICBpZiAoISBz cmMgfHwgISBob3N0X2ludGVnZXJwIChzcmMsIDEpKQotKwl7Ci0rCSAgbG9jdXMgPSBFWFBSX0xP Q0FUSU9OIChleHApOwotKwkgIHdhcm5pbmcgKDAsICIlSGNhbGwgdG8gJUQgbWlnaHQgb3ZlcmZs b3cgZGVzdGluYXRpb24gYnVmZmVyIiwKLSsJCSAgICZsb2N1cywgZ2V0X2NhbGxlZV9mbmRlY2wg KGV4cCkpOwotKwkgIHJldHVybjsKLSsJfQotKyAgICAgIGVsc2UgaWYgKHRyZWVfaW50X2NzdF9s dCAoc3JjLCBzaXplKSkKLSsJcmV0dXJuOwotKyAgICB9Ci0gICBlbHNlIGlmICghIGhvc3RfaW50 ZWdlcnAgKGxlbiwgMSkgfHwgISB0cmVlX2ludF9jc3RfbHQgKHNpemUsIGxlbikpCi0gICAgIHJl dHVybjsKLSAKLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy9idWlsdGluLXN0cm5jYXQtY2hrLTEu Yy5qagkyMDA2LTA5LTE4IDEzOjA3OjU0LjAwMDAwMDAwMCArMDIwMAotKysrIGdjYy90ZXN0c3Vp dGUvZ2NjLmRnL2J1aWx0aW4tc3RybmNhdC1jaGstMS5jCTIwMDYtMDktMTggMTY6NTU6MDkuMDAw MDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDM4IEBACi0rLyogVGVzdCB3aGV0aGVyIGJ1ZmZlciBv dmVyZmxvdyB3YXJuaW5ncyBmb3IgX19zdHJuY2F0X2NoayBidWlsdGluCi0rICAgYXJlIGVtaXR0 ZWQgcHJvcGVybHkuICAqLwotKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCi0rLyogeyBkZy1vcHRp b25zICItTzIgLXN0ZD1nbnU5OSIgfSAqLwotKwotK2V4dGVybiB2b2lkIGFib3J0ICh2b2lkKTsK LSsKLSsjaW5jbHVkZSAiLi4vZ2NjLmMtdG9ydHVyZS9leGVjdXRlL2J1aWx0aW5zL2Noay5oIgot KwotK2NoYXIgYnVmMVsyMF07Ci0rY2hhciAqcTsKLSsKLSt2b2lkCi0rdGVzdCAoaW50IGFyZywg Li4uKQotK3sKLSsgIGNoYXIgKnAgPSAmYnVmMVsxMF07Ci0rCi0rICAqcCA9IDA7Ci0rICBzdHJu Y2F0IChwLCAiYWJjZGVmZyIsIDkpOwotKyAgKnAgPSAwOwotKyAgc3RybmNhdCAocCwgImFiY2Rl ZmdoaSIsIDkpOwotKyAgKnAgPSAwOwotKyAgc3RybmNhdCAocCwgImFiY2RlZmdoaWoiLCA5KTsK LSsgICpwID0gMDsKLSsgIHN0cm5jYXQgKHAsICJhYmNkZWZnaGkiLCAxMCk7Ci0rICAqcCA9IDA7 Ci0rICBzdHJuY2F0IChwLCAiYWJjZGVmZ2hpaiIsIDEwKTsgLyogeyBkZy13YXJuaW5nICJ3aWxs IGFsd2F5cyBvdmVyZmxvdyIgfSAqLwotKyAgKnAgPSAwOwotKyAgc3RybmNhdCAocCwgImFiY2Rl ZmdoIiwgMTEpOwotKyAgKnAgPSAwOwotKyAgc3RybmNhdCAocCwgImFiY2RlZmdoaWprbCIsIDEx KTsgLyogeyBkZy13YXJuaW5nICJ3aWxsIGFsd2F5cyBvdmVyZmxvdyIgfSAqLwotKyAgKnAgPSAw OwotKyAgc3RybmNhdCAocCwgcSwgOSk7Ci0rICAqcCA9IDA7Ci0rICBzdHJuY2F0IChwLCBxLCAx MCk7IC8qIHsgZGctd2FybmluZyAibWlnaHQgb3ZlcmZsb3ciIH0gKi8KLSsgICpwID0gMDsKLSsg IHN0cm5jYXQgKHAsIHEsIDExKTsgLyogeyBkZy13YXJuaW5nICJtaWdodCBvdmVyZmxvdyIgfSAq LwotK30KCmRpZmYgLS1naXQgYS9nY2M0MS10ZXN0cy5wYXRjaCBiL2djYzQxLXRlc3RzLnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2M2VmMTcxLi4wMDAwMDAwCi0tLSBhL2dj YzQxLXRlc3RzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMzkyICswLDAgQEAKLTIwMDYtMTIt MDggIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgotCi0JKiBnKysuZGcvZGVidWcv dmFydHJhY2sxLkM6IE5ldyB0ZXN0LgotCi0JKiBnKysuZGcvb3B0L2lmY3Z0MS5DOiBOZXcgdGVz dC4KLQotMjAwNi0xMi0wOCAgQWxleGFuZHJlIE9saXZhICA8YW9saXZhQHJlZGhhdC5jb20+Ci0K LQkqIGcrKy5kZy90ZW1wbGF0ZS9hcnJheTE3LkM6IE5ldyB0ZXN0LgotCi0yMDA2LTA1LTA1ICBK YWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KLQotCSogZ2NjLmRnL3Rscy9vcHQtMTMu YzogTmV3IHRlc3QuCi0KLTIwMDYtMDQtMjUgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQu Y29tPgotCi0JKiBnY2MuZGcvMjAwNjA0MjUtMi5jOiBOZXcgdGVzdC4KLQotCSogZysrLmRnL29w dC9wcjE1MDU0LTIuQzogTmV3IHRlc3QuCi0KLTIwMDYtMDQtMjAgIEpha3ViIEplbGluZWsgIDxq YWt1YkByZWRoYXQuY29tPgotCi0JKiBnY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwNjA0MjAtMS5j OiBOZXcgdGVzdC4KLQotMjAwNi0wNC0xMiAgSmFrdWIgSmVsaW5layAgPGpha3ViQHJlZGhhdC5j b20+Ci0KLQkqIGdjYy5jLXRvcnR1cmUvZXhlY3V0ZS8yMDA2MDQxMi0xLmM6IE5ldyB0ZXN0Lgot Ci0yMDA2LTAyLTI1ICBBbGV4YW5kcmUgT2xpdmEgIDxhb2xpdmFAcmVkaGF0LmNvbT4KLQotCSog Z2NjLnRhcmdldC9wb3dlcnBjL2FsdGl2ZWMtMjMuYzogTmV3IHRlc3QuCi0KLS0tLSBnY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9hbHRpdmVjLTIzLmMJMTk3MC0wMS0wMSAwMDowMDow MC4wMDAwMDAwMDAgKzAwMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvcG93ZXJwYy9h bHRpdmVjLTIzLmMJMjAwNi0wMi0yNSAwNDoxMDozNi4wMDAwMDAwMDAgLTAzMDAKLUBAIC0wLDAg KzEsMjUgQEAKLSsvKiBWZXJpZnkgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgdmFyaWFi bGVzIG9mIGNvbXBvc2l0ZSB0eXBlcwotKyAgIGNvbnRhaW5pbmcgdmVjdG9yIHR5cGVzLiAgV2Ug dXNlZCB0byBjcmFzaCBoYW5kbGluZyB0aGUKLSsgICBpbml0aWFsaXplciBvZiBhdXRvbWF0aWMg b25lcy4gICovCi0rCi0rLyogeyBkZy1kbyBjb21waWxlIH0gKi8KLSsvKiB7IGRnLXhmYWlsLWlm ICIiIHsgInBvd2VycGMtaWJtLWFpeCoiIH0geyAiLW1hbHRpdmVjIiB9IHsgIiIgfSB9ICovCi0r LyogeyBkZy1vcHRpb25zICItbWFsdGl2ZWMgLW1hYmk9YWx0aXZlYyIgfSAqLwotKwotKyNpbmNs dWRlIDxhbHRpdmVjLmg+Ci0rCi0rdHlwZWRlZiBpbnQgYnQ7Ci0rdHlwZWRlZiB2ZWN0b3IgYnQg dnQ7Ci0rdHlwZWRlZiBzdHJ1Y3QgeyB2dCB4OyBidCB5W3NpemVvZih2dCkgLyBzaXplb2YgKGJ0 KV07IH0gc3Q7Ci0rI2RlZmluZSBJTklUIHsgMSwgMiwgMywgNCB9Ci0rCi0rdm9pZCBmICgpCi0r ewotKyAgdnQgeCA9IElOSVQ7Ci0rICB2dCB5WzFdID0geyBJTklUIH07Ci0rICBzdCBzID0geyBJ TklULCBJTklUIH07Ci0rfQotKwotK3Z0IHggPSBJTklUOwotK3Z0IHlbMV0gPSB7IElOSVQgfTsK LStzdCBzID0geyBJTklULCBJTklUIH07Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJl L2V4ZWN1dGUvMjAwNjA0MjAtMS5jLmpqCTIwMDYtMDQtMjAgMTg6NDc6MTkuMDAwMDAwMDAwICsw MjAwCi0rKysgZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwNjA0MjAtMS5j CTIwMDYtMDQtMjAgMTk6MDc6MjAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDcxIEBACi0r ZXh0ZXJuIHZvaWQgYWJvcnQgKHZvaWQpOwotKwotK3R5cGVkZWYgZmxvYXQgdjRmbHQgX19hdHRy aWJ1dGVfXyAoKHZlY3Rvcl9zaXplICgxNikpKTsKLSsKLSt2b2lkIF9fYXR0cmlidXRlX18gKChu b2lubGluZSkpIGZvbyAoZmxvYXQgKmRzdCwgZmxvYXQgKipzcmMsIGludCBhLCBpbnQgbikKLSt7 Ci0rICBpbnQgaSwgajsKLSsgIGludCB6ID0gc2l6ZW9mICh2NGZsdCkgLyBzaXplb2YgKGZsb2F0 KTsKLSsgIHVuc2lnbmVkIG0gPSBzaXplb2YgKHY0Zmx0KSAtIDE7Ci0rCi0rICBmb3IgKGogPSAw OyBqIDwgbiAmJiAoKCh1bnNpZ25lZCBsb25nKSBkc3QgKyBqKSAmIG0pOyArK2opCi0rICAgIHsK LSsgICAgICBmbG9hdCB0ID0gc3JjWzBdW2pdOwotKyAgICAgIGZvciAoaSA9IDE7IGkgPCBhOyAr K2kpCi0rCXQgKz0gc3JjW2ldW2pdOwotKyAgICAgIGRzdFtqXSA9IHQ7Ci0rICAgIH0KLSsKLSsg IGZvciAoOyBqIDwgKG4gLSAoNCAqIHogLSAxKSk7IGogKz0gNCAqIHopCi0rICAgIHsKLSsgICAg ICB2NGZsdCB0MCA9ICoodjRmbHQgKikgKHNyY1swXSArIGogKyAwICogeik7Ci0rICAgICAgdjRm bHQgdDEgPSAqKHY0Zmx0ICopIChzcmNbMF0gKyBqICsgMSAqIHopOwotKyAgICAgIHY0Zmx0IHQy ID0gKih2NGZsdCAqKSAoc3JjWzBdICsgaiArIDIgKiB6KTsKLSsgICAgICB2NGZsdCB0MyA9ICoo djRmbHQgKikgKHNyY1swXSArIGogKyAzICogeik7Ci0rICAgICAgZm9yIChpID0gMTsgaSA8IGE7 ICsraSkKLSsJewotKwkgIHQwICs9ICoodjRmbHQgKikgKHNyY1tpXSArIGogKyAwICogeik7Ci0r CSAgdDEgKz0gKih2NGZsdCAqKSAoc3JjW2ldICsgaiArIDEgKiB6KTsKLSsJICB0MiArPSAqKHY0 Zmx0ICopIChzcmNbaV0gKyBqICsgMiAqIHopOwotKwkgIHQzICs9ICoodjRmbHQgKikgKHNyY1tp XSArIGogKyAzICogeik7Ci0rCX0KLSsgICAgICAqKHY0Zmx0ICopIChkc3QgKyBqICsgMCAqIHop ID0gdDA7Ci0rICAgICAgKih2NGZsdCAqKSAoZHN0ICsgaiArIDEgKiB6KSA9IHQxOwotKyAgICAg ICoodjRmbHQgKikgKGRzdCArIGogKyAyICogeikgPSB0MjsKLSsgICAgICAqKHY0Zmx0ICopIChk c3QgKyBqICsgMyAqIHopID0gdDM7Ci0rICAgIH0KLSsgIGZvciAoOyBqIDwgbjsgKytqKQotKyAg ICB7Ci0rICAgICAgZmxvYXQgdCA9IHNyY1swXVtqXTsKLSsgICAgICBmb3IgKGkgPSAxOyBpIDwg YTsgKytpKQotKwl0ICs9IHNyY1tpXVtqXTsKLSsgICAgICBkc3Rbal0gPSB0OwotKyAgICB9Ci0r fQotKwotK2Zsb2F0IGJ1ZmZlcls2NF07Ci0rCi0raW50Ci0rbWFpbiAodm9pZCkKLSt7Ci0rICBp bnQgaTsKLSsgIGZsb2F0ICpkc3QsICpzcmNbMl07Ci0rCi0rICBkc3QgPSBidWZmZXI7Ci0rICBk c3QgKz0gKC0obG9uZyBpbnQpIGJ1ZmZlciAmICgxNiAqIHNpemVvZiAoZmxvYXQpIC0gMSkpIC8g c2l6ZW9mIChmbG9hdCk7Ci0rICBzcmNbMF0gPSBkc3QgKyAxNjsKLSsgIHNyY1sxXSA9IGRzdCAr IDMyOwotKyAgZm9yIChpID0gMDsgaSA8IDE2OyArK2kpCi0rICAgIHsKLSsgICAgICBzcmNbMF1b aV0gPSAoZmxvYXQpIGkgKyAxMSAqIChmbG9hdCkgaTsKLSsgICAgICBzcmNbMV1baV0gPSAoZmxv YXQpIGkgKyAxMiAqIChmbG9hdCkgaTsKLSsgICAgfQotKyAgZm9vIChkc3QsIHNyYywgMiwgMTYp OwotKyAgZm9yIChpID0gMDsgaSA8IDE2OyArK2kpCi0rICAgIHsKLSsgICAgICBmbG9hdCBlID0g KGZsb2F0KSBpICsgMTEgKiAoZmxvYXQpIGkgKyAoZmxvYXQpIGkgKyAxMiAqIChmbG9hdCkgaTsK LSsgICAgICBpZiAoZHN0W2ldICE9IGUpCi0rCWFib3J0ICgpOwotKyAgICB9Ci0rICByZXR1cm4g MDsKLSt9Ci0tLS0gZ2NjL3Rlc3RzdWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwNjA0MTIt MS5jLmpqCTIwMDYtMDQtMDMgMTE6MDQ6NTMuNzU4NTUzNTAwICswMjAwCi0rKysgZ2NjL3Rlc3Rz dWl0ZS9nY2MuYy10b3J0dXJlL2V4ZWN1dGUvMjAwNjA0MTItMS5jCTIwMDYtMDQtMTIgMTA6NTQ6 MjAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDMzIEBACi0rZXh0ZXJuIHZvaWQgYWJvcnQg KHZvaWQpOwotKwotK3N0cnVjdCBTCi0rewotKyAgbG9uZyBvOwotK307Ci0rCi0rc3RydWN0IFQK LSt7Ci0rICBsb25nIG87Ci0rICBzdHJ1Y3QgUyBtWzgyXTsKLSt9OwotKwotK3N0cnVjdCBUIHQ7 Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIHN0cnVjdCBTICpwLCAqcTsKLSsKLSsgIHAgPSAo c3RydWN0IFMgKikgJnQ7Ci0rICBwID0gJigoc3RydWN0IFQgKikgcCktPm1bMF07Ci0rICBxID0g cCArIDgyOwotKyAgd2hpbGUgKC0tcSA+IHApCi0rICAgIHEtPm8gPSAtMTsKLSsgIHEtPm8gPSAw OwotKwotKyAgaWYgKHEgPiBwKQotKyAgICBhYm9ydCAoKTsKLSsgIGlmIChxIC0gcCA+IDApCi0r ICAgIGFib3J0ICgpOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRn L29wdC9wcjE1MDU0LTIuQwkyMDA2LTA0LTE5IDE5OjIxOjMxLjc0ODQ3NjAwMCArMDIwMAotKysr IGdjYy90ZXN0c3VpdGUvZysrLmRnL29wdC9wcjE1MDU0LTIuQwkyMDA2LTA0LTI1IDE1OjU1OjA3 LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzOSBAQAotKy8vIFBSIG1pZGRsZS1lbmQvMTUw NTQKLSsKLSsvLyB7IGRnLWRvIHJ1biB9Ci0rLy8geyBkZy1vcHRpb25zICItTzIiIH0KLSsKLStl eHRlcm4gIkMiIHZvaWQgYWJvcnQgKHZvaWQpOwotKwotK3ZvaWQKLStfX2F0dHJpYnV0ZV9fKChu b2lubGluZSkpCi0rY2hlY2sgKGxvbmcgeCwgbG9uZyB5KQotK3sKLSsgIGlmICh4ICE9IHkpCi0r ICAgIGFib3J0ICgpOwotK30KLSsKLStzdHJ1Y3QgQQotK3sKLSsgIEEoKSA6IGEoMikgeyBjaGVj ayAoYSwgMik7IH0KLSsgIH5BKCkgeyBjaGVjayAoYSwgMik7IH0KLStwcml2YXRlOgotKyAgbG9u ZyBhOwotK307Ci0rCi0rY2xhc3MgQiB7Ci0rICBsb25nIGI7Ci0rICBCJiBvcGVyYXRvciA9KGNv bnN0IEImICk7Ci0rcHVibGljOgotKyAgQiAobG9uZyBwKSA6IGIocCkgeyBjaGVjayAoYiwgNik7 IH0KLSsgIEIgKGNvbnN0IEImIHApIDogYihwLmIpIHsgY2hlY2sgKGIsIDYpOyB9Ci0rICB+QiAo KSB7IGNoZWNrIChiLCA2KTsgQSBvYmo7IGNoZWNrIChiLCA2KTsgfQotKyAgQiBmb28oKSB7IHJl dHVybiBCKCp0aGlzKTsgfQotK307Ci0rCi0raW50IG1haW4gKCkKLSt7Ci0rICBCIG8oNik7Ci0r ICBvLmZvbygpLmZvbygpOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZ2Nj LmRnLzIwMDYwNDI1LTIuYwkyMDA0LTA2LTI0IDE0OjA0OjM4LjAwMDAwMDAwMCAtMDQwMAotKysr IGdjYy90ZXN0c3VpdGUvZ2NjLmRnLzIwMDYwNDI1LTIuYwkyMDA2LTA0LTI1IDA5OjE1OjA0LjAw MDAwMDAwMCAtMDQwMAotQEAgLTAsMCArMSwxMCBAQAotKy8qIHsgZGctZG8gY29tcGlsZSB9ICov Ci0rLyogeyBkZy1vcHRpb25zICItTzIiIH0gKi8KLSsKLStkb3VibGUKLStjcmFzaG1lIChkb3Vi bGUgdiwgZG91YmxlICpwKQotK3sKLSsgIGlmICh2IDwgMC4gJiYgKnAgPT0gMS4pCi0rICAgIHYg PSAwLjsKLSsgIHJldHVybiB2OwotK30KLS0tLSBnY2MvdGVzdHN1aXRlL2djYy5kZy90bHMvb3B0 LTEzLmMJMjAwNi0wNC0xOSAxOToyMTozMS43NDg0NzYwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1 aXRlL2djYy5kZy90bHMvb3B0LTEzLmMJMjAwNi0wNS0wNSAxMTowMTozMy4wMDAwMDAwMDAgKzAy MDAKLUBAIC0wLDAgKzEsMTYgQEAKLSsvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLwotKy8qIHsgZGct b3B0aW9ucyAiLU8yIiB9ICovCi0rLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdGxz IH0gKi8KLSsKLStfX3RocmVhZCBzdHJ1Y3QKLSt7Ci0rICBpbnQgYTsKLSsgIGNoYXIgYlszMl07 Ci0rfSB0aHI7Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsgIF9fYnVpbHRpbl9zdHJjcHkgKHRo ci5iLCAiYWJjZCIpOwotKyAgcmV0dXJuIDA7Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRn L2RlYnVnL3ZhcnRyYWNrMS5DCTIwMDQtMDYtMjQgMTQ6MDQ6MzguMDAwMDAwMDAwIC0wNDAwCi0r KysgZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvZGVidWcvdmFydHJhY2sxLkMJMjAwNi0xMi0wOCAwNToy OTo0MS4wMDAwMDAwMDAgLTA1MDAKLUBAIC0wLDAgKzEsOTkgQEAKLSsvLyBUaGlzIHRlc3RjYXNl IHVzZWQgdG8gaGFuZyB0aGUgY29tcGlsZXIgaW4gdnRfZmluZF9sb2NhdGlvbnMuCi0rLy8geyBk Zy1kbyBjb21waWxlIH0KLSsvLyB7IGRnLW9wdGlvbnMgIi1PMiAtZyIgfQotKwotK3N0cnVjdCBT Ci0rewotKyAgaW50IGE7Ci0rICBTICpiLCAqYywgKmQ7Ci0rfTsKLSsKLStzdHJ1Y3QgVAotK3sK LSsgIHZvaWQgZjEgKFMgKngpOwotKyAgdm9pZCBmMiAoUyAqeCk7Ci0rICB2b2lkIGYzIChTICp4 LCBTICp5KTsKLSsgIFMgKmU7Ci0rfTsKLSsKLSt2b2lkCi0rVDo6ZjMgKFMgKngsIFMgKnkpCi0r ewotKyAgd2hpbGUgKHggIT0gdGhpcy0+ZSAmJiAoIXggfHwgeC0+YSA9PSAxKSkKLSsgICAgewot KyAgICAgIGlmICh4ID09IHktPmMpCi0rCXsKLSsJICBTICp3ID0geS0+ZDsKLSsJICBpZiAodyAm JiB3LT5hID09IDApCi0rCSAgICB7Ci0rCSAgICAgIHctPmEgPSAxOwotKwkgICAgICB5LT5hID0g MDsKLSsJICAgICAgZjIgKHkpOwotKwkgICAgICB3ID0geS0+ZDsKLSsJICAgIH0KLSsJICBpZiAo dyAmJiAoIXctPmMgfHwgdy0+Yy0+YSA9PSAxKSAmJiAoIXctPmQgfHwgdy0+ZC0+YSA9PSAxKSkK LSsJICAgIHsKLSsJICAgICAgdy0+YSA9IDA7Ci0rCSAgICAgIHggPSB5OwotKwkgICAgICB5ID0g eC0+YjsKLSsJICAgIH0KLSsJICBlbHNlCi0rCSAgICB7Ci0rCSAgICAgIGlmICh3ICYmICghdy0+ ZCB8fCB3LT5kLT5hID09IDEpKQotKwkJewotKwkJICBpZiAody0+YykKLSsJCSAgICB3LT5jLT5h ID0gMTsKLSsJCSAgdy0+YSA9IDA7Ci0rCQkgIGYxICh3KTsKLSsJCSAgdyA9IHktPmQ7Ci0rCQl9 Ci0rCSAgICAgIGlmICh3KQotKwkJewotKwkJICB3LT5hID0geS0+YTsKLSsJCSAgaWYgKHctPmQp Ci0rCQkgICAgdy0+ZC0+YSA9IDE7Ci0rCQl9Ci0rCSAgICAgIHktPmEgPSAxOwotKwkgICAgICBm MiAoeSk7Ci0rCSAgICAgIHggPSBlOwotKwkgICAgfQotKwl9Ci0rICAgICAgZWxzZQotKwl7Ci0r CSAgUyAqdyA9IHktPmM7Ci0rCSAgaWYgKHcgJiYgdy0+YSA9PSAwKQotKwkgICAgewotKwkgICAg ICB3LT5hID0gMTsKLSsJICAgICAgeS0+YSA9IDA7Ci0rCSAgICAgIGYxICh5KTsKLSsJICAgICAg dyA9IHktPmM7Ci0rCSAgICB9Ci0rCSAgaWYgKHcgJiYgKCF3LT5jIHx8IHctPmMtPmEgPT0gMSkg JiYgKCF3LT5kIHx8IHctPmQtPmEgPT0gMSkpCi0rCSAgICB7Ci0rCSAgICAgIHctPmEgPSAwOwot KwkgICAgICB4ID0geTsKLSsJICAgICAgeSA9IHgtPmI7Ci0rCSAgICB9Ci0rCSAgZWxzZQotKwkg ICAgewotKwkgICAgICBpZiAodyAmJiAoIXctPmMgfHwgdy0+Yy0+YSA9PSAxKSkKLSsJCXsKLSsJ CSAgdy0+YSA9IDA7Ci0rCQkgIGlmICh3LT5kKQotKwkJICAgIHctPmQtPmEgPSAxOwotKwkJICBm MiAodyk7Ci0rCQkgIHcgPSB5LT5jOwotKwkJfQotKwkgICAgICBpZiAodykKLSsJCXsKLSsJCSAg dy0+YSA9IHktPmE7Ci0rCQkgIGlmICh3LT5jKQotKwkJICAgIHctPmMtPmEgPSAxOwotKwkJfQot KwkgICAgICB5LT5hID0gMTsKLSsJICAgICAgZjEgKHkpOwotKwkgICAgICB4ID0gZTsKLSsJICAg IH0KLSsJfQotKyAgICB9Ci0rfQotLS0tIGdjYy90ZXN0c3VpdGUvZysrLmRnL29wdC9pZmN2dDEu QwkyMDA2LTEwLTA0IDE2OjI4OjU2LjUwMjYxMzAwMCArMDIwMAotKysrIGdjYy90ZXN0c3VpdGUv ZysrLmRnL29wdC9pZmN2dDEuQwkyMDA2LTEyLTA4IDEyOjIzOjIzLjAwMDAwMDAwMCArMDEwMAot QEAgLTAsMCArMSwxNyBAQAotKy8vIHsgZGctZG8gY29tcGlsZSB9Ci0rLy8geyBkZy1vcHRpb25z ICItTzIgLWZub24tY2FsbC1leGNlcHRpb25zIiB9Ci0rCi0rc3RydWN0IFMgeyB+UyAoKSB0aHJv dyAoKSB7fSB9OwotK2RvdWJsZSBiYXIgKCk7Ci0rCi0raW50Ci0rZm9vICgpCi0rewotKyAgUyBh OwotKyAgaW50IGkgPSAwOwotKyAgZG91YmxlIGMgPSBiYXIgKCk7Ci0rICBjID0gYyA8IDAgPyAt YyA6IGM7Ci0rICBpZiAoYyA8PSAxLmUtOCkKLSsgICAgaSArPSAyNDsKLSsgIHJldHVybiBpOwot K30KLS0tLSBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1wbGF0ZS9hcnJheTE3LkMJMjAwNi0xMC0w NCAxNjoyODo1Ni41MDI2MTMwMDAgKzAyMDAKLSsrKyBnY2MvdGVzdHN1aXRlL2crKy5kZy90ZW1w bGF0ZS9hcnJheTE3LkMJMjAwNi0xMi0wOCAxMjozODoyNy4wMDAwMDAwMDAgKzAxMDAKLUBAIC0w LDAgKzEsMjMgQEAKLSsvLyB7IGRnLWRvIGNvbXBpbGUgfQotKwotK3RlbXBsYXRlIDx0eXBlbmFt ZSBUPgotK3N0cnVjdCBWIHsKLSsgIFQmIG9wZXJhdG9yW10oaW50KTsKLSt9OwotKwotK3N0cnVj dCBTIHsKLSsgIFMgb3BlcmF0b3IgKyhpbnQpOwotKyAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFQg dmFsdWUoKTsKLSt9OwotKwotK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgotK3ZvaWQgUiAoVCB2KQot K3sKLSsgIHZbKFMoKSArIDApLnRlbXBsYXRlIHZhbHVlPGludD4oKV1bMF0gPSAwOwotK30KLSsK LStpbnQKLSttYWluICgpCi0rewotKyAgUihWPFY8aW50PiA+KCkpOwotK30KCmRpZmYgLS1naXQg YS9nY2M0MS5zcGVjIGIvZ2NjNDEuc3BlYwppbmRleCBjNWNkYjI5Li4yYmVmMTNhIDEwMDY0NAot LS0gYS9nY2M0MS5zcGVjCisrKyBiL2djYzQxLnNwZWMKQEAgLTEsNiArMSw2IEBACi0lZGVmaW5l IERBVEUgMjAwNzA2MTUKKyVkZWZpbmUgREFURSAyMDA3MDYyNgogJWRlZmluZSBnY2NfdmVyc2lv biA0LjEuMgotJWRlZmluZSBnY2NfcmVsZWFzZSAxMworJWRlZmluZSBnY2NfcmVsZWFzZSAxNAog JWRlZmluZSBfdW5wYWNrYWdlZF9maWxlc190ZXJtaW5hdGVfYnVpbGQgMAogJWRlZmluZSBtdWx0 aWxpYl82NF9hcmNocyBzcGFyYzY0IHBwYzY0IHMzOTB4IHg4Nl82NAogJWRlZmluZSBpbmNsdWRl X2dhcHBsZXR2aWV3ZXIgMQpAQCAtMTE4LDMzICsxMTgsMjMgQEAgUGF0Y2g2OiBnY2M0MS1hZGEt cHIxODMwMi5wYXRjaAogUGF0Y2g3OiBnY2M0MS1hZGEtdHdlYWtzLnBhdGNoCiBQYXRjaDg6IGdj YzQxLWphdmEtc2xvd19wdGhyZWFkX3NlbGYucGF0Y2gKIFBhdGNoOTogZ2NjNDEtcHBjMzItcmV0 YWRkci5wYXRjaAotUGF0Y2gxMDogZ2NjNDEtYW1kZmFtMTAucGF0Y2gKLVBhdGNoMTE6IGdjYzQx LWRzb2hhbmRsZS5wYXRjaAotUGF0Y2gxMjogZ2NjNDEtcmgxODQ0NDYucGF0Y2gKLVBhdGNoMTM6 IGdjYzQxLXByMjAyOTctdGVzdC5wYXRjaAotUGF0Y2gxNDogZ2NjNDEtb2JqYy1yaDE4NTM5OC5w YXRjaAotUGF0Y2gxNTogZ2NjNDEtdGVzdHMucGF0Y2gKLVBhdGNoMTY6IGdjYzQxLWhhc2gtc3R5 bGUtZ251LnBhdGNoCi1QYXRjaDE3OiBnY2M0MS1qYXZhLWxpYmRvdGRvdGxpYi5wYXRjaAotUGF0 Y2gxODogZ2NjNDEtcHIyODcwOS5wYXRjaAotUGF0Y2gxOTogZ2NjNDEtcHIyODc1NS5wYXRjaAot UGF0Y2gyMDogZ2NjNDEtcHIyNzg5OC5wYXRjaAotUGF0Y2gyMTogZ2NjNDEtcHIyNzU2Ny5wYXRj aAotUGF0Y2gyMjogZ2NjNDEtcHIyOTI3Mi5wYXRjaAotUGF0Y2gyMzogZ2NjNDEtcHIyOTA1OS5w YXRjaAotUGF0Y2gyNDogZ2NjNDEtc3RybmNhdC1jaGsucGF0Y2gKLVBhdGNoMjU6IGdjYzQxLXBy MjkyOTkucGF0Y2gKLVBhdGNoMjY6IGdjYzQxLWphdmEtYm9ndXMtZGVidWdsaW5lLnBhdGNoCi1Q YXRjaDI3OiBnY2M0MS1saWJqYXZhLXZpc2liaWxpdHkucGF0Y2gKLVBhdGNoMjg6IGdjYzQxLXBy MzExODcucGF0Y2gKLVBhdGNoMjk6IGdjYzQxLXByMzE4MDkucGF0Y2gKLVBhdGNoMzA6IGdjYzQx LXJoMjM0NTE1LnBhdGNoCi1QYXRjaDMxOiBnY2M0MS1wcjMyMTM5LnBhdGNoCi1QYXRjaDMyOiBn Y2M0MS1yaDIzNjg5NS5wYXRjaAotUGF0Y2gzMzogZ2NjNDEtcHIzMjI4NS5wYXRjaAotUGF0Y2gz NDogZ2NjNDEtcmgyMzUwMDgucGF0Y2gKLVBhdGNoMzU6IGdjYzQxLXByMzE3NDgucGF0Y2gKLVBh dGNoMzY6IGdjYzQxLXByMzIzNTMucGF0Y2gKK1BhdGNoMTA6IGdjYzQxLWRzb2hhbmRsZS5wYXRj aAorUGF0Y2gxMTogZ2NjNDEtcmgxODQ0NDYucGF0Y2gKK1BhdGNoMTI6IGdjYzQxLXByMjAyOTct dGVzdC5wYXRjaAorUGF0Y2gxMzogZ2NjNDEtaGFzaC1zdHlsZS1nbnUucGF0Y2gKK1BhdGNoMTQ6 IGdjYzQxLWphdmEtbGliZG90ZG90bGliLnBhdGNoCitQYXRjaDE1OiBnY2M0MS1wcjI4NzU1LnBh dGNoCitQYXRjaDE2OiBnY2M0MS1wcjI3ODk4LnBhdGNoCitQYXRjaDE3OiBnY2M0MS1qYXZhLWJv Z3VzLWRlYnVnbGluZS5wYXRjaAorUGF0Y2gxODogZ2NjNDEtbGliamF2YS12aXNpYmlsaXR5LnBh dGNoCitQYXRjaDE5OiBnY2M0MS1wcjMyMTM5LnBhdGNoCitQYXRjaDIwOiBnY2M0MS1yaDIzNjg5 NS5wYXRjaAorUGF0Y2gyMTogZ2NjNDEtcmgyMzUwMDgucGF0Y2gKK1BhdGNoMjI6IGdjYzQxLXBy MzE3NDgucGF0Y2gKK1BhdGNoMjM6IGdjYzQxLXByMjg2OTAucGF0Y2gKK1BhdGNoMjQ6IGdjYzQx LXByMzI0NjgucGF0Y2gKK1BhdGNoMjU6IGdjYzQxLXByMzI0NjgtMi5wYXRjaAorUGF0Y2gyNjog Z2NjNDEtcmgyNDU0MjQucGF0Y2gKIAogJWRlZmluZSBfZ251ICV7bmlsfQogJWlmYXJjaCBzcGFy YwpAQCAtNDMzLDMzICs0MjMsMjMgQEAgd2hpY2ggYXJlIHJlcXVpcmVkIHRvIHJ1biBwcm9ncmFt cyBjb21waWxlZCB3aXRoIHRoZSBHTkFULgogJXBhdGNoNyAtcDAgLWIgLmFkYS10d2Vha3N+CiAl cGF0Y2g4IC1wMCAtYiAuamF2YS1zbG93X3B0aHJlYWRfc2VsZn4KICVwYXRjaDkgLXAwIC1iIC5w cGMzMi1yZXRhZGRyfgotJXBhdGNoMTAgLXAwIC1iIC5hbWRmYW0xMH4KLSVwYXRjaDExIC1wMCAt YiAuZHNvaGFuZGxlfgotJXBhdGNoMTIgLXAwIC1iIC5yaDE4NDQ0Nn4KLSVwYXRjaDEzIC1wMCAt RSAtYiAucHIyMDI5Ny10ZXN0fgotJXBhdGNoMTQgLXAwIC1iIC5vYmpjLXJoMTg1Mzk4fgotJXBh dGNoMTUgLXAwIC1iIC50ZXN0c34KLSVwYXRjaDE2IC1wMCAtYiAuaGFzaC1zdHlsZS1nbnV+Ci0l cGF0Y2gxNyAtcDAgLWIgLmphdmEtbGliZG90ZG90bGlifgotJXBhdGNoMTggLXAwIC1iIC5wcjI4 NzA5fgotJXBhdGNoMTkgLXAwIC1iIC5wcjI4NzU1fgotJXBhdGNoMjAgLXAwIC1iIC5wcjI3ODk4 fgotJXBhdGNoMjEgLXAwIC1iIC5wcjI3NTY3fgotJXBhdGNoMjIgLXAwIC1iIC5wcjI5Mjcyfgot JXBhdGNoMjMgLXAwIC1iIC5wcjI5MDU5fgotJXBhdGNoMjQgLXAwIC1iIC5zdHJuY2F0LWNoa34K LSVwYXRjaDI1IC1wMCAtYiAucHIyOTI5OX4KLSVwYXRjaDI2IC1wMCAtYiAuamF2YS1ib2d1cy1k ZWJ1Z2xpbmV+Ci0lcGF0Y2gyNyAtcDAgLWIgLmxpYmphdmEtdmlzaWJpbGl0eX4KLSVwYXRjaDI4 IC1wMCAtYiAucHIzMTE4N34KLSVwYXRjaDI5IC1wMCAtYiAucHIzMTgwOX4KLSVwYXRjaDMwIC1w MCAtYiAucmgyMzQ1MTV+Ci0lcGF0Y2gzMSAtcDAgLWIgLnByMzIxMzl+Ci0lcGF0Y2gzMiAtcDAg LWIgLnJoMjM2ODk1fgotJXBhdGNoMzMgLXAwIC1iIC5wcjMyMjg1fgotJXBhdGNoMzQgLXAwIC1i IC5yaDIzNTAwOH4KLSVwYXRjaDM1IC1wMCAtYiAucHIzMTc0OH4KLSVwYXRjaDM2IC1wMCAtYiAu cHIzMjM1M34KKyVwYXRjaDEwIC1wMCAtYiAuZHNvaGFuZGxlfgorJXBhdGNoMTEgLXAwIC1iIC5y aDE4NDQ0Nn4KKyVwYXRjaDEyIC1wMCAtRSAtYiAucHIyMDI5Ny10ZXN0fgorJXBhdGNoMTMgLXAw IC1iIC5oYXNoLXN0eWxlLWdudX4KKyVwYXRjaDE0IC1wMCAtYiAuamF2YS1saWJkb3Rkb3RsaWJ+ CislcGF0Y2gxNSAtcDAgLWIgLnByMjg3NTV+CislcGF0Y2gxNiAtcDAgLWIgLnByMjc4OTh+Cisl cGF0Y2gxNyAtcDAgLWIgLmphdmEtYm9ndXMtZGVidWdsaW5lfgorJXBhdGNoMTggLXAwIC1iIC5s aWJqYXZhLXZpc2liaWxpdHl+CislcGF0Y2gxOSAtcDAgLWIgLnByMzIxMzl+CislcGF0Y2gyMCAt cDAgLWIgLnJoMjM2ODk1fgorJXBhdGNoMjEgLXAwIC1iIC5yaDIzNTAwOH4KKyVwYXRjaDIyIC1w MCAtYiAucHIzMTc0OH4KKyVwYXRjaDIzIC1wMCAtYiAucHIyODY5MH4KKyVwYXRjaDI0IC1wMCAt YiAucHIzMjQ2OH4KKyVwYXRjaDI1IC1wMCAtYiAucHIzMjQ2OC0yfgorJXBhdGNoMjYgLXAwIC1i IC5yaDI0NTQyNH4KIAogc2VkIC1pIC1lICdzLzRcLjFcLjMvNC4xLjIvJyBnY2MvQkFTRS1WRVIg Z2NjL3ZlcnNpb24uYwogc2VkIC1pIC1lICdzLyIgKFJlZCBIYXRbXildKikiLyIgKFJlZCBIYXQg JXt2ZXJzaW9ufS0le2djY19yZWxlYXNlfSkiLycgZ2NjL3ZlcnNpb24uYwpAQCAtMTU4Myw2ICsx NTYzLDIwIEBAIGZpCiAlZG9jIHJwbS5kb2MvY2hhbmdlbG9ncy9saWJtdWRmbGFwL0NoYW5nZUxv ZyoKIAogJWNoYW5nZWxvZworKiBUdWUgSnVuIDI2IDIwMDcgSmFrdWIgSmVsaW5layA8amFrdWJA cmVkaGF0LmNvbT4gNC4xLjItMTQKKy0gdXBkYXRlIGZyb20gZ2NjLTRfMS1icmFuY2ggKC1yMTI1 NzI3OjEyNjAwOCkKKyAgLSBQUnMgaW5saW5lLWFzbS8zMjEwOSwgcnRsLW9wdGltaXphdGlvbi8y ODAxMSwgdGFyZ2V0LzMyMzg5CistIGdvbXAgdXBkYXRlIGZyb20gZ2NjLTRfMi1icmFuY2ggKC1y MTI1OTE3OjEyNTkxOCkKKyAgLSBQUiBtaWRkbGUtZW5kLzMyMzYyCistIG9uIHBwY3ssNjR9IHdo ZW4gdHVuaW5nIGZvciBwb3dlcjZ7LHh9LCB0cnkgdG8gcHV0IHRoZSBiYXNlCisgIHJlZ2lzdGVy IGFzIGZpcnN0IG9wZXJhbmQgaW4gaW5zdHJ1Y3Rpb25zIHRvIGltcHJvdmUKKyAgcGVyZm9ybWFu Y2UgKFBldGVyIEJlcmduZXIsICMyMjU0MjUsIFBSIG1pZGRsZS1lbmQvMjg2OTApCistIG9uIHBw YzY0IGVtaXQgbm9wIGFmdGVyIGEgY2FsbCBhbmQgZGlzYWxsb3cgc2libGluZyBjYWxscworICBp ZiB0aGUgdGFyZ2V0IGZ1bmN0aW9uIGlzIG5vdCBkZWZpbmVkIGluIHRoZSBzYW1lIG9iamVjdCBm aWxlCisgIChEYXZpZCBFZGVsc29obiwgIzI0NTQyNCkKKy0gZ29tcCBwYXJhbGxlbCBzZWN0aW9u cyBmaXggYW5kIGZpeCBmb3IgY2hlY2tpbmcgd2hldGhlciBjb21iaW5lZAorICBwYXJhbGxlbCBj YW4gYmUgdXNlZCAoUFIgbGliZ29tcC8zMjQ2OCkKKwogKiBGcmkgSnVuIDE1IDIwMDcgSmFrdWIg SmVsaW5layA8amFrdWJAcmVkaGF0LmNvbT4gNC4xLjItMTMKIC0gdXBkYXRlIGZyb20gZ2NjLTRf MS1icmFuY2ggKC1yMTI0MzY1OjEyNTcyNykKICAgLSBQUnMgbGliZm9ydHJhbi8zMTQwOSwgbGli Zm9ydHJhbi8zMTg4MCwgbGliZm9ydHJhbi8zMTk2NCwKCmRpZmYgLS1naXQgYS9zb3VyY2VzIGIv c291cmNlcwppbmRleCBmYjFhZDVmLi44OTlkODIzIDEwMDY0NAotLS0gYS9zb3VyY2VzCisrKyBi L3NvdXJjZXMKQEAgLTEgKzEgQEAKLTc0NmNjMDRjY2MxZmYxOTkxM2Q2YjgxYTA3MmVhNTI2ICBn Y2MtNC4xLjItMjAwNzA2MTUudGFyLmJ6MgorMmY4ZTE3MjI2MTRiMGYzODVlNjFjOWNhN2U4YWU5 NDUgIGdjYy00LjEuMi0yMDA3MDYyNi50YXIuYnoyCg==