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/globus-gram-protocol] rawhide: Fix compiler and doxygen warnings Date: Sun, 14 Jun 2026 08:47:36 GMT Message-ID: <178142685697.1.8147578442580190384.rpms-globus-gram-protocol-bf0fae4683c3@fedoraproject.org> List-ID: X-Git-Repo: rpms/globus-gram-protocol X-Git-Branch: rawhide X-Git-Rev: bf0fae4683c391f217687a02dc2437835c875c58 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvZ2xvYnVzLWdyYW0t cHJvdG9jb2wKQnJhbmNoIDogcmF3aGlkZQpDb21taXQgOiBiZjBmYWU0NjgzYzM5MWYyMTc2ODdh MDJkYzI0Mzc4MzVjODc1YzU4CkF1dGhvciA6IE1hdHRpYXMgRWxsZXJ0IDxtYXR0aWFzLmVsbGVy dEBwaHlzaWNzLnV1LnNlPgpEYXRlICAgOiAyMDI2LTA2LTE0VDEwOjM5OjEzKzAyOjAwClN0YXRz ICA6ICszNDIwLy0xIGluIDMgZmlsZShzKQpVUkwgICAgOiBodHRwczovL3NyYy5mZWRvcmFwcm9q ZWN0Lm9yZy9ycG1zL2dsb2J1cy1ncmFtLXByb3RvY29sL2MvYmYwZmFlNDY4M2MzOTFmMjE3Njg3 YTAyZGMyNDM3ODM1Yzg3NWM1OD9icmFuY2g9cmF3aGlkZQoKTG9nOgpGaXggY29tcGlsZXIgYW5k IGRveHlnZW4gd2FybmluZ3MKCi0tLQpkaWZmIC0tZ2l0IGEvMDAwMS1VbnRhYmlmeS1hbmQtcmVt b3ZlLXRyYWlsaW5nLXdoaXRlLXNwYWNlLnBhdGNoIGIvMDAwMS1VbnRhYmlmeS1hbmQtcmVtb3Zl LXRyYWlsaW5nLXdoaXRlLXNwYWNlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmJhNjliMDgKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAxLVVudGFiaWZ5LWFuZC1yZW1v dmUtdHJhaWxpbmctd2hpdGUtc3BhY2UucGF0Y2gKQEAgLTAsMCArMSwzMzA0IEBACitGcm9tIDNj Y2RhYTAyMzYyMzBiYmNiY2JmMzM5ZTdkZmRmYWYyM2MxMGJkNmYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCitGcm9tOiBNYXR0aWFzIEVsbGVydCA8bWF0dGlhcy5lbGxlcnRAcGh5c2ljcy51dS5z ZT4KK0RhdGU6IFdlZCwgMjAgTWF5IDIwMjYgMDA6MTU6MzcgKzAyMDAKK1N1YmplY3Q6IFtQQVRD SCAxLzJdIFVudGFiaWZ5IGFuZCByZW1vdmUgdHJhaWxpbmcgd2hpdGUtc3BhY2UKKworLS0tCisg Li4uL3Byb3RvY29sL3NvdXJjZS9nbG9idXNfZ3JhbV9wcm90b2NvbF9pby5jIHwgMjA1MiArKysr KysrKy0tLS0tLS0tLQorIC4uLi9zb3VyY2UvZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcGFjay5jICAg ICAgICB8ICAgMzYgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDEwNDQgaW5zZXJ0aW9ucygrKSwgMTA0 NCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dyYW0vcHJvdG9jb2wvc291cmNlL2dsb2J1 c19ncmFtX3Byb3RvY29sX2lvLmMgYi9ncmFtL3Byb3RvY29sL3NvdXJjZS9nbG9idXNfZ3JhbV9w cm90b2NvbF9pby5jCitpbmRleCA0ZGJkM2U4MWMuLjE5ZTc3MWEwYyAxMDA2NDQKKy0tLSBhL2dy YW0vcHJvdG9jb2wvc291cmNlL2dsb2J1c19ncmFtX3Byb3RvY29sX2lvLmMKKysrKyBiL2dyYW0v cHJvdG9jb2wvc291cmNlL2dsb2J1c19ncmFtX3Byb3RvY29sX2lvLmMKK0BAIC0zOCwxNTkgKzM4 LDE1OSBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3NldHVwX2Nvbm5lY3RfYXR0cigKKyBzdGF0 aWMKKyBnbG9idXNfYm9vbF90CisgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9hdXRob3JpemF0aW9u X2NhbGxiYWNrKAorLQl2b2lkICoJCQkJYXJnLAorLQlnbG9idXNfaW9faGFuZGxlX3QgKgkJaGFu ZGxlLAorLQlnbG9idXNfcmVzdWx0X3QJCQlyZXN1bHQsCistCWNoYXIgKgkJCQlpZGVudGl0eSwK Ky0JZ3NzX2N0eF9pZF90IAkJCWNvbnRleHRfaGFuZGxlKTsKKysgICAgICAgIHZvaWQgKiAgICAg ICAgICAgICAgICAgICAgICAgICAgYXJnLAorKyAgICAgICAgZ2xvYnVzX2lvX2hhbmRsZV90ICog ICAgICAgICAgICBoYW5kbGUsCisrICAgICAgICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAgICAg ICAgIHJlc3VsdCwKKysgICAgICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgaWRl bnRpdHksCisrICAgICAgICBnc3NfY3R4X2lkX3QgICAgICAgICAgICAgICAgICAgIGNvbnRleHRf aGFuZGxlKTsKKyAKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9saXN0 ZW5fY2FsbGJhY2soCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAgIGdsb2J1c19p b19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJlc3VsdCk7Cisr ICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysg ICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICBnbG9i dXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworIAorIHN0YXRpYworIHZv aWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2FjY2VwdF9jYWxsYmFjaygKKy0gICAgdm9pZCAq CQkJCWNhbGxiYWNrX2FyZywKKy0gICAgZ2xvYnVzX2lvX2hhbmRsZV90ICoJCWhhbmRsZSwKKy0g ICAgZ2xvYnVzX3Jlc3VsdF90CQkJcmVzdWx0KTsKKysgICAgdm9pZCAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAg ICAgICAgICAgICAgICBoYW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAg ICAgICAgIHJlc3VsdCk7CisgCisgc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2dyYW1fcHJvdG9j b2xfY2xvc2VfbGlzdGVuZXIoCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAgIGds b2J1c19pb19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJlc3Vs dCk7CisrICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2Fy ZywKKysgICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAg ICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworIAorIHN0YXRp YworIHZvaWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3RfY2FsbGJhY2soCistICAg IHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAgIGdsb2J1c19pb19oYW5kbGVfdCAqCQloYW5k bGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJlc3VsdCk7CisrICAgIHZvaWQgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysgICAgZ2xvYnVzX2lvX2hhbmRs ZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICBnbG9idXNfcmVzdWx0X3QgICAgICAg ICAgICAgICAgICAgICByZXN1bHQpOworIAorIHN0YXRpYworIHZvaWQKKyBnbG9idXNfbF9ncmFt X3Byb3RvY29sX3dyaXRlX3JlcXVlc3RfY2FsbGJhY2soCistICAgIHZvaWQgKgkJCQljYWxsYmFj a19hcmcsCistICAgIGdsb2J1c19pb19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19y ZXN1bHRfdAkJCXJlc3VsdCwKKy0gICAgZ2xvYnVzX2J5dGVfdCAqCQkJYnVmLAorLSAgICBnbG9i dXNfc2l6ZV90CQkJbmJ5dGVzKTsKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAgICAgICAgICAg ICAgICBoYW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJl c3VsdCwKKysgICAgZ2xvYnVzX2J5dGVfdCAqICAgICAgICAgICAgICAgICAgICAgYnVmLAorKyAg ICBnbG9idXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpOworIAorIHN0YXRp YworIHZvaWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3JlYWRfcmVxdWVzdF9jYWxsYmFjaygK Ky0gICAgdm9pZCAqCQkJCWNhbGxiYWNrX2FyZywKKy0gICAgZ2xvYnVzX2lvX2hhbmRsZV90ICoJ CWhhbmRsZSwKKy0gICAgZ2xvYnVzX3Jlc3VsdF90CQkJcmVzdWx0LAorLSAgICBnbG9idXNfYnl0 ZV90ICoJCQlidWYsCistICAgIGdsb2J1c19zaXplX3QJCQluYnl0ZXMpOworKyAgICB2b2lkICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFja19hcmcsCisrICAgIGdsb2J1c19p b19oYW5kbGVfdCAqICAgICAgICAgICAgICAgIGhhbmRsZSwKKysgICAgZ2xvYnVzX3Jlc3VsdF90 ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorKyAgICBnbG9idXNfYnl0ZV90ICogICAgICAg ICAgICAgICAgICAgICBidWYsCisrICAgIGdsb2J1c19zaXplX3QgICAgICAgICAgICAgICAgICAg ICAgIG5ieXRlcyk7CisgCisgc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xf d3JpdGVfcmVwbHlfY2FsbGJhY2soCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAg IGdsb2J1c19pb19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJl c3VsdCwKKy0gICAgZ2xvYnVzX2J5dGVfdCAqCQkJYnVmLAorLSAgICBnbG9idXNfc2l6ZV90CQkJ bmJ5dGVzKTsKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJh Y2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAgICAgICAgICAgICAgICBoYW5kbGUs CisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKysgICAg Z2xvYnVzX2J5dGVfdCAqICAgICAgICAgICAgICAgICAgICAgYnVmLAorKyAgICBnbG9idXNfc2l6 ZV90ICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpOworIAorIHN0YXRpYworIHZvaWQKKyBn bG9idXNfbF9ncmFtX3Byb3RvY29sX3JlYWRfcmVwbHlfY2FsbGJhY2soCistICAgIHZvaWQgKgkJ CQljYWxsYmFja19hcmcsCistICAgIGdsb2J1c19pb19oYW5kbGVfdCAqCQloYW5kbGUsCistICAg IGdsb2J1c19yZXN1bHRfdAkJCXJlc3VsdCwKKy0gICAgZ2xvYnVzX2J5dGVfdCAqCQkJYnVmLAor LSAgICBnbG9idXNfc2l6ZV90CQkJbmJ5dGVzKTsKKysgICAgdm9pZCAqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAg ICAgICAgICAgICAgICBoYW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAg ICAgICAgIHJlc3VsdCwKKysgICAgZ2xvYnVzX2J5dGVfdCAqICAgICAgICAgICAgICAgICAgICAg YnVmLAorKyAgICBnbG9idXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpOwor IAorIHN0YXRpYworIHZvaWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xv c2VfY2FsbGJhY2soCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAgIGdsb2J1c19p b19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJlc3VsdCk7Cisr ICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysg ICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICBnbG9i dXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQpOworIAorIHN0YXRpYworIGlu dAorIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcGFyc2VfcmVxdWVzdF9oZWFkZXIoCistICAgIGNv bnN0IGdsb2J1c19ieXRlX3QgKgkJYnVmLAorLSAgICBnbG9idXNfc2l6ZV90ICoJCQlwYXlsb2Fk X2xlbmd0aCwKKy0gICAgY2hhciAqKgkJCQl1cmkpOworKyAgICBjb25zdCBnbG9idXNfYnl0ZV90 ICogICAgICAgICAgICAgICBidWYsCisrICAgIGdsb2J1c19zaXplX3QgKiAgICAgICAgICAgICAg ICAgICAgIHBheWxvYWRfbGVuZ3RoLAorKyAgICBjaGFyICoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1cmkpOworIAorIHN0YXRpYworIGludAorIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xf cGFyc2VfcmVwbHlfaGVhZGVyKAorLSAgICBjb25zdCBnbG9idXNfYnl0ZV90ICoJCWJ1ZiwKKy0g ICAgZ2xvYnVzX3NpemVfdCAqCQkJcGF5bG9hZF9sZW5ndGgpOworKyAgICBjb25zdCBnbG9idXNf Ynl0ZV90ICogICAgICAgICAgICAgICBidWYsCisrICAgIGdsb2J1c19zaXplX3QgKiAgICAgICAg ICAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoKTsKKyAKKyBzdGF0aWMKKyBpbnQKKyBnbG9idXNf bF9ncmFtX3Byb3RvY29sX3JlcGx5KAorLSAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9oYW5kbGVf dAloYW5kbGUsCistICAgIGludAkJCQkJY29kZSwKKy0gICAgZ2xvYnVzX2J5dGVfdCAqCQkJbWVz c2FnZSwKKy0gICAgZ2xvYnVzX3NpemVfdAkJCW1lc3NhZ2Vfc2l6ZSwKKy0gICAgZ3NzX09JRF9z ZXQJCQkJcmVzdHJpY3Rpb25fb2lkcywKKy0gICAgZ3NzX2J1ZmZlcl9zZXRfdAkJCXJlc3RyaWN0 aW9uX2J1ZmVycywKKy0gICAgT01fdWludDMyCQkJCXJlcV9mbGFncywKKy0gICAgT01fdWludDMy CQkJCXRpbWVfcmVxLAorKyAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9oYW5kbGVfdCAgICAgICBo YW5kbGUsCisrICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUsCisr ICAgIGdsb2J1c19ieXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisrICAgIGds b2J1c19zaXplX3QgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Vfc2l6ZSwKKysgICAgZ3Nz X09JRF9zZXQgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25fb2lkcywKKysgICAg Z3NzX2J1ZmZlcl9zZXRfdCAgICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25fYnVmZXJzLAor KyAgICBPTV91aW50MzIgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFfZmxhZ3MsCisrICAg IE9NX3VpbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcmVxLAorICAgICBnbG9i dXNfZ3JhbV9wcm90b2NvbF9kZWxlZ2F0aW9uX2NhbGxiYWNrX3QKKy0gICAgCQkJCQljYWxsYmFj aywKKy0gICAgdm9pZCAqCQkJCWFyZyk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNhbGxiYWNrLAorKyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhcmcpOworIAorIHN0YXRpYworIGludAorIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcG9z dCgKKy0gICAgY29uc3QgY2hhciAqCQkJdXJsLAorLSAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9o YW5kbGVfdCAqCWhhbmRsZSwKKy0gICAgZ2xvYnVzX2lvX2F0dHJfdCAqCQkJYXR0ciwKKy0gICAg Z2xvYnVzX2J5dGVfdCAqCQkJbWVzc2FnZSwKKy0gICAgZ2xvYnVzX3NpemVfdAkJCW1lc3NhZ2Vf c2l6ZSwKKy0gICAgZ2xvYnVzX2Jvb2xfdAkJCWtlZXBfb3BlbiwKKy0gICAgZ3NzX2NyZWRfaWRf dAkJCWNyZWRfaGFuZGxlLAorLSAgICBnc3NfT0lEX3NldAkJCQlyZXN0cmljdGlvbl9vaWRzLAor LSAgICBnc3NfYnVmZmVyX3NldF90CQkJcmVzdHJpY3Rpb25fYnVmZmVycywKKy0gICAgT01fdWlu dDMyCQkJCXJlcV9mbGFncywKKy0gICAgT01fdWludDMyCQkJCXRpbWVfcmVxLAorLSAgICBnbG9i dXNfZ3JhbV9wcm90b2NvbF9jYWxsYmFja190CWNhbGxiYWNrLAorLSAgICB2b2lkICoJCQkJY2Fs bGJhY2tfYXJnKTsKKysgICAgY29uc3QgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgdXJs LAorKyAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9oYW5kbGVfdCAqICAgICBoYW5kbGUsCisrICAg IGdsb2J1c19pb19hdHRyX3QgKiAgICAgICAgICAgICAgICAgIGF0dHIsCisrICAgIGdsb2J1c19i eXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisrICAgIGdsb2J1c19zaXplX3Qg ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Vfc2l6ZSwKKysgICAgZ2xvYnVzX2Jvb2xfdCAg ICAgICAgICAgICAgICAgICAgICAga2VlcF9vcGVuLAorKyAgICBnc3NfY3JlZF9pZF90ICAgICAg ICAgICAgICAgICAgICAgICBjcmVkX2hhbmRsZSwKKysgICAgZ3NzX09JRF9zZXQgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25fb2lkcywKKysgICAgZ3NzX2J1ZmZlcl9zZXRfdCAg ICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25fYnVmZmVycywKKysgICAgT01fdWludDMyICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVxX2ZsYWdzLAorKyAgICBPTV91aW50MzIgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aW1lX3JlcSwKKysgICAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xf Y2FsbGJhY2tfdCAgICAgY2FsbGJhY2ssCisrICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNhbGxiYWNrX2FyZyk7CisgCisgc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2dy YW1fcHJvdG9jb2xfZGVsZWdhdGlvbl9yZWFkX2NhbGxiYWNrKAorLSAgICB2b2lkICoJCQkJY2Fs bGJhY2tfYXJnLAorLSAgICBnbG9idXNfaW9faGFuZGxlX3QgKgkJaGFuZGxlLAorLSAgICBnbG9i dXNfcmVzdWx0X3QJCQlyZXN1bHQsCistICAgIGdsb2J1c19ieXRlX3QgKgkJCWJ1ZiwKKy0gICAg Z2xvYnVzX3NpemVfdAkJCW5ieXRlcyk7CisrICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysgICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAg ICAgICAgICAgaGFuZGxlLAorKyAgICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAg ICByZXN1bHQsCisrICAgIGdsb2J1c19ieXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIGJ1ZiwK KysgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAgICAgICAgICAgICAgbmJ5dGVzKTsKKyAKKyBz dGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9kZWxlZ2F0aW9uX3dyaXRlX2Nh bGxiYWNrKAorLSAgICB2b2lkICoJCQkJY2FsbGJhY2tfYXJnLAorLSAgICBnbG9idXNfaW9faGFu ZGxlX3QgKgkJaGFuZGxlLAorLSAgICBnbG9idXNfcmVzdWx0X3QJCQlyZXN1bHQsCistICAgIGds b2J1c19ieXRlX3QgKgkJCWJ1ZiwKKy0gICAgZ2xvYnVzX3NpemVfdAkJCW5ieXRlcyk7CisrICAg IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysgICAg Z2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICBnbG9idXNf cmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisrICAgIGdsb2J1c19ieXRlX3Qg KiAgICAgICAgICAgICAgICAgICAgIGJ1ZiwKKysgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAg ICAgICAgICAgICAgbmJ5dGVzKTsKKyAKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9w cm90b2NvbF9hY2NlcHRfZGVsZWdhdGlvbigKKyAgICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9j b25uZWN0aW9uX3QgKgorLSAgICAJCQkJCWNvbm5lY3Rpb24sCistICAgIGdzc19idWZmZXJfdAkJ CWlucHV0X3Rva2VuKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29ubmVjdGlvbiwKKysgICAgZ3NzX2J1ZmZlcl90ICAgICAgICAgICAgICAgICAgICAgICAgaW5w dXRfdG9rZW4pOworIAorIHN0YXRpYworIHZvaWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2lu aXRfZGVsZWdhdGlvbigKKyAgICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX3Qg KgorLSAgICAJCQkJCWNvbm5lY3Rpb24sCistICAgIGdzc19idWZmZXJfdAkJCWlucHV0X3Rva2Vu KTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbiwK KysgICAgZ3NzX2J1ZmZlcl90ICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRfdG9rZW4pOwor IAorIHN0YXRpYworIHZvaWQKK0BAIC0yMDUsNyArMjA1LDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90 b2NvbF9mcmVlX29sZF9jcmVkZW50aWFscygpOworICAqCisgICogQGRldGFpbHMKKyAgKiBUaGUg ZnVuY3Rpb25zIGluIHRoaXMgc2VjdGlvbiBhcmUgcmVsYXRlZCB0byBzZW5kaW5nIGFuZCByZWNl aXZpbmcKKy0gKiBHUkFNIHByb3RvY29sIG1lc3NhZ2VzLiAKKysgKiBHUkFNIHByb3RvY29sIG1l c3NhZ2VzLgorICAqLworIAorIC8qKgorQEAgLTIxMyw3ICsyMTMsNyBAQCBnbG9idXNfbF9ncmFt X3Byb3RvY29sX2ZyZWVfb2xkX2NyZWRlbnRpYWxzKCk7CisgICogQGluZ3JvdXAgZ2xvYnVzX2dy YW1fcHJvdG9jb2xfaW8KKyAgKgorICAqIEBkZXRhaWxzCistICogVGhlIGdsb2J1c19ncmFtX3By b3RvY29sX2FsbG93X2F0dGFjaCgpIGZ1bmN0aW9uIGNyZWF0ZXMgYSAKKysgKiBUaGUgZ2xvYnVz X2dyYW1fcHJvdG9jb2xfYWxsb3dfYXR0YWNoKCkgZnVuY3Rpb24gY3JlYXRlcyBhCisgICogR1JB TSBwcm90b2NvbCBsaXN0ZW5lciB0byB3aGljaCBvdGhlciBwcm9jZXNzZXMgY2FuIHNlbmQgR1JB TSBwcm90b2NvbAorICAqIG1lc3NhZ2VzLiBUaGUgbGlzdGVuZXIgd2lsbCBhdXRvbWF0aWNhbGx5 IGFjY2VwdCBuZXcgY29ubmVjdGlvbnMgb24gaXQncworICAqIFRDUC9JUCBwb3J0IGFuZCBwYXJz ZSBHUkFNIHJlcXVlc3RzLiAgVGhlIHJlcXVlc3RzIHdpbGwgYmUgcGFzc2VkIHRvIHRoZQorQEAg LTIyNiwxMSArMjI2LDExIEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZnJlZV9vbGRfY3JlZGVu dGlhbHMoKTsKKyAgKiAgICAgdGhhdCB3aWxsIGhvbGQgdGhlIFVSTCBvZiB0aGUgbmV3IGxpc3Rl bmVyLiBUaGlzIFVSTCBtYXkgYmUgcHVibGlzaGVkCisgICogICAgIG9yIG90aGVyd2lzZSBwYXNz ZWQgdG8gYXBwbGljYXRpb25zIHdoaWNoIG5lZWQgdG8gY29udGFjdCB0aGlzCisgICogICAgIEdS QU0gcHJvdG9jb2wgc2VydmVyLiBUaGUgVVJMIHdpbGwgYmUgb2YgdGhlIGZvcm0KKy0gKiAgICAg QGEgaHR0cHM6Ly9ob3N0OnBvcnQvLiAKKysgKiAgICAgQGEgaHR0cHM6Ly9ob3N0OnBvcnQvLgor ICAqIEBwYXJhbSBjYWxsYmFjaworICAqICAgICBBIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB0byBi ZSBjYWxsZWQgd2hlbiBhIG5ldyByZXF1ZXN0IGhhcyBiZWVuCisgICogICAgIHJlY2VpdmVkIGJ5 IHRoaXMgbGlzdGVuZXIuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBwYXNzZWQgdGhlCistICogICAg IHJlcXVlc3QsIHdoaWNoIG1heSBiZSB1bnBhY2tlZCB1c2luZyBvbmUgb2YgdGhlIGZ1bmN0aW9u cyBkZXNjcmliZWQgCisrICogICAgIHJlcXVlc3QsIHdoaWNoIG1heSBiZSB1bnBhY2tlZCB1c2lu ZyBvbmUgb2YgdGhlIGZ1bmN0aW9ucyBkZXNjcmliZWQKKyAgKiAgICAgaW4gdGhlIEBsaW5rIGds b2J1c19ncmFtX3Byb3RvY29sX3BhY2sgbWVzc2FnZSBwYWNraW5nIEBlbmRsaW5rCisgICogICAg IHNlY3Rpb24gb2YgdGhlIGRvY3VtZW50YXRpb24uCisgICogQHBhcmFtIGNhbGxiYWNrX2FyZwor QEAgLTI1NywxNyArMjU3LDE3IEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZnJlZV9vbGRfY3Jl ZGVudGlhbHMoKTsKKyAgKi8KKyBpbnQKKyBnbG9idXNfZ3JhbV9wcm90b2NvbF9hbGxvd19hdHRh Y2goCistICAgIGNoYXIgKioJCQkJdXJsLAorLSAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9jYWxs YmFja190CWNhbGxiYWNrLAorLSAgICB2b2lkICoJCQkJY2FsbGJhY2tfYXJnKQorKyAgICBjaGFy ICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsCisrICAgIGdsb2J1c19ncmFtX3By b3RvY29sX2NhbGxiYWNrX3QgICAgIGNhbGxiYWNrLAorKyAgICB2b2lkICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYWxsYmFja19hcmcpCisgeworLSAgICBpbnQJCQkJCXJjID0gR0xP QlVTX1NVQ0NFU1M7CistICAgIGNoYXIJCQkJaG9zdG5hbWVidWZbMjU2XTsKKy0gICAgdW5zaWdu ZWQgc2hvcnQJCQlwb3J0OworLSAgICBnbG9idXNfcmVzdWx0X3QJCQlyZXM7CistICAgIGdsb2J1 c19pb19oYW5kbGVfdCAqCQloYW5kbGU7CistICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfbGlz dGVuZXJfdCAqCWxpc3RlbmVyOworLSAgICBnbG9idXNfbGlzdF90ICoJCQlub2RlOworKyAgICBp bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYyA9IEdMT0JVU19TVUNDRVNTOwor KyAgICBjaGFyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0bmFtZWJ1ZlsyNTZd OworKyAgICB1bnNpZ25lZCBzaG9ydCAgICAgICAgICAgICAgICAgICAgICBwb3J0OworKyAgICBn bG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXM7CisrICAgIGdsb2J1c19pb19o YW5kbGVfdCAqICAgICAgICAgICAgICAgIGhhbmRsZTsKKysgICAgZ2xvYnVzX2lfZ3JhbV9wcm90 b2NvbF9saXN0ZW5lcl90ICogbGlzdGVuZXI7CisrICAgIGdsb2J1c19saXN0X3QgKiAgICAgICAg ICAgICAgICAgICAgIG5vZGU7CisgCisgICAgICp1cmwgPSBOVUxMOworIAorQEAgLTI3Niw3ICsy NzYsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9hbGxvd19hdHRhY2goCisgICAgIHsKKyAgICAg ICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfSU5WQUxJRF9SRVFVRVNUOworIAor LQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAK KyAgICAgaGFuZGxlID0gZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9idXNfaW9faGFuZGxl X3QpKTsKK0BAIC0yOTEsMTMgKzI5MSwxMyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9hbGxvd19h dHRhY2goCisgCisgICAgIHJlcyA9IGdsb2J1c19pb190Y3BfY3JlYXRlX2xpc3RlbmVyKCZwb3J0 LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtMSwKKy0JCQkJCSZn bG9idXNfaV9ncmFtX3Byb3RvY29sX2RlZmF1bHRfYXR0ciwKKy0JCQkJCWhhbmRsZSk7CisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZnbG9idXNfaV9ncmFtX3Byb3Rv Y29sX2RlZmF1bHRfYXR0ciwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaGFuZGxlKTsKKyAgICAgaWYocmVzICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICAg ICAgICByYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX05PX1JFU09VUkNFUzsKKyAKKy0J Z290byBmcmVlX2hhbmRsZV9leGl0OworKyAgICAgICAgZ290byBmcmVlX2hhbmRsZV9leGl0Owor ICAgICB9CisgCisgICAgIGxpc3RlbmVyID0gZ2xvYnVzX2xpYmNfbWFsbG9jKHNpemVvZihnbG9i dXNfaV9ncmFtX3Byb3RvY29sX2xpc3RlbmVyX3QpKTsKK0BAIC0zMTgsMTIgKzMxOCwxMiBAQCBn bG9idXNfZ3JhbV9wcm90b2NvbF9hbGxvd19hdHRhY2goCisgCisgICAgIHJlcyA9IGdsb2J1c19p b190Y3BfcmVnaXN0ZXJfbGlzdGVuKGhhbmRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9saXN0ZW5fY2FsbGJhY2ssCist CQkJCQlsaXN0ZW5lcik7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpc3RlbmVyKTsKKyAgICAgaWYocmVzICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CistCXJj ID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfTk9fUkVTT1VSQ0VTOworKyAgICAgICAgcmMg PSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9OT19SRVNPVVJDRVM7CisgCistCWdvdG8gcmVt b3ZlX2xpc3RlbmVyX2V4aXQ7CisrICAgICAgICBnb3RvIHJlbW92ZV9saXN0ZW5lcl9leGl0Owor ICAgICB9CisgICAgIGxpc3RlbmVyLT5saXN0ZW5fcmVnaXN0ZXJlZCA9IEdMT0JVU19UUlVFOwor ICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCZnbG9idXNfaV9ncmFtX3Byb3RvY29sX211dGV4KTsK K0BAIC0zNDMsNyArMzQzLDcgQEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfYWxsb3dfYXR0YWNoKAor ICAgICBpZihub2RlKQorICAgICB7CisgICAgICAgICBnbG9idXNfbGlzdF9yZW1vdmUoJmdsb2J1 c19pX2dyYW1fcHJvdG9jb2xfbGlzdGVuZXJzLAorLQkgICAgICAgICAgICAgICAgICAgbm9kZSk7 CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSk7CisgICAgIH0KKyAKKyAgICAgZ2xv YnVzX2xpYmNfZnJlZShsaXN0ZW5lcik7CitAQCAtMzUxLDcgKzM1MSw3IEBAIGdsb2J1c19ncmFt X3Byb3RvY29sX2FsbG93X2F0dGFjaCgKKyAgIGNsb3NlX2hhbmRsZV9leGl0OgorICAgICByZXMg PSBnbG9idXNfaW9fcmVnaXN0ZXJfY2xvc2UoaGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9jbG9zZV9saXN0ZW5lciwKKy0J CQkJICAgTlVMTCk7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsK KyAgICAgaWYocmVzICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICBmcmVlX2hhbmRsZV9l eGl0OgorQEAgLTM4Nyw3ICszODcsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9hbGxvd19hdHRh Y2goCisgICogICAgIHJldHVybnMgQGEgR0xPQlVTX1NVQ0NFU1MgYW5kIGZyZWVzIGludGVybmFs IHN0YXRlIGFzc29jaWF0ZWQgd2l0aCB0aGUKKyAgKiAgICAgbGlzdGVuZXIgbmFtZWQgYnkgdGhl IEBhIHVybCBwYXJhbWV0ZXIuIElmIGFuIGVycm9yIG9jY3VycywgaXRzIGludGVnZXIKKyAgKiAg ICAgZXJyb3IgY29kZSB2YWx1ZSB3aWxsIGJlIHJldHVybmVkIGFuZCBubyBsaXN0ZW5lciB3aWxs IGJlIGFmZmVjdGVkLgorLSAqICAgICAKKysgKgorICAqIEByZXR2YWwgR0xPQlVTX1NVQ0NFU1MK KyAgKiAgICAgU3VjY2VzcworICAqIEByZXR2YWwgR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1Jf SU5WQUxJRF9KT0JfQ09OVEFDVAorQEAgLTM5OSwxNCArMzk5LDE0IEBAIGdsb2J1c19ncmFtX3By b3RvY29sX2FsbG93X2F0dGFjaCgKKyAgKi8KKyBpbnQKKyBnbG9idXNfZ3JhbV9wcm90b2NvbF9j YWxsYmFja19kaXNhbGxvdygKKy0gICAgY2hhciAqCQkJCXVybCkKKysgICAgY2hhciAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXJsKQorIHsKKy0gICAgaW50CQkJCQlyYzsKKy0gICAg Z2xvYnVzX2xpc3RfdCAqCQkJbGlzdDsKKy0gICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9saXN0 ZW5lcl90ICoJbGlzdGVuZXI7CistICAgIGdsb2J1c19pb19oYW5kbGVfdCAqCQloYW5kbGU7Cist ICAgIGdsb2J1c191cmxfdAkJCXBhcnNlZF91cmw7CistICAgIHVuc2lnbmVkIHNob3J0CQkJcG9y dDsKKysgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmM7CisrICAgIGds b2J1c19saXN0X3QgKiAgICAgICAgICAgICAgICAgICAgIGxpc3Q7CisrICAgIGdsb2J1c19pX2dy YW1fcHJvdG9jb2xfbGlzdGVuZXJfdCAqIGxpc3RlbmVyOworKyAgICBnbG9idXNfaW9faGFuZGxl X3QgKiAgICAgICAgICAgICAgICBoYW5kbGU7CisrICAgIGdsb2J1c191cmxfdCAgICAgICAgICAg ICAgICAgICAgICAgIHBhcnNlZF91cmw7CisrICAgIHVuc2lnbmVkIHNob3J0ICAgICAgICAgICAg ICAgICAgICAgIHBvcnQ7CisgCisgICAgIC8qIGdldCBwb3J0IG51bWJlciBmcm9tIHVybC0tLXdl J2xsIHVzZSB0aGF0IGFzIGEga2V5CisgICAgICAqIHRvIGxvY2F0ZSB0aGUgbGlzdGVuZXIKK0BA IC00MTUsNyArNDE1LDcgQEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfY2FsbGJhY2tfZGlzYWxsb3co CisgICAgIGlmKHJjID09IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICAgICAgICBwb3J0ID0g cGFyc2VkX3VybC5wb3J0OworLQlnbG9idXNfdXJsX2Rlc3Ryb3koJnBhcnNlZF91cmwpOworKyAg ICAgICAgZ2xvYnVzX3VybF9kZXN0cm95KCZwYXJzZWRfdXJsKTsKKyAgICAgfQorICAgICBlbHNl CisgICAgIHsKK0BAIC00MzEsMTQgKzQzMSwxNCBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9jYWxs YmFja19kaXNhbGxvdygKKyAgICAgeworICAgICAgICAgbGlzdGVuZXIgPSBnbG9idXNfbGlzdF9m aXJzdChsaXN0KTsKKyAKKy0JaWYobGlzdGVuZXItPnBvcnQgPT0gcG9ydCkKKy0JeworLQkgICAg aGFuZGxlID0gbGlzdGVuZXItPmhhbmRsZTsKKy0JfQorLQllbHNlCistCXsKKy0JICAgIGxpc3Qg PSBnbG9idXNfbGlzdF9yZXN0KGxpc3QpOworLQl9CisrICAgICAgICBpZihsaXN0ZW5lci0+cG9y dCA9PSBwb3J0KQorKyAgICAgICAgeworKyAgICAgICAgICAgIGhhbmRsZSA9IGxpc3RlbmVyLT5o YW5kbGU7CisrICAgICAgICB9CisrICAgICAgICBlbHNlCisrICAgICAgICB7CisrICAgICAgICAg ICAgbGlzdCA9IGdsb2J1c19saXN0X3Jlc3QobGlzdCk7CisrICAgICAgICB9CisgICAgIH0KKyAg ICAgaWYoaGFuZGxlKQorICAgICB7CitAQCAtNDY1LDcgKzQ2NSw3IEBAIGdsb2J1c19ncmFtX3By b3RvY29sX2NhbGxiYWNrX2Rpc2FsbG93KAorICAqIG1lc3NhZ2UgZXhjaGFuZ2Ugd2l0aCBhIEdS QU0gcHJvdG9jb2wgbGlzdGVuZXIuIEl0IHJldHVybnMgYWZ0ZXIgZnJhbWluZworICAqIHRoZSBt ZXNzYWdlIGFuZCBpbml0aWF0aW5nIHRoZSBjb25uZWN0aW9uLiBXaGVuIHRoZSBtZXNzYWdlIGV4 Y2hhbmdlIGlzCisgICogY29tcGxldGUsIHRoZSBmdW5jdGlvbiBwb2ludGVkIHRvIGJ5IEBhIGNh bGxiYWNrIGlzIGludm9rZWQgZWl0aGVyIGluCistICogYW5vdGhlciB0aHJlYWQgb3Igd2hlbiBh IG5vbi10aHJlYWRlZCBhcHBsaWNhdGlvbiBjYWxscyB0aGUgCisrICogYW5vdGhlciB0aHJlYWQg b3Igd2hlbiBhIG5vbi10aHJlYWRlZCBhcHBsaWNhdGlvbiBjYWxscyB0aGUKKyAgKiBnbG9idXNf cG9sbCgpIG9yIGdsb2J1c19jb25kX3dhaXQoKSBmdW5jdGlvbnMuCisgICoKKyAgKiBAcGFyYW0g dXJsCitAQCAtNDc1LDcgKzQ3NSw3IEBAIGdsb2J1c19ncmFtX3Byb3RvY29sX2NhbGxiYWNrX2Rp c2FsbG93KAorICAqIEBwYXJhbSBoYW5kbGUKKyAgKiAgICAgQSBwb2ludGVyIHRvIGEgQGEgZ2xv YnVzX2dyYW1fcHJvdG9jb2xfaGFuZGxlX3Qgd2hpY2gKKyAgKiAgICAgd2lsbCBiZSBpbml0aWFs aXplZCB3aXRoIGEgdW5pcXVlIGhhbmRsZSBpZGVudGlmaWVyLiBUaGlzCistICogICAgIGlkZW50 aWZpZXIgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIEBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIAorKyAq ICAgICBpZGVudGlmaWVyIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBAYSBjYWxsYmFjayBmdW5jdGlv biB0bworICAqICAgICBhbGxvdyB0aGUgY2FsbGVyIHRvIGRpZmZlcmVudGlhdGUgcmVwbGllcyB0 byBtdWx0aXBsZSBHUkFNIFByb3RvY29sCisgICogICAgIHJlcXVlc3RzLiBUaGlzIHBvaW50ZXIg bWF5IGJlIE5VTEwgaWYgdGhlIGNhbGxlciB3aWxsIG5vdCBoYXZlCisgICogICAgIG11bHRpcGxl IHNpbXVsdGFuZW91cyByZXF1ZXN0cy4KK0BAIC00ODcsMTMgKzQ4NywxMyBAQCBnbG9idXNfZ3Jh bV9wcm90b2NvbF9jYWxsYmFja19kaXNhbGxvdygKKyAgKiAgICAgdHJhbnNwb3J0LCB3aXRoIG1l c3NhZ2UgaW50ZWdyaXR5KS4KKyAgKiBAcGFyYW0gbWVzc2FnZQorICAqICAgICBBIHBvaW50ZXIg dG8gYSBtZXNzYWdlIHN0cmluZyB0byBiZSBzZW50IHRvIHRoZSBHUkFNIHNlcnZlci4gVGhpcyBp cworLSAqICAgICBub3JtYWxseSBjcmVhdGVkIGJ5IGNhbGxpbmcgb25lIG9mIHRoZSBHUkFNIFBy b3RvY29sIAorKyAqICAgICBub3JtYWxseSBjcmVhdGVkIGJ5IGNhbGxpbmcgb25lIG9mIHRoZSBH UkFNIFByb3RvY29sCisgICogICAgIEBsaW5rIGdsb2J1c19ncmFtX3Byb3RvY29sX3BhY2sgcGFj ayBAZW5kbGluayBmdW5jdGlvbnMuIFRoaXMKKyAgKiAgICAgbWVzc2FnZSBuZWVkIG5vdCBiZSBO VUxMIHRlcm1pbmF0ZWQgYXMgdGhlIGxlbmd0aCBpcyBwYXNzZWQgaW4KKy0gKiAgICAgdGhlIEBh IG1lc3NhZ2Vfc2l6ZSBwYXJhbWV0ZXIuIAorKyAqICAgICB0aGUgQGEgbWVzc2FnZV9zaXplIHBh cmFtZXRlci4KKyAgKiBAcGFyYW0gbWVzc2FnZV9zaXplCisgICogICAgIFRoZSBsZW5ndGggb2Yg dGhlIEBhIG1lc3NhZ2Ugc3RyaW5nLiBUeXBpY2FsbHkgZ2VuZXJhdGVkIGFzIG9uZSBvZgorLSAq ICAgICB0aGUgb3V0cHV0IHBhcmFtZXRlcnMgdG8gb25lIG9mIHRoZSBHUkFNIFByb3RvY29sIAor KyAqICAgICB0aGUgb3V0cHV0IHBhcmFtZXRlcnMgdG8gb25lIG9mIHRoZSBHUkFNIFByb3RvY29s CisgICogICAgIEBsaW5rIGdsb2J1c19ncmFtX3Byb3RvY29sX3BhY2sgcGFjayBAZW5kbGluayBm dW5jdGlvbnMuCisgICogQHBhcmFtIGNhbGxiYWNrCisgICogICAgIEEgcG9pbnRlciB0byBhIGZ1 bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgcmVzcG9uc2UgdG8gdGhpcworQEAgLTU0MywxOSArNTQz LDE5IEBAIGdsb2J1c19ncmFtX3Byb3RvY29sX3Bvc3QoCisgICAgIHZvaWQgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZykKKyB7CisgICAgIHJldHVybiBnbG9idXNf bF9ncmFtX3Byb3RvY29sX3Bvc3QoCistCXVybCwKKy0JaGFuZGxlLAorLQlhdHRyLAorLQltZXNz YWdlLAorLQltZXNzYWdlX3NpemUsCistCUdMT0JVU19GQUxTRSwKKy0JR1NTX0NfTk9fQ1JFREVO VElBTCwKKy0JR1NTX0NfTk9fT0lEX1NFVCwKKy0JR1NTX0NfTk9fQlVGRkVSX1NFVCwKKy0JMCwK Ky0JMCwKKy0JY2FsbGJhY2ssCistCWNhbGxiYWNrX2FyZyk7CisrICAgICAgICB1cmwsCisrICAg ICAgICBoYW5kbGUsCisrICAgICAgICBhdHRyLAorKyAgICAgICAgbWVzc2FnZSwKKysgICAgICAg IG1lc3NhZ2Vfc2l6ZSwKKysgICAgICAgIEdMT0JVU19GQUxTRSwKKysgICAgICAgIEdTU19DX05P X0NSRURFTlRJQUwsCisrICAgICAgICBHU1NfQ19OT19PSURfU0VULAorKyAgICAgICAgR1NTX0Nf Tk9fQlVGRkVSX1NFVCwKKysgICAgICAgIDAsCisrICAgICAgICAwLAorKyAgICAgICAgY2FsbGJh Y2ssCisrICAgICAgICBjYWxsYmFja19hcmcpOworIH0KKyAvKiBnbG9idXNfZ3JhbV9wcm90b2Nv bF9wb3N0KCkgKi8KKyAKK0BAIC01ODIsNyArNTgyLDcgQEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xf cG9zdCgKKyAgKiBAcGFyYW0gaGFuZGxlCisgICogICAgIEEgcG9pbnRlciB0byBhIEBhIGdsb2J1 c19ncmFtX3Byb3RvY29sX2hhbmRsZV90IHdoaWNoCisgICogICAgIHdpbGwgYmUgaW5pdGlhbGl6 ZWQgd2l0aCBhIHVuaXF1ZSBoYW5kbGUgaWRlbnRpZmllci4gVGhpcworLSAqICAgICBpZGVudGlm aWVyIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBAYSBjYWxsYmFjayBmdW5jdGlvbiB0byAKKysgKiAg ICAgaWRlbnRpZmllciB3aWxsIGJlIHBhc3NlZCB0byB0aGUgQGEgY2FsbGJhY2sgZnVuY3Rpb24g dG8KKyAgKiAgICAgYWxsb3cgdGhlIGNhbGxlciB0byBkaWZmZXJlbnRpYXRlIHJlcGxpZXMgdG8g bXVsdGlwbGUgR1JBTSBQcm90b2NvbAorICAqICAgICByZXF1ZXN0cy4gVGhpcyBwb2ludGVyIG1h eSBiZSBOVUxMIGlmIHRoZSBjYWxsZXIgd2lsbCBub3QgaGF2ZQorICAqICAgICBtdWx0aXBsZSBz aW11bHRhbmVvdXMgcmVxdWVzdHMuCitAQCAtNTk0LDEzICs1OTQsMTMgQEAgZ2xvYnVzX2dyYW1f cHJvdG9jb2xfcG9zdCgKKyAgKiAgICAgdHJhbnNwb3J0LCB3aXRoIG1lc3NhZ2UgaW50ZWdyaXR5 KS4KKyAgKiBAcGFyYW0gbWVzc2FnZQorICAqICAgICBBIHBvaW50ZXIgdG8gYSBtZXNzYWdlIHN0 cmluZyB0byBiZSBzZW50IHRvIHRoZSBHUkFNIHNlcnZlci4gVGhpcyBpcworLSAqICAgICBub3Jt YWxseSBjcmVhdGVkIGJ5IGNhbGxpbmcgb25lIG9mIHRoZSBHUkFNIFByb3RvY29sIAorKyAqICAg ICBub3JtYWxseSBjcmVhdGVkIGJ5IGNhbGxpbmcgb25lIG9mIHRoZSBHUkFNIFByb3RvY29sCisg ICogICAgIEBsaW5rIGdsb2J1c19ncmFtX3Byb3RvY29sX3BhY2sgcGFjayBAZW5kbGluayBmdW5j dGlvbnMuIFRoaXMKKyAgKiAgICAgbWVzc2FnZSBuZWVkIG5vdCBiZSBOVUxMIHRlcm1pbmF0ZWQg YXMgdGhlIGxlbmd0aCBpcyBwYXNzZWQgaW4KKy0gKiAgICAgdGhlIEBhIG1lc3NhZ2Vfc2l6ZSBw YXJhbWV0ZXIuIAorKyAqICAgICB0aGUgQGEgbWVzc2FnZV9zaXplIHBhcmFtZXRlci4KKyAgKiBA cGFyYW0gbWVzc2FnZV9zaXplCisgICogICAgIFRoZSBsZW5ndGggb2YgdGhlIEBhIG1lc3NhZ2Ug c3RyaW5nLiBUeXBpY2FsbHkgZ2VuZXJhdGVkIGFzIG9uZSBvZgorLSAqICAgICB0aGUgb3V0cHV0 IHBhcmFtZXRlcnMgdG8gb25lIG9mIHRoZSBHUkFNIFByb3RvY29sIAorKyAqICAgICB0aGUgb3V0 cHV0IHBhcmFtZXRlcnMgdG8gb25lIG9mIHRoZSBHUkFNIFByb3RvY29sCisgICogICAgIEBsaW5r IGdsb2J1c19ncmFtX3Byb3RvY29sX3BhY2sgcGFjayBAZW5kbGluayBmdW5jdGlvbnMuCisgICog QHBhcmFtIGNyZWRfaGFuZGxlCisgICogICAgIEhhbmRsZSB0byBhbiBleGlzdGluZyBHU1NBUEkg c2VjdXJpdHkgY3JlZGVudGlhbC4gSWYgdGhpcyBwYXJhbWV0ZXIKK0BAIC02MTUsNyArNjE1LDcg QEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcG9zdCgKKyAgKiAgICAgQSBzZXQgb2YgYmluYXJ5IGRh dGEgYnVmZmVycyB3aGljaCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBkZWxlZ2F0ZWQKKyAgKiAg ICAgY3JlZGVudGlhbC4gVGhlIHR5cGUgb2YgZGF0YSBpbiB0aGVzZSBidWZmZXJzIGlzIGRldGVy bWluZWQgYnkgdGhlCisgICogICAgIE9JRCB2YWx1ZXMgaW4gQGEgcmVzdHJpY3Rpb25fb2lkcy4g VGhpcyBwYXJhbWV0ZXIgbWF5IGhhdmUgdGhlIHZhbHVlCistICogICAgIEdTU19DX0VNUFRZX0JV RkZFUl9TRVQgaWYgdGhlcmUgYXJlIG5vIGV4dHJhIHJlc3RyaWN0aW9ucyB0byBiZSAKKysgKiAg ICAgR1NTX0NfRU1QVFlfQlVGRkVSX1NFVCBpZiB0aGVyZSBhcmUgbm8gZXh0cmEgcmVzdHJpY3Rp b25zIHRvIGJlCisgICogICAgIGFkZGVkIHRvIHRoZSBjcmVkZW50aWFsLgorICAqIEBwYXJhbSBy ZXFfZmxhZ3MKKyAgKiAgICAgQSBiaXR3aXNlLW9yIG9mIEdTU0FQSSBmbGFnIHZhbHVlcyB0byB1 c2Ugd2hlbiBkZWxlZ2F0aW5nIHRoZQorQEAgLTY2NiwzMyArNjY2LDMzIEBAIGdsb2J1c19ncmFt X3Byb3RvY29sX3Bvc3QoCisgICovCisgaW50CisgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcG9zdF9k ZWxlZ2F0aW9uKAorLSAgICBjb25zdCBjaGFyICoJCQl1cmwsCistICAgIGdsb2J1c19ncmFtX3By b3RvY29sX2hhbmRsZV90ICoJaGFuZGxlLAorLSAgICBnbG9idXNfaW9fYXR0cl90ICoJCQlhdHRy LAorLSAgICBnbG9idXNfYnl0ZV90ICoJCQltZXNzYWdlLAorLSAgICBnbG9idXNfc2l6ZV90CQkJ bWVzc2FnZV9zaXplLAorLSAgICBnc3NfY3JlZF9pZF90CQkJY3JlZF9oYW5kbGUsCistICAgIGdz c19PSURfc2V0CQkJCXJlc3RyaWN0aW9uX29pZHMsCistICAgIGdzc19idWZmZXJfc2V0X3QJCQly ZXN0cmljdGlvbl9idWZmZXJzLAorLSAgICBPTV91aW50MzIJCQkJcmVxX2ZsYWdzLAorLSAgICBP TV91aW50MzIJCQkJdGltZV9yZXEsCistICAgIGdsb2J1c19ncmFtX3Byb3RvY29sX2NhbGxiYWNr X3QJY2FsbGJhY2ssCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcpCisrICAgIGNvbnN0IGNo YXIgKiAgICAgICAgICAgICAgICAgICAgICAgIHVybCwKKysgICAgZ2xvYnVzX2dyYW1fcHJvdG9j b2xfaGFuZGxlX3QgKiAgICAgaGFuZGxlLAorKyAgICBnbG9idXNfaW9fYXR0cl90ICogICAgICAg ICAgICAgICAgICBhdHRyLAorKyAgICBnbG9idXNfYnl0ZV90ICogICAgICAgICAgICAgICAgICAg ICBtZXNzYWdlLAorKyAgICBnbG9idXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICBtZXNz YWdlX3NpemUsCisrICAgIGdzc19jcmVkX2lkX3QgICAgICAgICAgICAgICAgICAgICAgIGNyZWRf aGFuZGxlLAorKyAgICBnc3NfT0lEX3NldCAgICAgICAgICAgICAgICAgICAgICAgICByZXN0cmlj dGlvbl9vaWRzLAorKyAgICBnc3NfYnVmZmVyX3NldF90ICAgICAgICAgICAgICAgICAgICByZXN0 cmljdGlvbl9idWZmZXJzLAorKyAgICBPTV91aW50MzIgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXFfZmxhZ3MsCisrICAgIE9NX3VpbnQzMiAgICAgICAgICAgICAgICAgICAgICAgICAgIHRp bWVfcmVxLAorKyAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9jYWxsYmFja190ICAgICBjYWxsYmFj aywKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tfYXJn KQorIHsKKyAgICAgcmV0dXJuIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcG9zdCgKKy0JdXJsLAor LQloYW5kbGUsCistCWF0dHIsCistCW1lc3NhZ2UsCistCW1lc3NhZ2Vfc2l6ZSwKKy0JR0xPQlVT X1RSVUUsCistCWNyZWRfaGFuZGxlLAorLQlyZXN0cmljdGlvbl9vaWRzLAorLQlyZXN0cmljdGlv bl9idWZmZXJzLAorLQlyZXFfZmxhZ3MsCistCXRpbWVfcmVxLAorLQljYWxsYmFjaywKKy0JY2Fs bGJhY2tfYXJnKTsKKysgICAgICAgIHVybCwKKysgICAgICAgIGhhbmRsZSwKKysgICAgICAgIGF0 dHIsCisrICAgICAgICBtZXNzYWdlLAorKyAgICAgICAgbWVzc2FnZV9zaXplLAorKyAgICAgICAg R0xPQlVTX1RSVUUsCisrICAgICAgICBjcmVkX2hhbmRsZSwKKysgICAgICAgIHJlc3RyaWN0aW9u X29pZHMsCisrICAgICAgICByZXN0cmljdGlvbl9idWZmZXJzLAorKyAgICAgICAgcmVxX2ZsYWdz LAorKyAgICAgICAgdGltZV9yZXEsCisrICAgICAgICBjYWxsYmFjaywKKysgICAgICAgIGNhbGxi YWNrX2FyZyk7CisgfQorIC8qIGdsb2J1c19ncmFtX3Byb3RvY29sX3Bvc3RfZGVsZWdhdGlvbigp ICovCisgCitAQCAtNzAzLDEwICs3MDMsMTAgQEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcG9zdF9k ZWxlZ2F0aW9uKAorICAqIEBkZXRhaWxzCisgICogVGhlIEBhICNnbG9idXNfZ3JhbV9wcm90b2Nv bF9yZXBseSgpIGZ1bmN0aW9uIHNlbmRzIGEgcmVzcG9uc2UgbWVzc2FnZQorICAqIHRvIGEgY2xp ZW50IHdoaWNoIGluaXRpYXRlZCBhIEdSQU0gbWVzc2FnZSBleGNoYW5nZS4gVGhlCistICogQGEg I2dsb2J1c19ncmFtX3Byb3RvY29sX3JlcGx5KCkgZnVuY3Rpb24gY29tcG9zZXMgdGhlIG1lc3Nh Z2Ugd2l0aCBhbiAKKysgKiBAYSAjZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcmVwbHkoKSBmdW5jdGlv biBjb21wb3NlcyB0aGUgbWVzc2FnZSB3aXRoIGFuCisgICogSFRUUCBtZXNzYWdlIGZyYW1lIGFu ZCB0aGVuIHNlbmRzIGl0IHRvIHRoZSBjbGllbnQgd2hpY2ggaW5pdGlhdGVkIHRoZQorICAqIGV4 Y2hhbmdlLgorLSAqIAorKyAqCisgICogQHBhcmFtIGhhbmRsZQorICAqICAgIEEgR1JBTSBwcm90 b2NvbCBoYW5kbGUgd2hpY2ggaXMgdXNlZCBieSB0aGlzIGZ1bmN0aW9uIHRvIGRldGVybWluZQor ICAqICAgIHRoZSBuZXR3b3JrIGNvbm5lY3Rpb24gdG8gdXNlIGZvciB0aGlzIHJlcGx5LiBUaGlz IG11c3QgYmUgdGhlIHNhbWUKK0BAIC03MTcsMTMgKzcxNywxMyBAQCBnbG9idXNfZ3JhbV9wcm90 b2NvbF9wb3N0X2RlbGVnYXRpb24oCisgICogICAgaW4gUkZDIDI2MTYuCisgICogQHBhcmFtIG1l c3NhZ2UKKyAgKiAgICAgQSBwb2ludGVyIHRvIGEgbWVzc2FnZSBzdHJpbmcgdG8gYmUgc2VudCB0 byB0aGUgR1JBTSBjbGllbnQuIFRoaXMgaXMKKy0gKiAgICAgbm9ybWFsbHkgY3JlYXRlZCBieSBj YWxsaW5nIG9uZSBvZiB0aGUgR1JBTSBQcm90b2NvbCAKKysgKiAgICAgbm9ybWFsbHkgY3JlYXRl ZCBieSBjYWxsaW5nIG9uZSBvZiB0aGUgR1JBTSBQcm90b2NvbAorICAqICAgICBAbGluayBnbG9i dXNfZ3JhbV9wcm90b2NvbF9wYWNrIHBhY2sgQGVuZGxpbmsgZnVuY3Rpb25zLiBUaGlzCisgICog ICAgIG1lc3NhZ2UgbmVlZCBub3QgYmUgTlVMTCB0ZXJtaW5hdGVkIGFzIHRoZSBsZW5ndGggaXMg cGFzc2VkIGluCistICogICAgIHRoZSBAYSBtZXNzYWdlX3NpemUgcGFyYW1ldGVyLiAKKysgKiAg ICAgdGhlIEBhIG1lc3NhZ2Vfc2l6ZSBwYXJhbWV0ZXIuCisgICogQHBhcmFtIG1lc3NhZ2Vfc2l6 ZQorICAqICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBAYSBtZXNzYWdlIHN0cmluZy4gVHlwaWNhbGx5 IGdlbmVyYXRlZCBhcyBvbmUgb2YKKy0gKiAgICAgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIHRvIG9u ZSBvZiB0aGUgR1JBTSBQcm90b2NvbCAKKysgKiAgICAgdGhlIG91dHB1dCBwYXJhbWV0ZXJzIHRv IG9uZSBvZiB0aGUgR1JBTSBQcm90b2NvbAorICAqICAgICBAbGluayBnbG9idXNfZ3JhbV9wcm90 b2NvbF9wYWNrIHBhY2sgQGVuZGxpbmsgZnVuY3Rpb25zLgorICAqCisgICogQHJldHVybgorQEAg LTczMiw3ICs3MzIsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9wb3N0X2RlbGVnYXRpb24oCisg ICogICAgIG1lc3NhZ2UgdG8gdGhlIGNsaWVudC4gVGhlIGNhbGxlciBtdXN0IG5vdCB0cnkgdG8g dXNlIHRoZSB2YWx1ZSBvZiB0aGUKKyAgKiAgICAgQGEgaGFuZGxlIHBhcmFtZXRlciBhZnRlciB0 aGlzIGZ1bmN0aW9uIHJldHVybnMuIElmIGFuIGVycm9yIG9jY3VycywKKyAgKiAgICAgaXRzIGlu dGVnZXIgZXJyb3IgY29kZSB3aWxsIGJlIHJldHVybmVkLgorLSAqICAgIAorKyAqCisgICogQHJl dHZhbCBHTE9CVVNfU1VDQ0VTUworICAqICAgICBTdWNjZXNzCisgICogQHJldHZhbCBHTE9CVVNf R1JBTV9QUk9UT0NPTF9FUlJPUl9JTlZBTElEX1JFUVVFU1QKK0BAIC03NDUsMjAgKzc0NSwyMCBA QCBnbG9idXNfZ3JhbV9wcm90b2NvbF9wb3N0X2RlbGVnYXRpb24oCisgaW50CisgZ2xvYnVzX2dy YW1fcHJvdG9jb2xfcmVwbHkoCisgICAgIGdsb2J1c19ncmFtX3Byb3RvY29sX2hhbmRsZV90ICAg ICAgIGhhbmRsZSwKKy0gICAgaW50CQkJCQljb2RlLAorLSAgICBnbG9idXNfYnl0ZV90ICoJCQlt ZXNzYWdlLAorLSAgICBnbG9idXNfc2l6ZV90CQkJbWVzc2FnZV9zaXplKQorKyAgICBpbnQgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlLAorKyAgICBnbG9idXNfYnl0ZV90ICog ICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLAorKyAgICBnbG9idXNfc2l6ZV90ICAgICAgICAg ICAgICAgICAgICAgICBtZXNzYWdlX3NpemUpCisgeworICAgICByZXR1cm4gZ2xvYnVzX2xfZ3Jh bV9wcm90b2NvbF9yZXBseShoYW5kbGUsCistCSAgCQkJCWNvZGUsCistCQkJCQltZXNzYWdlLAor LQkJCQkJbWVzc2FnZV9zaXplLAorLQkJCQkJR1NTX0NfTk9fT0lEX1NFVCwKKy0JCQkJCUdTU19D X05PX0JVRkZFUl9TRVQsCistCQkJCQkwLAorLQkJCQkJMCwKKy0JCQkJCU5VTEwsCistCQkJCQlO VUxMKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSwKKysg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZV9zaXplLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1NfQ19OT19PSURfU0VULAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHU1NfQ19OT19CVUZGRVJfU0VULAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBOVUxMKTsKKyB9CisgLyogZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcmVwbHkoKSAqLwor IAorQEAgLTc3MCw3ICs3NzAsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9yZXBseSgKKyAgKiBU aGUgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfYWNjZXB0X2RlbGVnYXRpb24oKSBmdW5jdGlvbiBwZXJm b3JtcyB0aGUKKyAgKiBzZXJ2aWNlIHNpZGUgYWNjZXB0aW5nIG9mIGEgR1JBTSBwcm90b2NvbCBk ZWxlZ2F0aW9uIGV4Y2hhbmdlIHdpdGggYSBHUkFNCisgICogcHJvdG9jb2wgY2xpZW50LiBUaGlz IGlzIHBlcmZvcm1lZCBhZnRlciB0aGUgZGVsZWdhdGlvbiBIVFRQIG1lc3NhZ2UgaGFzCistICog YmVlbiB1bnBhY2tlZCBieSB0aGUgYXBwbGljYXRpb24uIAorKyAqIGJlZW4gdW5wYWNrZWQgYnkg dGhlIGFwcGxpY2F0aW9uLgorICAqCisgICogVGhlIGdsb2J1c19ncmFtX3Byb3RvY29sX2FjY2Vw dF9kZWxlZ2F0aW9uKCkgZnVuY3Rpb24gcmV0dXJucyBhZnRlcgorICAqIHByb2Nlc3NpbmcgdGhl IEdTU0FQSSBoYW5kc2hha2UsIHBhc3NpbmcgdGhlIGRlbGVnYXRlZCBjcmVkZW50aWFsIG9yCitA QCAtNzg3LDcgKzc4Nyw3IEBAIGdsb2J1c19ncmFtX3Byb3RvY29sX3JlcGx5KAorICAqICAgICBB IHNldCBvZiBiaW5hcnkgZGF0YSBidWZmZXJzIHdoaWNoIHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhl IGRlbGVnYXRlZAorICAqICAgICBjcmVkZW50aWFsLiBUaGUgdHlwZSBvZiBkYXRhIGluIHRoZXNl IGJ1ZmZlcnMgaXMgZGV0ZXJtaW5lZCBieSB0aGUKKyAgKiAgICAgT0lEIHZhbHVlcyBpbiBAYSBy ZXN0cmljdGlvbl9vaWRzLiBUaGlzIHBhcmFtZXRlciBtYXkgaGF2ZSB0aGUgdmFsdWUKKy0gKiAg ICAgR1NTX0NfRU1QVFlfQlVGRkVSX1NFVCBpZiB0aGVyZSBhcmUgbm8gZXh0cmEgcmVzdHJpY3Rp b25zIHRvIGJlIAorKyAqICAgICBHU1NfQ19FTVBUWV9CVUZGRVJfU0VUIGlmIHRoZXJlIGFyZSBu byBleHRyYSByZXN0cmljdGlvbnMgdG8gYmUKKyAgKiAgICAgYWRkZWQgdG8gdGhlIGNyZWRlbnRp YWwuCisgICogQHBhcmFtIHJlcV9mbGFncworICAqICAgICBBIGJpdHdpc2Utb3Igb2YgR1NTQVBJ IGZsYWcgdmFsdWVzIHRvIHVzZSB3aGVuIGRlbGVnYXRpbmcgdGhlCitAQCAtODA5LDggKzgwOSw4 IEBAIGdsb2J1c19ncmFtX3Byb3RvY29sX3JlcGx5KAorICAqICAgICB0aGUgcG9pbnRlciB0byBl c3RhYmxpc2ggaXRzIGNvbnRleHQgaW4gdGhlIGNhbGxiYWNrLgorICAqCisgICogQHJldHVybgor LSAqICAgICBVcG9uIHN1Y2Nlc3MsIGdsb2J1c19ncmFtX3Byb3RvY29sX2FjY2VwdF9kZWxlZ2F0 aW9uKCkgcmV0dXJucyAKKy0gKiAgICAgR0xPQlVTX1NVQ0NFU1MgYW5kIHJlZ2lzdGVycyB0aGUg ZnVuY3Rpb24gcG9pbnRlZCB0byBieSBAYSBjYWxsYmFjayAKKysgKiAgICAgVXBvbiBzdWNjZXNz LCBnbG9idXNfZ3JhbV9wcm90b2NvbF9hY2NlcHRfZGVsZWdhdGlvbigpIHJldHVybnMKKysgKiAg ICAgR0xPQlVTX1NVQ0NFU1MgYW5kIHJlZ2lzdGVycyB0aGUgZnVuY3Rpb24gcG9pbnRlZCB0byBi eSBAYSBjYWxsYmFjaworICAqICAgICB0byBiZSBjYWxsZWQgYWZ0ZXIgdGhlIGRlbGVnYXRpb24g Y29tcGxldGVzIG9yIGZhaWxzLiBJZiBhbiBlcnJvcgorICAqICAgICBvY2N1cnMsIGdsb2J1c19n cmFtX3Byb3RvY29sX2FjY2VwdF9kZWxlZ2F0aW9uKCkgcmV0dXJucyBhbiBpbnRlZ2VyCisgICog ICAgIGVycm9yIGNvZGUgYW5kIHRoZSBAYSBjYWxsYmFjayBmdW5jdGlvbiBpcyBub3QgcmVnaXN0 ZXJlZC4KK0BAIC04MjcsMzUgKzgyNywzNSBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9yZXBseSgK KyBpbnQKKyBnbG9idXNfZ3JhbV9wcm90b2NvbF9hY2NlcHRfZGVsZWdhdGlvbigKKyAgICAgZ2xv YnVzX2dyYW1fcHJvdG9jb2xfaGFuZGxlX3QgICAgICAgaGFuZGxlLAorLSAgICBnc3NfT0lEX3Nl dAkJCQlyZXN0cmljdGlvbl9vaWRzLAorLSAgICBnc3NfYnVmZmVyX3NldF90CQkJcmVzdHJpY3Rp b25fYnVmZmVycywKKy0gICAgT01fdWludDMyCQkJCXJlcV9mbGFncywKKy0gICAgT01fdWludDMy CQkJCXRpbWVfcmVxLAorKyAgICBnc3NfT0lEX3NldCAgICAgICAgICAgICAgICAgICAgICAgICBy ZXN0cmljdGlvbl9vaWRzLAorKyAgICBnc3NfYnVmZmVyX3NldF90ICAgICAgICAgICAgICAgICAg ICByZXN0cmljdGlvbl9idWZmZXJzLAorKyAgICBPTV91aW50MzIgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXFfZmxhZ3MsCisrICAgIE9NX3VpbnQzMiAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRpbWVfcmVxLAorICAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9kZWxlZ2F0aW9uX2NhbGxi YWNrX3QKKy0gICAgCQkJCQljYWxsYmFjaywKKy0gICAgdm9pZCAqCQkJCWFyZykKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssCisrICAgIHZvaWQgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZykKKyB7CistICAgIGludAkJCQkJcmM7Cist ICAgIGdsb2J1c19ieXRlX3QgKiAJCQlyZXBseTsKKy0gICAgZ2xvYnVzX3NpemVfdAkJCXJlcGx5 c2l6ZTsKKysgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmM7CisrICAg IGdsb2J1c19ieXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIHJlcGx5OworKyAgICBnbG9idXNf c2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICByZXBseXNpemU7CisgCisgICAgIHJjID0gZ2xv YnVzX2dyYW1fcHJvdG9jb2xfcGFja19zdGF0dXNfcmVwbHkoCistCSAgICAwLAorLQkgICAgMCwK Ky0JICAgIDAsCistCSAgICAmcmVwbHksCistCSAgICAmcmVwbHlzaXplKTsKKysgICAgICAgICAg ICAwLAorKyAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgMCwKKysgICAgICAgICAgICAmcmVw bHksCisrICAgICAgICAgICAgJnJlcGx5c2l6ZSk7CisgCisgICAgIHJjID0gZ2xvYnVzX2xfZ3Jh bV9wcm90b2NvbF9yZXBseShoYW5kbGUsCistCSAgCQkJCTIwMCwKKy0JCQkJCXJlcGx5LAorLQkJ CQkJcmVwbHlzaXplLAorLQkJCQkJcmVzdHJpY3Rpb25fb2lkcywKKy0JCQkJCXJlc3RyaWN0aW9u X2J1ZmZlcnMsCistCQkJCQlyZXFfZmxhZ3MsCistCQkJCQl0aW1lX3JlcSwKKy0JCQkJCWNhbGxi YWNrLAorLQkJCQkJYXJnKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMjAwLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBseSwK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbHlzaXplLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0cmljdGlvbl9vaWRzLAor KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0cmljdGlvbl9idWZm ZXJzLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXFfZmxhZ3Ms CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVfcmVxLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFjaywKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnKTsKKyAgICAgZ2xvYnVzX2xpYmNf ZnJlZShyZXBseSk7CisgICAgIHJldHVybiByYzsKKyB9CitAQCAtODk3LDQ0ICs4OTcsNDQgQEAg Z2xvYnVzX2dyYW1fcHJvdG9jb2xfZ2V0X3NlY19jb250ZXh0KAorICAgICBnc3NfY3R4X2lkX3Qg KiAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0KQorIHsKKyAgICAgZ2xvYnVzX2lfZ3JhbV9w cm90b2NvbF9jb25uZWN0aW9uX3QgKgorLSAgICAJCQkJCWNvbm5lY3Rpb247CistICAgIGdsb2J1 c19saXN0X3QgKgkJCWxpc3Q7CistICAgIGludAkJCQkJcmM7CisrICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb247CisrICAgIGdsb2J1c19saXN0X3QgKiAg ICAgICAgICAgICAgICAgICAgIGxpc3Q7CisrICAgIGludCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJjOworIAorICAgICBsaXN0ID0gZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25u ZWN0aW9uczsKKyAgICAgd2hpbGUobGlzdCAhPSBOVUxMKQorICAgICB7CisgICAgICAgICBjb25u ZWN0aW9uID0gZ2xvYnVzX2xpc3RfZmlyc3QobGlzdCk7CistCWlmKGNvbm5lY3Rpb24tPmhhbmRs ZSA9PSBoYW5kbGUpCistCXsKKy0JICAgIGJyZWFrOworLQl9CistCWxpc3QgPSBnbG9idXNfbGlz dF9yZXN0KGxpc3QpOworKyAgICAgICAgaWYoY29ubmVjdGlvbi0+aGFuZGxlID09IGhhbmRsZSkK KysgICAgICAgIHsKKysgICAgICAgICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICAgIGxp c3QgPSBnbG9idXNfbGlzdF9yZXN0KGxpc3QpOworICAgICB9CisgCisgICAgIGlmKGxpc3QgPT0g TlVMTCkKKyAgICAgeworLQkvKiBObyBtYXRjaCAqLworKyAgICAgICAgLyogTm8gbWF0Y2ggKi8K KyAgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfSU5WQUxJRF9SRVFVRVNU OworLQlnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0K KyAKKyAgICAgKmNvbnRleHQgPSBjb25uZWN0aW9uLT5jb250ZXh0OworIAorICAgICBpZigqY29u dGV4dCA9PSBHU1NfQ19OT19DT05URVhUKQorICAgICB7CistCS8qIE5vIGNvbnRleHQgKi8KKysg ICAgICAgIC8qIE5vIGNvbnRleHQgKi8KKyAgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9D T0xfRVJST1JfSU5WQUxJRF9SRVFVRVNUOworLQlnb3RvIGVycm9yX2V4aXQ7ICAgICAgICAKKysg ICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorIAorICAgICByZXR1cm4gR0xPQlVTX1NV Q0NFU1M7CistICAgIAorKworICBlcnJvcl9leGl0OgorICAgICByZXR1cm4gcmM7CisgfQorIC8q IGdsb2J1c19ncmFtX3Byb3RvY29sX2dldF9zZWNfY29udGV4dCgpICovCistICAKKysKKyAjaWZu ZGVmIEdMT0JVU19ET05UX0RPQ1VNRU5UX0lOVEVSTkFMCisgLyoqCisgICogTGlzdGVuIGNhbGxi YWNrLgorQEAgLTk0Miw4ICs5NDIsOCBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9nZXRfc2VjX2Nv bnRleHQoCisgICogVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBHbG9idXMgSS9PIGRlY2lk ZXMgdGhhdCBhIGNvbm5lY3Rpb24gaXMKKyAgKiByZWFkeSB0byBiZSBhY2NlcHRlZCBvbiBhIGxp c3RlbmluZyBUQ1Agc29ja2V0LiBJZiB0aGUgZ3JhbSBwcm90b2NvbCBtb2R1bGUKKyAgKiBoYXMg bm90IGJlZW4gZGVhY3RpdmF0ZWQsIHRoZW4gd2UgY3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gaGFu ZGxlIHRvCistICogcmVnaXN0ZXIgdGhlIGFjY2VwdCBvbi4gT3RoZXJ3aXNlLCB3ZSByZWdpc3Rl ciB0aGUgY2xvc2Ugb2YgdGhpcyBsaXN0ZW5lci4gIAorLSAqIAorKyAqIHJlZ2lzdGVyIHRoZSBh Y2NlcHQgb24uIE90aGVyd2lzZSwgd2UgcmVnaXN0ZXIgdGhlIGNsb3NlIG9mIHRoaXMgbGlzdGVu ZXIuCisrICoKKyAgKiBAcGFyYW0gY2FsbGJhY2tfYXJnCisgICogICAgICAgIFRoZSBnbG9idXNf aV9ncmFtX3Byb3RvY29sX2xpc3RlbmVyX3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMKKyAgKiAgICAg ICAgR2xvYnVzIEkvTyBoYW5kbGUuCitAQCAtOTU3LDE2ICs5NTcsMTYgQEAgZ2xvYnVzX2dyYW1f cHJvdG9jb2xfZ2V0X3NlY19jb250ZXh0KAorIHN0YXRpYworIHZvaWQKKyBnbG9idXNfbF9ncmFt X3Byb3RvY29sX2xpc3Rlbl9jYWxsYmFjaygKKy0gICAgdm9pZCAqCQkJCWNhbGxiYWNrX2FyZywK Ky0gICAgZ2xvYnVzX2lvX2hhbmRsZV90ICoJCWhhbmRsZSwKKy0gICAgZ2xvYnVzX3Jlc3VsdF90 CQkJcmVzdWx0KQorKyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxs YmFja19hcmcsCisrICAgIGdsb2J1c19pb19oYW5kbGVfdCAqICAgICAgICAgICAgICAgIGhhbmRs ZSwKKysgICAgZ2xvYnVzX3Jlc3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KQorIHsK Ky0gICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9saXN0ZW5lcl90ICoJbGlzdGVuZXI7CisrICAg IGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfbGlzdGVuZXJfdCAqIGxpc3RlbmVyOworICAgICBnbG9i dXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fdCAqCistICAgIAkJCQkJY29ubmVjdGlvbjsK Ky0gICAgZ2xvYnVzX2xpc3RfdCAqCQkJbm9kZTsKKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29ubmVjdGlvbjsKKysgICAgZ2xvYnVzX2xpc3RfdCAqICAgICAgICAg ICAgICAgICAgICAgbm9kZTsKKyAgICAgZ2xvYnVzX2lvX2F0dHJfdCAgICAgICAgICAgICAgICAg ICAgYWNjZXB0X2F0dHJzOworLSAgICAKKysKKyAgICAgbGlzdGVuZXIgPSBjYWxsYmFja19hcmc7 CisgICAgIGxpc3RlbmVyLT5saXN0ZW5fcmVnaXN0ZXJlZCA9IEdMT0JVU19GQUxTRTsKKyAKK0BA IC05ODAsOCArOTgwLDggQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9saXN0ZW5fY2FsbGJhY2so CisgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAgICAgY29ubmVjdGlvbiA9IGds b2J1c19saWJjX2NhbGxvYygKKy0JCSAgICAxLAorLQkJICAgIHNpemVvZihnbG9idXNfaV9ncmFt X3Byb3RvY29sX2Nvbm5lY3Rpb25fdCkpOworKyAgICAgICAgICAgICAgICAgICAgMSwKKysgICAg ICAgICAgICAgICAgICAgIHNpemVvZihnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25f dCkpOworIAorICAgICBpZihjb25uZWN0aW9uID09IE5VTEwpCisgICAgIHsKK0BAIC0xMDA3LDE5 ICsxMDA3LDE5IEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfbGlzdGVuX2NhbGxiYWNrKAorICAg ICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKyAgICAgICAgIGdvdG8gZnJl ZV9pb19oYW5kbGVfZXhpdDsKKy0gICAgfSAgICAKKysgICAgfQorIAorICAgICBpZihnbG9idXNf bF9ncmFtX3Byb3RvY29sX3NldHVwX2FjY2VwdF9hdHRyKCZhY2NlcHRfYXR0cnMsIGNvbm5lY3Rp b24pKQorICAgICB7CisgICAgICAgICBnb3RvIGZyZWVfYXR0cnNfZXhpdDsKKyAgICAgfQorLSAg ICAKKysKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2lvX3RjcF9yZWdpc3Rlcl9hY2NlcHQoCisgICAg ICAgICAgICAgICAgICAgICBsaXN0ZW5lci0+aGFuZGxlLAorLQkJICAgICZhY2NlcHRfYXR0cnMs CistCQkgICAgY29ubmVjdGlvbi0+aW9faGFuZGxlLAorLQkJICAgIGdsb2J1c19sX2dyYW1fcHJv dG9jb2xfYWNjZXB0X2NhbGxiYWNrLAorLQkJICAgIGNvbm5lY3Rpb24pOworKyAgICAgICAgICAg ICAgICAgICAgJmFjY2VwdF9hdHRycywKKysgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t PmlvX2hhbmRsZSwKKysgICAgICAgICAgICAgICAgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xf YWNjZXB0X2NhbGxiYWNrLAorKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7CisgICAg IGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworICAgICAgICAgZ290byBmcmVl X2F0dHJzX2V4aXQ7CitAQCAtMTA1MywxMyArMTA1MywxMyBAQCBnbG9idXNfbF9ncmFtX3Byb3Rv Y29sX2xpc3Rlbl9jYWxsYmFjaygKKyAKKyAgIGZyZWVfYXR0cnNfZXhpdDoKKyAgICAgZ2xvYnVz X2lvX3RjcGF0dHJfZGVzdHJveSgmYWNjZXB0X2F0dHJzKTsKKy0gICAgCisrCisgICBmcmVlX2lv X2hhbmRsZV9leGl0OgorICAgICBsaXN0ZW5lci0+Y29ubmVjdGlvbl9jb3VudC0tOworICAgICBu b2RlID0gZ2xvYnVzX2xpc3Rfc2VhcmNoKGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlv bnMsIGNvbm5lY3Rpb24pOworICAgICBpZihub2RlKQorICAgICB7CistCWdsb2J1c19saXN0X3Jl bW92ZSgmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9ucywgbm9kZSk7CisrICAgICAg ICBnbG9idXNfbGlzdF9yZW1vdmUoJmdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbnMs IG5vZGUpOworICAgICB9CisgICAgIGdsb2J1c19saWJjX2ZyZWUoY29ubmVjdGlvbi0+aW9faGFu ZGxlKTsKKyAKK0BAIC0xMTA5LDkgKzExMDksOSBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2xp c3Rlbl9jYWxsYmFjaygKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9j bG9zZV9saXN0ZW5lcigKKy0gICAgdm9pZCAqCQkJCWNhbGxiYWNrX2FyZywKKy0gICAgZ2xvYnVz X2lvX2hhbmRsZV90ICoJCWhhbmRsZSwKKy0gICAgZ2xvYnVzX3Jlc3VsdF90CQkJcmVzdWx0KQor KyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFja19hcmcsCisr ICAgIGdsb2J1c19pb19oYW5kbGVfdCAqICAgICAgICAgICAgICAgIGhhbmRsZSwKKysgICAgZ2xv YnVzX3Jlc3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0KQorIHsKKyAgICAgZ2xvYnVz X2xpYmNfZnJlZShoYW5kbGUpOworIAorQEAgLTExMzksMTMgKzExMzksMTMgQEAgZ2xvYnVzX2xf Z3JhbV9wcm90b2NvbF9jbG9zZV9saXN0ZW5lcigKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xf Z3JhbV9wcm90b2NvbF9hY2NlcHRfY2FsbGJhY2soCistICAgIHZvaWQgKgkJCQljYWxsYmFja19h cmcsCistICAgIGdsb2J1c19pb19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1 bHRfdAkJCXJlc3VsdCkKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAgICAgICAgICAgICAgICBo YW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkK KyB7CisgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl90ICoKKy0gICAgCQkJ CQljb25uZWN0aW9uOworLSAgICBpbnQJCQkJCXJjOworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOworKyAgICBpbnQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByYzsKKyAKKyAgICAgY29ubmVjdGlvbiA9IGNhbGxiYWNrX2FyZzsKKyAK K0BAIC0xMTYwLDcgKzExNjAsNyBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2FjY2VwdF9jYWxs YmFjaygKKyAgICAgaWYocmVzdWx0KQorICAgICB7CisgICAgICAgICByYyA9IEdMT0JVU19HUkFN X1BST1RPQ09MX0VSUk9SX05PX1JFU09VUkNFUzsKKy0JZ290byBlcnJvcl9leGl0OworKyAgICAg ICAgZ290byBlcnJvcl9leGl0OworICAgICB9CisgICAgIGNvbm5lY3Rpb24tPmJ1ZiA9CisgICAg ICAgICBnbG9idXNfbGliY19tYWxsb2MoR0xPQlVTX0dSQU1fUFJPVE9DT0xfTUFYX01TR19TSVpF KTsKK0BAIC0xMTc2LDEwICsxMTc2LDEwIEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfYWNjZXB0 X2NhbGxiYWNrKAorICAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfcmVhZCgKKyAgICAg ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmlvX2hhbmRsZSwKKyAgICAgICAgICAgICAgICAgIGNv bm5lY3Rpb24tPmJ1ZiwKKy0JCSBjb25uZWN0aW9uLT5idWZzaXplLAorLQkJIDEsCistCQkgZ2xv YnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3JlcXVlc3RfY2FsbGJhY2ssCistCQkgY29ubmVjdGlv bik7CisrICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5idWZzaXplLAorKyAgICAgICAgICAg ICAgICAgMSwKKysgICAgICAgICAgICAgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcmVhZF9y ZXF1ZXN0X2NhbGxiYWNrLAorKyAgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7CisgICAgIGlm KHJlc3VsdCkKKyAgICAgeworICAgICAgICAgcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJP Ul9OT19SRVNPVVJDRVM7CitAQCAtMTE5NywxOSArMTE5NywxOSBAQCBnbG9idXNfbF9ncmFtX3By b3RvY29sX2FjY2VwdF9jYWxsYmFjaygKKyAgICAgICovCisgCisgICAgIHJlc3VsdCA9IGdsb2J1 c19pb19yZWdpc3Rlcl9jbG9zZSgKKy0JICAgIGhhbmRsZSwKKy0JICAgIGdsb2J1c19sX2dyYW1f cHJvdG9jb2xfY29ubmVjdGlvbl9jbG9zZV9jYWxsYmFjaywKKy0JICAgIGNhbGxiYWNrX2FyZyk7 CisrICAgICAgICAgICAgaGFuZGxlLAorKyAgICAgICAgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9j b2xfY29ubmVjdGlvbl9jbG9zZV9jYWxsYmFjaywKKysgICAgICAgICAgICBjYWxsYmFja19hcmcp OworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKyAgICAgICAg IC8qIElmIHdlIGNhbid0IGNsb3NlIHRoZSBoYW5kbGUsIHdlJ2Qgc3RpbGwgbGlrZSB0byBjbGVh biB1cAorLQkgKiBvdXIgbWVtb3J5LgorLQkgKi8KKy0JZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9j b25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrKAorLQkgICAgY2FsbGJhY2tfYXJnLAorLQkgICAgaGFu ZGxlLAorLQkgICAgcmVzdWx0KTsKKysgICAgICAgICAqIG91ciBtZW1vcnkuCisrICAgICAgICAg Ki8KKysgICAgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl9jbG9zZV9jYWxs YmFjaygKKysgICAgICAgICAgICBjYWxsYmFja19hcmcsCisrICAgICAgICAgICAgaGFuZGxlLAor KyAgICAgICAgICAgIHJlc3VsdCk7CisgICAgIH0KKyB9CisgLyogZ2xvYnVzX2xfZ3JhbV9wcm90 b2NvbF9hY2NlcHRfY2FsbGJhY2soKSAqLworQEAgLTEyMzgsMTggKzEyMzgsMTggQEAgZ2xvYnVz X2xfZ3JhbV9wcm90b2NvbF9hY2NlcHRfY2FsbGJhY2soCisgc3RhdGljCisgdm9pZAorIGdsb2J1 c19sX2dyYW1fcHJvdG9jb2xfcmVhZF9yZXF1ZXN0X2NhbGxiYWNrKAorLSAgICB2b2lkICoJCQkJ Y2FsbGJhY2tfYXJnLAorLSAgICBnbG9idXNfaW9faGFuZGxlX3QgKgkJaGFuZGxlLAorLSAgICBn bG9idXNfcmVzdWx0X3QJCQlyZXN1bHQsCistICAgIGdsb2J1c19ieXRlX3QgKgkJCWJ1ZiwKKy0g ICAgZ2xvYnVzX3NpemVfdAkJCW5ieXRlcykKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAgICAg ICAgICAgICAgICBoYW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAg ICAgIHJlc3VsdCwKKysgICAgZ2xvYnVzX2J5dGVfdCAqICAgICAgICAgICAgICAgICAgICAgYnVm LAorKyAgICBnbG9idXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpCisgewor LSAgICBnbG9idXNfb2JqZWN0X3QgKgkJCWVycjsKKysgICAgZ2xvYnVzX29iamVjdF90ICogICAg ICAgICAgICAgICAgICAgZXJyOworICAgICBnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rp b25fdCAqCistICAgIAkJCQkJY29ubmVjdGlvbjsKKy0gICAgY2hhciAqCQkJCXA7CistICAgIGlu dAkJCQkJcmM7CistICAgIGdsb2J1c19zaXplX3QJCQloZWFkZXJfbGVuZ3RoOworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOworKyAgICBjaGFyICog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwOworKyAgICBpbnQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByYzsKKysgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAgICAgICAg ICAgICAgaGVhZGVyX2xlbmd0aDsKKyAKKyAgICAgY29ubmVjdGlvbiA9IGNhbGxiYWNrX2FyZzsK KyAKK0BAIC0xMjU3LDEwMiArMTI1NywxMDIgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFk X3JlcXVlc3RfY2FsbGJhY2soCisgICAgIHsKKyAgICAgICAgIGVyciA9IGdsb2J1c19lcnJvcl9n ZXQocmVzdWx0KTsKKyAKKy0JaWYoIWdsb2J1c19pb19lb2YoZXJyKSB8fCAhY29ubmVjdGlvbi0+ Z290X2hlYWRlcikKKy0JeworLQkgICAgZ2xvYnVzX29iamVjdF9mcmVlKGVycik7CisrICAgICAg ICBpZighZ2xvYnVzX2lvX2VvZihlcnIpIHx8ICFjb25uZWN0aW9uLT5nb3RfaGVhZGVyKQorKyAg ICAgICAgeworKyAgICAgICAgICAgIGdsb2J1c19vYmplY3RfZnJlZShlcnIpOworIAorLQkgICAg Z290byBlcnJvcl9leGl0OworLQl9CisrICAgICAgICAgICAgZ290byBlcnJvcl9leGl0OworKyAg ICAgICAgfQorICAgICB9CisgICAgIGlmKCFjb25uZWN0aW9uLT5nb3RfaGVhZGVyKQorICAgICB7 CisgICAgICAgICBpZihjb25uZWN0aW9uLT5uX3JlYWQgPT0gMCAmJiAoKCpidWYgPT0gJzAnKSB8 fCAoKmJ1ZiA9PSAnRCcpKSkKKy0JeworLQkgICAgLyogRGVsZWdhdGlvbiBwYWNrZXQ/ICovCist CistCSAgICBnb3RvIHJlcmVnaXN0ZXJfcmVhZDsKKy0JfQorLQorLQljb25uZWN0aW9uLT5uX3Jl YWQgKz0gbmJ5dGVzOworLQljb25uZWN0aW9uLT5idWZbY29ubmVjdGlvbi0+bl9yZWFkXSA9ICdc MCc7CistCistCXAgPSBzdHJzdHIoKGNvbnN0IGNoYXIgKiljb25uZWN0aW9uLT5idWYsIENSTEYg Q1JMRik7CistCWhlYWRlcl9sZW5ndGggPSAoY29uc3QgY2hhciAqKXAgLSAoY29uc3QgY2hhciAq KWNvbm5lY3Rpb24tPmJ1ZjsKKy0KKy0JaWYocCkKKy0JeworLQkgICAgY29ubmVjdGlvbi0+Z290 X2hlYWRlciA9IEdMT0JVU19UUlVFOworLQorLQkgICAgcmMgPSBnbG9idXNfbF9ncmFtX3Byb3Rv Y29sX3BhcnNlX3JlcXVlc3RfaGVhZGVyKAorLQkgICAgICAgICAgICAgY29ubmVjdGlvbi0+YnVm LAorLQkJICAgICAmY29ubmVjdGlvbi0+cGF5bG9hZF9sZW5ndGgsCistCQkgICAgICZjb25uZWN0 aW9uLT51cmkpOworLQkgICAgaWYocmMgIT0gR0xPQlVTX1NVQ0NFU1MpCistCSAgICB7CistCSAg ICAgICAgZ290byBlcnJvcl9leGl0OworLQkgICAgfQorLQkgICAgLyogcCArIDQgaXMgdGhlIGJl Z2lubmluZyBvZiB0aGUgcGF5bG9hZCAoYWZ0ZXIgQ1JMRiBDUkxGKSAqLworLQkgICAgbWVtbW92 ZShjb25uZWN0aW9uLT5idWYsCistCQkgICAgcCArIDQsCistCQkgICAgY29ubmVjdGlvbi0+bl9y ZWFkIC0gaGVhZGVyX2xlbmd0aCAtIDQpOworLQkgICAgY29ubmVjdGlvbi0+bl9yZWFkID0gY29u bmVjdGlvbi0+bl9yZWFkIC0gaGVhZGVyX2xlbmd0aCAtIDQ7CistCSAgICBjb25uZWN0aW9uLT5i dWZbY29ubmVjdGlvbi0+bl9yZWFkXSA9ICdcMCc7CistCSAgICBuYnl0ZXMgPSAwOworLQl9Cist CWVsc2UKKy0JeworLQkgICAgZ290byByZXJlZ2lzdGVyX3JlYWQ7CistCX0KKysgICAgICAgIHsK KysgICAgICAgICAgICAvKiBEZWxlZ2F0aW9uIHBhY2tldD8gKi8KKysKKysgICAgICAgICAgICBn b3RvIHJlcmVnaXN0ZXJfcmVhZDsKKysgICAgICAgIH0KKysKKysgICAgICAgIGNvbm5lY3Rpb24t Pm5fcmVhZCArPSBuYnl0ZXM7CisrICAgICAgICBjb25uZWN0aW9uLT5idWZbY29ubmVjdGlvbi0+ bl9yZWFkXSA9ICdcMCc7CisrCisrICAgICAgICBwID0gc3Ryc3RyKChjb25zdCBjaGFyICopY29u bmVjdGlvbi0+YnVmLCBDUkxGIENSTEYpOworKyAgICAgICAgaGVhZGVyX2xlbmd0aCA9IChjb25z dCBjaGFyICopcCAtIChjb25zdCBjaGFyICopY29ubmVjdGlvbi0+YnVmOworKworKyAgICAgICAg aWYocCkKKysgICAgICAgIHsKKysgICAgICAgICAgICBjb25uZWN0aW9uLT5nb3RfaGVhZGVyID0g R0xPQlVTX1RSVUU7CisrCisrICAgICAgICAgICAgcmMgPSBnbG9idXNfbF9ncmFtX3Byb3RvY29s X3BhcnNlX3JlcXVlc3RfaGVhZGVyKAorKyAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t PmJ1ZiwKKysgICAgICAgICAgICAgICAgICAgICAmY29ubmVjdGlvbi0+cGF5bG9hZF9sZW5ndGgs CisrICAgICAgICAgICAgICAgICAgICAgJmNvbm5lY3Rpb24tPnVyaSk7CisrICAgICAgICAgICAg aWYocmMgIT0gR0xPQlVTX1NVQ0NFU1MpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAg ICBnb3RvIGVycm9yX2V4aXQ7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8qIHAgKyA0 IGlzIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHBheWxvYWQgKGFmdGVyIENSTEYgQ1JMRikgKi8KKysg ICAgICAgICAgICBtZW1tb3ZlKGNvbm5lY3Rpb24tPmJ1ZiwKKysgICAgICAgICAgICAgICAgICAg IHAgKyA0LAorKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+bl9yZWFkIC0gaGVhZGVy X2xlbmd0aCAtIDQpOworKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPm5fcmVhZCA9IGNvbm5lY3Rp b24tPm5fcmVhZCAtIGhlYWRlcl9sZW5ndGggLSA0OworKyAgICAgICAgICAgIGNvbm5lY3Rpb24t PmJ1Zltjb25uZWN0aW9uLT5uX3JlYWRdID0gJ1wwJzsKKysgICAgICAgICAgICBuYnl0ZXMgPSAw OworKyAgICAgICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgIGdv dG8gcmVyZWdpc3Rlcl9yZWFkOworKyAgICAgICAgfQorICAgICB9CisgICAgIGlmKGNvbm5lY3Rp b24tPmdvdF9oZWFkZXIpCisgICAgIHsKKyAgICAgICAgIGlmKGNvbm5lY3Rpb24tPm5fcmVhZCA8 IGNvbm5lY3Rpb24tPnBheWxvYWRfbGVuZ3RoKQorLQl7CistCSAgICBnb3RvIHJlcmVnaXN0ZXJf cmVhZDsKKy0JfQorLQkvKiBDYWxsIHVzZXIgY2FsbGJhY2suLi4gdXNlcnMgc2hvdWxkIG5vdCBm cmVlIHRoZQorLQkgKiBidWZmZXJzLCB1bmxpa2UgdGhlIG9yaWdpbmFsIGNvZGUuCistCSAqLwor LQlpZihjb25uZWN0aW9uLT5jYWxsYmFjaykKKy0JeworLQkgICAgY29ubmVjdGlvbi0+Y2FsbGJh Y2soY29ubmVjdGlvbi0+Y2FsbGJhY2tfYXJnLAorLQkJCQkgY29ubmVjdGlvbi0+aGFuZGxlLAor LQkJCQkgY29ubmVjdGlvbi0+YnVmLAorLQkJCQkgY29ubmVjdGlvbi0+cGF5bG9hZF9sZW5ndGgs CistCQkJCSBHTE9CVVNfU1VDQ0VTUywKKy0JCQkJIGNvbm5lY3Rpb24tPnVyaSk7CistCX0KKysg ICAgICAgIHsKKysgICAgICAgICAgICBnb3RvIHJlcmVnaXN0ZXJfcmVhZDsKKysgICAgICAgIH0K KysgICAgICAgIC8qIENhbGwgdXNlciBjYWxsYmFjay4uLiB1c2VycyBzaG91bGQgbm90IGZyZWUg dGhlCisrICAgICAgICAgKiBidWZmZXJzLCB1bmxpa2UgdGhlIG9yaWdpbmFsIGNvZGUuCisrICAg ICAgICAgKi8KKysgICAgICAgIGlmKGNvbm5lY3Rpb24tPmNhbGxiYWNrKQorKyAgICAgICAgewor KyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNhbGxiYWNrKGNvbm5lY3Rpb24tPmNhbGxiYWNrX2Fy ZywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5oYW5kbGUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+YnVmLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnBheWxvYWRfbGVuZ3Ro LAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMT0JVU19TVUNDRVNTLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnVyaSk7CisrICAgICAg ICB9CisgICAgIH0KKyAgICAgcmV0dXJuOworIAorICAgcmVyZWdpc3Rlcl9yZWFkOgorICAgICBy ZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfcmVhZCgKKyAgICAgICAgICAgICAgICAgIGNvbm5l Y3Rpb24tPmlvX2hhbmRsZSwKKy0JCSBjb25uZWN0aW9uLT5idWYgKyBjb25uZWN0aW9uLT5uX3Jl YWQsCistCQkgY29ubmVjdGlvbi0+YnVmc2l6ZSAtIGNvbm5lY3Rpb24tPm5fcmVhZCwKKy0JCSAx LAorLQkJIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcmVhZF9yZXF1ZXN0X2NhbGxiYWNrLAorLQkJ IGNvbm5lY3Rpb24pOworKyAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+YnVmICsgY29ubmVj dGlvbi0+bl9yZWFkLAorKyAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+YnVmc2l6ZSAtIGNv bm5lY3Rpb24tPm5fcmVhZCwKKysgICAgICAgICAgICAgICAgIDEsCisrICAgICAgICAgICAgICAg ICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3JlYWRfcmVxdWVzdF9jYWxsYmFjaywKKysgICAgICAg ICAgICAgICAgIGNvbm5lY3Rpb24pOworICAgICBpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1Mp CisgICAgIHsKKy0JcmV0dXJuOworKyAgICAgICAgcmV0dXJuOworICAgICB9CisgCisgICBlcnJv cl9leGl0OgorICAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfY2xvc2UoCisgICAgICAg ICAgICAgICAgICBjb25uZWN0aW9uLT5pb19oYW5kbGUsCistCQkgZ2xvYnVzX2xfZ3JhbV9wcm90 b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrLAorLQkJIGNvbm5lY3Rpb24pOworKyAgICAg ICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxi YWNrLAorKyAgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7CisgCisgICAgIGlmKHJlc3VsdCAh PSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworICAgICAgICAgLyogSWYgd2UgY2FuJ3QgY2xvc2Ug dGhlIGhhbmRsZSwgd2UnZCBzdGlsbCBsaWtlIHRvIGNsZWFuIHVwCistCSAqIG91ciBtZW1vcnku CistCSAqLworLQlnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJh Y2soCistCSAgICBjYWxsYmFja19hcmcsCistCSAgICBoYW5kbGUsCistCSAgICByZXN1bHQpOwor KyAgICAgICAgICogb3VyIG1lbW9yeS4KKysgICAgICAgICAqLworKyAgICAgICAgZ2xvYnVzX2xf Z3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrKAorKyAgICAgICAgICAgIGNh bGxiYWNrX2FyZywKKysgICAgICAgICAgICBoYW5kbGUsCisrICAgICAgICAgICAgcmVzdWx0KTsK KyAgICAgfQorIH0KKyAvKiBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3JlYWRfcmVxdWVzdF9jYWxs YmFjaygpICovCitAQCAtMTM3OCw0NiArMTM3OCw0NiBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29s X3JlYWRfcmVxdWVzdF9jYWxsYmFjaygKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9w cm90b2NvbF9jb25uZWN0X2NhbGxiYWNrKAorLSAgICB2b2lkICoJCQkJY2FsbGJhY2tfYXJnLAor LSAgICBnbG9idXNfaW9faGFuZGxlX3QgKgkJaGFuZGxlLAorLSAgICBnbG9idXNfcmVzdWx0X3QJ CQlyZXN1bHQpCisrICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxi YWNrX2FyZywKKysgICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxl LAorKyAgICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQpCisgewor LSAgICBnbG9idXNfb2JqZWN0X3QgKgkJCWVycjsKKy0gICAgaW50CQkJCQlyYyA9IDA7CistICAg IGNoYXIgKgkJCQllcnJzdHJpbmc7CisrICAgIGdsb2J1c19vYmplY3RfdCAqICAgICAgICAgICAg ICAgICAgIGVycjsKKysgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmMg PSAwOworKyAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJzdHJpbmc7 CisgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl90ICoKKy0gICAgCQkJCQlj b25uZWN0aW9uOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u ZWN0aW9uOworICAgICBjb25uZWN0aW9uID0gY2FsbGJhY2tfYXJnOworICAgICBnbG9idXNfbXV0 ZXhfbG9jaygmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9tdXRleCk7CisgICAgIGNvbm5lY3Rpb24t PmFjY2VwdGluZyA9IEdMT0JVU19GQUxTRTsKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUND RVNTKQorICAgICB7CistCWVyciA9IGdsb2J1c19lcnJvcl9nZXQocmVzdWx0KTsKKy0KKy0JaWYo Z2xvYnVzX29iamVjdF90eXBlX21hdGNoKAorLQkgICAgICAgZ2xvYnVzX29iamVjdF9nZXRfdHlw ZShlcnIpLAorLQkgICAgICAgR0xPQlVTX0lPX0VSUk9SX1RZUEVfU0VDVVJJVFlfRkFJTEVEKSkK Ky0JeworLQkgICAgZXJyc3RyaW5nID0gZ2xvYnVzX2Vycm9yX3ByaW50X2ZyaWVuZGx5KGVycik7 CistCSAgICByYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX0FVVEhPUklaQVRJT047Cist CSAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9lcnJvcl83X2hhY2tfcmVwbGFjZV9tZXNzYWdlKGVy cnN0cmluZyk7CistCSAgICBnbG9idXNfZnJlZShlcnJzdHJpbmcpOworLQl9CistCWVsc2UKKy0J eworLQkgICAgcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9DT05ORUNUSU9OX0ZBSUxF RDsKKy0JfQorLQlyZXN1bHQgPSBnbG9idXNfZXJyb3JfcHV0KGVycik7CisrICAgICAgICBlcnIg PSBnbG9idXNfZXJyb3JfZ2V0KHJlc3VsdCk7CisrCisrICAgICAgICBpZihnbG9idXNfb2JqZWN0 X3R5cGVfbWF0Y2goCisrICAgICAgICAgICAgICAgZ2xvYnVzX29iamVjdF9nZXRfdHlwZShlcnIp LAorKyAgICAgICAgICAgICAgIEdMT0JVU19JT19FUlJPUl9UWVBFX1NFQ1VSSVRZX0ZBSUxFRCkp CisrICAgICAgICB7CisrICAgICAgICAgICAgZXJyc3RyaW5nID0gZ2xvYnVzX2Vycm9yX3ByaW50 X2ZyaWVuZGx5KGVycik7CisrICAgICAgICAgICAgcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9F UlJPUl9BVVRIT1JJWkFUSU9OOworKyAgICAgICAgICAgIGdsb2J1c19ncmFtX3Byb3RvY29sX2Vy cm9yXzdfaGFja19yZXBsYWNlX21lc3NhZ2UoZXJyc3RyaW5nKTsKKysgICAgICAgICAgICBnbG9i dXNfZnJlZShlcnJzdHJpbmcpOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAg eworKyAgICAgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfQ09OTkVDVElP Tl9GQUlMRUQ7CisrICAgICAgICB9CisrICAgICAgICByZXN1bHQgPSBnbG9idXNfZXJyb3JfcHV0 KGVycik7CisgICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAKKyAgICAgLyogV3Jp dGUgdGhlIGZyYW1lZCBHUkFNIHJlcXVlc3QgKi8KKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2lvX3Jl Z2lzdGVyX3dyaXRlKAorICAgICAgICAgICAgICAgICAgaGFuZGxlLAorLQkJIGNvbm5lY3Rpb24t PmJ1ZiwKKy0JCSBjb25uZWN0aW9uLT5idWZzaXplLAorLQkJIGdsb2J1c19sX2dyYW1fcHJvdG9j b2xfd3JpdGVfcmVxdWVzdF9jYWxsYmFjaywKKy0JCSBjb25uZWN0aW9uKTsKKysgICAgICAgICAg ICAgICAgIGNvbm5lY3Rpb24tPmJ1ZiwKKysgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmJ1 ZnNpemUsCisrICAgICAgICAgICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3dyaXRlX3Jl cXVlc3RfY2FsbGJhY2ssCisrICAgICAgICAgICAgICAgICBjb25uZWN0aW9uKTsKKyAKKyAgICAg aWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CitAQCAtMTQzNiwyOCArMTQzNiwy OCBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3RfY2FsbGJhY2soCisgICAgICAqLwor ICAgICBpZihjb25uZWN0aW9uLT5jYWxsYmFjaykKKyAgICAgeworLQljb25uZWN0aW9uLT5jYWxs YmFjayhjb25uZWN0aW9uLT5jYWxsYmFja19hcmcsCistCQkJICAgICBjb25uZWN0aW9uLT5oYW5k bGUsCistCQkJICAgICBOVUxMLAorLQkJCSAgICAgMCwKKy0JCQkgICAgIHJjLAorLQkJCSAgICAg TlVMTCk7CisrICAgICAgICBjb25uZWN0aW9uLT5jYWxsYmFjayhjb25uZWN0aW9uLT5jYWxsYmFj a19hcmcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5oYW5kbGUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjLAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgIH0KKy0gICAgCisrCisgICAgIHJl c3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl9jbG9zZSgKKy0JaGFuZGxlLAorLQlnbG9idXNfbF9n cmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJhY2ssCistCWNhbGxiYWNrX2FyZyk7 CistICAgIAorKyAgICAgICAgaGFuZGxlLAorKyAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2Nv bF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrLAorKyAgICAgICAgY2FsbGJhY2tfYXJnKTsKKysK KyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICAgICAgICAvKiBJ ZiB3ZSBjYW4ndCBjbG9zZSB0aGUgaGFuZGxlLCB3ZSdkIHN0aWxsIGxpa2UgdG8gY2xlYW4gdXAK Ky0JICogb3VyIG1lbW9yeS4KKy0JICovCistCWdsb2J1c19sX2dyYW1fcHJvdG9jb2xfY29ubmVj dGlvbl9jbG9zZV9jYWxsYmFjaygKKy0JICAgIGNhbGxiYWNrX2FyZywKKy0JICAgIGhhbmRsZSwK Ky0JICAgIHJlc3VsdCk7CisrICAgICAgICAgKiBvdXIgbWVtb3J5LgorKyAgICAgICAgICovCisr ICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJhY2so CisrICAgICAgICAgICAgY2FsbGJhY2tfYXJnLAorKyAgICAgICAgICAgIGhhbmRsZSwKKysgICAg ICAgICAgICByZXN1bHQpOworICAgICB9CisgICAgIHJldHVybjsKKyB9CitAQCAtMTQ4NywxNSAr MTQ4NywxNSBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3RfY2FsbGJhY2soCisgc3Rh dGljCisgdm9pZAorIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfd3JpdGVfcmVxdWVzdF9jYWxsYmFj aygKKy0gICAgdm9pZCAqCQkJCWNhbGxiYWNrX2FyZywKKy0gICAgZ2xvYnVzX2lvX2hhbmRsZV90 ICoJCWhhbmRsZSwKKy0gICAgZ2xvYnVzX3Jlc3VsdF90CQkJcmVzdWx0LAorLSAgICBnbG9idXNf Ynl0ZV90ICoJCQlidWYsCistICAgIGdsb2J1c19zaXplX3QJCQluYnl0ZXMpCisrICAgIHZvaWQg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysgICAgZ2xvYnVz X2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICBnbG9idXNfcmVzdWx0 X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisrICAgIGdsb2J1c19ieXRlX3QgKiAgICAg ICAgICAgICAgICAgICAgIGJ1ZiwKKysgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAgICAgICAg ICAgICAgbmJ5dGVzKQorIHsKKyAgICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9u X3QgKgorLSAgICAJCQkJCWNvbm5lY3Rpb247CistICAgIGludAkJCQkJcmM7CisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb247CisrICAgIGludCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjOworIAorICAgICBjb25uZWN0aW9uID0gY2Fs bGJhY2tfYXJnOworICAgICBnbG9idXNfbXV0ZXhfbG9jaygmZ2xvYnVzX2lfZ3JhbV9wcm90b2Nv bF9tdXRleCk7CitAQCAtMTUwNCw3ICsxNTA0LDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF93 cml0ZV9yZXF1ZXN0X2NhbGxiYWNrKAorICAgICAgICAgZ2xvYnVzX29iamVjdF90ICogICAgICAg ICAgICAgICBlcnI7CisgICAgICAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgIGVy cnN0cmluZzsKKyAKKy0JZXJyID0gZ2xvYnVzX2Vycm9yX2dldChyZXN1bHQpOworKyAgICAgICAg ZXJyID0gZ2xvYnVzX2Vycm9yX2dldChyZXN1bHQpOworIAorICAgICAgICAgZXJyc3RyaW5nID0g Z2xvYnVzX2Vycm9yX3ByaW50X2ZyaWVuZGx5KGVycik7CisgICAgICAgICBnbG9idXNfZ3JhbV9w cm90b2NvbF9lcnJvcl8xMF9oYWNrX3JlcGxhY2VfbWVzc2FnZShlcnJzdHJpbmcpOworQEAgLTE1 MjYsMTEgKzE1MjYsMTEgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF93cml0ZV9yZXF1ZXN0X2Nh bGxiYWNrKAorICAgICB9CisgICAgIC8qIFJlYWQgcmVwbHkgZnJvbSBzZXJ2ZXIgKi8KKyAgICAg cmVzdWx0ID0gZ2xvYnVzX2lvX3JlZ2lzdGVyX3JlYWQoY29ubmVjdGlvbi0+aW9faGFuZGxlLAor LQkJCQkgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorLQkJCQkgICAgIGNvbm5lY3Rpb24tPnJl cGx5YnVmc2l6ZSwKKy0JCQkJICAgICAxLAorLQkJCQkgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9j b2xfcmVhZF9yZXBseV9jYWxsYmFjaywKKy0JCQkJICAgICBjb25uZWN0aW9uKTsKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+cmVwbHlidWYsCisrICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmc2l6 ZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwKKysgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3Jl cGx5X2NhbGxiYWNrLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u ZWN0aW9uKTsKKyAKKyAgICAgaWYocmVzdWx0KQorICAgICB7CitAQCAtMTU0NiwzMSArMTU0Niwz MSBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3dyaXRlX3JlcXVlc3RfY2FsbGJhY2soCisgCisg ICAgIGlmKGNvbm5lY3Rpb24tPmNhbGxiYWNrKQorICAgICB7CistCS8qCistCSAqIFNpbmNlIHRo ZSB1c2VyIHJlcXVlc3RlZCB0aGUgUE9TVCB3aXRoIGEgY2FsbGJhY2ssIHRoZXkKKy0JICogc2hv dWxkIGdldCB0aGVpciBjYWxsYmFjaworLQkgKi8KKy0JY29ubmVjdGlvbi0+Y2FsbGJhY2soY29u bmVjdGlvbi0+Y2FsbGJhY2tfYXJnLAorLQkJCSAgICAgY29ubmVjdGlvbi0+aGFuZGxlLAorLQkJ CSAgICAgTlVMTCwKKy0JCQkgICAgIDAsCistCQkJICAgICByYywKKy0JCQkgICAgIE5VTEwpOwor KyAgICAgICAgLyoKKysgICAgICAgICAqIFNpbmNlIHRoZSB1c2VyIHJlcXVlc3RlZCB0aGUgUE9T VCB3aXRoIGEgY2FsbGJhY2ssIHRoZXkKKysgICAgICAgICAqIHNob3VsZCBnZXQgdGhlaXIgY2Fs bGJhY2sKKysgICAgICAgICAqLworKyAgICAgICAgY29ubmVjdGlvbi0+Y2FsbGJhY2soY29ubmVj dGlvbi0+Y2FsbGJhY2tfYXJnLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVj dGlvbi0+aGFuZGxlLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDAsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByYywKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICB9CisgICAg IHJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl9jbG9zZSgKKy0JICAgIGhhbmRsZSwKKy0JICAg IGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl9jbG9zZV9jYWxsYmFjaywKKy0JICAg IGNhbGxiYWNrX2FyZyk7CisrICAgICAgICAgICAgaGFuZGxlLAorKyAgICAgICAgICAgIGdsb2J1 c19sX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl9jbG9zZV9jYWxsYmFjaywKKysgICAgICAgICAg ICBjYWxsYmFja19hcmcpOworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisg ICAgIHsKKyAgICAgICAgIC8qIElmIHdlIGNhbid0IGNsb3NlIHRoZSBoYW5kbGUsIHdlJ2Qgc3Rp bGwgbGlrZSB0byBjbGVhbiB1cAorLQkgKiBvdXIgbWVtb3J5LgorLQkgKi8KKy0JZ2xvYnVzX2xf Z3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrKAorLQkgICAgY2FsbGJhY2tf YXJnLAorLQkgICAgaGFuZGxlLAorLQkgICAgcmVzdWx0KTsKKysgICAgICAgICAqIG91ciBtZW1v cnkuCisrICAgICAgICAgKi8KKysgICAgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfY29ubmVj dGlvbl9jbG9zZV9jYWxsYmFjaygKKysgICAgICAgICAgICBjYWxsYmFja19hcmcsCisrICAgICAg ICAgICAgaGFuZGxlLAorKyAgICAgICAgICAgIHJlc3VsdCk7CisgICAgIH0KKyAgICAgcmV0dXJu OworIH0KK0BAIC0xNTk4LDcyICsxNTk4LDcyIEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfd3Jp dGVfcmVxdWVzdF9jYWxsYmFjaygKKyAgKiAgICAgICAgVGhlIHJlcGx5IGJ1ZmZlciB3aGljaCB3 YXMgc2VudCB0byB0aGUgR1JBTSBQcm90b2NvbCBzZXJ2ZXIuCisgICogQHBhcmFtIG5ieXRlcwor ICAqICAgICAgICBUaGUgbnVtYmVyIG9mIGJ5dGVzIG9mIEBhIGJ1ZiB3cml0dGVuLgorLSAqIAor KyAqCisgICovCisgc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfd3JpdGVf cmVwbHlfY2FsbGJhY2soCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAgIGdsb2J1 c19pb19oYW5kbGVfdCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJlc3VsdCwK Ky0gICAgZ2xvYnVzX2J5dGVfdCAqCQkJYnVmLAorLSAgICBnbG9idXNfc2l6ZV90CQkJbmJ5dGVz KQorKyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsYmFja19hcmcs CisrICAgIGdsb2J1c19pb19oYW5kbGVfdCAqICAgICAgICAgICAgICAgIGhhbmRsZSwKKysgICAg Z2xvYnVzX3Jlc3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LAorKyAgICBnbG9idXNf Ynl0ZV90ICogICAgICAgICAgICAgICAgICAgICBidWYsCisrICAgIGdsb2J1c19zaXplX3QgICAg ICAgICAgICAgICAgICAgICAgIG5ieXRlcykKKyB7CisgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9j b2xfY29ubmVjdGlvbl90ICoKKy0gICAgICAgCQkJCQljb25uZWN0aW9uOworKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOworICAgICBjb25uZWN0aW9u ID0gY2FsbGJhY2tfYXJnOworIAorICAgICBpZihjb25uZWN0aW9uLT5rZWVwX29wZW4pCisgICAg IHsKKy0JaWYocmVzdWx0ID09IEdMT0JVU19TVUNDRVNTKQorLQl7CistCSAgICBpZihjb25uZWN0 aW9uLT5yZXBseWJ1ZiA9PSBOVUxMKQorLQkgICAgeworLQkJY29ubmVjdGlvbi0+cmVwbHlidWYg PSBnbG9idXNfbGliY19tYWxsb2MoNDA5Nik7CistCQljb25uZWN0aW9uLT5yZXBseWJ1ZnNpemUg PSA0MDk2OworLQkgICAgfQorLQkgICAgcmVzdWx0ID0gZ2xvYnVzX2lvX3JlZ2lzdGVyX3JlYWQo CistCQkgICAgaGFuZGxlLAorLQkJICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorLQkJICAgIDQs CistCQkgICAgNCwKKy0JCSAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fcmVh ZF9jYWxsYmFjaywKKy0JCSAgICBjb25uZWN0aW9uKTsKKy0KKy0JICAgIGlmKHJlc3VsdCA9PSBH TE9CVVNfU1VDQ0VTUykKKy0JICAgIHsKKy0JCXJldHVybjsKKy0JICAgIH0KKy0JfQorLQlpZihy ZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAgIC8qIEVycm9yIG9jY3VycmVkLiBD YWxsIGNhbGxiYWNrIHdpdGggZXJyb3IuICovCistCSAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9u X2NhbGxiYWNrKAorLQkJICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fYXJnLAorLQkJICAgIGNv bm5lY3Rpb24tPmhhbmRsZSwKKy0JCSAgICBHU1NfQ19OT19DUkVERU5USUFMLAorLQkJICAgIEdM T0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX0RFTEVHQVRJT05fRkFJTEVEKTsKKy0JfQorLSAgICB9 CistICAgICAKKysgICAgICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VDQ0VTUykKKysgICAgICAg IHsKKysgICAgICAgICAgICBpZihjb25uZWN0aW9uLT5yZXBseWJ1ZiA9PSBOVUxMKQorKyAgICAg ICAgICAgIHsKKysgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+cmVwbHlidWYgPSBnbG9idXNf bGliY19tYWxsb2MoNDA5Nik7CisrICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVm c2l6ZSA9IDQwOTY7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1 c19pb19yZWdpc3Rlcl9yZWFkKAorKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICAg ICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+cmVwbHlidWYsCisrICAgICAgICAgICAgICAgICAg ICA0LAorKyAgICAgICAgICAgICAgICAgICAgNCwKKysgICAgICAgICAgICAgICAgICAgIGdsb2J1 c19sX2dyYW1fcHJvdG9jb2xfZGVsZWdhdGlvbl9yZWFkX2NhbGxiYWNrLAorKyAgICAgICAgICAg ICAgICAgICAgY29ubmVjdGlvbik7CisrCisrICAgICAgICAgICAgaWYocmVzdWx0ID09IEdMT0JV U19TVUNDRVNTKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAgICAgICAgcmV0dXJuOworKyAg ICAgICAgICAgIH0KKysgICAgICAgIH0KKysgICAgICAgIGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VD Q0VTUykKKysgICAgICAgIHsKKysgICAgICAgICAgICAvKiBFcnJvciBvY2N1cnJlZC4gQ2FsbCBj YWxsYmFjayB3aXRoIGVycm9yLiAqLworKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRp b25fY2FsbGJhY2soCisrICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9u X2FyZywKKysgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmhhbmRsZSwKKysgICAgICAg ICAgICAgICAgICAgIEdTU19DX05PX0NSRURFTlRJQUwsCisrICAgICAgICAgICAgICAgICAgICBH TE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9ERUxFR0FUSU9OX0ZBSUxFRCk7CisrICAgICAgICB9 CisrICAgIH0KKysKKyAgICAgcmVzdWx0ID0gZ2xvYnVzX2lvX3JlZ2lzdGVyX2Nsb3NlKAorLQkg ICAgaGFuZGxlLAorLQkgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3Nl X2NhbGxiYWNrLAorLQkgICAgY2FsbGJhY2tfYXJnKTsKKysgICAgICAgICAgICBoYW5kbGUsCisr ICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxi YWNrLAorKyAgICAgICAgICAgIGNhbGxiYWNrX2FyZyk7CisgCisgICAgIGlmKHJlc3VsdCAhPSBH TE9CVVNfU1VDQ0VTUykKKyAgICAgeworICAgICAgICAgLyogSWYgd2UgY2FuJ3QgY2xvc2UgdGhl IGhhbmRsZSwgd2UnZCBzdGlsbCBsaWtlIHRvIGNsZWFuIHVwCistCSAqIG91ciBtZW1vcnkuCist CSAqLworLQlnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJhY2so CistCSAgICBjYWxsYmFja19hcmcsCistCSAgICBoYW5kbGUsCistCSAgICByZXN1bHQpOworKyAg ICAgICAgICogb3VyIG1lbW9yeS4KKysgICAgICAgICAqLworKyAgICAgICAgZ2xvYnVzX2xfZ3Jh bV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrKAorKyAgICAgICAgICAgIGNhbGxi YWNrX2FyZywKKysgICAgICAgICAgICBoYW5kbGUsCisrICAgICAgICAgICAgcmVzdWx0KTsKKyAg ICAgfQorIH0KKyAvKiBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3dyaXRlX3JlcGx5X2NhbGxiYWNr KCkgKi8KKy0gICAgCisrCisgLyoqCisgICogVW5wYWNrIGEgcmVwbHkgYW5kIGNhbGwgdXNlcidz IGNhbGxiYWNrLgorICAqCitAQCAtMTY3MSw3ICsxNjcxLDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90 b2NvbF93cml0ZV9yZXBseV9jYWxsYmFjaygKKyAgKiBJZiB0aGUgZW50aXJlIHJlcGx5IGlzIHBy ZXNlbnQsIGl0IGlzIHVuZnJhbWVkIGFuZCB0aGUgdXNlcidzIFBPU1QKKyAgKiBjYWxsYmFjayBp cyBjYWxsZWQuIElmIGl0IGlzIG5vdCBwcmVzZW50LCB0aGVuIGFub3RoZXIgcmVhZCBpcyByZWdp c3RlcmVkCisgICogb24gdGhlIGNvbm5lY3Rpb24uCistICogCisrICoKKyAgKiBAcGFyYW0gY2Fs bGJhY2tfYXJnCisgICogICAgICAgIEEgcG9pbnRlciB0byB0aGUKKyAgKiAgICAgICAgQGxpbmsg Z2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX3QgY29ubmVjdGlvbiBAZW5kbGluawor QEAgLTE2ODgsMTcgKzE2ODgsMTcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF93cml0ZV9yZXBs eV9jYWxsYmFjaygKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFk X3JlcGx5X2NhbGxiYWNrKAorLSAgICB2b2lkICoJCQkJY2FsbGJhY2tfYXJnLAorLSAgICBnbG9i dXNfaW9faGFuZGxlX3QgKgkJaGFuZGxlLAorLSAgICBnbG9idXNfcmVzdWx0X3QJCQlyZXN1bHQs CistICAgIGdsb2J1c19ieXRlX3QgKgkJCWJ1ZiwKKy0gICAgZ2xvYnVzX3NpemVfdAkJCW5ieXRl cykKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tfYXJn LAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAgICAgICAgICAgICAgICBoYW5kbGUsCisrICAg IGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwKKysgICAgZ2xvYnVz X2J5dGVfdCAqICAgICAgICAgICAgICAgICAgICAgYnVmLAorKyAgICBnbG9idXNfc2l6ZV90ICAg ICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpCisgeworLSAgICBnbG9idXNfb2JqZWN0X3QgKgkJ CWVycjsKKysgICAgZ2xvYnVzX29iamVjdF90ICogICAgICAgICAgICAgICAgICAgZXJyOworICAg ICBnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fdCAqCistICAgIAkJCQkJY29ubmVj dGlvbjsKKy0gICAgY2hhciAqCQkJCXA7CistICAgIGdsb2J1c19zaXplX3QJCQloZWFkZXJfbGVu Z3RoOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u OworKyAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwOworKyAgICBnbG9i dXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJfbGVuZ3RoOworIAorICAgICBj b25uZWN0aW9uID0gY2FsbGJhY2tfYXJnOworIAorQEAgLTE3MDYsODIgKzE3MDYsODIgQEAgZ2xv YnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3JlcGx5X2NhbGxiYWNrKAorICAgICB7CisgICAgICAg ICBlcnIgPSBnbG9idXNfZXJyb3JfZ2V0KHJlc3VsdCk7CisgCistCWlmKCFnbG9idXNfaW9fZW9m KGVycikgfHwgIWNvbm5lY3Rpb24tPmdvdF9oZWFkZXIpCistCXsKKysgICAgICAgIGlmKCFnbG9i dXNfaW9fZW9mKGVycikgfHwgIWNvbm5lY3Rpb24tPmdvdF9oZWFkZXIpCisrICAgICAgICB7Cisg ICAgICAgICAgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgIGVycnN0cmluZzsKKyAKKyAg ICAgICAgICAgICBlcnJzdHJpbmcgPSBnbG9idXNfZXJyb3JfcHJpbnRfZnJpZW5kbHkoZXJyKTsK KyAgICAgICAgICAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9lcnJvcl8xMF9oYWNrX3JlcGxhY2Vf bWVzc2FnZShlcnJzdHJpbmcpOworICAgICAgICAgICAgIGdsb2J1c19mcmVlKGVycnN0cmluZyk7 CistCSAgICBnbG9idXNfb2JqZWN0X2ZyZWUoZXJyKTsKKysgICAgICAgICAgICBnbG9idXNfb2Jq ZWN0X2ZyZWUoZXJyKTsKKyAKKy0JICAgIGNvbm5lY3Rpb24tPnJjID0gR0xPQlVTX0dSQU1fUFJP VE9DT0xfRVJST1JfUFJPVE9DT0xfRkFJTEVEOworKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJj ID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfUFJPVE9DT0xfRkFJTEVEOworIAorLQkgICAg Z290byBjYWxsYmFja19leGl0OworLQl9CisrICAgICAgICAgICAgZ290byBjYWxsYmFja19leGl0 OworKyAgICAgICAgfQorICAgICB9CisgICAgIGlmKCFjb25uZWN0aW9uLT5nb3RfaGVhZGVyKQor ICAgICB7CisgICAgICAgICBpZihjb25uZWN0aW9uLT5uX3JlYWQgPT0gMCAmJiAoKCpidWYgPT0g JzAnKSB8fCAoKmJ1ZiA9PSAnRCcpKSkKKy0JeworLQkgICAgLyogRGVsZWdhdGlvbiBwYWNrZXQ/ IT8gKi8KKysgICAgICAgIHsKKysgICAgICAgICAgICAvKiBEZWxlZ2F0aW9uIHBhY2tldD8hPyAq LworICAgICAgICAgICAgIGdsb2J1c19ncmFtX3Byb3RvY29sX2Vycm9yXzEwX2hhY2tfcmVwbGFj ZV9tZXNzYWdlKAorICAgICAgICAgICAgICAgICAic2VydmVyIHNlbnQgdW5leHBlY3RlZCBkZWxl Z2F0aW9uIHByb3RvY29sIG1lc3NhZ2UiKTsKKy0JICAgIGNvbm5lY3Rpb24tPnJjID0gR0xPQlVT X0dSQU1fUFJPVE9DT0xfRVJST1JfUFJPVE9DT0xfRkFJTEVEOworLQorLQkgICAgZ290byBjYWxs YmFja19leGl0OworLQl9CistCistCWNvbm5lY3Rpb24tPm5fcmVhZCArPSBuYnl0ZXM7CistCWNv bm5lY3Rpb24tPnJlcGx5YnVmW2Nvbm5lY3Rpb24tPm5fcmVhZF0gPSAnXDAnOworLQorLQlwID0g c3Ryc3RyKChjb25zdCBjaGFyICopY29ubmVjdGlvbi0+cmVwbHlidWYsIENSTEYgQ1JMRik7Cist CWhlYWRlcl9sZW5ndGggPSAoY29uc3QgY2hhciAqKXAgLSAoY29uc3QgY2hhciAqKWNvbm5lY3Rp b24tPnJlcGx5YnVmOworLQorLQlpZihwKQorLQl7CistCSAgICBjb25uZWN0aW9uLT5nb3RfaGVh ZGVyID0gR0xPQlVTX1RSVUU7CistCistCSAgICBjb25uZWN0aW9uLT5yYyA9IGdsb2J1c19sX2dy YW1fcHJvdG9jb2xfcGFyc2VfcmVwbHlfaGVhZGVyKAorLQkgICAgICAgICAgICAgY29ubmVjdGlv bi0+cmVwbHlidWYsCistCQkgICAgICZjb25uZWN0aW9uLT5wYXlsb2FkX2xlbmd0aCk7CistCist CSAgICBpZihjb25uZWN0aW9uLT5yYyAhPSBHTE9CVVNfU1VDQ0VTUykKKy0JICAgIHsKKy0JICAg ICAgICBnb3RvIGNhbGxiYWNrX2V4aXQ7CistCSAgICB9CistCSAgICAvKiBwICsgNCBpcyB0aGUg YmVnaW5uaW5nIG9mIHRoZSBwYXlsb2FkIChhZnRlciBDUkxGIENSTEYpICovCistCSAgICBtZW1t b3ZlKGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorLQkJICAgIHAgKyA0LAorLQkJICAgIGNvbm5lY3Rp b24tPm5fcmVhZCAtIGhlYWRlcl9sZW5ndGggLSA0KTsKKy0JICAgIGNvbm5lY3Rpb24tPm5fcmVh ZCA9IGNvbm5lY3Rpb24tPm5fcmVhZCAtIGhlYWRlcl9sZW5ndGggLSA0OworLQkgICAgY29ubmVj dGlvbi0+cmVwbHlidWZbY29ubmVjdGlvbi0+bl9yZWFkXSA9ICdcMCc7CistCSAgICBuYnl0ZXMg PSAwOworLQl9CisrICAgICAgICAgICAgY29ubmVjdGlvbi0+cmMgPSBHTE9CVVNfR1JBTV9QUk9U T0NPTF9FUlJPUl9QUk9UT0NPTF9GQUlMRUQ7CisrCisrICAgICAgICAgICAgZ290byBjYWxsYmFj a19leGl0OworKyAgICAgICAgfQorKworKyAgICAgICAgY29ubmVjdGlvbi0+bl9yZWFkICs9IG5i eXRlczsKKysgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmW2Nvbm5lY3Rpb24tPm5fcmVhZF0g PSAnXDAnOworKworKyAgICAgICAgcCA9IHN0cnN0cigoY29uc3QgY2hhciAqKWNvbm5lY3Rpb24t PnJlcGx5YnVmLCBDUkxGIENSTEYpOworKyAgICAgICAgaGVhZGVyX2xlbmd0aCA9IChjb25zdCBj aGFyICopcCAtIChjb25zdCBjaGFyICopY29ubmVjdGlvbi0+cmVwbHlidWY7CisrCisrICAgICAg ICBpZihwKQorKyAgICAgICAgeworKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmdvdF9oZWFkZXIg PSBHTE9CVVNfVFJVRTsKKysKKysgICAgICAgICAgICBjb25uZWN0aW9uLT5yYyA9IGdsb2J1c19s X2dyYW1fcHJvdG9jb2xfcGFyc2VfcmVwbHlfaGVhZGVyKAorKyAgICAgICAgICAgICAgICAgICAg IGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorKyAgICAgICAgICAgICAgICAgICAgICZjb25uZWN0aW9u LT5wYXlsb2FkX2xlbmd0aCk7CisrCisrICAgICAgICAgICAgaWYoY29ubmVjdGlvbi0+cmMgIT0g R0xPQlVTX1NVQ0NFU1MpCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBnb3RvIGNh bGxiYWNrX2V4aXQ7CisrICAgICAgICAgICAgfQorKyAgICAgICAgICAgIC8qIHAgKyA0IGlzIHRo ZSBiZWdpbm5pbmcgb2YgdGhlIHBheWxvYWQgKGFmdGVyIENSTEYgQ1JMRikgKi8KKysgICAgICAg ICAgICBtZW1tb3ZlKGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorKyAgICAgICAgICAgICAgICAgICAg cCArIDQsCisrICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5uX3JlYWQgLSBoZWFkZXJf bGVuZ3RoIC0gNCk7CisrICAgICAgICAgICAgY29ubmVjdGlvbi0+bl9yZWFkID0gY29ubmVjdGlv bi0+bl9yZWFkIC0gaGVhZGVyX2xlbmd0aCAtIDQ7CisrICAgICAgICAgICAgY29ubmVjdGlvbi0+ cmVwbHlidWZbY29ubmVjdGlvbi0+bl9yZWFkXSA9ICdcMCc7CisrICAgICAgICAgICAgbmJ5dGVz ID0gMDsKKysgICAgICAgIH0KKyAgICAgfQorICAgICBpZihjb25uZWN0aW9uLT5nb3RfaGVhZGVy KQorICAgICB7CisgICAgICAgICBpZihjb25uZWN0aW9uLT5uX3JlYWQgPj0gY29ubmVjdGlvbi0+ cGF5bG9hZF9sZW5ndGgpCistCXsKKy0JICAgIC8qIEdvdCB0aGUgcGF5bG9hZCwgY2FsbCBiYWNr IHRvIHVzZXIgbm93ICovCistCSAgICBnb3RvIGNhbGxiYWNrX2V4aXQ7CistCX0KKysgICAgICAg IHsKKysgICAgICAgICAgICAvKiBHb3QgdGhlIHBheWxvYWQsIGNhbGwgYmFjayB0byB1c2VyIG5v dyAqLworKyAgICAgICAgICAgIGdvdG8gY2FsbGJhY2tfZXhpdDsKKysgICAgICAgIH0KKyAgICAg fQorICAgICAvKiBNaXNzaW5nIHBhcnQgb2YgdGhlIGhlYWRlciBvciBwYXlsb2FkLCByZWdpc3Rl ciBhbm90aGVyIHJlYWQgKi8KKyAgICAgZ2xvYnVzX2Fzc2VydCgoIWNvbm5lY3Rpb24tPmdvdF9o ZWFkZXIpIHx8CistCSAgICAgICAgICAoY29ubmVjdGlvbi0+bl9yZWFkIDwgY29ubmVjdGlvbi0+ cGF5bG9hZF9sZW5ndGgpKTsKKysgICAgICAgICAgICAgICAgICAoY29ubmVjdGlvbi0+bl9yZWFk IDwgY29ubmVjdGlvbi0+cGF5bG9hZF9sZW5ndGgpKTsKKyAKKyAgICAgcmVzdWx0ID0gZ2xvYnVz X2lvX3JlZ2lzdGVyX3JlYWQoCisgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5pb19oYW5k bGUsCistCQkgY29ubmVjdGlvbi0+cmVwbHlidWYgKyBjb25uZWN0aW9uLT5uX3JlYWQsCistCQkg Y29ubmVjdGlvbi0+cmVwbHlidWZzaXplIC0gY29ubmVjdGlvbi0+bl9yZWFkLAorLQkJIDEsCist CQkgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3JlcGx5X2NhbGxiYWNrLAorLQkJIGNvbm5l Y3Rpb24pOworKyAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+cmVwbHlidWYgKyBjb25uZWN0 aW9uLT5uX3JlYWQsCisrICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5yZXBseWJ1ZnNpemUg LSBjb25uZWN0aW9uLT5uX3JlYWQsCisrICAgICAgICAgICAgICAgICAxLAorKyAgICAgICAgICAg ICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3JlcGx5X2NhbGxiYWNrLAorKyAgICAg ICAgICAgICAgICAgY29ubmVjdGlvbik7CisgCisgICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VD Q0VTUykKKyAgICAgeworLQlyZXR1cm47CisrICAgICAgICByZXR1cm47CisgICAgIH0KKyAKKyAg ICAgLyogSWYgd2UgY291bGRuJ3QgcmVnaXN0ZXIgdGhlIHJlYWQsIHRoZSB3ZSdsbCBmYWxsIHRo cm91Z2gsCitAQCAtMTc5Niw0MiArMTc5Niw0MiBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3Jl YWRfcmVwbHlfY2FsbGJhY2soCisgICAgICAqLworICAgICBpZihjb25uZWN0aW9uLT5jYWxsYmFj ayAmJiAoY29ubmVjdGlvbi0+cmMgfHwgIWNvbm5lY3Rpb24tPmtlZXBfb3BlbikpCisgICAgIHsK Ky0JY29ubmVjdGlvbi0+Y2FsbGJhY2soY29ubmVjdGlvbi0+Y2FsbGJhY2tfYXJnLAorLQkJCSAg ICAgY29ubmVjdGlvbi0+aGFuZGxlLAorLQkJCSAgICAgY29ubmVjdGlvbi0+cmVwbHlidWYsCist CQkJICAgICBjb25uZWN0aW9uLT5wYXlsb2FkX2xlbmd0aCwKKy0JCQkgICAgIGNvbm5lY3Rpb24t PnJjLAorLQkJCSAgICAgTlVMTCk7CisrICAgICAgICBjb25uZWN0aW9uLT5jYWxsYmFjayhjb25u ZWN0aW9uLT5jYWxsYmFja19hcmcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25u ZWN0aW9uLT5oYW5kbGUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u LT5yZXBseWJ1ZiwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnBh eWxvYWRfbGVuZ3RoLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ cmMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgfQorICAgICBp ZiAoKCFjb25uZWN0aW9uLT5yYykgJiYgY29ubmVjdGlvbi0+a2VlcF9vcGVuKQorICAgICB7Cist CS8qIEluIHRoZSBwb3N0ICBkZWxlZ2F0aW9uIGNhc2UsIHdlIGdldCBhIHJlcGx5IGNvbnRhaW5p bmcgbm8gYm9keS4KKy0JICogV2UgdGhlbiBzdGFydCBkb2luZyBkZWxlZ2F0aW9uLgorLQkgKi8K Ky0JY29ubmVjdGlvbi0+Z290X2hlYWRlciA9IDA7CistCWNvbm5lY3Rpb24tPm5fcmVhZCA9IDA7 CisrICAgICAgICAvKiBJbiB0aGUgcG9zdCAgZGVsZWdhdGlvbiBjYXNlLCB3ZSBnZXQgYSByZXBs eSBjb250YWluaW5nIG5vIGJvZHkuCisrICAgICAgICAgKiBXZSB0aGVuIHN0YXJ0IGRvaW5nIGRl bGVnYXRpb24uCisrICAgICAgICAgKi8KKysgICAgICAgIGNvbm5lY3Rpb24tPmdvdF9oZWFkZXIg PSAwOworKyAgICAgICAgY29ubmVjdGlvbi0+bl9yZWFkID0gMDsKKyAKKy0JZ2xvYnVzX2xfZ3Jh bV9wcm90b2NvbF9pbml0X2RlbGVnYXRpb24oY29ubmVjdGlvbiwgR1NTX0NfTk9fQlVGRkVSKTsK Ky0JCistCXJldHVybjsKKysgICAgICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfaW5pdF9kZWxl Z2F0aW9uKGNvbm5lY3Rpb24sIEdTU19DX05PX0JVRkZFUik7CisrCisrICAgICAgICByZXR1cm47 CisgICAgIH0KKyAgICAgLyogRm9yIHJlcGx5IGhhbmRsaW5nLCB3ZSBqdXN0IG5lZWQgdG8gY2xv c2UgdXAgdGhlIGNvbm5lY3Rpb24KKyAgICAgICogYWZ0ZXIgd2UndmUgZGlzcGF0Y2hlZCB0aGUg Y2FsbGJhY2suCisgICAgICAqLworICAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfY2xv c2UoCisgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5pb19oYW5kbGUsCistCQkgZ2xvYnVz X2xfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrLAorLQkJIGNvbm5lY3Rp b24pOworKyAgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9u X2Nsb3NlX2NhbGxiYWNrLAorKyAgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7CisgCisgICAg IGlmKHJlc3VsdCAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgeworICAgICAgICAgLyogSWYgd2Ug Y2FuJ3QgY2xvc2UgdGhlIGhhbmRsZSwgd2UnZCBzdGlsbCBsaWtlIHRvIGNsZWFuIHVwCistCSAq IG91ciBtZW1vcnkuCistCSAqLworLQlnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25f Y2xvc2VfY2FsbGJhY2soCistCSAgICBjYWxsYmFja19hcmcsCistCSAgICBoYW5kbGUsCistCSAg ICByZXN1bHQpOworKyAgICAgICAgICogb3VyIG1lbW9yeS4KKysgICAgICAgICAqLworKyAgICAg ICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrKAorKyAg ICAgICAgICAgIGNhbGxiYWNrX2FyZywKKysgICAgICAgICAgICBoYW5kbGUsCisrICAgICAgICAg ICAgcmVzdWx0KTsKKyAgICAgfQorICAgICByZXR1cm47CisgfQorQEAgLTE4NTIsMTMgKzE4NTIs MTMgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3JlcGx5X2NhbGxiYWNrKAorIHN0YXRp YworIHZvaWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJh Y2soCistICAgIHZvaWQgKgkJCQljYWxsYmFja19hcmcsCistICAgIGdsb2J1c19pb19oYW5kbGVf dCAqCQloYW5kbGUsCistICAgIGdsb2J1c19yZXN1bHRfdAkJCXJlc3VsdCkKKysgICAgdm9pZCAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNf aW9faGFuZGxlX3QgKiAgICAgICAgICAgICAgICBoYW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRf dCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCkKKyB7CisgICAgIGdsb2J1c19pX2dyYW1fcHJv dG9jb2xfY29ubmVjdGlvbl90ICoKKy0JCQkJCWNvbm5lY3Rpb247CistICAgIGdsb2J1c19saXN0 X3QgKgkJCW5vZGU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bm5lY3Rpb247CisrICAgIGdsb2J1c19saXN0X3QgKiAgICAgICAgICAgICAgICAgICAgIG5vZGU7 CisgCisgICAgIGNvbm5lY3Rpb24gPSBjYWxsYmFja19hcmc7CisgCitAQCAtMTg2NywxNyArMTg2 NywxNyBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJhY2so CisgCisgICAgIGlmKG5vZGUpCisgICAgIHsKKy0JZ2xvYnVzX2xpc3RfcmVtb3ZlKCZnbG9idXNf aV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25zLCBub2RlKTsKKysgICAgICAgIGdsb2J1c19saXN0 X3JlbW92ZSgmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9ucywgbm9kZSk7CisgCist CWlmKGNvbm5lY3Rpb24tPmxpc3RlbmVyKQorLQl7CistCSAgICAvKiBDb25uZWN0aW9uIHdhcyBj cmVhdGVkIGJ5IGFuIGFjY2VwdCgpICovCistCSAgICBjb25uZWN0aW9uLT5saXN0ZW5lci0+Y29u bmVjdGlvbl9jb3VudC0tOworKyAgICAgICAgaWYoY29ubmVjdGlvbi0+bGlzdGVuZXIpCisrICAg ICAgICB7CisrICAgICAgICAgICAgLyogQ29ubmVjdGlvbiB3YXMgY3JlYXRlZCBieSBhbiBhY2Nl cHQoKSAqLworKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmxpc3RlbmVyLT5jb25uZWN0aW9uX2Nv dW50LS07CisgCistCSAgICBpZihjb25uZWN0aW9uLT5saXN0ZW5lci0+Y29ubmVjdGlvbl9jb3Vu dCA9PSAwKQorLQkgICAgeworLQkJZ2xvYnVzX2NvbmRfc2lnbmFsKCZjb25uZWN0aW9uLT5saXN0 ZW5lci0+Y29uZCk7CistCSAgICB9CisrICAgICAgICAgICAgaWYoY29ubmVjdGlvbi0+bGlzdGVu ZXItPmNvbm5lY3Rpb25fY291bnQgPT0gMCkKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAg ICAgIGdsb2J1c19jb25kX3NpZ25hbCgmY29ubmVjdGlvbi0+bGlzdGVuZXItPmNvbmQpOworKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICBpZigoIWdsb2J1c19pX2dyYW1fcHJvdG9jb2xfc2h1 dGRvd25fY2FsbGVkKSAmJgorICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+bGlzdGVu ZXItPmFsbG93X2F0dGFjaCAmJgorICAgICAgICAgICAgICAgICAgICAgKCFjb25uZWN0aW9uLT5s aXN0ZW5lci0+bGlzdGVuX3JlZ2lzdGVyZWQpICYmCitAQCAtMTg5Miw1NCArMTg5Miw1NCBAQCBn bG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJhY2soCisgICAgICAg ICAgICAgICAgICAgICBjb25uZWN0aW9uLT5saXN0ZW5lci0+bGlzdGVuX3JlZ2lzdGVyZWQgPSBH TE9CVVNfVFJVRTsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgIH0KKy0JfQorLQll bHNlCistCXsKKy0JICAgIC8qIENvbm5lY3Rpb24gd2FzIGNyZWF0ZWQgYnkgUE9TVGluZyAqLwor LQkgICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9udW1fY29ubmVjdHMtLTsKKy0JICAgIAorLQkg ICAgaWYoZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9udW1fY29ubmVjdHMgPT0gMCkKKy0JICAgIHsK Ky0JCWdsb2J1c19jb25kX3NpZ25hbCgmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25kKTsKKy0J ICAgIH0KKy0JfQorLQlpZihjb25uZWN0aW9uLT5idWYpCistCXsKKy0JICAgIGdsb2J1c19saWJj X2ZyZWUoY29ubmVjdGlvbi0+YnVmKTsKKy0JfQorLQlpZihjb25uZWN0aW9uLT5yZXBseWJ1ZikK Ky0JeworLQkgICAgZ2xvYnVzX2xpYmNfZnJlZShjb25uZWN0aW9uLT5yZXBseWJ1Zik7CistCX0K Ky0JaWYoY29ubmVjdGlvbi0+aW9faGFuZGxlKQorLQl7CistCSAgICBnbG9idXNfbGliY19mcmVl KGNvbm5lY3Rpb24tPmlvX2hhbmRsZSk7CistCX0KKy0JaWYoY29ubmVjdGlvbi0+dXJpKQorLQl7 CistCSAgICBnbG9idXNfbGliY19mcmVlKGNvbm5lY3Rpb24tPnVyaSk7CistCX0KKy0JZ2xvYnVz X2xpYmNfZnJlZShjb25uZWN0aW9uKTsKKy0JZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9mcmVlX29s ZF9jcmVkZW50aWFscygpOworKyAgICAgICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgewor KyAgICAgICAgICAgIC8qIENvbm5lY3Rpb24gd2FzIGNyZWF0ZWQgYnkgUE9TVGluZyAqLworKyAg ICAgICAgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfbnVtX2Nvbm5lY3RzLS07CisrCisrICAg ICAgICAgICAgaWYoZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9udW1fY29ubmVjdHMgPT0gMCkKKysg ICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIGdsb2J1c19jb25kX3NpZ25hbCgmZ2xvYnVz X2lfZ3JhbV9wcm90b2NvbF9jb25kKTsKKysgICAgICAgICAgICB9CisrICAgICAgICB9CisrICAg ICAgICBpZihjb25uZWN0aW9uLT5idWYpCisrICAgICAgICB7CisrICAgICAgICAgICAgZ2xvYnVz X2xpYmNfZnJlZShjb25uZWN0aW9uLT5idWYpOworKyAgICAgICAgfQorKyAgICAgICAgaWYoY29u bmVjdGlvbi0+cmVwbHlidWYpCisrICAgICAgICB7CisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNf ZnJlZShjb25uZWN0aW9uLT5yZXBseWJ1Zik7CisrICAgICAgICB9CisrICAgICAgICBpZihjb25u ZWN0aW9uLT5pb19oYW5kbGUpCisrICAgICAgICB7CisrICAgICAgICAgICAgZ2xvYnVzX2xpYmNf ZnJlZShjb25uZWN0aW9uLT5pb19oYW5kbGUpOworKyAgICAgICAgfQorKyAgICAgICAgaWYoY29u bmVjdGlvbi0+dXJpKQorKyAgICAgICAgeworKyAgICAgICAgICAgIGdsb2J1c19saWJjX2ZyZWUo Y29ubmVjdGlvbi0+dXJpKTsKKysgICAgICAgIH0KKysgICAgICAgIGdsb2J1c19saWJjX2ZyZWUo Y29ubmVjdGlvbik7CisrICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2ZyZWVfb2xkX2Ny ZWRlbnRpYWxzKCk7CisgICAgIH0KKyAgICAgZ2xvYnVzX211dGV4X3VubG9jaygmZ2xvYnVzX2lf Z3JhbV9wcm90b2NvbF9tdXRleCk7CisgfQorIC8qIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfY29u bmVjdGlvbl9jbG9zZV9jYWxsYmFjaygpICovCistCQkJCQkKKysKKyAvKioKKyAgKiBJbnRlcm5h bCBmdW5jdGlvbiB0byBjbG9zZSBhIGxpc3RlbmVyLgorICAqCisgICogVXNlZCBieSBib3RoIHRo ZSBkZWFjdGl2YXRpb24gZnVuY3Rpb24gYW5kIHRoZQorLSAqIGdsb2J1c19ncmFtX3Byb3RvY29s X2NhbGxiYWNrX2Rpc2FsbG93KCkgdG8gY2xvc2UgYW5kIGZyZWUgYSAKKysgKiBnbG9idXNfZ3Jh bV9wcm90b2NvbF9jYWxsYmFja19kaXNhbGxvdygpIHRvIGNsb3NlIGFuZCBmcmVlIGEKKyAgKiBs aXN0ZW5lciBoYW5kbGUuIFdhaXRzIGZvciBhbGwgY29ubmVjdGlvbnMgY3JlYXRlZCBieSB0aGlz IGxpc3RlbmVyCisgICogdG8gYmUgY29tcGxldGVkLi4uCisgICovCisgaW50CisgZ2xvYnVzX2lf Z3JhbV9wcm90b2NvbF9jYWxsYmFja19kaXNhbGxvdygKKy0gICAgZ2xvYnVzX2lfZ3JhbV9wcm90 b2NvbF9saXN0ZW5lcl90ICoJbGlzdGVuZXIpCisrICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xf bGlzdGVuZXJfdCAqIGxpc3RlbmVyKQorIHsKKy0gICAgZ2xvYnVzX2xpc3RfdCAqCQkJbm9kZTsK Ky0gICAgZ2xvYnVzX2lvX2hhbmRsZV90ICoJCWhhbmRsZTsKKysgICAgZ2xvYnVzX2xpc3RfdCAq ICAgICAgICAgICAgICAgICAgICAgbm9kZTsKKysgICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAg ICAgICAgICAgICAgaGFuZGxlOworIAorICAgICBoYW5kbGUgPSBsaXN0ZW5lci0+aGFuZGxlOwor IAorQEAgLTE5NjUsOSArMTk2NSw5IEBAIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY2FsbGJhY2tf ZGlzYWxsb3coCisgICAgIGlmKG5vZGUpCisgICAgIHsKKyAgICAgICAgIGdsb2J1c19saXN0X3Jl bW92ZSgmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9saXN0ZW5lcnMsIG5vZGUpOworLQlnbG9idXNf Y29uZF9kZXN0cm95KCZsaXN0ZW5lci0+Y29uZCk7CistCWdsb2J1c19saWJjX2ZyZWUoaGFuZGxl KTsKKy0JZ2xvYnVzX2xpYmNfZnJlZShsaXN0ZW5lcik7CisrICAgICAgICBnbG9idXNfY29uZF9k ZXN0cm95KCZsaXN0ZW5lci0+Y29uZCk7CisrICAgICAgICBnbG9idXNfbGliY19mcmVlKGhhbmRs ZSk7CisrICAgICAgICBnbG9idXNfbGliY19mcmVlKGxpc3RlbmVyKTsKKyAgICAgfQorICAgICBn bG9idXNfY29uZF9zaWduYWwoJmdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29uZCk7CisgCitAQCAt MTk4OCw0NiArMTk4OCw0NiBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2ZyZWVfb2xkX2NyZWRl bnRpYWxzKCkKKyAgICAgY3JlZF9saXN0ID0gZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9vbGRfY3Jl ZHM7CisgICAgIHdoaWxlKCFnbG9idXNfbGlzdF9lbXB0eShjcmVkX2xpc3QpKQorICAgICB7Cist CWdsb2J1c19saXN0X3QgKmRlYWRfY3JlZCA9IGNyZWRfbGlzdDsKKy0JY3JlZCA9IChnc3NfY3Jl ZF9pZF90KSBnbG9idXNfbGlzdF9maXJzdChjcmVkX2xpc3QpOworKyAgICAgICAgZ2xvYnVzX2xp c3RfdCAqZGVhZF9jcmVkID0gY3JlZF9saXN0OworKyAgICAgICAgY3JlZCA9IChnc3NfY3JlZF9p ZF90KSBnbG9idXNfbGlzdF9maXJzdChjcmVkX2xpc3QpOworIAorLQljb25uX2xpc3QgPSBnbG9i dXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25zOworLQl3aGlsZSghZ2xvYnVzX2xpc3RfZW1w dHkoY29ubl9saXN0KSkKKy0JeworLQkgICAgY29ubiA9IChnbG9idXNfaV9ncmFtX3Byb3RvY29s X2Nvbm5lY3Rpb25fdCAqKSBnbG9idXNfbGlzdF9maXJzdChjb25uX2xpc3QpOworKyAgICAgICAg Y29ubl9saXN0ID0gZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uczsKKysgICAgICAg IHdoaWxlKCFnbG9idXNfbGlzdF9lbXB0eShjb25uX2xpc3QpKQorKyAgICAgICAgeworKyAgICAg ICAgICAgIGNvbm4gPSAoZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX3QgKikgZ2xv YnVzX2xpc3RfZmlyc3QoY29ubl9saXN0KTsKKyAgICAgICAgICAgICBpZiAoY29ubi0+YWNjZXB0 aW5nKQorICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg ICAgIH0KKy0gICAgICAgICAgICAKKy0JICAgIGlmIChjb25uLT5pb19oYW5kbGUgIT0gTlVMTCkK Ky0JICAgIHsKKy0JICAgICAgICBnc3NfY3JlZF9pZF90ICAgICAgICAgICBjdXJfY3JlZDsKKy0J ICAgICAgICAKKy0JICAgICAgICBnbG9idXNfaW9fdGNwX2dldF9jcmVkZW50aWFsKGNvbm4tPmlv X2hhbmRsZSwgJmN1cl9jcmVkKTsKKy0JICAgICAgICBpZiAoY3VyX2NyZWQgPT0gY3JlZCkKKysK KysgICAgICAgICAgICBpZiAoY29ubi0+aW9faGFuZGxlICE9IE5VTEwpCisrICAgICAgICAgICAg eworKyAgICAgICAgICAgICAgICBnc3NfY3JlZF9pZF90ICAgICAgICAgICBjdXJfY3JlZDsKKysK KysgICAgICAgICAgICAgICAgZ2xvYnVzX2lvX3RjcF9nZXRfY3JlZGVudGlhbChjb25uLT5pb19o YW5kbGUsICZjdXJfY3JlZCk7CisrICAgICAgICAgICAgICAgIGlmIChjdXJfY3JlZCA9PSBjcmVk KQorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICBkZWFkX2NyZWQgPSBO VUxMOworICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgIH0KKy0J ICAgIH0KKysgICAgICAgICAgICB9CisgCistCSAgICBjb25uX2xpc3QgPSBnbG9idXNfbGlzdF9y ZXN0KGNvbm5fbGlzdCk7CistCX0KKysgICAgICAgICAgICBjb25uX2xpc3QgPSBnbG9idXNfbGlz dF9yZXN0KGNvbm5fbGlzdCk7CisrICAgICAgICB9CisgCistCWNyZWRfbGlzdCA9IGdsb2J1c19s aXN0X3Jlc3QoY3JlZF9saXN0KTsKKysgICAgICAgIGNyZWRfbGlzdCA9IGdsb2J1c19saXN0X3Jl c3QoY3JlZF9saXN0KTsKKyAKKy0JaWYgKGRlYWRfY3JlZCAhPSBOVUxMKQorLQl7CistCSAgICBn bG9idXNfbGlzdF9yZW1vdmUoJmdsb2J1c19pX2dyYW1fcHJvdG9jb2xfb2xkX2NyZWRzLAorLQkJ CSAgICAgICBkZWFkX2NyZWQpOworKyAgICAgICAgaWYgKGRlYWRfY3JlZCAhPSBOVUxMKQorKyAg ICAgICAgeworKyAgICAgICAgICAgIGdsb2J1c19saXN0X3JlbW92ZSgmZ2xvYnVzX2lfZ3JhbV9w cm90b2NvbF9vbGRfY3JlZHMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYWRf Y3JlZCk7CisgCistCSAgICBpZiAoY3JlZCAhPSBHU1NfQ19OT19DUkVERU5USUFMKQorLQkgICAg eworLQkJT01fdWludDMyIG1pbm9yX3N0YXR1czsKKy0JCWdzc19yZWxlYXNlX2NyZWQoJm1pbm9y X3N0YXR1cywgJmNyZWQpOworLQkgICAgfQorLQl9CisrICAgICAgICAgICAgaWYgKGNyZWQgIT0g R1NTX0NfTk9fQ1JFREVOVElBTCkKKysgICAgICAgICAgICB7CisrICAgICAgICAgICAgICAgIE9N X3VpbnQzMiBtaW5vcl9zdGF0dXM7CisrICAgICAgICAgICAgICAgIGdzc19yZWxlYXNlX2NyZWQo Jm1pbm9yX3N0YXR1cywgJmNyZWQpOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKyAKKyAg ICAgfQorIAorQEAgLTIwNDIsNyArMjA0Miw3IEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZnJl ZV9vbGRfY3JlZGVudGlhbHMoKQorICAqIGZ1bmN0aW9uIHJldHVybnMsIHRoZSBjYWxsZXIgbXVz dCBub3QgdXNlIHRoZSBjcmVkZW50aWFsLCBhcyBpdCBtYXkgYmUgZnJlZWQKKyAgKiBieSBHUkFN IHdoZW4gaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKyAgKgorLSAqIEFzIGEgc2lkZSBlZmZlY3Qs IGdsb2J1c19ncmFtX3Byb3RvY29sX3NldF9jcmVkZW50aWFscygpIG1heSBmcmVlIGFueSAKKysg KiBBcyBhIHNpZGUgZWZmZWN0LCBnbG9idXNfZ3JhbV9wcm90b2NvbF9zZXRfY3JlZGVudGlhbHMo KSBtYXkgZnJlZSBhbnkKKyAgKiBjcmVkZW50aWFsIHByZXZpb3VzbHkgdXNlZCBieSBHUkFNLgor ICAqCisgICogQHBhcmFtIG5ld19jcmVkZW50aWFscworQEAgLTIwNzAsMTcgKzIwNzAsMTcgQEAg Z2xvYnVzX2dyYW1fcHJvdG9jb2xfc2V0X2NyZWRlbnRpYWxzKGdzc19jcmVkX2lkX3QgbmV3X2Ny ZWRlbnRpYWxzKQorICAgICBnbG9idXNfaV9ncmFtX3Byb3RvY29sX2NyZWRlbnRpYWwgPSBuZXdf Y3JlZGVudGlhbHM7CisgCisgICAgIGdsb2J1c19pb19hdHRyX3NldF9zZWN1cmVfYXV0aGVudGlj YXRpb25fbW9kZSgKKy0JCQkmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9kZWZhdWx0X2F0dHIsCist CQkJR0xPQlVTX0lPX1NFQ1VSRV9BVVRIRU5USUNBVElPTl9NT0RFX0dTU0FQSSwKKy0JCQlnbG9i dXNfaV9ncmFtX3Byb3RvY29sX2NyZWRlbnRpYWwpOworKyAgICAgICAgICAgICAgICAgICAgICAg ICZnbG9idXNfaV9ncmFtX3Byb3RvY29sX2RlZmF1bHRfYXR0ciwKKysgICAgICAgICAgICAgICAg ICAgICAgICBHTE9CVVNfSU9fU0VDVVJFX0FVVEhFTlRJQ0FUSU9OX01PREVfR1NTQVBJLAorKyAg ICAgICAgICAgICAgICAgICAgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY3JlZGVudGlhbCk7 CisgCisgICAgIHRtcF9saXN0ID0gZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9saXN0ZW5lcnM7Cisg ICAgIHdoaWxlKCFnbG9idXNfbGlzdF9lbXB0eSh0bXBfbGlzdCkpCisgICAgIHsKKy0JbGlzdGVu ZXIgPSAoZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9saXN0ZW5lcl90ICopIGdsb2J1c19saXN0X2Zp cnN0KHRtcF9saXN0KTsKKysgICAgICAgIGxpc3RlbmVyID0gKGdsb2J1c19pX2dyYW1fcHJvdG9j b2xfbGlzdGVuZXJfdCAqKSBnbG9idXNfbGlzdF9maXJzdCh0bXBfbGlzdCk7CisgICAgICAgICBn bG9idXNfaW9fdGNwX3NldF9jcmVkZW50aWFsKGxpc3RlbmVyLT5oYW5kbGUsIG5ld19jcmVkZW50 aWFscyk7CisgCistCXRtcF9saXN0ID0gZ2xvYnVzX2xpc3RfcmVzdCh0bXBfbGlzdCk7CisrICAg ICAgICB0bXBfbGlzdCA9IGdsb2J1c19saXN0X3Jlc3QodG1wX2xpc3QpOworICAgICB9CisgCisg ICAgIGdsb2J1c19saXN0X2luc2VydCgmZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9vbGRfY3JlZHMs IG9sZF9jcmVkKTsKK0BAIC0yMTA1LDE0ICsyMTA1LDE0IEBAIGdsb2J1c19ncmFtX3Byb3RvY29s X3NldF9jcmVkZW50aWFscyhnc3NfY3JlZF9pZF90IG5ld19jcmVkZW50aWFscykKKyBzdGF0aWMK KyBpbnQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3BhcnNlX3JlcXVlc3RfaGVhZGVyKAorLSAg ICBjb25zdCBnbG9idXNfYnl0ZV90ICoJCWJ1ZiwKKy0gICAgZ2xvYnVzX3NpemVfdCAqCQkJcGF5 bG9hZF9sZW5ndGgsCistICAgIGNoYXIgKioJCQkJdXJpKQorKyAgICBjb25zdCBnbG9idXNfYnl0 ZV90ICogICAgICAgICAgICAgICBidWYsCisrICAgIGdsb2J1c19zaXplX3QgKiAgICAgICAgICAg ICAgICAgICAgIHBheWxvYWRfbGVuZ3RoLAorKyAgICBjaGFyICoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1cmkpCisgeworLSAgICBpbnQJCQkJCXJjOworLSAgICBsb25nCQkJCXRtcDsK Ky0gICAgY2hhciAqCQkJCXRtcF91cmk7CistICAgIGNoYXIgKgkJCQlob3N0OworKyAgICBpbnQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYzsKKysgICAgbG9uZyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdG1wOworKyAgICBjaGFyICogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0bXBfdXJpOworKyAgICBjaGFyICogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBob3N0OworIAorICAgICB0bXBfdXJpID0gKGNoYXIgKikgZ2xvYnVzX2xpYmNfbWFsbG9j KHN0cmxlbigoY2hhciAqKSBidWYpKTsKKyAgICAgaG9zdCA9IChjaGFyICopIGdsb2J1c19saWJj X21hbGxvYyhzdHJsZW4oKGNoYXIgKikgYnVmKSk7CitAQCAtMjEyMCwyNyArMjEyMCwyNyBAQCBn bG9idXNfbF9ncmFtX3Byb3RvY29sX3BhcnNlX3JlcXVlc3RfaGVhZGVyKAorICAgICBnbG9idXNf bGliY19sb2NrKCk7CisgICAgIHJjID0gc3NjYW5mKChjb25zdCBjaGFyICopIGJ1ZiwKKyAgICAg ICAgICAgICAgICAgR0xPQlVTX0dSQU1fSFRUUF9SRVFVRVNUX0xJTkUKKy0JCUdMT0JVU19HUkFN X0hUVFBfSE9TVF9MSU5FCistCQlHTE9CVVNfR1JBTV9IVFRQX0NPTlRFTlRfVFlQRV9MSU5FCist CQlHTE9CVVNfR1JBTV9IVFRQX0NPTlRFTlRfTEVOR1RIX0xJTkUKKy0JCUNSTEYsCistCQl0bXBf dXJpLAorLQkJaG9zdCwKKy0JCSZ0bXApOworKyAgICAgICAgICAgICAgICBHTE9CVVNfR1JBTV9I VFRQX0hPU1RfTElORQorKyAgICAgICAgICAgICAgICBHTE9CVVNfR1JBTV9IVFRQX0NPTlRFTlRf VFlQRV9MSU5FCisrICAgICAgICAgICAgICAgIEdMT0JVU19HUkFNX0hUVFBfQ09OVEVOVF9MRU5H VEhfTElORQorKyAgICAgICAgICAgICAgICBDUkxGLAorKyAgICAgICAgICAgICAgICB0bXBfdXJp LAorKyAgICAgICAgICAgICAgICBob3N0LAorKyAgICAgICAgICAgICAgICAmdG1wKTsKKyAKKyAg ICAgZ2xvYnVzX2xpYmNfdW5sb2NrKCk7CisgICAgIGlmKHJjICE9IDMpCisgICAgIHsKKyAgICAg ICAgIGdsb2J1c19ncmFtX3Byb3RvY29sX2Vycm9yXzEwX2hhY2tfcmVwbGFjZV9tZXNzYWdlKCJH UkFNIGlzIHVuYWJsZSB0byBwYXJzZSBIVFRwIG1lc3NhZ2UiICk7CistCXJjID0gR0xPQlVTX0dS QU1fUFJPVE9DT0xfRVJST1JfUFJPVE9DT0xfRkFJTEVEOworKyAgICAgICAgcmMgPSBHTE9CVVNf R1JBTV9QUk9UT0NPTF9FUlJPUl9QUk9UT0NPTF9GQUlMRUQ7CisgCistCSpwYXlsb2FkX2xlbmd0 aCA9IDA7CisrICAgICAgICAqcGF5bG9hZF9sZW5ndGggPSAwOworICAgICB9CisgICAgIGVsc2UK KyAgICAgeworLQkqcGF5bG9hZF9sZW5ndGggPSB0bXA7CistCSp1cmkgPSBzdHJkdXAodG1wX3Vy aSk7CistCXJjID0gR0xPQlVTX1NVQ0NFU1M7CisrICAgICAgICAqcGF5bG9hZF9sZW5ndGggPSB0 bXA7CisrICAgICAgICAqdXJpID0gc3RyZHVwKHRtcF91cmkpOworKyAgICAgICAgcmMgPSBHTE9C VVNfU1VDQ0VTUzsKKyAgICAgfQorICAgICBnbG9idXNfZnJlZSh0bXBfdXJpKTsKKyAgICAgZ2xv YnVzX2ZyZWUoaG9zdCk7CitAQCAtMjE1NSwxNCArMjE1NSwxNCBAQCBnbG9idXNfbF9ncmFtX3By b3RvY29sX3BhcnNlX3JlcXVlc3RfaGVhZGVyKAorIHN0YXRpYworIGludAorIGdsb2J1c19sX2dy YW1fcHJvdG9jb2xfcGFyc2VfcmVwbHlfaGVhZGVyKAorLSAgICBjb25zdCBnbG9idXNfYnl0ZV90 ICoJCWJ1ZiwKKy0gICAgZ2xvYnVzX3NpemVfdCAqCQkJcGF5bG9hZF9sZW5ndGgpCisrICAgIGNv bnN0IGdsb2J1c19ieXRlX3QgKiAgICAgICAgICAgICAgIGJ1ZiwKKysgICAgZ2xvYnVzX3NpemVf dCAqICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZF9sZW5ndGgpCisgeworLSAgICBpbnQJCQkJ CXJjOworLSAgICBpbnQJCQkJCWNvZGU7CistICAgIGludAkJCQkJb2Zmc2V0OworLSAgICBjaGFy ICoJCQkJcmVhc29uOworLSAgICBsb25nCQkJCXRtcDsKKysgICAgaW50ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmM7CisrICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvZGU7CisrICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9m ZnNldDsKKysgICAgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhc29uOwor KyAgICBsb25nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0bXA7CisgCisgICAgIHJl YXNvbiA9IChjaGFyICopIGdsb2J1c19tYWxsb2Moc3RybGVuKChjaGFyICopYnVmKSk7CisgCitA QCAtMjE3MCw4NCArMjE3MCw4NCBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3BhcnNlX3JlcGx5 X2hlYWRlcigKKyAKKyAgICAgZ2xvYnVzX2xpYmNfbG9jaygpOworICAgICByYyA9IHNzY2FuZigg KGNoYXIgKikgYnVmLAorLQkJIEdMT0JVU19HUkFNX0hUVFBfUEFSU0VfUkVQTFlfTElORSAiJW4i LAorLQkJICZjb2RlLAorLQkJIHJlYXNvbiwKKy0JCSAmb2Zmc2V0KTsKKysgICAgICAgICAgICAg ICAgIEdMT0JVU19HUkFNX0hUVFBfUEFSU0VfUkVQTFlfTElORSAiJW4iLAorKyAgICAgICAgICAg ICAgICAgJmNvZGUsCisrICAgICAgICAgICAgICAgICByZWFzb24sCisrICAgICAgICAgICAgICAg ICAmb2Zmc2V0KTsKKyAgICAgZ2xvYnVzX2xpYmNfdW5sb2NrKCk7CisgCisgICAgIGlmKHJjIDwg MikKKyAgICAgeworLQlyYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX0hUVFBfVU5GUkFN RV9GQUlMRUQ7CisrICAgICAgICByYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX0hUVFBf VU5GUkFNRV9GQUlMRUQ7CisgICAgIH0KKyAgICAgZWxzZSBpZihjb2RlID09IDIwMCkKKyAgICAg eworLQlnbG9idXNfbGliY19sb2NrKCk7CistCXJjID0gc3NjYW5mKCAoY2hhciAqKWJ1ZiArIG9m ZnNldCwKKy0JCSAgICAgR0xPQlVTX0dSQU1fSFRUUF9DT05URU5UX1RZUEVfTElORQorLQkJICAg ICBHTE9CVVNfR1JBTV9IVFRQX0NPTlRFTlRfTEVOR1RIX0xJTkUsCistCQkgICAgICZ0bXApOwor LQlnbG9idXNfbGliY191bmxvY2soKTsKKy0JaWYocmMgIT0gMSkKKy0JeworLQkgICAgcmMgPSBH TE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9IVFRQX1VORlJBTUVfRkFJTEVEOworLQkgICAgKnBh eWxvYWRfbGVuZ3RoID0gMDsKKy0JfQorLQllbHNlCistCXsKKy0JICAgICpwYXlsb2FkX2xlbmd0 aCA9IHRtcDsKKy0JICAgIHJjID0gR0xPQlVTX1NVQ0NFU1M7CistCX0KKysgICAgICAgIGdsb2J1 c19saWJjX2xvY2soKTsKKysgICAgICAgIHJjID0gc3NjYW5mKCAoY2hhciAqKWJ1ZiArIG9mZnNl dCwKKysgICAgICAgICAgICAgICAgICAgICBHTE9CVVNfR1JBTV9IVFRQX0NPTlRFTlRfVFlQRV9M SU5FCisrICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0dSQU1fSFRUUF9DT05URU5UX0xFTkdU SF9MSU5FLAorKyAgICAgICAgICAgICAgICAgICAgICZ0bXApOworKyAgICAgICAgZ2xvYnVzX2xp YmNfdW5sb2NrKCk7CisrICAgICAgICBpZihyYyAhPSAxKQorKyAgICAgICAgeworKyAgICAgICAg ICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfSFRUUF9VTkZSQU1FX0ZBSUxFRDsK KysgICAgICAgICAgICAqcGF5bG9hZF9sZW5ndGggPSAwOworKyAgICAgICAgfQorKyAgICAgICAg ZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgICpwYXlsb2FkX2xlbmd0aCA9IHRtcDsKKysg ICAgICAgICAgICByYyA9IEdMT0JVU19TVUNDRVNTOworKyAgICAgICAgfQorICAgICB9CisgICAg IGVsc2UgaWYoY29kZT09NDAwKSAgLyogSk0gZmFpbGVkIHRvIGZyYW1lIHJlcGx5ICovCisgICAg IHsKKyAgICAgICAgIGdsb2J1c19ncmFtX3Byb3RvY29sX2Vycm9yXzEwX2hhY2tfcmVwbGFjZV9t ZXNzYWdlKCJqb2IgbWFuYWdlciBmYWlsZWQgdG8gZnJhbWUgcmVwbHkiKTsKKy0gCistCXJjID0g R0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfUFJPVE9DT0xfRkFJTEVEOworKworKyAgICAgICAg cmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9QUk9UT0NPTF9GQUlMRUQ7CisgICAgIH0K KyAgICAgZWxzZSBpZihjb2RlPT00MDMpCisgICAgIHsKKy0JcmMgPSBHTE9CVVNfR1JBTV9QUk9U T0NPTF9FUlJPUl9BVVRIT1JJWkFUSU9OOworKyAgICAgICAgcmMgPSBHTE9CVVNfR1JBTV9QUk9U T0NPTF9FUlJPUl9BVVRIT1JJWkFUSU9OOworICAgICB9CisgICAgIGVsc2UgaWYoY29kZT09NDA0 KQorICAgICB7CistCXJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfU0VSVklDRV9OT1Rf Rk9VTkQ7CisrICAgICAgICByYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX1NFUlZJQ0Vf Tk9UX0ZPVU5EOworICAgICB9CisgICAgIGVsc2UgaWYoY29kZT09NTAwKQorICAgICB7CistCXJj ID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfR0FURUtFRVBFUl9NSVNDT05GSUdVUkVEOwor KyAgICAgICAgcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9HQVRFS0VFUEVSX01JU0NP TkZJR1VSRUQ7CisgICAgIH0KKyAgICAgZWxzZQorICAgICB7CistCXJjID0gR0xPQlVTX0dSQU1f UFJPVE9DT0xfRVJST1JfSFRUUF9VTkZSQU1FX0ZBSUxFRDsKKysgICAgICAgIHJjID0gR0xPQlVT X0dSQU1fUFJPVE9DT0xfRVJST1JfSFRUUF9VTkZSQU1FX0ZBSUxFRDsKKyAgICAgfQorIAorICAg ICBnbG9idXNfZnJlZShyZWFzb24pOworIAorLSAgICByZXR1cm4gcmM7IAorKyAgICByZXR1cm4g cmM7CisgfQorIC8qIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcGFyc2VfcmVwbHlfaGVhZGVyKCkg Ki8KKyAKKyBzdGF0aWMKKyBpbnQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3JlcGx5KAorLSAg ICBnbG9idXNfZ3JhbV9wcm90b2NvbF9oYW5kbGVfdCAJaGFuZGxlLAorLSAgICBpbnQJCQkJCWNv ZGUsCistICAgIGdsb2J1c19ieXRlX3QgKgkJCW1lc3NhZ2UsCistICAgIGdsb2J1c19zaXplX3QJ CQltZXNzYWdlX3NpemUsCistICAgIGdzc19PSURfc2V0CQkJCXJlc3RyaWN0aW9uX29pZHMsCist ICAgIGdzc19idWZmZXJfc2V0X3QJCQlyZXN0cmljdGlvbl9idWZmZXJzLAorLSAgICBPTV91aW50 MzIJCQkJcmVxX2ZsYWdzLAorLSAgICBPTV91aW50MzIJCQkJdGltZV9yZXEsCisrICAgIGdsb2J1 c19ncmFtX3Byb3RvY29sX2hhbmRsZV90ICAgICAgIGhhbmRsZSwKKysgICAgaW50ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29kZSwKKysgICAgZ2xvYnVzX2J5dGVfdCAqICAgICAg ICAgICAgICAgICAgICAgbWVzc2FnZSwKKysgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAgICAg ICAgICAgICAgbWVzc2FnZV9zaXplLAorKyAgICBnc3NfT0lEX3NldCAgICAgICAgICAgICAgICAg ICAgICAgICByZXN0cmljdGlvbl9vaWRzLAorKyAgICBnc3NfYnVmZmVyX3NldF90ICAgICAgICAg ICAgICAgICAgICByZXN0cmljdGlvbl9idWZmZXJzLAorKyAgICBPTV91aW50MzIgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXFfZmxhZ3MsCisrICAgIE9NX3VpbnQzMiAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpbWVfcmVxLAorICAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9kZWxlZ2F0 aW9uX2NhbGxiYWNrX3QKKy0gICAgCQkJCQljYWxsYmFjaywKKy0gICAgdm9pZCAqCQkJCWFyZykK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2ssCisrICAg IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZykKKyB7CisgICAgIGdsb2J1 c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl90ICoKKy0gICAgCQkJCQljb25uZWN0aW9uOwor LSAgICBnbG9idXNfbGlzdF90ICoJCQlsaXN0OworLSAgICBpbnQJCQkJCXJjOworLSAgICBnbG9i dXNfcmVzdWx0X3QJCQlyZXN1bHQ7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbm5lY3Rpb247CisrICAgIGdsb2J1c19saXN0X3QgKiAgICAgICAgICAgICAgICAg ICAgIGxpc3Q7CisrICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjOwor KyAgICBnbG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQ7CisgCisgICAg IC8qIGxvb2t1cCB1cCBjb25uZWN0aW9uIHVzaW5nIGhhbmRsZSBhcyBrZXkgKi8KKyAgICAgZ2xv YnVzX211dGV4X2xvY2soJmdsb2J1c19pX2dyYW1fcHJvdG9jb2xfbXV0ZXgpOworQEAgLTIyNTUs MzQgKzIyNTUsMzQgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZXBseSgKKyAgICAgd2hpbGUo bGlzdCAhPSBOVUxMKQorICAgICB7CisgICAgICAgICBjb25uZWN0aW9uID0gZ2xvYnVzX2xpc3Rf Zmlyc3QobGlzdCk7CistCWlmKGNvbm5lY3Rpb24tPmhhbmRsZSA9PSBoYW5kbGUpCistCXsKKy0J ICAgIGJyZWFrOworLQl9CistCWxpc3QgPSBnbG9idXNfbGlzdF9yZXN0KGxpc3QpOworKyAgICAg ICAgaWYoY29ubmVjdGlvbi0+aGFuZGxlID09IGhhbmRsZSkKKysgICAgICAgIHsKKysgICAgICAg ICAgICBicmVhazsKKysgICAgICAgIH0KKysgICAgICAgIGxpc3QgPSBnbG9idXNfbGlzdF9yZXN0 KGxpc3QpOworICAgICB9CisgCisgICAgIGlmKGxpc3QgPT0gTlVMTCkKKyAgICAgeworLQkvKiBO byBtYXRjaCAqLworKyAgICAgICAgLyogTm8gbWF0Y2ggKi8KKyAgICAgICAgIHJjID0gR0xPQlVT X0dSQU1fUFJPVE9DT0xfRVJST1JfSU5WQUxJRF9SRVFVRVNUOworIAorLQlnb3RvIGVycm9yX2V4 aXQ7CisrICAgICAgICBnb3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAgICAgaWYoY29ubmVjdGlv bi0+cmVhZF90eXBlICE9IEdMT0JVU19HUkFNX1BST1RPQ09MX1JFUVVFU1QgfHwKKyAgICAgICAg Y29ubmVjdGlvbi0+cmVwbHlidWYgIT0gTlVMTCkKKyAgICAgeworICAgICAgICAgcmMgPSBHTE9C VVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9JTlZBTElEX1JFUVVFU1Q7CisgCistCWdvdG8gZXJyb3Jf ZXhpdDsKKysgICAgICAgIGdvdG8gZXJyb3JfZXhpdDsKKyAgICAgfQorIAorICAgICAvKiBmcmFt ZSByZXBseSAqLworICAgICByYyA9IGdsb2J1c19ncmFtX3Byb3RvY29sX2ZyYW1lX3JlcGx5KGNv ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwK Ky0JCQkJCSAgbWVzc2FnZV9zaXplLAorLQkJCQkJICAmY29ubmVjdGlvbi0+cmVwbHlidWYsCist CQkJCQkgICZjb25uZWN0aW9uLT5yZXBseWJ1ZnNpemUpOworKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Vfc2l6ZSwKKysgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmY29ubmVjdGlvbi0+cmVwbHlidWYsCisrICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmNvbm5lY3Rpb24tPnJlcGx5YnVmc2l6 ZSk7CisgICAgIGlmKHJjICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CisgICAgICAgICBnb3Rv IGVycm9yX2V4aXQ7CitAQCAtMjI5MCw3ICsyMjkwLDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2Nv bF9yZXBseSgKKyAKKyAgICAgaWYoY2FsbGJhY2spCisgICAgIHsKKy0JY29ubmVjdGlvbi0+a2Vl cF9vcGVuID0gR0xPQlVTX1RSVUU7CisrICAgICAgICBjb25uZWN0aW9uLT5rZWVwX29wZW4gPSBH TE9CVVNfVFJVRTsKKyAgICAgfQorICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX2NhbGxiYWNr ID0gY2FsbGJhY2s7CisgICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fYXJnID0gYXJnOworQEAg LTIzMDIsMTcgKzIzMDIsMTcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZXBseSgKKyAgICAg Y29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9taW5vcl9zdGF0dXMgPSAwOworIAorICAgICByZXN1bHQg PSBnbG9idXNfaW9fcmVnaXN0ZXJfd3JpdGUoCistCSAgICAgICAgIGNvbm5lY3Rpb24tPmlvX2hh bmRsZSwKKy0JCSBjb25uZWN0aW9uLT5yZXBseWJ1ZiwKKy0JCSBjb25uZWN0aW9uLT5yZXBseWJ1 ZnNpemUsCistCQkgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF93cml0ZV9yZXBseV9jYWxsYmFjaywK Ky0JCSBjb25uZWN0aW9uKTsKKysgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmlvX2hhbmRs ZSwKKysgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorKyAgICAgICAgICAg ICAgICAgY29ubmVjdGlvbi0+cmVwbHlidWZzaXplLAorKyAgICAgICAgICAgICAgICAgZ2xvYnVz X2xfZ3JhbV9wcm90b2NvbF93cml0ZV9yZXBseV9jYWxsYmFjaywKKysgICAgICAgICAgICAgICAg IGNvbm5lY3Rpb24pOworIAorICAgICBpZihyZXN1bHQgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAg IHsKKyAgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfTk9fUkVTT1VSQ0VT OworIAorLQlnb3RvIGZyZWVfcmVwbHlfZXhpdDsKKysgICAgICAgIGdvdG8gZnJlZV9yZXBseV9l eGl0OworICAgICB9CisgCisgICAgIGdsb2J1c19tdXRleF91bmxvY2soJmdsb2J1c19pX2dyYW1f cHJvdG9jb2xfbXV0ZXgpOworQEAgLTIzMzIsMzIgKzIzMzIsMzIgQEAgZ2xvYnVzX2xfZ3JhbV9w cm90b2NvbF9yZXBseSgKKyBzdGF0aWMKKyBpbnQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3Bv c3QoCistICAgIGNvbnN0IGNoYXIgKgkJCXVybCwKKy0gICAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xf aGFuZGxlX3QgKgloYW5kbGUsCistICAgIGdsb2J1c19pb19hdHRyX3QgKgkJCWF0dHIsCistICAg IGdsb2J1c19ieXRlX3QgKgkJCW1lc3NhZ2UsCistICAgIGdsb2J1c19zaXplX3QJCQltZXNzYWdl X3NpemUsCistICAgIGdsb2J1c19ib29sX3QJCQlrZWVwX29wZW4sCistICAgIGdzc19jcmVkX2lk X3QJCQljcmVkX2hhbmRsZSwKKy0gICAgZ3NzX09JRF9zZXQJCQkJcmVzdHJpY3Rpb25fb2lkcywK Ky0gICAgZ3NzX2J1ZmZlcl9zZXRfdAkJCXJlc3RyaWN0aW9uX2J1ZmZlcnMsCistICAgIE9NX3Vp bnQzMgkJCQlyZXFfZmxhZ3MsCistICAgIE9NX3VpbnQzMgkJCQl0aW1lX3JlcSwKKy0gICAgZ2xv YnVzX2dyYW1fcHJvdG9jb2xfY2FsbGJhY2tfdAljYWxsYmFjaywKKy0gICAgdm9pZCAqCQkJCWNh bGxiYWNrX2FyZykKKysgICAgY29uc3QgY2hhciAqICAgICAgICAgICAgICAgICAgICAgICAgdXJs LAorKyAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9oYW5kbGVfdCAqICAgICBoYW5kbGUsCisrICAg IGdsb2J1c19pb19hdHRyX3QgKiAgICAgICAgICAgICAgICAgIGF0dHIsCisrICAgIGdsb2J1c19i eXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsCisrICAgIGdsb2J1c19zaXplX3Qg ICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Vfc2l6ZSwKKysgICAgZ2xvYnVzX2Jvb2xfdCAg ICAgICAgICAgICAgICAgICAgICAga2VlcF9vcGVuLAorKyAgICBnc3NfY3JlZF9pZF90ICAgICAg ICAgICAgICAgICAgICAgICBjcmVkX2hhbmRsZSwKKysgICAgZ3NzX09JRF9zZXQgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25fb2lkcywKKysgICAgZ3NzX2J1ZmZlcl9zZXRfdCAg ICAgICAgICAgICAgICAgICAgcmVzdHJpY3Rpb25fYnVmZmVycywKKysgICAgT01fdWludDMyICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVxX2ZsYWdzLAorKyAgICBPTV91aW50MzIgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aW1lX3JlcSwKKysgICAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xf Y2FsbGJhY2tfdCAgICAgY2FsbGJhY2ssCisrICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNhbGxiYWNrX2FyZykKKyB7CistICAgIGludAkJCQkJcmM7CisrICAgIGludCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjOworICAgICBnbG9idXNfaV9ncmFtX3By b3RvY29sX2Nvbm5lY3Rpb25fdCAqCistICAgIAkJCQkJY29ubmVjdGlvbjsKKy0gICAgZ2xvYnVz X2J5dGVfdCAqCQkJZnJhbWVkOworLSAgICBnbG9idXNfc2l6ZV90CQkJZnJhbWVkc2l6ZTsKKy0g ICAgZ2xvYnVzX3Jlc3VsdF90CQkJcmVzOworLSAgICBnbG9idXNfdXJsX3QJCQlwYXJzZWRfdXJs OworLSAgICBnbG9idXNfaW9fYXR0cl90IAkJCWxvY2FsX2F0dHI7CistICAgIGdsb2J1c19saXN0 X3QgKgkJCW5vZGU7CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bm5lY3Rpb247CisrICAgIGdsb2J1c19ieXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIGZyYW1l ZDsKKysgICAgZ2xvYnVzX3NpemVfdCAgICAgICAgICAgICAgICAgICAgICAgZnJhbWVkc2l6ZTsK KysgICAgZ2xvYnVzX3Jlc3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzOworKyAgICBnbG9i dXNfdXJsX3QgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRfdXJsOworKyAgICBnbG9idXNf aW9fYXR0cl90ICAgICAgICAgICAgICAgICAgICBsb2NhbF9hdHRyOworKyAgICBnbG9idXNfbGlz dF90ICogICAgICAgICAgICAgICAgICAgICBub2RlOworICAgICBjaGFyICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsb2NhbF91cmwgPSBOVUxMOworICAgICBjaGFyICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdWJqZWN0ID0gTlVMTDsKKy0gICAgCisrCisgICAgIHJjID0g Z2xvYnVzX3VybF9wYXJzZSh1cmwsICZwYXJzZWRfdXJsKTsKKyAKKyAgICAgaWYocmMgIT0gR0xP QlVTX1NVQ0NFU1MpCitAQCAtMjM4MywyMyArMjM4MywyMyBAQCBnbG9idXNfbF9ncmFtX3Byb3Rv Y29sX3Bvc3QoCisgICAgIH0KKyAKKyAgICAgcmMgPSBnbG9idXNfZ3JhbV9wcm90b2NvbF9mcmFt ZV9yZXF1ZXN0KGxvY2FsX3VybCA/IGxvY2FsX3VybCA6IHVybCwKKy0JCQkJCSAgICBtZXNzYWdl LAorLQkJCQkJICAgIG1lc3NhZ2Vfc2l6ZSwKKy0JCQkJCSAgICAmZnJhbWVkLAorLQkJCQkJICAg ICZmcmFtZWRzaXplKTsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1lc3NhZ2UsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtZXNzYWdlX3NpemUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmZnJhbWVkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmZyYW1lZHNpemUpOworICAgICBpZihyYyAhPSBHTE9CVVNfU1VDQ0VTUykKKyAgICAgewor ICAgICAgICAgZ290byBlcnJvcl9leGl0OworICAgICB9CistCQkJCQkgICAgCisrCisgICAgIGNv bm5lY3Rpb24gPSBnbG9idXNfbGliY19jYWxsb2MoCisgICAgICAgICAgICAgICAgICAgICAgMSwK Ky0JCSAgICAgc2l6ZW9mKGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl90KSk7Cist ICAgIAorKyAgICAgICAgICAgICAgICAgICAgIHNpemVvZihnbG9idXNfaV9ncmFtX3Byb3RvY29s X2Nvbm5lY3Rpb25fdCkpOworKworICAgICBpZihjb25uZWN0aW9uID09IE5VTEwpCisgICAgIHsK Ky0JcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9NQUxMT0NfRkFJTEVEOworLQlnb3Rv IGZyZWVfZnJhbWVkX2V4aXQ7CisrICAgICAgICByYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VS Uk9SX01BTExPQ19GQUlMRUQ7CisrICAgICAgICBnb3RvIGZyZWVfZnJhbWVkX2V4aXQ7CisgICAg IH0KKyAgICAgY29ubmVjdGlvbi0+Y2FsbGJhY2sgPSBjYWxsYmFjazsKKyAgICAgY29ubmVjdGlv bi0+Y2FsbGJhY2tfYXJnID0gY2FsbGJhY2tfYXJnOworQEAgLTI0MDgsNyArMjQwOCw3IEBAIGds b2J1c19sX2dyYW1fcHJvdG9jb2xfcG9zdCgKKyAgICAgY29ubmVjdGlvbi0+YWNjZXB0aW5nID0g R0xPQlVTX1RSVUU7CisgICAgIGlmKGtlZXBfb3BlbikKKyAgICAgeworLQljb25uZWN0aW9uLT5r ZWVwX29wZW4gPSBrZWVwX29wZW47CisrICAgICAgICBjb25uZWN0aW9uLT5rZWVwX29wZW4gPSBr ZWVwX29wZW47CisgICAgIH0KKyAgICAgY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9tYWpvcl9zdGF0 dXMgPSBHU1NfU19DT05USU5VRV9ORUVERUQ7CisgICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25f bWlub3Jfc3RhdHVzID0gMDsKK0BAIC0yNDIzLDI3ICsyNDIzLDI3IEBAIGdsb2J1c19sX2dyYW1f cHJvdG9jb2xfcG9zdCgKKyAgICAgaWYoZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9zaHV0ZG93bl9j YWxsZWQpCisgICAgIHsKKyAgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1Jf SU5WQUxJRF9SRVFVRVNUOworLQkKKy0JZ290byBmcmVlX2Nvbm5lY3Rpb25fZXhpdDsKKysKKysg ICAgICAgIGdvdG8gZnJlZV9jb25uZWN0aW9uX2V4aXQ7CisgICAgIH0KKyAgICAgY29ubmVjdGlv bi0+aGFuZGxlID0gKytnbG9idXNfaV9ncmFtX3Byb3RvY29sX2hhbmRsZTsKKyAgICAgaWYoaGFu ZGxlKQorICAgICB7CistCSpoYW5kbGUgPSBjb25uZWN0aW9uLT5oYW5kbGU7CisrICAgICAgICAq aGFuZGxlID0gY29ubmVjdGlvbi0+aGFuZGxlOworICAgICB9CisgICAgIGNvbm5lY3Rpb24tPmlv X2hhbmRsZSA9IGdsb2J1c19saWJjX21hbGxvYyhzaXplb2YoZ2xvYnVzX2lvX2hhbmRsZV90KSk7 CisgICAgIGlmKGNvbm5lY3Rpb24tPmlvX2hhbmRsZSA9PSBOVUxMKQorICAgICB7CistCXJjID0g R0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfTUFMTE9DX0ZBSUxFRDsKKy0JZ290byBmcmVlX2Nv bm5lY3Rpb25fZXhpdDsKKysgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1Jf TUFMTE9DX0ZBSUxFRDsKKysgICAgICAgIGdvdG8gZnJlZV9jb25uZWN0aW9uX2V4aXQ7CisgICAg IH0KKyAgICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9udW1fY29ubmVjdHMrKzsKKyAgICAgZ2xv YnVzX2xpc3RfaW5zZXJ0KCZnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25zLAorLQkJ ICAgICAgIGNvbm5lY3Rpb24pOworKyAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7 CisgCisgICAgIGlmKCFhdHRyICYmIHN1YmplY3QpCistICAgIHsgICAKKy0JZ2xvYnVzX2xfZ3Jh bV9wcm90b2NvbF9zZXR1cF9jb25uZWN0X2F0dHIoJmxvY2FsX2F0dHIsIHN1YmplY3QpOworKyAg ICB7CisrICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3NldHVwX2Nvbm5lY3RfYXR0cigm bG9jYWxfYXR0ciwgc3ViamVjdCk7CisgCisgICAgICAgICByZXMgPSBnbG9idXNfaW9fdGNwX3Jl Z2lzdGVyX2Nvbm5lY3QoCisgICAgICAgICAgICAgcGFyc2VkX3VybC5ob3N0LAorQEAgLTI0NzAs MjEgKzI0NzAsMjEgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9wb3N0KAorICAgICB7CisgICAg ICAgICByYyA9IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX0NPTk5FQ1RJT05fRkFJTEVEOwor IAorLQlnb3RvIHJlbW92ZV9jb25uZWN0aW9uX2V4aXQ7CisrICAgICAgICBnb3RvIHJlbW92ZV9j b25uZWN0aW9uX2V4aXQ7CisgICAgIH0KKy0gICAgCisrCisgICAgIGdsb2J1c19tdXRleF91bmxv Y2soJmdsb2J1c19pX2dyYW1fcHJvdG9jb2xfbXV0ZXgpOworIAorICAgICBnbG9idXNfdXJsX2Rl c3Ryb3koJnBhcnNlZF91cmwpOworLSAgICAKKysKKyAgICAgcmV0dXJuIEdMT0JVU19TVUNDRVNT OworLSAgICAKKysKKyAgcmVtb3ZlX2Nvbm5lY3Rpb25fZXhpdDoKKyAgICAgZ2xvYnVzX2lfZ3Jh bV9wcm90b2NvbF9udW1fY29ubmVjdHMtLTsKKyAgICAgbm9kZSA9IGdsb2J1c19saXN0X3NlYXJj aChnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25zLCBjb25uZWN0aW9uKTsKKyAgICAg aWYobm9kZSkKKyAgICAgeworLQlnbG9idXNfbGlzdF9yZW1vdmUoJmdsb2J1c19pX2dyYW1fcHJv dG9jb2xfY29ubmVjdGlvbnMsIG5vZGUpOworKyAgICAgICAgZ2xvYnVzX2xpc3RfcmVtb3ZlKCZn bG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25zLCBub2RlKTsKKyAgICAgfQorICAgICBn bG9idXNfbGliY19mcmVlKGNvbm5lY3Rpb24tPmlvX2hhbmRsZSk7CisgIGZyZWVfY29ubmVjdGlv bl9leGl0OgorQEAgLTI1MTIsNDcgKzI1MTIsNDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9w b3N0KAorIHN0YXRpYworIHZvaWQKKyBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25f cmVhZF9jYWxsYmFjaygKKy0gICAgdm9pZCAqCQkJCWNhbGxiYWNrX2FyZywKKy0gICAgZ2xvYnVz X2lvX2hhbmRsZV90ICoJCWhhbmRsZSwKKy0gICAgZ2xvYnVzX3Jlc3VsdF90CQkJcmVzdWx0LAor LSAgICBnbG9idXNfYnl0ZV90ICoJCQlidWYsCistICAgIGdsb2J1c19zaXplX3QJCQluYnl0ZXMp CisrICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrX2FyZywK KysgICAgZ2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICAgICAgaGFuZGxlLAorKyAgICBn bG9idXNfcmVzdWx0X3QgICAgICAgICAgICAgICAgICAgICByZXN1bHQsCisrICAgIGdsb2J1c19i eXRlX3QgKiAgICAgICAgICAgICAgICAgICAgIGJ1ZiwKKysgICAgZ2xvYnVzX3NpemVfdCAgICAg ICAgICAgICAgICAgICAgICAgbmJ5dGVzKQorIHsKKy0gICAgZ3NzX2J1ZmZlcl9kZXNjCQkJaW5w dXRfdG9rZW47CisrICAgIGdzc19idWZmZXJfZGVzYyAgICAgICAgICAgICAgICAgICAgIGlucHV0 X3Rva2VuOworICAgICBnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fdCAqCistCQkJ CQljb25uZWN0aW9uOworKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25uZWN0aW9uOworIAorICAgICBjb25uZWN0aW9uID0gY2FsbGJhY2tfYXJnOworLSAgICAKKysK KyAgICAgaWYoY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoID09IDAgJiYKKyAgICAgICAgbmJ5dGVz ID49IDQpCisgICAgIHsKKy0JY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoICA9IGJ1ZlswXSA8PCAy NDsKKy0JY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoIHw9IGJ1ZlsxXSA8PCAxNjsKKy0JY29ubmVj dGlvbi0+dG9rZW5fbGVuZ3RoIHw9IGJ1ZlsyXSA8PCAgODsKKy0JY29ubmVjdGlvbi0+dG9rZW5f bGVuZ3RoIHw9IGJ1ZlszXSAgICAgIDsKKy0KKy0JaWYoY29ubmVjdGlvbi0+cmVwbHlidWZzaXpl IDwgY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoKQorLQl7CistCSAgICBnbG9idXNfbGliY19mcmVl KGNvbm5lY3Rpb24tPnJlcGx5YnVmKTsKKy0JICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmID0KKy0J CWdsb2J1c19saWJjX21hbGxvYyhjb25uZWN0aW9uLT50b2tlbl9sZW5ndGgpOworLQkgICAgY29u bmVjdGlvbi0+cmVwbHlidWZzaXplID0gY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoOworLQl9Cist CistCXJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl9yZWFkKAorLQkJY29ubmVjdGlvbi0+aW9f aGFuZGxlLAorLQkJY29ubmVjdGlvbi0+cmVwbHlidWYsCistCQljb25uZWN0aW9uLT50b2tlbl9s ZW5ndGgsCistCQljb25uZWN0aW9uLT50b2tlbl9sZW5ndGgsCistCQlnbG9idXNfbF9ncmFtX3By b3RvY29sX2RlbGVnYXRpb25fcmVhZF9jYWxsYmFjaywKKy0JCWNvbm5lY3Rpb24pOworLQorLQlp ZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAgIHJldHVybjsKKy0JfQorLQlu Ynl0ZXMgPSAwOworKyAgICAgICAgY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoICA9IGJ1ZlswXSA8 PCAyNDsKKysgICAgICAgIGNvbm5lY3Rpb24tPnRva2VuX2xlbmd0aCB8PSBidWZbMV0gPDwgMTY7 CisrICAgICAgICBjb25uZWN0aW9uLT50b2tlbl9sZW5ndGggfD0gYnVmWzJdIDw8ICA4OworKyAg ICAgICAgY29ubmVjdGlvbi0+dG9rZW5fbGVuZ3RoIHw9IGJ1ZlszXSAgICAgIDsKKysKKysgICAg ICAgIGlmKGNvbm5lY3Rpb24tPnJlcGx5YnVmc2l6ZSA8IGNvbm5lY3Rpb24tPnRva2VuX2xlbmd0 aCkKKysgICAgICAgIHsKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcmVlKGNvbm5lY3Rpb24t PnJlcGx5YnVmKTsKKysgICAgICAgICAgICBjb25uZWN0aW9uLT5yZXBseWJ1ZiA9CisrICAgICAg ICAgICAgICAgIGdsb2J1c19saWJjX21hbGxvYyhjb25uZWN0aW9uLT50b2tlbl9sZW5ndGgpOwor KyAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmc2l6ZSA9IGNvbm5lY3Rpb24tPnRva2Vu X2xlbmd0aDsKKysgICAgICAgIH0KKysKKysgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pb19yZWdp c3Rlcl9yZWFkKAorKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5pb19oYW5kbGUsCisrICAg ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorKyAgICAgICAgICAgICAgICBjb25u ZWN0aW9uLT50b2tlbl9sZW5ndGgsCisrICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnRva2Vu X2xlbmd0aCwKKysgICAgICAgICAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9kZWxlZ2F0 aW9uX3JlYWRfY2FsbGJhY2ssCisrICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24pOworKworKyAg ICAgICAgaWYocmVzdWx0ID09IEdMT0JVU19TVUNDRVNTKQorKyAgICAgICAgeworKyAgICAgICAg ICAgIHJldHVybjsKKysgICAgICAgIH0KKysgICAgICAgIG5ieXRlcyA9IDA7CisgICAgIH0KKyAK KyAgICAgaW5wdXRfdG9rZW4udmFsdWUgPSBidWY7CitAQCAtMjU2MywyMiArMjU2MywyMiBAQCBn bG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fcmVhZF9jYWxsYmFjaygKKyAKKyAgICAg aWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CistCWNvbm5lY3Rpb24tPmRlbGVn YXRpb25fbWFqb3Jfc3RhdHVzID0KKy0JICAgIEdTU19TX0RFRkVDVElWRV9UT0tFTiB8IEdTU19T X0NBTExfSU5BQ0NFU1NJQkxFX1JFQUQ7CisrICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9u X21ham9yX3N0YXR1cyA9CisrICAgICAgICAgICAgR1NTX1NfREVGRUNUSVZFX1RPS0VOIHwgR1NT X1NfQ0FMTF9JTkFDQ0VTU0lCTEVfUkVBRDsKKyAgICAgfQorIAorICAgICBpZihjb25uZWN0aW9u LT5yZWFkX3R5cGUgPT0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfUkVRVUVTVCkKKyAgICAgeworLQln bG9idXNfbF9ncmFtX3Byb3RvY29sX2FjY2VwdF9kZWxlZ2F0aW9uKAorLQkJY29ubmVjdGlvbiwK Ky0JCSZpbnB1dF90b2tlbik7CisrICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2FjY2Vw dF9kZWxlZ2F0aW9uKAorKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLAorKyAgICAgICAgICAg ICAgICAmaW5wdXRfdG9rZW4pOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQlnbG9idXNf YXNzZXJ0KGNvbm5lY3Rpb24tPnJlYWRfdHlwZSA9PSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9SRVBM WSk7CistCWdsb2J1c19sX2dyYW1fcHJvdG9jb2xfaW5pdF9kZWxlZ2F0aW9uKAorLQkJY29ubmVj dGlvbiwKKy0JCSZpbnB1dF90b2tlbik7CisrICAgICAgICBnbG9idXNfYXNzZXJ0KGNvbm5lY3Rp b24tPnJlYWRfdHlwZSA9PSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9SRVBMWSk7CisrICAgICAgICBn bG9idXNfbF9ncmFtX3Byb3RvY29sX2luaXRfZGVsZWdhdGlvbigKKysgICAgICAgICAgICAgICAg Y29ubmVjdGlvbiwKKysgICAgICAgICAgICAgICAgJmlucHV0X3Rva2VuKTsKKyAgICAgfQorIH0K KyAvKiBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fcmVhZF9jYWxsYmFjaygpICov CitAQCAtMjU4NiwxNSArMjU4NiwxNSBAQCBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRp b25fcmVhZF9jYWxsYmFjaygKKyBzdGF0aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9wcm90b2Nv bF9kZWxlZ2F0aW9uX3dyaXRlX2NhbGxiYWNrKAorLSAgICB2b2lkICoJCQkJY2FsbGJhY2tfYXJn LAorLSAgICBnbG9idXNfaW9faGFuZGxlX3QgKgkJaGFuZGxlLAorLSAgICBnbG9idXNfcmVzdWx0 X3QJCQlyZXN1bHQsCistICAgIGdsb2J1c19ieXRlX3QgKgkJCWJ1ZiwKKy0gICAgZ2xvYnVzX3Np emVfdAkJCW5ieXRlcykKKysgICAgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2FsbGJhY2tfYXJnLAorKyAgICBnbG9idXNfaW9faGFuZGxlX3QgKiAgICAgICAgICAgICAgICBo YW5kbGUsCisrICAgIGdsb2J1c19yZXN1bHRfdCAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCwK KysgICAgZ2xvYnVzX2J5dGVfdCAqICAgICAgICAgICAgICAgICAgICAgYnVmLAorKyAgICBnbG9i dXNfc2l6ZV90ICAgICAgICAgICAgICAgICAgICAgICBuYnl0ZXMpCisgeworLSAgICBnc3NfYnVm ZmVyX2Rlc2MJCQlpbnB1dF90b2tlbjsKKysgICAgZ3NzX2J1ZmZlcl9kZXNjICAgICAgICAgICAg ICAgICAgICAgaW5wdXRfdG9rZW47CisgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVj dGlvbl90ICoKKy0JCQkJCWNvbm5lY3Rpb247CisrICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbm5lY3Rpb247CisgCisgICAgIGlucHV0X3Rva2VuLnZhbHVlID0gTlVM TDsKKyAgICAgaW5wdXRfdG9rZW4ubGVuZ3RoID0gMDsKK0BAIC0yNjA2LDIxICsyNjA2LDIxIEBA IGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZGVsZWdhdGlvbl93cml0ZV9jYWxsYmFjaygKKyAKKyAg ICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAgICB7CistCWNvbm5lY3Rpb24tPmRl bGVnYXRpb25fbWFqb3Jfc3RhdHVzID0KKy0JICAgIEdTU19TX0RFRkVDVElWRV9UT0tFTiB8IEdT U19TX0NBTExfSU5BQ0NFU1NJQkxFX1JFQUQ7CisrICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0 aW9uX21ham9yX3N0YXR1cyA9CisrICAgICAgICAgICAgR1NTX1NfREVGRUNUSVZFX1RPS0VOIHwg R1NTX1NfQ0FMTF9JTkFDQ0VTU0lCTEVfUkVBRDsKKyAgICAgfQorICAgICBpZihjb25uZWN0aW9u LT5yZWFkX3R5cGUgPT0gR0xPQlVTX0dSQU1fUFJPVE9DT0xfUkVRVUVTVCkKKyAgICAgeworLQln bG9idXNfbF9ncmFtX3Byb3RvY29sX2FjY2VwdF9kZWxlZ2F0aW9uKAorLQkJY29ubmVjdGlvbiwK Ky0JCSZpbnB1dF90b2tlbik7CisrICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2FjY2Vw dF9kZWxlZ2F0aW9uKAorKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLAorKyAgICAgICAgICAg ICAgICAmaW5wdXRfdG9rZW4pOworICAgICB9CisgICAgIGVsc2UKKyAgICAgeworLQlnbG9idXNf YXNzZXJ0KGNvbm5lY3Rpb24tPnJlYWRfdHlwZSA9PSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9SRVBM WSk7CistCWdsb2J1c19sX2dyYW1fcHJvdG9jb2xfaW5pdF9kZWxlZ2F0aW9uKAorLQkJY29ubmVj dGlvbiwKKy0JCSZpbnB1dF90b2tlbik7CisrICAgICAgICBnbG9idXNfYXNzZXJ0KGNvbm5lY3Rp b24tPnJlYWRfdHlwZSA9PSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9SRVBMWSk7CisrICAgICAgICBn bG9idXNfbF9ncmFtX3Byb3RvY29sX2luaXRfZGVsZWdhdGlvbigKKysgICAgICAgICAgICAgICAg Y29ubmVjdGlvbiwKKysgICAgICAgICAgICAgICAgJmlucHV0X3Rva2VuKTsKKyAgICAgfQorIH0K KyAvKiBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fd3JpdGVfY2FsbGJhY2soKSAq LworQEAgLTI2MjksMTIgKzI2MjksMTIgQEAgc3RhdGljCisgdm9pZAorIGdsb2J1c19sX2dyYW1f cHJvdG9jb2xfYWNjZXB0X2RlbGVnYXRpb24oCisgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xf Y29ubmVjdGlvbl90ICoKKy0gICAgCQkJCQljb25uZWN0aW9uLAorLSAgICBnc3NfYnVmZmVyX3QJ CQlpbnB1dF90b2tlbikKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29ubmVjdGlvbiwKKysgICAgZ3NzX2J1ZmZlcl90ICAgICAgICAgICAgICAgICAgICAgICAgaW5w dXRfdG9rZW4pCisgeworLSAgICBnbG9idXNfcmVzdWx0X3QJCQlyZXN1bHQ7CistICAgIGdzc19i dWZmZXJfZGVzYwkJCW91dHB1dF90b2tlbjsKKy0gICAgdW5zaWduZWQgY2hhciAqCQkJb3V0cHV0 X2J1ZmZlcjsKKysgICAgZ2xvYnVzX3Jlc3VsdF90ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0 OworKyAgICBnc3NfYnVmZmVyX2Rlc2MgICAgICAgICAgICAgICAgICAgICBvdXRwdXRfdG9rZW47 CisrICAgIHVuc2lnbmVkIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgIG91dHB1dF9idWZmZXI7 CisgCisgICAgIG91dHB1dF90b2tlbi52YWx1ZSA9IE5VTEw7CisgICAgIG91dHB1dF90b2tlbi5s ZW5ndGggPSAwOworQEAgLTI2NDIsOTAgKzI2NDIsOTAgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2Nv bF9hY2NlcHRfZGVsZWdhdGlvbigKKyAgICAgaWYoaW5wdXRfdG9rZW4tPmxlbmd0aCAhPSAwKQor ICAgICB7CisgICAgICAgICBnc3NfY3R4X2lkX3QgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ7 CistCSAgICAKKysKKyAgICAgICAgIGdsb2J1c19pb190Y3BfZ2V0X3NlY3VyaXR5X2NvbnRleHQo Y29ubmVjdGlvbi0+aW9faGFuZGxlLCAmY29udGV4dCk7CistCSAgICAgICAgCistCWNvbm5lY3Rp b24tPmRlbGVnYXRpb25fbWFqb3Jfc3RhdHVzID0gZ3NzX2FjY2VwdF9kZWxlZ2F0aW9uKAorLQkJ JmNvbm5lY3Rpb24tPmRlbGVnYXRpb25fbWlub3Jfc3RhdHVzLAorLQkJY29udGV4dCwKKy0JCWNv bm5lY3Rpb24tPmRlbGVnYXRpb25fcmVzdHJpY3Rpb25fb2lkcywKKy0JCWNvbm5lY3Rpb24tPmRl bGVnYXRpb25fcmVzdHJpY3Rpb25fYnVmZmVycywKKy0JCWlucHV0X3Rva2VuLAorLQkJY29ubmVj dGlvbi0+ZGVsZWdhdGlvbl9yZXFfZmxhZ3MsCistCQljb25uZWN0aW9uLT5kZWxlZ2F0aW9uX3Rp bWVfcmVxLAorLQkJTlVMTCwKKy0JCSZjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX2NyZWQsCistCQlO VUxMLAorLQkJJm91dHB1dF90b2tlbik7CistCistCistCWlmKG91dHB1dF90b2tlbi5sZW5ndGgg PiAwKQorLQl7CistCSAgICBvdXRwdXRfYnVmZmVyID0gZ2xvYnVzX2xpYmNfbWFsbG9jKG91dHB1 dF90b2tlbi5sZW5ndGgrNCk7CistCSAgICBvdXRwdXRfYnVmZmVyWzBdID0gKG91dHB1dF90b2tl bi5sZW5ndGggPj4gMjQpICYgMHhmZjsKKy0JICAgIG91dHB1dF9idWZmZXJbMV0gPSAob3V0cHV0 X3Rva2VuLmxlbmd0aCA+PiAxNikgJiAweGZmOworLQkgICAgb3V0cHV0X2J1ZmZlclsyXSA9IChv dXRwdXRfdG9rZW4ubGVuZ3RoID4+ICA4KSAmIDB4ZmY7CistCSAgICBvdXRwdXRfYnVmZmVyWzNd ID0gKG91dHB1dF90b2tlbi5sZW5ndGggICAgICApICYgMHhmZjsKKy0JICAgIG1lbWNweShvdXRw dXRfYnVmZmVyKzQsIG91dHB1dF90b2tlbi52YWx1ZSwgb3V0cHV0X3Rva2VuLmxlbmd0aCk7Cist CistCSAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfd3JpdGUoCistCQkgICAgY29ubmVj dGlvbi0+aW9faGFuZGxlLAorLQkJICAgIG91dHB1dF9idWZmZXIsCistCQkgICAgb3V0cHV0X3Rv a2VuLmxlbmd0aCs0LAorLQkJICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZGVsZWdhdGlvbl93 cml0ZV9jYWxsYmFjaywKKy0JCSAgICBjb25uZWN0aW9uKTsKKy0JICAgIGdsb2J1c19saWJjX2Zy ZWUob3V0cHV0X3Rva2VuLnZhbHVlKTsKKy0KKy0JICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNfU1VD Q0VTUykKKy0JICAgIHsKKy0JCXJldHVybjsKKy0JICAgIH0KKy0JICAgIGVsc2UKKy0JICAgIHsK Ky0JCWNvbm5lY3Rpb24tPmRlbGVnYXRpb25fbWFqb3Jfc3RhdHVzID0KKy0JCSAgICBHU1NfU19E RUZFQ1RJVkVfVE9LRU4gfCBHU1NfU19DQUxMX0lOQUNDRVNTSUJMRV9SRUFEOworLQkgICAgfQor LQl9CisrCisrICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX21ham9yX3N0YXR1cyA9IGdz c19hY2NlcHRfZGVsZWdhdGlvbigKKysgICAgICAgICAgICAgICAgJmNvbm5lY3Rpb24tPmRlbGVn YXRpb25fbWlub3Jfc3RhdHVzLAorKyAgICAgICAgICAgICAgICBjb250ZXh0LAorKyAgICAgICAg ICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX3Jlc3RyaWN0aW9uX29pZHMsCisrICAgICAg ICAgICAgICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fcmVzdHJpY3Rpb25fYnVmZmVycywKKysg ICAgICAgICAgICAgICAgaW5wdXRfdG9rZW4sCisrICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t PmRlbGVnYXRpb25fcmVxX2ZsYWdzLAorKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kZWxl Z2F0aW9uX3RpbWVfcmVxLAorKyAgICAgICAgICAgICAgICBOVUxMLAorKyAgICAgICAgICAgICAg ICAmY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9jcmVkLAorKyAgICAgICAgICAgICAgICBOVUxMLAor KyAgICAgICAgICAgICAgICAmb3V0cHV0X3Rva2VuKTsKKysKKysKKysgICAgICAgIGlmKG91dHB1 dF90b2tlbi5sZW5ndGggPiAwKQorKyAgICAgICAgeworKyAgICAgICAgICAgIG91dHB1dF9idWZm ZXIgPSBnbG9idXNfbGliY19tYWxsb2Mob3V0cHV0X3Rva2VuLmxlbmd0aCs0KTsKKysgICAgICAg ICAgICBvdXRwdXRfYnVmZmVyWzBdID0gKG91dHB1dF90b2tlbi5sZW5ndGggPj4gMjQpICYgMHhm ZjsKKysgICAgICAgICAgICBvdXRwdXRfYnVmZmVyWzFdID0gKG91dHB1dF90b2tlbi5sZW5ndGgg Pj4gMTYpICYgMHhmZjsKKysgICAgICAgICAgICBvdXRwdXRfYnVmZmVyWzJdID0gKG91dHB1dF90 b2tlbi5sZW5ndGggPj4gIDgpICYgMHhmZjsKKysgICAgICAgICAgICBvdXRwdXRfYnVmZmVyWzNd ID0gKG91dHB1dF90b2tlbi5sZW5ndGggICAgICApICYgMHhmZjsKKysgICAgICAgICAgICBtZW1j cHkob3V0cHV0X2J1ZmZlcis0LCBvdXRwdXRfdG9rZW4udmFsdWUsIG91dHB1dF90b2tlbi5sZW5n dGgpOworKworKyAgICAgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl93cml0ZSgK KysgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmlvX2hhbmRsZSwKKysgICAgICAgICAg ICAgICAgICAgIG91dHB1dF9idWZmZXIsCisrICAgICAgICAgICAgICAgICAgICBvdXRwdXRfdG9r ZW4ubGVuZ3RoKzQsCisrICAgICAgICAgICAgICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29s X2RlbGVnYXRpb25fd3JpdGVfY2FsbGJhY2ssCisrICAgICAgICAgICAgICAgICAgICBjb25uZWN0 aW9uKTsKKysgICAgICAgICAgICBnbG9idXNfbGliY19mcmVlKG91dHB1dF90b2tlbi52YWx1ZSk7 CisrCisrICAgICAgICAgICAgaWYocmVzdWx0ID09IEdMT0JVU19TVUNDRVNTKQorKyAgICAgICAg ICAgIHsKKysgICAgICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgICAgIH0KKysgICAgICAg ICAgICBlbHNlCisrICAgICAgICAgICAgeworKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5k ZWxlZ2F0aW9uX21ham9yX3N0YXR1cyA9CisrICAgICAgICAgICAgICAgICAgICBHU1NfU19ERUZF Q1RJVkVfVE9LRU4gfCBHU1NfU19DQUxMX0lOQUNDRVNTSUJMRV9SRUFEOworKyAgICAgICAgICAg IH0KKysgICAgICAgIH0KKyAgICAgfQorICAgICBpZihjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX21h am9yX3N0YXR1cyAmIEdTU19TX0NPTlRJTlVFX05FRURFRCkKKyAgICAgeworLQlyZXN1bHQgPSBn bG9idXNfaW9fcmVnaXN0ZXJfcmVhZCgKKy0JCWNvbm5lY3Rpb24tPmlvX2hhbmRsZSwKKy0JCWNv bm5lY3Rpb24tPnJlcGx5YnVmLAorLQkJNCwKKy0JCTQsCistCQlnbG9idXNfbF9ncmFtX3Byb3Rv Y29sX2RlbGVnYXRpb25fcmVhZF9jYWxsYmFjaywKKy0JCWNvbm5lY3Rpb24pOworLQlpZihyZXN1 bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAgIHJldHVybjsKKy0JfQorLQllbHNlCist CXsKKy0JICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fbWFqb3Jfc3RhdHVzID0KKy0JCUdTU19T X0RFRkVDVElWRV9UT0tFTiB8IEdTU19TX0NBTExfSU5BQ0NFU1NJQkxFX1JFQUQ7CistCX0KKysg ICAgICAgIHJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl9yZWFkKAorKyAgICAgICAgICAgICAg ICBjb25uZWN0aW9uLT5pb19oYW5kbGUsCisrICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJl cGx5YnVmLAorKyAgICAgICAgICAgICAgICA0LAorKyAgICAgICAgICAgICAgICA0LAorKyAgICAg ICAgICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fcmVhZF9jYWxsYmFj aywKKysgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7CisrICAgICAgICBpZihyZXN1bHQgPT0g R0xPQlVTX1NVQ0NFU1MpCisrICAgICAgICB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAg ICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgIGNvbm5lY3Rpb24t PmRlbGVnYXRpb25fbWFqb3Jfc3RhdHVzID0KKysgICAgICAgICAgICAgICAgR1NTX1NfREVGRUNU SVZFX1RPS0VOIHwgR1NTX1NfQ0FMTF9JTkFDQ0VTU0lCTEVfUkVBRDsKKysgICAgICAgIH0KKyAg ICAgfQorICAgICBpZihHU1NfRVJST1IoY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9tYWpvcl9zdGF0 dXMpKQorICAgICB7CistCS8qIFRPRE86IGVycm9yIDcgaGFjayAqLworKyAgICAgICAgLyogVE9E TzogZXJyb3IgNyBoYWNrICovCisgICAgIH0KKyAKKyAgICAgLyogRmluaXNoZWQgd2l0aCBkZWxl Z2F0aW9uLi4uIGNhbGxiYWNrICovCisgICAgIGlmKGNvbm5lY3Rpb24tPnJlcGx5YnVmKQorICAg ICB7CistCWdsb2J1c19saWJjX2ZyZWUoY29ubmVjdGlvbi0+cmVwbHlidWYpOworLQljb25uZWN0 aW9uLT5yZXBseWJ1Zj1OVUxMOworLQljb25uZWN0aW9uLT5yZXBseWJ1ZnNpemU9MDsKKysgICAg ICAgIGdsb2J1c19saWJjX2ZyZWUoY29ubmVjdGlvbi0+cmVwbHlidWYpOworKyAgICAgICAgY29u bmVjdGlvbi0+cmVwbHlidWY9TlVMTDsKKysgICAgICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmc2l6 ZT0wOworICAgICB9CisgICAgIGNvbm5lY3Rpb24tPmtlZXBfb3BlbiA9IEdMT0JVU19GQUxTRTsK KyAgICAgY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9jYWxsYmFjaygKKy0JICAgIGNvbm5lY3Rpb24t PmRlbGVnYXRpb25fYXJnLAorLQkgICAgY29ubmVjdGlvbi0+aGFuZGxlLAorLQkgICAgY29ubmVj dGlvbi0+ZGVsZWdhdGlvbl9jcmVkLAorLQkgICAgR1NTX0VSUk9SKGNvbm5lY3Rpb24tPmRlbGVn YXRpb25fbWFqb3Jfc3RhdHVzKSAKKy0JCT8gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfQVVU SE9SSVpBVElPTgorLQkJOiBHTE9CVVNfU1VDQ0VTUyk7CisrICAgICAgICAgICAgY29ubmVjdGlv bi0+ZGVsZWdhdGlvbl9hcmcsCisrICAgICAgICAgICAgY29ubmVjdGlvbi0+aGFuZGxlLAorKyAg ICAgICAgICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fY3JlZCwKKysgICAgICAgICAgICBHU1Nf RVJST1IoY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9tYWpvcl9zdGF0dXMpCisrICAgICAgICAgICAg ICAgID8gR0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfQVVUSE9SSVpBVElPTgorKyAgICAgICAg ICAgICAgICA6IEdMT0JVU19TVUNDRVNTKTsKKyB9CisgLyogZ2xvYnVzX2xfZ3JhbV9wcm90b2Nv bF9hY2NlcHRfZGVsZWdhdGlvbigpICovCisgCitAQCAtMjczMyw4OCArMjczMyw4OCBAQCBzdGF0 aWMKKyB2b2lkCisgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9pbml0X2RlbGVnYXRpb24oCisgICAg IGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl90ICoKKy0gICAgCQkJCQljb25uZWN0 aW9uLAorLSAgICBnc3NfYnVmZmVyX3QJCQlpbnB1dF90b2tlbikKKysgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbiwKKysgICAgZ3NzX2J1ZmZlcl90ICAg ICAgICAgICAgICAgICAgICAgICAgaW5wdXRfdG9rZW4pCisgeworLSAgICBnbG9idXNfcmVzdWx0 X3QJCQlyZXN1bHQ7CistICAgIGdzc19idWZmZXJfZGVzYwkJCW91dHB1dF90b2tlbjsKKy0gICAg dW5zaWduZWQgY2hhciAqCQkJb3V0cHV0X2J1ZmZlcjsKKysgICAgZ2xvYnVzX3Jlc3VsdF90ICAg ICAgICAgICAgICAgICAgICAgcmVzdWx0OworKyAgICBnc3NfYnVmZmVyX2Rlc2MgICAgICAgICAg ICAgICAgICAgICBvdXRwdXRfdG9rZW47CisrICAgIHVuc2lnbmVkIGNoYXIgKiAgICAgICAgICAg ICAgICAgICAgIG91dHB1dF9idWZmZXI7CisgCisgICAgIG91dHB1dF90b2tlbi52YWx1ZSA9IE5V TEw7CisgICAgIG91dHB1dF90b2tlbi5sZW5ndGggPSAwOworIAorICAgICBpZihjb25uZWN0aW9u LT5kZWxlZ2F0aW9uX21ham9yX3N0YXR1cyAmIEdTU19TX0NPTlRJTlVFX05FRURFRCkKKyAgICAg eworLQlpZigoaW5wdXRfdG9rZW4gIT0gR1NTX0NfTk9fQlVGRkVSICAmJiBpbnB1dF90b2tlbi0+ bGVuZ3RoICE9IDApIHx8CistCSAgIGlucHV0X3Rva2VuID09IEdTU19DX05PX0JVRkZFUikKKy0J eworLQkgICAgZ3NzX2N0eF9pZF90ICAgICAgICAgICAgICAgIGNvbnRleHQ7CistCSAgICAKKy0J ICAgIGdsb2J1c19pb190Y3BfZ2V0X3NlY3VyaXR5X2NvbnRleHQoCistCSAgICAgICAgY29ubmVj dGlvbi0+aW9faGFuZGxlLCAmY29udGV4dCk7CistCSAgICAgICAgCistCSAgICBjb25uZWN0aW9u LT5kZWxlZ2F0aW9uX21ham9yX3N0YXR1cyA9IGdzc19pbml0X2RlbGVnYXRpb24oCistCQkgICAg JmNvbm5lY3Rpb24tPmRlbGVnYXRpb25fbWlub3Jfc3RhdHVzLAorLQkJICAgIGNvbnRleHQsCist CQkgICAgY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9jcmVkLAorLQkJICAgIEdTU19DX05PX09JRCwK Ky0JCSAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX3Jlc3RyaWN0aW9uX29pZHMsCistCQkgICAg Y29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9yZXN0cmljdGlvbl9idWZmZXJzLAorLQkJICAgIGlucHV0 X3Rva2VuLAorLQkJICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fcmVxX2ZsYWdzLAorLQkJICAg IGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fdGltZV9yZXEsCistCQkgICAgJm91dHB1dF90b2tlbik7 CistCX0KKy0KKy0KKy0JaWYob3V0cHV0X3Rva2VuLmxlbmd0aCA+IDApCistCXsKKy0JICAgIG91 dHB1dF9idWZmZXIgPSBnbG9idXNfbGliY19tYWxsb2Mob3V0cHV0X3Rva2VuLmxlbmd0aCs0KTsK Ky0JICAgIG91dHB1dF9idWZmZXJbMF0gPSAob3V0cHV0X3Rva2VuLmxlbmd0aCA+PiAyNCkgJiAw eGZmOworLQkgICAgb3V0cHV0X2J1ZmZlclsxXSA9IChvdXRwdXRfdG9rZW4ubGVuZ3RoID4+IDE2 KSAmIDB4ZmY7CistCSAgICBvdXRwdXRfYnVmZmVyWzJdID0gKG91dHB1dF90b2tlbi5sZW5ndGgg Pj4gIDgpICYgMHhmZjsKKy0JICAgIG91dHB1dF9idWZmZXJbM10gPSAob3V0cHV0X3Rva2VuLmxl bmd0aCAgICAgICkgJiAweGZmOworLQkgICAgbWVtY3B5KG91dHB1dF9idWZmZXIrNCwgb3V0cHV0 X3Rva2VuLnZhbHVlLCBvdXRwdXRfdG9rZW4ubGVuZ3RoKTsKKy0JCQorLQkgICAgcmVzdWx0ID0g Z2xvYnVzX2lvX3JlZ2lzdGVyX3dyaXRlKAorLQkJICAgIGNvbm5lY3Rpb24tPmlvX2hhbmRsZSwK Ky0JCSAgICBvdXRwdXRfYnVmZmVyLAorLQkJICAgIG91dHB1dF90b2tlbi5sZW5ndGgrNCwKKy0J CSAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fd3JpdGVfY2FsbGJhY2ssCist CQkgICAgY29ubmVjdGlvbik7CistCSAgICBnbG9idXNfbGliY19mcmVlKG91dHB1dF90b2tlbi52 YWx1ZSk7CistCistCSAgICBpZihyZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistCSAgICB7Cist CQlyZXR1cm47CistCSAgICB9CistCSAgICBlbHNlCistCSAgICB7CistCQljb25uZWN0aW9uLT5k ZWxlZ2F0aW9uX21ham9yX3N0YXR1cyA9CistCQkgICAgR1NTX1NfREVGRUNUSVZFX1RPS0VOIHwg R1NTX1NfQ0FMTF9JTkFDQ0VTU0lCTEVfUkVBRDsKKy0JICAgIH0KKy0JfQorLQorLQlyZXN1bHQg PSBnbG9idXNfaW9fcmVnaXN0ZXJfcmVhZCgKKy0JCWNvbm5lY3Rpb24tPmlvX2hhbmRsZSwKKy0J CWNvbm5lY3Rpb24tPnJlcGx5YnVmLAorLQkJNCwKKy0JCTQsCistCQlnbG9idXNfbF9ncmFtX3By b3RvY29sX2RlbGVnYXRpb25fcmVhZF9jYWxsYmFjaywKKy0JCWNvbm5lY3Rpb24pOworLQlpZihy ZXN1bHQgPT0gR0xPQlVTX1NVQ0NFU1MpCistCXsKKy0JICAgIHJldHVybjsKKy0JfQorLQllbHNl CistCXsKKy0JICAgIGNvbm5lY3Rpb24tPmRlbGVnYXRpb25fbWFqb3Jfc3RhdHVzID0KKy0JCUdT U19TX0RFRkVDVElWRV9UT0tFTiB8IEdTU19TX0NBTExfSU5BQ0NFU1NJQkxFX1JFQUQ7CistCX0K KysgICAgICAgIGlmKChpbnB1dF90b2tlbiAhPSBHU1NfQ19OT19CVUZGRVIgICYmIGlucHV0X3Rv a2VuLT5sZW5ndGggIT0gMCkgfHwKKysgICAgICAgICAgIGlucHV0X3Rva2VuID09IEdTU19DX05P X0JVRkZFUikKKysgICAgICAgIHsKKysgICAgICAgICAgICBnc3NfY3R4X2lkX3QgICAgICAgICAg ICAgICAgY29udGV4dDsKKysKKysgICAgICAgICAgICBnbG9idXNfaW9fdGNwX2dldF9zZWN1cml0 eV9jb250ZXh0KAorKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5pb19oYW5kbGUsICZjb250 ZXh0KTsKKysKKysgICAgICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX21ham9yX3N0YXR1 cyA9IGdzc19pbml0X2RlbGVnYXRpb24oCisrICAgICAgICAgICAgICAgICAgICAmY29ubmVjdGlv bi0+ZGVsZWdhdGlvbl9taW5vcl9zdGF0dXMsCisrICAgICAgICAgICAgICAgICAgICBjb250ZXh0 LAorKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9jcmVkLAorKyAg ICAgICAgICAgICAgICAgICAgR1NTX0NfTk9fT0lELAorKyAgICAgICAgICAgICAgICAgICAgY29u bmVjdGlvbi0+ZGVsZWdhdGlvbl9yZXN0cmljdGlvbl9vaWRzLAorKyAgICAgICAgICAgICAgICAg ICAgY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9yZXN0cmljdGlvbl9idWZmZXJzLAorKyAgICAgICAg ICAgICAgICAgICAgaW5wdXRfdG9rZW4sCisrICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9u LT5kZWxlZ2F0aW9uX3JlcV9mbGFncywKKysgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t PmRlbGVnYXRpb25fdGltZV9yZXEsCisrICAgICAgICAgICAgICAgICAgICAmb3V0cHV0X3Rva2Vu KTsKKysgICAgICAgIH0KKysKKysKKysgICAgICAgIGlmKG91dHB1dF90b2tlbi5sZW5ndGggPiAw KQorKyAgICAgICAgeworKyAgICAgICAgICAgIG91dHB1dF9idWZmZXIgPSBnbG9idXNfbGliY19t YWxsb2Mob3V0cHV0X3Rva2VuLmxlbmd0aCs0KTsKKysgICAgICAgICAgICBvdXRwdXRfYnVmZmVy WzBdID0gKG91dHB1dF90b2tlbi5sZW5ndGggPj4gMjQpICYgMHhmZjsKKysgICAgICAgICAgICBv dXRwdXRfYnVmZmVyWzFdID0gKG91dHB1dF90b2tlbi5sZW5ndGggPj4gMTYpICYgMHhmZjsKKysg ICAgICAgICAgICBvdXRwdXRfYnVmZmVyWzJdID0gKG91dHB1dF90b2tlbi5sZW5ndGggPj4gIDgp ICYgMHhmZjsKKysgICAgICAgICAgICBvdXRwdXRfYnVmZmVyWzNdID0gKG91dHB1dF90b2tlbi5s ZW5ndGggICAgICApICYgMHhmZjsKKysgICAgICAgICAgICBtZW1jcHkob3V0cHV0X2J1ZmZlcis0 LCBvdXRwdXRfdG9rZW4udmFsdWUsIG91dHB1dF90b2tlbi5sZW5ndGgpOworKworKyAgICAgICAg ICAgIHJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl93cml0ZSgKKysgICAgICAgICAgICAgICAg ICAgIGNvbm5lY3Rpb24tPmlvX2hhbmRsZSwKKysgICAgICAgICAgICAgICAgICAgIG91dHB1dF9i dWZmZXIsCisrICAgICAgICAgICAgICAgICAgICBvdXRwdXRfdG9rZW4ubGVuZ3RoKzQsCisrICAg ICAgICAgICAgICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fd3JpdGVf Y2FsbGJhY2ssCisrICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uKTsKKysgICAgICAgICAg ICBnbG9idXNfbGliY19mcmVlKG91dHB1dF90b2tlbi52YWx1ZSk7CisrCisrICAgICAgICAgICAg aWYocmVzdWx0ID09IEdMT0JVU19TVUNDRVNTKQorKyAgICAgICAgICAgIHsKKysgICAgICAgICAg ICAgICAgcmV0dXJuOworKyAgICAgICAgICAgIH0KKysgICAgICAgICAgICBlbHNlCisrICAgICAg ICAgICAgeworKyAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kZWxlZ2F0aW9uX21ham9yX3N0 YXR1cyA9CisrICAgICAgICAgICAgICAgICAgICBHU1NfU19ERUZFQ1RJVkVfVE9LRU4gfCBHU1Nf U19DQUxMX0lOQUNDRVNTSUJMRV9SRUFEOworKyAgICAgICAgICAgIH0KKysgICAgICAgIH0KKysK KysgICAgICAgIHJlc3VsdCA9IGdsb2J1c19pb19yZWdpc3Rlcl9yZWFkKAorKyAgICAgICAgICAg ICAgICBjb25uZWN0aW9uLT5pb19oYW5kbGUsCisrICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t PnJlcGx5YnVmLAorKyAgICAgICAgICAgICAgICA0LAorKyAgICAgICAgICAgICAgICA0LAorKyAg ICAgICAgICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2RlbGVnYXRpb25fcmVhZF9jYWxs YmFjaywKKysgICAgICAgICAgICAgICAgY29ubmVjdGlvbik7CisrICAgICAgICBpZihyZXN1bHQg PT0gR0xPQlVTX1NVQ0NFU1MpCisrICAgICAgICB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAg ICAgICAgfQorKyAgICAgICAgZWxzZQorKyAgICAgICAgeworKyAgICAgICAgICAgIGNvbm5lY3Rp b24tPmRlbGVnYXRpb25fbWFqb3Jfc3RhdHVzID0KKysgICAgICAgICAgICAgICAgR1NTX1NfREVG RUNUSVZFX1RPS0VOIHwgR1NTX1NfQ0FMTF9JTkFDQ0VTU0lCTEVfUkVBRDsKKysgICAgICAgIH0K KyAgICAgfQorICAgICBpZihHU1NfRVJST1IoY29ubmVjdGlvbi0+ZGVsZWdhdGlvbl9tYWpvcl9z dGF0dXMpKQorICAgICB7CistCS8qIFRPRE86IGVycm9yIDcgaGFjayAqLworKyAgICAgICAgLyog VE9ETzogZXJyb3IgNyBoYWNrICovCisgICAgIH0KKyAKKyAgICAgLyogRmluaXNoZWQgd2l0aCBk ZWxlZ2F0aW9uLi4uIHJlZ2lzdGVyIHJlYWQgb2YgZGVsZWdhdGlvbiBzdGF0dXMgKi8KK0BAIC0y ODIyLDUzICsyODIyLDUzIEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfaW5pdF9kZWxlZ2F0aW9u KAorIAorICAgICBpZihjb25uZWN0aW9uLT5yZXBseWJ1ZnNpemUgPCBHTE9CVVNfR1JBTV9QUk9U T0NPTF9NQVhfTVNHX1NJWkUpCisgICAgIHsKKy0JZ2xvYnVzX2xpYmNfZnJlZShjb25uZWN0aW9u LT5yZXBseWJ1Zik7CistCWNvbm5lY3Rpb24tPnJlcGx5YnVmID0KKy0JICAgIGdsb2J1c19saWJj X21hbGxvYyhHTE9CVVNfR1JBTV9QUk9UT0NPTF9NQVhfTVNHX1NJWkUpOworLQljb25uZWN0aW9u LT5yZXBseWJ1ZnNpemUgPSBHTE9CVVNfR1JBTV9QUk9UT0NPTF9NQVhfTVNHX1NJWkU7CisrICAg ICAgICBnbG9idXNfbGliY19mcmVlKGNvbm5lY3Rpb24tPnJlcGx5YnVmKTsKKysgICAgICAgIGNv bm5lY3Rpb24tPnJlcGx5YnVmID0KKysgICAgICAgICAgICBnbG9idXNfbGliY19tYWxsb2MoR0xP QlVTX0dSQU1fUFJPVE9DT0xfTUFYX01TR19TSVpFKTsKKysgICAgICAgIGNvbm5lY3Rpb24tPnJl cGx5YnVmc2l6ZSA9IEdMT0JVU19HUkFNX1BST1RPQ09MX01BWF9NU0dfU0laRTsKKyAgICAgfQor ICAgICByZXN1bHQgPSBnbG9idXNfaW9fcmVnaXN0ZXJfcmVhZCgKKy0JICAgIGNvbm5lY3Rpb24t PmlvX2hhbmRsZSwKKy0JICAgIGNvbm5lY3Rpb24tPnJlcGx5YnVmLAorLQkgICAgY29ubmVjdGlv bi0+cmVwbHlidWZzaXplLAorLQkgICAgMSwKKy0JICAgIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xf cmVhZF9yZXBseV9jYWxsYmFjaywKKy0JICAgIGNvbm5lY3Rpb24pOworKyAgICAgICAgICAgIGNv bm5lY3Rpb24tPmlvX2hhbmRsZSwKKysgICAgICAgICAgICBjb25uZWN0aW9uLT5yZXBseWJ1ZiwK KysgICAgICAgICAgICBjb25uZWN0aW9uLT5yZXBseWJ1ZnNpemUsCisrICAgICAgICAgICAgMSwK KysgICAgICAgICAgICBnbG9idXNfbF9ncmFtX3Byb3RvY29sX3JlYWRfcmVwbHlfY2FsbGJhY2ss CisrICAgICAgICAgICAgY29ubmVjdGlvbik7CisgCisgICAgIGlmKHJlc3VsdCA9PSBHTE9CVVNf U1VDQ0VTUykKKyAgICAgeworLQlyZXR1cm47CisrICAgICAgICByZXR1cm47CisgICAgIH0KKyAg ICAgZWxzZQorICAgICB7CistCWNvbm5lY3Rpb24tPnJjID0gR0xPQlVTX0dSQU1fUFJPVE9DT0xf RVJST1JfTk9fUkVTT1VSQ0VTOworKyAgICAgICAgY29ubmVjdGlvbi0+cmMgPSBHTE9CVVNfR1JB TV9QUk9UT0NPTF9FUlJPUl9OT19SRVNPVVJDRVM7CisgICAgIH0KKyAgICAgaWYoY29ubmVjdGlv bi0+Y2FsbGJhY2sgJiYgY29ubmVjdGlvbi0+cmMpCisgICAgIHsKKy0JY29ubmVjdGlvbi0+Y2Fs bGJhY2soY29ubmVjdGlvbi0+Y2FsbGJhY2tfYXJnLAorLQkJCSAgICAgY29ubmVjdGlvbi0+aGFu ZGxlLAorLQkJCSAgICAgY29ubmVjdGlvbi0+cmVwbHlidWYsCistCQkJICAgICBjb25uZWN0aW9u LT5wYXlsb2FkX2xlbmd0aCwKKy0JCQkgICAgIGNvbm5lY3Rpb24tPnJjLAorLQkJCSAgICAgTlVM TCk7CisrICAgICAgICBjb25uZWN0aW9uLT5jYWxsYmFjayhjb25uZWN0aW9uLT5jYWxsYmFja19h cmcsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5oYW5kbGUsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5yZXBseWJ1ZiwKKysgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnBheWxvYWRfbGVuZ3RoLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+cmMsCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgfQorICAgICAvKiBGb3IgcmVwbHkgaGFuZGxp bmcsIHdlIGp1c3QgbmVlZCB0byBjbG9zZSB1cCB0aGUgY29ubmVjdGlvbgorICAgICAgKiBhZnRl ciB3ZSd2ZSBkaXNwYXRjaGVkIHRoZSBjYWxsYmFjay4KKyAgICAgICovCisgICAgIHJlc3VsdCA9 IGdsb2J1c19pb19yZWdpc3Rlcl9jbG9zZSgKKyAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t PmlvX2hhbmRsZSwKKy0JCSBnbG9idXNfbF9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2Vf Y2FsbGJhY2ssCistCQkgY29ubmVjdGlvbik7CisrICAgICAgICAgICAgICAgICBnbG9idXNfbF9n cmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fY2xvc2VfY2FsbGJhY2ssCisrICAgICAgICAgICAgICAg ICBjb25uZWN0aW9uKTsKKyAKKyAgICAgaWYocmVzdWx0ICE9IEdMT0JVU19TVUNDRVNTKQorICAg ICB7CisgICAgICAgICAvKiBJZiB3ZSBjYW4ndCBjbG9zZSB0aGUgaGFuZGxlLCB3ZSdkIHN0aWxs IGxpa2UgdG8gY2xlYW4gdXAKKy0JICogb3VyIG1lbW9yeS4KKy0JICovCistCWdsb2J1c19sX2dy YW1fcHJvdG9jb2xfY29ubmVjdGlvbl9jbG9zZV9jYWxsYmFjaygKKy0JICAgIGNvbm5lY3Rpb24s CistCSAgICBjb25uZWN0aW9uLT5pb19oYW5kbGUsCistCSAgICByZXN1bHQpOworKyAgICAgICAg ICogb3VyIG1lbW9yeS4KKysgICAgICAgICAqLworKyAgICAgICAgZ2xvYnVzX2xfZ3JhbV9wcm90 b2NvbF9jb25uZWN0aW9uX2Nsb3NlX2NhbGxiYWNrKAorKyAgICAgICAgICAgIGNvbm5lY3Rpb24s CisrICAgICAgICAgICAgY29ubmVjdGlvbi0+aW9faGFuZGxlLAorKyAgICAgICAgICAgIHJlc3Vs dCk7CisgICAgIH0KKyB9CisgLyogZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9pbml0X2RlbGVnYXRp b24oKSAqLworQEAgLTI4NzcsMTkgKzI4NzcsMTkgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9p bml0X2RlbGVnYXRpb24oCisgc3RhdGljCisgZ2xvYnVzX2Jvb2xfdAorIGdsb2J1c19sX2dyYW1f cHJvdG9jb2xfYXV0aG9yaXphdGlvbl9jYWxsYmFjaygKKy0Jdm9pZCAqCQkJCWFyZywKKy0JZ2xv YnVzX2lvX2hhbmRsZV90ICoJCWhhbmRsZSwKKy0JZ2xvYnVzX3Jlc3VsdF90CQkJcmVzdWx0LAor LQljaGFyICoJCQkJaWRlbnRpdHksCistCWdzc19jdHhfaWRfdCAJCQljb250ZXh0X2hhbmRsZSkK KysgICAgICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnLAorKyAgICAgICAg Z2xvYnVzX2lvX2hhbmRsZV90ICogICAgICAgICAgICBoYW5kbGUsCisrICAgICAgICBnbG9idXNf cmVzdWx0X3QgICAgICAgICAgICAgICAgIHJlc3VsdCwKKysgICAgICAgIGNoYXIgKiAgICAgICAg ICAgICAgICAgICAgICAgICAgaWRlbnRpdHksCisrICAgICAgICBnc3NfY3R4X2lkX3QgICAgICAg ICAgICAgICAgICAgIGNvbnRleHRfaGFuZGxlKQorIHsKKyAgICAgZ2xvYnVzX2lfZ3JhbV9wcm90 b2NvbF9jb25uZWN0aW9uX3QgKgorLSAgICAJCQkJCWNvbm5lY3Rpb247CistICAgIAorKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOworKworICAgICBj b25uZWN0aW9uID0gKGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY29ubmVjdGlvbl90ICopIGFyZzsK KyAKKyAgICAgY29ubmVjdGlvbi0+Y29udGV4dCA9IGNvbnRleHRfaGFuZGxlOworLSAgICAKKysK KyAgICAgcmV0dXJuIEdMT0JVU19UUlVFOworIH0KKyAKK0BAIC0yOTUyLDMzICsyOTUyLDMzIEBA IGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfc2V0dXBfY29ubmVjdF9hdHRyKAorICAgICAvKiBhY3F1 aXJlIG11dGV4ICovCisgICAgIGlmICgocmVzID0gZ2xvYnVzX2lvX3RjcGF0dHJfaW5pdChhdHRy KSkgIT0gR0xPQlVTX1NVQ0NFU1MpCisgICAgIHsKKy0JcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NP TF9FUlJPUl9DT05ORUNUSU9OX0ZBSUxFRDsKKysgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJP VE9DT0xfRVJST1JfQ09OTkVDVElPTl9GQUlMRUQ7CisgICAgICAgICBnb3RvIG91dDsKKyAgICAg fQorIAorICAgICBpZiAoIChyZXMgPSBnbG9idXNfaW9fc2VjdXJlX2F1dGhvcml6YXRpb25fZGF0 YV9pbml0aWFsaXplKAorLQkgICAgICAgICAgICAgICAgJmF1dGhfZGF0YSkpCistCSB8fCAocmVz ID0gZ2xvYnVzX2lvX3NlY3VyZV9hdXRob3JpemF0aW9uX2RhdGFfc2V0X2lkZW50aXR5KAorLQkg ICAgICAgICAgICAgICAgJmF1dGhfZGF0YSwKKysgICAgICAgICAgICAgICAgICAgICAgICAmYXV0 aF9kYXRhKSkKKysgICAgICAgICB8fCAocmVzID0gZ2xvYnVzX2lvX3NlY3VyZV9hdXRob3JpemF0 aW9uX2RhdGFfc2V0X2lkZW50aXR5KAorKyAgICAgICAgICAgICAgICAgICAgICAgICZhdXRoX2Rh dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgaWRlbnRpdHkpKQorLQkgfHwgKHJlcyA9IGds b2J1c19pb19hdHRyX3NldF9zZWN1cmVfYXV0aGVudGljYXRpb25fbW9kZSgKKy0JICAgICAgICAg ICAgICAgIGF0dHIsCistCQkJR0xPQlVTX0lPX1NFQ1VSRV9BVVRIRU5USUNBVElPTl9NT0RFX01V VFVBTCwKKy0JCQlnbG9idXNfaV9ncmFtX3Byb3RvY29sX2NyZWRlbnRpYWwpKQorLQkgfHwgKHJl cyA9IGdsb2J1c19pb19hdHRyX3NldF9zZWN1cmVfYXV0aG9yaXphdGlvbl9tb2RlKAorLQkgICAg ICAgICAgICAgICAgYXR0ciwKKy0JCQlHTE9CVVNfSU9fU0VDVVJFX0FVVEhPUklaQVRJT05fTU9E RV9JREVOVElUWSwKKy0JCQkmYXV0aF9kYXRhKSkKKy0JIHx8IChyZXMgPSBnbG9idXNfaW9fYXR0 cl9zZXRfc2VjdXJlX2NoYW5uZWxfbW9kZSgKKy0JICAgICAgICAgICAgICAgIGF0dHIsCistCQkJ R0xPQlVTX0lPX1NFQ1VSRV9DSEFOTkVMX01PREVfU1NMX1dSQVApKQorKyAgICAgICAgIHx8IChy ZXMgPSBnbG9idXNfaW9fYXR0cl9zZXRfc2VjdXJlX2F1dGhlbnRpY2F0aW9uX21vZGUoCisrICAg ICAgICAgICAgICAgICAgICAgICAgYXR0ciwKKysgICAgICAgICAgICAgICAgICAgICAgICBHTE9C VVNfSU9fU0VDVVJFX0FVVEhFTlRJQ0FUSU9OX01PREVfTVVUVUFMLAorKyAgICAgICAgICAgICAg ICAgICAgICAgIGdsb2J1c19pX2dyYW1fcHJvdG9jb2xfY3JlZGVudGlhbCkpCisrICAgICAgICAg fHwgKHJlcyA9IGdsb2J1c19pb19hdHRyX3NldF9zZWN1cmVfYXV0aG9yaXphdGlvbl9tb2RlKAor KyAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIsCisrICAgICAgICAgICAgICAgICAgICAgICAg R0xPQlVTX0lPX1NFQ1VSRV9BVVRIT1JJWkFUSU9OX01PREVfSURFTlRJVFksCisrICAgICAgICAg ICAgICAgICAgICAgICAgJmF1dGhfZGF0YSkpCisrICAgICAgICAgfHwgKHJlcyA9IGdsb2J1c19p b19hdHRyX3NldF9zZWN1cmVfY2hhbm5lbF9tb2RlKAorKyAgICAgICAgICAgICAgICAgICAgICAg IGF0dHIsCisrICAgICAgICAgICAgICAgICAgICAgICAgR0xPQlVTX0lPX1NFQ1VSRV9DSEFOTkVM X01PREVfU1NMX1dSQVApKQorICAgICAgICAgIHx8IChyZXMgPSBnbG9idXNfaW9fYXR0cl9zZXRf dGNwX2FsbG93X2lwdjYoCisgICAgICAgICAgICAgICAgICAgICAgICAgYXR0ciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICBHTE9CVVNfVFJVRSkpICkKKyAgICAgeworICAgICAgICAgZ2xvYnVz X2lvX3RjcGF0dHJfZGVzdHJveShhdHRyKTsKKyAKKy0JcmMgPSBHTE9CVVNfR1JBTV9QUk9UT0NP TF9FUlJPUl9DT05ORUNUSU9OX0ZBSUxFRDsKKysgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJP VE9DT0xfRVJST1JfQ09OTkVDVElPTl9GQUlMRUQ7CisgICAgIH0KKyAKKyAgICAgaWYgKGF1dGhf ZGF0YSkKK2RpZmYgLS1naXQgYS9ncmFtL3Byb3RvY29sL3NvdXJjZS9nbG9idXNfZ3JhbV9wcm90 b2NvbF9wYWNrLmMgYi9ncmFtL3Byb3RvY29sL3NvdXJjZS9nbG9idXNfZ3JhbV9wcm90b2NvbF9w YWNrLmMKK2luZGV4IGM1NTI0NjQ3YS4uM2Y4NmNmNmJiIDEwMDY0NAorLS0tIGEvZ3JhbS9wcm90 b2NvbC9zb3VyY2UvZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcGFjay5jCisrKysgYi9ncmFtL3Byb3Rv Y29sL3NvdXJjZS9nbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrLmMKK0BAIC03MCw3ICs3MCw3IEBA IGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZ2V0X3N0cmluZ19hdHRyaWJ1dGUoCisgCisgLyoqCisg ICogQGJyaWVmIFBhY2sgYSBHUkFNIEpvYiBSZXF1ZXN0CistICogQGluZ3JvdXAgZ2xvYnVzX2dy YW1fcHJvdG9jb2xfcGFjayAKKysgKiBAaW5ncm91cCBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNr CisgICoKKyAgKiBAZGV0YWlscworICAqIFRoZSBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrX2pv Yl9yZXF1ZXN0KCkgZnVuY3Rpb24gY29tYmluZXMgaXRzCitAQCAtMzA1LDcgKzMwNSw3IEBAIGJh ZF9wYXJhbToKKyAgKiBwYXJhbWV0ZXJzIGludG8gYSBHUkFNIHJlcGx5IG1lc3NhZ2UgYm9keS4g VGhlIGNhbGxlciBtYXkgZnJhbWUKKyAgKiBhbmQgc2VuZCB0aGUgcmVzdWx0aW5nIG1lc3NhZ2Ug YnkgY2FsbGluZyBnbG9idXNfZ3JhbV9wcm90b2NvbF9yZXBseSgpCisgICogb3IganVzdCBmcmFt ZSBpdCBieSBjYWxsaW5nIGdsb2J1c19ncmFtX3Byb3RvY29sX2ZyYW1lX3JlcGx5KCkgYW5kIHNl bmQKKy0gKiBpdCBieSBzb21lIG90aGVyIG1lY2hhbmlzbS4gVGhlIAorKyAqIGl0IGJ5IHNvbWUg b3RoZXIgbWVjaGFuaXNtLiBUaGUKKyAgKiBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrX2pvYl9y ZXF1ZXN0X3JlcGx5KCkKKyAgKiBmdW5jdGlvbiByZXR1cm5zIHRoZSBwYWNrZWQgbWVzc2FnZSBi eSBtb2RpZnlpbmcgdGhlIEBhIHJlcGx5IHBhcmFtZXRlciB0bworICAqIHBvaW50IHRvIGEgbmV3 IHN0cmluZyBjb250YWluaW5nIHRoZSBtZXNzYWdlLiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxl IGZvcgorQEAgLTM4MCw3ICszODAsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrX2pvYl9y ZXF1ZXN0X3JlcGx5KAorICAqIFRoZSBnbG9idXNfZ3JhbV9wcm90b2NvbF91bnBhY2tfam9iX3Jl cXVlc3RfcmVwbHkoKSBmdW5jdGlvbiBwYXJzZXMgdGhlCisgICogcmVwbHkgbWVzc2FnZSBwYWNr ZWQgaW4gdGhlIEBhIHJlcGx5IG1lc3NhZ2UgYW5kIHJldHVybnMgY29waWVzIG9mCisgICogdGhl IHN0YW5kYXJkIG1lc3NhZ2UgYXR0cmlidXRlcyBpbiB0aGUgQGEgc3RhdHVzIGFuZCBAYSBqb2Jf Y29udGFjdAorLSAqIHBhcmFtZXRlcnMuIAorKyAqIHBhcmFtZXRlcnMuCisgICoKKyAgKiBAcGFy YW0gcmVwbHkKKyAgKiAgICAgVGhlIHVuZnJhbWVkIGpvYiByZXBseSBtZXNzYWdlIHRvIHBhcnNl LgorQEAgLTY5Nyw3ICs2OTcsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF91bnBhY2tfam9iX3Jl cXVlc3RfcmVwbHlfd2l0aF9leHRlbnNpb25zKAorICAgICBnbG9idXNfZ3JhbV9wcm90b2NvbF9l eHRlbnNpb25fdCAqIGVudHJ5ID0gTlVMTDsKKyAgICAgaW50ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmM7CisgCistICAgIGlmIChyZXBseSA9PSBOVUxMIHx8IHN0YXR1cyA9PSBO VUxMIHx8IGpvYl9jb250YWN0ID09IE5VTEwgfHwgCisrICAgIGlmIChyZXBseSA9PSBOVUxMIHx8 IHN0YXR1cyA9PSBOVUxMIHx8IGpvYl9jb250YWN0ID09IE5VTEwgfHwKKyAgICAgICAgICAgICBl eHRlbnNpb25zID09IE5VTEwpCisgICAgIHsKKyAgICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJP VE9DT0xfRVJST1JfTlVMTF9QQVJBTUVURVI7CitAQCAtNzQxLDcgKzc0MSw3IEBAIGdsb2J1c19n cmFtX3Byb3RvY29sX3VucGFja19qb2JfcmVxdWVzdF9yZXBseV93aXRoX2V4dGVuc2lvbnMoCisg ICAgIGlmIChlbnRyeSA9PSBOVUxMKQorICAgICB7CisgICAgICAgICByYyA9IEdMT0JVU19HUkFN X1BST1RPQ09MX0VSUk9SX0hUVFBfVU5QQUNLX0ZBSUxFRDsKKy0gICAgICAgIAorKworICAgICAg ICAgZ290byB2ZXJpZnlfZXJyb3I7CisgICAgIH0KKyAgICAgKnN0YXR1cyA9IGF0b2koZW50cnkt PnZhbHVlKTsKK0BAIC03NzksNyArNzc5LDcgQEAgYmFkX3BhcmFtOgorIAorIC8qKgorICAqIEBi cmllZiBQYWNrIGEgR1JBTSBxdWVyeSBtZXNzYWdlCistICogQGluZ3JvdXAgZ2xvYnVzX2dyYW1f cHJvdG9jb2xfcGFjayAKKysgKiBAaW5ncm91cCBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrCisg ICoKKyAgKiBAZGV0YWlscworICAqIFRoZSBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrX3N0YXR1 c19yZXF1ZXN0KCkKK0BAIC04NjcsNyArODY3LDcgQEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcGFj a19zdGF0dXNfcmVxdWVzdCgKKyAgKiBAcGFyYW0gcXVlcnlzaXplCisgICogICAgIFRoZSBsZW5n dGggb2YgdGhlIHF1ZXJ5IHN0cmluZy4KKyAgKiBAcGFyYW0gc3RhdHVzX3JlcXVlc3QKKy0gKiAg ICAgQSBwb2ludGVyIHRvIGEgc3RyaW5nIHRvIGJlIHNldCB0byB0aGUgcXVlcnkgCisrICogICAg IEEgcG9pbnRlciB0byBhIHN0cmluZyB0byBiZSBzZXQgdG8gdGhlIHF1ZXJ5CisgICogICAgIHZh bHVlLiAgVGhlIGNhbGxlciBtdXN0IGZyZWUgdGhpcyBzdHJpbmcgdXNpbmcgZnJlZSgpLgorICAq CisgICogQHJldHVybgorQEAgLTk1OCw3ICs5NTgsNyBAQCBudWxsX3BhcmFtOgorIC8qIGdsb2J1 c19ncmFtX3Byb3RvY29sX3VucGFja19zdGF0dXNfcmVxdWVzdCgpICovCisgCisgLyoqCistICog QGJyaWVmIFBhY2sgYSBHUkFNIHF1ZXJ5IHJlcGx5IG1lc3NhZ2UgCisrICogQGJyaWVmIFBhY2sg YSBHUkFNIHF1ZXJ5IHJlcGx5IG1lc3NhZ2UKKyAgKiBAaW5ncm91cCBnbG9idXNfZ3JhbV9wcm90 b2NvbF9wYWNrCisgICoKKyAgKiBAZGV0YWlscworQEAgLTExNTEsNyArMTE1MSw3IEBAIG51bGxf cGFyYW06CisgICogICAgIFRoZSBlcnJvciBjb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGUgam9iIGlm IGl0IGhhcyBmYWlsZWQuIFRoaXMgbWF5CisgICogICAgIGJlIEdMT0JVU19TVUNDRVNTIGlmIHRo ZSBqb2IgaGFzIG5vdCBmYWlsZWQuCisgICogQHBhcmFtIGV4dGVuc2lvbnMKKy0gKiAgICAgQSBw b2ludGVyIHRvIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIHRoZSAKKysgKiAgICAgQSBwb2ludGVy IHRvIGEgaGFzaCB0YWJsZSBjb250YWluaW5nIHRoZQorICAqICAgICBuYW1lcyBhbmQgdmFsdWVz IG9mIHRoZSBwcm90b2NvbCBleHRlbnNpb25zIHRvIGFkZCB0byB0aGlzIG1lc3NhZ2UuCisgICog QHBhcmFtIHJlcGx5CisgICogICAgIEFuIG91dHB1dCBwYXJhbWV0ZXIgd2hpY2ggd2lsbCBiZSBz ZXQgdG8gYSBuZXcKK0BAIC0xMzI2LDcgKzEzMjYsNyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF91 bnBhY2tfc3RhdHVzX3JlcGx5X3dpdGhfZXh0ZW5zaW9ucygKKyAgICAgeworICAgICAgICAgZ290 byBwYXJzZV9lcnJvcjsKKyAgICAgfQorLSAgICAKKysKKyAgICAgLyogQ2hlY2sgdGhhdCByZXF1 aXJlZCBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50ICovCisgICAgIGVudHJ5ID0gZ2xvYnVzX2hhc2h0 YWJsZV9sb29rdXAoCisgICAgICAgICAgICAgZXh0ZW5zaW9ucywKK0BAIC0xMzUwLDcgKzEzNTAs NyBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF91bnBhY2tfc3RhdHVzX3JlcGx5X3dpdGhfZXh0ZW5z aW9ucygKKyAgICAgaWYgKGVudHJ5ID09IE5VTEwpCisgICAgIHsKKyAgICAgICAgIHJjID0gR0xP QlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfSFRUUF9VTlBBQ0tfRkFJTEVEOworLSAgICAgICAgCisr CisgICAgICAgICBnb3RvIHZlcmlmeV9lcnJvcjsKKyAgICAgfQorIAorQEAgLTE0ODAsNyArMTQ4 MCw3IEBAIGdsb2J1c19ncmFtX3Byb3RvY29sX3BhY2tfc3RhdHVzX3VwZGF0ZV9tZXNzYWdlKAor ICAqIFRoZSBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrX3N0YXR1c191cGRhdGVfbWVzc2FnZV93 aXRoX2V4dGVuc2lvbnMoKQorICAqIGZ1bmN0aW9uIHJldHVybnMgdGhlIHBhY2tlZCBtZXNzYWdl IGJ5IG1vZGlmeWluZyB0aGUgQGEgcmVwbHkgcGFyYW1ldGVyIHRvCisgICogcG9pbnQgdG8gYSBu ZXcgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1lc3NhZ2UuIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2li bGUgZm9yCistICogZnJlZWluZyB0aGF0IHN0cmluZy4gCisrICogZnJlZWluZyB0aGF0IHN0cmlu Zy4KKyAgKgorICAqIEBwYXJhbSBqb2JfY29udGFjdAorICAqICAgICBUaGUgam9iIGNvbnRhY3Qg c3RyaW5nIGFzc29jaWF0ZWQgd2l0aCB0aGUgam9iLgorQEAgLTE4ODksNyArMTg4OSw3IEBAIGds b2J1c19ncmFtX3Byb3RvY29sX3VucGFja19zdGF0dXNfdXBkYXRlX21lc3NhZ2Vfd2l0aF9leHRl bnNpb25zKAorICAgICAgICAgZmFpbHVyZV9jb2RlID09IEdMT0JVU19HUkFNX1BST1RPQ09MX0VS Uk9SX1NUQUdJTkdfRVhFQ1VUQUJMRSB8fAorICAgICAgICAgZmFpbHVyZV9jb2RlID09IEdMT0JV U19HUkFNX1BST1RPQ09MX0VSUk9SX1NUQUdJTkdfU1RESU4pCisgICAgIHsKKy0gICAgICAgIGlm IChmYWlsdXJlX3R5cGUgJiYgCisrICAgICAgICBpZiAoZmFpbHVyZV90eXBlICYmCisgICAgICAg ICAgICAgICAgIChzdHJjbXAoZmFpbHVyZV90eXBlLCAiZXhlY3V0YWJsZSIpID09IDAgfHwKKyAg ICAgICAgICAgICAgICAgIHN0cmNtcChmYWlsdXJlX3R5cGUsICJzdGRpbiIpID09IDApKQorICAg ICAgICAgeworQEAgLTE5ODEsNyArMTk4MSw3IEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfZXh0 ZW5zaW9uX2Rlc3Ryb3koCisgLyoqCisgICogRGVzdHJveSBtZXNzYWdlIGF0dHJpYnV0ZSBoYXNo CisgICogQGluZ3JvdXAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfdW5wYWNrCistICogCisrICoKKyAg KiBAcGFyYW0gbWVzc2FnZV9oYXNoCisgICogICAgIEhhc2h0YWJsZSBvZiBnbG9idXNfZ3JhbV9w cm90b2NvbF9leHRlbnNpb25fdCAqIHZhbHVlcyB0byBkZXN0cm95CisgICovCitAQCAtMjAwOCwx MSArMjAwOCwxMSBAQCBnbG9idXNfZ3JhbV9wcm90b2NvbF9oYXNoX2Rlc3Ryb3koCisgICogcGFp ci4gVGhlIEBhIGF0dHJpYnV0ZSBwYXJhbWV0ZXIgaXMgY29waWVkIGludG8gdGhlIGV4dGVuc2lv biwgYW5kIHRoZQorICAqIEBhIGZvcm1hdCBwYXJhbWV0ZXIgaXMgYSBwcmludGYtc3R5bGUgZm9y bWF0IHN0cmluZyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUKKyAgKiB2YWx1ZSBvZiB0aGUgZXh0ZW5z aW9uLgorLSAqIAorKyAqCisgICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWlu ZyB0aGUgZXh0ZW5zaW9uIHdoZW4gZG9uZSB3aXRoIGl0LiBUaGUKKyAgKiBxdW90aW5nIHJ1bGVz IGRlc2NyaWJlZCBpbiBAcmVmIGdsb2J1c19ncmFtX3Byb3RvY29sIG11c3QgYmUgaW1wbGVtZW50 ZWQKKyAgKiBieSB0aGUgY2FsbGVyIGluIHRoZSBmb3JtYXQgc3RyaW5nLgorLSAqIAorKyAqCisg ICogQHBhcmFtIGF0dHJpYnV0ZQorICAqICAgICBOYW1lIG9mIHRoZSBleHRlbnNpb24gYXR0cmli dXRlCisgICogQHBhcmFtIGZvcm1hdAorQEAgLTIyMjcsNyArMjIyNyw3IEBAIGJhZF9wYXJhbToK KyAvKioKKyAgKiBAYnJpZWYgUGFjayBhIEdSQU0gdmVyc2lvbiByZXF1ZXN0IG1lc3NhZ2UKKyAg KiBAaW5ncm91cCBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrCistICogCisrICoKKyAgKiBAZGV0 YWlscworICAqIFRoZSBnbG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrX2pvYl9yZXF1ZXN0KCkgZnVu Y3Rpb24gY3JlYXRlcyBhIGNvcHkKKyAgKiBvZiB0aGUgR1JBTSB2ZXJzaW9uIHJlcXVlc3QuICBU aGUgY2FsbGVyIG1heSBmcmFtZQorQEAgLTIyNTMsNyArMjI1Myw3IEBAIGJhZF9wYXJhbToKKyAg KiAgICAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcGFja192ZXJzaW9uX3JlcXVlc3QoKSByZXR1cm5z IGFuIGludGVnZXIKKyAgKiAgICAgZXJyb3IgY29kZSBhbmQgdGhlIHZhbHVlcyBwb2ludGVkIHRv IGJ5IEBhIHJlcXVlc3QgYW5kIEBhIHJlcXVlc3RzaXplCisgICogICAgIGFyZSB1bmRlZmluZWQu CistICogCisrICoKKyAgKiBAcmV0dmFsIEdMT0JVU19TVUNDRVNTCisgICogICAgIFN1Y2Nlc3MK KyAgKiBAcmV0dmFsIEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX05VTExfUEFSQU1FVEVSCist LSAKKzIuNTQuMAorCgpkaWZmIC0tZ2l0IGEvMDAwMi1GaXgtY29tcGlsZXItYW5kLWRveHlnZW4t d2FybmluZ3MucGF0Y2ggYi8wMDAyLUZpeC1jb21waWxlci1hbmQtZG94eWdlbi13YXJuaW5ncy5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzdkMjlmCi0tLSAvZGV2 L251bGwKKysrIGIvMDAwMi1GaXgtY29tcGlsZXItYW5kLWRveHlnZW4td2FybmluZ3MucGF0Y2gK QEAgLTAsMCArMSwxMDggQEAKK0Zyb20gNGVlMDhkMTNlMjk2MzMwOWUyMDYzZGM0NWRlZGQwNjcz MzdkM2I3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE1hdHRpYXMgRWxsZXJ0IDxt YXR0aWFzLmVsbGVydEBwaHlzaWNzLnV1LnNlPgorRGF0ZTogV2VkLCAyMCBNYXkgMjAyNiAwMDox NTozNyArMDIwMAorU3ViamVjdDogW1BBVENIIDIvMl0gRml4IGNvbXBpbGVyIGFuZCBkb3h5Z2Vu IHdhcm5pbmdzCisKKy0tLQorIGdyYW0vcHJvdG9jb2wvc291cmNlL2dsb2J1c19ncmFtX3Byb3Rv Y29sX2lvLmMgfCAxOCArKysrKysrKystLS0tLS0tLS0KKyAuLi4vc291cmNlL2dsb2J1c19ncmFt X3Byb3RvY29sX3BhY2suYyAgICAgICAgIHwgIDIgKy0KKyAyIGZpbGVzIGNoYW5nZWQsIDEwIGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3JhbS9wcm90b2Nv bC9zb3VyY2UvZ2xvYnVzX2dyYW1fcHJvdG9jb2xfaW8uYyBiL2dyYW0vcHJvdG9jb2wvc291cmNl L2dsb2J1c19ncmFtX3Byb3RvY29sX2lvLmMKK2luZGV4IDE5ZTc3MWEwYy4uNWU1MGIyMjc1IDEw MDY0NAorLS0tIGEvZ3JhbS9wcm90b2NvbC9zb3VyY2UvZ2xvYnVzX2dyYW1fcHJvdG9jb2xfaW8u YworKysrIGIvZ3JhbS9wcm90b2NvbC9zb3VyY2UvZ2xvYnVzX2dyYW1fcHJvdG9jb2xfaW8uYwor QEAgLTExNDUsNyArMTE0NSw3IEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfYWNjZXB0X2NhbGxi YWNrKAorIHsKKyAgICAgZ2xvYnVzX2lfZ3JhbV9wcm90b2NvbF9jb25uZWN0aW9uX3QgKgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uOworLSAgICBp bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYzsKKysgICAgLyogaW50ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmM7ICovCisgCisgICAgIGNvbm5lY3Rpb24gPSBj YWxsYmFja19hcmc7CisgCitAQCAtMTE1NCwxMiArMTE1NCwxMiBAQCBnbG9idXNfbF9ncmFtX3By b3RvY29sX2FjY2VwdF9jYWxsYmFjaygKKyAKKyAgICAgaWYoZ2xvYnVzX2lfZ3JhbV9wcm90b2Nv bF9zaHV0ZG93bl9jYWxsZWQpCisgICAgIHsKKy0gICAgICAgIHJjID0gR0xPQlVTX0dSQU1fUFJP VE9DT0xfRVJST1JfSU5WQUxJRF9SRVFVRVNUOworKyAgICAgICAgLyogcmMgPSBHTE9CVVNfR1JB TV9QUk9UT0NPTF9FUlJPUl9JTlZBTElEX1JFUVVFU1Q7ICovCisgICAgICAgICBnb3RvIGVycm9y X2V4aXQ7CisgICAgIH0KKyAgICAgaWYocmVzdWx0KQorICAgICB7CistICAgICAgICByYyA9IEdM T0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX05PX1JFU09VUkNFUzsKKysgICAgICAgIC8qIHJjID0g R0xPQlVTX0dSQU1fUFJPVE9DT0xfRVJST1JfTk9fUkVTT1VSQ0VTOyAqLworICAgICAgICAgZ290 byBlcnJvcl9leGl0OworICAgICB9CisgICAgIGNvbm5lY3Rpb24tPmJ1ZiA9CitAQCAtMTE2OCw3 ICsxMTY4LDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9hY2NlcHRfY2FsbGJhY2soCisgCisg ICAgIGlmKGNvbm5lY3Rpb24tPmJ1ZiA9PSBOVUxMKQorICAgICB7CistICAgICAgICByYyA9IEdM T0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX01BTExPQ19GQUlMRUQ7CisrICAgICAgICAvKiByYyA9 IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX01BTExPQ19GQUlMRUQ7ICovCisgICAgICAgICBn b3RvIGVycm9yX2V4aXQ7CisgICAgIH0KKyAgICAgY29ubmVjdGlvbi0+cmVwbHlidWZzaXplID0g R0xPQlVTX0dSQU1fUFJPVE9DT0xfTUFYX01TR19TSVpFOworQEAgLTExODIsNyArMTE4Miw3IEBA IGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfYWNjZXB0X2NhbGxiYWNrKAorICAgICAgICAgICAgICAg ICAgY29ubmVjdGlvbik7CisgICAgIGlmKHJlc3VsdCkKKyAgICAgeworLSAgICAgICAgcmMgPSBH TE9CVVNfR1JBTV9QUk9UT0NPTF9FUlJPUl9OT19SRVNPVVJDRVM7CisrICAgICAgICAvKiByYyA9 IEdMT0JVU19HUkFNX1BST1RPQ09MX0VSUk9SX05PX1JFU09VUkNFUzsgKi8KKyAgICAgICAgIGdv dG8gZXJyb3JfZXhpdDsKKyAgICAgfQorICAgICBnbG9idXNfbXV0ZXhfdW5sb2NrKCZnbG9idXNf aV9ncmFtX3Byb3RvY29sX211dGV4KTsKK0BAIC0xMjQ3LDcgKzEyNDcsNyBAQCBnbG9idXNfbF9n cmFtX3Byb3RvY29sX3JlYWRfcmVxdWVzdF9jYWxsYmFjaygKKyAgICAgZ2xvYnVzX29iamVjdF90 ICogICAgICAgICAgICAgICAgICAgZXJyOworICAgICBnbG9idXNfaV9ncmFtX3Byb3RvY29sX2Nv bm5lY3Rpb25fdCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bm5lY3Rpb247CistICAgIGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHA7Cisr ICAgIGNvbnN0IGNoYXIgKiAgICAgICAgICAgICAgICAgICAgICAgIHA7CisgICAgIGludCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJjOworICAgICBnbG9idXNfc2l6ZV90ICAgICAg ICAgICAgICAgICAgICAgICBoZWFkZXJfbGVuZ3RoOworIAorQEAgLTEyNzcsNyArMTI3Nyw3IEBA IGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcmVhZF9yZXF1ZXN0X2NhbGxiYWNrKAorICAgICAgICAg Y29ubmVjdGlvbi0+YnVmW2Nvbm5lY3Rpb24tPm5fcmVhZF0gPSAnXDAnOworIAorICAgICAgICAg cCA9IHN0cnN0cigoY29uc3QgY2hhciAqKWNvbm5lY3Rpb24tPmJ1ZiwgQ1JMRiBDUkxGKTsKKy0g ICAgICAgIGhlYWRlcl9sZW5ndGggPSAoY29uc3QgY2hhciAqKXAgLSAoY29uc3QgY2hhciAqKWNv bm5lY3Rpb24tPmJ1ZjsKKysgICAgICAgIGhlYWRlcl9sZW5ndGggPSBwIC0gKGNvbnN0IGNoYXIg Kiljb25uZWN0aW9uLT5idWY7CisgCisgICAgICAgICBpZihwKQorICAgICAgICAgeworQEAgLTE2 OTcsNyArMTY5Nyw3IEBAIGdsb2J1c19sX2dyYW1fcHJvdG9jb2xfcmVhZF9yZXBseV9jYWxsYmFj aygKKyAgICAgZ2xvYnVzX29iamVjdF90ICogICAgICAgICAgICAgICAgICAgZXJyOworICAgICBn bG9idXNfaV9ncmFtX3Byb3RvY29sX2Nvbm5lY3Rpb25fdCAqCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb247CistICAgIGNoYXIgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHA7CisrICAgIGNvbnN0IGNoYXIgKiAgICAgICAgICAgICAgICAg ICAgICAgIHA7CisgICAgIGdsb2J1c19zaXplX3QgICAgICAgICAgICAgICAgICAgICAgIGhlYWRl cl9sZW5ndGg7CisgCisgICAgIGNvbm5lY3Rpb24gPSBjYWxsYmFja19hcmc7CitAQCAtMTczNiw3 ICsxNzM2LDcgQEAgZ2xvYnVzX2xfZ3JhbV9wcm90b2NvbF9yZWFkX3JlcGx5X2NhbGxiYWNrKAor ICAgICAgICAgY29ubmVjdGlvbi0+cmVwbHlidWZbY29ubmVjdGlvbi0+bl9yZWFkXSA9ICdcMCc7 CisgCisgICAgICAgICBwID0gc3Ryc3RyKChjb25zdCBjaGFyICopY29ubmVjdGlvbi0+cmVwbHli dWYsIENSTEYgQ1JMRik7CistICAgICAgICBoZWFkZXJfbGVuZ3RoID0gKGNvbnN0IGNoYXIgKilw IC0gKGNvbnN0IGNoYXIgKiljb25uZWN0aW9uLT5yZXBseWJ1ZjsKKysgICAgICAgIGhlYWRlcl9s ZW5ndGggPSBwIC0gKGNvbnN0IGNoYXIgKiljb25uZWN0aW9uLT5yZXBseWJ1ZjsKKyAKKyAgICAg ICAgIGlmKHApCisgICAgICAgICB7CitkaWZmIC0tZ2l0IGEvZ3JhbS9wcm90b2NvbC9zb3VyY2Uv Z2xvYnVzX2dyYW1fcHJvdG9jb2xfcGFjay5jIGIvZ3JhbS9wcm90b2NvbC9zb3VyY2UvZ2xvYnVz X2dyYW1fcHJvdG9jb2xfcGFjay5jCitpbmRleCAzZjg2Y2Y2YmIuLmYxZjIzNGRjZSAxMDA2NDQK Ky0tLSBhL2dyYW0vcHJvdG9jb2wvc291cmNlL2dsb2J1c19ncmFtX3Byb3RvY29sX3BhY2suYwor KysrIGIvZ3JhbS9wcm90b2NvbC9zb3VyY2UvZ2xvYnVzX2dyYW1fcHJvdG9jb2xfcGFjay5jCitA QCAtMjAwMiw3ICsyMDAyLDcgQEAgZ2xvYnVzX2dyYW1fcHJvdG9jb2xfaGFzaF9kZXN0cm95KAor IAorIC8qKgorICAqIENyZWF0ZSBhIEdSQU01IHByb3RvY29sIGV4dGVuc2lvbiBlbnRyeQorLSAq IEBpbmdyb3VwIGdsb2J1c19ncmFtX3Byb3RvY29sX2V4dGVuc2lvbnMKKysgKiBAaW5ncm91cCBn bG9idXNfZ3JhbV9wcm90b2NvbF9wYWNrCisgICoKKyAgKiBBbGxvY2F0ZXMgYSBuZXcgR1JBTTUg cHJvdG9jb2wgZXh0ZW5zaW9uIGVudHJ5IGNvbnRhaW5pbmcgYW4gYXR0cmlidXRlLXZhbHVlCisg ICogcGFpci4gVGhlIEBhIGF0dHJpYnV0ZSBwYXJhbWV0ZXIgaXMgY29waWVkIGludG8gdGhlIGV4 dGVuc2lvbiwgYW5kIHRoZQorLS0gCisyLjU0LjAKKwoKZGlmZiAtLWdpdCBhL2dsb2J1cy1ncmFt LXByb3RvY29sLnNwZWMgYi9nbG9idXMtZ3JhbS1wcm90b2NvbC5zcGVjCmluZGV4IGFhY2UxZTYu LjgyNTI0NjYgMTAwNjQ0Ci0tLSBhL2dsb2J1cy1ncmFtLXByb3RvY29sLnNwZWMKKysrIGIvZ2xv YnVzLWdyYW0tcHJvdG9jb2wuc3BlYwpAQCAtMSwxMyArMSwxNSBAQAogTmFtZToJCWdsb2J1cy1n cmFtLXByb3RvY29sCiAlZ2xvYmFsIF9uYW1lICUodHIgLSBfIDw8PCAle25hbWV9KQogVmVyc2lv bjoJMTMuNgotUmVsZWFzZToJMTElez9kaXN0fQorUmVsZWFzZToJMTIlez9kaXN0fQogU3VtbWFy eToJR3JpZCBDb21tdW5pdHkgVG9vbGtpdCAtIEdSQU0gUHJvdG9jb2wgTGlicmFyeQogCiBMaWNl bnNlOglBcGFjaGUtMi4wCiBVUkw6CQlodHRwczovL2dpdGh1Yi5jb20vZ3JpZGNmL2djdC8KIFNv dXJjZToJCWh0dHBzOi8vcmVwby5ncmlkY2Yub3JnL2djdDYvc291cmNlcy8le19uYW1lfS0le3Zl cnNpb259LnRhci5negogU291cmNlODoJUkVBRE1FCitQYXRjaDA6CQkwMDAxLVVudGFiaWZ5LWFu ZC1yZW1vdmUtdHJhaWxpbmctd2hpdGUtc3BhY2UucGF0Y2gKK1BhdGNoMToJCTAwMDItRml4LWNv bXBpbGVyLWFuZC1kb3h5Z2VuLXdhcm5pbmdzLnBhdGNoCiAKIEJ1aWxkUmVxdWlyZXM6CW1ha2UK IEJ1aWxkUmVxdWlyZXM6CWdjYwpAQCAtNjIsNiArNjQsOCBAQCBHUkFNIFByb3RvY29sIExpYnJh cnkgRG9jdW1lbnRhdGlvbiBGaWxlcwogCiAlcHJlcAogJXNldHVwIC1xIC1uICV7X25hbWV9LSV7 dmVyc2lvbn0KKyVwYXRjaCAtUDAgLXA0CislcGF0Y2ggLVAxIC1wNAogCiAlYnVpbGQKICMgUmVk dWNlIG92ZXJsaW5raW5nCkBAIC0xMjUsNiArMTI5LDkgQEAgR0xPQlVTX0hPU1ROQU1FPWxvY2Fs aG9zdCAlbWFrZV9idWlsZCBjaGVjawogJWxpY2Vuc2UgR0xPQlVTX0xJQ0VOU0UKIAogJWNoYW5n ZWxvZworKiBTdW4gSnVuIDE0IDIwMjYgTWF0dGlhcyBFbGxlcnQgPG1hdHRpYXMuZWxsZXJ0QHBo eXNpY3MudXUuc2U+IC0gMTMuNi0xMgorLSBGaXggY29tcGlsZXIgYW5kIGRveHlnZW4gd2Fybmlu Z3MKKwogKiBGcmkgSmFuIDE2IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVu Z0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxMy42LTExCiAtIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVk b3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDRfTWFzc19SZWJ1aWxkCiAK