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: Rex Dieter To: git-commits@fedoraproject.org Subject: [rpms/amarok] epel10.2: 2.5.90 Date: Mon, 06 Jul 2026 18:31:38 GMT Message-ID: <178336269801.1.10352750537687123544.rpms-amarok-9db95044ae9b@fedoraproject.org> List-ID: X-Git-Repo: rpms/amarok X-Git-Branch: epel10.2 X-Git-Rev: 9db95044ae9b1ae0fa05a4e8771caed64980dec2 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvYW1hcm9rCkJyYW5j aCA6IGVwZWwxMC4yCkNvbW1pdCA6IDlkYjk1MDQ0YWU5YjFhZTBmYTA1YTRlODc3MWNhZWQ2NDk4 MGRlYzIKQXV0aG9yIDogUmV4IERpZXRlciA8cmRpZXRlckBmZWRvcmFwcm9qZWN0Lm9yZz4KRGF0 ZSAgIDogMjAxMi0wNS0zMFQxMTozNTo0OC0wNTowMApTdGF0cyAgOiArNy8tMTIzNyBpbiA1IGZp bGUocykKVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9hbWFyb2sv Yy85ZGI5NTA0NGFlOWIxYWUwZmEwNWE0ZTg3NzFjYWVkNjQ5ODBkZWMyP2JyYW5jaD1lcGVsMTAu MgoKTG9nOgoyLjUuOTAKCi0tLQpkaWZmIC0tZ2l0IGEvLmdpdGlnbm9yZSBiLy5naXRpZ25vcmUK aW5kZXggZmRiYTAwMy4uY2YyMDAzZCAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0 aWdub3JlCkBAIC0xLDIgKzEsMiBAQAotL2FtYXJvay0yLjQuMy50YXIuYnoyCiAvYW1hcm9rLTIu NS4wLnRhci5iejIKKy9hbWFyb2stMi41LjkwLnRhci5iejIKCmRpZmYgLS1naXQgYS9hbWFyb2st Mi41LjAta2RlNDhfY29udGV4dF92aWV3LnBhdGNoIGIvYW1hcm9rLTIuNS4wLWtkZTQ4X2NvbnRl eHRfdmlldy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmMxMDQ5MS4uMDAw MDAwMAotLS0gYS9hbWFyb2stMi41LjAta2RlNDhfY29udGV4dF92aWV3LnBhdGNoCisrKyAvZGV2 L251bGwKQEAgLTEsNTkgKzAsMCBAQAotZGlmZiAtdXAgYW1hcm9rLTIuNS4wL3NyYy9jb250ZXh0 L3Rvb2xiYXIvQXBwbGV0VG9vbGJhci5jcHAua2RlNDgtMSBhbWFyb2stMi41LjAvc3JjL2NvbnRl eHQvdG9vbGJhci9BcHBsZXRUb29sYmFyLmNwcAotLS0tIGFtYXJvay0yLjUuMC9zcmMvY29udGV4 dC90b29sYmFyL0FwcGxldFRvb2xiYXIuY3BwLmtkZTQ4LTEJMjAxMS0xMi0xNSAwMTozNjo0OC4w MDAwMDAwMDAgLTA2MDAKLSsrKyBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQvdG9vbGJhci9BcHBs ZXRUb29sYmFyLmNwcAkyMDEyLTAxLTI3IDA4OjA3OjQwLjEyNTkxNjE1MSAtMDYwMAotQEAgLTY3 LDYgKzY3LDE5IEBAIENvbnRleHQ6OkFwcGxldFRvb2xiYXI6On5BcHBsZXRUb29sYmFyKCkKLSB9 Ci0gCi0gdm9pZAotKwotK0NvbnRleHQ6OkFwcGxldFRvb2xiYXI6OnNldENvbnRhaW5tZW50KCBD b250YWlubWVudCAqIGNvbnRhaW5tZW50ICkKLSt7Ci0rICAgIG1fY29udCA9IGNvbnRhaW5tZW50 OwotK30KLSsKLStDb250ZXh0OjpDb250YWlubWVudCAqCi0rQ29udGV4dDo6QXBwbGV0VG9vbGJh cjo6Y29udGFpbm1lbnQoKSBjb25zdAotK3sKLSsgICAgcmV0dXJuIG1fY29udDsKLSt9Ci0rCi0r dm9pZAotIENvbnRleHQ6OkFwcGxldFRvb2xiYXI6OnJlc2l6ZUV2ZW50KCBRR3JhcGhpY3NTY2Vu ZVJlc2l6ZUV2ZW50ICogZXZlbnQgKQotIHsKLSAgICAgZGVidWcoKSA8PCAic2V0dGluZyBsYXlv dXQgdG8iIDw8IFFSZWN0RiggUVBvaW50RiggMCwgMCApLCBldmVudC0+bmV3U2l6ZSgpICk7Ci1k aWZmIC11cCBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQvdG9vbGJhci9BcHBsZXRUb29sYmFyLmgu a2RlNDgtMSBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQvdG9vbGJhci9BcHBsZXRUb29sYmFyLmgK LS0tLSBhbWFyb2stMi41LjAvc3JjL2NvbnRleHQvdG9vbGJhci9BcHBsZXRUb29sYmFyLmgua2Rl NDgtMQkyMDExLTEyLTE1IDAxOjM2OjQ4LjAwMDAwMDAwMCAtMDYwMAotKysrIGFtYXJvay0yLjUu MC9zcmMvY29udGV4dC90b29sYmFyL0FwcGxldFRvb2xiYXIuaAkyMDEyLTAxLTI3IDA4OjA3OjQw LjEyMzkxNjE4MCAtMDYwMAotQEAgLTU1LDYgKzU1LDkgQEAgY2xhc3MgQXBwbGV0VG9vbGJhciA6 IHB1YmxpYyBRR3JhcGhpY3NXaQotICAgICAgICAgCi0gICAgICAgICB2b2lkIGFwcGxldFJlbW92 ZWQoIFBsYXNtYTo6QXBwbGV0KiBhcHBsZXQgKTsKLSAKLSsgICAgICAgIHZvaWQgc2V0Q29udGFp bm1lbnQoIENvbnRhaW5tZW50ICogY29udGFpbm1lbnQgKTsKLSsgICAgICAgIENvbnRhaW5tZW50 KiBjb250YWlubWVudCgpIGNvbnN0OwotKwotICAgICBzaWduYWxzOgotICAgICAgICAgdm9pZCBz aG93QXBwbGV0KCBQbGFzbWE6OkFwcGxldCogKTsKLSAgICAgICAgIHZvaWQgYXBwbGV0QWRkZWRU b1Rvb2xiYXIoIFBsYXNtYTo6QXBwbGV0KiBhcHBsZXQsIGludCBsb2MgKTsKLWRpZmYgLXVwIGFt YXJvay0yLjUuMC9zcmMvY29udGV4dC9Ub29sYmFyVmlldy5jcHAua2RlNDgtMSBhbWFyb2stMi41 LjAvc3JjL2NvbnRleHQvVG9vbGJhclZpZXcuY3BwCi0tLS0gYW1hcm9rLTIuNS4wL3NyYy9jb250 ZXh0L1Rvb2xiYXJWaWV3LmNwcC5rZGU0OC0xCTIwMTEtMTItMTUgMDE6MzY6NDguMDAwMDAwMDAw IC0wNjAwCi0rKysgYW1hcm9rLTIuNS4wL3NyYy9jb250ZXh0L1Rvb2xiYXJWaWV3LmNwcAkyMDEy LTAxLTI3IDA4OjA3OjQwLjEyMjkxNjE5NCAtMDYwMAotQEAgLTc0LDcgKzc0LDkgQEAgQ29udGV4 dDo6VG9vbGJhclZpZXc6OlRvb2xiYXJWaWV3KCBQbGFzbQotICAgICBzZXRWZXJ0aWNhbFNjcm9s bEJhclBvbGljeSggUXQ6OlNjcm9sbEJhckFsd2F5c09mZiApOwotIAotICAgICAvLyBub3cgd2Ug Y3JlYXRlIHRoZSB0b29sYmFyCi0tICAgIG1fdG9vbGJhciA9IG5ldyBBcHBsZXRUb29sYmFyKCBj b250YWlubWVudCApOwotKyAgICBtX3Rvb2xiYXIgPSBuZXcgQXBwbGV0VG9vbGJhcigwKTsKLSsg ICAgc2NlbmUtPmFkZEl0ZW0obV90b29sYmFyLmRhdGEoKSk7Ci0rICAgIG1fdG9vbGJhci5kYXRh KCktPnNldENvbnRhaW5tZW50KCBxb2JqZWN0X2Nhc3Q8Q29udGV4dDo6Q29udGFpbm1lbnQgKj4o Y29udGFpbm1lbnQpICk7Ci0gICAgIG1fdG9vbGJhci5kYXRhKCktPnNldFpWYWx1ZSggbV90b29s YmFyLmRhdGEoKS0+elZhbHVlKCkgKyAxMDAwICk7Ci0gICAgIG1fdG9vbGJhci5kYXRhKCktPnNl dFBvcyggVE9PTEJBUl9YX09GRlNFVCwgMCApOwotIAotQEAgLTk2LDcgKzk4LDcgQEAgQ29udGV4 dDo6VG9vbGJhclZpZXc6OlRvb2xiYXJWaWV3KCBQbGFzbQotIAotIENvbnRleHQ6OlRvb2xiYXJW aWV3Ojp+VG9vbGJhclZpZXcoKQotIHsKLS0KLSsgICAgZGVsZXRlIG1fdG9vbGJhci5kYXRhKCk7 Ci0gfQotIAotIHZvaWQKCmRpZmYgLS1naXQgYS9hbWFyb2stMi41LjAtcHJveHlfbG9hZGluZy5w YXRjaCBiL2FtYXJvay0yLjUuMC1wcm94eV9sb2FkaW5nLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCA2N2EyZjMxLi4wMDAwMDAwCi0tLSBhL2FtYXJvay0yLjUuMC1wcm94eV9s b2FkaW5nLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTE2NyArMCwwIEBACi1kaWZmIC0tZ2l0 IGEvc3JjL0NNYWtlTGlzdHMudHh0IGIvc3JjL0NNYWtlTGlzdHMudHh0Ci1pbmRleCA2ZTU5MGU4 Li45NTZiM2RhIDEwMDY0NAotLS0tIGEvc3JjL0NNYWtlTGlzdHMudHh0Ci0rKysgYi9zcmMvQ01h a2VMaXN0cy50eHQKLUBAIC0yODQsNiArMjg0LDcgQEAgc2V0KGxpYm1ldGFpbXBsX1NSQ1MKLSAg ICAgY29yZS1pbXBsL21ldGEvbXVsdGkvTXVsdGlUcmFjay5jcHAKLSAgICAgY29yZS1pbXBsL21l dGEvY3VlL0N1ZUZpbGVTdXBwb3J0LmNwcAotICAgICBjb3JlLWltcGwvbWV0YS9wcm94eS9NZXRh UHJveHkuY3BwCi0rICAgIGNvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eVdvcmtlci5jcHAK LSAgICAgY29yZS1pbXBsL21ldGEvc3RyZWFtL1N0cmVhbS5jcHAKLSAgICAgY29yZS1pbXBsL3Bs YXlsaXN0cy90eXBlcy9maWxlL1BsYXlsaXN0RmlsZS5jcHAKLSAgICAgY29yZS1pbXBsL3N0YXRp c3RpY3MvcHJvdmlkZXJzL3VybC9QZXJtYW5lbnRVcmxTdGF0aXN0aWNzUHJvdmlkZXIuY3BwCi1k aWZmIC0tZ2l0IGEvc3JjL2NvcmUtaW1wbC9jb2xsZWN0aW9ucy9zdXBwb3J0L0NvbGxlY3Rpb25N YW5hZ2VyLmNwcCBiL3NyYy9jb3JlLWltcGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9u TWFuYWdlci5jcHAKLWluZGV4IDM3ZmUwM2EuLjkwODViNWEgMTAwNjQ0Ci0tLS0gYS9zcmMvY29y ZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQvQ29sbGVjdGlvbk1hbmFnZXIuY3BwCi0rKysgYi9z cmMvY29yZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQvQ29sbGVjdGlvbk1hbmFnZXIuY3BwCi1A QCAtNDYzLDYgKzQ2Myw3IEBAIENvbGxlY3Rpb25NYW5hZ2VyOjp0cmFja0ZvclVybCggY29uc3Qg S1VybCAmdXJsICkKLSAgICAgICAgIH0KLSAgICAgfQotIAotKyAgICAvL1RPRE86IGNyZWF0ZSBz cGVjaWZpYyBUcmFja1Byb3ZpZGVycyBmb3IgdGhlc2U6Ci0gICAgIGlmKCB1cmwucHJvdG9jb2wo KSA9PSBRTGF0aW4xU3RyaW5nKCJodHRwIikgfHwgdXJsLnByb3RvY29sKCkgPT0gUUxhdGluMVN0 cmluZygibW1zIikgfHwKLSAgICAgICAgIHVybC5wcm90b2NvbCgpID09IFFMYXRpbjFTdHJpbmco InNtYiIpICkKLSAgICAgICAgIHJldHVybiBNZXRhOjpUcmFja1B0ciggbmV3IE1ldGFTdHJlYW06 OlRyYWNrKCB1cmwgKSApOwotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9N ZXRhUHJveHkuaCBiL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaAotaW5kZXgg ZDgzMjliZS4uMDYwMjIzZiAxMDA2NDQKLS0tLSBhL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9N ZXRhUHJveHkuaAotKysrIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eS5oCi1A QCAtMTcsNiArMTcsOCBAQAotICNpZm5kZWYgQU1BUk9LX01FVEFQUk9YWV9ICi0gI2RlZmluZSBB TUFST0tfTUVUQVBST1hZX0gKLSAKLSsjaW5jbHVkZSAiTWV0YVByb3h5V29ya2VyLmgiCi0rCi0g I2luY2x1ZGUgImNvcmUvbWV0YS9NZXRhLmgiCi0gI2luY2x1ZGUgImNvcmUvY2FwYWJpbGl0aWVz L0NhcGFiaWxpdHkuaCIKLSAKLUBAIC04Miw2ICs4NCw3IEBAIG5hbWVzcGFjZSBNZXRhUHJveHkK LSAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0RGlzY051bWJlciggaW50IGRpc2NOdW1iZXIg KTsKLSAKLSAgICAgICAgICAgICB2aXJ0dWFsIHFpbnQ2NCBsZW5ndGgoKSBjb25zdDsKLSsgICAg ICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0TGVuZ3RoKCBxaW50NjQgbGVuZ3RoICk7Ci0gICAgICAg ICAgICAgdmlydHVhbCBpbnQgZmlsZXNpemUoKSBjb25zdDsKLSAgICAgICAgICAgICB2aXJ0dWFs IGludCBzYW1wbGVSYXRlKCkgY29uc3Q7Ci0gICAgICAgICAgICAgdmlydHVhbCBpbnQgYml0cmF0 ZSgpIGNvbnN0OwotQEAgLTExMCwxMSArMTEzLDEyIEBAIG5hbWVzcGFjZSBNZXRhUHJveHkKLSAJ CSAqIGFsbG93cyBzdWJjbGFzc2VzIHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0cmFja3Byb3Zp ZGVyIHdoaWNoIHdpbGwgb25seSBjaGVjayB0aGUgVHJhY2tQcm92aWRlcgotIAkJICogcGFzc2Vk IHRvIGxvb2t1cFRyYWNrKFRyYWNrUHJvdmlkZXIqKSBmb3IgdGhlIHJlYWwgdHJhY2suCi0gCQkg Ki8KLS0JCVRyYWNrKCBjb25zdCBLVXJsICZ1cmwsIGJvb2wgYXdhaXRMb29rdXBOb3RpZmljYXRp b24pOwotKyAgICAgICAgVHJhY2soIGNvbnN0IEtVcmwgJnVybCwgYm9vbCBhd2FpdExvb2t1cE5v dGlmaWNhdGlvbiApOwotKwotIAkJLyoqCi0gCQkgKiBNZXRhUHJveHkgd2lsbCBjaGVjayB0aGUg Z2l2ZW4gdHJhY2twcm92aWRlciBpZiBpdCBjYW4gcHJvdmlkZSB0aGUgdHJhY2sgZm9yIHRoZSBw cm94eSdzIHVybC4KLSAJCSAqLwotLQkJdm9pZCBsb29rdXBUcmFjayhDb2xsZWN0aW9uczo6VHJh Y2tQcm92aWRlciAqcHJvdmlkZXIpOwotKyAgICAgICAgdm9pZCBsb29rdXBUcmFjayggQ29sbGVj dGlvbnM6OlRyYWNrUHJvdmlkZXIgKnByb3ZpZGVyICk7Ci0gCi0gICAgICAgICAvKioKLSAgICAg ICAgICAqIE1ldGFQcm94eSB3aWxsIHVwZGF0ZSB0aGUgcHJveHkgd2l0aCB0aGUgdHJhY2suCi1A QCAtMTIzLDcgKzEyNyw3IEBAIG5hbWVzcGFjZSBNZXRhUHJveHkKLSAKLSAgICAgICAgIHByaXZh dGU6Ci0gCQkJdm9pZCBpbml0KCBjb25zdCBLVXJsICZ1cmwsIGJvb2wgYXdhaXRMb29rdXBOb3Rp ZmljYXRpb24gKTsKLS0gICAgICAgICAgICBQcml2YXRlICogY29uc3QgZDsKLSsgICAgICAgICAg ICBQcml2YXRlICpjb25zdCBkOwotICAgICB9OwotIAotIH0KLWRpZmYgLS1naXQgYS9zcmMvY29y ZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5LmNwcCBiL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94 eS9NZXRhUHJveHkuY3BwCi1pbmRleCBkMTU3N2EyLi42YTI3ZjBlIDEwMDY0NAotLS0tIGEvc3Jj L2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eS5jcHAKLSsrKyBiL3NyYy9jb3JlLWltcGwv bWV0YS9wcm94eS9NZXRhUHJveHkuY3BwCi1AQCAtMTcsNiArMTcsNyBAQAotICNpbmNsdWRlICJj b3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaCIKLSAjaW5jbHVkZSAiY29yZS1pbXBsL21l dGEvcHJveHkvTWV0YVByb3h5X3AuaCIKLSAjaW5jbHVkZSAiY29yZS1pbXBsL21ldGEvcHJveHkv TWV0YVByb3h5X3AubW9jIgotKyNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJv eHlXb3JrZXIuaCIKLSAKLSAjaW5jbHVkZSAiY29yZS9jYXBhYmlsaXRpZXMvRWRpdENhcGFiaWxp dHkuaCIKLSAKLUBAIC0yNyw2ICsyOCw3IEBACi0gI2luY2x1ZGUgPFFUaW1lcj4KLSAKLSAjaW5j bHVkZSA8S1NoYXJlZFB0cj4KLSsjaW5jbHVkZSA8dGhyZWFkd2VhdmVyL1RocmVhZFdlYXZlci5o PgotIAotIHVzaW5nIG5hbWVzcGFjZSBNZXRhUHJveHk7Ci0gCi1AQCAtODMsMTggKzg1LDIwIEBA IE1ldGFQcm94eTo6VHJhY2s6OmluaXQoIGNvbnN0IEtVcmwgJnVybCwgYm9vbCBhd2FpdExvb2t1 cE5vdGlmaWNhdGlvbiApCi0gCWQtPnVybCA9IHVybDsKLSAgICAgZC0+cHJveHkgPSB0aGlzOwot ICAgICBkLT5jYWNoZWRMZW5ndGggPSAwOwotLQotLQlpZiggIWF3YWl0TG9va3VwTm90aWZpY2F0 aW9uICkKLS0gICAgewotLSAgICAgICAgUU9iamVjdDo6Y29ubmVjdCggQ29sbGVjdGlvbk1hbmFn ZXI6Omluc3RhbmNlKCksIFNJR05BTCggdHJhY2tQcm92aWRlckFkZGVkKCBDb2xsZWN0aW9uczo6 VHJhY2tQcm92aWRlciogKSApLCBkLCBTTE9UKCBzbG90TmV3VHJhY2tQcm92aWRlciggQ29sbGVj dGlvbnM6OlRyYWNrUHJvdmlkZXIqICkgKSApOwotLSAgICAgICAgUU9iamVjdDo6Y29ubmVjdCgg Q29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCksIFNJR05BTCggY29sbGVjdGlvbkFkZGVkKCBD b2xsZWN0aW9uczo6Q29sbGVjdGlvbiogKSApLCBkLCBTTE9UKCBzbG90TmV3Q29sbGVjdGlvbigg Q29sbGVjdGlvbnM6OkNvbGxlY3Rpb24qICkgKSApOwotLSAgICB9Ci0tCi0gICAgIGQtPmFsYnVt UHRyID0gTWV0YTo6QWxidW1QdHIoIG5ldyBQcm94eUFsYnVtKCBkICkgKTsKLSAgICAgZC0+YXJ0 aXN0UHRyID0gTWV0YTo6QXJ0aXN0UHRyKCBuZXcgUHJveHlBcnRpc3QoIGQgKSApOwotICAgICBk LT5nZW5yZVB0ciA9IE1ldGE6OkdlbnJlUHRyKCBuZXcgUHJveHlHZW5yZSggZCApICk7Ci0gICAg IGQtPmNvbXBvc2VyUHRyID0gTWV0YTo6Q29tcG9zZXJQdHIoIG5ldyBQcm94eUNvbXBvc2VyKCBk ICkgKTsKLSAgICAgZC0+eWVhclB0ciA9IE1ldGE6OlllYXJQdHIoIG5ldyBQcm94eVllYXIoIGQg KSApOwotKwotKyAgICBpZiggIWF3YWl0TG9va3VwTm90aWZpY2F0aW9uICkKLSsgICAgewotKyAg ICAgICAgV29ya2VyICp3b3JrZXIgPSBuZXcgV29ya2VyKCBkLT51cmwgKTsKLSsgICAgICAgIFFP YmplY3Q6OmNvbm5lY3QoIHdvcmtlciwgU0lHTkFMKGZpbmlzaGVkTG9va3VwKCBjb25zdCBNZXRh OjpUcmFja1B0ciAmICkpLAotKyAgICAgICAgICAgICAgICBkLCBTTE9UKHNsb3RVcGRhdGVUcmFj ayhNZXRhOjpUcmFja1B0cikpICk7Ci0rCi0rICAgICAgICBUaHJlYWRXZWF2ZXI6OldlYXZlcjo6 aW5zdGFuY2UoKS0+ZW5xdWV1ZSggd29ya2VyICk7Ci0rICAgIH0KLSB9Ci0gCi0gTWV0YVByb3h5 OjpUcmFjazo6flRyYWNrKCkKLUBAIC0zNDUsNiArMzQ5LDEyIEBAIE1ldGFQcm94eTo6VHJhY2s6 Omxlbmd0aCgpIGNvbnN0Ci0gICAgIHJldHVybiBkLT5jYWNoZWRMZW5ndGg7Ci0gfQotIAotK3Zv aWQKLStNZXRhUHJveHk6OlRyYWNrOjpzZXRMZW5ndGgoIHFpbnQ2NCBsZW5ndGggKQotK3sKLSsg ICAgZC0+Y2FjaGVkTGVuZ3RoID0gbGVuZ3RoOwotK30KLSsKLSBpbnQKLSBNZXRhUHJveHk6OlRy YWNrOjpmaWxlc2l6ZSgpIGNvbnN0Ci0gewotQEAgLTQyNCw3ICs0MzQsNyBAQCBNZXRhUHJveHk6 OlRyYWNrOjppbkNvbGxlY3Rpb24oKSBjb25zdAotICAgICByZXR1cm4gZmFsc2U7Ci0gfQotIAot LUNvbGxlY3Rpb25zOjpDb2xsZWN0aW9uKgotK0NvbGxlY3Rpb25zOjpDb2xsZWN0aW9uICoKLSBN ZXRhUHJveHk6OlRyYWNrOjpjb2xsZWN0aW9uKCkgY29uc3QKLSB7Ci0gICAgIGlmKCBkLT5yZWFs VHJhY2sgKQotQEAgLTQ1MCw3ICs0NjAsMTEgQEAgTWV0YVByb3h5OjpUcmFjazo6dW5zdWJzY3Jp YmUoIE1ldGE6Ok9ic2VydmVyICpvYnNlcnZlciApCi0gdm9pZAotIE1ldGFQcm94eTo6VHJhY2s6 Omxvb2t1cFRyYWNrKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqcHJvdmlkZXIgKQotIHsK LS0JZC0+c2xvdE5ld1RyYWNrUHJvdmlkZXIoIHByb3ZpZGVyICk7Ci0rICAgIGlmKCBwcm92aWRl ci0+cG9zc2libHlDb250YWluc1RyYWNrKCBkLT51cmwgKSApCi0rICAgIHsKLSsgICAgICAgIE1l dGE6OlRyYWNrUHRyIHRyYWNrID0gcHJvdmlkZXItPnRyYWNrRm9yVXJsKCBkLT51cmwgKTsKLSsg ICAgICAgIGQtPnNsb3RVcGRhdGVUcmFjayggdHJhY2sgKTsKLSsgICAgfQotIH0KLSAKLSB2b2lk Ci1AQCAtNDcwLDcgKzQ4NCw3IEBAIE1ldGFQcm94eTo6VHJhY2s6Omhhc0NhcGFiaWxpdHlJbnRl cmZhY2UoIENhcGFiaWxpdGllczo6Q2FwYWJpbGl0eTo6VHlwZSB0eXBlICkKLSAgICAgcmV0dXJu IGZhbHNlOwotIH0KLSAKLS1DYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHkqCi0rQ2FwYWJpbGl0aWVz OjpDYXBhYmlsaXR5ICoKLSBNZXRhUHJveHk6OlRyYWNrOjpjcmVhdGVDYXBhYmlsaXR5SW50ZXJm YWNlKCBDYXBhYmlsaXRpZXM6OkNhcGFiaWxpdHk6OlR5cGUgdHlwZSApCi0gewotICAgICBpZigg ZC0+cmVhbFRyYWNrICkKLUBAIC00ODQsNyArNDk4LDcgQEAgTWV0YVByb3h5OjpUcmFjazo6Y3Jl YXRlQ2FwYWJpbGl0eUludGVyZmFjZSggQ2FwYWJpbGl0aWVzOjpDYXBhYmlsaXR5OjpUeXBlIHR5 cGUKLSBib29sCi0gTWV0YVByb3h5OjpUcmFjazo6b3BlcmF0b3I9PSggY29uc3QgTWV0YTo6VHJh Y2sgJnRyYWNrICkgY29uc3QKLSB7Ci0tICAgIGNvbnN0IE1ldGFQcm94eTo6VHJhY2sgKnByb3h5 ID0gZHluYW1pY19jYXN0PGNvbnN0IE1ldGFQcm94eTo6VHJhY2sqPiggJnRyYWNrICk7Ci0rICAg IGNvbnN0IE1ldGFQcm94eTo6VHJhY2sgKnByb3h5ID0gZHluYW1pY19jYXN0PGNvbnN0IE1ldGFQ cm94eTo6VHJhY2sgKj4oICZ0cmFjayApOwotICAgICBpZiggcHJveHkgJiYgZC0+cmVhbFRyYWNr ICkKLSAgICAgICAgIHJldHVybiBkLT5yZWFsVHJhY2sgPT0gcHJveHktPmQtPnJlYWxUcmFjazsK LSAgICAgZWxzZSBpZiggcHJveHkgKQotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvbWV0YS9w cm94eS9NZXRhUHJveHlXb3JrZXIuaCBiL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJv eHlXb3JrZXIuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4IDAwMDAwMDAuLjU1N2YyOWQK LS0tLSAvZGV2L251bGwKLSsrKyBiL3NyYy9jb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHlX b3JrZXIuaAotQEAgLTAsMCArMSw0MiBAQAotKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCi0rICogQ29weXJpZ2h0IChjKSAyMDEyIEJhcnQgQ2VybmVlbHMgPGJhcnQuY2VybmVlbHNA a2RlLm9yZz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKLSsgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKgotKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyICAgICAgICAqCi0rICog dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgICAgICAgICoKLSsgKiBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciAgICAg ICAgICAgKgotKyAqIHZlcnNpb24uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCi0rICogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICoKLSsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4g dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQgQU5ZICAgICAgKgot KyAqIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgICAgICAqCi0rICogUEFSVElDVUxBUiBQVVJQT1NF LiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuICAg ICAgICAgICAgICoKLSsgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgotKyAqIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFsb25nIHdpdGggICAgICAgICAqCi0rICogdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgICAgICAgICAgICAgICAgICAgICAgICAg ICoKLSsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLSsKLSsjaWZuZGVmIE1FVEFQ Uk9YWV9NRVRBUFJPWFlXT1JLRVJfSAotKyNkZWZpbmUgTUVUQVBST1hZX01FVEFQUk9YWVdPUktF Ul9ICi0rCi0rI2luY2x1ZGUgPGNvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdv cmtlci5oPgotKyNpbmNsdWRlIDxjb3JlL2NvbGxlY3Rpb25zL0NvbGxlY3Rpb24uaD4KLSsKLStu YW1lc3BhY2UgTWV0YVByb3h5IHsKLSsKLStjbGFzcyBXb3JrZXIgOiBwdWJsaWMgQW1hcm9rOjpU cmFja0ZvclVybFdvcmtlcgotK3sKLSsgICAgUV9PQkpFQ1QKLSsgICAgcHVibGljOgotKyAgICAg ICAgZXhwbGljaXQgV29ya2VyKCBjb25zdCBLVXJsICZ1cmwgKTsKLSsKLSsgICAgICAgIC8vVHJh Y2tGb3JVcmxXb3JrZXIgdmlydHVhbCBtZXRob2RzCi0rICAgICAgICB2aXJ0dWFsIHZvaWQgcnVu KCk7Ci0rCi0rICAgIHByaXZhdGUgc2xvdHM6Ci0rICAgICAgICB2b2lkIHNsb3ROZXdUcmFja1By b3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqbmV3VHJhY2tQcm92aWRlciApOwot KyAgICAgICAgdm9pZCBzbG90TmV3Q29sbGVjdGlvbiggQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24g Km5ld0NvbGxlY3Rpb24gKTsKLSsKLSt9OwotKwotK30gLy8gbmFtZXNwYWNlIE1ldGFQcm94eQot KwotKyNlbmRpZiAvLyBNRVRBUFJPWFlfTUVUQVBST1hZV09SS0VSX0gKLWRpZmYgLS1naXQgYS9z cmMvY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5V29ya2VyLmNwcCBiL3NyYy9jb3JlLWlt cGwvbWV0YS9wcm94eS9NZXRhUHJveHlXb3JrZXIuY3BwCi1uZXcgZmlsZSBtb2RlIDEwMDY0NAot aW5kZXggMDAwMDAwMC4uMGNkZTI4MAotLS0tIC9kZXYvbnVsbAotKysrIGIvc3JjL2NvcmUtaW1w bC9tZXRhL3Byb3h5L01ldGFQcm94eVdvcmtlci5jcHAKLUBAIC0wLDAgKzEsODIgQEAKLSsvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKyAqIENvcHlyaWdodCAoYykgMjAxMiBCYXJ0 IENlcm5lZWxzIDxiYXJ0LmNlcm5lZWxzQGtkZS5vcmc+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqCi0rICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoKLSsgKiBUaGlzIHByb2dy YW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlm eSBpdCB1bmRlciAgICAgICAgKgotKyAqIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlICAgICAgICAqCi0r ICogRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv dXIgb3B0aW9uKSBhbnkgbGF0ZXIgICAgICAgICAgICoKLSsgKiB2ZXJzaW9uLiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKgotKyAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqCi0rICogVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws IGJ1dCBXSVRIT1VUIEFOWSAgICAgICoKLSsgKiBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBICAgICAg KgotKyAqIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLiAgICAgICAgICAgICAqCi0rICogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICoKLSsgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhbG9uZyB3aXRoICAgICAgICAgKgotKyAqIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4g ICAgICAgICAgICAgICAgICAgICAgICAgICAqCi0rICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCi0rCi0rI2luY2x1ZGUgIk1ldGFQcm94eVdvcmtlci5oIgotKwotKyNpbmNsdWRlICJj b3JlLWltcGwvY29sbGVjdGlvbnMvc3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdlci5oIgotKwotK25h bWVzcGFjZSBNZXRhUHJveHkgewotKwotK1dvcmtlcjo6V29ya2VyKCBjb25zdCBLVXJsICZ1cmwg KQotKyAgICA6IEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXIoIHVybCApCi0rewotKwotK30KLSsK LSt2b2lkCi0rV29ya2VyOjpydW4oKQotK3sKLSsgICAgTWV0YTo6VHJhY2tQdHIgdHJhY2sgPSBD b2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKS0+dHJhY2tGb3JVcmwoIG1fdXJsICk7Ci0rCi0r ICAgIC8vbm8gVHJhY2tQcm92aWRlciBoYXMgYSB0cmFjayBmb3IgdXMgeWV0LCBxdWVyeSBuZXcg b25lcyB0aGF0IGFyZSBhZGRlZC4KLSsgICAgaWYoIHRyYWNrLmlzTnVsbCgpICkKLSsgICAgewot KyAgICAgICAgLy9UT0RPOiBzaG91bGQgb25seSBoYXZlIHRvIGNvbm5lY3RvIHRvIFRyYWNrUHJv dmlkZXIgc2lnbmFscy4KLSsgICAgICAgIC8vRWFjaCBDb2xsZWN0aW9uIGNvbnRhaW5zIGEgVHJh Y2tQcm92aWRlcgotKyAgICAgICAgY29ubmVjdCggQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNl KCksCi0rICAgICAgICAgICAgICAgICBTSUdOQUwodHJhY2tQcm92aWRlckFkZGVkKCBDb2xsZWN0 aW9uczo6VHJhY2tQcm92aWRlciAqICkpLAotKyAgICAgICAgICAgICAgICAgU0xPVChzbG90TmV3 VHJhY2tQcm92aWRlciggQ29sbGVjdGlvbnM6OlRyYWNrUHJvdmlkZXIgKiApKSApOwotKyAgICAg ICAgY29ubmVjdCggQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCksCi0rICAgICAgICAgICAg ICAgICBTSUdOQUwoY29sbGVjdGlvbkFkZGVkKCBDb2xsZWN0aW9uczo6Q29sbGVjdGlvbiAqICkp LAotKyAgICAgICAgICAgICAgICAgU0xPVChzbG90TmV3Q29sbGVjdGlvbiggQ29sbGVjdGlvbnM6 OkNvbGxlY3Rpb24gKiApKSApOwotKwotKyAgICAgICAgcmV0dXJuOwotKyAgICB9Ci0rCi0rICAg IGVtaXQoIGZpbmlzaGVkTG9va3VwKCB0cmFjayApICk7Ci0rfQotKwotK3ZvaWQKLStXb3JrZXI6 OnNsb3ROZXdUcmFja1Byb3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqbmV3VHJh Y2tQcm92aWRlciApCi0rewotKyAgICBpZiggIW5ld1RyYWNrUHJvdmlkZXIgKQotKyAgICB7Ci0r ICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgICAgaWYoIG5ld1RyYWNrUHJvdmlkZXItPnBv c3NpYmx5Q29udGFpbnNUcmFjayggbV91cmwgKSApCi0rICAgIHsKLSsgICAgICAgIE1ldGE6OlRy YWNrUHRyIHRyYWNrID0gbmV3VHJhY2tQcm92aWRlci0+dHJhY2tGb3JVcmwoIG1fdXJsICk7Ci0r ICAgICAgICBlbWl0KCBmaW5pc2hlZExvb2t1cCggdHJhY2sgKSApOwotKyAgICB9Ci0rfQotKwot K3ZvaWQKLStXb3JrZXI6OnNsb3ROZXdDb2xsZWN0aW9uKCBDb2xsZWN0aW9uczo6Q29sbGVjdGlv biAqbmV3Q29sbGVjdGlvbiApCi0rewotKyAgICBpZiggIW5ld0NvbGxlY3Rpb24gKQotKyAgICB7 Ci0rICAgICAgICByZXR1cm47Ci0rICAgIH0KLSsKLSsgICAgaWYoIG5ld0NvbGxlY3Rpb24tPnBv c3NpYmx5Q29udGFpbnNUcmFjayggbV91cmwgKSApCi0rICAgIHsKLSsgICAgICAgIE1ldGE6OlRy YWNrUHRyIHRyYWNrID0gbmV3Q29sbGVjdGlvbi0+dHJhY2tGb3JVcmwoIG1fdXJsICk7Ci0rICAg ICAgICBlbWl0KCBmaW5pc2hlZExvb2t1cCggdHJhY2sgKSApOwotKyAgICB9Ci0rfQotKwotK30g Ly8gbmFtZXNwYWNlIE1ldGFQcm94eQotZGlmZiAtLWdpdCBhL3NyYy9jb3JlLWltcGwvbWV0YS9w cm94eS9NZXRhUHJveHlfcC5oIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01ldGFQcm94eV9w LmgKLWluZGV4IDc5MjY3NWQuLjM2MGJlMjEgMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS1pbXBsL21l dGEvcHJveHkvTWV0YVByb3h5X3AuaAotKysrIGIvc3JjL2NvcmUtaW1wbC9tZXRhL3Byb3h5L01l dGFQcm94eV9wLmgKLUBAIC00Myw3ICs0Myw3IEBAIGNsYXNzIE1ldGFQcm94eTo6VHJhY2s6OlBy aXZhdGUgOiBwdWJsaWMgUU9iamVjdCwgcHVibGljIE1ldGE6Ok9ic2VydmVyCi0gCi0gICAgICAg ICBNZXRhOjpUcmFja1B0ciByZWFsVHJhY2s7Ci0gCi0tICAgICAgICBRTGlzdDxNZXRhOjpPYnNl cnZlcio+IG9ic2VydmVyczsKLSsgICAgICAgIFFMaXN0PE1ldGE6Ok9ic2VydmVyICo+IG9ic2Vy dmVyczsKLSAKLSAgICAgICAgIFFTdHJpbmcgY2FjaGVkQXJ0aXN0OwotICAgICAgICAgUVN0cmlu ZyBjYWNoZWRBbGJ1bTsKLUBAIC04MiwzNCArODIsNiBAQCBjbGFzcyBNZXRhUHJveHk6OlRyYWNr OjpQcml2YXRlIDogcHVibGljIFFPYmplY3QsIHB1YmxpYyBNZXRhOjpPYnNlcnZlcgotICAgICAg ICAgfQotIAotICAgICBwdWJsaWMgc2xvdHM6Ci0tICAgICAgICB2b2lkIHNsb3ROZXdUcmFja1By b3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciAqbmV3VHJhY2tQcm92aWRlciApCi0t ICAgICAgICB7Ci0tICAgICAgICAgICAgaWYgKCAhbmV3VHJhY2tQcm92aWRlciApCi0tICAgICAg ICAgICAgewotLSAgICAgICAgICAgICAgICByZXR1cm47Ci0tICAgICAgICAgICAgfQotLQotLSAg ICAgICAgICAgIGlmKCBuZXdUcmFja1Byb3ZpZGVyLT5wb3NzaWJseUNvbnRhaW5zVHJhY2soIHVy bCApICkKLS0gICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIE1ldGE6OlRyYWNrUHRyIHRy YWNrID0gbmV3VHJhY2tQcm92aWRlci0+dHJhY2tGb3JVcmwoIHVybCApOwotLSAgICAgICAgICAg ICAgICBzbG90VXBkYXRlVHJhY2soIHRyYWNrICk7Ci0tICAgICAgICAgICAgfQotLSAgICAgICAg fQotLQotLSAgICAgICAgdm9pZCBzbG90TmV3Q29sbGVjdGlvbiggQ29sbGVjdGlvbnM6OkNvbGxl Y3Rpb24gKm5ld0NvbGxlY3Rpb24gKQotLSAgICAgICAgewotLSAgICAgICAgICAgIGlmICggIW5l d0NvbGxlY3Rpb24gKQotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgcmV0dXJuOwot LSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICBpZiggbmV3Q29sbGVjdGlvbi0+cG9zc2li bHlDb250YWluc1RyYWNrKCB1cmwgKSApCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAg ICBNZXRhOjpUcmFja1B0ciB0cmFjayA9IG5ld0NvbGxlY3Rpb24tPnRyYWNrRm9yVXJsKCB1cmwg KTsKLS0gICAgICAgICAgICAgICAgc2xvdFVwZGF0ZVRyYWNrKCB0cmFjayApOwotLSAgICAgICAg ICAgIH0KLS0gICAgICAgIH0KLS0KLSAgICAgICAgIHZvaWQgc2xvdFVwZGF0ZVRyYWNrKCBNZXRh OjpUcmFja1B0ciB0cmFjayApCi0gICAgICAgICB7Ci0gICAgICAgICAgICAgaWYoIHRyYWNrICkK LUBAIC0xMTcsOCArODksNiBAQCBjbGFzcyBNZXRhUHJveHk6OlRyYWNrOjpQcml2YXRlIDogcHVi bGljIFFPYmplY3QsIHB1YmxpYyBNZXRhOjpPYnNlcnZlcgotICAgICAgICAgICAgICAgICBzdWJz Y3JpYmVUbyggdHJhY2sgKTsKLSAgICAgICAgICAgICAgICAgcmVhbFRyYWNrID0gdHJhY2s7Ci0g ICAgICAgICAgICAgICAgIG5vdGlmeU9ic2VydmVycygpOwotLSAgICAgICAgICAgICAgICBkaXNj b25uZWN0KCBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKSwgU0lHTkFMKCB0cmFja1Byb3Zp ZGVyQWRkZWQoIENvbGxlY3Rpb25zOjpUcmFja1Byb3ZpZGVyKiApICksIHRoaXMsIFNMT1QoIHNs b3ROZXdUcmFja1Byb3ZpZGVyKCBDb2xsZWN0aW9uczo6VHJhY2tQcm92aWRlciogKSApICk7Ci0t ICAgICAgICAgICAgICAgIGRpc2Nvbm5lY3QoIENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgp LCBTSUdOQUwoIGNvbGxlY3Rpb25BZGRlZCggQ29sbGVjdGlvbnM6OkNvbGxlY3Rpb24qICkgKSwg dGhpcywgU0xPVCggc2xvdE5ld0NvbGxlY3Rpb24oIENvbGxlY3Rpb25zOjpDb2xsZWN0aW9uKiAp ICkgKTsKLSAgICAgICAgICAgICB9Ci0gICAgICAgICB9Ci0gfTsKLWRpZmYgLS1naXQgYS9zcmMv Y29yZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL20zdS9NM1VQbGF5bGlzdC5jcHAgYi9zcmMv Y29yZS1pbXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL20zdS9NM1VQbGF5bGlzdC5jcHAKLWluZGV4 IGM2NGNiOTcuLjk4OWU4ZDcgMTAwNjQ0Ci0tLS0gYS9zcmMvY29yZS1pbXBsL3BsYXlsaXN0cy90 eXBlcy9maWxlL20zdS9NM1VQbGF5bGlzdC5jcHAKLSsrKyBiL3NyYy9jb3JlLWltcGwvcGxheWxp c3RzL3R5cGVzL2ZpbGUvbTN1L00zVVBsYXlsaXN0LmNwcAotQEAgLTIxLDYgKzIxLDcgQEAKLSAj aW5jbHVkZSAiY29yZS9zdXBwb3J0L0FtYXJvay5oIgotICNpbmNsdWRlICJjb3JlL3N1cHBvcnQv RGVidWcuaCIKLSAjaW5jbHVkZSAiY29yZS1pbXBsL2NvbGxlY3Rpb25zL3N1cHBvcnQvQ29sbGVj dGlvbk1hbmFnZXIuaCIKLSsjaW5jbHVkZSAiY29yZS1pbXBsL21ldGEvcHJveHkvTWV0YVByb3h5 LmgiCi0gI2luY2x1ZGUgImNvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS9QbGF5bGlzdEZp bGVTdXBwb3J0LmgiCi0gI2luY2x1ZGUgInBsYXlsaXN0bWFuYWdlci9maWxlL1BsYXlsaXN0Rmls ZVByb3ZpZGVyLmgiCi0gI2luY2x1ZGUgIlBsYXlsaXN0TWFuYWdlci5oIgotQEAgLTE1MCwyMCAr MTUxLDI1IEBAIGJvb2wKLSBNM1VQbGF5bGlzdDo6bG9hZE0zdSggUVRleHRTdHJlYW0gJnN0cmVh bSApCi0gewotICAgICBjb25zdCBRU3RyaW5nIGRpcmVjdG9yeSA9IG1fdXJsLmRpcmVjdG9yeSgp OwotLSAgICBib29sIGhhc1RyYWNrcyA9IGZhbHNlOwotICAgICBtX3RyYWNrc0xvYWRlZCA9IGZh bHNlOwotIAotKyAgICBpbnQgbGVuZ3RoID0gLTE7Ci0rICAgIFFTdHJpbmcgZXh0aW5mVGl0bGU7 Ci0gICAgIGRvCi0gICAgIHsKLSAgICAgICAgIFFTdHJpbmcgbGluZSA9IHN0cmVhbS5yZWFkTGlu ZSgpOwotICAgICAgICAgaWYoIGxpbmUuc3RhcnRzV2l0aCggIiNFWFRJTkYiICkgKQotICAgICAg ICAgewotLSAgICAgICAgICAgIC8vY29uc3QgUVN0cmluZyBleHRpbmYgPSBsaW5lLnNlY3Rpb24o ICc6JywgMSApOwotLSAgICAgICAgICAgIC8vY29uc3QgaW50IGxlbmd0aCA9IGV4dGluZi5zZWN0 aW9uKCAnLCcsIDAsIDAgKS50b0ludCgpOwotKyAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgZXh0 aW5mID0gbGluZS5zZWN0aW9uKCAnOicsIDEgKTsKLSsgICAgICAgICAgICBib29sIG9rOwotKyAg ICAgICAgICAgIGxlbmd0aCA9IGV4dGluZi5zZWN0aW9uKCAnLCcsIDAsIDAgKS50b0ludCggJm9r ICk7Ci0rICAgICAgICAgICAgaWYoICFvayApCi0rICAgICAgICAgICAgICAgIGxlbmd0aCA9IC0x OwotKyAgICAgICAgICAgIGV4dGluZlRpdGxlID0gZXh0aW5mLnNlY3Rpb24oICcsJywgMSApOwot ICAgICAgICAgfQotICAgICAgICAgZWxzZSBpZiggIWxpbmUuc3RhcnRzV2l0aCggJyMnICkgJiYg IWxpbmUuaXNFbXB0eSgpICkKLSAgICAgICAgIHsKLS0gICAgICAgICAgICBNZXRhOjpUcmFja1B0 ciB0cmFja1B0cjsKLSsgICAgICAgICAgICBNZXRhUHJveHk6OlRyYWNrICpwcm94eVRyYWNrOwot ICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoICJcXCIsICIvIiApOwotIAotICAgICAg ICAgICAgIC8vIEtVcmw6OmlzUmVsYXRpdmVVcmwoKSBleHBlY3RzIGFic29sdXRlIFVSTHMgdG8g c3RhcnQgd2l0aCBhIHByb3RvY29sLCBzbyBwcmVwZW5kIGl0IGlmIG1pc3NpbmcKLUBAIC0xODAs MjIgKzE4NiwzMCBAQCBNM1VQbGF5bGlzdDo6bG9hZE0zdSggUVRleHRTdHJlYW0gJnN0cmVhbSAp Ci0gICAgICAgICAgICAgICAgIGt1cmwuYWRkUGF0aCggbGluZSApOyAvLyBhZGRzIGRpcmVjdG9y eSBzZXBhcmF0b3IgaWYgcmVxdWlyZWQKLSAgICAgICAgICAgICAgICAga3VybC5jbGVhblBhdGgo KTsKLSAKLS0gICAgICAgICAgICAgICAgdHJhY2tQdHIgPSBDb2xsZWN0aW9uTWFuYWdlcjo6aW5z dGFuY2UoKS0+dHJhY2tGb3JVcmwoIGt1cmwgKTsKLSsgICAgICAgICAgICAgICAgdXJsID0ga3Vy bC51cmwoKTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAgZWxzZQotKwotKyAgICAgICAg ICAgIHByb3h5VHJhY2sgPSBuZXcgTWV0YVByb3h5OjpUcmFjayggS1VybCggdXJsICkgKTsKLSsg ICAgICAgICAgICBRU3RyaW5nIGFydGlzdCA9IGV4dGluZlRpdGxlLnNlY3Rpb24oICIgLSAiLCAw LCAwICk7Ci0rICAgICAgICAgICAgUVN0cmluZyB0aXRsZSA9IGV4dGluZlRpdGxlLnNlY3Rpb24o ICIgLSAiLCAxLCAxICk7Ci0rICAgICAgICAgICAgLy9pZiB0aXRsZSBhbmQgYXJ0aXN0IGFyZSBz YXZlZCBzdWNoIGFzIGluIE0zVVBsYXlsaXN0OjpzYXZlKCkKLSsgICAgICAgICAgICBpZiggIXRp dGxlLmlzRW1wdHkoKSAmJiAhYXJ0aXN0LmlzRW1wdHkoKSApCi0gICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICB0cmFja1B0ciA9IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLT50 cmFja0ZvclVybCggS1VybCggbGluZSApICk7Ci0rICAgICAgICAgICAgICAgIHByb3h5VHJhY2st PnNldE5hbWUoIHRpdGxlICk7Ci0rICAgICAgICAgICAgICAgIHByb3h5VHJhY2stPnNldEFydGlz dCggYXJ0aXN0ICk7Ci0gICAgICAgICAgICAgfQotLQotLSAgICAgICAgICAgIGlmKCB0cmFja1B0 ciApCi0rICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAg bV90cmFja3MuYXBwZW5kKCB0cmFja1B0ciApOwotLSAgICAgICAgICAgICAgICBoYXNUcmFja3Mg PSB0cnVlOwotLSAgICAgICAgICAgICAgICBtX3RyYWNrc0xvYWRlZCA9IHRydWU7Ci0rICAgICAg ICAgICAgICAgIHByb3h5VHJhY2stPnNldE5hbWUoIGV4dGluZlRpdGxlICk7Ci0gICAgICAgICAg ICAgfQotKyAgICAgICAgICAgIHByb3h5VHJhY2stPnNldExlbmd0aCggbGVuZ3RoICk7Ci0rICAg ICAgICAgICAgbV90cmFja3MgPDwgTWV0YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsKLSsgICAg ICAgICAgICBtX3RyYWNrc0xvYWRlZCA9IHRydWU7Ci0gICAgICAgICB9Ci0gICAgIH0gd2hpbGUo ICFzdHJlYW0uYXRFbmQoKSApOwotLSAgICByZXR1cm4gaGFzVHJhY2tzOwotKwotKyAgICAvL1RP RE86IHJldHVybiBmYWxzZSBpZiBzdHJlYW0gaXMgbm90IHJlYWRhYmxlLCBlbXB0eSBvciBoYXMg ZXJyb3JzCi0rICAgIHJldHVybiB0cnVlOwotIH0KLSAKLSBib29sCi1kaWZmIC0tZ2l0IGEvc3Jj L2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS9wbHMvUExTUGxheWxpc3QuY3BwIGIvc3Jj L2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS9wbHMvUExTUGxheWxpc3QuY3BwCi1pbmRl eCA2N2VkNjhlLi4zODY3MzRhIDEwMDY0NAotLS0tIGEvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMv dHlwZXMvZmlsZS9wbHMvUExTUGxheWxpc3QuY3BwCi0rKysgYi9zcmMvY29yZS1pbXBsL3BsYXls aXN0cy90eXBlcy9maWxlL3Bscy9QTFNQbGF5bGlzdC5jcHAKLUBAIC0yMSw2ICsyMSw3IEBACi0g I2luY2x1ZGUgImNvcmUvY2FwYWJpbGl0aWVzL0VkaXRDYXBhYmlsaXR5LmgiCi0gI2luY2x1ZGUg ImNvcmUvbWV0YS9NZXRhLmgiCi0gI2luY2x1ZGUgIlBsYXlsaXN0TWFuYWdlci5oIgotKyNpbmNs dWRlICJjb3JlLWltcGwvbWV0YS9wcm94eS9NZXRhUHJveHkuaCIKLSAjaW5jbHVkZSAiY29yZS1p bXBsL3BsYXlsaXN0cy90eXBlcy9maWxlL1BsYXlsaXN0RmlsZVN1cHBvcnQuaCIKLSAKLSAjaW5j bHVkZSA8S01pbWVUeXBlPgotQEAgLTcyLDcgKzczLDcgQEAgUExTUGxheWxpc3Q6OnRyYWNrQ291 bnQoKSBjb25zdAotICAgICBpZiggbV90cmFja3NMb2FkZWQgKQotICAgICAgICAgcmV0dXJuIG1f dHJhY2tzLmNvdW50KCk7Ci0gCi0tICAgIC8vVE9ETzogY291bnQgdGhlIG51bWJlciBvZiBsaW5l cyBzdGFydGluZyB3aXRoICMKLSsgICAgLy9UT0RPOiByZWFkIE51bWJlck9mRW50cmllcyBmcm9t IGZvb3RlcgotICAgICByZXR1cm4gLTE7Ci0gfQotIAotQEAgLTE0NiwxMSArMTQ3LDkgQEAgUExT UGxheWxpc3Q6OnJlbW92ZVRyYWNrKCBpbnQgcG9zaXRpb24gKQotIH0KLSAKLSBib29sCi0tUExT UGxheWxpc3Q6OmxvYWRQbHMoIFFUZXh0U3RyZWFtICZzdHJlYW0gKQotK1BMU1BsYXlsaXN0Ojps b2FkUGxzKCBRVGV4dFN0cmVhbSAmdGV4dFN0cmVhbSApCi0gewotLSAgICBERUJVR19CTE9DSwot LQotLSAgICBNZXRhOjpUcmFja1B0ciBjdXJyZW50VHJhY2s7Ci0rICAgIE1ldGFQcm94eTo6VHJh Y2sgKnByb3h5VHJhY2s7Ci0gCi0gICAgIC8vIENvdW50ZWQgbnVtYmVyIG9mICJGaWxlIz0iIGxp bmVzLgotICAgICB1bnNpZ25lZCBpbnQgZW50cnlDbnQgPSAwOwotQEAgLTE3MiwyNyArMTcxLDMy IEBAIFBMU1BsYXlsaXN0Ojpsb2FkUGxzKCBRVGV4dFN0cmVhbSAmc3RyZWFtICkKLSAgICAgKiBS ZWFkIHRoZSBsaW5lcyBpbnRvIGEgYnVmZmVyOyBDbGVhbnVwIHRoZSBsaW5lIHN0cmluZ3M7Ci0g ICAgICogQ291bnQgdGhlIGVudHJpZXMgbWFudWFsbHkgYW5kIHJlYWQgIk51bWJlck9mRW50cmll cyIuCi0gICAgICovCi0tICAgIHdoaWxlICghc3RyZWFtLmF0RW5kKCkpIHsKLS0gICAgICAgIHRt cCA9IHN0cmVhbS5yZWFkTGluZSgpOwotKyAgICB3aGlsZSggIXRleHRTdHJlYW0uYXRFbmQoKSAp Ci0rICAgIHsKLSsgICAgICAgIHRtcCA9IHRleHRTdHJlYW0ucmVhZExpbmUoKTsKLSAgICAgICAg IHRtcCA9IHRtcC50cmltbWVkKCk7Ci0tICAgICAgICBpZiAodG1wLmlzRW1wdHkoKSkKLSsgICAg ICAgIGlmKCB0bXAuaXNFbXB0eSgpICkKLSAgICAgICAgICAgICBjb250aW51ZTsKLS0gICAgICAg IGxpbmVzLmFwcGVuZCh0bXApOwotKyAgICAgICAgbGluZXMuYXBwZW5kKCB0bXAgKTsKLSAKLS0g ICAgICAgIGlmICh0bXAuY29udGFpbnMocmVnRXhwX0ZpbGUpKSB7Ci0rICAgICAgICBpZiggdG1w LmNvbnRhaW5zKCByZWdFeHBfRmlsZSApICkKLSsgICAgICAgIHsKLSAgICAgICAgICAgICBlbnRy eUNudCsrOwotICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgfQotLSAgICAgICAgaWYg KHRtcCA9PSBzZWN0aW9uX3BsYXlsaXN0KSB7Ci0rICAgICAgICBpZiggdG1wID09IHNlY3Rpb25f cGxheWxpc3QgKQotKyAgICAgICAgewotICAgICAgICAgICAgIGhhdmVQbGF5bGlzdFNlY3Rpb24g PSB0cnVlOwotICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgfQotLSAgICAgICAgaWYg KHRtcC5jb250YWlucyhyZWdFeHBfTnVtYmVyT2ZFbnRyaWVzKSkgewotLSAgICAgICAgICAgIG51 bWJlck9mRW50cmllcyA9IHRtcC5zZWN0aW9uKCc9JywgLTEpLnRyaW1tZWQoKS50b1VJbnQoKTsK LSsgICAgICAgIGlmKCB0bXAuY29udGFpbnMoIHJlZ0V4cF9OdW1iZXJPZkVudHJpZXMgKSApCi0r ICAgICAgICB7Ci0rICAgICAgICAgICAgbnVtYmVyT2ZFbnRyaWVzID0gdG1wLnNlY3Rpb24oICc9 JywgLTEgKS50cmltbWVkKCkudG9VSW50KCk7Ci0gICAgICAgICAgICAgY29udGludWU7Ci0gICAg ICAgICB9Ci0gICAgIH0KLS0gICAgaWYgKG51bWJlck9mRW50cmllcyAhPSBlbnRyeUNudCkgewot KyAgICBpZiggbnVtYmVyT2ZFbnRyaWVzICE9IGVudHJ5Q250ICkKLSsgICAgewotICAgICAgICAg d2FybmluZygpIDw8ICIucGxzIHBsYXlsaXN0OiBJbnZhbGlkIFwiTnVtYmVyT2ZFbnRyaWVzXCIg dmFsdWUuICAiCi0gICAgICAgICAgICAgICAgIDw8ICJOdW1iZXJPZkVudHJpZXM9IiA8PCBudW1i ZXJPZkVudHJpZXMgPDwgIiAgY291bnRlZD0iCi0gICAgICAgICAgICAgICAgIDw8IGVudHJ5Q250 IDw8IGVuZGw7Ci1AQCAtMjAyLDcgKzIwNiw3IEBAIFBMU1BsYXlsaXN0Ojpsb2FkUGxzKCBRVGV4 dFN0cmVhbSAmc3RyZWFtICkKLSAgICAgICAgICovCi0gICAgICAgICBudW1iZXJPZkVudHJpZXMg PSBlbnRyeUNudDsKLSAgICAgfQotLSAgICBpZiAoIW51bWJlck9mRW50cmllcykKLSsgICAgaWYo IG51bWJlck9mRW50cmllcyA9PSAwICkKLSAgICAgICAgIHJldHVybiB0cnVlOwotIAotICAgICB1 bnNpZ25lZCBpbnQgaW5kZXg7Ci1AQCAtMjEzLDY3ICsyMTcsNjkgQEAgUExTUGxheWxpc3Q6Omxv YWRQbHMoIFFUZXh0U3RyZWFtICZzdHJlYW0gKQotICAgICAqIGFuZCBwYXJzZSB0aGUgcGxheWxp c3QgZGF0YS4KLSAgICAgKi8KLSAgICAgUVN0cmluZ0xpc3Q6OmNvbnN0X2l0ZXJhdG9yIGkgPSBs aW5lcy5jb25zdEJlZ2luKCksIGVuZCA9IGxpbmVzLmNvbnN0RW5kKCk7Ci0tICAgIGZvciAoIDsg aSAhPSBlbmQ7ICsraSkgewotLSAgICAgICAgaWYgKCFpblBsYXlsaXN0U2VjdGlvbiAmJiBoYXZl UGxheWxpc3RTZWN0aW9uKSB7Ci0rICAgIGZvciggOyBpICE9IGVuZDsgKytpICkKLSsgICAgewot KyAgICAgICAgaWYoICFpblBsYXlsaXN0U2VjdGlvbiAmJiBoYXZlUGxheWxpc3RTZWN0aW9uICkK LSsgICAgICAgIHsKLSAgICAgICAgICAgICAvKiBUaGUgcGxheWxpc3QgYmVnaW5zIHdpdGggdGhl ICJbcGxheWxpc3RdIiB0YWcuCi0gICAgICAgICAgICAgKiBTa2lwIGV2ZXJ5dGhpbmcgYmVmb3Jl IHRoaXMuCi0gICAgICAgICAgICAgKi8KLS0gICAgICAgICAgICBpZiAoKCppKSA9PSBzZWN0aW9u X3BsYXlsaXN0KQotKyAgICAgICAgICAgIGlmKCAoKmkpID09IHNlY3Rpb25fcGxheWxpc3QgKQot ICAgICAgICAgICAgICAgICBpblBsYXlsaXN0U2VjdGlvbiA9IHRydWU7Ci0gICAgICAgICAgICAg Y29udGludWU7Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAoKCppKS5jb250YWlucyhyZWdFeHBf RmlsZSkpIHsKLSsgICAgICAgIGlmKCAoKmkpLmNvbnRhaW5zKCByZWdFeHBfRmlsZSApICkKLSsg ICAgICAgIHsKLSAgICAgICAgICAgICAvLyBIYXZlIGEgIkZpbGUjPVhZWiIgbGluZS4KLS0gICAg ICAgICAgICBpbmRleCA9IGxvYWRQbHNfZXh0cmFjdEluZGV4KCppKTsKLS0gICAgICAgICAgICBp ZiAoaW5kZXggPiBudW1iZXJPZkVudHJpZXMgfHwgaW5kZXggPT0gMCkKLSsgICAgICAgICAgICBp bmRleCA9IGxvYWRQbHNfZXh0cmFjdEluZGV4KCAqaSApOwotKyAgICAgICAgICAgIGlmKCBpbmRl eCA+IG51bWJlck9mRW50cmllcyB8fCBpbmRleCA9PSAwICkKLSAgICAgICAgICAgICAgICAgY29u dGludWU7Ci0tICAgICAgICAgICAgdG1wID0gKCppKS5zZWN0aW9uKCc9JywgMSkudHJpbW1lZCgp OwotLSAgICAgICAgICAgIGN1cnJlbnRUcmFjayA9IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5j ZSgpLT50cmFja0ZvclVybCggdG1wICk7Ci0tICAgICAgICAgICAgaWYoIGN1cnJlbnRUcmFjay5p c051bGwoKSApCi0rICAgICAgICAgICAgdG1wID0gKCppKS5zZWN0aW9uKCAnPScsIDEgKS50cmlt bWVkKCk7Ci0rICAgICAgICAgICAgS1VybCB1cmwoIHRtcCApOwotKyAgICAgICAgICAgIGlmKCB1 cmwuaXNSZWxhdGl2ZSgpICkKLSAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgIGRlYnVn KCkgPDwgInRyYWNrIGNvdWxkIG5vdCBiZSBsb2FkZWQ6ICIgPDwgdG1wOwotLSAgICAgICAgICAg ICAgICBjb250aW51ZTsKLSsgICAgICAgICAgICAgICAgdXJsID0gbV91cmw7Ci0rICAgICAgICAg ICAgICAgIHVybC5hZGRQYXRoKCB0bXAgKTsKLSAgICAgICAgICAgICB9Ci0tICAgICAgICAgICAg bV90cmFja3MuYXBwZW5kKCBjdXJyZW50VHJhY2sgKTsKLSsgICAgICAgICAgICBwcm94eVRyYWNr ID0gbmV3IE1ldGFQcm94eTo6VHJhY2soIHVybCApOwotKyAgICAgICAgICAgIG1fdHJhY2tzIDw8 IE1ldGE6OlRyYWNrUHRyKCBwcm94eVRyYWNrICk7Ci0gICAgICAgICAgICAgY29udGludWU7Ci0g ICAgICAgICB9Ci0tICAgICAgICBpZiAoKCppKS5jb250YWlucyhyZWdFeHBfVGl0bGUpKSB7Ci0r ICAgICAgICBpZiggKCppKS5jb250YWlucyhyZWdFeHBfVGl0bGUpICkKLSsgICAgICAgIHsKLSAg ICAgICAgICAgICAvLyBIYXZlIGEgIlRpdGxlIz1YWVoiIGxpbmUuCi0gICAgICAgICAgICAgaW5k ZXggPSBsb2FkUGxzX2V4dHJhY3RJbmRleCgqaSk7Ci0tICAgICAgICAgICAgaWYgKGluZGV4ID4g bnVtYmVyT2ZFbnRyaWVzIHx8IGluZGV4ID09IDApCi0rICAgICAgICAgICAgaWYoIGluZGV4ID4g bnVtYmVyT2ZFbnRyaWVzIHx8IGluZGV4ID09IDAgKQotICAgICAgICAgICAgICAgICBjb250aW51 ZTsKLS0gICAgICAgICAgICB0bXAgPSAoKmkpLnNlY3Rpb24oJz0nLCAxKS50cmltbWVkKCk7Ci0t Ci0tICAgICAgICAgICAgaWYgKCBjdXJyZW50VHJhY2suZGF0YSgpICE9IDAgJiYgY3VycmVudFRy YWNrLT5pczxDYXBhYmlsaXRpZXM6OkVkaXRDYXBhYmlsaXR5PigpICkKLS0gICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgIENhcGFiaWxpdGllczo6RWRpdENhcGFiaWxpdHkgKmVjID0gY3Vy cmVudFRyYWNrLT5jcmVhdGU8Q2FwYWJpbGl0aWVzOjpFZGl0Q2FwYWJpbGl0eT4oKTsKLS0gICAg ICAgICAgICAgICAgaWYoIGVjICkKLS0gICAgICAgICAgICAgICAgICAgIGVjLT5zZXRUaXRsZSgg dG1wICk7Ci0tICAgICAgICAgICAgICAgIGRlbGV0ZSBlYzsKLS0gICAgICAgICAgICB9Ci0rICAg ICAgICAgICAgdG1wID0gKCppKS5zZWN0aW9uKCAnPScsIDEgKS50cmltbWVkKCk7Ci0rICAgICAg ICAgICAgcHJveHlUcmFjay0+c2V0TmFtZSggdG1wICk7Ci0gICAgICAgICAgICAgY29udGludWU7 Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAoKCppKS5jb250YWlucyhyZWdFeHBfTGVuZ3RoKSkg ewotKyAgICAgICAgaWYoICgqaSkuY29udGFpbnMoIHJlZ0V4cF9MZW5ndGggKSApCi0rICAgICAg ICB7Ci0gICAgICAgICAgICAgLy8gSGF2ZSBhICJMZW5ndGgjPVhZWiIgbGluZS4KLSAgICAgICAg ICAgICBpbmRleCA9IGxvYWRQbHNfZXh0cmFjdEluZGV4KCppKTsKLS0gICAgICAgICAgICBpZiAo aW5kZXggPiBudW1iZXJPZkVudHJpZXMgfHwgaW5kZXggPT0gMCkKLSsgICAgICAgICAgICBpZigg aW5kZXggPiBudW1iZXJPZkVudHJpZXMgfHwgaW5kZXggPT0gMCApCi0gICAgICAgICAgICAgICAg IGNvbnRpbnVlOwotLSAgICAgICAgICAgIHRtcCA9ICgqaSkuc2VjdGlvbignPScsIDEpLnRyaW1t ZWQoKTsKLS0gICAgICAgICAgICAvL3RyYWNrcy5hcHBlbmQoIEtVcmwodG1wKSApOwotLS8vICAg ICAgICAgICAgIFFfQVNTRVJUKG9rKTsKLSsgICAgICAgICAgICB0bXAgPSAoKmkpLnNlY3Rpb24o ICc9JywgMSApLnRyaW1tZWQoKTsKLSsgICAgICAgICAgICBib29sIG9rID0gZmFsc2U7Ci0rICAg ICAgICAgICAgaW50IHNlY29uZHMgPSB0bXAudG9JbnQoICZvayApOwotKyAgICAgICAgICAgIGlm KCBvayApCi0rICAgICAgICAgICAgICAgIHByb3h5VHJhY2stPnNldExlbmd0aCggc2Vjb25kcyAq IDEwMDAgKTsgLy9sZW5ndGggaXMgaW4gbWlsbGlzZWNvbmRzCi0gICAgICAgICAgICAgY29udGlu dWU7Ci0gICAgICAgICB9Ci0tICAgICAgICBpZiAoKCppKS5jb250YWlucyhyZWdFeHBfTnVtYmVy T2ZFbnRyaWVzKSkgewotKyAgICAgICAgaWYoICgqaSkuY29udGFpbnMoIHJlZ0V4cF9OdW1iZXJP ZkVudHJpZXMgKSApCi0rICAgICAgICB7Ci0gICAgICAgICAgICAgLy8gSGF2ZSB0aGUgIk51bWJl ck9mRW50cmllcz0jIiBsaW5lLgotICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgfQot LSAgICAgICAgaWYgKCgqaSkuY29udGFpbnMocmVnRXhwX1ZlcnNpb24pKSB7Ci0rICAgICAgICBp ZiggKCppKS5jb250YWlucyggcmVnRXhwX1ZlcnNpb24gKSApCi0rICAgICAgICB7Ci0gICAgICAg ICAgICAgLy8gSGF2ZSB0aGUgIlZlcnNpb249IyIgbGluZS4KLS0gICAgICAgICAgICB0bXAgPSAo KmkpLnNlY3Rpb24oJz0nLCAxKS50cmltbWVkKCk7Ci0rICAgICAgICAgICAgdG1wID0gKCppKS5z ZWN0aW9uKCAnPScsIDEgKS50cmltbWVkKCk7Ci0gICAgICAgICAgICAgLy8gV2Ugb25seSBzdXBw b3J0IFZlcnNpb249MgotLSAgICAgICAgICAgIGlmICh0bXAudG9VSW50KCZvaykgIT0gMikKLSsg ICAgICAgICAgICBpZiAodG1wLnRvVUludCggJm9rICkgIT0gMikKLSAgICAgICAgICAgICAgICAg d2FybmluZygpIDw8ICIucGxzIHBsYXlsaXN0OiBVbnN1cHBvcnRlZCB2ZXJzaW9uLiIgPDwgZW5k bDsKLS0vLyAgICAgICAgICAgICBRX0FTU0VSVChvayk7Ci0gICAgICAgICAgICAgY29udGludWU7 Ci0gICAgICAgICB9Ci0gICAgICAgICB3YXJuaW5nKCkgPDwgIi5wbHMgcGxheWxpc3Q6IFVucmVj b2duaXplZCBsaW5lOiBcIiIgPDwgKmkgPDwgIlwiIiA8PCBlbmRsOwotQEAgLTMwMCwxNCArMzA2 LDMxIEBAIFBMU1BsYXlsaXN0OjpzYXZlKCBjb25zdCBLVXJsICZsb2NhdGlvbiwgYm9vbCByZWxh dGl2ZSApCi0gICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgIH0KLSAKLSsgICAgLy9Gb3JtYXQ6 IGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUExTXyhmaWxlX2Zvcm1hdCkKLSAgICAgUVRl eHRTdHJlYW0gc3RyZWFtKCAmZmlsZSApOwotKyAgICAvL2hlYWRlcgotICAgICBzdHJlYW0gPDwg IltQbGF5bGlzdF1cbiI7Ci0tICAgIHN0cmVhbSA8PCAiTnVtYmVyT2ZFbnRyaWVzPSIgPDwgbV90 cmFja3MuY291bnQoKSA8PCBlbmRsOwotKwotKyAgICAvL2JvZHkKLSAgICAgaW50IGkgPSAxOyAv L1BMUyBzdGFydHMgYXQgRmlsZTE9Ci0gICAgIGZvcmVhY2goIE1ldGE6OlRyYWNrUHRyIHRyYWNr LCBtX3RyYWNrcyApCi0gICAgIHsKLS0gICAgICAgIHN0cmVhbSA8PCAiRmlsZSIgPDwgaSA8PCAi PSI7Ci0tICAgICAgICBzdHJlYW0gPDwgS1VybCggdHJhY2stPnBsYXlhYmxlVXJsKCkgKS5wYXRo KCk7Ci0rICAgICAgICBLVXJsIHBsYXlhYmxlVXJsKCB0cmFjay0+cGxheWFibGVVcmwoKSApOwot KyAgICAgICAgUVN0cmluZyBmaWxlID0gcGxheWFibGVVcmwudXJsKCk7Ci0rCi0rICAgICAgICBp ZiggcGxheWFibGVVcmwuaXNMb2NhbEZpbGUoKSApCi0rICAgICAgICB7Ci0rICAgICAgICAgICAg aWYoIHJlbGF0aXZlICkKLSsgICAgICAgICAgICB7Ci0rICAgICAgICAgICAgICAgIGZpbGUgPSBL VXJsOjpyZWxhdGl2ZVBhdGgoIHNhdmVQYXRoLnRvTG9jYWxGaWxlKCksCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXlhYmxlVXJsLnRvTG9jYWxGaWxlKCkg KTsKLSsgICAgICAgICAgICB9Ci0rICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsKLSsg ICAgICAgICAgICAgICAgZmlsZSA9IHBsYXlhYmxlVXJsLnRvTG9jYWxGaWxlKCk7Ci0rICAgICAg ICAgICAgfQotKyAgICAgICAgfQotKyAgICAgICAgc3RyZWFtIDw8ICJGaWxlIiA8PCBpIDw8ICI9 IiA8PCBmaWxlOwotICAgICAgICAgc3RyZWFtIDw8ICJcblRpdGxlIiA8PCBpIDw8ICI9IjsKLSAg ICAgICAgIHN0cmVhbSA8PCB0cmFjay0+bmFtZSgpOwotICAgICAgICAgc3RyZWFtIDw8ICJcbkxl bmd0aCIgPDwgaSA8PCAiPSI7Ci1AQCAtMzE2LDYgKzMzOSw4IEBAIFBMU1BsYXlsaXN0OjpzYXZl KCBjb25zdCBLVXJsICZsb2NhdGlvbiwgYm9vbCByZWxhdGl2ZSApCi0gICAgICAgICBpKys7Ci0g ICAgIH0KLSAKLSsgICAgLy9mb290ZXIKLSsgICAgc3RyZWFtIDw8ICJOdW1iZXJPZkVudHJpZXM9 IiA8PCBtX3RyYWNrcy5jb3VudCgpIDw8IGVuZGw7Ci0gICAgIHN0cmVhbSA8PCAiVmVyc2lvbj0y XG4iOwotICAgICBmaWxlLmNsb3NlKCk7Ci0gICAgIHJldHVybiB0cnVlOwotQEAgLTMzMCw5ICsz NTUsOSBAQCBQTFNQbGF5bGlzdDo6bG9hZFBsc19leHRyYWN0SW5kZXgoIGNvbnN0IFFTdHJpbmcg JnN0ciApIGNvbnN0Ci0gICAgICovCi0gICAgIGJvb2wgb2sgPSBmYWxzZTsKLSAgICAgdW5zaWdu ZWQgaW50IHJldDsKLS0gICAgUVN0cmluZyB0bXAoc3RyLnNlY3Rpb24oJz0nLCAwLCAwKSk7Ci0t ICAgIHRtcC5yZW1vdmUoUVJlZ0V4cCgiXlxcRCoiKSk7Ci0tICAgIHJldCA9IHRtcC50cmltbWVk KCkudG9VSW50KCZvayk7Ci0rICAgIFFTdHJpbmcgdG1wKCBzdHIuc2VjdGlvbiggJz0nLCAwLCAw ICkgKTsKLSsgICAgdG1wLnJlbW92ZSggUVJlZ0V4cCggIl5cXEQqIiApICk7Ci0rICAgIHJldCA9 IHRtcC50cmltbWVkKCkudG9VSW50KCAmb2sgKTsKLSAgICAgUV9BU1NFUlQob2spOwotICAgICBy ZXR1cm4gcmV0OwotIH0KLWRpZmYgLS1naXQgYS9zcmMvY29yZS1pbXBsL3BsYXlsaXN0cy90eXBl cy9maWxlL3hzcGYvWFNQRlBsYXlsaXN0LmNwcCBiL3NyYy9jb3JlLWltcGwvcGxheWxpc3RzL3R5 cGVzL2ZpbGUveHNwZi9YU1BGUGxheWxpc3QuY3BwCi1pbmRleCA0Y2I0OWZiLi4wMWNmMWU2IDEw MDY0NAotLS0tIGEvc3JjL2NvcmUtaW1wbC9wbGF5bGlzdHMvdHlwZXMvZmlsZS94c3BmL1hTUEZQ bGF5bGlzdC5jcHAKLSsrKyBiL3NyYy9jb3JlLWltcGwvcGxheWxpc3RzL3R5cGVzL2ZpbGUveHNw Zi9YU1BGUGxheWxpc3QuY3BwCi1AQCAtMjMzLDggKzIzMyw3IEBAIFhTUEZQbGF5bGlzdDo6dHJh Y2tDb3VudCgpIGNvbnN0Ci0gTWV0YTo6VHJhY2tMaXN0Ci0gWFNQRlBsYXlsaXN0Ojp0cmFja3Mo KQotIHsKLS0gICAgLy9JZiB5b3UgZG8gbm90IGxvYWQgYmVmb3JlLCBtX3RyYWNrcwotLSAgICAv L2NhbiBiZSBlbXB0eSBiZWZvcmUgdXNhZ2UuCi0rICAgIC8vSWYgeW91IGRvIG5vdCBsb2FkLCBt X3RyYWNrcyBjYW4gYmUgZW1wdHkgYmVmb3JlIHVzYWdlLgotICAgICB0cmlnZ2VyVHJhY2tMb2Fk KCk7Ci0gCi0gICAgIHJldHVybiBtX3RyYWNrczsKLUBAIC0yNTEsNzYgKzI1MCwxNCBAQCBYU1BG UGxheWxpc3Q6OnRyaWdnZXJUcmFja0xvYWQoKQotIAotICAgICBmb3JlYWNoKCBjb25zdCBYU1BG VHJhY2sgJnRyYWNrLCB4c3BmVHJhY2tzICkKLSAgICAgewotLSAgICAgICAgTWV0YTo6VHJhY2tQ dHIgdHJhY2tQdHI7Ci0tICAgICAgICBpZiggIXRyYWNrLmlkZW50aWZpZXIuaXNFbXB0eSgpICkK LS0gICAgICAgICAgICB0cmFja1B0ciA9IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLT50 cmFja0ZvclVybCggdHJhY2suaWRlbnRpZmllciApOwotLSAgICAgICAgZWxzZQotLSAgICAgICAg ICAgIHRyYWNrUHRyID0gQ29sbGVjdGlvbk1hbmFnZXI6Omluc3RhbmNlKCktPnRyYWNrRm9yVXJs KCB0cmFjay5sb2NhdGlvbiApOwotLSAgICAgICAgaWYoIHRyYWNrUHRyICkKLS0gICAgICAgIHsK LS0gICAgICAgICAgICAvKioKLS0gICAgICAgICAgICAgKiBOT1RFOiBJZiB0aGlzIGlzIGEgTWV0 YVByb3h5OjpUcmFjaywgaXQgcHJvYmFibHkgaXNuJ3QgcGxheWFibGUgeWV0LAotLSAgICAgICAg ICAgICAqICAgICAgIGJ1dCB0aGF0J3Mgb2theS4gSG93ZXZlciwgaXQncyBub3QgYSBnb29kIGlk ZWEgdG8gZ2V0IGFub3RoZXIKLS0gICAgICAgICAgICAgKiAgICAgICBvbmUgZnJvbSB0aGUgc2Ft ZSBwcm92aWRlciwgc2luY2UgdGhlIHByb3h5IHByb2JhYmx5IG1lYW5zIHRoYXQKLS0gICAgICAg ICAgICAgKiAgICAgICBtYWtpbmcgb25lIGludm9sdmVzIHF1aXRlIGEgYml0IG9mIHdvcmsuCi0t ICAgICAgICAgICAgICogICAgICAgICAtIEFuZHkgQ29kZXIgPGFuZHJldy5jb2RlckBnbWFpbC5j b20+Ci0tICAgICAgICAgICAgICovCi0tICAgICAgICAgICAgaWYoICF0cmFja1B0ci0+aXNQbGF5 YWJsZSgpICYmICggdHlwZWlkKCAqIHRyYWNrUHRyLmRhdGEoKSApICE9IHR5cGVpZCggTWV0YVBy b3h5OjpUcmFjayApICkgKQotLSAgICAgICAgICAgICAgICB0cmFja1B0ciA9IENvbGxlY3Rpb25N YW5hZ2VyOjppbnN0YW5jZSgpLT50cmFja0ZvclVybCggdHJhY2suaWRlbnRpZmllciApOwotLSAg ICAgICAgfQotLQotLSAgICAgICAgaWYoIHRyYWNrUHRyICkKLS0gICAgICAgIHsKLS0gICAgICAg ICAgICBpZiggdHlwZWlkKCAqIHRyYWNrUHRyLmRhdGEoKSApID09IHR5cGVpZCggTWV0YVN0cmVh bTo6VHJhY2sgKSApCi0tICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICBNZXRhU3RyZWFt OjpUcmFjayAqIHN0cmVhbVRyYWNrID0gZHluYW1pY19jYXN0PE1ldGFTdHJlYW06OlRyYWNrICo+ ICggdHJhY2tQdHIuZGF0YSgpICk7Ci0tICAgICAgICAgICAgICAgIGlmICggc3RyZWFtVHJhY2sg KQotLSAgICAgICAgICAgICAgICB7Ci0tICAgICAgICAgICAgICAgICAgICBzdHJlYW1UcmFjay0+ c2V0VGl0bGUoIHRyYWNrLnRpdGxlICk7Ci0tICAgICAgICAgICAgICAgICAgICBzdHJlYW1UcmFj ay0+c2V0QWxidW0oIHRyYWNrLmFsYnVtICk7Ci0tICAgICAgICAgICAgICAgICAgICBzdHJlYW1U cmFjay0+c2V0QXJ0aXN0KCB0cmFjay5jcmVhdG9yICk7Ci0tICAgICAgICAgICAgICAgIH0KLS0g ICAgICAgICAgICB9Ci0tICAgICAgICAgICAgZWxzZSBpZiggdHlwZWlkKCAqIHRyYWNrUHRyLmRh dGEoKSApID09IHR5cGVpZCggTWV0YTo6VGltZWNvZGVUcmFjayApICkKLS0gICAgICAgICAgICB7 Ci0tICAgICAgICAgICAgICAgIE1ldGE6OlRpbWVjb2RlVHJhY2sgKiB0aW1lY29kZVRyYWNrID0K LS0gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljX2Nhc3Q8TWV0YTo6VGltZWNvZGVUcmFj ayAqPiggdHJhY2tQdHIuZGF0YSgpICk7Ci0tICAgICAgICAgICAgICAgIGlmKCB0aW1lY29kZVRy YWNrICkKLS0gICAgICAgICAgICAgICAgewotLSAgICAgICAgICAgICAgICAgICAgdGltZWNvZGVU cmFjay0+YmVnaW5NZXRhRGF0YVVwZGF0ZSgpOwotLSAgICAgICAgICAgICAgICAgICAgdGltZWNv ZGVUcmFjay0+c2V0VGl0bGUoIHRyYWNrLnRpdGxlICk7Ci0tICAgICAgICAgICAgICAgICAgICB0 aW1lY29kZVRyYWNrLT5zZXRBbGJ1bSggdHJhY2suYWxidW0gKTsKLS0gICAgICAgICAgICAgICAg ICAgIHRpbWVjb2RlVHJhY2stPnNldEFydGlzdCggdHJhY2suY3JlYXRvciApOwotLSAgICAgICAg ICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+ZW5kTWV0YURhdGFVcGRhdGUoKTsKLS0gICAgICAg ICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0KLS0gICAgICAgICAgICBtX3RyYWNrcyA8PCB0 cmFja1B0cjsKLS0gICAgICAgIH0KLS0KLS0KLS0gICAgICAgIC8vIHdoeSBkbyB3ZSBuZWVkIHRo aXM/IHNxbHBsYXlsaXN0IGlzIG5vdCBkb2luZyB0aGlzCi0tICAgICAgICAvLyB3ZSBkb24ndCB3 YW50IChwcm9iYWJseSkgdW5wbGF5YWJsZSB0cmFja3MKLS0gICAgICAgIC8vIGFuZCBpdCBjYXVz ZXMgcHJvYmxlbXMgZm9yIG1lIChEYW5pZWxXKSBhcyBsb25nCi0tICAgICAgICAvLyBhbWFyb2sg bm90IHJlc3BlY3RzIFRyYWNrOjppc1BsYXlhYmxlKCkKLS0gICAgICAgIC8qZWxzZSB7Ci0tCi0t ICAgICAgICAgICAgTWV0YVByb3h5OjpUcmFjayAqcHJveHlUcmFjayA9IG5ldyBNZXRhUHJveHk6 OlRyYWNrKCB0cmFjay5sb2NhdGlvbiApOwotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAg ICAgLy9GaWxsIGluIHZhbHVlcyBmcm9tIHhzcGYuLgotLSAgICAgICAgICAgICAgICBRVmFyaWFu dE1hcCBtYXA7Ci0tICAgICAgICAgICAgICAgIG1hcC5pbnNlcnQoIE1ldGE6OkZpZWxkOjpUSVRM RSwgdHJhY2sudGl0bGUgKTsKLS0gICAgICAgICAgICAgICAgbWFwLmluc2VydCggTWV0YTo6Rmll bGQ6OkFMQlVNLCB0cmFjay5hbGJ1bSApOwotLSAgICAgICAgICAgICAgICBtYXAuaW5zZXJ0KCBN ZXRhOjpGaWVsZDo6QVJUSVNULCB0cmFjay5jcmVhdG9yICk7Ci0tICAgICAgICAgICAgICAgIG1h cC5pbnNlcnQoIE1ldGE6OkZpZWxkOjpMRU5HVEgsIHRyYWNrLmR1cmF0aW9uICk7Ci0tICAgICAg ICAgICAgICAgIG1hcC5pbnNlcnQoIE1ldGE6OkZpZWxkOjpUUkFDS05VTUJFUiwgdHJhY2sudHJh Y2tOdW0gKTsKLS0gICAgICAgICAgICAgICAgbWFwLmluc2VydCggTWV0YTo6RmllbGQ6OlVSTCwg dHJhY2subG9jYXRpb24gKTsKLS0gICAgICAgICAgICAgICAgTWV0YTo6RmllbGQ6OnVwZGF0ZVRy YWNrKCBwcm94eVRyYWNrLCBtYXAgKTsKLS0gICAgICAgICAgICB9Ci0tICAgICAgICAgICAgbV90 cmFja3MgPDwgTWV0YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsKLS0gICAgLy8gICAgICAgICBt X3RyYWNrcyA8PCBDb2xsZWN0aW9uTWFuYWdlcjo6aW5zdGFuY2UoKS0+dHJhY2tGb3JVcmwoIHRy YWNrLmxvY2F0aW9uICk7Ci0tICAgICAgICB9Ki8KLS0KLSsgICAgICAgTWV0YVByb3h5OjpUcmFj ayAqcHJveHlUcmFjayA9IG5ldyBNZXRhUHJveHk6OlRyYWNrKCB0cmFjay5sb2NhdGlvbiApOwot KyAgICAgICAvL0ZpbGwgaW4gdmFsdWVzIGZyb20geHNwZi4uCi0rICAgICAgIHByb3h5VHJhY2st PnNldE5hbWUoIHRyYWNrLnRpdGxlICk7Ci0rICAgICAgIHByb3h5VHJhY2stPnNldEFsYnVtKCB0 cmFjay5hbGJ1bSApOwotKyAgICAgICBwcm94eVRyYWNrLT5zZXRBcnRpc3QoIHRyYWNrLmNyZWF0 b3IgKTsKLSsgICAgICAgcHJveHlUcmFjay0+c2V0TGVuZ3RoKCB0cmFjay5kdXJhdGlvbiApOwot KyAgICAgICBwcm94eVRyYWNrLT5zZXRUcmFja051bWJlciggdHJhY2sudHJhY2tOdW0gKTsKLSsg ICAgICAgbV90cmFja3MgPDwgTWV0YTo6VHJhY2tQdHIoIHByb3h5VHJhY2sgKTsKLSAgICAgfQot IAotICAgICBtX3RyYWNrc0xvYWRlZCA9IHRydWU7Ci1kaWZmIC0tZ2l0IGEvc3JjL2NvcmUvY29s bGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5oIGIvc3JjL2NvcmUvY29sbGVjdGlv bnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5oCi1pbmRleCA2NGQyM2JkLi4xNmQ3NjRlIDEw MDY0NAotLS0tIGEvc3JjL2NvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtl ci5oCi0rKysgYi9zcmMvY29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1RyYWNrRm9yVXJsV29ya2Vy LmgKLUBAIC0zNSwxNyArMzUsMTcgQEAgY2xhc3MgQU1BUk9LX0NPUkVfRVhQT1JUIFRyYWNrRm9y VXJsV29ya2VyIDogcHVibGljIFRocmVhZFdlYXZlcjo6Sm9iCi0gewotICAgICBRX09CSkVDVAot IHB1YmxpYzoKLS0gICAgVHJhY2tGb3JVcmxXb3JrZXIgKCBjb25zdCBLVXJsICZ1cmwgKTsKLS0g ICAgVHJhY2tGb3JVcmxXb3JrZXIgKCBjb25zdCBRU3RyaW5nICZ1cmwgKTsKLSsgICAgVHJhY2tG b3JVcmxXb3JrZXIoIGNvbnN0IEtVcmwgJnVybCApOwotKyAgICBUcmFja0ZvclVybFdvcmtlcigg Y29uc3QgUVN0cmluZyAmdXJsICk7Ci0gICAgIH5UcmFja0ZvclVybFdvcmtlcigpOwotIAotLSAg ICB2aXJ0dWFsIHZvaWQgcnVuICgpID0gMDsKLSsgICAgdmlydHVhbCB2b2lkIHJ1bigpID0gMDsK LSBzaWduYWxzOgotLSAgICB2b2lkIGZpbmlzaGVkTG9va3VwICggY29uc3QgTWV0YTo6VHJhY2tQ dHIgICZ0cmFjayApOwotKyAgICB2b2lkIGZpbmlzaGVkTG9va3VwKCBjb25zdCBNZXRhOjpUcmFj a1B0ciAmdHJhY2sgKTsKLSAKLSBwcm90ZWN0ZWQ6Ci0tICAgIEtVcmwgbVVybDsKLS0gICAgTWV0 YTo6VHJhY2tQdHIgbVRyYWNrOwotKyAgICBLVXJsIG1fdXJsOwotKyAgICBNZXRhOjpUcmFja1B0 ciBtX3RyYWNrOwotIAotIHByaXZhdGUgc2xvdHM6Ci0gICAgIHZvaWQgY29tcGxldGVKb2IoKTsK LWRpZmYgLS1naXQgYS9zcmMvY29yZS9jb2xsZWN0aW9ucy9zdXBwb3J0L1RyYWNrRm9yVXJsV29y a2VyLmNwcCBiL3NyYy9jb3JlL2NvbGxlY3Rpb25zL3N1cHBvcnQvVHJhY2tGb3JVcmxXb3JrZXIu Y3BwCi1pbmRleCA3ZThmMjg5Li4yOGQ5MmJiIDEwMDY0NAotLS0tIGEvc3JjL2NvcmUvY29sbGVj dGlvbnMvc3VwcG9ydC9UcmFja0ZvclVybFdvcmtlci5jcHAKLSsrKyBiL3NyYy9jb3JlL2NvbGxl Y3Rpb25zL3N1cHBvcnQvVHJhY2tGb3JVcmxXb3JrZXIuY3BwCi1AQCAtMTYsMTQgKzE2LDE4IEBA Ci0gCi0gI2luY2x1ZGUgIlRyYWNrRm9yVXJsV29ya2VyLmgiCi0gCi0tQW1hcm9rOjpUcmFja0Zv clVybFdvcmtlcjo6VHJhY2tGb3JVcmxXb3JrZXIgKCBjb25zdCBLVXJsICZ1cmwgKSA6IFRocmVh ZFdlYXZlcjo6Sm9iKCksIG1VcmwgKCB1cmwgKQotK0FtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXI6 OlRyYWNrRm9yVXJsV29ya2VyKCBjb25zdCBLVXJsICZ1cmwgKQotKyAgICA6IFRocmVhZFdlYXZl cjo6Sm9iKCkKLSsgICAgLCBtX3VybCggdXJsICkKLSB7Ci0tICAgIGNvbm5lY3QgKCB0aGlzLCBT SUdOQUwgKCBkb25lICggVGhyZWFkV2VhdmVyOjpKb2IqICkgKSwgU0xPVCAoIGNvbXBsZXRlSm9i KCkgKSApOwotKyAgICBjb25uZWN0KCB0aGlzLCBTSUdOQUwoZG9uZSggVGhyZWFkV2VhdmVyOjpK b2IgKiApKSwgU0xPVCggY29tcGxldGVKb2IoKSkgKTsKLSB9Ci0gCi0tQW1hcm9rOjpUcmFja0Zv clVybFdvcmtlcjo6VHJhY2tGb3JVcmxXb3JrZXIoIGNvbnN0IFFTdHJpbmcgJnVybCApIDogVGhy ZWFkV2VhdmVyOjpKb2IoKSwgbVVybCAoIEtVcmwgKCB1cmwgKSApCi0rQW1hcm9rOjpUcmFja0Zv clVybFdvcmtlcjo6VHJhY2tGb3JVcmxXb3JrZXIoIGNvbnN0IFFTdHJpbmcgJnVybCApCi0rICAg IDogVGhyZWFkV2VhdmVyOjpKb2IoKQotKyAgICAsIG1fdXJsKCBLVXJsKCB1cmwgKSApCi0gewot LSAgICBjb25uZWN0ICggdGhpcywgU0lHTkFMICggZG9uZSAoIFRocmVhZFdlYXZlcjo6Sm9iKiAp ICksIFNMT1QgKCBjb21wbGV0ZUpvYigpICkgKTsKLSsgICAgY29ubmVjdCggdGhpcywgU0lHTkFM KGRvbmUoIFRocmVhZFdlYXZlcjo6Sm9iICogKSksIFNMT1QoIGNvbXBsZXRlSm9iKCkpICk7Ci0g fQotIAotIEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXI6On5UcmFja0ZvclVybFdvcmtlcigpCi1A QCAtMzIsNiArMzYsNiBAQCBBbWFyb2s6OlRyYWNrRm9yVXJsV29ya2VyOjp+VHJhY2tGb3JVcmxX b3JrZXIoKQotIHZvaWQKLSBBbWFyb2s6OlRyYWNrRm9yVXJsV29ya2VyOjpjb21wbGV0ZUpvYigp Ci0gewotLSAgICBlbWl0ICggZmluaXNoZWRMb29rdXAgKCBtVHJhY2sgKSApOwotKyAgICBlbWl0 KCBmaW5pc2hlZExvb2t1cCggbV90cmFjayApICk7Ci0gICAgIGRlbGV0ZUxhdGVyKCk7Ci0gfQot ZGlmZiAtLWdpdCBhL3NyYy9wbGF5bGlzdG1hbmFnZXIvc3FsL1NxbFBsYXlsaXN0LmNwcCBiL3Ny Yy9wbGF5bGlzdG1hbmFnZXIvc3FsL1NxbFBsYXlsaXN0LmNwcAotaW5kZXggMzlhZDc1OS4uM2Ey MmRhNCAxMDA2NDQKLS0tLSBhL3NyYy9wbGF5bGlzdG1hbmFnZXIvc3FsL1NxbFBsYXlsaXN0LmNw cAotKysrIGIvc3JjL3BsYXlsaXN0bWFuYWdlci9zcWwvU3FsUGxheWxpc3QuY3BwCi1AQCAtMTYs MTAgKzE2LDExIEBACi0gCi0gI2luY2x1ZGUgIlNxbFBsYXlsaXN0LmgiCi0gCi0tI2luY2x1ZGUg ImNvcmUtaW1wbC9jb2xsZWN0aW9ucy9zdXBwb3J0L0NvbGxlY3Rpb25NYW5hZ2VyLmgiCi0rI2lu Y2x1ZGUgImNvcmUvY29sbGVjdGlvbnMvc3VwcG9ydC9TcWxTdG9yYWdlLmgiCi0gI2luY2x1ZGUg ImNvcmUvc3VwcG9ydC9EZWJ1Zy5oIgotKyNpbmNsdWRlICJjb3JlLWltcGwvY29sbGVjdGlvbnMv c3VwcG9ydC9Db2xsZWN0aW9uTWFuYWdlci5oIgotKyNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS9w cm94eS9NZXRhUHJveHkuaCIKLSAjaW5jbHVkZSAiY29yZS1pbXBsL21ldGEvc3RyZWFtL1N0cmVh bS5oIgotLSNpbmNsdWRlICJjb3JlL2NvbGxlY3Rpb25zL3N1cHBvcnQvU3FsU3RvcmFnZS5oIgot ICNpbmNsdWRlICJjb3JlLWltcGwvbWV0YS90aW1lY29kZS9UaW1lY29kZU1ldGEuaCIKLSAjaW5j bHVkZSAicGxheWxpc3RtYW5hZ2VyL1BsYXlsaXN0TWFuYWdlci5oIgotICNpbmNsdWRlICJwbGF5 bGlzdG1hbmFnZXIvc3FsL1NxbFBsYXlsaXN0R3JvdXAuaCIKLUBAIC0yNzgsNiArMjc5LDkgQEAg U3FsUGxheWxpc3Q6OnJlbW92ZVRyYWNrKCBpbnQgcG9zaXRpb24gKQotIHZvaWQKLSBTcWxQbGF5 bGlzdDo6bWV0YWRhdGFDaGFuZ2VkKCBNZXRhOjpUcmFja1B0ciB0cmFjayApCi0gewotKyAgICAv L1RPRE86IGRvIHdlIHJlYWxseSBuZWVkIHRvIG9ic2VydmUgdHJhY2sgY2hhbmdlcz8gTWV0YWRh dGEgd2lsbCBiZSBwcm9wZXJseSBzYXZlZAotKyAgICAvL29uIGV4aXQgYW5kIHByb3h5IHRyYWNr cyBhcmUgbG9hZGVkIHdpdGggdWlkVXJsLiBTbyBhdCB3b3JzZSB0aGUgc2F2ZSBtZXRhZGF0YSBp bgotKyAgICAvL3BsYXlsaXN0X3RyYWNrcyB3aWxsIGJlIG91dGRhdGVkIHVudGlsIHJlYWwgdHJh Y2sgaXMgbG9hZGVkLgotICAgICBpZiggIW1fdHJhY2tzTG9hZGVkICkKLSAgICAgICAgIGxvYWRU cmFja3MoKTsKLSAKLUBAIC0zMDgsNDMgKzMxMiwxNSBAQCBTcWxQbGF5bGlzdDo6bG9hZFRyYWNr cygpCi0gICAgICAgICBRU3RyaW5nTGlzdCByb3cgPSByZXN1bHQubWlkKCBpKjcsIDcgKTsKLSAg ICAgICAgIEtVcmwgdXJsID0gS1VybCggcm93WzJdICk7Ci0gCi0tICAgICAgICBNZXRhOjpUcmFj a1B0ciB0cmFja1B0ciA9IENvbGxlY3Rpb25NYW5hZ2VyOjppbnN0YW5jZSgpLT50cmFja0ZvclVy bCggdXJsICk7Ci0rICAgICAgICBNZXRhUHJveHk6OlRyYWNrICpwcm94eVRyYWNrID0gbmV3IE1l dGFQcm94eTo6VHJhY2soIHVybCApOwotIAotLSAgICAgICAgaWYoIHRyYWNrUHRyICkKLS0gICAg ICAgIHsKLS0gICAgICAgICAgICBpZiggdHlwZWlkKCAqIHRyYWNrUHRyLmRhdGEoKSApID09IHR5 cGVpZCggTWV0YVN0cmVhbTo6VHJhY2sgKSApCi0tICAgICAgICAgICAgewotLQotLSAgICAgICAg ICAgICAgICBkZWJ1ZygpIDw8ICJnb3Qgc3RyZWFtIGZyb20gdHJhY2tGb3JVcmwsIHNldHRpbmcg YWxidW0gdG8gIiA8PCByb3dbNF07Ci0tCi0tICAgICAgICAgICAgICAgIE1ldGFTdHJlYW06OlRy YWNrICogc3RyZWFtVHJhY2sgPQotLSAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNfY2Fz dDxNZXRhU3RyZWFtOjpUcmFjayAqPiAoIHRyYWNrUHRyLmRhdGEoKSApOwotLSAgICAgICAgICAg ICAgICAKLS0gICAgICAgICAgICAgICAgaWYoIHN0cmVhbVRyYWNrICkKLS0gICAgICAgICAgICAg ICAgewotLSAgICAgICAgICAgICAgICAgICAgc3RyZWFtVHJhY2stPnNldFRpdGxlKCByb3dbM10g KTsKLS0gICAgICAgICAgICAgICAgICAgIHN0cmVhbVRyYWNrLT5zZXRBbGJ1bSggcm93WzRdICk7 Ci0tICAgICAgICAgICAgICAgICAgICBzdHJlYW1UcmFjay0+c2V0QXJ0aXN0KCByb3dbNV0gKTsK LS0gICAgICAgICAgICAgICAgfQotLSAgICAgICAgICAgIH0KLS0gICAgICAgICAgICBlbHNlIGlm KCB0eXBlaWQoICogdHJhY2tQdHIuZGF0YSgpICkgPT0gdHlwZWlkKCBNZXRhOjpUaW1lY29kZVRy YWNrICkgKQotLSAgICAgICAgICAgIHsKLS0gICAgICAgICAgICAgICAgTWV0YTo6VGltZWNvZGVU cmFjayAqIHRpbWVjb2RlVHJhY2sgPQotLSAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNf Y2FzdDxNZXRhOjpUaW1lY29kZVRyYWNrICo+ICggdHJhY2tQdHIuZGF0YSgpICk7Ci0tCi0tICAg ICAgICAgICAgICAgIGlmKCB0aW1lY29kZVRyYWNrICkKLS0gICAgICAgICAgICAgICAgewotLSAg ICAgICAgICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+YmVnaW5NZXRhRGF0YVVwZGF0ZSgpOwot LSAgICAgICAgICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+c2V0VGl0bGUoIHJvd1szXSApOwot LSAgICAgICAgICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+c2V0QWxidW0oIHJvd1s0XSApOwot LSAgICAgICAgICAgICAgICAgICAgdGltZWNvZGVUcmFjay0+c2V0QXJ0aXN0KCByb3dbNV0gKTsK LS0gICAgICAgICAgICAgICAgICAgIHRpbWVjb2RlVHJhY2stPmVuZE1ldGFEYXRhVXBkYXRlKCk7 Ci0tICAgICAgICAgICAgICAgIH0KLS0gICAgICAgICAgICB9Ci0tCi0tICAgICAgICAgICAgc3Vi c2NyaWJlVG8oIHRyYWNrUHRyICk7Ci0tICAgICAgICAgICAgbV90cmFja3MgPDwgdHJhY2tQdHI7 Ci0tICAgICAgICB9Ci0rICAgICAgICBwcm94eVRyYWNrLT5zZXROYW1lKCByb3dbM10gKTsKLSsg ICAgICAgIHByb3h5VHJhY2stPnNldEFsYnVtKCByb3dbNF0gKTsKLSsgICAgICAgIHByb3h5VHJh Y2stPnNldEFydGlzdCggcm93WzVdICk7Ci0rICAgICAgICBNZXRhOjpUcmFja1B0ciB0cmFja1B0 ciA9IE1ldGE6OlRyYWNrUHRyKCBwcm94eVRyYWNrICk7Ci0rICAgICAgICAvL3N1YnNjcmliZWQg dG8gZm9yY2UgYSBzYXZlIHRvIGRiIG9uIGFueSBjaGFuZ2UgKHN1Y2ggYXMgQUZUIGZpbGUgbW92 ZSkKLSsgICAgICAgIHN1YnNjcmliZVRvKCB0cmFja1B0ciApOwotKyAgICAgICAgbV90cmFja3Mg PDwgdHJhY2tQdHI7Ci0gICAgIH0KLSAKLSAgICAgbV90cmFja3NMb2FkZWQgPSB0cnVlOwotZGlm ZiAtLWdpdCBhL3NyYy9zZXJ2aWNlcy9hbXBhY2hlL0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbi5o IGIvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uLmgKLWluZGV4 IGE0OGM4ZjIuLmNjNDk3NzUgMTAwNjQ0Ci0tLS0gYS9zcmMvc2VydmljZXMvYW1wYWNoZS9BbXBh Y2hlU2VydmljZUNvbGxlY3Rpb24uaAotKysrIGIvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNo ZVNlcnZpY2VDb2xsZWN0aW9uLmgKLUBAIC0yNSwxNCArMjUsMTYgQEAgY2xhc3MgQW1wYWNoZVRy YWNrRm9yVXJsV29ya2VyIDogcHVibGljIEFtYXJvazo6VHJhY2tGb3JVcmxXb3JrZXIKLSB7Ci0g ICAgIFFfT0JKRUNUCi0gICAgIHB1YmxpYzoKLS0gICAgICAgIEFtcGFjaGVUcmFja0ZvclVybFdv cmtlciggY29uc3QgS1VybCAmdXJsLCBNZXRhUHJveHk6OlRyYWNrUHRyIHRyYWNrLCBjb25zdCBR U3RyaW5nICZzZXJ2ZXIsIGNvbnN0IFFTdHJpbmcgJnNlc3Npb25JZCwgU2VydmljZUJhc2UqIHNl cnZpY2UpOwotKyAgICAgICAgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCBjb25zdCBLVXJsICZ1 cmwsIE1ldGFQcm94eTo6VHJhY2tQdHIgdHJhY2ssCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IFFTdHJpbmcgJnNlcnZlciwgY29uc3QgUVN0cmluZyAmc2Vzc2lvbklk LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlQmFzZSAqc2Vydmlj ZSk7Ci0gICAgICAgICB+QW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCk7Ci0tICAgICAgICB2aXJ0 dWFsIHZvaWQgcnVuICgpOwotKyAgICAgICAgdmlydHVhbCB2b2lkIHJ1bigpOwotICAgICAgICAg dm9pZCBwYXJzZVRyYWNrKCBjb25zdCBRU3RyaW5nICZ4bWwgKTsKLSAgICAgc2lnbmFsczoKLSAg ICAgICAgIHZvaWQgYXV0aGVudGljYXRpb25OZWVkZWQoKTsKLSAgICAgcHJpdmF0ZToKLS0gICAg ICAgIE1ldGFQcm94eTo6VHJhY2tQdHIgbVByb3h5OwotKyAgICAgICAgTWV0YVByb3h5OjpUcmFj a1B0ciBtX3Byb3h5OwotICAgICAgICAgaW50IG1fdXJsVHJhY2tJZDsKLSAgICAgICAgIGludCBt X3VybEFsYnVtSWQ7Ci0gICAgICAgICBpbnQgbV91cmxBcnRpc3RJZDsKLUBAIC00NCw3ICs0Niw3 IEBAIGNsYXNzIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlciA6IHB1YmxpYyBBbWFyb2s6OlRyYWNr Rm9yVXJsV29ya2VyCi0gICAgICAgICBRU3RyaW5nIG1fc2VydmVyOwotICAgICAgICAgUVN0cmlu ZyBtX3Nlc3Npb25JZDsKLSAKLS0gICAgICAgIFNlcnZpY2VCYXNlKiBtX3NlcnZpY2U7Ci0rICAg ICAgICBTZXJ2aWNlQmFzZSAqbV9zZXJ2aWNlOwotIH07Ci0gCi0gbmFtZXNwYWNlIENvbGxlY3Rp b25zIHsKLUBAIC01OSwxMSArNjEsMTIgQEAgY2xhc3MgQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9u IDogcHVibGljIFNlcnZpY2VDb2xsZWN0aW9uCi0gICAgIFFfT0JKRUNUCi0gCi0gcHVibGljOgot LSAgICBBbXBhY2hlU2VydmljZUNvbGxlY3Rpb24oIFNlcnZpY2VCYXNlICogc2VydmljZSwgY29u c3QgUVN0cmluZyAmc2VydmVyLCBjb25zdCBRU3RyaW5nICZzZXNzaW9uSWQgKTsKLSsgICAgQW1w YWNoZVNlcnZpY2VDb2xsZWN0aW9uKCBTZXJ2aWNlQmFzZSAqc2VydmljZSwgY29uc3QgUVN0cmlu ZyAmc2VydmVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcg JnNlc3Npb25JZCApOwotIAotICAgICB2aXJ0dWFsIH5BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24o KTsKLSAKLS0gICAgdmlydHVhbCBRdWVyeU1ha2VyKiBxdWVyeU1ha2VyKCk7Ci0rICAgIHZpcnR1 YWwgUXVlcnlNYWtlciAqcXVlcnlNYWtlcigpOwotIAotICAgICB2aXJ0dWFsIFFTdHJpbmcgY29s bGVjdGlvbklkKCkgY29uc3Q7Ci0gICAgIHZpcnR1YWwgUVN0cmluZyBwcmV0dHlOYW1lKCkgY29u c3Q7Ci1AQCAtNzYsMTYgKzc5LDEzIEBAIHNpZ25hbHM6Ci0gCi0gcHVibGljIHNsb3RzOgotICAg ICB2b2lkIHNsb3RBdXRoZW50aWNhdGlvbk5lZWRlZCgpOwotLSAgICB2b2lkIHNsb3RMb29rdXBD b21wbGV0ZSggY29uc3QgTWV0YTo6VHJhY2tQdHImICk7Ci0rICAgIHZvaWQgc2xvdExvb2t1cENv bXBsZXRlKCBjb25zdCBNZXRhOjpUcmFja1B0ciAmICk7Ci0gCi0gcHJpdmF0ZToKLS0gICAgLyp2 b2lkIHBhcnNlQWxidW0oIGNvbnN0IFFTdHJpbmcgJnhtbCApOwotLSAgICB2b2lkIHBhcnNlQXJ0 aXN0KCBjb25zdCBRU3RyaW5nICZ4bWwgKTsqLwotLQotICAgICBRU3RyaW5nIG1fc2VydmVyOwot ICAgICBRU3RyaW5nIG1fc2Vzc2lvbklkOwotIAotLSAgICBBbXBhY2hlVHJhY2tGb3JVcmxXb3Jr ZXIgKiBtX3RyYWNrRm9yVXJsV29ya2VyOwotKyAgICBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIg Km1fdHJhY2tGb3JVcmxXb3JrZXI7Ci0gfTsKLSAKLSB9IC8vbmFtZXNwYWNlIENvbGxlY3Rpb25z Ci1kaWZmIC0tZ2l0IGEvc3JjL3NlcnZpY2VzL2FtcGFjaGUvQW1wYWNoZVNlcnZpY2VDb2xsZWN0 aW9uLmNwcCBiL3NyYy9zZXJ2aWNlcy9hbXBhY2hlL0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbi5j cHAKLWluZGV4IGI2ODRlMzQuLmMzYjUxMTUgMTAwNjQ0Ci0tLS0gYS9zcmMvc2VydmljZXMvYW1w YWNoZS9BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24uY3BwCi0rKysgYi9zcmMvc2VydmljZXMvYW1w YWNoZS9BbXBhY2hlU2VydmljZUNvbGxlY3Rpb24uY3BwCi1AQCAtMjcsNyArMjcsOSBAQAotIAot IHVzaW5nIG5hbWVzcGFjZSBDb2xsZWN0aW9uczsKLSAKLS1BbXBhY2hlU2VydmljZUNvbGxlY3Rp b246OkFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbiggU2VydmljZUJhc2UgKiBzZXJ2aWNlLCBjb25z dCBRU3RyaW5nICZzZXJ2ZXIsIGNvbnN0IFFTdHJpbmcgJnNlc3Npb25JZCApCi0rQW1wYWNoZVNl cnZpY2VDb2xsZWN0aW9uOjpBbXBhY2hlU2VydmljZUNvbGxlY3Rpb24oIFNlcnZpY2VCYXNlICpz ZXJ2aWNlLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBRU3RyaW5nICZzZXJ2ZXIsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgJnNlc3Npb25JZCApCi0gICAg IDogU2VydmljZUNvbGxlY3Rpb24oIHNlcnZpY2UsICJBbXBhY2hlQ29sbGVjdGlvbiIsICJBbXBh Y2hlQ29sbGVjdGlvbiIgKQotICAgICAsIG1fc2VydmVyKCBzZXJ2ZXIgKQotICAgICAsIG1fc2Vz c2lvbklkKCBzZXNzaW9uSWQgKQotQEAgLTU4LDcgKzYwLDcgQEAgQW1wYWNoZVNlcnZpY2VDb2xs ZWN0aW9uOjpwcmV0dHlOYW1lKCkgY29uc3QKLSB9Ci0gCi0gYm9vbAotLUFtcGFjaGVTZXJ2aWNl Q29sbGVjdGlvbjo6cG9zc2libHlDb250YWluc1RyYWNrKGNvbnN0IEtVcmwgJiB1cmwpIGNvbnN0 Ci0rQW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uOjpwb3NzaWJseUNvbnRhaW5zVHJhY2soIGNvbnN0 IEtVcmwgJnVybCApIGNvbnN0Ci0gewotICAgICByZXR1cm4gdXJsLnVybCgpLmNvbnRhaW5zKCBt X3NlcnZlciApOwotIH0KLUBAIC03MCw3NyArNzIsODIgQEAgQW1wYWNoZVNlcnZpY2VDb2xsZWN0 aW9uOjpzbG90QXV0aGVudGljYXRpb25OZWVkZWQoKQotIH0KLSAKLSBNZXRhOjpUcmFja1B0cgot LUFtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6dHJhY2tGb3JVcmwoIGNvbnN0IEtVcmwgJiB1cmwg KQotK0FtcGFjaGVTZXJ2aWNlQ29sbGVjdGlvbjo6dHJhY2tGb3JVcmwoIGNvbnN0IEtVcmwgJnVy bCApCi0gewotLSAgICBNZXRhUHJveHk6OlRyYWNrKiBwdHJhY2sgPSBuZXcgTWV0YVByb3h5OjpU cmFjayggdXJsLnVybCgpLCB0cnVlICk7Ci0tICAgIE1ldGFQcm94eTo6VHJhY2tQdHIgdHJhY2tw dHIocHRyYWNrKTsKLS0gICAgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyICogd29ya2VyID0gIG5l dyBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIodXJsLCB0cmFja3B0ciwgbV9zZXJ2ZXIsIG1fc2Vz c2lvbklkLCBzZXJ2aWNlKCkgKTsKLS0vLyAgICAgY29ubmVjdCggd29ya2VyLCBTSUdOQUwoIGZp bmlzaGVkTG9va3VwICggY29uc3QgTWV0YTo6VHJhY2tQdHImICkgKSwgdGhpcywKLS0vLyAgICAg ICAgICAgICAgU0xPVCggc2xvdExvb2t1cENvbXBsZXRlKCBjb25zdCBNZXRhOjpUcmFja1B0ciYg KSApICk7Ci0tICAgIGNvbm5lY3QoIHdvcmtlciwgU0lHTkFMKCBhdXRoZW50aWNhdGlvbk5lZWRl ZCgpICksIHRoaXMsCi0tICAgICAgICAgICAgIFNMT1QoIHNsb3RBdXRoZW50aWNhdGlvbk5lZWRl ZCgpICkgKTsKLSsgICAgTWV0YVByb3h5OjpUcmFjayAqcHRyYWNrID0gbmV3IE1ldGFQcm94eTo6 VHJhY2soIHVybC51cmwoKSwgdHJ1ZSApOwotKyAgICBNZXRhUHJveHk6OlRyYWNrUHRyIHRyYWNr cHRyKCBwdHJhY2sgKTsKLSsgICAgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyICp3b3JrZXIgPSBu ZXcgQW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCB1cmwsIHRyYWNrcHRyLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1fc2VydmVyLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1fc2Vzc2lvbklkLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZp Y2UoKSApOwotKyAgICBjb25uZWN0KCB3b3JrZXIsIFNJR05BTChhdXRoZW50aWNhdGlvbk5lZWRl ZCgpKSwgU0xPVChzbG90QXV0aGVudGljYXRpb25OZWVkZWQoKSkgKTsKLSAgICAgVGhyZWFkV2Vh dmVyOjpXZWF2ZXI6Omluc3RhbmNlKCktPmVucXVldWUoIHdvcmtlciApOwotIAotICAgICByZXR1 cm4gTWV0YTo6VHJhY2tQdHI6OnN0YXRpY0Nhc3QoIHRyYWNrcHRyICk7Ci0gfQotKwotIHZvaWQg QW1wYWNoZVNlcnZpY2VDb2xsZWN0aW9uOjpzbG90TG9va3VwQ29tcGxldGUoIGNvbnN0IE1ldGE6 OlRyYWNrUHRyJiApCi0gewotIH0KLSAKLSB2b2lkIEFtcGFjaGVUcmFja0ZvclVybFdvcmtlcjo6 cGFyc2VUcmFjayggY29uc3QgUVN0cmluZyAmeG1sICkKLSB7Ci0tLy8gICAgIERFQlVHX0JMT0NL Ci0tCi0tLy8gICAgICBkZWJ1ZygpIDw8ICJSZWNlaXZlZCB0cmFjayByZXNwb25zZTogIiA8PCB4 bWw7Ci0tCi0tICAgICAvL3NvIGxldHMgZmlndXJlIG91dCB3aGF0IHdlIGdvdCBoZXJlOgotKyAg ICAvL3NvIGxldHMgZmlndXJlIG91dCB3aGF0IHdlIGdvdCBoZXJlOgotICAgICBRRG9tRG9jdW1l bnQgZG9jKCAicmVwbHkiICk7Ci0gICAgIGRvYy5zZXRDb250ZW50KCB4bWwgKTsKLS0gICAgUURv bUVsZW1lbnQgcm9vdCA9IGRvYy5maXJzdENoaWxkRWxlbWVudCgicm9vdCIpOwotLSAgICBRRG9t RWxlbWVudCBzb25nID0gcm9vdC5maXJzdENoaWxkRWxlbWVudCgic29uZyIpOwotKyAgICBRRG9t RWxlbWVudCByb290ID0gZG9jLmZpcnN0Q2hpbGRFbGVtZW50KCAicm9vdCIgKTsKLSsgICAgUURv bUVsZW1lbnQgc29uZyA9IHJvb3QuZmlyc3RDaGlsZEVsZW1lbnQoICJzb25nIiApOwotIAotLSAg ICBtX3VybFRyYWNrSWQgPSBzb25nLmF0dHJpYnV0ZSggImlkIiwgIjAiKS50b0ludCgpOwotKyAg ICBtX3VybFRyYWNrSWQgPSBzb25nLmF0dHJpYnV0ZSggImlkIiwgIjAiICkudG9JbnQoKTsKLSAK LS0gICAgUURvbUVsZW1lbnQgZWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoInRpdGxl Iik7Ci0rICAgIFFEb21FbGVtZW50IGVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCAi dGl0bGUiICk7Ci0gCi0gICAgIFFTdHJpbmcgdGl0bGUgPSBlbGVtZW50LnRleHQoKTsKLSAgICAg aWYgKCB0aXRsZS5pc0VtcHR5KCkgKSB0aXRsZSA9ICJVbmtub3duIjsKLSAKLS0gICAgZWxlbWVu dCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoInVybCIpOwotKyAgICBlbGVtZW50ID0gc29uZy5m aXJzdENoaWxkRWxlbWVudCggInVybCIgKTsKLSAKLSAgICAgbV91cmxUcmFjayA9IG5ldyBNZXRh OjpBbXBhY2hlVHJhY2soIHRpdGxlLCBtX3NlcnZpY2UgKTsKLSAgICAgTWV0YTo6VHJhY2tQdHIg dHJhY2tQdHIoIG1fdXJsVHJhY2sgKTsKLSAKLS0gICAgLy9kZWJ1ZygpIDw8ICJBZGRpbmcgdHJh Y2s6ICIgPDwgIHRpdGxlOwotICAgICBtX3VybFRyYWNrLT5zZXRVaWRVcmwoIGVsZW1lbnQudGV4 dCgpICk7Ci0gICAgIG1fdXJsVHJhY2stPnNldElkKCBtX3VybFRyYWNrSWQgKTsKLSAKLS0gICAg ZWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoInRpbWUiKTsKLSsgICAgZWxlbWVudCA9 IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJ0aW1lIiApOwotICAgICBtX3VybFRyYWNrLT5zZXRM ZW5ndGgoIGVsZW1lbnQudGV4dCgpLnRvSW50KCkgKiAxMDAwICk7Ci0gCi0tICAgIGVsZW1lbnQg PSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCJ0cmFjayIpOwotKyAgICBlbGVtZW50ID0gc29uZy5m aXJzdENoaWxkRWxlbWVudCggInRyYWNrIiApOwotICAgICBtX3VybFRyYWNrLT5zZXRUcmFja051 bWJlciggZWxlbWVudC50ZXh0KCkudG9JbnQoKSApOwotIAotLSAgICBRRG9tRWxlbWVudCBhbGJ1 bUVsZW1lbnQgPSBzb25nLmZpcnN0Q2hpbGRFbGVtZW50KCJhbGJ1bSIpOwotLSAgICAvL21fdXJs QWxidW1JZCA9IGFsYnVtRWxlbWVudC5hdHRyaWJ1dGUoICJpZCIsICIwIikudG9JbnQoKTsKLSsg ICAgUURvbUVsZW1lbnQgYWxidW1FbGVtZW50ID0gc29uZy5maXJzdENoaWxkRWxlbWVudCggImFs YnVtIiApOwotKyAgICBtX3VybEFsYnVtSWQgPSBhbGJ1bUVsZW1lbnQuYXR0cmlidXRlKCAiaWQi LCAiMCIgKS50b0ludCgpOwotIAotLSAgICBNZXRhOjpBbXBhY2hlQWxidW0gKiBhbGJ1bSA9IG5l dyBNZXRhOjpBbXBhY2hlQWxidW0oIGFsYnVtRWxlbWVudC50ZXh0KCkgKTsKLSsgICAgTWV0YTo6 QW1wYWNoZUFsYnVtICphbGJ1bSA9IG5ldyBNZXRhOjpBbXBhY2hlQWxidW0oIGFsYnVtRWxlbWVu dC50ZXh0KCkgKTsKLSAKLS0gICAgUURvbUVsZW1lbnQgYXJ0RWxlbWVudCA9IHNvbmcuZmlyc3RD aGlsZEVsZW1lbnQoImFydCIpOwotKyAgICBRRG9tRWxlbWVudCBhcnRFbGVtZW50ID0gc29uZy5m aXJzdENoaWxkRWxlbWVudCggImFydCIgKTsKLSAgICAgYWxidW0tPnNldENvdmVyVXJsKCBhcnRF bGVtZW50LnRleHQoKSApOwotIAotICAgICBhbGJ1bS0+YWRkVHJhY2soIHRyYWNrUHRyICk7Ci0g ICAgIG1fdXJsVHJhY2stPnNldEFsYnVtUHRyKCBNZXRhOjpBbGJ1bVB0ciggYWxidW0gKSApOwot IAotLSAgICBRRG9tRWxlbWVudCBhcnRpc3RFbGVtZW50ID0gc29uZy5maXJzdENoaWxkRWxlbWVu dCgiYXJ0aXN0Iik7Ci0tICAgIE1ldGE6OlNlcnZpY2VBcnRpc3QgKiBhcnRpc3QgPSBuZXcgTWV0 YTo6U2VydmljZUFydGlzdCggYXJ0aXN0RWxlbWVudC50ZXh0KCkgKTsKLSsgICAgUURvbUVsZW1l bnQgYXJ0aXN0RWxlbWVudCA9IHNvbmcuZmlyc3RDaGlsZEVsZW1lbnQoICJhcnRpc3QiICk7Ci0r ICAgIE1ldGE6OlNlcnZpY2VBcnRpc3QgKmFydGlzdCA9IG5ldyBNZXRhOjpTZXJ2aWNlQXJ0aXN0 KCBhcnRpc3RFbGVtZW50LnRleHQoKSApOwotIAotICAgICBNZXRhOjpBcnRpc3RQdHIgYXJ0aXN0 UHRyKCBhcnRpc3QgKTsKLSAgICAgbV91cmxUcmFjay0+c2V0QXJ0aXN0KCBhcnRpc3RQdHIgKTsK LSAgICAgYWxidW0tPnNldEFsYnVtQXJ0aXN0KCBhcnRpc3RQdHIgKTsKLSB9Ci0gCi0tQW1wYWNo ZVRyYWNrRm9yVXJsV29ya2VyOjpBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXIoY29uc3QgS1VybCAm dXJsLCBNZXRhUHJveHk6OlRyYWNrUHRyIHRyYWNrLCBjb25zdCBRU3RyaW5nICZzZXJ2ZXIsIGNv bnN0IFFTdHJpbmcgJnNlc3Npb25JZCwgU2VydmljZUJhc2UqIHNlcnZpY2UpIDogQW1hcm9rOjpU cmFja0ZvclVybFdvcmtlcih1cmwpLCBtUHJveHkodHJhY2spLCBtX3NlcnZlcihzZXJ2ZXIpLCBt X3Nlc3Npb25JZChzZXNzaW9uSWQpLCBtX3NlcnZpY2Uoc2VydmljZSkKLStBbXBhY2hlVHJhY2tG b3JVcmxXb3JrZXI6OkFtcGFjaGVUcmFja0ZvclVybFdvcmtlciggY29uc3QgS1VybCAmdXJsLAot KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZXRh UHJveHk6OlRyYWNrUHRyIHRyYWNrLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZzZXJ2ZXIsCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgJnNl c3Npb25JZCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU2VydmljZUJhc2UgKnNlcnZpY2UgKQotKyAgICA6IEFtYXJvazo6VHJhY2tGb3JVcmxX b3JrZXIoIHVybCApCi0rICAgICwgbV9wcm94eSggdHJhY2sgKQotKyAgICAsIG1fc2VydmVyKCBz ZXJ2ZXIgKQotKyAgICAsIG1fc2Vzc2lvbklkKCBzZXNzaW9uSWQgKQotKyAgICAsIG1fc2Vydmlj ZSggc2VydmljZSApCi0gewotIH0KLSAKLUBAIC0xNTAsOCArMTU3LDYgQEAgQW1wYWNoZVRyYWNr Rm9yVXJsV29ya2VyOjp+QW1wYWNoZVRyYWNrRm9yVXJsV29ya2VyKCkKLSB2b2lkCi0gQW1wYWNo ZVRyYWNrRm9yVXJsV29ya2VyOjpydW4oKQotIHsKLS0gICAgLy8gREVCVUdfQkxPQ0s7Ci0tCi0g ICAgIG1fdXJsVHJhY2sgPSAwOwotICAgICBtX3VybEFsYnVtID0gMDsKLSAgICAgbV91cmxBcnRp c3QgPSAwOwotQEAgLTE2Miw5ICsxNjcsOSBAQCBBbXBhY2hlVHJhY2tGb3JVcmxXb3JrZXI6OnJ1 bigpCi0gCi0gICAgIC8vc2VuZCB1cmxfdG9fc29uZyB0byBBbXBhY2hlCi0gCi0tICAgIFFTdHJp bmcgcmVxdWVzdFVybCA9IFFTdHJpbmcoICIlMS9zZXJ2ZXIveG1sLnNlcnZlci5waHA/YWN0aW9u PXVybF90b19zb25nJmF1dGg9JTImdXJsPSUzIikKLS0gICAgLiBhcmcoICBtX3NlcnZlciwgIG1f c2Vzc2lvbklkLCAgUVVybDo6dG9QZXJjZW50RW5jb2RpbmcoIG1VcmwudXJsKCkgKSApOwotLSAg ICAvLyAgICAgZGVidWcoKSA8PCAicmVxdWVzdCB1cmw6ICIgPDwgcmVxdWVzdFVybDsKLSsgICAg UVN0cmluZyByZXF1ZXN0VXJsID0KLSsgICAgICAgICAgICBRU3RyaW5nKCAiJTEvc2VydmVyL3ht bC5zZXJ2ZXIucGhwP2FjdGlvbj11cmxfdG9fc29uZyZhdXRoPSUyJnVybD0lMyIgKQotKyAgICAg ICAgICAgICAgICAgICAgLmFyZyggbV9zZXJ2ZXIsIG1fc2Vzc2lvbklkLCBRVXJsOjp0b1BlcmNl bnRFbmNvZGluZyggbV91cmwudXJsKCkgKSApOwotIAotICAgICBRTmV0d29ya1JlcXVlc3QgcmVx KCByZXF1ZXN0VXJsICk7Ci0gICAgIFFOZXR3b3JrUmVwbHkgKnJlcGx5ID0gVGhlOjpuZXR3b3Jr QWNjZXNzTWFuYWdlcigpLT5nZXQoIHJlcSApOwotQEAgLTE3OCw3ICsxODMsNyBAQCBBbXBhY2hl VHJhY2tGb3JVcmxXb3JrZXI6OnJ1bigpCi0gICAgICAgICB9Ci0gICAgIH0KLSAgICAgcGFyc2VU cmFjayggcmVwbHktPnJlYWRBbGwoKSApOwotLSAgICBtVHJhY2sgPSBNZXRhOjpUcmFja1B0cigg bV91cmxUcmFjayApOwotLSAgICBtUHJveHktPnVwZGF0ZVRyYWNrKCBtVHJhY2sgKTsKLSsgICAg bV90cmFjayA9IE1ldGE6OlRyYWNrUHRyKCBtX3VybFRyYWNrICk7Ci0rICAgIG1fcHJveHktPnVw ZGF0ZVRyYWNrKCBtX3RyYWNrICk7Ci0gICAgIHJlcGx5LT5kZWxldGVMYXRlcigpOwotIH0KCmRp ZmYgLS1naXQgYS9hbWFyb2suc3BlYyBiL2FtYXJvay5zcGVjCmluZGV4IDE4ZjlhM2YuLmQxOTFm OWYgMTAwNjQ0Ci0tLSBhL2FtYXJvay5zcGVjCisrKyBiL2FtYXJvay5zcGVjCkBAIC0xLDggKzEs OCBAQAogCiBOYW1lOiAgICBhbWFyb2sKIFN1bW1hcnk6IE1lZGlhIHBsYXllcgotVmVyc2lvbjog Mi41LjAKLVJlbGVhc2U6IDklez9kaXN0fQorVmVyc2lvbjogMi41LjkwCitSZWxlYXNlOiAxJXs/ ZGlzdH0KIAogIyBLREUgZS5WLiBtYXkgZGV0ZXJtaW5lIHRoYXQgZnV0dXJlIEdQTCB2ZXJzaW9u cyBhcmUgYWNjZXB0ZWQKIExpY2Vuc2U6IEdQTHYyIG9yIEdQTHYzCkBAIC0xNywxMSArMTcsNiBA QCBQYXRjaDA6ICBhbWFyb2stMi41LjAtb25saW5lZG9jLnBhdGNoCiAjUGF0Y2g1MDogYW1hcm9r LTIuMi4xLjkwLXF0c2NyaXB0X25vdF9yZXF1aXJlZC5wYXRjaAogCiAjIyB1cHN0cmVhbSBwYXRj aGVzCi0jIGh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTAxMjMKLVBhdGNo MTAwOiBhbWFyb2stMi41LjAta2RlNDhfY29udGV4dF92aWV3LnBhdGNoIAotIyBMb2FkIGFsbCB0 cmFja3MgZnJvbSBYU1BGIHVzaW5nIE1ldGFQcm94eS4KLSMgaHR0cHM6Ly9idWdzLmtkZS5vcmcv c2hvd19idWcuY2dpP2lkPTI5NTE5OQotUGF0Y2gxMDE6IGFtYXJvay0yLjUuMC1wcm94eV9sb2Fk aW5nLnBhdGNoIAogCiBCdWlsZFJlcXVpcmVzOiBjdXJsLWRldmVsCiBCdWlsZFJlcXVpcmVzOiBk ZXNrdG9wLWZpbGUtdXRpbHMKQEAgLTkyLDggKzg3LDYgQEAgQnVpbGRBcmNoOiBub2FyY2gKIAog JXBhdGNoMCAtcDEgLWIgLm9ubGluZWRvYwogI3BhdGNoNTAgLXAxIC1iIC5xdHNjcmlwdF9ub3Rf cmVxdWlyZWQKLSVwYXRjaDEwMCAtcDEgLWIgLmtkZTQ4X2NvbnRleHRfdmlldwotJXBhdGNoMTAx IC1wMSAtYiAucHJveHlfbG9hZGluZwogCiAKICVidWlsZApAQCAtMTgzLDYgKzE3Niw5IEBAIGZp CiAKIAogJWNoYW5nZWxvZworKiBXZWQgTWF5IDMwIDIwMTIgUmV4IERpZXRlciA8cmRpZXRlckBm ZWRvcmFwcm9qZWN0Lm9yZz4gMi41LjkwLTEKKy0gMi41LjkwCisKICogV2VkIE1hciAyMSAyMDEy IFJleCBEaWV0ZXIgPHJkaWV0ZXJAZmVkb3JhcHJvamVjdC5vcmc+IDIuNS4wLTkKIC0gbmV3IGl0 ZXJhdGlvbiBvZiBwcm94eV9sb2FkaW5nIHBhdGNoIChrZGUjMjk1MTk5KQogCgpkaWZmIC0tZ2l0 IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZWQ5Njc4ZS4uZThlMjc2NCAxMDA2NDQKLS0tIGEv c291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1iNzk4M2VhYTMzZTQ3NzE3NjlhZTll MzMwYzgxMTk5NSAgYW1hcm9rLTIuNS4wLnRhci5iejIKKzE1Zjg0ZTIyNjc1OTk1OGZiM2U3NmVi ZjQzOGM5ZmM3ICBhbWFyb2stMi41LjkwLnRhci5iejIK