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: Mattias Ellert To: git-commits@fedoraproject.org Subject: [rpms/nordugrid-arc] f43: Update to version 7.2.0 Date: Mon, 07 Sep 2026 08:38:28 GMT Message-ID: <178877030830.1.1650853660400619540.rpms-nordugrid-arc-3a38dd8f5b91@fedoraproject.org> List-ID: X-Git-Repo: rpms/nordugrid-arc X-Git-Branch: f43 X-Git-Rev: 3a38dd8f5b91c7c32e2793ae32ace7a2f9426038 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvbm9yZHVncmlkLWFy YwpCcmFuY2ggOiBmNDMKQ29tbWl0IDogM2EzOGRkOGY1YjkxYzdjMzJlMjc5M2FlMzJhY2U3YTJm OTQyNjAzOApBdXRob3IgOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51 dS5zZT4KRGF0ZSAgIDogMjAyNi0wOS0wN1QxMDoyNjo1NSswMjowMApTdGF0cyAgOiArOC8tNzkz IGluIDYgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1z L25vcmR1Z3JpZC1hcmMvYy8zYTM4ZGQ4ZjViOTFjN2MzMmUyNzkzYWUzMmFjZTdhMmY5NDI2MDM4 P2JyYW5jaD1mNDMKCkxvZzoKVXBkYXRlIHRvIHZlcnNpb24gNy4yLjAKCi0tLQpkaWZmIC0tZ2l0 IGEvMDAwMS1GaXgtY29tcGlsYXRpb24td2l0aC1QeXRob24tMy4xNS5wYXRjaCBiLzAwMDEtRml4 LWNvbXBpbGF0aW9uLXdpdGgtUHl0aG9uLTMuMTUucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGNjOTk3YjguLjAwMDAwMDAKLS0tIGEvMDAwMS1GaXgtY29tcGlsYXRpb24td2l0 aC1QeXRob24tMy4xNS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLUZyb20g Y2NkZTI1NjMxNzgxMDZkMjMwYjMyNTg1YzM1NjE4Y2JlOTI3NTUxYSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1 LnNlPgotRGF0ZTogV2VkLCAxMiBOb3YgMjAyNSAwODo0Mjo1MSArMDEwMAotU3ViamVjdDogW1BB VENIXSBGaXggY29tcGlsYXRpb24gd2l0aCBQeXRob24gMy4xNQotCi1odHRwczovL2J1Z3ppbGxh LnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTI0MTI1MTIKLWh0dHBzOi8vZG9jcy5weXRob24u b3JnL2Rldi93aGF0c25ldy8zLjE1Lmh0bWwjcmVtb3ZlZC1jLWFwaXMKLS0tLQotIHB5dGhvbi9h cmNfaW5pdC5jcHAgfCAxNCArKysrKysrKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYgLS1naXQgYS9weXRob24vYXJjX2luaXQu Y3BwIGIvcHl0aG9uL2FyY19pbml0LmNwcAotaW5kZXggODQ1OWM4NGYyLi4wMmE2MzE1MjQgMTAw NjQ0Ci0tLS0gYS9weXRob24vYXJjX2luaXQuY3BwCi0rKysgYi9weXRob24vYXJjX2luaXQuY3Bw Ci1AQCAtNDYsNyArNDYsMTkgQEAgTm90ZTogaXQgc2VlbXMgbGlrZSBQeXRob24gaXMgaGlkaW5n IHNpdGUtcGFja2FnZXMgcGFydCBvZiBwYXRoLiBNYXliZSBpdAotIGlzIGhhcmRjb2RlZCBpbnNp ZGUgUHl0aG9uIHNvbWV3aGVyZS4gQnV0IGF0IGxlYXN0IHBhcnQgdGlsbCBzaXRlLXBhY2thZ2Vz Ci0gc2VlbXMgdG8gYmUgcHJlc2VudC4KLSAqLwotLSNpZiBQWV9NQUpPUl9WRVJTSU9OID49IDMK LSsjaWYgUFlfVkVSU0lPTl9IRVggPj0gMHgwMzBFMDAwMAotKyAgc3RkOjpzdHJpbmcgcHl0aG9u cGF0aDsKLSsgIFB5T2JqZWN0ICpwYXRocyA9IFB5Q29uZmlnX0dldCgibW9kdWxlX3NlYXJjaF9w YXRocyIpOwotKyAgUHlfc3NpemVfdCBzeiA9IFB5U2VxdWVuY2VfU2l6ZShwYXRocyk7Ci0rICBm b3IgKFB5X3NzaXplX3QgaSA9IDA7IGkgPCBzejsgKytpKSB7Ci0rICAgIFB5T2JqZWN0ICppdGVt ID0gUHlTZXF1ZW5jZV9HZXRJdGVtKHBhdGhzLCBpKTsKLSsgICAgc3RkOjpzdHJpbmcgcGF0aCA9 IFB5VW5pY29kZV9Bc1VURjgoaXRlbSk7Ci0rICAgIFB5X0RFQ1JFRihpdGVtKTsKLSsgICAgaWYg KGkgPiAwKSBweXRob25wYXRoICs9ICc6JzsKLSsgICAgcHl0aG9ucGF0aCArPSBwYXRoOwotKyAg fQotKyAgUHlfREVDUkVGKHBhdGhzKTsKLSsjZWxpZiBQWV9NQUpPUl9WRVJTSU9OID49IDMKLSAg IHN0ZDo6d3N0cmluZyBweXRob253cGF0aCA9IFB5X0dldFBhdGgoKTsKLSAgIHN0ZDo6c3RyaW5n IHB5dGhvbnBhdGgocHl0aG9ud3BhdGguYmVnaW4oKSwgcHl0aG9ud3BhdGguZW5kKCkpOwotICNl bHNlCi0tLSAKLTIuNTEuMQotCgpkaWZmIC0tZ2l0IGEvMDAwMS1IYW5kbGUtUHl0aG9uLW11bHRp LXBoYXNlLWluaXRpYWxpemF0aW9uLXN1cHBvcnQtaW4tLnBhdGNoIGIvMDAwMS1IYW5kbGUtUHl0 aG9uLW11bHRpLXBoYXNlLWluaXRpYWxpemF0aW9uLXN1cHBvcnQtaW4tLnBhdGNoCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjk5NDE0Li4wMDAwMDAwCi0tLSBhLzAwMDEtSGFuZGxl LVB5dGhvbi1tdWx0aS1waGFzZS1pbml0aWFsaXphdGlvbi1zdXBwb3J0LWluLS5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDk1ICswLDAgQEAKLUZyb20gODczOGVkZjg2MTk2NTQzZjg2MGE2ODc4 YTU3M2EzNmMzZWFhZTI0OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFdpbGxpYW0g UyBGdWx0b24gPHdzZkBmdWx0b25kZXNpZ25zLmNvLnVrPgotRGF0ZTogU3VuLCAxOSBPY3QgMjAy NSAxNTo0OTozMSArMDEwMAotU3ViamVjdDogW1BBVENIXSBIYW5kbGUgUHl0aG9uIG11bHRpLXBo YXNlIGluaXRpYWxpemF0aW9uIHN1cHBvcnQgaW4KLSBzd2lnLTQuNC4wCi0KLUZpeGVzIHByb2Js ZW0gcmVwb3J0ZWQgaW4gaHR0cHM6Ly9naXRodWIuY29tL3N3aWcvc3dpZy9pc3N1ZXMvMzI2Ni4K LQotRml4IGlzIGltcGxlbWVudGVkIHRvIHN1cHBvcnQgb3JpZ2luYWwgUHl0aG9uIHNpbmdsZS1w aGFzZSBtb2R1bGUKLWluaXRpYWxpemF0aW9uIHRoYXQgc3dpZy00LjMuMSBhbmQgZWFybGllciBn ZW5lcmF0ZWQgYXMgd2VsbCBhcyB0aGUKLW5ldyBtdWx0aS1waGFzZSBtb2R1bGUgaW5pdGlhbGl6 YXRpb24gdGhhdCBzd2lnLTQuMC4wIGdlbmVyYXRlcy4KLUFyYyBzdWJ2ZXJ0cyB0aGUgbm9ybWFs IG1vZHVsZSBpbml0aWFsaXphdGlvbiBieSBtYW51YWxseSBpbml0aWFsaXppbmcKLW90aGVyIG1v ZHVsZXMgKGNvbW1vbiwgbG9hZGVyIG1lc3NhZ2UsIGNvbW11bmljYXRpb24sIGV0YyksIGR1cmlu ZyB0aGUKLWluaXRpYWxpemF0aW9uIG9mIGFyYy4gVGhlc2Ugb3RoZXIgbW9kdWxlcyBhcmUgYWxz byBnZW5lcmF0ZWQgYnkgU1dJRwotZm9yIG11bHRpLXBoYXNlIGluaXRpYWxpemF0aW9uIGJ5IHRo ZSBQeXRob24gaW50ZXJwcmV0ZXIuIFRoZSBtYW51YWwKLWluaXRpYWxpemF0aW9uIGJ5IGFyYyBi cmVha3MgYW5kIGlzIHdvcmtlZCBhcm91bmQgYnkgaW1wbGVtZW50aW5nIHRoZQotJ2xlZ2FjeSBp bml0aWFsaXphdGlvbicgYXBwcm9hY2ggZG9jdW1lbnRlZCBpbiBQRVAtNDg5Ci1odHRwczovL3Bl cHMucHl0aG9uLm9yZy9wZXAtMDQ4OS8uIFRoaXMgaXMgbm90IHJlYWxseSBzdGFuZGFyZCBhcyB0 aGUKLWxlZ2FjeSBzaW5nbGUtcGhhc2UgaW5pdGlhbGl6YXRpb24gaXMgaW1wbGVtZW50ZWQgZXZl biB0aG91Z2ggU1dJRwotaGFzIGFscmVhZHkgc3RhcnRlZCB0aGUgbXVsdGktcGhhc2UgaW5pdGlh bGl6YXRpb24uIFRoaXMgaXMgYWNoaWV2ZWQKLWJ5IHNldHRpbmcgbV9zbG90cyBpbiBQeU1vZHVs ZURlZiB0byBOVUxMIGFuZCBtYW51YWxseSBjYWxsaW5nIHRoZQotUHlfbW9kX2V4ZWMgZnVuY3Rp b24gaW4gdGhlIHNsb3QgdG8gY29tcGxldGUgdGhlIHNlY29uZCBwaGFzZSBvZiB0aGUKLWluaXRp YWxpemF0aW9uLgotCi1XaGlsZSB0aGlzIG1pZ2h0IHdvcmsgZm9yIG5vdywgYSBmdXR1cmUgcHJv b2YgYXBwcm9hY2ggd291bGQgYmUKLWZvciBlYWNoIG9mIHRoZSBtb2R1bGVzIHRvIGJlIGluaXRp YWxpemVkIGJ5IHRoZSBQeXRob24gaW50ZXJwcmV0ZXIKLWluIHRoZSBzdGFuZGFyZCB3YXkgYnkg dXNpbmcgcHJvcGVyIHN1Yi1tb2R1bGVzIHVuZGVyIGEgdG9wIGxldmVsIGFyYwotbW9kdWxlL3Bh Y2thZ2UuCi0tLS0KLSBweXRob24vc3dpZ21vZHVsZXNpbml0X3dyYXAuY3BwIHwgMzkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tCi0gMSBmaWxlIGNoYW5nZWQsIDM3IGluc2VydGlv bnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9weXRob24vc3dpZ21vZHVsZXNp bml0X3dyYXAuY3BwIGIvcHl0aG9uL3N3aWdtb2R1bGVzaW5pdF93cmFwLmNwcAotaW5kZXggYWMx MTBhZjJiLi4xZTQ4ZDJkMjYgMTAwNjQ0Ci0tLS0gYS9weXRob24vc3dpZ21vZHVsZXNpbml0X3dy YXAuY3BwCi0rKysgYi9weXRob24vc3dpZ21vZHVsZXNpbml0X3dyYXAuY3BwCi1AQCAtMjksMTgg KzI5LDUzIEBAIFB5TU9ESU5JVF9GVU5DIFNXSUdfaW5pdChkYXRhKSh2b2lkKTsKLSBQeU1PRElO SVRfRlVOQyBTV0lHX2luaXQoZGVsZWdhdGlvbikodm9pZCk7Ci0gUHlNT0RJTklUX0ZVTkMgU1dJ R19pbml0KHNlY3VyaXR5KSh2b2lkKTsKLSAKLSsvKiBMZWdhY3kgaW5pdCBiYXNlZCBvbiBodHRw czovL3BlcHMucHl0aG9uLm9yZy9wZXAtMDQ4OS8gKi8KLStzdGF0aWMgUHlPYmplY3QgKm1vZHVs ZV9sZWdhY3lfaW5pdChQeU1vZHVsZURlZiAqZGVmKSB7Ci0rICBQeU1vZHVsZURlZl9TbG90ICpz bG90cyA9IGRlZi0+bV9zbG90czsKLSsgIGRlZi0+bV9zbG90cyA9IE5VTEw7Ci0rICBQeU9iamVj dCAqbW9kID0gUHlNb2R1bGVfQ3JlYXRlKGRlZik7Ci0rICB3aGlsZSAobW9kICYmIHNsb3RzLT5z bG90KSB7Ci0rICAgIGlmIChzbG90cy0+c2xvdCA9PSBQeV9tb2RfZXhlYykgewotKyAgICAgIGlu dCAoKm1vZF9leGVjKShQeU9iamVjdCAqKSA9IChpbnQgKCopKFB5T2JqZWN0ICopKXNsb3RzLT52 YWx1ZTsKLSsgICAgICBpZiAobW9kX2V4ZWMobW9kKSAhPSAwKSB7Ci0rICAgICAgICBQeV9ERUNS RUYobW9kKTsKLSsgICAgICAgIG1vZCA9IE5VTEw7Ci0rICAgICAgfQotKyAgICB9Ci0rICAgICsr c2xvdHM7Ci0rICB9Ci0rICByZXR1cm4gbW9kOwotK30KLSsKLSBzdGF0aWMgUHlNT0RWQUwgaW5p dF9leHRlbnNpb25fbW9kdWxlKFB5T2JqZWN0KiBwYWNrYWdlLCBjb25zdCBjaGFyICptb2R1bGVu YW1lLAotIFB5TU9EVkFMICgqaW5pdGZ1bmN0aW9uKSh2b2lkKSkgewotICNpZiBQWV9NQUpPUl9W RVJTSU9OID49IDMKLS0gIFB5T2JqZWN0ICptb2R1bGUgPSBpbml0ZnVuY3Rpb24oKTsKLSsgIC8v IHN3aWctNC40LjAgaW1wbGVtZW50cyBQRVAtNDg5IG11bHRpLXBoYXNlIGluaXRpYWxpemF0aW9u LgotKyAgLy8gSGFuZGxlIGJvdGggb2xkIHNpbmdsZS1waGFzZSBhbmQgbmV3IG11bHRpLXBoYXNl IGluaXRpYWxpemF0aW9uLgotKyAgLy8gTW9kdWxlcyB0aGF0IHVzZSBtdWx0aS1waGFzZSBpbml0 aWFsaXphdGlvbiB3aWxsIHJldHVybiBhIFB5TW9kdWxlRGVmLCBzbyB0aGVuIHdlIGZvcmNlIGEg bGVnYWN5IHNpbmdsZS1waGFzZSBpbml0aWFsaXphdGlvbi4KLSsgIFB5T2JqZWN0ICptb2R1bGVf b3JfbW9kdWxlX2RlZiA9IGluaXRmdW5jdGlvbigpOwotKyAgaWYgKCFtb2R1bGVfb3JfbW9kdWxl X2RlZikgewotKyAgICBmcHJpbnRmKHN0ZGVyciwgIkZhaWxlZCBmaXJzdCBwaGFzZSBpbml0aWFs aXppbmcgUHl0aG9uIG1vZHVsZSAnJXMnLCB0aHJvdWdoIFB5dGhvbiBDIEFQSVxuIiwgbW9kdWxl bmFtZSk7Ci0rICAgIFB5TU9EX1JFVFVSTihOVUxMKTsKLSsgIH0KLSsgIFB5T2JqZWN0ICptb2R1 bGUgPSBOVUxMOwotKyAgaWYgKFB5T2JqZWN0X1R5cGVDaGVjayhtb2R1bGVfb3JfbW9kdWxlX2Rl ZiwgJlB5TW9kdWxlRGVmX1R5cGUpKSB7Ci0rICAgIG1vZHVsZSA9IG1vZHVsZV9sZWdhY3lfaW5p dCgoUHlNb2R1bGVEZWYgKiltb2R1bGVfb3JfbW9kdWxlX2RlZik7Ci0rICAgIGlmICghbW9kdWxl KSB7Ci0rICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgc2Vjb25kIHBoYXNlIGluaXRpYWxp emluZyBQeXRob24gbW9kdWxlICclcycsIHRocm91Z2ggUHl0aG9uIEMgQVBJXG4iLCBtb2R1bGVu YW1lKTsKLSsgICAgICBQeU1PRF9SRVRVUk4oTlVMTCk7Ci0rICAgIH0KLSsgIH0gZWxzZSB7Ci0r ICAgIG1vZHVsZSA9IG1vZHVsZV9vcl9tb2R1bGVfZGVmOwotKyAgfQotICNlbHNlCi0gICBpbml0 ZnVuY3Rpb24oKTsKLSAgIFB5T2JqZWN0ICptb2R1bGUgPSBQeUltcG9ydF9BZGRNb2R1bGUoKGNo YXIgKiltb2R1bGVuYW1lKTsKLS0jZW5kaWYKLSAgIGlmKCFtb2R1bGUpIHsKLSAgICAgZnByaW50 ZihzdGRlcnIsICJGYWlsZWQgaW5pdGlhbGlzaW5nIFB5dGhvbiBtb2R1bGUgJyVzJywgdGhyb3Vn aCBQeXRob24gQyBBUElcbiIsIG1vZHVsZW5hbWUpOwotICAgICBQeU1PRF9SRVRVUk4oTlVMTCk7 Ci0gICB9Ci0rI2VuZGlmCi0gICBpZihQeU1vZHVsZV9BZGRPYmplY3QocGFja2FnZSwgKGNoYXIg Kiltb2R1bGVuYW1lLCBtb2R1bGUpKSB7Ci0gICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGllZCBh ZGRpbmcgUHl0aG9uIG1vZHVsZSAnJXMnIHRvIHBhY2thZ2UgJ2FyYycsIHRocm91Z2ggUHl0aG9u IEMgQVBJXG4iLCBtb2R1bGVuYW1lKTsKLSAgICAgUHlNT0RfUkVUVVJOKE5VTEwpOwotLS0gCi0y LjUxLjAKLQoKZGlmZiAtLWdpdCBhLzAwMDEtU3VwcG9ydC1PcGVuU1NMLTQucGF0Y2ggYi8wMDAx LVN1cHBvcnQtT3BlblNTTC00LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1 MTI4OWY3Li4wMDAwMDAwCi0tLSBhLzAwMDEtU3VwcG9ydC1PcGVuU1NMLTQucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSw1NDcgKzAsMCBAQAotRnJvbSAyMWI3MTQ1ZDNmMWE5NDA4Y2M2ZmM4ZjRm MjVjM2QwMDY0NzhhMjc5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogTWF0dGlhcyBF bGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBoeXNpY3MudXUuc2U+Ci1EYXRlOiBUaHUsIDE4IEp1biAy MDI2IDE4OjU2OjI5ICswMjAwCi1TdWJqZWN0OiBbUEFUQ0hdIFN1cHBvcnQgT3BlblNTTCA0Ci0K LS0tLQotIHNyYy9jbGllbnRzL2NvbXB1dGUvYXJjdGVzdC5jcHAgICAgICAgICAgICAgICB8ICA0 ICsrCi0gc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvQ2VydFV0aWwuY3BwICAgICAgICAgIHwgMjgg KysrKystLS0KLSBzcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DcmVkZW50aWFsLmNwcCAgICAgICAg fCA2NiArKysrKysrKysrLS0tLS0tLS0tCi0gc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvUHJveHlj ZXJ0aW5mby5jcHAgICAgIHwgIDYgKy0KLSBzcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9WT01TVXRp bC5jcHAgICAgICAgICAgfCA0MCArKysrKystLS0tLQotIC4uLi9saWJzL2RlbGVnYXRpb24vRGVs ZWdhdGlvbkludGVyZmFjZS5jcHAgICB8IDE1ICsrKy0tCi0gc3JjL2hlZC9tY2MvdGxzL0RlbGVn YXRpb25Db2xsZWN0b3IuY3BwICAgICAgIHwgIDQgKy0KLSBzcmMvaGVkL21jYy90bHMvUGF5bG9h ZFRMU01DQy5jcHAgICAgICAgICAgICAgfCAgNiArLQotIDggZmlsZXMgY2hhbmdlZCwgOTYgaW5z ZXJ0aW9ucygrKSwgNzMgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9zcmMvY2xpZW50cy9j b21wdXRlL2FyY3Rlc3QuY3BwIGIvc3JjL2NsaWVudHMvY29tcHV0ZS9hcmN0ZXN0LmNwcAotaW5k ZXggMTg0YjdlNTE4Li4wMjRhMDMzOGEgMTAwNjQ0Ci0tLS0gYS9zcmMvY2xpZW50cy9jb21wdXRl L2FyY3Rlc3QuY3BwCi0rKysgYi9zcmMvY2xpZW50cy9jb21wdXRlL2FyY3Rlc3QuY3BwCi1AQCAt MzM3LDcgKzMzNywxMSBAQCBpbnQgZHVtcGpvYmRlc2NyaXB0aW9uX2FyY3Rlc3RfbGVnYWN5KGNv bnN0IEFyYzo6VXNlckNvbmZpZyYgdXNlcmNmZywgQXJjOjpFeGVjdQotIHN0YXRpYyBib29sIGdl dF9oYXNoX3ZhbHVlKGNvbnN0IEFyYzo6Q3JlZGVudGlhbCYgYywgc3RkOjpzdHJpbmcmIGhhc2hf c3RyKSB7Ci0gICBYNTA5KiBjZXJ0ID0gYy5HZXRDZXJ0KCk7Ci0gICBpZighY2VydCkgcmV0dXJu IGZhbHNlOwotKyNpZiAoT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MzAwMDAwMDBMKQotICAg WDUwOV9OQU1FKiBjZXJ0X25hbWUgPSBYNTA5X2dldF9zdWJqZWN0X25hbWUoY2VydCk7Ci0rI2Vs c2UKLSsgIGNvbnN0IFg1MDlfTkFNRSogY2VydF9uYW1lID0gWDUwOV9nZXRfc3ViamVjdF9uYW1l KGNlcnQpOwotKyNlbmRpZgotICAgaWYoIWNlcnRfbmFtZSkgcmV0dXJuIGZhbHNlOwotIAotICAg Y2hhciBoYXNoWzMyXTsKLWRpZmYgLS1naXQgYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DZXJ0 VXRpbC5jcHAgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DZXJ0VXRpbC5jcHAKLWluZGV4IDA3 NzZlZTcxNi4uNTUyMTdlYzVjIDEwMDY0NAotLS0tIGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwv Q2VydFV0aWwuY3BwCi0rKysgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DZXJ0VXRpbC5jcHAK LUBAIC0zMDYsOCArMzA2LDEyIEBAIHN0YXRpYyBpbnQgdmVyaWZ5X2NlcnRfYWRkaXRpb25hbChY NTA5KiBjZXJ0LCBYNTA5X1NUT1JFX0NUWCogc3RvcmVfY3R4LCBzdGQ6OnN0Ci0gCi0gc3RhdGlj IGJvb2wgY29sbGVjdF9wcm94eV9pbmZvKHN0ZDo6c3RyaW5nJiBwcm94eV9wb2xpY3ksIFg1MDkq IGNlcnQpIHsKLSAgIC8qKkNoZWNrIHRoZSBwcm94eSBjZXJ0aWZpY2F0ZSBpbmZvbWF0aW9uIGV4 dGVuc2lvbiovCi0rI2lmIChPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwpCi0g ICBYNTA5X0VYVEVOU0lPTiogZXh0OwotLSAgQVNOMV9PQkpFQ1QqIGV4dGVuc2lvbl9vYmo7Ci0r I2Vsc2UKLSsgIGNvbnN0IFg1MDlfRVhURU5TSU9OKiBleHQ7Ci0rI2VuZGlmCi0rICBjb25zdCBB U04xX09CSkVDVCogZXh0ZW5zaW9uX29iajsKLSAgIGludCBpOwotICAgZm9yIChpPTA7aTxYNTA5 X2dldF9leHRfY291bnQoY2VydCk7aSsrKSB7Ci0gICAgIGV4dCA9IChYNTA5X0VYVEVOU0lPTiAq KSBYNTA5X2dldF9leHQoY2VydCxpKTsKLUBAIC0zNTgsMTAgKzM2MiwxMCBAQCBzdGF0aWMgYm9v bCBjb2xsZWN0X3Byb3h5X2luZm8oc3RkOjpzdHJpbmcmIHByb3h5X3BvbGljeSwgWDUwOSogY2Vy dCkgewotICAgICAgICAgICAgICAgcHJveHlfcG9saWN5LmNsZWFyKCk7Ci0gICAgICAgICAgICAg ICBpZigocHJveHljZXJ0aW5mby0+cHJveHlQb2xpY3kpICYmCi0gICAgICAgICAgICAgICAgICAo cHJveHljZXJ0aW5mby0+cHJveHlQb2xpY3ktPnBvbGljeSkgJiYKLS0gICAgICAgICAgICAgICAg IChwcm94eWNlcnRpbmZvLT5wcm94eVBvbGljeS0+cG9saWN5LT5kYXRhKSkgewotKyAgICAgICAg ICAgICAgICAgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHByb3h5Y2VydGluZm8tPnByb3h5UG9saWN5 LT5wb2xpY3kpKSB7Ci0gICAgICAgICAgICAgICAgIHByb3h5X3BvbGljeS5hcHBlbmQoCi0tICAg ICAgICAgICAgICAgICAgIChjaGFyIGNvbnN0KikocHJveHljZXJ0aW5mby0+cHJveHlQb2xpY3kt PnBvbGljeS0+ZGF0YSksCi0tICAgICAgICAgICAgICAgICAgIHByb3h5Y2VydGluZm8tPnByb3h5 UG9saWN5LT5wb2xpY3ktPmxlbmd0aCk7Ci0rICAgICAgICAgICAgICAgICAgIChjaGFyIGNvbnN0 KikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHByb3h5Y2VydGluZm8tPnByb3h5UG9saWN5LT5wb2xp Y3kpLAotKyAgICAgICAgICAgICAgICAgICBBU04xX1NUUklOR19sZW5ndGgocHJveHljZXJ0aW5m by0+cHJveHlQb2xpY3ktPnBvbGljeSkpOwotICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg ICAgLyogVXNlIDogYXMgc2VwYXJhdG9yIGZvciBwb2xpY2llcyBwYXJzZWQgZnJvbSBkaWZmZXJl bnQgcHJveHkgY2VydGlmaWNhdGUqLwotICAgICAgICAgICAgICAgLyogISEhISBUYWtpbmcgaW50 IGFjY291bnQgcHJldmlvdXMgcHJveHlfcG9saWN5LmNsZWFyKCkgISEhIQotQEAgLTM4Nyw4ICsz OTEsMTIgQEAgYm9vbCBjaGVja19jZXJ0X3R5cGUoWDUwOSogY2VydCwgY2VydFR5cGUmIHR5cGUp IHsKLSAgIGJvb2wgcmV0ID0gZmFsc2U7Ci0gICB0eXBlID0gQ0VSVF9UWVBFX0VFQzsKLSAKLS0g IEFTTjFfU1RSSU5HKiBkYXRhOwotKyAgY29uc3QgQVNOMV9TVFJJTkcqIGRhdGE7Ci0rI2lmIChP UEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwpCi0gICBYNTA5X0VYVEVOU0lPTiog Y2VydGluZm9fZXh0OwotKyNlbHNlCi0rICBjb25zdCBYNTA5X0VYVEVOU0lPTiogY2VydGluZm9f ZXh0OwotKyNlbmRpZgotICAgaW50IHBvbGljeW5pZDsKLSAgIFBST1hZX0NFUlRfSU5GT19FWFRF TlNJT04qIGNlcnRpbmZvX29wZW5zc2wgPSBOVUxMOwotIAotQEAgLTQwNCw4ICs0MTIsOCBAQCBi b29sIGNoZWNrX2NlcnRfdHlwZShYNTA5KiBjZXJ0LCBjZXJ0VHlwZSYgdHlwZSkgewotICAgfQot IAotICAgWDUwOV9OQU1FKiBpc3N1ZXIgPSBOVUxMOwotLSAgWDUwOV9OQU1FKiBzdWJqZWN0ID0g WDUwOV9nZXRfc3ViamVjdF9uYW1lKGNlcnQpOwotLSAgWDUwOV9OQU1FX0VOVFJZICogbmFtZV9l bnRyeSA9IE5VTEw7Ci0rICBjb25zdCBYNTA5X05BTUUqIHN1YmplY3QgPSBYNTA5X2dldF9zdWJq ZWN0X25hbWUoY2VydCk7Ci0rICBjb25zdCBYNTA5X05BTUVfRU5UUlkgKiBuYW1lX2VudHJ5ID0g TlVMTDsKLSAgIGlmKCFzdWJqZWN0KSBnb3RvIGVycjsKLSAgIG5hbWVfZW50cnkgPSBYNTA5X05B TUVfZ2V0X2VudHJ5KHN1YmplY3QsIFg1MDlfTkFNRV9lbnRyeV9jb3VudChzdWJqZWN0KS0xKTsK LSAgIGlmKCFuYW1lX2VudHJ5KSBnb3RvIGVycjsKLUBAIC00MTMsOCArNDIxLDggQEAgYm9vbCBj aGVja19jZXJ0X3R5cGUoWDUwOSogY2VydCwgY2VydFR5cGUmIHR5cGUpIHsKLSAgICAgLyogdGhl IG5hbWUgZW50cnkgaXMgb2YgdGhlIHR5cGU6IGNvbW1vbiBuYW1lICovCi0gICAgIGRhdGEgPSBY NTA5X05BTUVfRU5UUllfZ2V0X2RhdGEobmFtZV9lbnRyeSk7Ci0gICAgIGlmKCFkYXRhKSBnb3Rv IGVycjsKLS0gICAgaWYgKGRhdGEtPmxlbmd0aCA9PSA1ICYmICFtZW1jbXAoZGF0YS0+ZGF0YSwi cHJveHkiLDUpKSB7IHR5cGUgPSBDRVJUX1RZUEVfR1NJXzJfUFJPWFk7IH0KLS0gICAgZWxzZSBp ZihkYXRhLT5sZW5ndGggPT0gMTMgJiYgIW1lbWNtcChkYXRhLT5kYXRhLCJsaW1pdGVkIHByb3h5 IiwxMykpIHsgdHlwZSA9IENFUlRfVFlQRV9HU0lfMl9MSU1JVEVEX1BST1hZOyB9Ci0rICAgIGlm IChBU04xX1NUUklOR19sZW5ndGgoZGF0YSkgPT0gNSAmJiAhbWVtY21wKEFTTjFfU1RSSU5HX2dl dDBfZGF0YShkYXRhKSwicHJveHkiLDUpKSB7IHR5cGUgPSBDRVJUX1RZUEVfR1NJXzJfUFJPWFk7 IH0KLSsgICAgZWxzZSBpZihBU04xX1NUUklOR19sZW5ndGgoZGF0YSkgPT0gMTMgJiYgIW1lbWNt cChBU04xX1NUUklOR19nZXQwX2RhdGEoZGF0YSksImxpbWl0ZWQgcHJveHkiLDEzKSkgeyB0eXBl ID0gQ0VSVF9UWVBFX0dTSV8yX0xJTUlURURfUFJPWFk7IH0KLSAgICAgZWxzZSBpZigoaW5kZXgg PSBYNTA5X2dldF9leHRfYnlfTklEKGNlcnQsIE5JRF9wcm94eUNlcnRJbmZvLCAtMSkpICE9IC0x KSB7Ci0gICAgICAgY2VydGluZm9fZXh0ID0gWDUwOV9nZXRfZXh0KGNlcnQsaW5kZXgpOwotICAg ICAgIGlmKFg1MDlfRVhURU5TSU9OX2dldF9jcml0aWNhbChjZXJ0aW5mb19leHQpKSB7Ci1AQCAt NDUzLDcgKzQ2MSw3IEBAIGJvb2wgY2hlY2tfY2VydF90eXBlKFg1MDkqIGNlcnQsIGNlcnRUeXBl JiB0eXBlKSB7Ci0gICAgIFg1MDlfTkFNRV9FTlRSWSogbmV3X25hbWVfZW50cnkgPSBOVUxMOwot ICAgICBpZih0eXBlICE9IENFUlRfVFlQRV9FRUMgJiYgdHlwZSAhPSBDRVJUX1RZUEVfQ0EpIHsK LSAgICAgICBpc3N1ZXIgPSBYNTA5X05BTUVfZHVwKFg1MDlfZ2V0X2lzc3Vlcl9uYW1lKGNlcnQp KTsKLS0gICAgICBuZXdfbmFtZV9lbnRyeSA9IFg1MDlfTkFNRV9FTlRSWV9jcmVhdGVfYnlfTklE KE5VTEwsIE5JRF9jb21tb25OYW1lLCBWX0FTTjFfQVBQX0NIT09TRSwgZGF0YS0+ZGF0YSwgLTEp OwotKyAgICAgIG5ld19uYW1lX2VudHJ5ID0gWDUwOV9OQU1FX0VOVFJZX2NyZWF0ZV9ieV9OSUQo TlVMTCwgTklEX2NvbW1vbk5hbWUsIFZfQVNOMV9BUFBfQ0hPT1NFLCBBU04xX1NUUklOR19nZXQw X2RhdGEoZGF0YSksIC0xKTsKLSAgICAgICBpZighbmV3X25hbWVfZW50cnkpIGdvdG8gZXJyOwot ICAgICAgIFg1MDlfTkFNRV9hZGRfZW50cnkoaXNzdWVyLG5ld19uYW1lX2VudHJ5LFg1MDlfTkFN RV9lbnRyeV9jb3VudChpc3N1ZXIpLDApOwotICAgICAgIFg1MDlfTkFNRV9FTlRSWV9mcmVlKG5l d19uYW1lX2VudHJ5KTsKLWRpZmYgLS1naXQgYS9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DcmVk ZW50aWFsLmNwcCBiL3NyYy9oZWQvbGlicy9jcmVkZW50aWFsL0NyZWRlbnRpYWwuY3BwCi1pbmRl eCA2MDlmOWEzNGQuLjQzOTQ5NmVjYSAxMDA2NDQKLS0tLSBhL3NyYy9oZWQvbGlicy9jcmVkZW50 aWFsL0NyZWRlbnRpYWwuY3BwCi0rKysgYi9zcmMvaGVkL2xpYnMvY3JlZGVudGlhbC9DcmVkZW50 aWFsLmNwcAotQEAgLTc5LDE1ICs3OSwxNSBAQCBuYW1lc3BhY2UgQXJjIHsKLSAgICAgRVJSX3By aW50X2Vycm9yc19jYigmc3NsX2Vycl9jYiwgJkNyZWRlbnRpYWxMb2dnZXIpOwotICAgfQotIAot LSAgVGltZSBhc24xX3RvX3V0Y3RpbWUoY29uc3QgQVNOMV9VVENUSU1FICpzKSB7Ci0rICBUaW1l IGFzbjFfdG9fdXRjdGltZShjb25zdCBBU04xX1RJTUUgKnMpIHsKLSAgICAgaWYocyA9PSBOVUxM KSByZXR1cm4gVGltZSgpOwotICAgICBzdGQ6OnN0cmluZyB0X3N0cjsKLS0gICAgaWYocy0+dHlw ZSA9PSBWX0FTTjFfVVRDVElNRSkgewotKyAgICBpZihBU04xX1NUUklOR190eXBlKHMpID09IFZf QVNOMV9VVENUSU1FKSB7Ci0gICAgICAgdF9zdHIuYXBwZW5kKCIyMCIpOwotLSAgICAgIHRfc3Ry LmFwcGVuZCgoY2hhciopKHMtPmRhdGEpKTsKLSsgICAgICB0X3N0ci5hcHBlbmQoKGNvbnN0IGNo YXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEocykpOwotICAgICB9Ci0gICAgIGVsc2Ugey8vVl9B U04xX0dFTkVSQUxJWkVEVElNRQotLSAgICAgIHRfc3RyLmFwcGVuZCgoY2hhciopKHMtPmRhdGEp KTsKLSsgICAgICB0X3N0ci5hcHBlbmQoKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2Rh dGEocykpOwotICAgICB9Ci0gICAgIHJldHVybiBUaW1lKHRfc3RyKTsKLSAgIH0KLUBAIC0xMjQs NyArMTI0LDcgQEAgbmFtZXNwYWNlIEFyYyB7Ci0gICAvL0dldCB0aGUgbGlmZSB0aW1lIG9mIHRo ZSBjcmVkZW50aWFsCi0gICB2b2lkIENyZWRlbnRpYWw6OkdldExpZmV0aW1lKFNUQUNLX09GKFg1 MDkpIGNvbnN0ICogY2VydGNoYWluLCBYNTA5IGNvbnN0ICogY2VydCwgVGltZSYgc3RhcnQsIFBl cmlvZCAmbGlmZXRpbWUpIHsKLSAgICAgVGltZSBzdGFydF90aW1lKC0xKSwgZW5kX3RpbWUoLTEp OwotLSAgICBBU04xX1VUQ1RJTUUqIGF0aW1lID0gTlVMTDsKLSsgICAgY29uc3QgQVNOMV9VVENU SU1FKiBhdGltZSA9IE5VTEw7Ci0gCi0gICAgIGlmKGNlcnQgPT0gTlVMTCkgewotICAgICAgIHN0 YXJ0ID0gVGltZSgpOwotQEAgLTEzNSwyMCArMTM1LDIwIEBAIG5hbWVzcGFjZSBBcmMgewotICAg ICBpZihjZXJ0Y2hhaW4pIGZvciAoaW50IG4gPSAwOyBuIDwgc2tfWDUwOV9udW0oY2VydGNoYWlu KTsgbisrKSB7Ci0gICAgICAgWDUwOSogdG1wX2NlcnQgPSBza19YNTA5X3ZhbHVlKGNlcnRjaGFp biwgbik7Ci0gCi0tICAgICAgYXRpbWUgPSBYNTA5X2dldG1fbm90QWZ0ZXIodG1wX2NlcnQpOwot KyAgICAgIGF0aW1lID0gWDUwOV9nZXQwX25vdEFmdGVyKHRtcF9jZXJ0KTsKLSAgICAgICBUaW1l IGUgPSBhc24xX3RvX3V0Y3RpbWUoYXRpbWUpOwotICAgICAgIGlmIChlbmRfdGltZSA9PSBUaW1l KC0xKSB8fCBlIDwgZW5kX3RpbWUpIHsgZW5kX3RpbWUgPSBlOyB9Ci0gCi0tICAgICAgYXRpbWUg PSBYNTA5X2dldG1fbm90QmVmb3JlKHRtcF9jZXJ0KTsKLSsgICAgICBhdGltZSA9IFg1MDlfZ2V0 MF9ub3RCZWZvcmUodG1wX2NlcnQpOwotICAgICAgIFRpbWUgcyA9IGFzbjFfdG9fdXRjdGltZShh dGltZSk7Ci0gICAgICAgaWYgKHN0YXJ0X3RpbWUgPT0gVGltZSgtMSkgfHwgcyA+IHN0YXJ0X3Rp bWUpIHsgc3RhcnRfdGltZSA9IHM7IH0KLSAgICAgfQotIAotLSAgICBhdGltZSA9IFg1MDlfZ2V0 bV9ub3RBZnRlcihjZXJ0KTsKLSsgICAgYXRpbWUgPSBYNTA5X2dldDBfbm90QWZ0ZXIoY2VydCk7 Ci0gICAgIFRpbWUgZSA9IGFzbjFfdG9fdXRjdGltZShhdGltZSk7Ci0gICAgIGlmIChlbmRfdGlt ZSA9PSBUaW1lKC0xKSB8fCBlIDwgZW5kX3RpbWUpIHsgZW5kX3RpbWUgPSBlOyB9Ci0gCi0tICAg IGF0aW1lID0gWDUwOV9nZXRtX25vdEJlZm9yZShjZXJ0KTsKLSsgICAgYXRpbWUgPSBYNTA5X2dl dDBfbm90QmVmb3JlKGNlcnQpOwotICAgICBUaW1lIHMgPSBhc24xX3RvX3V0Y3RpbWUoYXRpbWUp OwotICAgICBpZiAoc3RhcnRfdGltZSA9PSBUaW1lKC0xKSB8fCBzID4gc3RhcnRfdGltZSkgeyBz dGFydF90aW1lID0gczsgfQotIAotQEAgLTI0OSw3ICsyNDksNyBAQCBuYW1lc3BhY2UgQXJjIHsK LSAgIH0KLSAKLSAgIHN0ZDo6c3RyaW5nIENyZWRlbnRpYWw6OkdldEROKHZvaWQpIGNvbnN0IHsK LS0gICAgWDUwOV9OQU1FICpzdWJqZWN0ID0gTlVMTDsKLSsgICAgY29uc3QgWDUwOV9OQU1FICpz dWJqZWN0ID0gTlVMTDsKLSAgICAgaWYoIWNlcnRfKSByZXR1cm4gIiI7Ci0gICAgIHN1YmplY3Qg PSBYNTA5X2dldF9zdWJqZWN0X25hbWUoY2VydF8pOwotICAgICBzdGQ6OnN0cmluZyBzdHI7Ci1A QCAtMjY5LDE5ICsyNjksMTcgQEAgbmFtZXNwYWNlIEFyYyB7Ci0gICAgIGlmKCFjZXJ0XykgcmV0 dXJuICIiOwotICAgICBzdWJqZWN0ID0gWDUwOV9OQU1FX2R1cChYNTA5X2dldF9zdWJqZWN0X25h bWUoY2VydF8pKTsKLSAKLS0gICAgQVNOMV9TVFJJTkcqIGVudHJ5OwotKyAgICBjb25zdCBBU04x X1NUUklORyogZW50cnk7Ci0gICAgIHN0ZDo6c3RyaW5nIGVudHJ5X3N0cjsKLSAgICAgZm9yKDs7 KSB7Ci0tICAgICAgWDUwOV9OQU1FX0VOVFJZICpuZSA9IFg1MDlfTkFNRV9nZXRfZW50cnkoc3Vi amVjdCwgWDUwOV9OQU1FX2VudHJ5X2NvdW50KHN1YmplY3QpLTEpOwotKyAgICAgIGNvbnN0IFg1 MDlfTkFNRV9FTlRSWSAqbmUgPSBYNTA5X05BTUVfZ2V0X2VudHJ5KHN1YmplY3QsIFg1MDlfTkFN RV9lbnRyeV9jb3VudChzdWJqZWN0KS0xKTsKLSAgICAgICBpZiAoIU9CSl9jbXAoWDUwOV9OQU1F X0VOVFJZX2dldF9vYmplY3QobmUpLE9CSl9uaWQyb2JqKE5JRF9jb21tb25OYW1lKSkpIHsKLSAg ICAgICAgIGVudHJ5ID0gWDUwOV9OQU1FX0VOVFJZX2dldF9kYXRhKG5lKTsKLS0gICAgICAgIGVu dHJ5X3N0ci5hc3NpZ24oKGNvbnN0IGNoYXIqKShlbnRyeS0+ZGF0YSksIChzdGQ6OnNpemVfdCko ZW50cnktPmxlbmd0aCkpOwotKyAgICAgICAgZW50cnlfc3RyLmFzc2lnbigoY29uc3QgY2hhciop IEFTTjFfU1RSSU5HX2dldDBfZGF0YShlbnRyeSksIChzdGQ6OnNpemVfdCkgQVNOMV9TVFJJTkdf bGVuZ3RoKGVudHJ5KSk7Ci0gICAgICAgICBpZihlbnRyeV9zdHIgPT0gInByb3h5IiB8fCBlbnRy eV9zdHIgPT0gImxpbWl0ZWQgcHJveHkiIHx8Ci0gICAgICAgICAgICBlbnRyeV9zdHIuZmluZF9m aXJzdF9ub3Rfb2YoIjAxMjM0NTY3ODkiKSA9PSBzdGQ6OnN0cmluZzo6bnBvcykgewotICAgICAg ICAgICAvL0Ryb3AgdGhlIG5hbWUgZW50cnkgInByb3h5IiwgImxpbWl0ZWQgcHJveHkiLCBvciB0 aGUgcmFuZG9tIGRpZ2l0YWwoUkZDKQotLSAgICAgICAgICBuZSA9IFg1MDlfTkFNRV9kZWxldGVf ZW50cnkoc3ViamVjdCwgWDUwOV9OQU1FX2VudHJ5X2NvdW50KHN1YmplY3QpLTEpOwotLSAgICAg ICAgICBYNTA5X05BTUVfRU5UUllfZnJlZShuZSk7Ci0tICAgICAgICAgIG5lID0gTlVMTDsKLSsg ICAgICAgICAgWDUwOV9OQU1FX0VOVFJZX2ZyZWUoWDUwOV9OQU1FX2RlbGV0ZV9lbnRyeShzdWJq ZWN0LCBYNTA5X05BTUVfZW50cnlfY291bnQoc3ViamVjdCktMSkpOwotICAgICAgICAgfQotICAg ICAgICAgZWxzZSBicmVhazsKLSAgICAgICB9Ci1AQCAtMzA1LDcgKzMwMyw3IEBAIG5hbWVzcGFj ZSBBcmMgewotICAgfQotIAotICAgc3RkOjpzdHJpbmcgQ3JlZGVudGlhbDo6R2V0SXNzdWVyTmFt ZSh2b2lkKSBjb25zdCB7Ci0tICAgIFg1MDlfTkFNRSAqaXNzdWVyID0gTlVMTDsKLSsgICAgY29u c3QgWDUwOV9OQU1FICppc3N1ZXIgPSBOVUxMOwotICAgICBpZighY2VydF8pIHJldHVybiAiIjsK LSAgICAgaXNzdWVyID0gWDUwOV9nZXRfaXNzdWVyX25hbWUoY2VydF8pOwotICAgICBzdGQ6OnN0 cmluZyBzdHI7Ci1AQCAtMzI3LDcgKzMyNSw3IEBAIG5hbWVzcGFjZSBBcmMgewotICAgICAgIC8v IFRoaXMgd29ya3MgZXZlbiBpZiBsYXN0IGNlcnQgb24gY2hhaW4gaXMgQ0EKLSAgICAgICAvLyBp dHNlbGYgYmVjYXVzZSBDQSBpcyBzZWxmLXNpZ25lZC4KLSAgICAgICBYNTA5ICpjYWNlcnQgPSBz a19YNTA5X3ZhbHVlKGNlcnRfY2hhaW5fLCBudW0tMSk7Ci0tICAgICAgWDUwOV9OQU1FICpjYW5h bWUgPSBYNTA5X2dldF9pc3N1ZXJfbmFtZShjYWNlcnQpOwotKyAgICAgIGNvbnN0IFg1MDlfTkFN RSAqY2FuYW1lID0gWDUwOV9nZXRfaXNzdWVyX25hbWUoY2FjZXJ0KTsKLSAgICAgICBpZihjYW5h bWUhPU5VTEwpIHsKLSAgICAgICAgIGNoYXIqIGJ1ZiA9IFg1MDlfTkFNRV9vbmVsaW5lKGNhbmFt ZSxOVUxMLDApOwotICAgICAgICAgaWYoYnVmKSB7Ci1AQCAtMTE1OCwxNiArMTE1NiwxMiBAQCBu YW1lc3BhY2UgQXJjIHsKLSAgICAgICByZXR1cm4gTlVMTDsKLSAgICAgfQotIAotLSAgICAvL0FT TjFfT0NURVRfU1RSSU5HX3NldChleHRfb2N0LCBkYXRhLmNfc3RyKCksIGRhdGEuc2l6ZSgpKTsK LS0gICAgZXh0X29jdC0+ZGF0YSA9ICh1bnNpZ25lZCBjaGFyKikgbWFsbG9jKGRhdGEuc2l6ZSgp KTsKLS0gICAgaWYoIShleHRfb2N0LT5kYXRhKSkgewotKyAgICBpZiAoQVNOMV9PQ1RFVF9TVFJJ Tkdfc2V0KGV4dF9vY3QsIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGRhdGEuY19zdHIoKSwgZGF0 YS5zaXplKCkpID09IDApIHsKLSAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhFUlJPUiwgIkNh biBub3QgYWxsb2NhdGUgbWVtb3J5IGZvciBleHRlbnNpb24gZm9yIHByb3h5IGNlcnRpZmljYXRl Iik7Ci0gICAgICAgaWYoZXh0X29jdCkgQVNOMV9PQ1RFVF9TVFJJTkdfZnJlZShleHRfb2N0KTsK LSAgICAgICBpZihleHRfb2JqKSBBU04xX09CSkVDVF9mcmVlKGV4dF9vYmopOwotICAgICAgIHJl dHVybiBOVUxMOwotICAgICB9Ci0tICAgIG1lbWNweShleHRfb2N0LT5kYXRhLCBkYXRhLmNfc3Ry KCksIGRhdGEuc2l6ZSgpKTsKLS0gICAgZXh0X29jdC0+bGVuZ3RoID0gZGF0YS5zaXplKCk7Ci0g Ci0gICAgIFg1MDlfRVhURU5TSU9OKiBleHQgPSBOVUxMOwotICAgICBpZiAoIShleHQgPSBYNTA5 X0VYVEVOU0lPTl9jcmVhdGVfYnlfT0JKKE5VTEwsIGV4dF9vYmosIGNyaXQsIGV4dF9vY3QpKSkg ewotQEAgLTE3MDgsMTQgKzE3MDIsMTQgQEAgbmFtZXNwYWNlIEFyYyB7Ci0gICAgIHJlcV9leHRl bnNpb25zID0gWDUwOV9SRVFfZ2V0X2V4dGVuc2lvbnMocmVxXyk7Ci0gICAgIGZvcihpPTA7aTxz a19YNTA5X0VYVEVOU0lPTl9udW0ocmVxX2V4dGVuc2lvbnMpO2krKykgewotICAgICAgIFg1MDlf RVhURU5TSU9OKiBleHQgPSBza19YNTA5X0VYVEVOU0lPTl92YWx1ZShyZXFfZXh0ZW5zaW9ucyxp KTsKLS0gICAgICBBU04xX09CSkVDVCogZXh0ZW5zaW9uX29pZCA9IFg1MDlfRVhURU5TSU9OX2dl dF9vYmplY3QoZXh0KTsKLSsgICAgICBjb25zdCBBU04xX09CSkVDVCogZXh0ZW5zaW9uX29pZCA9 IFg1MDlfRVhURU5TSU9OX2dldF9vYmplY3QoZXh0KTsKLSAgICAgICBpbnQgbmlkID0gT0JKX29i ajJuaWQoZXh0ZW5zaW9uX29pZCk7Ci0gICAgICAgaWYobmlkID09IE5JRF9wcm94eUNlcnRJbmZv KSB7Ci0gICAgICAgICBpZihwcm94eV9jZXJ0X2luZm9fKSB7Ci0gICAgICAgICAgIFBST1hZX0NF UlRfSU5GT19FWFRFTlNJT05fZnJlZShwcm94eV9jZXJ0X2luZm9fKTsKLSAgICAgICAgICAgcHJv eHlfY2VydF9pbmZvXyA9IE5VTEw7Ci0gICAgICAgICB9Ci0tICAgICAgICBBU04xX09DVEVUX1NU UklORyogZGF0YSA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCk7Ci0rICAgICAgICBjb25z dCBBU04xX09DVEVUX1NUUklORyogZGF0YSA9IFg1MDlfRVhURU5TSU9OX2dldF9kYXRhKGV4dCk7 Ci0gICAgICAgICBpZighZGF0YSkgewotICAgICAgICAgICAgQ3JlZGVudGlhbExvZ2dlci5tc2co RVJST1IsICJNaXNzaW5nIGRhdGEgaW4gREVSIGVuY29kZWQgUFJPWFlfQ0VSVF9JTkZPX0VYVEVO U0lPTiBleHRlbnNpb24iKTsKLSAgICAgICAgICAgIExvZ0Vycm9yKCk7IGdvdG8gZXJyOwotQEAg LTE5NTQsNyArMTk0OCwxMSBAQCBlcnI6Ci0gICAgIGludCBudW07Ci0gICAgIGlmICgobnVtID0g WDUwOV9nZXRfZXh0X2NvdW50KGNlcnRfKSkgPiAwKSB7Ci0gICAgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBudW07IGkrKykgewotKyNpZiAoT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4NDAwMDAw MDBMKQotICAgICAgICAgWDUwOV9FWFRFTlNJT04gKmV4dDsKLSsjZWxzZQotKyAgICAgICAgY29u c3QgWDUwOV9FWFRFTlNJT04gKmV4dDsKLSsjZW5kaWYKLSAgICAgICAgIGNvbnN0IGNoYXIgKmV4 dG5hbWU7Ci0gCi0gICAgICAgICBleHQgPSBYNTA5X2dldF9leHQoY2VydF8sIGkpOwotQEAgLTE5 NzAsMTggKzE5NjgsMTggQEAgZXJyOgotICAgICAgICAgICAvL0dldCB4NTA5IGV4dGVuc2lvbiBt ZXRob2Qgc3RydWN0dXJlCi0gICAgICAgICAgIGlmICghKG1ldGhvZCA9IChYNTA5VjNfRVhUX01F VEhPRCAqKShYNTA5VjNfRVhUX2dldChleHQpKSkpIGJyZWFrOwotIAotLSAgICAgICAgICBBU04x X09DVEVUX1NUUklORyogZXh0dmFsdWUgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpOwot LSAgICAgICAgICBleHRfdmFsdWVfZGF0YSA9IGV4dHZhbHVlLT5kYXRhOwotKyAgICAgICAgICBj b25zdCBBU04xX09DVEVUX1NUUklORyogZXh0dmFsdWUgPSBYNTA5X0VYVEVOU0lPTl9nZXRfZGF0 YShleHQpOwotKyAgICAgICAgICBleHRfdmFsdWVfZGF0YSA9IEFTTjFfU1RSSU5HX2dldDBfZGF0 YShleHR2YWx1ZSk7Ci0gCi0gICAgICAgICAgIC8vRGVjb2RlIEFTTjEgaXRlbSBpbiBkYXRhCi0g ICAgICAgICAgIGlmIChtZXRob2QtPml0KSB7Ci0gICAgICAgICAgICAgICAgLy9OZXcgc3R5bGUg QVNOMQotLSAgICAgICAgICAgICAgIGV4dHN0ciA9IEFTTjFfaXRlbV9kMmkoTlVMTCwgJmV4dF92 YWx1ZV9kYXRhLCBleHR2YWx1ZS0+bGVuZ3RoLAotKyAgICAgICAgICAgICAgIGV4dHN0ciA9IEFT TjFfaXRlbV9kMmkoTlVMTCwgJmV4dF92YWx1ZV9kYXRhLCBBU04xX1NUUklOR19sZW5ndGgoZXh0 dmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNOMV9JVEVN X3B0cihtZXRob2QtPml0KSk7Ci0gICAgICAgICAgIH0KLSAgICAgICAgICAgZWxzZSB7Ci0gICAg ICAgICAgICAgICAgLy9PbGQgc3R5bGUgQVNOMQotLSAgICAgICAgICAgICAgIGV4dHN0ciA9IG1l dGhvZC0+ZDJpKE5VTEwsICZleHRfdmFsdWVfZGF0YSwgZXh0dmFsdWUtPmxlbmd0aCk7Ci0rICAg ICAgICAgICAgICAgZXh0c3RyID0gbWV0aG9kLT5kMmkoTlVMTCwgJmV4dF92YWx1ZV9kYXRhLCBB U04xX1NUUklOR19sZW5ndGgoZXh0dmFsdWUpKTsKLSAgICAgICAgICAgfQotIAotICAgICAgICAg ICB2YWwgPSBtZXRob2QtPmkydihtZXRob2QsIGV4dHN0ciwgTlVMTCk7Ci1AQCAtMjEwMCwxMiAr MjA5OCwxNiBAQCBlcnI6Ci0gCi0gICAgIHBvc2l0aW9uID0gWDUwOV9nZXRfZXh0X2J5X05JRChp c3N1ZXIsIE5JRF9leHRfa2V5X3VzYWdlLCAtMSk7Ci0gICAgIGlmKHBvc2l0aW9uID4gLTEpIHsK LS0gICAgICBYNTA5X0VYVEVOU0lPTiogZXh0ID0gTlVMTDsKLS0gICAgICBpZighKGV4dCA9IFg1 MDlfZ2V0X2V4dChpc3N1ZXIsIHBvc2l0aW9uKSkpIHsKLSsjaWYgKE9QRU5TU0xfVkVSU0lPTl9O VU1CRVIgPCAweDMwMDAwMDAwTCkKLSsgICAgICBYNTA5X0VYVEVOU0lPTiogZXh0MDsKLSsjZWxz ZQotKyAgICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OKiBleHQwOwotKyNlbmRpZgotKyAgICAgIGlm KCEoZXh0MCA9IFg1MDlfZ2V0X2V4dChpc3N1ZXIsIHBvc2l0aW9uKSkpIHsKLSAgICAgICAgIENy ZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCAiQ2FuIG5vdCBnZXQgZXh0ZW5kZWQgS2V5VXNhZ2Ug ZXh0ZW5zaW9uIGZyb20gaXNzdWVyIGNlcnRpZmljYXRlIik7Ci0gICAgICAgICBMb2dFcnJvcigp OyBnb3RvIGVycjsKLSAgICAgICB9Ci0tICAgICAgZXh0ID0gWDUwOV9FWFRFTlNJT05fZHVwKGV4 dCk7Ci0rICAgICAgWDUwOV9FWFRFTlNJT04qIGV4dCA9IFg1MDlfRVhURU5TSU9OX2R1cChleHQw KTsKLSAgICAgICBpZighZXh0KSB7Ci0gICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhFUlJP UiwgIkNhbiBub3QgY29weSBleHRlbmRlZCBLZXlVc2FnZSBleHRlbnNpb24iKTsKLSAgICAgICAg IExvZ0Vycm9yKCk7IGdvdG8gZXJyOwotZGlmZiAtLWdpdCBhL3NyYy9oZWQvbGlicy9jcmVkZW50 aWFsL1Byb3h5Y2VydGluZm8uY3BwIGIvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvUHJveHljZXJ0 aW5mby5jcHAKLWluZGV4IGFmMjRhZmQ1ZS4uNmYwZjIxNGY3IDEwMDY0NAotLS0tIGEvc3JjL2hl ZC9saWJzL2NyZWRlbnRpYWwvUHJveHljZXJ0aW5mby5jcHAKLSsrKyBiL3NyYy9oZWQvbGlicy9j cmVkZW50aWFsL1Byb3h5Y2VydGluZm8uY3BwCi1AQCAtNTQsMTIgKzU0LDEyIEBAIGludCBQUk9Y WV9QT0xJQ1lfc2V0X3BvbGljeShQUk9YWV9QT0xJQ1kgKiBwcm94eXBvbGljeSwgdW5zaWduZWQg Y2hhciAqIHBvbGljeSwKLSB1bnNpZ25lZCBjaGFyICogUFJPWFlfUE9MSUNZX2dldF9wb2xpY3ko UFJPWFlfUE9MSUNZICogcHJveHlwb2xpY3ksIGludCAqIGxlbmd0aCkgewotICAgLyogYXNzdXJl IGZpZWxkIHBvbGljeSBpcyBzZXQgKi8KLSAgIGlmKHByb3h5cG9saWN5LT5wb2xpY3kpIHsKLS0g ICAgKmxlbmd0aCA9IHByb3h5cG9saWN5LT5wb2xpY3ktPmxlbmd0aDsKLSsgICAgKmxlbmd0aCA9 IEFTTjFfU1RSSU5HX2xlbmd0aChwcm94eXBvbGljeS0+cG9saWN5KTsKLSAgICAgLyogYXNzdXJl IEFTTjFfT0NURVRfU1RSSU5HIGlzIGZ1bGwgKi8KLS0gICAgaWYgKCpsZW5ndGg+MCAmJiBwcm94 eXBvbGljeS0+cG9saWN5LT5kYXRhKSB7Ci0rICAgIGlmICgqbGVuZ3RoID4gMCAmJiBBU04xX1NU UklOR19nZXQwX2RhdGEocHJveHlwb2xpY3ktPnBvbGljeSkpIHsKLSAgICAgICB1bnNpZ25lZCBj aGFyICogY29weSA9ICh1bnNpZ25lZCBjaGFyKikgbWFsbG9jKCpsZW5ndGgpOwotICAgICAgIGlm KGNvcHkpIHsKLS0gICAgICAgIG1lbWNweShjb3B5LCBwcm94eXBvbGljeS0+cG9saWN5LT5kYXRh LCAqbGVuZ3RoKTsKLSsgICAgICAgIG1lbWNweShjb3B5LCBBU04xX1NUUklOR19nZXQwX2RhdGEo cHJveHlwb2xpY3ktPnBvbGljeSksICpsZW5ndGgpOwotICAgICAgICAgcmV0dXJuIGNvcHk7Ci0g ICAgICAgfQotICAgICB9Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvVk9N U1V0aWwuY3BwIGIvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvVk9NU1V0aWwuY3BwCi1pbmRleCAy YjRmMTMzNWYuLjhhNGE1OGVhOCAxMDA2NDQKLS0tLSBhL3NyYy9oZWQvbGlicy9jcmVkZW50aWFs L1ZPTVNVdGlsLmNwcAotKysrIGIvc3JjL2hlZC9saWJzL2NyZWRlbnRpYWwvVk9NU1V0aWwuY3Bw Ci1AQCAtODE4LDcgKzgxOCw3IEBAIGVycjoKLSAgICAgICAvLyBjb25zdF9jYXN0IGhhY2sgZHVl IHRvIG1pc3Npbmcgc2V0IG1ldGhvZAotICAgICAgIGNvbnN0IEFTTjFfQklUX1NUUklORyogYnN0 ciA9IFg1MDlfQUNFUlRfZ2V0MF9pc3N1ZXJVSUQoYSk7Ci0gICAgICAgaWYoYnN0cikKLS0gICAg ICAgIEFTTjFfQklUX1NUUklOR19zZXQoY29uc3RfY2FzdDxBU04xX0JJVF9TVFJJTkcqPihic3Ry KSwgdWlkLT5kYXRhLCB1aWQtPmxlbmd0aCk7Ci0rICAgICAgICBBU04xX0JJVF9TVFJJTkdfc2V0 KGNvbnN0X2Nhc3Q8QVNOMV9CSVRfU1RSSU5HKj4oYnN0ciksIGNvbnN0X2Nhc3Q8dW5zaWduZWQg Y2hhcio+KEFTTjFfU1RSSU5HX2dldDBfZGF0YSh1aWQpKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKHVp ZCkpOwotICAgICB9Ci0gCi0gICAgIGlmKGFsZzEpIHsKLUBAIC0xNDU1LDcgKzE0NTUsNyBAQCBl cnI6Ci0gICAgIEdFTkVSQUxfTkFNRSAqZGF0YSA9IHNrX0dFTkVSQUxfTkFNRV92YWx1ZShPU1NM X0lFVEZfQVRUUl9TWU5UQVhfZ2V0MF9wb2xpY3lBdXRob3JpdHkoY2FwYXR0ciksIDApOwotICAg ICBpZiAoZGF0YSAmJiBkYXRhLT50eXBlID09IEdFTl9VUkkpIHsKLSAgICAgICBzdGQ6OnN0cmlu ZyB2b25hbWUoIi92b25hbWU9Iik7Ci0tICAgICAgdm9uYW1lLmFwcGVuZCgoY29uc3QgY2hhciop KGRhdGEtPmQuaWE1LT5kYXRhKSwgZGF0YS0+ZC5pYTUtPmxlbmd0aCk7Ci0rICAgICAgdm9uYW1l LmFwcGVuZCgoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShkYXRhLT5kLmlhNSks IEFTTjFfU1RSSU5HX2xlbmd0aChkYXRhLT5kLmlhNSkpOwotICAgICAgIHN0ZDo6c3RyaW5nOjpz aXplX3R5cGUgcG9zID0gdm9uYW1lLmZpbmQoIjovLyIpOwotICAgICAgIGlmKHBvcyAhPSBzdGQ6 OnN0cmluZzo6bnBvcykgewotICAgICAgICAgdm9uYW1lLnJlcGxhY2UocG9zLDMsIi9ob3N0bmFt ZT0iKTsKLUBAIC0xNDc5LDcgKzE0NzksNyBAQCBlcnI6Ci0gICAgICAgICByZXR1cm4gZmFsc2U7 Ci0gICAgICAgfQotIAotLSAgICAgIHN0ZDo6c3RyaW5nIGZxYW4oKGNvbnN0IGNoYXIqKShjYXBu YW1lLT5kYXRhKSwgY2FwbmFtZS0+bGVuZ3RoKTsKLSsgICAgICBzdGQ6OnN0cmluZyBmcWFuKChj b25zdCBjaGFyKikgQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKGNhcG5hbWUpLCBBU04xX1NUUklOR19s ZW5ndGgoY2FwbmFtZSkpOwotIAotICAgICAgIC8vIGlmIHRoZSBhdHRyaWJ1dGUgaXMgbGlrZTog L2tub3dhcmMuZXUvUm9sZT1OVUxML0NhcGFiaWxpdHk9TlVMTAotICAgICAgIC8vIG9yIC9rbm93 YXJjLmV1L1JvbGU9dGVzdGVyL0NhcGFiaWxpdHk9TlVMTAotQEAgLTE1MzMsNyArMTUzMyw3IEBA IGVycjoKLSAgICAgICBTVEFDS19PRihBQ19BVFRSSUJVVEUpICphdHRzID0gaG9sZGVyLT5hdHRy aWJ1dGVzOwotIAotICAgICAgIGduID0gc2tfR0VORVJBTF9OQU1FX3ZhbHVlKGhvbGRlci0+Z3Jh bnRvciwgMCk7Ci0tICAgICAgZ3JhbnRvci5hc3NpZ24oKGNvbnN0IGNoYXIqKShnbi0+ZC5pYTUt PmRhdGEpLCBnbi0+ZC5pYTUtPmxlbmd0aCk7Ci0rICAgICAgZ3JhbnRvci5hc3NpZ24oKGNvbnN0 IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEoZ24tPmQuaWE1KSwgQVNOMV9TVFJJTkdfbGVu Z3RoKGduLT5kLmlhNSkpOwotICAgICAgIGlmKGdyYW50b3IuZW1wdHkoKSkgewotICAgICAgICAg Q3JlZGVudGlhbExvZ2dlci5tc2coRVJST1IsIlZPTVM6IHRoZSBncmFudG9yIGF0dHJpYnV0ZSBp cyBlbXB0eSIpOwotICAgICAgICAgc3RhdHVzIHw9IFZPTVNBQ0luZm86OkludGVybmFsUGFyc2lu Z0ZhaWxlZDsKLUBAIC0xNTUxLDE4ICsxNTUxLDE4IEBAIGVycjoKLSAgICAgICAgIHN0ZDo6c3Ry aW5nIGF0dHJpYnV0ZTsKLSAgICAgICAgIEFDX0FUVFJJQlVURSAqYXQgPSBza19BQ19BVFRSSUJV VEVfdmFsdWUoYXR0cywgaik7Ci0gCi0tICAgICAgICBuYW1lLmFzc2lnbigoY29uc3QgY2hhciop KGF0LT5uYW1lLT5kYXRhKSwgYXQtPm5hbWUtPmxlbmd0aCk7Ci0rICAgICAgICBuYW1lLmFzc2ln bigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0YShhdC0+bmFtZSksIEFTTjFfU1RS SU5HX2xlbmd0aChhdC0+bmFtZSkpOwotICAgICAgICAgaWYobmFtZS5lbXB0eSgpKSB7Ci0gICAg ICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCJWT01TOiB0aGUgYXR0cmlidXRlIG5h bWUgaXMgZW1wdHkiKTsKLSAgICAgICAgICAgc3RhdHVzIHw9IFZPTVNBQ0luZm86OkludGVybmFs UGFyc2luZ0ZhaWxlZDsKLSAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgfQotLSAg ICAgICAgdmFsdWUuYXNzaWduKChjb25zdCBjaGFyKikoYXQtPnZhbHVlLT5kYXRhKSwgYXQtPnZh bHVlLT5sZW5ndGgpOwotKyAgICAgICAgdmFsdWUuYXNzaWduKChjb25zdCBjaGFyKikgQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKGF0LT52YWx1ZSksIEFTTjFfU1RSSU5HX2xlbmd0aChhdC0+dmFsdWUp KTsKLSAgICAgICAgIGlmKHZhbHVlLmVtcHR5KCkpIHsKLSAgICAgICAgICAgQ3JlZGVudGlhbExv Z2dlci5tc2coV0FSTklORywiVk9NUzogdGhlIGF0dHJpYnV0ZSB2YWx1ZSBmb3IgJXMgaXMgZW1w dHkiLCBuYW1lLmNfc3RyKCkpOwotICAgICAgICAgICAvL3JldHVybiBmYWxzZTsKLSAgICAgICAg IH0KLS0gICAgICAgIHF1YWxpZmllci5hc3NpZ24oKGNvbnN0IGNoYXIqKShhdC0+cXVhbGlmaWVy LT5kYXRhKSwgYXQtPnF1YWxpZmllci0+bGVuZ3RoKTsKLSsgICAgICAgIHF1YWxpZmllci5hc3Np Z24oKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEoYXQtPnF1YWxpZmllciksIEFT TjFfU1RSSU5HX2xlbmd0aChhdC0+cXVhbGlmaWVyKSk7Ci0gICAgICAgICBpZihxdWFsaWZpZXIu ZW1wdHkoKSkgewotICAgICAgICAgICBDcmVkZW50aWFsTG9nZ2VyLm1zZyhFUlJPUiwiVk9NUzog dGhlIGF0dHJpYnV0ZSBxdWFsaWZpZXIgaXMgZW1wdHkiKTsKLSAgICAgICAgICAgc3RhdHVzIHw9 IFZPTVNBQ0luZm86OkludGVybmFsUGFyc2luZ0ZhaWxlZDsKLUBAIC0xNzk0LDE0ICsxNzk0LDE0 IEBAIGVycjoKLSAgICAgICAgIGlmIChpc3MpIHsKLSAgICAgICAgICAgaWYgKGtleS0+a2V5aWQp IHsKLSAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGhhc2hlZFsyMF07Ci0tICAgICAgICAgICAg QVNOMV9CSVRfU1RSSU5HKiBwa2V5c3RyID0gWDUwOV9nZXQwX3B1YmtleV9iaXRzdHIoaXNzKTsK LS0gICAgICAgICAgICBpZiAoIVNIQTEocGtleXN0ci0+ZGF0YSwKLS0gICAgICAgICAgICAgICAg ICAgICAgcGtleXN0ci0+bGVuZ3RoLAotKyAgICAgICAgICAgIGNvbnN0IEFTTjFfQklUX1NUUklO RyogcGtleXN0ciA9IFg1MDlfZ2V0MF9wdWJrZXlfYml0c3RyKGlzcyk7Ci0rICAgICAgICAgICAg aWYgKCFTSEExKEFTTjFfU1RSSU5HX2dldDBfZGF0YShwa2V5c3RyKSwKLSsgICAgICAgICAgICAg ICAgICAgICAgQVNOMV9TVFJJTkdfbGVuZ3RoKHBrZXlzdHIpLAotICAgICAgICAgICAgICAgICAg ICAgICBoYXNoZWQpKQotICAgICAgICAgICAgICAga2V5ZXJyID0gdHJ1ZTsKLSAKLS0gICAgICAg ICAgICBpZiAoKG1lbWNtcChrZXktPmtleWlkLT5kYXRhLCBoYXNoZWQsIDIwKSAhPSAwKSAmJgot LSAgICAgICAgICAgICAgICAoa2V5LT5rZXlpZC0+bGVuZ3RoID09IDIwKSkKLSsgICAgICAgICAg ICBpZiAoKG1lbWNtcChBU04xX1NUUklOR19nZXQwX2RhdGEoa2V5LT5rZXlpZCksIGhhc2hlZCwg MjApICE9IDApICYmCi0rICAgICAgICAgICAgICAgIChBU04xX1NUUklOR19sZW5ndGgoa2V5LT5r ZXlpZCkgPT0gMjApKQotICAgICAgICAgICAgICAga2V5ZXJyID0gdHJ1ZTsKLSAgICAgICAgICAg fQotICAgICAgICAgICBlbHNlIHsKLUBAIC0xODM4LDggKzE4MzgsOCBAQCBlcnI6Ci0gICB9Ci0g Ci0gICBzdGF0aWMgdGltZV90IEFTTjFfR0VORVJBTElaRURUSU1FX2dldChjb25zdCBBU04xX0dF TkVSQUxJWkVEVElNRSogY29uc3QgcykgewotLSAgICBpZiAoKHMgPT0gTlVMTCkgfHwgKHMtPmRh dGEgPT0gTlVMTCkgfHwgKHMtPmxlbmd0aCA9PSAwKSkgcmV0dXJuIEFyYzo6VGltZTo6VU5ERUZJ TkVEOwotLSAgICBzdGQ6OnN0cmluZyBzdHIoKGNoYXIgY29uc3QgKikocy0+ZGF0YSksIHMtPmxl bmd0aCk7Ci0rICAgIGlmICgocyA9PSBOVUxMKSB8fCAoQVNOMV9TVFJJTkdfZ2V0MF9kYXRhKHMp ID09IE5VTEwpIHx8IChBU04xX1NUUklOR19sZW5ndGgocykgPT0gMCkpIHJldHVybiBBcmM6OlRp bWU6OlVOREVGSU5FRDsKLSsgICAgc3RkOjpzdHJpbmcgc3RyKChjaGFyIGNvbnN0ICopIEFTTjFf U1RSSU5HX2dldDBfZGF0YShzKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKHMpKTsKLSAgICAgQXJjOjpU aW1lIHQoc3RyKTsKLSAgICAgcmV0dXJuIHQuR2V0VGltZSgpOwotICAgfQotQEAgLTIwNTAsNyAr MjA1MCw3IEBAIGVycjoKLSAgICAgY3RpbWUgKz0gMzAwOwotICAgICBkdGltZSA9IGN0aW1lLTYw MDsKLSAKLS0gICAgaWYgKChzdGFydC0+dHlwZSAhPSBWX0FTTjFfR0VORVJBTElaRURUSU1FKSB8 fCAoZW5kLT50eXBlICE9IFZfQVNOMV9HRU5FUkFMSVpFRFRJTUUpKSB7Ci0rICAgIGlmICgoQVNO MV9TVFJJTkdfdHlwZShzdGFydCkgIT0gVl9BU04xX0dFTkVSQUxJWkVEVElNRSkgfHwgKEFTTjFf U1RSSU5HX3R5cGUoZW5kKSAhPSBWX0FTTjFfR0VORVJBTElaRURUSU1FKSkgewotICAgICAgIENy ZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCJWT01TOiB1bnN1cHBvcnRlZCB0aW1lIGZvcm1hdCBp biBBQyAtIGV4cGVjdGluZyBHRU5FUkFMSVpFRCBUSU1FIik7Ci0gICAgICAgc3RhdHVzIHw9IFZP TVNBQ0luZm86OkFDUGFyc2luZ0ZhaWxlZDsKLSAgICAgICByZXR1cm4gZmFsc2U7IC8vID8KLUBA IC0yMTgxLDcgKzIxODEsNyBAQCBlcnI6Ci0gICAgICAgfQotICAgICB9Ci0gCi0tICAgIGlmIChY NTA5X0FDRVJUX2dldDBfc2VyaWFsTnVtYmVyKGFjKS0+bGVuZ3RoID4gMjApIHsKLSsgICAgaWYg KEFTTjFfU1RSSU5HX2xlbmd0aChYNTA5X0FDRVJUX2dldDBfc2VyaWFsTnVtYmVyKGFjKSkgPiAy MCkgewotICAgICAgIENyZWRlbnRpYWxMb2dnZXIubXNnKEVSUk9SLCJWT01TOiB0aGUgc2VyaWFs IG51bWJlciBvZiBBQyBJTkZPIGlzIHRvbyBsb25nIC0gZXhwZWN0aW5nIG5vIG1vcmUgdGhhbiAy MCBvY3RldHMiKTsKLSAgICAgICBzdGF0dXMgfD0gVk9NU0FDSW5mbzo6SW50ZXJuYWxQYXJzaW5n RmFpbGVkOwotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC0yMjYxLDcgKzIyNjEsNyBAQCBlcnI6 Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotICAgICB9Ci0gCi0tICAgIHN0ZDo6c3RyaW5nIHZvbmFt ZSgoY29uc3QgY2hhciAqKW5hbWUtPmQuaWE1LT5kYXRhLCAwLCBuYW1lLT5kLmlhNS0+bGVuZ3Ro KTsKLSsgICAgc3RkOjpzdHJpbmcgdm9uYW1lKChjb25zdCBjaGFyICopIEFTTjFfU1RSSU5HX2dl dDBfZGF0YShuYW1lLT5kLmlhNSksIDAsIEFTTjFfU1RSSU5HX2xlbmd0aChuYW1lLT5kLmlhNSkp OwotICAgICBzdGQ6OnN0cmluZzo6c2l6ZV90eXBlIGNwb3MgPSB2b25hbWUuZmluZCgiOi8vIik7 Ci0gICAgIHN0ZDo6c3RyaW5nIGhvc3RuYW1lOwotICAgICBpZiAoY3BvcyAhPSBzdGQ6OnN0cmlu Zzo6bnBvcykgewotQEAgLTIzMTQsNyArMjMxNCwxMSBAQCBlcnI6Ci0gICAgIGludCBuaWQgPSAw OwotICAgICBpbnQgcG9zaXRpb24gPSAwOwotICAgICBib29sIGNyaXRpY2FsID0gZmFsc2U7Ci0r I2lmIChPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHg0MDAwMDAwMEwpCi0gICAgIFg1MDlfRVhU RU5TSU9OICogZXh0OwotKyNlbHNlCi0rICAgIGNvbnN0IFg1MDlfRVhURU5TSU9OICogZXh0Owot KyNlbmRpZgotICAgICBBQ19TRVEqIGFjbGlzdCA9IE5VTEw7Ci0gICAgIG5pZCA9IE9CSl90eHQy bmlkKGFjc2VxT0lEKTsKLSAgICAgcG9zaXRpb24gPSBYNTA5X2dldF9leHRfYnlfTklEKGhvbGRl ciwgbmlkLCAtMSk7Ci1AQCAtMjY3NSw3ICsyNjc5LDcgQEAgZXJyOgotICAgICBleHQgPSBYNTA5 VjNfRVhUX2NvbmZfbmlkKE5VTEwsIE5VTEwsIE9CSl90eHQybmlkKGFjc2VxT0lEKSwgKGNoYXIq KShhY19zZXEuY19zdHIoKSkpOwotICAgICBpZihleHQhPU5VTEwpIHsKLSAgICAgICBhc24xLmNs ZWFyKCk7Ci0tICAgICAgYXNuMS5hc3NpZ24oKGNvbnN0IGNoYXIqKShYNTA5X0VYVEVOU0lPTl9n ZXRfZGF0YShleHQpLT5kYXRhKSwgWDUwOV9FWFRFTlNJT05fZ2V0X2RhdGEoZXh0KS0+bGVuZ3Ro KTsKLSsgICAgICBhc24xLmFzc2lnbigoY29uc3QgY2hhciopIEFTTjFfU1RSSU5HX2dldDBfZGF0 YShYNTA5X0VYVEVOU0lPTl9nZXRfZGF0YShleHQpKSwgQVNOMV9TVFJJTkdfbGVuZ3RoKFg1MDlf RVhURU5TSU9OX2dldF9kYXRhKGV4dCkpKTsKLSAgICAgICByZXQgPSB0cnVlOwotICAgICAgIFg1 MDlfRVhURU5TSU9OX2ZyZWUoZXh0KTsKLSAgICAgfQotZGlmZiAtLWdpdCBhL3NyYy9oZWQvbGli cy9kZWxlZ2F0aW9uL0RlbGVnYXRpb25JbnRlcmZhY2UuY3BwIGIvc3JjL2hlZC9saWJzL2RlbGVn YXRpb24vRGVsZWdhdGlvbkludGVyZmFjZS5jcHAKLWluZGV4IGFkNjFlNDBkMC4uYTlkZjg3OWRi IDEwMDY0NAotLS0tIGEvc3JjL2hlZC9saWJzL2RlbGVnYXRpb24vRGVsZWdhdGlvbkludGVyZmFj ZS5jcHAKLSsrKyBiL3NyYy9oZWQvbGlicy9kZWxlZ2F0aW9uL0RlbGVnYXRpb25JbnRlcmZhY2Uu Y3BwCi1AQCAtMjE0LDggKzIxNCw4IEBAIGVycjoKLSAKLSBzdGF0aWMgVGltZSBhc24xX3RvX3Rp bWUoY29uc3QgQVNOMV9VVENUSU1FICpzKSB7Ci0gICBpZihzICE9IE5VTEwpIHsKLS0gICAgaWYo cy0+dHlwZSA9PSBWX0FTTjFfVVRDVElNRSkgcmV0dXJuIFRpbWUoc3RkOjpzdHJpbmcoIjIwIikr KChjaGFyKikocy0+ZGF0YSkpKTsKLS0gICAgaWYocy0+dHlwZSA9PSBWX0FTTjFfR0VORVJBTEla RURUSU1FKSByZXR1cm4gVGltZShzdGQ6OnN0cmluZygoY2hhciopKHMtPmRhdGEpKSk7Ci0rICAg IGlmKEFTTjFfU1RSSU5HX3R5cGUocykgPT0gVl9BU04xX1VUQ1RJTUUpIHJldHVybiBUaW1lKHN0 ZDo6c3RyaW5nKCIyMCIpKygoY29uc3QgY2hhciopKEFTTjFfU1RSSU5HX2dldDBfZGF0YShzKSkp KTsKLSsgICAgaWYoQVNOMV9TVFJJTkdfdHlwZShzKSA9PSBWX0FTTjFfR0VORVJBTElaRURUSU1F KSByZXR1cm4gVGltZShzdGQ6OnN0cmluZygoY29uc3QgY2hhciopKEFTTjFfU1RSSU5HX2dldDBf ZGF0YShzKSkpKTsKLSAgIH0KLSAgIHJldHVybiBUaW1lKFRpbWU6OlVOREVGSU5FRCk7Ci0gfQot QEAgLTY0OCw2ICs2NDgsMTEgQEAgc3RkOjpzdHJpbmcgRGVsZWdhdGlvblByb3ZpZGVyOjpEZWxl Z2F0ZShjb25zdCBzdGQ6OnN0cmluZyYgcmVxdWVzdCxjb25zdCBEZWxlZ2EKLSAgIFBST1hZX1BP TElDWSBwcm94eV9wb2xpY3k7Ci0gICBjb25zdCBFVlBfTUQgKmRpZ2VzdCA9IEVWUF9zaGEyNTYo KTsKLSAgIFg1MDlfTkFNRSAqc3ViamVjdCA9IE5VTEw7Ci0rI2lmIChPUEVOU1NMX1ZFUlNJT05f TlVNQkVSIDwgMHgzMDAwMDAwMEwpCi0rICBYNTA5X05BTUUgKnN1YmplY3RfYyA9IE5VTEw7Ci0r I2Vsc2UKLSsgIGNvbnN0IFg1MDlfTkFNRSAqc3ViamVjdF9jID0gTlVMTDsKLSsjZW5kaWYKLSAg IGNvbnN0IGNoYXIqIG5lZWRfZXh0ID0gImNyaXRpY2FsLGRpZ2l0YWxTaWduYXR1cmUsa2V5RW5j aXBoZXJtZW50IjsKLSAgIHN0ZDo6c3RyaW5nIHByb3h5X2NuOwotICAgc3RkOjpzdHJpbmcgcmVz OwotQEAgLTgxNCw5ICs4MTksOSBAQCBzdGQ6OnN0cmluZyBEZWxlZ2F0aW9uUHJvdmlkZXI6OkRl bGVnYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiByZXF1ZXN0LGNvbnN0IERlbGVnYQotICAgICAgICAg fSBQUk9YWV9QT0xJQ1k7Ci0gICAqLwotIAotLSAgc3ViamVjdD1YNTA5X2dldF9zdWJqZWN0X25h bWUoKFg1MDkqKWNlcnRfKTsKLS0gIGlmKCFzdWJqZWN0KSBnb3RvIGVycjsKLS0gIHN1YmplY3Q9 WDUwOV9OQU1FX2R1cChzdWJqZWN0KTsKLSsgIHN1YmplY3RfYz1YNTA5X2dldF9zdWJqZWN0X25h bWUoKFg1MDkqKWNlcnRfKTsKLSsgIGlmKCFzdWJqZWN0X2MpIGdvdG8gZXJyOwotKyAgc3ViamVj dD1YNTA5X05BTUVfZHVwKHN1YmplY3RfYyk7Ci0gICBpZighc3ViamVjdCkgZ290byBlcnI7Ci0g ICBpZighWDUwOV9zZXRfaXNzdWVyX25hbWUoY2VydCxzdWJqZWN0KSkgZ290byBlcnI7Ci0gICBp ZighWDUwOV9OQU1FX2FkZF9lbnRyeV9ieV9OSUQoc3ViamVjdCxOSURfY29tbW9uTmFtZSxNQlNU UklOR19BU0MsKHVuc2lnbmVkIGNoYXIqKShwcm94eV9jbi5jX3N0cigpKSxwcm94eV9jbi5sZW5n dGgoKSwtMSwwKSkgZ290byBlcnI7Ci1kaWZmIC0tZ2l0IGEvc3JjL2hlZC9tY2MvdGxzL0RlbGVn YXRpb25Db2xsZWN0b3IuY3BwIGIvc3JjL2hlZC9tY2MvdGxzL0RlbGVnYXRpb25Db2xsZWN0b3Iu Y3BwCi1pbmRleCA1ZDljMDRkZmMuLjJkY2JiNjZiNCAxMDA2NDQKLS0tLSBhL3NyYy9oZWQvbWNj L3Rscy9EZWxlZ2F0aW9uQ29sbGVjdG9yLmNwcAotKysrIGIvc3JjL2hlZC9tY2MvdGxzL0RlbGVn YXRpb25Db2xsZWN0b3IuY3BwCi1AQCAtNDUsOCArNDUsOCBAQCBzdGF0aWMgYm9vbCBnZXRfcHJv eHlfcG9saWN5KFg1MDkqIGNlcnQsRGVsZWdhdGlvbk11bHRpU2VjQXR0ciogc2F0dHIpIHsKLSAg ICAgfTsgYnJlYWs7Ci0gICAgIGNhc2UgTklEX2lkX3BwbF9hbnlMYW5ndWFnZTogeyAvLyBIZXJl IHdlIHN0b3JlIEFSQyBwb2xpY3kKLSAgICAgICAvLyBFaXRoZXIgdGhpcyBpcyBBUkMgcG9saWN5 IGlzIGRldGVybWluZWQgYnkgZXhhbWluaW5nIGNvbnRlbnQKLS0gICAgICBjb25zdCBjaGFyKiBw b2xpY3lfc3RyID0gKGNvbnN0IGNoYXIgKikocGNpLT5wcm94eVBvbGljeS0+cG9saWN5LT5kYXRh KTsKLS0gICAgICBpbnQgcG9saWN5X2xlbmd0aCA9IHBjaS0+cHJveHlQb2xpY3ktPnBvbGljeS0+ bGVuZ3RoOwotKyAgICAgIGNvbnN0IGNoYXIqIHBvbGljeV9zdHIgPSAoY29uc3QgY2hhciAqKSBB U04xX1NUUklOR19nZXQwX2RhdGEocGNpLT5wcm94eVBvbGljeS0+cG9saWN5KTsKLSsgICAgICBp bnQgcG9saWN5X2xlbmd0aCA9IEFTTjFfU1RSSU5HX2xlbmd0aChwY2ktPnByb3h5UG9saWN5LT5w b2xpY3kpOwotICAgICAgIGlmKChwb2xpY3lfc3RyID09IE5VTEwpIHx8IChwb2xpY3lfbGVuZ3Ro IDw9IDApKSB7Ci0gICAgICAgICBsb2dnZXIubXNnKERFQlVHLCJQcm94eSB3aXRoIGVtcHR5IHBv bGljeSAgLSBmYWlsIG9uIHVucmVjb2duaXplZCBwb2xpY3kiKTsKLSAgICAgICAgIGJyZWFrOwot ZGlmZiAtLWdpdCBhL3NyYy9oZWQvbWNjL3Rscy9QYXlsb2FkVExTTUNDLmNwcCBiL3NyYy9oZWQv bWNjL3Rscy9QYXlsb2FkVExTTUNDLmNwcAotaW5kZXggODFhZDlkNzFmLi4zNThmYWM4NDQgMTAw NjQ0Ci0tLS0gYS9zcmMvaGVkL21jYy90bHMvUGF5bG9hZFRMU01DQy5jcHAKLSsrKyBiL3NyYy9o ZWQvbWNjL3Rscy9QYXlsb2FkVExTTUNDLmNwcAotQEAgLTIwLDEyICsyMCwxMiBAQCBpbnQgUGF5 bG9hZFRMU01DQzo6ZXhfZGF0YV9pbmRleF8gPSAtMTsKLSBUaW1lIGFzbjFfdG9fdXRjdGltZShj b25zdCBBU04xX1VUQ1RJTUUgKnMpIHsKLSAgIHN0ZDo6c3RyaW5nIHRfc3RyOwotICAgaWYoIXMp IHJldHVybiBUaW1lKCk7Ci0tICBpZihzLT50eXBlID09IFZfQVNOMV9VVENUSU1FKSB7Ci0rICBp ZihBU04xX1NUUklOR190eXBlKHMpID09IFZfQVNOMV9VVENUSU1FKSB7Ci0gICAgIHRfc3RyLmFw cGVuZCgiMjAiKTsKLS0gICAgdF9zdHIuYXBwZW5kKChjaGFyKikocy0+ZGF0YSkpOwotKyAgICB0 X3N0ci5hcHBlbmQoKGNvbnN0IGNoYXIqKSBBU04xX1NUUklOR19nZXQwX2RhdGEocykpOwotICAg fQotICAgZWxzZSB7Ly9WX0FTTjFfR0VORVJBTElaRURUSU1FCi0tICAgIHRfc3RyLmFwcGVuZCgo Y2hhciopKHMtPmRhdGEpKTsKLSsgICAgdF9zdHIuYXBwZW5kKChjb25zdCBjaGFyKikgQVNOMV9T VFJJTkdfZ2V0MF9kYXRhKHMpKTsKLSAgIH0KLSAgIHJldHVybiBUaW1lKHRfc3RyKTsKLSB9Ci0t LSAKLTIuNTQuMAotCgpkaWZmIC0tZ2l0IGEvMDAwMS1Vc2UtUHl0aG9uLTMtQVBJLWluLVNXSUct d3J3cHBlcnMucGF0Y2ggYi8wMDAxLVVzZS1QeXRob24tMy1BUEktaW4tU1dJRy13cndwcGVycy5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDExMTU0YS4uMDAwMDAwMAotLS0g YS8wMDAxLVVzZS1QeXRob24tMy1BUEktaW4tU1dJRy13cndwcGVycy5wYXRjaAorKysgL2Rldi9u dWxsCkBAIC0xLDkzICswLDAgQEAKLUZyb20gMmRiZWUzYjVhMDAzZmY5YzhmYjVmOWVjYmFjOTY0 MGVhZTZlYTlkNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IE1hdHRpYXMgRWxsZXJ0 IDxtYXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPgotRGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAx MDoyNjowOCArMDIwMAotU3ViamVjdDogW1BBVENIXSBVc2UgUHl0aG9uIDMgQVBJIGluIFNXSUcg d3J3cHBlcnMKLQotRG9uJ3QgcmVseSBvbiBQeXRob24gMiBjb21wYXRpYmlsaXR5IG1hY3JvcyBp biB0aGUgU1dJRyBoZWFkZXJzLgotVGhleSB3ZXJlIHJlbW92ZWQgaW4gU1dJRyA0LjUuMC4KLS0t LQotIHN3aWcvQXJjLmkgIHwgMTAgKysrKysrKysrKwotIHN3aWcvZGF0YS5pIHwgMTYgKysrKysr KysrKysrLS0tLQotIDIgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKLQotZGlmZiAtLWdpdCBhL3N3aWcvQXJjLmkgYi9zd2lnL0FyYy5pCi1pbmRleCAyOGNl MjJjNTguLmI1NjY3ZGYyMiAxMDA2NDQKLS0tLSBhL3N3aWcvQXJjLmkKLSsrKyBiL3N3aWcvQXJj LmkKLUBAIC05MCw3ICs5MCw5IEBAIGNsYXNzIFN0YXRpY1Byb3BlcnR5V3JhcHBlcihvYmplY3Qp OgotICV0eXBlbWFwKGluKSB0aW1lX3QKLSB7Ci0gICBpZiAgICAgIChQeUxvbmdfQ2hlY2soJGlu cHV0KSkgICQxID0gKHRpbWVfdCkgUHlMb25nX0FzTG9uZygkaW5wdXQpOwotKyUjaWYgUFlfVkVS U0lPTl9IRVggPCAweDAzMDAwMDAwCi0gICBlbHNlIGlmIChQeUludF9DaGVjaygkaW5wdXQpKSAg ICQxID0gKHRpbWVfdCkgUHlJbnRfQXNMb25nKCRpbnB1dCk7Ci0rJSNlbmRpZgotICAgZWxzZSBp ZiAoUHlGbG9hdF9DaGVjaygkaW5wdXQpKSAkMSA9ICh0aW1lX3QpIFB5RmxvYXRfQXNEb3VibGUo JGlucHV0KTsKLSAgIGVsc2UgewotICAgICBQeUVycl9TZXRTdHJpbmcoUHlFeGNfVHlwZUVycm9y LCJFeHBlY3RlZCBhIGxhcmdlIHR5cGUiKTsKLUBAIC0xMDcsNyArMTA5LDExIEBAIGNsYXNzIFN0 YXRpY1Byb3BlcnR5V3JhcHBlcihvYmplY3QpOgotIAotICV0eXBlbWFwKGluKSB1aW50MzJfdAot IHsKLSslI2lmIFBZX1ZFUlNJT05fSEVYIDwgMHgwMzAwMDAwMAotICAgaWYgICAgICAoUHlJbnRf Q2hlY2soJGlucHV0KSkgICAkMSA9ICh1aW50MzJfdCkgUHlJbnRfQXNMb25nKCRpbnB1dCk7Ci0r JSNlbHNlCi0rICBpZiAgICAgIChQeUxvbmdfQ2hlY2soJGlucHV0KSkgICQxID0gKHVpbnQzMl90 KSBQeUxvbmdfQXNMb25nKCRpbnB1dCk7Ci0rJSNlbmRpZgotICAgZWxzZSBpZiAoUHlGbG9hdF9D aGVjaygkaW5wdXQpKSAkMSA9ICh1aW50MzJfdCkgUHlGbG9hdF9Bc0RvdWJsZSgkaW5wdXQpOwot ICAgZWxzZSB7Ci0gICAgIFB5RXJyX1NldFN0cmluZyhQeUV4Y19UeXBlRXJyb3IsIlVuYWJsZSB0 byBjb252ZXJ0IHR5cGUgdG8gMzJiaXQgbnVtYmVyIChpbnQvZmxvYXQpIik7Ci1AQCAtMTE4LDcg KzEyNCwxMSBAQCBjbGFzcyBTdGF0aWNQcm9wZXJ0eVdyYXBwZXIob2JqZWN0KToKLSAKLSAldHlw ZW1hcChvdXQpIHVpbnQzMl90Ci0gewotKyUjaWYgUFlfVkVSU0lPTl9IRVggPCAweDAzMDAwMDAw Ci0gICAkcmVzdWx0ID0gUHlJbnRfRnJvbUxvbmcoKGludCkkMSk7Ci0rJSNlbHNlCi0rICAkcmVz dWx0ID0gUHlMb25nX0Zyb21Mb25nKChpbnQpJDEpOwotKyUjZW5kaWYKLSB9Ci0gI2VuZGlmCi0g Ci1kaWZmIC0tZ2l0IGEvc3dpZy9kYXRhLmkgYi9zd2lnL2RhdGEuaQotaW5kZXggOGE2ZGJhNjEy Li42NmE4ZWZlZTYgMTAwNjQ0Ci0tLS0gYS9zd2lnL2RhdGEuaQotKysrIGIvc3dpZy9kYXRhLmkK LUBAIC0xMjEsMjMgKzEyMSwzMSBAQCB0eXBlZGVmIHN0cnVjdCB7Ci0gCi0gJXR5cGVtYXAob3V0 KSBBcmM6OkRhdGFCdWZmZXJGb3JXcml0ZVJlc3VsdCB7Ci0gICAkcmVzdWx0ID0gUHlUdXBsZV9O ZXcoNSk7Ci0rJSNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDAwMDAwCi0rICBQeVR1cGxlX1Nl dEl0ZW0oJHJlc3VsdCwwLFB5TG9uZ19Gcm9tTG9uZygkMS5yZXN1bHQpKTsKLSsgIFB5VHVwbGVf U2V0SXRlbSgkcmVzdWx0LDEsUHlMb25nX0Zyb21Mb25nKCQxLmhhbmRsZSkpOwotKyAgUHlUdXBs ZV9TZXRJdGVtKCRyZXN1bHQsMixQeUxvbmdfRnJvbUxvbmcoJDEuc2l6ZSkpOwotKyAgUHlUdXBs ZV9TZXRJdGVtKCRyZXN1bHQsMyxQeUxvbmdfRnJvbUxvbmcoJDEub2Zmc2V0KSk7Ci0rICBQeVR1 cGxlX1NldEl0ZW0oJHJlc3VsdCw0LCQxLmJ1ZmZlcj9QeVVuaWNvZGVfRnJvbVN0cmluZ0FuZFNp emUoJDEuYnVmZmVyLCQxLnNpemUpOlB5X05vbmUpOwotKyUjZWxzZQotICAgUHlUdXBsZV9TZXRJ dGVtKCRyZXN1bHQsMCxQeUludF9Gcm9tTG9uZygkMS5yZXN1bHQpKTsKLSAgIFB5VHVwbGVfU2V0 SXRlbSgkcmVzdWx0LDEsUHlJbnRfRnJvbUxvbmcoJDEuaGFuZGxlKSk7Ci0gICBQeVR1cGxlX1Nl dEl0ZW0oJHJlc3VsdCwyLFB5SW50X0Zyb21Mb25nKCQxLnNpemUpKTsKLSAgIFB5VHVwbGVfU2V0 SXRlbSgkcmVzdWx0LDMsUHlJbnRfRnJvbUxvbmcoJDEub2Zmc2V0KSk7Ci0tJSNpZiBQWV9WRVJT SU9OX0hFWD49MHgwMzAwMDAwMAotLSAgUHlUdXBsZV9TZXRJdGVtKCRyZXN1bHQsNCwkMS5idWZm ZXI/UHlVbmljb2RlX0Zyb21TdHJpbmdBbmRTaXplKCQxLmJ1ZmZlciwkMS5zaXplKTpQeV9Ob25l KTsKLS0lI2Vsc2UKLSAgIFB5VHVwbGVfU2V0SXRlbSgkcmVzdWx0LDQsJDEuYnVmZmVyP1B5U3Ry aW5nX0Zyb21TdHJpbmdBbmRTaXplKCQxLmJ1ZmZlciwkMS5zaXplKTpQeV9Ob25lKTsKLSAlI2Vu ZGlmCi0gfQotIAotICV0eXBlbWFwKG91dCkgQXJjOjpEYXRhQnVmZmVyRm9yUmVhZFJlc3VsdCB7 Ci0rJSNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDAwMDAwCi0rICAkcmVzdWx0ID0gUHlUdXBs ZV9QYWNrKDMsIFB5TG9uZ19Gcm9tTG9uZygkMS5yZXN1bHQpLCBQeUxvbmdfRnJvbUxvbmcoJDEu aGFuZGxlKSwgUHlMb25nX0Zyb21Mb25nKCQxLnNpemUpKTsKLSslI2Vsc2UKLSAgICRyZXN1bHQg PSBQeVR1cGxlX1BhY2soMywgUHlJbnRfRnJvbUxvbmcoJDEucmVzdWx0KSwgUHlJbnRfRnJvbUxv bmcoJDEuaGFuZGxlKSwgUHlJbnRfRnJvbUxvbmcoJDEuc2l6ZSkpOwotKyUjZW5kaWYKLSB9Ci0g Ci0gJXR5cGVtYXAoaW4pIChjaGFyKiBEYXRhQnVmZmVySXNSZWFkQnVmLCB1bnNpZ25lZCBpbnQg RGF0YUJ1ZmZlcklzUmVhZFNpemUpIHsKLS0lI2lmIFBZX1ZFUlNJT05fSEVYPj0weDAzMDAwMDAw Ci0rJSNpZiBQWV9WRVJTSU9OX0hFWCA+PSAweDAzMDAwMDAwCi0gICAkaW5wdXQgPSBQeVVuaWNv ZGVfQXNVVEY4U3RyaW5nKCRpbnB1dCk7Ci0gICAkMSA9IFB5Qnl0ZXNfQXNTdHJpbmcoJGlucHV0 KTsKLSAgICQyID0gKCQxKT9QeUJ5dGVzX1NpemUoJGlucHV0KTowOwotLS0gCi0yLjU1LjAKLQoK ZGlmZiAtLWdpdCBhL25vcmR1Z3JpZC1hcmMuc3BlYyBiL25vcmR1Z3JpZC1hcmMuc3BlYwppbmRl eCA0MzlmZGM3Li44NTAwNjM0IDEwMDY0NAotLS0gYS9ub3JkdWdyaWQtYXJjLnNwZWMKKysrIGIv bm9yZHVncmlkLWFyYy5zcGVjCkBAIC0yMiwyNCArMjIsMTQgQEAKICVnbG9iYWwgX2Jhc2hjb21w ZGlyICUocGtnLWNvbmZpZyAtLXZhcmlhYmxlPWNvbXBsZXRpb25zZGlyIGJhc2gtY29tcGxldGlv biAyPi9kZXYvbnVsbCB8fCBlY2hvICV7X3N5c2NvbmZkaXJ9L2Jhc2hfY29tcGxldGlvbi5kKQog CiBOYW1lOgkJbm9yZHVncmlkLWFyYwotVmVyc2lvbjoJNy4xLjIKLVJlbGVhc2U6CTglez9kaXN0 fQorVmVyc2lvbjoJNy4yLjAKK1JlbGVhc2U6CTElez9kaXN0fQogU3VtbWFyeToJQWR2YW5jZWQg UmVzb3VyY2UgQ29ubmVjdG9yIE1pZGRsZXdhcmUKICMJCUFwYWNoZS0yLjA6IG1vc3QgZmlsZXMK ICMJCU1JVDogc3JjL2V4dGVybmFsL2NKU09OL2NKU09OLmMgc3JjL2V4dGVybmFsL2NKU09OL2NK U09OLmgKIExpY2Vuc2U6CUFwYWNoZS0yLjAgQU5EIE1JVAogVVJMOgkJaHR0cHM6Ly93d3cubm9y ZHVncmlkLm9yZy8KIFNvdXJjZToJCWh0dHBzOi8vZG93bmxvYWQubm9yZHVncmlkLm9yZy9wYWNr YWdlcy8le25hbWV9L3JlbGVhc2VzLyV7dmVyc2lvbn0vc3JjLyV7bmFtZX0tJXt2ZXJzaW9ufS50 YXIuZ3oKLSMJCVN1cHBvcnQgU1dJRyA0LjQuMCAocGF0Y2ggZnJvbSBXaWxsaWFtIFMgRnVsdG9u KQotIwkJaHR0cHM6Ly9naXRodWIuY29tL25vcmR1Z3JpZC9hcmMvcHVsbC8xNQotIwkJaHR0cHM6 Ly9zb3VyY2UuY29kZXJlZmluZXJ5Lm9yZy9ub3JkdWdyaWQvYXJjLy0vbWVyZ2VfcmVxdWVzdHMv MTk2NAotUGF0Y2gwOgkJMDAwMS1IYW5kbGUtUHl0aG9uLW11bHRpLXBoYXNlLWluaXRpYWxpemF0 aW9uLXN1cHBvcnQtaW4tLnBhdGNoCi0jCQlodHRwczovL3NvdXJjZS5jb2RlcmVmaW5lcnkub3Jn L25vcmR1Z3JpZC9hcmMvLS9tZXJnZV9yZXF1ZXN0cy8xOTcxCi1QYXRjaDE6CQkwMDAxLUZpeC1j b21waWxhdGlvbi13aXRoLVB5dGhvbi0zLjE1LnBhdGNoCi0jCQlodHRwczovL3NvdXJjZS5jb2Rl cmVmaW5lcnkub3JnL25vcmR1Z3JpZC9hcmMvLS9tZXJnZV9yZXF1ZXN0cy8xOTk3Ci1QYXRjaDI6 CQkwMDAxLVN1cHBvcnQtT3BlblNTTC00LnBhdGNoCi0jCQlodHRwczovL3NvdXJjZS5jb2RlcmVm aW5lcnkub3JnL25vcmR1Z3JpZC9hcmMvLS9tZXJnZV9yZXF1ZXN0cy8yMDEyCi1QYXRjaDM6CQkw MDAxLVVzZS1QeXRob24tMy1BUEktaW4tU1dJRy13cndwcGVycy5wYXRjaAogCiAjCQlQYWNrYWdl cyBkcm9wcGVkIHdpdGhvdXQgcmVwbGFjZW1lbnRzCiBPYnNvbGV0ZXM6CSV7bmFtZX0tYXJjcHJv eHlhbHQgPCA2LjAuMApAQCAtNDg0LDcgKzQ3NCw3IEBAIEhlYWRlciBmaWxlcyBhbmQgbGlicmFy aWVzIG5lZWRlZCB0byBkZXZlbG9wIGFwcGxpY2F0aW9ucyB1c2luZyBBUkMuCiAKICVwYWNrYWdl IC1uIHB5dGhvbjMtJXtuYW1lfQogU3VtbWFyeToJQVJDIFB5dGhvbiAzIHdyYXBwZXIKLSV7P3B5 dGhvbl9wcm92aWRlOiVweXRob25fcHJvdmlkZSBweXRob24zLSV7bmFtZX19CislcHlfcHJvdmlk ZXMJcHl0aG9uMy0le25hbWV9CiBSZXF1aXJlczoJJXtuYW1lfSA9ICV7dmVyc2lvbn0tJXtyZWxl YXNlfQogCiAlZGVzY3JpcHRpb24gLW4gcHl0aG9uMy0le25hbWV9CkBAIC01MzYsNyArNTI2LDcg QEAgbWFuYWdlbWVudCBmZWF0dXJlcyBvbiB0aGUgd29ya2VyIG5vZGVzIChXTikuCiAKICVwYWNr YWdlIC1uIHB5dGhvbjMtYXJjcmVzdAogU3VtbWFyeToJQVJDIFJFU1QgY2xpZW50Ci0lez9weXRo b25fcHJvdmlkZTolcHl0aG9uX3Byb3ZpZGUgcHl0aG9uMy1hcmNyZXN0fQorJXB5X3Byb3ZpZGVz CXB5dGhvbjMtYXJjcmVzdAogQnVpbGRBcmNoOglub2FyY2gKIAogJWRlc2NyaXB0aW9uIC1uIHB5 dGhvbjMtYXJjcmVzdApAQCAtNTYxLDEwICs1NTEsNiBAQCBwdWJsaXNoZXMgbWV0cmljcyBhYm91 dCBqb2JzIGFuZCBkYXRhc3RhZ2luZyBvbiB0aGUgQVJDLUNFLgogCiAlcHJlcAogJXNldHVwIC1x Ci0lcGF0Y2ggLVAwIC1wMQotJXBhdGNoIC1QMSAtcDEKLSVwYXRjaCAtUDIgLXAxCi0lcGF0Y2gg LVAzIC1wMQogCiAlYnVpbGQKIGF1dG9yZWNvbmYgLXYgLWYgLWkKQEAgLTExNDMsNiArMTEyOSw5 IEBAIHNlbWFuYWdlIGZjb250ZXh0IC1hIC10IHNsYXBkX3Zhcl9ydW5fdCAiL3Zhci9ydW4vYXJj L2JkaWkvZGIoLy4qKT8iIDI+L2Rldi9udWxsCiAle19zYmluZGlyfS9hcmMtZXhwb3J0ZXIKIAog JWNoYW5nZWxvZworKiBUdWUgU2VwIDAxIDIwMjYgTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxs ZXJ0QHBoeXNpY3MudXUuc2U+IC0gNy4yLjAtMQorLSBVcGRhdGUgdG8gdmVyc2lvbiA3LjIuMAor CiAqIFR1ZSBBdWcgMTggMjAyNiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2lj cy51dS5zZT4gLSA3LjEuMi04CiAtIFVzZSB1cHN0cmVhbSdzIHBhdGNoIGZvciBTV0lHIDQuNS4w IHN1cHBvcnQKIAoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4IDI5NDk3ZTgu LjM2NmM0YTYgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAtMSArMSBAQAot U0hBNTEyIChub3JkdWdyaWQtYXJjLTcuMS4yLnRhci5neikgPSA1Y2ZhMzc3ODE5N2Y4N2ZkYzRk OTk5ZmJhNTYxNTMyNTdhYTA5OTE2ODEzNzM4N2RlZDU1MjBkNTgwYmRiZjA0NmY0OGQ5NGRjY2Iy MjZkNDM1NmYzNjk3OWQ1YTEyOGQyODI4YzBmYTQ3YTk2YzY0MzA1YjljOTIzNDBiZWY4MworU0hB NTEyIChub3JkdWdyaWQtYXJjLTcuMi4wLnRhci5neikgPSA4YjlmMGQ4ZjYzMzdhYjYxYTlmYzgz YmYyZmIzMTY4YTZjNjQzMGFiYjEyZDYwM2EzYjM5YThkYTc4YTU0MDViMjRiYTZiYTYwODlhNDcz ZjAyMmZiMzM0MDFhNjdhMzdiNTI1MTVmMjMyZTdjNzVkODc1MTUwYzhmYmExMDViMQo=