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: Steve Cossette To: git-commits@fedoraproject.org Subject: [rpms/karton] f45: Update to latest git snapshot + added upstream patch Date: Fri, 21 Aug 2026 22:44:28 GMT Message-ID: <178735226883.1.6409196024616244652.rpms-karton-40cd9b0adc8d@fedoraproject.org> List-ID: X-Git-Repo: rpms/karton X-Git-Branch: f45 X-Git-Rev: 40cd9b0adc8debe1f348f1e9ea7e5acafe0720fa QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMva2FydG9uCkJyYW5j aCA6IGY0NQpDb21taXQgOiA0MGNkOWIwYWRjOGRlYmUxZjM0OGYxZTllYTdlNWFjYWZlMDcyMGZh CkF1dGhvciA6IFN0ZXZlIENvc3NldHRlIDxmYXJjaG9yZEBnbWFpbC5jb20+CkRhdGUgICA6IDIw MjYtMDgtMjFUMTc6MzI6NTUtMDQ6MDAKU3RhdHMgIDogKzk5NS8tNCBpbiA0IGZpbGUocykKVVJM ICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9rYXJ0b24vYy80MGNkOWIw YWRjOGRlYmUxZjM0OGYxZTllYTdlNWFjYWZlMDcyMGZhP2JyYW5jaD1mNDUKCkxvZzoKVXBkYXRl IHRvIGxhdGVzdCBnaXQgc25hcHNob3QgKyBhZGRlZCB1cHN0cmVhbSBwYXRjaAoKLS0tCmRpZmYg LS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9yZQppbmRleCA0YTI3MGFiLi45OGFmMDBlIDEw MDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTEsMyArMSw0IEBACiAv a2FydG9uLWIzMThkY2EzMDBjN2EzOWE4MGI0YTIxZDk3OWM0NWM4NjljZWFjNzYudGFyLmd6CiAv a2FydG9uLTA3NTIwZTA2ZjVhNjZlOWNmZTMzYTI5OGExMWU1NDgyYTIzOTVhYTAudGFyLmd6CiAv a2FydG9uLWE0MjYxMzJjZjMxZGEzYjVhNGMxMDljYWZiYTAyY2M4N2QwYWQyN2EudGFyLmd6Cisv a2FydG9uLTU1NjQ1OGVjYWMwYzAzNDE4YmEzNjYxMWJmNzQzMDk1N2JmNDBhZmIudGFyLmd6Cgpk aWZmIC0tZ2l0IGEvNjMucGF0Y2ggYi82My5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi41YzVhZjJjCi0tLSAvZGV2L251bGwKKysrIGIvNjMucGF0Y2gKQEAgLTAsMCAr MSw5ODIgQEAKK0Zyb20gOTVlNWRlYmVkZmZiOTZjYjMxMzEzYjExNmFlOWY3ZDY4NTBlNmY5ZiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9udXJhbHAgU0VaRVIgPHRodW5kZXJiaXJk dHJAZmVkb3JhcHJvamVjdC5vcmc+CitEYXRlOiBUdWUsIDE4IEF1ZyAyMDI2IDAxOjI3OjIyICsw MzAwCitTdWJqZWN0OiBbUEFUQ0ggMS80XSBGaXggR0wgc2Nhbm91dCB0ZXh0dXJlIGhhbmRsaW5n CisKK1NpZ25lZC1vZmYtYnk6IE9udXJhbHAgU0VaRVIgPHRodW5kZXJiaXJkdHJAZmVkb3JhcHJv amVjdC5vcmc+CistLS0KKyBzcmMvZ2xzY2Fub3V0cmVuZGVyZXIuY3BwIHwgMTQ4ICsrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCisgc3JjL2dsc2Nhbm91dHJlbmRlcmVyLmgg ICB8ICAxNSArKysrCisgMiBmaWxlcyBjaGFuZ2VkLCAxMTUgaW5zZXJ0aW9ucygrKSwgNDggZGVs ZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvZ2xzY2Fub3V0cmVuZGVyZXIuY3BwIGIvc3Jj L2dsc2Nhbm91dHJlbmRlcmVyLmNwcAoraW5kZXggZWMxYjY2YS4uNmEzMmM1MiAxMDA2NDQKKy0t LSBhL3NyYy9nbHNjYW5vdXRyZW5kZXJlci5jcHAKKysrKyBiL3NyYy9nbHNjYW5vdXRyZW5kZXJl ci5jcHAKK0BAIC0yMyw4ICsyMywxNCBAQCB2b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjphdHRhY2go U3BpY2VEaXNwbGF5Q2hhbm5lbCAqY2hhbm5lbCkKKyB7CisgICAgIGRldGFjaCgpOworICAgICBt X2NoYW5uZWwgPSBjaGFubmVsOworKyAgICAvLyBnbC1kcmF3IG1lYW5zIGEgbmV3IGZyYW1lIGlu IHRoZSBleGlzdGluZyBidWZmZXIsIGdsLXNjYW5vdXQgbWVhbnMgYSBuZXcgYnVmZmVyCisgICAg IG1fZ2xEcmF3SGFuZGxlcklkID0gZ19zaWduYWxfY29ubmVjdChjaGFubmVsLCAiZ2wtZHJhdyIs IEdfQ0FMTEJBQ0soZ2xfZHJhd19jYWxsYmFjayksIHRoaXMpOworKyAgICBtX2dsU2Nhbm91dEhh bmRsZXJJZCA9IGdfc2lnbmFsX2Nvbm5lY3QoY2hhbm5lbCwgIm5vdGlmeTo6Z2wtc2Nhbm91dCIs IEdfQ0FMTEJBQ0soZ2xfc2Nhbm91dF9ub3RpZnlfY2FsbGJhY2spLCB0aGlzKTsKKyAgICAgLy8g VE9ETzogTWlnaHQgbmVlZCB0byBjaGVjayBpZiBnbCBpcyBlbmFibGVkLiBEb21haW5zIGNyZWF0 ZWQgYnkgdmlydC1tYW5hZ2VyIGFyZSBub3QgYWNjZWwzZCBieSBkZWZhdWx0LgorKworKyAgICBp ZiAoYXV0byBzY2Fub3V0ID0gc3BpY2VfZGlzcGxheV9jaGFubmVsX2dldF9nbF9zY2Fub3V0KGNo YW5uZWwpKSB7CisrICAgICAgICBoYW5kbGVHbFNjYW5vdXQoc2Nhbm91dCk7CisrICAgIH0KKyB9 CisgCisgdm9pZCBHbFNjYW5vdXRSZW5kZXJlcjo6ZGV0YWNoKCkKK0BAIC0zMiw3ICszOCwxMSBA QCB2b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjpkZXRhY2goKQorICAgICBpZiAobV9jaGFubmVsICYm IG1fZ2xEcmF3SGFuZGxlcklkKSB7CisgICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nvbm5l Y3QobV9jaGFubmVsLCBtX2dsRHJhd0hhbmRsZXJJZCk7CisgICAgIH0KKysgICAgaWYgKG1fY2hh bm5lbCAmJiBtX2dsU2Nhbm91dEhhbmRsZXJJZCkgeworKyAgICAgICAgZ19zaWduYWxfaGFuZGxl cl9kaXNjb25uZWN0KG1fY2hhbm5lbCwgbV9nbFNjYW5vdXRIYW5kbGVySWQpOworKyAgICB9Cisg ICAgIG1fZ2xEcmF3SGFuZGxlcklkID0gMDsKKysgICAgbV9nbFNjYW5vdXRIYW5kbGVySWQgPSAw OworICAgICBtX2NoYW5uZWwgPSBudWxscHRyOworIAorICAgICBjbGVhbnVwRUdMUmVzb3VyY2Vz KCk7CitAQCAtNDYsNDAgKzU2LDU1IEBAIHZvaWQgR2xTY2Fub3V0UmVuZGVyZXI6OmdsX2RyYXdf Y2FsbGJhY2soU3BpY2VEaXNwbGF5Q2hhbm5lbCAqY2hhbm5lbCwgZ3VpbnQgeCwKKyAgICAgUV9V TlVTRUQoaGVpZ2h0KTsKKyAKKyAgICAgYXV0byAqc2VsZiA9IHN0YXRpY19jYXN0PEdsU2Nhbm91 dFJlbmRlcmVyICo+KHVzZXJfZGF0YSk7CistICAgIGF1dG8gc2Nhbm91dCA9IHNwaWNlX2Rpc3Bs YXlfY2hhbm5lbF9nZXRfZ2xfc2Nhbm91dChjaGFubmVsKTsKKy0gICAgaWYgKCFzY2Fub3V0KSB7 CistICAgICAgICByZXR1cm47CistICAgIH0KKy0gICAgc2VsZi0+aGFuZGxlR2xTY2Fub3V0KHNj YW5vdXQpOworKyAgICBRX0VNSVQgc2VsZi0+ZnJhbWVSZWFkeSgpOworICAgICBzcGljZV9kaXNw bGF5X2NoYW5uZWxfZ2xfZHJhd19kb25lKGNoYW5uZWwpOyAvLyByZWxlYXNlcyB0aGUgR0wgcmVz b3VyY2UKKyB9CisgCistdm9pZCBHbFNjYW5vdXRSZW5kZXJlcjo6aGFuZGxlR2xTY2Fub3V0KGNv bnN0IFNwaWNlR2xTY2Fub3V0ICpzY2Fub3V0KQorK3ZvaWQgR2xTY2Fub3V0UmVuZGVyZXI6Omds X3NjYW5vdXRfbm90aWZ5X2NhbGxiYWNrKEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcHNw ZWMsIGdwb2ludGVyIHVzZXJfZGF0YSkKKyB7CistICAgIGlmIChtX2hhc1NjYW5vdXQgJiYgbV9z Y2Fub3V0LmZkID49IDApIHsKKy0gICAgICAgIGNsb3NlKG1fc2Nhbm91dC5mZCk7CistICAgICAg ICBtX3NjYW5vdXQuZmQgPSAtMTsKKysgICAgUV9VTlVTRUQocHNwZWMpOworKworKyAgICBhdXRv ICpzZWxmID0gc3RhdGljX2Nhc3Q8R2xTY2Fub3V0UmVuZGVyZXIgKj4odXNlcl9kYXRhKTsKKysg ICAgaWYgKGF1dG8gc2Nhbm91dCA9IHNwaWNlX2Rpc3BsYXlfY2hhbm5lbF9nZXRfZ2xfc2Nhbm91 dChTUElDRV9ESVNQTEFZX0NIQU5ORUwob2JqZWN0KSkpIHsKKysgICAgICAgIHNlbGYtPmhhbmRs ZUdsU2Nhbm91dChzY2Fub3V0KTsKKyAgICAgfQorK30KKyAKKy0gICAgY2xlYW51cEVHTEltYWdl KCk7Cisrdm9pZCBHbFNjYW5vdXRSZW5kZXJlcjo6aGFuZGxlR2xTY2Fub3V0KGNvbnN0IFNwaWNl R2xTY2Fub3V0ICpzY2Fub3V0KQorK3sKKysgICAgYm9vbCBzaXplQ2hhbmdlZCA9IGZhbHNlOwor IAorLSAgICBtX3NjYW5vdXQgPSAqc2Nhbm91dDsgLy8gc3RydWN0IGNvcHkKKysgICAgeworKyAg ICAgICAgUU11dGV4TG9ja2VyIGxvY2tlcigmbV9zY2Fub3V0TG9jayk7CisgCistICAgIC8vIGR1 cGxpY2F0ZSB0aGUgZmlsZSBkZXNjcmlwdG9yIGlmIGV4aXN0cworLSAgICAvLyB3ZSB3aWxsIGJl IHVzaW5nIHRoZSBkdXBsaWNhdGUsIGFuZCB0aGUgb3JpZ2luYWwgaXMgZnJlZWQgYnkgU1BJQ0Ug KGdsX2RyYXdfZG9uZSkuCistICAgIGlmIChzY2Fub3V0LT5mZCA+PSAwKSB7CistICAgICAgICBt X3NjYW5vdXQuZmQgPSBkdXAoc2Nhbm91dC0+ZmQpOworLSAgICAgICAgaWYgKG1fc2Nhbm91dC5m ZCA8IDApIHsKKy0gICAgICAgICAgICBxQ1dhcm5pbmcoS0FSVE9OX0RFQlVHKSA8PCAiRmFpbGVk IHRvIGR1cGxpY2F0ZSBzY2Fub3V0IEZEIjsKKy0gICAgICAgICAgICByZXR1cm47CisrICAgICAg ICBpZiAobV9oYXNTY2Fub3V0ICYmIG1fc2Nhbm91dC5mZCA+PSAwKSB7CisrICAgICAgICAgICAg Y2xvc2UobV9zY2Fub3V0LmZkKTsKKysgICAgICAgICAgICBtX3NjYW5vdXQuZmQgPSAtMTsKKyAg ICAgICAgIH0KKy0gICAgfQorIAorLSAgICBtX2ltYWdlSGVpZ2h0ID0gc2Nhbm91dC0+aGVpZ2h0 OworLSAgICBtX2ltYWdlV2lkdGggPSBzY2Fub3V0LT53aWR0aDsKKy0gICAgbV9oYXNTY2Fub3V0 ID0gdHJ1ZTsKKysgICAgICAgIG1fc2Nhbm91dCA9ICpzY2Fub3V0OyAvLyBzdHJ1Y3QgY29weQor KworKyAgICAgICAgLy8gZHVwbGljYXRlIHRoZSBmaWxlIGRlc2NyaXB0b3IgaWYgZXhpc3RzCisr ICAgICAgICAvLyB3ZSB3aWxsIGJlIHVzaW5nIHRoZSBkdXBsaWNhdGUsIGFuZCB0aGUgb3JpZ2lu YWwgaXMgZnJlZWQgYnkgU1BJQ0UgKGdsX2RyYXdfZG9uZSkuCisrICAgICAgICBpZiAoc2Nhbm91 dC0+ZmQgPj0gMCkgeworKyAgICAgICAgICAgIG1fc2Nhbm91dC5mZCA9IGR1cChzY2Fub3V0LT5m ZCk7CisrICAgICAgICAgICAgaWYgKG1fc2Nhbm91dC5mZCA8IDApIHsKKysgICAgICAgICAgICAg ICAgcUNXYXJuaW5nKEtBUlRPTl9ERUJVRykgPDwgIkZhaWxlZCB0byBkdXBsaWNhdGUgc2Nhbm91 dCBGRCI7CisrICAgICAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgICAgICB9CisrICAgICAg ICB9CisgCistICAgIFFfRU1JVCBmcmFtZVNpemVDaGFuZ2VkKCk7CisrICAgICAgICBtX3NjYW5v dXREaXJ0eSA9IHRydWU7CisrCisrICAgICAgICBzaXplQ2hhbmdlZCA9IG1faW1hZ2VXaWR0aCAh PSBzdGF0aWNfY2FzdDxpbnQ+KHNjYW5vdXQtPndpZHRoKSB8fCBtX2ltYWdlSGVpZ2h0ICE9IHN0 YXRpY19jYXN0PGludD4oc2Nhbm91dC0+aGVpZ2h0KTsKKysgICAgICAgIG1faW1hZ2VIZWlnaHQg PSBzY2Fub3V0LT5oZWlnaHQ7CisrICAgICAgICBtX2ltYWdlV2lkdGggPSBzY2Fub3V0LT53aWR0 aDsKKysgICAgICAgIG1faGFzU2Nhbm91dCA9IHRydWU7CisrICAgIH0KKysKKysgICAgaWYgKHNp emVDaGFuZ2VkKSB7CisrICAgICAgICBRX0VNSVQgZnJhbWVTaXplQ2hhbmdlZCgpOworKyAgICB9 CisgICAgIFFfRU1JVCBmcmFtZVJlYWR5KCk7CisgfQorIAorQEAgLTEwNyw2ICsxMzIsOSBAQCB2 b2lkIEdsU2Nhbm91dFJlbmRlcmVyOjpjcmVhdGVUZXh0dXJlRnJvbVNjYW5vdXQoY29uc3QgU3Bp Y2VHbFNjYW5vdXQgKnNjYW5vdXQpCisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKKysgICAg Ly8gbm90IGluIGhhbmRsZUdsU2Nhbm91dCgpOiBubyBFR0wgZGlzcGxheSBpcyBjdXJyZW50IHRo ZXJlLCBzbyB0aGUgZGVzdHJveSBpcyBza2lwcGVkCisrICAgIGNsZWFudXBFR0xJbWFnZSgpOwor KworICAgICAvLyBnZW5lcmF0ZSB0ZXh0dXJlIGlmIGVtcHR5CisgICAgIGlmIChtX3RleElkID09 IDApIHsKKyAgICAgICAgIGdsLT5nbEdlblRleHR1cmVzKDEsICZtX3RleElkKTsKK0BAIC0xNTUs NyArMTgzLDcgQEAgdm9pZCBHbFNjYW5vdXRSZW5kZXJlcjo6Y3JlYXRlVGV4dHVyZUZyb21TY2Fu b3V0KGNvbnN0IFNwaWNlR2xTY2Fub3V0ICpzY2Fub3V0KQorIAorICAgICBnbC0+Z2xCaW5kVGV4 dHVyZShHTF9URVhUVVJFXzJELCBtX3RleElkKTsKKyAKKy0gICAgZ2wtPmdsVGV4UGFyYW1ldGVy aShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX05FQVJFU1QpOworKyAg ICBnbC0+Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUlOX0ZJTFRF UiwgR0xfTElORUFSKTsKKyAgICAgZ2wtPmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH TF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgIGdsLT5nbFRleFBhcmFtZXRl cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RPX0VER0UpOwor ICAgICBnbC0+Z2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9U LCBHTF9DTEFNUF9UT19FREdFKTsKK0BAIC0xODIsOCArMjEwLDE0IEBAIHZvaWQgR2xTY2Fub3V0 UmVuZGVyZXI6OmNyZWF0ZVRleHR1cmVGcm9tU2Nhbm91dChjb25zdCBTcGljZUdsU2Nhbm91dCAq c2Nhbm91dCkKKyBRU0dOb2RlICpHbFNjYW5vdXRSZW5kZXJlcjo6dXBkYXRlUGFpbnROb2RlKFFR dWlja1dpbmRvdyAqd2luZG93LCBRU0dOb2RlICpvbGROb2RlLCBjb25zdCBRUmVjdEYgJmJvdW5k cykKKyB7CisgICAgIC8vIGNyZWF0ZSBvcGVuZ2wgdGV4dHVyZSBmcm9tIHNjYW5vdXQgZGF0YQor LSAgICBpZiAobV9oYXNTY2Fub3V0ICYmIG1fdGV4SWQgPT0gMCkgeworLSAgICAgICAgY3JlYXRl VGV4dHVyZUZyb21TY2Fub3V0KCZtX3NjYW5vdXQpOworKyAgICBRU2l6ZSBmcmFtZVNpemU7Cisr ICAgIHsKKysgICAgICAgIFFNdXRleExvY2tlciBsb2NrZXIoJm1fc2Nhbm91dExvY2spOworKyAg ICAgICAgaWYgKG1faGFzU2Nhbm91dCAmJiAobV90ZXhJZCA9PSAwIHx8IG1fc2Nhbm91dERpcnR5 KSkgeworKyAgICAgICAgICAgIGNyZWF0ZVRleHR1cmVGcm9tU2Nhbm91dCgmbV9zY2Fub3V0KTsK KysgICAgICAgICAgICBtX3NjYW5vdXREaXJ0eSA9IGZhbHNlOworKyAgICAgICAgfQorKyAgICAg ICAgZnJhbWVTaXplID0gUVNpemUobV9pbWFnZVdpZHRoLCBtX2ltYWdlSGVpZ2h0KTsKKyAgICAg fQorIAorICAgICBpZiAoIW1fdGV4SWQpIHsKK0BAIC0xOTYsNiArMjMwLDggQEAgUVNHTm9kZSAq R2xTY2Fub3V0UmVuZGVyZXI6OnVwZGF0ZVBhaW50Tm9kZShRUXVpY2tXaW5kb3cgKndpbmRvdywg UVNHTm9kZSAqb2xkTm8KKyAgICAgaWYgKCF0ZXh0dXJlTm9kZSkgeworICAgICAgICAgdGV4dHVy ZU5vZGUgPSBuZXcgUVNHU2ltcGxlVGV4dHVyZU5vZGUoKTsKKyAgICAgICAgIHRleHR1cmVOb2Rl LT5zZXRPd25zVGV4dHVyZSh0cnVlKTsKKysgICAgICAgIC8vIHRoZSBub2RlIGRlZmF1bHRzIHRv IG5lYXJlc3QsIHdoaWNoIGFsaWFzZXMgYmFkbHkgb25jZSB0aGUgZnJhbWUgaXMgc2NhbGVkCisr ICAgICAgICB0ZXh0dXJlTm9kZS0+c2V0RmlsdGVyaW5nKFFTR1RleHR1cmU6OkxpbmVhcik7Cisg ICAgIH0KKyAKKyAgICAgUU9wZW5HTENvbnRleHQgKmNvbnRleHQgPSBRT3BlbkdMQ29udGV4dDo6 Y3VycmVudENvbnRleHQoKTsKK0BAIC0yMDcsNyArMjQzLDcgQEAgUVNHTm9kZSAqR2xTY2Fub3V0 UmVuZGVyZXI6OnVwZGF0ZVBhaW50Tm9kZShRUXVpY2tXaW5kb3cgKndpbmRvdywgUVNHTm9kZSAq b2xkTm8KKyAgICAgUU9wZW5HTEZ1bmN0aW9ucyAqZ2wgPSBjb250ZXh0LT5mdW5jdGlvbnMoKTsK KyAgICAgaWYgKGdsKSB7CisgICAgICAgICBnbC0+Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE LCBtX3RleElkKTsKKy0gICAgICAgIGdsLT5nbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwg R0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9ORUFSRVNUKTsKKysgICAgICAgIGdsLT5nbFRleFBh cmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIp OworICAgICAgICAgZ2wtPmdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJF X01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgICAgICBnbC0+Z2xCaW5kVGV4dHVyZShHTF9U RVhUVVJFXzJELCAwKTsKKyAgICAgfQorQEAgLTIyMCwzMiArMjU2LDQxIEBAIFFTR05vZGUgKkds U2Nhbm91dFJlbmRlcmVyOjp1cGRhdGVQYWludE5vZGUoUVF1aWNrV2luZG93ICp3aW5kb3csIFFT R05vZGUgKm9sZE5vCisgICAgICAgICByZXR1cm4gdGV4dHVyZU5vZGU7CisgICAgIH0KKyAKKy0g ICAgUVJoaVRleHR1cmU6OkZvcm1hdCByaGlGb3JtYXQgPSBRUmhpVGV4dHVyZTo6UkdCQTg7Cist ICAgIFFSaGlUZXh0dXJlICpyaGlUZXh0dXJlID0gcmhpLT5uZXdUZXh0dXJlKHJoaUZvcm1hdCwg UVNpemUobV9pbWFnZVdpZHRoLCBtX2ltYWdlSGVpZ2h0KSk7CistICAgIGlmICghcmhpVGV4dHVy ZSkgeworLSAgICAgICAgcUNEZWJ1ZyhLQVJUT05fREVCVUcpIDw8ICJGYWlsZWQgdG8gY3JlYXRl IFJISSB0ZXh0dXJlIjsKKy0gICAgICAgIHJldHVybiB0ZXh0dXJlTm9kZTsKKy0gICAgfQorKyAg ICAvLyB0aGUgR0wgdGV4dHVyZSBpZCBpcyBzdGFibGUsIHNvIG9ubHkgcmVidWlsZCB0aGUgd3Jh cHBlcnMgd2hlbiB0aGUgZnJhbWUgc2l6ZSBjaGFuZ2VzCisrICAgIGlmICghbV9yaGlUZXh0dXJl IHx8IG1fcmhpVGV4dHVyZVNpemUgIT0gZnJhbWVTaXplIHx8ICF0ZXh0dXJlTm9kZS0+dGV4dHVy ZSgpKSB7CisrICAgICAgICBRUmhpVGV4dHVyZSAqcmhpVGV4dHVyZSA9IHJoaS0+bmV3VGV4dHVy ZShRUmhpVGV4dHVyZTo6UkdCQTgsIGZyYW1lU2l6ZSk7CisrICAgICAgICBpZiAoIXJoaVRleHR1 cmUpIHsKKysgICAgICAgICAgICBxQ0RlYnVnKEtBUlRPTl9ERUJVRykgPDwgIkZhaWxlZCB0byBj cmVhdGUgUkhJIHRleHR1cmUiOworKyAgICAgICAgICAgIHJldHVybiB0ZXh0dXJlTm9kZTsKKysg ICAgICAgIH0KKyAKKy0gICAgLy8gY3JlYXRlIG5hdGl2ZSB0ZXh0dXJlIHRvIGJlIGNvbnRhaW5l ZCBpbiBSSEkKKy0gICAgUVJoaVRleHR1cmU6Ok5hdGl2ZVRleHR1cmUgbmF0aXZlVGV4OworLSAg ICBuYXRpdmVUZXgub2JqZWN0ID0gbV90ZXhJZDsKKy0gICAgbmF0aXZlVGV4LmxheW91dCA9IDA7 CisrICAgICAgICAvLyBjcmVhdGUgbmF0aXZlIHRleHR1cmUgdG8gYmUgY29udGFpbmVkIGluIFJI SQorKyAgICAgICAgUVJoaVRleHR1cmU6Ok5hdGl2ZVRleHR1cmUgbmF0aXZlVGV4OworKyAgICAg ICAgbmF0aXZlVGV4Lm9iamVjdCA9IG1fdGV4SWQ7CisrICAgICAgICBuYXRpdmVUZXgubGF5b3V0 ID0gMDsKKyAKKy0gICAgaWYgKCFyaGlUZXh0dXJlLT5jcmVhdGVGcm9tKG5hdGl2ZVRleCkpIHsK Ky0gICAgICAgIHFDRGVidWcoS0FSVE9OX0RFQlVHKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBSSEkg dGV4dHVyZSBmcm9tIG5hdGl2ZSI7CistICAgICAgICBkZWxldGUgcmhpVGV4dHVyZTsKKy0gICAg ICAgIHJldHVybiB0ZXh0dXJlTm9kZTsKKy0gICAgfQorKyAgICAgICAgaWYgKCFyaGlUZXh0dXJl LT5jcmVhdGVGcm9tKG5hdGl2ZVRleCkpIHsKKysgICAgICAgICAgICBxQ0RlYnVnKEtBUlRPTl9E RUJVRykgPDwgIkZhaWxlZCB0byBjcmVhdGUgUkhJIHRleHR1cmUgZnJvbSBuYXRpdmUiOworKyAg ICAgICAgICAgIGRlbGV0ZSByaGlUZXh0dXJlOworKyAgICAgICAgICAgIHJldHVybiB0ZXh0dXJl Tm9kZTsKKysgICAgICAgIH0KKyAKKy0gICAgUVNHVGV4dHVyZSAqdGV4dHVyZSA9IHdpbmRvdy0+ Y3JlYXRlVGV4dHVyZUZyb21SaGlUZXh0dXJlKHJoaVRleHR1cmUsIG9wdGlvbnMpOworLSAgICBp ZiAoIXRleHR1cmUpIHsKKy0gICAgICAgIHFDRGVidWcoS0FSVE9OX0RFQlVHKSA8PCAiRmFpbGVk IHRvIGNyZWF0ZSBRU0cgdGV4dHVyZSI7CistICAgICAgICBkZWxldGUgcmhpVGV4dHVyZTsKKy0g ICAgICAgIHJldHVybiB0ZXh0dXJlTm9kZTsKKysgICAgICAgIFFTR1RleHR1cmUgKnRleHR1cmUg PSB3aW5kb3ctPmNyZWF0ZVRleHR1cmVGcm9tUmhpVGV4dHVyZShyaGlUZXh0dXJlLCBvcHRpb25z KTsKKysgICAgICAgIGlmICghdGV4dHVyZSkgeworKyAgICAgICAgICAgIHFDRGVidWcoS0FSVE9O X0RFQlVHKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSBRU0cgdGV4dHVyZSI7CisrICAgICAgICAgICAg ZGVsZXRlIHJoaVRleHR1cmU7CisrICAgICAgICAgICAgcmV0dXJuIHRleHR1cmVOb2RlOworKyAg ICAgICAgfQorKworKyAgICAgICAgLy8gdGhlIG5vZGUgb3ducyB0aGUgUVNHIHdyYXBwZXIsIHRo ZSBRUmhpVGV4dHVyZSB1bmRlcm5lYXRoIGlzIG91cnMgdG8gZnJlZQorKyAgICAgICAgUVJoaVRl eHR1cmUgKnByZXZpb3VzID0gbV9yaGlUZXh0dXJlOworKyAgICAgICAgdGV4dHVyZU5vZGUtPnNl dFRleHR1cmUodGV4dHVyZSk7CisrICAgICAgICBkZWxldGUgcHJldmlvdXM7CisrCisrICAgICAg ICBtX3JoaVRleHR1cmUgPSByaGlUZXh0dXJlOworKyAgICAgICAgbV9yaGlUZXh0dXJlU2l6ZSA9 IGZyYW1lU2l6ZTsKKyAgICAgfQorIAorLSAgICB0ZXh0dXJlTm9kZS0+c2V0VGV4dHVyZSh0ZXh0 dXJlKTsKKyAgICAgdGV4dHVyZU5vZGUtPnNldFJlY3QoYm91bmRzKTsKKyAKKyAgICAgcUNEZWJ1 ZyhLQVJUT05fREVCVUcpIDw8ICJHbFNjYW5vdXRSZW5kZXJlcjogU3VjY2Vzc2Z1bGx5IHVwZGF0 ZWQgY2FudmFzLiI7CitAQCAtMjU4LDE0ICszMDMsMjEgQEAgUVNHTm9kZSAqR2xTY2Fub3V0UmVu ZGVyZXI6OnVwZGF0ZVBhaW50Tm9kZShRUXVpY2tXaW5kb3cgKndpbmRvdywgUVNHTm9kZSAqb2xk Tm8KKyAvLyBjbGVhbnMgdXAgc2Nhbm91dCBhbmQgZWdsIGltYWdlLCB0ZXh0dXJlcworIHZvaWQg R2xTY2Fub3V0UmVuZGVyZXI6OmNsZWFudXBFR0xSZXNvdXJjZXMoKQorIHsKKysgICAgUU11dGV4 TG9ja2VyIGxvY2tlcigmbV9zY2Fub3V0TG9jayk7CisrCisgICAgIGlmIChtX2hhc1NjYW5vdXQg JiYgbV9zY2Fub3V0LmZkID49IDApIHsKKyAgICAgICAgIGNsb3NlKG1fc2Nhbm91dC5mZCk7Cisg ICAgICAgICBtX3NjYW5vdXQuZmQgPSAtMTsKKyAgICAgfQorICAgICBtX2hhc1NjYW5vdXQgPSBm YWxzZTsKKysgICAgbV9zY2Fub3V0RGlydHkgPSBmYWxzZTsKKyAKKyAgICAgY2xlYW51cEVHTElt YWdlKCk7CisgCisrICAgIGRlbGV0ZSBtX3JoaVRleHR1cmU7CisrICAgIG1fcmhpVGV4dHVyZSA9 IG51bGxwdHI7CisrICAgIG1fcmhpVGV4dHVyZVNpemUgPSBRU2l6ZSgpOworKworICAgICBRT3Bl bkdMQ29udGV4dCAqY29udGV4dCA9IFFPcGVuR0xDb250ZXh0OjpjdXJyZW50Q29udGV4dCgpOwor ICAgICBpZiAobV90ZXhJZCAmJiBjb250ZXh0KSB7CisgICAgICAgICBRT3BlbkdMRnVuY3Rpb25z ICpnbCA9IGNvbnRleHQtPmZ1bmN0aW9ucygpOworZGlmZiAtLWdpdCBhL3NyYy9nbHNjYW5vdXRy ZW5kZXJlci5oIGIvc3JjL2dsc2Nhbm91dHJlbmRlcmVyLmgKK2luZGV4IDU0ODQ5NTYuLmFiYzk1 MjkgMTAwNjQ0CistLS0gYS9zcmMvZ2xzY2Fub3V0cmVuZGVyZXIuaAorKysrIGIvc3JjL2dsc2Nh bm91dHJlbmRlcmVyLmgKK0BAIC0xMCw2ICsxMCwxMSBAQAorICNpbmNsdWRlIDxHTEVTMi9nbDIu aD4KKyAjaW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CisgCisrI2luY2x1ZGUgPFFNdXRleD4KKysj aW5jbHVkZSA8UVNpemU+CisrCisrI2luY2x1ZGUgPHJoaS9xcmhpLmg+CisrCisgLy8gaGFyZHdh cmUtYWNjZWwgcmVuZGVyZXIKKyBjbGFzcyBHbFNjYW5vdXRSZW5kZXJlciA6IHB1YmxpYyBTcGlj ZURpc3BsYXlSZW5kZXJlcgorIHsKK0BAIC0yNiwxMSArMzEsMTMgQEAgcHVibGljOgorIAorICAg ICBRU2l6ZSBmcmFtZVNpemUoKSBjb25zdCBvdmVycmlkZQorICAgICB7CisrICAgICAgICBRTXV0 ZXhMb2NrZXIgbG9ja2VyKCZtX3NjYW5vdXRMb2NrKTsKKyAgICAgICAgIHJldHVybiBRU2l6ZSht X2ltYWdlV2lkdGgsIG1faW1hZ2VIZWlnaHQpOworICAgICB9CisgCisgcHJpdmF0ZToKKyAgICAg c3RhdGljIHZvaWQgZ2xfZHJhd19jYWxsYmFjayhTcGljZURpc3BsYXlDaGFubmVsICpjaGFubmVs LCBndWludCB4LCBndWludCB5LCBndWludCB3aWR0aCwgZ3VpbnQgaGVpZ2h0LCBncG9pbnRlciB1 c2VyX2RhdGEpOworKyAgICBzdGF0aWMgdm9pZCBnbF9zY2Fub3V0X25vdGlmeV9jYWxsYmFjayhH T2JqZWN0ICpvYmplY3QsIEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciB1c2VyX2RhdGEpOwor ICAgICB2b2lkIGhhbmRsZUdsU2Nhbm91dChjb25zdCBTcGljZUdsU2Nhbm91dCAqc2Nhbm91dCk7 CisgICAgIHZvaWQgY3JlYXRlVGV4dHVyZUZyb21TY2Fub3V0KGNvbnN0IFNwaWNlR2xTY2Fub3V0 ICpzY2Fub3V0KTsKKyAgICAgdm9pZCBjbGVhbnVwRUdMSW1hZ2UoKTsKK0BAIC0zOCwxNCArNDUs MjIgQEAgcHJpdmF0ZToKKyAKKyAgICAgU3BpY2VEaXNwbGF5Q2hhbm5lbCAqbV9jaGFubmVsID0g bnVsbHB0cjsKKyAgICAgZ3Vsb25nIG1fZ2xEcmF3SGFuZGxlcklkID0gMDsKKysgICAgZ3Vsb25n IG1fZ2xTY2Fub3V0SGFuZGxlcklkID0gMDsKKyAKKysgICAgLy8gZ3VhcmRzIHRoZSBzY2Fub3V0 IGFnYWluc3QgdGhlIHJlbmRlciB0aHJlYWQgaW1wb3J0aW5nIGl0IHdoaWxlIGl0IGlzIGJlaW5n IHJlcGxhY2VkCisrICAgIG11dGFibGUgUU11dGV4IG1fc2Nhbm91dExvY2s7CisgICAgIGludCBt X2ltYWdlV2lkdGggPSAwOworICAgICBpbnQgbV9pbWFnZUhlaWdodCA9IDA7CisgICAgIFNwaWNl R2xTY2Fub3V0IG1fc2Nhbm91dCA9IHt9OworICAgICBib29sIG1faGFzU2Nhbm91dCA9IGZhbHNl OworKyAgICBib29sIG1fc2Nhbm91dERpcnR5ID0gZmFsc2U7CisgICAgIEVHTEltYWdlS0hSIG1f ZWdsSW1hZ2UgPSBFR0xfTk9fSU1BR0VfS0hSOworICAgICBQRk5FR0xERVNUUk9ZSU1BR0VLSFJQ Uk9DIG1fZWdsRGVzdHJveUltYWdlS0hSID0gbnVsbHB0cjsKKyAgICAgUEZOR0xFR0xJTUFHRVRB UkdFVFRFWFRVUkUyRE9FU1BST0MgbV9nbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTID0gbnVs bHB0cjsKKyAgICAgUEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIG1fZWdsQ3JlYXRlSW1hZ2VLSFIg PSBudWxscHRyOworICAgICBHTHVpbnQgbV90ZXhJZCA9IDA7CisrCisrICAgIC8vIGNhY2hlZCBh Y3Jvc3MgZnJhbWVzOiByZWJ1aWxkaW5nIHRoZXNlIHBlciBwYWludCBsZWFrcyBHUFUgbWVtb3J5 IHVudGlsIHRoZSBkcml2ZXIgZGllcworKyAgICBRUmhpVGV4dHVyZSAqbV9yaGlUZXh0dXJlID0g bnVsbHB0cjsKKysgICAgUVNpemUgbV9yaGlUZXh0dXJlU2l6ZTsKKyB9OworLS0gCitHaXRMYWIK KworCitGcm9tIDg0OTZjZWVhZmEwZDlhYzY2NTA3MTQwNmY2MWNkYzczNDQyOGE3YjUgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbnVyYWxwIFNFWkVSIDx0aHVuZGVyYmlyZHRyQGZl ZG9yYXByb2plY3Qub3JnPgorRGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAwMToyNzoyMiArMDMwMAor U3ViamVjdDogW1BBVENIIDIvNF0gQWRkIGEgU1BJQ0UgYWdlbnQgY2hhbm5lbCBzbyBndWVzdHMg Y2FuIGJlIHJlc2l6ZWQKKworU2lnbmVkLW9mZi1ieTogT251cmFscCBTRVpFUiA8dGh1bmRlcmJp cmR0ckBmZWRvcmFwcm9qZWN0Lm9yZz4KKy0tLQorIHNyYy9kb21haW54bWxidWlsZGVyLmNwcCB8 IDU5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKKyBzcmMvZG9tYWlu eG1sYnVpbGRlci5oICAgfCAxNiArKysrKysrKysrKworIHNyYy9rYXJ0b24uY3BwICAgICAgICAg ICB8IDM1ICsrKysrKysrKysrKysrKysrKysrKysrKworIHNyYy9rYXJ0b24uaCAgICAgICAgICAg ICB8ICAxICsKKyA0IGZpbGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1n aXQgYS9zcmMvZG9tYWlueG1sYnVpbGRlci5jcHAgYi9zcmMvZG9tYWlueG1sYnVpbGRlci5jcHAK K2luZGV4IDg1MWYyOTguLmI3NWNjMmIgMTAwNjQ0CistLS0gYS9zcmMvZG9tYWlueG1sYnVpbGRl ci5jcHAKKysrKyBiL3NyYy9kb21haW54bWxidWlsZGVyLmNwcAorQEAgLTIwOSw2ICsyMDksMTQg QEAgUVN0cmluZyBEb21haW5YbWxCdWlsZGVyOjpnZW5lcmF0ZVhNTCh2aXJDb25uZWN0UHRyIGNv bm4sIGNvbnN0IERvbWFpbkNvbmZpZyAqY28KKyAKKyAgICAgYWRkQ29uc29sZURldmljZXMoZG9j dW1lbnQsIGRldmljZXMsIHsudHlwZSA9IFFTdHJpbmdMaXRlcmFsKCJwdHkiKX0pOworIAorKyAg ICAvLyBkZXZpY2VzLT5jb250cm9sbGVyIGFuZCBkZXZpY2VzLT5jaGFubmVsIGVsZW1lbnRzCisr ICAgIC8vIHZpcnRpby1zZXJpYWwgcG9ydCBmb3Igc3BpY2UtdmRhZ2VudCwgcmVxdWlyZWQgZm9y IHRoZSBndWVzdCB0byBmb2xsb3cgdGhlIHZpZXdlciBzaXplCisrICAgIGFkZENvbnRyb2xsZXJE ZXZpY2VzKGRvY3VtZW50LCBkZXZpY2VzLCB7LnR5cGUgPSBRU3RyaW5nTGl0ZXJhbCgidmlydGlv LXNlcmlhbCIpLCAuaW5kZXggPSBRU3RyaW5nTGl0ZXJhbCgiMCIpfSk7CisrCisrICAgIGFkZENo YW5uZWxEZXZpY2VzKGRvY3VtZW50LAorKyAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VzLAor KyAgICAgICAgICAgICAgICAgICAgICB7LnR5cGUgPSBRU3RyaW5nTGl0ZXJhbCgic3BpY2V2bWMi KSwgLnRhcmdldFR5cGUgPSBRU3RyaW5nTGl0ZXJhbCgidmlydGlvIiksIC50YXJnZXROYW1lID0g UVN0cmluZ0xpdGVyYWwoImNvbS5yZWRoYXQuc3BpY2UuMCIpfSk7CisrCisgICAgIC8vIHdyaXRl IHRvIGZpbGUKKyAgICAgUVN0cmluZyB4bWxTdHJpbmcgPSBkb2N1bWVudC50b1N0cmluZyg0KTsK KyAKK0BAIC0yNDYsNiArMjU0LDM3IEBAIFFTdHJpbmcgRG9tYWluWG1sQnVpbGRlcjo6Z2VuZXJh dGVEaXNrWE1MKGNvbnN0IERpc2tEZXZpY2VDb25maWcgJmNvbmZpZykKKyAgICAgcmV0dXJuIGRv Y3VtZW50LnRvU3RyaW5nKDQpOworIH0KKyAKKytRU3RyaW5nIERvbWFpblhtbEJ1aWxkZXI6Omdl bmVyYXRlU3BpY2VBZ2VudENoYW5uZWxYTUwoKQorK3sKKysgICAgUURvbURvY3VtZW50IGRvY3Vt ZW50OworKyAgICBRRG9tRWxlbWVudCBkZXZpY2VzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChR U3RyaW5nTGl0ZXJhbCgiZGV2aWNlcyIpKTsKKysgICAgLy8gbGlidmlydCBhZGRzIHRoZSB2aXJ0 aW8tc2VyaWFsIGNvbnRyb2xsZXIgaXRzZWxmCisrICAgIGFkZENoYW5uZWxEZXZpY2VzKGRvY3Vt ZW50LAorKyAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VzLAorKyAgICAgICAgICAgICAgICAg ICAgICB7LnR5cGUgPSBRU3RyaW5nTGl0ZXJhbCgic3BpY2V2bWMiKSwgLnRhcmdldFR5cGUgPSBR U3RyaW5nTGl0ZXJhbCgidmlydGlvIiksIC50YXJnZXROYW1lID0gUVN0cmluZ0xpdGVyYWwoImNv bS5yZWRoYXQuc3BpY2UuMCIpfSk7CisrICAgIGRvY3VtZW50LmFwcGVuZENoaWxkKGRldmljZXMu Zmlyc3RDaGlsZEVsZW1lbnQoKSk7CisrCisrICAgIHJldHVybiBkb2N1bWVudC50b1N0cmluZyg0 KTsKKyt9CisrCisrYm9vbCBEb21haW5YbWxCdWlsZGVyOjpoYXNTcGljZUFnZW50Q2hhbm5lbChj b25zdCBRU3RyaW5nICZ4bWxEZXNjKQorK3sKKysgICAgUURvbURvY3VtZW50IGRvY3VtZW50Owor KyAgICBpZiAoIWRvY3VtZW50LnNldENvbnRlbnQoeG1sRGVzYykpIHsKKysgICAgICAgIHJldHVy biBmYWxzZTsKKysgICAgfQorKworKyAgICBjb25zdCBRRG9tTm9kZUxpc3QgY2hhbm5lbHMgPSBk b2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKS5lbGVtZW50c0J5VGFnTmFtZShRU3RyaW5nTGl0ZXJh bCgiY2hhbm5lbCIpKTsKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjaGFubmVscy5jb3VudCgp OyArK2kpIHsKKysgICAgICAgIGNvbnN0IFFEb21FbGVtZW50IHRhcmdldCA9IGNoYW5uZWxzLmF0 KGkpLnRvRWxlbWVudCgpLmZpcnN0Q2hpbGRFbGVtZW50KFFTdHJpbmdMaXRlcmFsKCJ0YXJnZXQi KSk7CisrICAgICAgICBpZiAodGFyZ2V0LmF0dHJpYnV0ZShRU3RyaW5nTGl0ZXJhbCgibmFtZSIp KSA9PSBRU3RyaW5nTGl0ZXJhbCgiY29tLnJlZGhhdC5zcGljZS4wIikpIHsKKysgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKKysgICAgICAgIH0KKysgICAgfQorKworKyAgICByZXR1cm4gZmFsc2U7 CisrfQorKworIHZvaWQgRG9tYWluWG1sQnVpbGRlcjo6YWRkSGFyZHdhcmVFbGVtZW50cyhRRG9t RG9jdW1lbnQgJmRvY3VtZW50LCBRRG9tRWxlbWVudCAmcm9vdCwgaW50IG1heFJhbSwgaW50IGNw dXMpCisgeworICAgICBRTWFwPFFTdHJpbmcsIFFTdHJpbmc+IG1lbTsKK0BAIC0zOTUsNiArNDM0 LDI2IEBAIHZvaWQgRG9tYWluWG1sQnVpbGRlcjo6YWRkQ29uc29sZURldmljZXMoUURvbURvY3Vt ZW50ICZkb2N1bWVudCwgUURvbUVsZW1lbnQgJnBhCisgICAgIGNvbnNvbGUuc2V0QXR0cmlidXRl KFFTdHJpbmdMaXRlcmFsKCJ0eXBlIiksIGNvbmZpZy50eXBlKTsKKyB9CisgCisrdm9pZCBEb21h aW5YbWxCdWlsZGVyOjphZGRDb250cm9sbGVyRGV2aWNlcyhRRG9tRG9jdW1lbnQgJmRvY3VtZW50 LCBRRG9tRWxlbWVudCAmcGFyZW50LCBjb25zdCBDb250cm9sbGVyQ29uZmlnICZjb25maWcpCisr eworKyAgICBRRG9tRWxlbWVudCBjb250cm9sbGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChR U3RyaW5nTGl0ZXJhbCgiY29udHJvbGxlciIpKTsKKysgICAgcGFyZW50LmFwcGVuZENoaWxkKGNv bnRyb2xsZXIpOworKyAgICBjb250cm9sbGVyLnNldEF0dHJpYnV0ZShRU3RyaW5nTGl0ZXJhbCgi dHlwZSIpLCBjb25maWcudHlwZSk7CisrICAgIGNvbnRyb2xsZXIuc2V0QXR0cmlidXRlKFFTdHJp bmdMaXRlcmFsKCJpbmRleCIpLCBjb25maWcuaW5kZXgpOworK30KKysKKyt2b2lkIERvbWFpblht bEJ1aWxkZXI6OmFkZENoYW5uZWxEZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21F bGVtZW50ICZwYXJlbnQsIGNvbnN0IENoYW5uZWxDb25maWcgJmNvbmZpZykKKyt7CisrICAgIFFE b21FbGVtZW50IGNoYW5uZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFFTdHJpbmdMaXRlcmFs KCJjaGFubmVsIikpOworKyAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoY2hhbm5lbCk7CisrICAgIGNo YW5uZWwuc2V0QXR0cmlidXRlKFFTdHJpbmdMaXRlcmFsKCJ0eXBlIiksIGNvbmZpZy50eXBlKTsK KysKKysgICAgUU1hcDxRU3RyaW5nLCBRU3RyaW5nPiB0YXJnZXQ7CisrICAgIHRhcmdldFtRU3Ry aW5nTGl0ZXJhbCgidHlwZSIpXSA9IGNvbmZpZy50YXJnZXRUeXBlOworKyAgICB0YXJnZXRbUVN0 cmluZ0xpdGVyYWwoIm5hbWUiKV0gPSBjb25maWcudGFyZ2V0TmFtZTsKKysgICAgYWRkRWxlbWVu dFdpdGhBdHRyaWJ1dGVzKGRvY3VtZW50LCBjaGFubmVsLCBRU3RyaW5nTGl0ZXJhbCgidGFyZ2V0 IiksIFFTdHJpbmcoKSwgdGFyZ2V0KTsKKyt9CisrCisgLy8gVGVtcG9yYXJpbHk6IGdlbmVyYXRl IGEgcmFuZG9tIG1hYyBhZGRyZXNzIChpbiB1bmljYXN0KS4uLgorIC8vIGV2ZW50dWFsbHkgZ2Vu ZXJhdGUgYSBuZXR3b3JrIGRvbWFpbi4KKyBRU3RyaW5nIERvbWFpblhtbEJ1aWxkZXI6Omdlbk1h YygpCitkaWZmIC0tZ2l0IGEvc3JjL2RvbWFpbnhtbGJ1aWxkZXIuaCBiL3NyYy9kb21haW54bWxi dWlsZGVyLmgKK2luZGV4IDM1MzJlNjIuLmUwMGIwZTUgMTAwNjQ0CistLS0gYS9zcmMvZG9tYWlu eG1sYnVpbGRlci5oCisrKysgYi9zcmMvZG9tYWlueG1sYnVpbGRlci5oCitAQCAtMzksNiArMzks OSBAQCBwdWJsaWM6CisgICAgIFFTdHJpbmcgdXBkYXRlWE1MKGNvbnN0IFFTdHJpbmcgJnhtbERl c2MsIGNvbnN0IEVkaXRhYmxlQ29uZmlnICZjb25maWcpOworICAgICBRU3RyaW5nIGdlbmVyYXRl RGlza1hNTChjb25zdCBEaXNrRGV2aWNlQ29uZmlnICZjb25maWcpOworIAorKyAgICBRU3RyaW5n IGdlbmVyYXRlU3BpY2VBZ2VudENoYW5uZWxYTUwoKTsKKysgICAgc3RhdGljIGJvb2wgaGFzU3Bp Y2VBZ2VudENoYW5uZWwoY29uc3QgUVN0cmluZyAmeG1sRGVzYyk7CisrCisgcHJpdmF0ZToKKyAg ICAgc3RydWN0IE5ldHdvcmtJbnRlcmZhY2VDb25maWcgeworICAgICAgICAgUVN0cmluZyB0eXBl OworQEAgLTgyLDYgKzg1LDE3IEBAIHByaXZhdGU6CisgICAgICAgICBRU3RyaW5nIHR5cGU7Cisg ICAgIH07CisgCisrICAgIHN0cnVjdCBDb250cm9sbGVyQ29uZmlnIHsKKysgICAgICAgIFFTdHJp bmcgdHlwZTsKKysgICAgICAgIFFTdHJpbmcgaW5kZXg7CisrICAgIH07CisrCisrICAgIHN0cnVj dCBDaGFubmVsQ29uZmlnIHsKKysgICAgICAgIFFTdHJpbmcgdHlwZTsKKysgICAgICAgIFFTdHJp bmcgdGFyZ2V0VHlwZTsKKysgICAgICAgIFFTdHJpbmcgdGFyZ2V0TmFtZTsKKysgICAgfTsKKysK KyAgICAgdm9pZCBhZGREaXNrRGV2aWNlcyhRRG9tRG9jdW1lbnQgJmRvY3VtZW50LCBRRG9tRWxl bWVudCAmcGFyZW50LCBjb25zdCBEaXNrRGV2aWNlQ29uZmlnICZjb25maWcpOworICAgICB2b2lk IGFkZE5ldHdvcmtJbnRlcmZhY2VEZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21F bGVtZW50ICZwYXJlbnQsIGNvbnN0IE5ldHdvcmtJbnRlcmZhY2VDb25maWcgJmNvbmZpZyk7Cisg ICAgIHZvaWQgYWRkR3JhcGhpY3NEZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21F bGVtZW50ICZwYXJlbnQsIGNvbnN0IEdyYXBoaWNzQ29uZmlnICZjb25maWcpOworQEAgLTkwLDYg KzEwNCw4IEBAIHByaXZhdGU6CisgICAgIHZvaWQgYWRkVmlkZW9EZXZpY2VzKFFEb21Eb2N1bWVu dCAmZG9jdW1lbnQsIFFEb21FbGVtZW50ICZwYXJlbnQsIGNvbnN0IFZpZGVvQ29uZmlnICZjb25m aWcpOworICAgICB2b2lkIGFkZElucHV0RGV2aWNlcyhRRG9tRG9jdW1lbnQgJmRvY3VtZW50LCBR RG9tRWxlbWVudCAmcGFyZW50LCBjb25zdCBJbnB1dENvbmZpZyAmY29uZmlnKTsKKyAgICAgdm9p ZCBhZGRDb25zb2xlRGV2aWNlcyhRRG9tRG9jdW1lbnQgJmRvY3VtZW50LCBRRG9tRWxlbWVudCAm cGFyZW50LCBjb25zdCBDb25zb2xlQ29uZmlnICZjb25maWcpOworKyAgICB2b2lkIGFkZENvbnRy b2xsZXJEZXZpY2VzKFFEb21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21FbGVtZW50ICZwYXJlbnQs IGNvbnN0IENvbnRyb2xsZXJDb25maWcgJmNvbmZpZyk7CisrICAgIHZvaWQgYWRkQ2hhbm5lbERl dmljZXMoUURvbURvY3VtZW50ICZkb2N1bWVudCwgUURvbUVsZW1lbnQgJnBhcmVudCwgY29uc3Qg Q2hhbm5lbENvbmZpZyAmY29uZmlnKTsKKyAgICAgdm9pZCBhZGRIYXJkd2FyZUVsZW1lbnRzKFFE b21Eb2N1bWVudCAmZG9jdW1lbnQsIFFEb21FbGVtZW50ICZyb290LCBpbnQgbWF4UmFtLCBpbnQg Y3B1cyk7CisgCisgICAgIFFTdHJpbmcgZ2VuTWFjKCk7CitkaWZmIC0tZ2l0IGEvc3JjL2thcnRv bi5jcHAgYi9zcmMva2FydG9uLmNwcAoraW5kZXggNDEzN2Q0OS4uMDA3MzAwMiAxMDA2NDQKKy0t LSBhL3NyYy9rYXJ0b24uY3BwCisrKysgYi9zcmMva2FydG9uLmNwcAorQEAgLTQsNiArNCw3IEBA CisgI2luY2x1ZGUgImthcnRvbi5oIgorIAorICNpbmNsdWRlIDxsaWJ2aXJ0L2xpYnZpcnQuaD4K KysjaW5jbHVkZSA8bGlidmlydC92aXJ0ZXJyb3IuaD4KKyAKKyAjaW5jbHVkZSA8S0xvY2FsaXpl ZFN0cmluZz4KKyAjaW5jbHVkZSA8UURpcj4KK0BAIC0yNDMsNiArMjQ0LDkgQEAgUVZlY3RvcjxE b21haW4gKj4gS2FydG9uOjpkb21haW5zKCkKKyBib29sIEthcnRvbjo6c3RhcnREb21haW4oY29u c3QgRG9tYWluICpkb21haW4pCisgeworICAgICB2aXJEb21haW5QdHIgZG9tYWluUHRyID0gZG9t YWluLT5kb21haW5QdHIoKTsKKysKKysgICAgZW5zdXJlU3BpY2VBZ2VudENoYW5uZWwoZG9tYWlu KTsKKysKKyAgICAgaW50IHJlc3VsdCA9IHZpckRvbWFpbkNyZWF0ZShkb21haW5QdHIpOworIAor ICAgICBpZiAocmVzdWx0IDwgMCkgeworQEAgLTI1NSw2ICsyNTksMzcgQEAgYm9vbCBLYXJ0b246 OnN0YXJ0RG9tYWluKGNvbnN0IERvbWFpbiAqZG9tYWluKQorICAgICByZXR1cm4gdHJ1ZTsKKyB9 CisgCisrLy8gYXR0YWNoZWQgd2hpbGUgdGhlIGRvbWFpbiBpcyBpbmFjdGl2ZSwgc28gaXQgYXBw bGllcyBvbiB0aGUgYm9vdCB0aGF0IGZvbGxvd3MKKyt2b2lkIEthcnRvbjo6ZW5zdXJlU3BpY2VB Z2VudENoYW5uZWwoY29uc3QgRG9tYWluICpkb21haW4pCisreworKyAgICB2aXJEb21haW5QdHIg ZG9tYWluUHRyID0gZG9tYWluLT5kb21haW5QdHIoKTsKKysgICAgaWYgKHZpckRvbWFpbklzQWN0 aXZlKGRvbWFpblB0cikgIT0gMCkgeworKyAgICAgICAgcmV0dXJuOworKyAgICB9CisrCisrICAg IGNoYXIgKnhtbERlc2MgPSB2aXJEb21haW5HZXRYTUxEZXNjKGRvbWFpblB0ciwgVklSX0RPTUFJ Tl9YTUxfSU5BQ1RJVkUpOworKyAgICBpZiAoIXhtbERlc2MpIHsKKysgICAgICAgIHFDV2Fybmlu ZyhLQVJUT05fREVCVUcpIDw8ICJDb3VsZCBub3QgcmVhZCBjb25maWd1cmF0aW9uIHRvIGNoZWNr IGZvciBhIFNQSUNFIGFnZW50IGNoYW5uZWw6IiA8PCBkb21haW4tPmNvbmZpZygpLT5uYW1lKCk7 CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysgICAgY29uc3QgUVN0cmluZyBkZXNjID0gUVN0 cmluZzo6ZnJvbVV0ZjgoeG1sRGVzYyk7CisrICAgIGZyZWUoeG1sRGVzYyk7CisrCisrICAgIGlm IChEb21haW5YbWxCdWlsZGVyOjpoYXNTcGljZUFnZW50Q2hhbm5lbChkZXNjKSkgeworKyAgICAg ICAgcmV0dXJuOworKyAgICB9CisrCisrICAgIERvbWFpblhtbEJ1aWxkZXIgYnVpbGRlcjsKKysg ICAgY29uc3QgUVN0cmluZyBmcmFnbWVudCA9IGJ1aWxkZXIuZ2VuZXJhdGVTcGljZUFnZW50Q2hh bm5lbFhNTCgpOworKyAgICAvLyBvbmx5IHdhcm5zOiBhIG1pc3NpbmcgYWdlbnQgY2hhbm5lbCBt dXN0IG5ldmVyIHN0b3AgYSBWTSBmcm9tIHN0YXJ0aW5nCisrICAgIGlmICh2aXJEb21haW5BdHRh Y2hEZXZpY2VGbGFncyhkb21haW5QdHIsIGZyYWdtZW50LnRvVXRmOCgpLmNvbnN0RGF0YSgpLCBW SVJfRE9NQUlOX0FGRkVDVF9DT05GSUcpIDwgMCkgeworKyAgICAgICAgcUNXYXJuaW5nKEtBUlRP Tl9ERUJVRykgPDwgIkNvdWxkIG5vdCBhZGQgYSBTUElDRSBhZ2VudCBjaGFubmVsIHRvIiA8PCBk b21haW4tPmNvbmZpZygpLT5uYW1lKCkgPDwgIjoiIDw8IHZpckdldExhc3RFcnJvck1lc3NhZ2Uo KTsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKworKyAgICBxQ0luZm8oS0FSVE9OX0RFQlVH KSA8PCAiQWRkZWQgYSBTUElDRSBhZ2VudCBjaGFubmVsIHRvIiA8PCBkb21haW4tPmNvbmZpZygp LT5uYW1lKCk7CisrfQorKworIGJvb2wgS2FydG9uOjpzdG9wRG9tYWluKGNvbnN0IERvbWFpbiAq ZG9tYWluKQorIHsKKyAgICAgdmlyRG9tYWluUHRyIGRvbWFpblB0ciA9IGRvbWFpbi0+ZG9tYWlu UHRyKCk7CitkaWZmIC0tZ2l0IGEvc3JjL2thcnRvbi5oIGIvc3JjL2thcnRvbi5oCitpbmRleCA5 NDVmMzFhLi4yMjEyOGY2IDEwMDY0NAorLS0tIGEvc3JjL2thcnRvbi5oCisrKysgYi9zcmMva2Fy dG9uLmgKK0BAIC03Niw0ICs3Niw1IEBAIHByaXZhdGU6CisgICAgIENvbW1hbmRSdW5uZXIgKm1f Y29tbWFuZFJ1bm5lcjsKKyAKKyAgICAgYm9vbCBpbml0KCk7CisrICAgIHZvaWQgZW5zdXJlU3Bp Y2VBZ2VudENoYW5uZWwoY29uc3QgRG9tYWluICpkb21haW4pOworIH07CistLSAKK0dpdExhYgor CisKK0Zyb20gMWFmNjU4MzRjZmRkZDBiYjgxYmFiNDc3Yjk1MjRkYjY1NjlhZjY3YSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IE9udXJhbHAgU0VaRVIgPHRodW5kZXJiaXJkdHJAZmVk b3JhcHJvamVjdC5vcmc+CitEYXRlOiBUdWUsIDE4IEF1ZyAyMDI2IDAxOjI3OjIyICswMzAwCitT dWJqZWN0OiBbUEFUQ0ggMy80XSBTZW5kIHRoZSB2aWV3ZXIgc2l6ZSB0byB0aGUgZ3Vlc3Qgb3Zl ciB0aGUgU1BJQ0UgbWFpbgorIGNoYW5uZWwKKworU2lnbmVkLW9mZi1ieTogT251cmFscCBTRVpF UiA8dGh1bmRlcmJpcmR0ckBmZWRvcmFwcm9qZWN0Lm9yZz4KKy0tLQorIHNyYy9kb21haW52aWV3 ZXIuY3BwIHwgMTEzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K KyBzcmMvZG9tYWludmlld2VyLmggICB8ICAyNCArKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQs IDEzNCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL2Rv bWFpbnZpZXdlci5jcHAgYi9zcmMvZG9tYWludmlld2VyLmNwcAoraW5kZXggMGE0YjNkZC4uODUx YzQ0OSAxMDA2NDQKKy0tLSBhL3NyYy9kb21haW52aWV3ZXIuY3BwCisrKysgYi9zcmMvZG9tYWlu dmlld2VyLmNwcAorQEAgLTEwLDYgKzEwLDggQEAKKyAjaW5jbHVkZSA8UVN0cmluZz4KKyAjaW5j bHVkZSA8UVVybD4KKyAKKysjaW5jbHVkZSA8YWxnb3JpdGhtPgorKworICNpbmNsdWRlICJkb21h aW4uaCIKKyAjaW5jbHVkZSAiZ2xpYi5oIgorICNpbmNsdWRlICJnbHNjYW5vdXRyZW5kZXJlci5o IgorQEAgLTQyLDYgKzQ0LDEyIEBAIERvbWFpblZpZXdlcjo6RG9tYWluVmlld2VyKFFRdWlja0l0 ZW0gKnBhcmVudCkKKyAgICAgc2V0QWNjZXB0SG92ZXJFdmVudHModHJ1ZSk7CisgICAgIHNldEZs YWcoSXRlbUlzRm9jdXNTY29wZSwgdHJ1ZSk7CisgCisrICAgIC8vIGNvYWxlc2NlIGEgcmVzaXpl IGRyYWcgaW50byBhIHNpbmdsZSBndWVzdCBtb2Rlc2V0CisrICAgIG1fcmVzaXplRGVib3VuY2Ug PSBuZXcgUVRpbWVyKHRoaXMpOworKyAgICBtX3Jlc2l6ZURlYm91bmNlLT5zZXRTaW5nbGVTaG90 KHRydWUpOworKyAgICBtX3Jlc2l6ZURlYm91bmNlLT5zZXRJbnRlcnZhbCgxMDAwKTsKKysgICAg Y29ubmVjdChtX3Jlc2l6ZURlYm91bmNlLCAmUVRpbWVyOjp0aW1lb3V0LCB0aGlzLCAmRG9tYWlu Vmlld2VyOjpzZW5kR3Vlc3RSZXNpemUpOworKworICAgICBjb25uZWN0KG1fY29tbWFuZFJ1bm5l ciwgJkNvbW1hbmRSdW5uZXI6OmNvbW1hbmRGaW5pc2hlZCwgdGhpcywgJkRvbWFpblZpZXdlcjo6 aGFuZGxlSG9zdFBvcnQpOworIH0KKyAKK0BAIC0xNTksMTIgKzE2NywyNCBAQCB2b2lkIERvbWFp blZpZXdlcjo6ZGlzY29ubmVjdEZyb21TcGljZSgpCisgICAgICAgICBtX3JlbmRlcmVyLnJlc2V0 KCk7CisgICAgIH0KKyAKKysgICAgbV9yZXNpemVEZWJvdW5jZS0+c3RvcCgpOworKyAgICBtX2xh c3RSZXF1ZXN0ZWRHdWVzdFNpemUgPSBRU2l6ZSgpOworKworKyAgICBpZiAobV9tYWluX2NoYW5u ZWwgJiYgbV9hZ2VudE5vdGlmeUlkKSB7CisrICAgICAgICBnX3NpZ25hbF9oYW5kbGVyX2Rpc2Nv bm5lY3QobV9tYWluX2NoYW5uZWwsIG1fYWdlbnROb3RpZnlJZCk7CisrICAgIH0KKysgICAgbV9h Z2VudE5vdGlmeUlkID0gMDsKKysgICAgbV9tYWluX2NoYW5uZWwgPSBudWxscHRyOworKworKyAg ICBtX2FnZW50Q29ubmVjdGVkID0gZmFsc2U7CisrCisgICAgIGlmIChtX3Nlc3Npb24pIHsKKyAg ICAgICAgIHNwaWNlX3Nlc3Npb25fZGlzY29ubmVjdChtX3Nlc3Npb24pOworIAorICAgICAgICAg Z19vYmplY3RfdW5yZWYobV9zZXNzaW9uKTsKKyAgICAgICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7 CisgICAgICAgICBtX2Rpc3BsYXlfY2hhbm5lbCA9IG51bGxwdHI7CisrICAgICAgICBtX2lucHV0 c19jaGFubmVsID0gbnVsbHB0cjsKKyAgICAgICAgIG1fYXVkaW8gPSBudWxscHRyOworICAgICAg ICAgbV9wbGF5YmFja19jaGFubmVsID0gbnVsbHB0cjsKKyAgICAgICAgIG1fY29ubmVjdGVkID0g ZmFsc2U7CitAQCAtMTc4LDcgKzE5OCwxMCBAQCB2b2lkIERvbWFpblZpZXdlcjo6Y2hhbm5lbF9u ZXdfY2FsbGJhY2soU3BpY2VTZXNzaW9uICpzZXNzaW9uLCBTcGljZUNoYW5uZWwgKmNoYQorICAg ICBEb21haW5WaWV3ZXIgKml0ZW0gPSBzdGF0aWNfY2FzdDxEb21haW5WaWV3ZXIgKj4odXNlcl9k YXRhKTsKKyAKKyAgICAgaXRlbS0+Y2hlY2tDaGFubmVsU3RhdHVzKCk7IC8vIHVuY29tbWVudCBm b3IgY2hhbm5lbCBkZWJ1ZyBtc2dzCistICAgIGlmIChTUElDRV9JU19ESVNQTEFZX0NIQU5ORUwo Y2hhbm5lbCkpIHsKKysgICAgaWYgKFNQSUNFX0lTX01BSU5fQ0hBTk5FTChjaGFubmVsKSkgewor KyAgICAgICAgcUNJbmZvKEtBUlRPTl9ERUJVRykgPDwgIlNQSUNFOiBtYWluIGNoYW5uZWwgY29u bmVjdGVkIjsKKysgICAgICAgIGl0ZW0tPmF0dGFjaE1haW5DaGFubmVsKGNoYW5uZWwpOworKyAg ICB9IGVsc2UgaWYgKFNQSUNFX0lTX0RJU1BMQVlfQ0hBTk5FTChjaGFubmVsKSkgeworICAgICAg ICAgcUNJbmZvKEtBUlRPTl9ERUJVRykgPDwgIlNQSUNFIGRpc3BsYXkgY29ubmVjdGVkIjsKKyAg ICAgICAgIGl0ZW0tPmF0dGFjaERpc3BsYXlDaGFubmVsKGNoYW5uZWwpOworICAgICB9IGVsc2Ug aWYgKFNQSUNFX0lTX0lOUFVUU19DSEFOTkVMKGNoYW5uZWwpKSB7CitAQCAtMTk0LDE0ICsyMTcs OTggQEAgdm9pZCBEb21haW5WaWV3ZXI6OmNoYW5uZWxfbmV3X2NhbGxiYWNrKFNwaWNlU2Vzc2lv biAqc2Vzc2lvbiwgU3BpY2VDaGFubmVsICpjaGEKKyAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qo Y2hhbm5lbCwgInBsYXliYWNrLWRhdGEiLCBHX0NBTExCQUNLKHBsYXliYWNrX2RhdGFfY2FsbGJh Y2spLCBpdGVtKTsKKyAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QoY2hhbm5lbCwgInBsYXliYWNr LXN0b3AiLCBHX0NBTExCQUNLKHBsYXliYWNrX3N0b3BfY2FsbGJhY2spLCBpdGVtKTsKKyAgICAg fSBlbHNlIHsKKy0gICAgICAgIHFDV2FybmluZyhLQVJUT05fREVCVUcpIDw8ICJVbnJlY29nbmlz ZWQgU1BJQ0UgY2hhbm5lbCB0eXBlIjsKKysgICAgICAgIHFDRGVidWcoS0FSVE9OX0RFQlVHKSA8 PCAiVW5oYW5kbGVkIFNQSUNFIGNoYW5uZWwgdHlwZSI7CisgICAgIH0KKyB9CisgCisgLy8gPT09 PT09PT09PT09PT09PT09PT09PT09PT0gRGlzcGxheSByZW5kZXJpbmcgID09PT09PT09PT09PT09 PT09PT09PT09PQorIAorK3ZvaWQgRG9tYWluVmlld2VyOjphdHRhY2hNYWluQ2hhbm5lbChTcGlj ZUNoYW5uZWwgKmNoYW5uZWwpCisreworKyAgICBtX21haW5fY2hhbm5lbCA9IFNQSUNFX01BSU5f Q0hBTk5FTChjaGFubmVsKTsKKysgICAgbV9hZ2VudE5vdGlmeUlkID0gZ19zaWduYWxfY29ubmVj dChjaGFubmVsLCAibm90aWZ5OjphZ2VudC1jb25uZWN0ZWQiLCBHX0NBTExCQUNLKCZEb21haW5W aWV3ZXI6Om1haW5fYWdlbnRfY29ubmVjdGVkX2NhbGxiYWNrKSwgdGhpcyk7CisrCisrICAgIHNw aWNlX2NoYW5uZWxfY29ubmVjdChjaGFubmVsKTsKKysgICAgdXBkYXRlQWdlbnRDb25uZWN0ZWQo KTsKKyt9CisrCisrdm9pZCBEb21haW5WaWV3ZXI6Om1haW5fYWdlbnRfY29ubmVjdGVkX2NhbGxi YWNrKEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIHVzZXJfZGF0 YSkKKyt7CisrICAgIFFfVU5VU0VEKG9iamVjdCk7CisrICAgIFFfVU5VU0VEKHBzcGVjKTsKKysK KysgICAgc3RhdGljX2Nhc3Q8RG9tYWluVmlld2VyICo+KHVzZXJfZGF0YSktPnVwZGF0ZUFnZW50 Q29ubmVjdGVkKCk7CisrfQorKworK3ZvaWQgRG9tYWluVmlld2VyOjp1cGRhdGVBZ2VudENvbm5l Y3RlZCgpCisreworKyAgICBpZiAoIW1fbWFpbl9jaGFubmVsKSB7CisrICAgICAgICByZXR1cm47 CisrICAgIH0KKysKKysgICAgZ2Jvb2xlYW4gY29ubmVjdGVkID0gRkFMU0U7CisrICAgIGdfb2Jq ZWN0X2dldChtX21haW5fY2hhbm5lbCwgImFnZW50LWNvbm5lY3RlZCIsICZjb25uZWN0ZWQsIG51 bGxwdHIpOworKworKyAgICBpZiAoc3RhdGljX2Nhc3Q8Ym9vbD4oY29ubmVjdGVkKSA9PSBtX2Fn ZW50Q29ubmVjdGVkKSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysgICAgbV9hZ2VudENv bm5lY3RlZCA9IGNvbm5lY3RlZDsKKysgICAgcUNJbmZvKEtBUlRPTl9ERUJVRykgPDwgIlNQSUNF IGd1ZXN0IGFnZW50IGNvbm5lY3RlZDoiIDw8IG1fYWdlbnRDb25uZWN0ZWQ7CisrCisrICAgIC8v IGZvcmdldCB0aGUgbGFzdCByZXF1ZXN0IHNvIHRoZSBzaXplIGlzIHB1c2hlZCBhZ2FpbiBhZnRl ciBhIGd1ZXN0IHJlYm9vdAorKyAgICBtX2xhc3RSZXF1ZXN0ZWRHdWVzdFNpemUgPSBRU2l6ZSgp OworKworKyAgICBpZiAobV9hZ2VudENvbm5lY3RlZCkgeworKyAgICAgICAgc2VuZEd1ZXN0UmVz aXplKCk7CisrICAgIH0KKyt9CisrCisrdm9pZCBEb21haW5WaWV3ZXI6OnNldEF2YWlsYWJsZUFy ZWEoY29uc3QgUVNpemVGICZhcmVhKQorK3sKKysgICAgaWYgKG1fYXZhaWxhYmxlQXJlYSA9PSBh cmVhKSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysKKysgICAgbV9hdmFpbGFibGVBcmVh ID0gYXJlYTsKKysgICAgUV9FTUlUIGF2YWlsYWJsZUFyZWFDaGFuZ2VkKCk7CisrCisrICAgIG1f cmVzaXplRGVib3VuY2UtPnN0YXJ0KCk7CisrfQorKworK3ZvaWQgRG9tYWluVmlld2VyOjpzZW5k R3Vlc3RSZXNpemUoKQorK3sKKysgICAgaWYgKCFtX21haW5fY2hhbm5lbCB8fCAhbV9hZ2VudENv bm5lY3RlZCB8fCAhbV9jb25uZWN0ZWQpIHsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKyAg ICBpZiAoIXdpbmRvdygpIHx8IG1fYXZhaWxhYmxlQXJlYS53aWR0aCgpIDw9IDAgfHwgbV9hdmFp bGFibGVBcmVhLmhlaWdodCgpIDw9IDApIHsKKysgICAgICAgIHJldHVybjsKKysgICAgfQorKwor KyAgICAvLyAmIH4xIGtlZXBzIHRoZSBzaXplIGV2ZW4sIHdoaWNoIHRoZSB2aWRlbyBlbmNvZGUg cGF0aCBwcmVmZXJzCisrICAgIGNvbnN0IHFyZWFsIGRwciA9IHdpbmRvdygpLT5kZXZpY2VQaXhl bFJhdGlvKCk7CisrICAgIGNvbnN0IGludCB3aWR0aCA9IHN0ZDo6bWF4KHN0YXRpY19jYXN0PGlu dD4ocVJvdW5kKG1fYXZhaWxhYmxlQXJlYS53aWR0aCgpICogZHByKSkgJiB+MSwgbWluaW11bUd1 ZXN0U2l6ZS53aWR0aCgpKTsKKysgICAgY29uc3QgaW50IGhlaWdodCA9IHN0ZDo6bWF4KHN0YXRp Y19jYXN0PGludD4ocVJvdW5kKG1fYXZhaWxhYmxlQXJlYS5oZWlnaHQoKSAqIGRwcikpICYgfjEs IG1pbmltdW1HdWVzdFNpemUuaGVpZ2h0KCkpOworKworKyAgICBjb25zdCBRU2l6ZSByZXF1ZXN0 ZWQod2lkdGgsIGhlaWdodCk7CisrICAgIGlmIChyZXF1ZXN0ZWQgPT0gbV9sYXN0UmVxdWVzdGVk R3Vlc3RTaXplKSB7CisrICAgICAgICByZXR1cm47CisrICAgIH0KKysgICAgbV9sYXN0UmVxdWVz dGVkR3Vlc3RTaXplID0gcmVxdWVzdGVkOworKworKyAgICBxQ0luZm8oS0FSVE9OX0RFQlVHKSA8 PCAiUmVxdWVzdGluZyBndWVzdCByZXNvbHV0aW9uIiA8PCByZXF1ZXN0ZWQ7CisrICAgIC8vIHdp dGhvdXQgdGhlIGVuYWJsZSBjYWxsIHRoZSBkaXNwbGF5IHN0YXlzIHVuZGVmaW5lZCBhbmQgbm90 aGluZyBpcyBzZW50IGF0IGFsbAorKyAgICBzcGljZV9tYWluX2NoYW5uZWxfdXBkYXRlX2Rpc3Bs YXlfZW5hYmxlZChtX21haW5fY2hhbm5lbCwgbV9kaXNwbGF5SWQsIFRSVUUsIEZBTFNFKTsKKysg ICAgLy8gc2VudCBieSBoYW5kLCBsZXR0aW5nIHNwaWNlLWd0ayBzZW5kIGl0IGNvc3RzIGFub3Ro ZXIgc2Vjb25kCisrICAgIHNwaWNlX21haW5fY2hhbm5lbF91cGRhdGVfZGlzcGxheShtX21haW5f Y2hhbm5lbCwgbV9kaXNwbGF5SWQsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIEZBTFNFKTsKKysgICAg c3BpY2VfbWFpbl9jaGFubmVsX3NlbmRfbW9uaXRvcl9jb25maWcobV9tYWluX2NoYW5uZWwpOwor K30KKysKKyB2b2lkIERvbWFpblZpZXdlcjo6YXR0YWNoRGlzcGxheUNoYW5uZWwoU3BpY2VDaGFu bmVsICpjaGFubmVsKQorIHsKKysgICAgZ2ludCBjaGFubmVsSWQgPSAwOworKyAgICBnX29iamVj dF9nZXQoY2hhbm5lbCwgImNoYW5uZWwtaWQiLCAmY2hhbm5lbElkLCBudWxscHRyKTsKKysgICAg bV9kaXNwbGF5SWQgPSBjaGFubmVsSWQ7CisrCisgICAgIHNwaWNlX2NoYW5uZWxfY29ubmVjdChj aGFubmVsKTsKKyAgICAgbV9kaXNwbGF5X2NoYW5uZWwgPSBjaGFubmVsOworIAorQEAgLTQ0Miw3 ICs1NDksNyBAQCB2b2lkIERvbWFpblZpZXdlcjo6aG92ZXJNb3ZlRXZlbnQoUUhvdmVyRXZlbnQg KmV2ZW50KQorIHsKKyAgICAgc3RhdGljIGludCBob3ZlckNvdW50ZXIgPSAwOworICAgICBpZiAo Kytob3ZlckNvdW50ZXIgJSAyMCA9PSAwKSB7CistICAgICAgICBxQ0luZm8oS0FSVE9OX0RFQlVH KSA8PCAiTW91c2UgaG92ZXIgYXQgKCIgPDwgZXZlbnQtPnBvc2l0aW9uKCkueCgpIDw8ICIsIiA8 PCBldmVudC0+cG9zaXRpb24oKS55KCkgPDwgIikiOworKyAgICAgICAgcUNEZWJ1ZyhLQVJUT05f REVCVUcpIDw8ICJNb3VzZSBob3ZlciBhdCAoIiA8PCBldmVudC0+cG9zaXRpb24oKS54KCkgPDwg IiwiIDw8IGV2ZW50LT5wb3NpdGlvbigpLnkoKSA8PCAiKSI7CisgICAgIH0KKyAgICAgaWYgKG1f aW5wdXRzX2NoYW5uZWwgJiYgbV9jb25uZWN0ZWQpIHsKKyAgICAgICAgIHFyZWFsIHggPSBldmVu dC0+cG9zaXRpb24oKS54KCk7CitkaWZmIC0tZ2l0IGEvc3JjL2RvbWFpbnZpZXdlci5oIGIvc3Jj L2RvbWFpbnZpZXdlci5oCitpbmRleCA1ZjkzNDAwLi4zYmYyYjU0IDEwMDY0NAorLS0tIGEvc3Jj L2RvbWFpbnZpZXdlci5oCisrKysgYi9zcmMvZG9tYWludmlld2VyLmgKK0BAIC0xNCw2ICsxNCw3 IEBACisgI2luY2x1ZGUgPFFBdWRpb0Zvcm1hdD4KKyAjaW5jbHVkZSA8UUF1ZGlvU2luaz4KKyAj aW5jbHVkZSA8UUlPRGV2aWNlPgorKyNpbmNsdWRlIDxRVGltZXI+CisgCisgI2luY2x1ZGUgPG1l bW9yeT4KKyAKK0BAIC0yOCw2ICsyOSw3IEBAIGNsYXNzIERvbWFpblZpZXdlciA6IHB1YmxpYyBR UXVpY2tJdGVtCisgICAgIFFfUFJPUEVSVFkoRG9tYWluICpkb21haW4gUkVBRCBkb21haW4gV1JJ VEUgc2V0RG9tYWluIE5PVElGWSBkb21haW5DaGFuZ2VkIFJFUVVJUkVEKQorICAgICBRX1BST1BF UlRZKFFTdHJpbmcgaG9zdCBNRU1CRVIgbV9ob3N0IE5PVElGWSBob3N0Q2hhbmdlZCkKKyAgICAg UV9QUk9QRVJUWShpbnQgcG9ydCBNRU1CRVIgbV9wb3J0IE5PVElGWSBwb3J0Q2hhbmdlZCkKKysg ICAgUV9QUk9QRVJUWShRU2l6ZUYgYXZhaWxhYmxlQXJlYSBSRUFEIGF2YWlsYWJsZUFyZWEgV1JJ VEUgc2V0QXZhaWxhYmxlQXJlYSBOT1RJRlkgYXZhaWxhYmxlQXJlYUNoYW5nZWQpCisgCisgcHVi bGljOgorICAgICBleHBsaWNpdCBEb21haW5WaWV3ZXIoUVF1aWNrSXRlbSAqcGFyZW50ID0gbnVs bHB0cik7CitAQCAtNjAsNiArNjIsMTIgQEAgcHVibGljOgorIAorICAgICBRX0lOVk9LQUJMRSB2 b2lkIHNhdmVGcmFtZVRvRG9tYWluKCk7CisgCisrICAgIFFTaXplRiBhdmFpbGFibGVBcmVhKCkg Y29uc3QKKysgICAgeworKyAgICAgICAgcmV0dXJuIG1fYXZhaWxhYmxlQXJlYTsKKysgICAgfQor KyAgICB2b2lkIHNldEF2YWlsYWJsZUFyZWEoY29uc3QgUVNpemVGICZhcmVhKTsKKysKKyAgICAg UVN0cmluZyBob3N0KCkgY29uc3QKKyAgICAgeworICAgICAgICAgcmV0dXJuIG1faG9zdDsKK0BA IC05MSw2ICs5OSw3IEBAIFFfU0lHTkFMUzoKKyAKKyAgICAgdm9pZCBwb3J0Q2hhbmdlZCgpOwor ICAgICB2b2lkIGhvc3RDaGFuZ2VkKCk7CisrICAgIHZvaWQgYXZhaWxhYmxlQXJlYUNoYW5nZWQo KTsKKyAKKyBwcml2YXRlIFFfU0xPVFM6CisgICAgIHZvaWQgaGFuZGxlSG9zdFBvcnQoaW50IGV4 aXRDb2RlLCBjb25zdCBRU3RyaW5nICZvdXRwdXQpOworQEAgLTEwMyw3ICsxMTIsMTEgQEAgcHJp dmF0ZToKKyAgICAgfTsKKyAKKyAgICAgc3RhdGljIHZvaWQgY2hhbm5lbF9uZXdfY2FsbGJhY2so U3BpY2VTZXNzaW9uICpzZXNzaW9uLCBTcGljZUNoYW5uZWwgKmNoYW5uZWwsIGdwb2ludGVyIHVz ZXJfZGF0YSk7CisrICAgIHN0YXRpYyB2b2lkIG1haW5fYWdlbnRfY29ubmVjdGVkX2NhbGxiYWNr KEdPYmplY3QgKm9iamVjdCwgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIHVzZXJfZGF0YSk7 CisgICAgIHZvaWQgYXR0YWNoRGlzcGxheUNoYW5uZWwoU3BpY2VDaGFubmVsICpjaGFubmVsKTsK KysgICAgdm9pZCBhdHRhY2hNYWluQ2hhbm5lbChTcGljZUNoYW5uZWwgKmNoYW5uZWwpOworKyAg ICB2b2lkIHVwZGF0ZUFnZW50Q29ubmVjdGVkKCk7CisrICAgIHZvaWQgc2VuZEd1ZXN0UmVzaXpl KCk7CisgICAgIHN0YXRpYyB1aW50OF90IGV2ZGV2VG9QY1h0KHVpbnQzMl90IGV2ZGV2X3NjYW5j b2RlKTsKKyAKKyAgICAgc3RhdGljIHZvaWQgcGxheWJhY2tfc3RhcnRfY2FsbGJhY2soU3BpY2VQ bGF5YmFja0NoYW5uZWwgKmNoYW5uZWwsIGdpbnQgZm9ybWF0LCBnaW50IGNoYW5uZWxzLCBnaW50 IHJhdGUsIGdwb2ludGVyIHVzZXJfZGF0YSk7CitAQCAtMTI1LDYgKzEzOCwxNyBAQCBwcml2YXRl OgorICAgICBTcGljZUNoYW5uZWwgKm1fZGlzcGxheV9jaGFubmVsID0gbnVsbHB0cjsKKyAgICAg U3BpY2VJbnB1dHNDaGFubmVsICptX2lucHV0c19jaGFubmVsID0gbnVsbHB0cjsKKyAgICAgU3Bp Y2VQbGF5YmFja0NoYW5uZWwgKm1fcGxheWJhY2tfY2hhbm5lbDsKKysgICAgU3BpY2VNYWluQ2hh bm5lbCAqbV9tYWluX2NoYW5uZWwgPSBudWxscHRyOworKworKyAgICBndWxvbmcgbV9hZ2VudE5v dGlmeUlkID0gMDsKKysgICAgYm9vbCBtX2FnZW50Q29ubmVjdGVkID0gZmFsc2U7CisrICAgIGlu dCBtX2Rpc3BsYXlJZCA9IDA7CisrICAgIFFUaW1lciAqbV9yZXNpemVEZWJvdW5jZSA9IG51bGxw dHI7CisrICAgIFFTaXplIG1fbGFzdFJlcXVlc3RlZEd1ZXN0U2l6ZTsKKysgICAgUVNpemVGIG1f YXZhaWxhYmxlQXJlYTsKKysKKysgICAgLy8gc2FtZSBmbG9vciB2aXJ0LXZpZXdlciB1c2VzOyBh IHplcm8gc2l6ZSBtYWtlcyBzcGljZS1ndGsgZHJvcCB0aGUgY29uZmlnIHdpdGhvdXQgYSB3b3Jk CisrICAgIHN0YXRpYyBjb25zdGV4cHIgUVNpemUgbWluaW11bUd1ZXN0U2l6ZSA9IHszMjAsIDIw MH07CisgCisgICAgIGludCBtX2N1cnJlbnRfYnV0dG9uX21hc2sgPSAwOworIAorLS0gCitHaXRM YWIKKworCitGcm9tIGQ4MzVkOWI5NGVkMDNhYjhjMjIxZjVjMWYwNTVkYzNhZDI2NjJhNWUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBPbnVyYWxwIFNFWkVSIDx0aHVuZGVyYmlyZHRy QGZlZG9yYXByb2plY3Qub3JnPgorRGF0ZTogVHVlLCAxOCBBdWcgMjAyNiAwMToyNzoyMiArMDMw MAorU3ViamVjdDogW1BBVENIIDQvNF0gU2NhbGUgdGhlIGd1ZXN0IGRpc3BsYXkgdG8gZml0IHRo ZSB2aWV3ZXIgd2luZG93CisKK1NpZ25lZC1vZmYtYnk6IE9udXJhbHAgU0VaRVIgPHRodW5kZXJi aXJkdHJAZmVkb3JhcHJvamVjdC5vcmc+CistLS0KKyBzcmMvcHJpbWFyeXN1cmZhY2VyZW5kZXJl ci5jcHAgfCAxNyArKystLS0KKyBzcmMvcW1sL1ZNVmlld2VyV2luZG93LnFtbCAgICAgfCA5NSAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCisgMiBmaWxlcyBjaGFuZ2VkLCA3NSBp bnNlcnRpb25zKCspLCAzNyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL3NyYy9wcmltYXJ5 c3VyZmFjZXJlbmRlcmVyLmNwcCBiL3NyYy9wcmltYXJ5c3VyZmFjZXJlbmRlcmVyLmNwcAoraW5k ZXggNGZmYzhjYi4uMmFkNTA0NSAxMDA2NDQKKy0tLSBhL3NyYy9wcmltYXJ5c3VyZmFjZXJlbmRl cmVyLmNwcAorKysrIGIvc3JjL3ByaW1hcnlzdXJmYWNlcmVuZGVyZXIuY3BwCitAQCAtOTQsNyAr OTQsNyBAQCBRU0dOb2RlICpQcmltYXJ5U3VyZmFjZVJlbmRlcmVyOjp1cGRhdGVQYWludE5vZGUo UVF1aWNrV2luZG93ICp3aW5kb3csIFFTR05vZGUgKgorIHsKKyAgICAgUU11dGV4TG9ja2VyIGxv Y2tlcigmbV9mcmFtZUxvY2spOworIAorLSAgICBpZiAoIW1fZnJhbWVVcGRhdGVkIHx8IG1fZnJh bWUuaXNOdWxsKCkgfHwgbV9mcmFtZS53aWR0aCgpIDw9IDAgfHwgbV9mcmFtZS5oZWlnaHQoKSA8 PSAwKSB7CisrICAgIGlmIChtX2ZyYW1lLmlzTnVsbCgpIHx8IG1fZnJhbWUud2lkdGgoKSA8PSAw IHx8IG1fZnJhbWUuaGVpZ2h0KCkgPD0gMCkgeworICAgICAgICAgZGVsZXRlIG9sZE5vZGU7Cisg ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgfQorQEAgLTEwMywxNCArMTAzLDE5IEBAIFFT R05vZGUgKlByaW1hcnlTdXJmYWNlUmVuZGVyZXI6OnVwZGF0ZVBhaW50Tm9kZShRUXVpY2tXaW5k b3cgKndpbmRvdywgUVNHTm9kZSAqCisgICAgIGlmICghbm9kZSkgeworICAgICAgICAgbm9kZSA9 IG5ldyBRU0dTaW1wbGVUZXh0dXJlTm9kZSgpOworICAgICAgICAgbm9kZS0+c2V0T3duc1RleHR1 cmUodHJ1ZSk7CisrICAgICAgICAvLyB0aGUgbm9kZSBkZWZhdWx0cyB0byBuZWFyZXN0LCB3aGlj aCBhbGlhc2VzIGJhZGx5IG9uY2UgdGhlIGZyYW1lIGlzIHNjYWxlZAorKyAgICAgICAgbm9kZS0+ c2V0RmlsdGVyaW5nKFFTR1RleHR1cmU6OkxpbmVhcik7CisgICAgIH0KKyAKKy0gICAgUVNHVGV4 dHVyZSAqdGV4dHVyZSA9IHdpbmRvdy0+Y3JlYXRlVGV4dHVyZUZyb21JbWFnZShtX2ZyYW1lKTsK Ky0gICAgaWYgKHRleHR1cmUpIHsKKy0gICAgICAgIG5vZGUtPnNldFRleHR1cmUodGV4dHVyZSk7 CistICAgICAgICBub2RlLT5zZXRSZWN0KGJvdW5kcyk7CistICAgICAgICBtX2ZyYW1lVXBkYXRl ZCA9IGZhbHNlOworKyAgICAvLyBhIHJlc2l6ZSByZXBhaW50cyB3aXRob3V0IGEgbmV3IGZyYW1l LCBzbyBrZWVwIHNob3dpbmcgdGhlIGxhc3Qgb25lIHJhdGhlciB0aGFuIGJsYW5raW5nCisrICAg IGlmIChtX2ZyYW1lVXBkYXRlZCB8fCAhbm9kZS0+dGV4dHVyZSgpKSB7CisrICAgICAgICBpZiAo UVNHVGV4dHVyZSAqdGV4dHVyZSA9IHdpbmRvdy0+Y3JlYXRlVGV4dHVyZUZyb21JbWFnZShtX2Zy YW1lKSkgeworKyAgICAgICAgICAgIG5vZGUtPnNldFRleHR1cmUodGV4dHVyZSk7CisrICAgICAg ICAgICAgbV9mcmFtZVVwZGF0ZWQgPSBmYWxzZTsKKysgICAgICAgIH0KKyAgICAgfQorIAorKyAg ICBub2RlLT5zZXRSZWN0KGJvdW5kcyk7CisrCisgICAgIHJldHVybiBub2RlOworIH0KK2RpZmYg LS1naXQgYS9zcmMvcW1sL1ZNVmlld2VyV2luZG93LnFtbCBiL3NyYy9xbWwvVk1WaWV3ZXJXaW5k b3cucW1sCitpbmRleCBkYWM1YWRkLi5jNzQwNGYwIDEwMDY0NAorLS0tIGEvc3JjL3FtbC9WTVZp ZXdlcldpbmRvdy5xbWwKKysrKyBiL3NyYy9xbWwvVk1WaWV3ZXJXaW5kb3cucW1sCitAQCAtMywx MiArMywxNCBAQAorIAorIGltcG9ydCBRdFF1aWNrCisgaW1wb3J0IFF0UXVpY2suQ29udHJvbHMg YXMgQ29udHJvbHMKKytpbXBvcnQgUXRRdWljay5XaW5kb3cKKyBpbXBvcnQgb3JnLmtkZS5raXJp Z2FtaSBhcyBLaXJpZ2FtaQorIGltcG9ydCBvcmcua2RlLmthcnRvbgorIAorIEtpcmlnYW1pLkFw cGxpY2F0aW9uV2luZG93IHsKKyAgICAgaWQ6IHZpZXdlcldpbmRvdworICAgICByZXF1aXJlZCBw cm9wZXJ0eSBEb21haW4gZG9tYWluCisrICAgIHByb3BlcnR5IGJvb2wgaW5pdGlhbFNpemVBcHBs aWVkOiBmYWxzZQorICAgICAKKyAgICAgdGl0bGU6IGRvbWFpbiA/IGkxOG5jKCIlMSBpcyB0aGUg bmFtZSBvZiB0aGUgdmlydHVhbCBtYWNoaW5lIiwgIlZNIFZpZXdlciAtICUxIiwgZG9tYWluLmNv bmZpZy5uYW1lKSA6IGkxOG4oIlZNIFZpZXdlciIpCisgICAgIAorQEAgLTIwLDE2ICsyMiwyOCBA QCBLaXJpZ2FtaS5BcHBsaWNhdGlvbldpbmRvdyB7CisgICAgICAgICBkb21haW5WaWV3ZXIuZGlz Y29ubmVjdEZyb21TcGljZSgpOworICAgICB9CisgCisrICAgIGZ1bmN0aW9uIGFwcGx5SW5pdGlh bFNpemUoKSB7CisrICAgICAgICBpZiAoaW5pdGlhbFNpemVBcHBsaWVkCisrICAgICAgICAgICAg fHwgdmlld2VyV2luZG93LnZpc2liaWxpdHkgIT09IFdpbmRvdy5XaW5kb3dlZAorKyAgICAgICAg ICAgIHx8IGRvbWFpblZpZXdlci5pbXBsaWNpdFdpZHRoIDw9IDAKKysgICAgICAgICAgICB8fCBk b21haW5WaWV3ZXIuaW1wbGljaXRIZWlnaHQgPD0gMCkgeworKyAgICAgICAgICAgIHJldHVybgor KyAgICAgICAgfQorKyAgICAgICAgaW5pdGlhbFNpemVBcHBsaWVkID0gdHJ1ZQorKworKyAgICAg ICAgY29uc3QgZHByID0gZG9tYWluVmlld2VyLmRwckhlbHBlci5kZXZpY2VQaXhlbFJhdGlvCisr ICAgICAgICB2aWV3ZXJXaW5kb3cud2lkdGggPSBNYXRoLm1pbihTY3JlZW4uZGVza3RvcEF2YWls YWJsZVdpZHRoLCBkb21haW5WaWV3ZXIuaW1wbGljaXRXaWR0aCAvIGRwcikKKysgICAgICAgIHZp ZXdlcldpbmRvdy5oZWlnaHQgPSBNYXRoLm1pbihTY3JlZW4uZGVza3RvcEF2YWlsYWJsZUhlaWdo dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5WaWV3ZXIu aW1wbGljaXRIZWlnaHQgLyBkcHIgKyBwYWdlU3RhY2suZ2xvYmFsVG9vbEJhci5oZWlnaHQpCisr ICAgIH0KKysKKyAgICAgQ29ubmVjdGlvbnMgeworICAgICAgICAgdGFyZ2V0OiBkb21haW5WaWV3 ZXIKKyAgICAgICAgIGZ1bmN0aW9uIG9uSW1wbGljaXRXaWR0aENoYW5nZWQoKSB7CistICAgICAg ICAgICAgaWYgKGRvbWFpblZpZXdlci5pbXBsaWNpdFdpZHRoID4gMCkKKy0gICAgICAgICAgICAg ICAgdmlld2VyV2luZG93LndpZHRoID0gZG9tYWluVmlld2VyLmltcGxpY2l0V2lkdGggLyBkb21h aW5WaWV3ZXIuZHBySGVscGVyLmRldmljZVBpeGVsUmF0aW8KKysgICAgICAgICAgICB2aWV3ZXJX aW5kb3cuYXBwbHlJbml0aWFsU2l6ZSgpCisgICAgICAgICB9CisgICAgICAgICBmdW5jdGlvbiBv bkltcGxpY2l0SGVpZ2h0Q2hhbmdlZCgpIHsKKy0gICAgICAgICAgICBpZiAoZG9tYWluVmlld2Vy LmltcGxpY2l0SGVpZ2h0ID4gMCkKKy0gICAgICAgICAgICAgICAgdmlld2VyV2luZG93LmhlaWdo dCA9IGRvbWFpblZpZXdlci5pbXBsaWNpdEhlaWdodCAvIGRvbWFpblZpZXdlci5kcHJIZWxwZXIu ZGV2aWNlUGl4ZWxSYXRpbworLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KyBwYWdlU3RhY2suZ2xvYmFsVG9vbEJhci5oZWlnaHQKKysgICAgICAgICAgICB2aWV3ZXJXaW5k b3cuYXBwbHlJbml0aWFsU2l6ZSgpCisgICAgICAgICB9CisgICAgIH0KKyAKK0BAIC0zOSw3ICs1 MywxMCBAQCBLaXJpZ2FtaS5BcHBsaWNhdGlvbldpbmRvdyB7CisgCisgICAgICAgICBhY3Rpb25z OiBbCisgICAgICAgICAgICAgS2lyaWdhbWkuQWN0aW9uIHsKKy0gICAgICAgICAgICAgICAgaWNv bi5uYW1lOiAidmlldy1mdWxsc2NyZWVuIgorKyAgICAgICAgICAgICAgICB0ZXh0OiB2aWV3ZXJX aW5kb3cudmlzaWJpbGl0eSA9PT0gV2luZG93LkZ1bGxTY3JlZW4gPyBpMThuKCJFeGl0IEZ1bGwg U2NyZWVuIikgOiBpMThuKCJGdWxsIFNjcmVlbiIpCisrICAgICAgICAgICAgICAgIGljb24ubmFt ZTogdmlld2VyV2luZG93LnZpc2liaWxpdHkgPT09IFdpbmRvdy5GdWxsU2NyZWVuID8gInZpZXct cmVzdG9yZSIgOiAidmlldy1mdWxsc2NyZWVuIgorKyAgICAgICAgICAgICAgICBjaGVja2FibGU6 IHRydWUKKysgICAgICAgICAgICAgICAgY2hlY2tlZDogdmlld2VyV2luZG93LnZpc2liaWxpdHkg PT09IFdpbmRvdy5GdWxsU2NyZWVuCisgICAgICAgICAgICAgICAgIG9uVHJpZ2dlcmVkOiB7Cisg ICAgICAgICAgICAgICAgICAgICBpZiAodmlld2VyV2luZG93LnZpc2liaWxpdHkgPT09IFdpbmRv dy5GdWxsU2NyZWVuKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgdmlld2VyV2luZG93LnNo b3dOb3JtYWwoKQorQEAgLTUwLDM1ICs2Nyw1MSBAQCBLaXJpZ2FtaS5BcHBsaWNhdGlvbldpbmRv dyB7CisgICAgICAgICAgICAgfQorICAgICAgICAgXQorIAorLSAgICAgICAgRG9tYWluVmlld2Vy IHsKKy0gICAgICAgICAgICBpZDogZG9tYWluVmlld2VyCisrICAgICAgICBSZWN0YW5nbGUgewor KyAgICAgICAgICAgIGlkOiB2aWV3ZXJBcmVhCisgCistICAgICAgICAgICAgcHJvcGVydHkgRGV2 aWNlUGl4ZWxSYXRpb0hlbHBlciBkcHJIZWxwZXI6IERldmljZVBpeGVsUmF0aW9IZWxwZXIgewor LSAgICAgICAgICAgICAgICB3aW5kb3c6IGRvbWFpblZpZXdlci5XaW5kb3cud2luZG93CistICAg ICAgICAgICAgfQorKyAgICAgICAgICAgIGFuY2hvcnMuZmlsbDogcGFyZW50CisrICAgICAgICAg ICAgY29sb3I6ICJibGFjayIKKyAKKy0gICAgICAgICAgICAvLyBQcmUtY2FuY2VsIG91dCBzY2Fs aW5nLCBhbmQgc2hvdyBWTSBwaXhlbHMgYXQgMToxCistICAgICAgICAgICAgLy8gZmFsbHMgYmFj ayB0byBhIGRlZmF1bHQgc2l6ZSAoaGFyZGNvZGVkKSB1bnRpbCB0aGUgZmlyc3QgR0wgc2Nhbm91 dCBzZXRzIGltcGxpY2l0V2lkdGgvSGVpZ2h0LgorLSAgICAgICAgICAgIC8vIGZpeGVzIDAgd2lk dGgvaGVpZ2h0IGJ1Zy4KKy0gICAgICAgICAgICB3aWR0aDogaW1wbGljaXRXaWR0aCA+IDAgPyBp bXBsaWNpdFdpZHRoIC8gZHBySGVscGVyLmRldmljZVBpeGVsUmF0aW8gOiBLaXJpZ2FtaS5Vbml0 cy5ncmlkVW5pdCAqIDU2LjU1CistICAgICAgICAgICAgaGVpZ2h0OiBpbXBsaWNpdEhlaWdodCA+ IDAgPyBpbXBsaWNpdEhlaWdodCAvIGRwckhlbHBlci5kZXZpY2VQaXhlbFJhdGlvIDogS2lyaWdh bWkuVW5pdHMuZ3JpZFVuaXQgKiAzNgorKyAgICAgICAgICAgIERvbWFpblZpZXdlciB7CisrICAg ICAgICAgICAgICAgIGlkOiBkb21haW5WaWV3ZXIKKyAKKy0gICAgICAgICAgICBkb21haW46IHZp ZXdlcldpbmRvdy5kb21haW4KKysgICAgICAgICAgICAgICAgYW5jaG9ycy5jZW50ZXJJbjogcGFy ZW50CisgCistICAgICAgICAgICAgZm9jdXM6IHRydWUKKy0gICAgICAgICAgICBhY3RpdmVGb2N1 c09uVGFiOiB0cnVlCistICAgICAgICAgICAgb25BY3RpdmVGb2N1c0NoYW5nZWQ6IHsKKy0gICAg ICAgICAgICAgICAgY29uc29sZS5sb2coIkRvbWFpblZpZXdlciBmb2N1cyBjaGFuZ2VkIHRvOiIs IGFjdGl2ZUZvY3VzKQorLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBvbkZvY3VzQ2hhbmdl ZDogeworLSAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygiRG9tYWluVmlld2VyIGZvY3VzIHBy b3BlcnR5IGNoYW5nZWQgdG86IiwgZm9jdXMpCistICAgICAgICAgICAgfQorLSAgICAgICAgICAg IE1vdXNlQXJlYSB7CistICAgICAgICAgICAgICAgIGFuY2hvcnMuZmlsbDogcGFyZW50CistICAg ICAgICAgICAgICAgIG9uUHJlc3NlZDogeworLSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5s b2coIk1vdXNlQXJlYSBjbGljay4gZ2l2aW5nIGZvY3VzIHRvIGRvbWFpbnZpZXdlciIpCistICAg ICAgICAgICAgICAgICAgICBwYXJlbnQuZm9yY2VBY3RpdmVGb2N1cygpCistICAgICAgICAgICAg ICAgICAgICBtb3VzZS5hY2NlcHRlZCA9IGZhbHNlCisrICAgICAgICAgICAgICAgIHByb3BlcnR5 IERldmljZVBpeGVsUmF0aW9IZWxwZXIgZHBySGVscGVyOiBEZXZpY2VQaXhlbFJhdGlvSGVscGVy IHsKKysgICAgICAgICAgICAgICAgICAgIHdpbmRvdzogZG9tYWluVmlld2VyLldpbmRvdy53aW5k b3cKKysgICAgICAgICAgICAgICAgfQorKworKyAgICAgICAgICAgICAgICByZWFkb25seSBwcm9w ZXJ0eSByZWFsIG5hdGl2ZVdpZHRoOiBpbXBsaWNpdFdpZHRoID4gMCA/IGltcGxpY2l0V2lkdGgg LyBkcHJIZWxwZXIuZGV2aWNlUGl4ZWxSYXRpbyA6IDAKKysgICAgICAgICAgICAgICAgcmVhZG9u bHkgcHJvcGVydHkgcmVhbCBuYXRpdmVIZWlnaHQ6IGltcGxpY2l0SGVpZ2h0ID4gMCA/IGltcGxp Y2l0SGVpZ2h0IC8gZHBySGVscGVyLmRldmljZVBpeGVsUmF0aW8gOiAwCisrICAgICAgICAgICAg ICAgIHJlYWRvbmx5IHByb3BlcnR5IHJlYWwgZml0U2NhbGU6IG5hdGl2ZVdpZHRoID4gMCAmJiBu YXRpdmVIZWlnaHQgPiAwCisrICAgICAgICAgICAgICAgICAgICA/IE1hdGgubWluKHZpZXdlckFy ZWEud2lkdGggLyBuYXRpdmVXaWR0aCwgdmlld2VyQXJlYS5oZWlnaHQgLyBuYXRpdmVIZWlnaHQp CisrICAgICAgICAgICAgICAgICAgICA6IDEuMAorKworKyAgICAgICAgICAgICAgICAvLyB0aGUg Y29udGFpbmVyIHNpemUsIG5vdCB0aGUgZml0dGVkIHNpemUsIG9yIHRoZSBndWVzdCBuZXZlciBm aWxscyB0aGUgd2luZG93CisrICAgICAgICAgICAgICAgIGF2YWlsYWJsZUFyZWE6IFF0LnNpemUo dmlld2VyQXJlYS53aWR0aCwgdmlld2VyQXJlYS5oZWlnaHQpCisrCisrICAgICAgICAgICAgICAg IC8vIHNpemVkIHJhdGhlciB0aGFuIHNjYWxlZCwgdGhlIG1vdXNlIG1hcHBpbmcgZGl2aWRlcyBi eSB3aWR0aCgpCisrICAgICAgICAgICAgICAgIHdpZHRoOiBuYXRpdmVXaWR0aCA+IDAgPyBNYXRo LnJvdW5kKG5hdGl2ZVdpZHRoICogZml0U2NhbGUpIDogS2lyaWdhbWkuVW5pdHMuZ3JpZFVuaXQg KiA1Ni41NQorKyAgICAgICAgICAgICAgICBoZWlnaHQ6IG5hdGl2ZUhlaWdodCA+IDAgPyBNYXRo LnJvdW5kKG5hdGl2ZUhlaWdodCAqIGZpdFNjYWxlKSA6IEtpcmlnYW1pLlVuaXRzLmdyaWRVbml0 ICogMzYKKysKKysgICAgICAgICAgICAgICAgZG9tYWluOiB2aWV3ZXJXaW5kb3cuZG9tYWluCisr CisrICAgICAgICAgICAgICAgIGZvY3VzOiB0cnVlCisrICAgICAgICAgICAgICAgIGFjdGl2ZUZv Y3VzT25UYWI6IHRydWUKKysgICAgICAgICAgICAgICAgb25BY3RpdmVGb2N1c0NoYW5nZWQ6IHsK KysgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCJEb21haW5WaWV3ZXIgZm9jdXMgY2hh bmdlZCB0bzoiLCBhY3RpdmVGb2N1cykKKysgICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAg ICAgICBvbkZvY3VzQ2hhbmdlZDogeworKyAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2co IkRvbWFpblZpZXdlciBmb2N1cyBwcm9wZXJ0eSBjaGFuZ2VkIHRvOiIsIGZvY3VzKQorKyAgICAg ICAgICAgICAgICB9CisrICAgICAgICAgICAgICAgIE1vdXNlQXJlYSB7CisrICAgICAgICAgICAg ICAgICAgICBhbmNob3JzLmZpbGw6IHBhcmVudAorKyAgICAgICAgICAgICAgICAgICAgb25QcmVz c2VkOiAobW91c2UpID0+IHsKKysgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygi TW91c2VBcmVhIGNsaWNrLiBnaXZpbmcgZm9jdXMgdG8gZG9tYWludmlld2VyIikKKysgICAgICAg ICAgICAgICAgICAgICAgICBwYXJlbnQuZm9yY2VBY3RpdmVGb2N1cygpCisrICAgICAgICAgICAg ICAgICAgICAgICAgbW91c2UuYWNjZXB0ZWQgPSBmYWxzZQorKyAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgfQorICAgICAgICAgfQorLS0gCitH aXRMYWIKKwoKZGlmZiAtLWdpdCBhL2thcnRvbi5zcGVjIGIva2FydG9uLnNwZWMKaW5kZXggZGQw MGU2MS4uNjdhODExZCAxMDA2NDQKLS0tIGEva2FydG9uLnNwZWMKKysrIGIva2FydG9uLnNwZWMK QEAgLTEsNSArMSw1IEBACi0lZ2xvYmFsIGdpdGNvbW1pdCBhNDI2MTMyY2YzMWRhM2I1YTRjMTA5 Y2FmYmEwMmNjODdkMGFkMjdhCi0lZ2xvYmFsIGdpdGRhdGUgMjAyNjA4MDUuMTQzMzUwCislZ2xv YmFsIGdpdGNvbW1pdCA1NTY0NThlY2FjMGMwMzQxOGJhMzY2MTFiZjc0MzA5NTdiZjQwYWZiCisl Z2xvYmFsIGdpdGRhdGUgMjAyNjA4MTguMTA0NDM2CiAlZ2xvYmFsIHNob3J0Y29tbWl0ICUoYz0l e2dpdGNvbW1pdH07IGVjaG8gJHtjOjA6N30pCiAKIE5hbWU6ICAgICAgICAgICBrYXJ0b24KQEAg LTksMTIgKzksMTcgQEAgU3VtbWFyeTogICAgICAgIEEgTGlidmlydC1iYXNlZCBWaXJ0dWFsIE1h Y2hpbmUgTWFuYWdlciBmb3IgS0RFCiAKIExpY2Vuc2U6ICAgICAgICBCU0QtMi1DbGF1c2UgQU5E IENDLUJZLVNBLTQuMCBBTkQgQ0MwLTEuMCBBTkQgR1BMLTMuMC1vci1sYXRlcgogIyBJdCdsbCBj aGFuZ2UgYXQgc29tZSBwb2ludAotVVJMOiAgICAgICAgICAgIGh0dHBzOi8vaW52ZW50LmtkZS5v cmcvc2l0dGVyLyV7bmFtZX0KK1VSTDogICAgICAgICAgICBodHRwczovL2ludmVudC5rZGUub3Jn L3N5c3RlbS8le25hbWV9CiBTb3VyY2UwOiAgICAgICAgJXt1cmx9Ly0vYXJjaGl2ZS8le2dpdGNv bW1pdH0vJXtuYW1lfS0le2dpdGNvbW1pdH0udGFyLmd6CiAKICMgRG93bnN0cmVhbSBQYXRjaGVz CiBQYXRjaDA6ICAgICAgICAgaHdhY2NlbC1kZWZhdWx0LW9mZi5wYXRjaAogCisjIFVwc3RyZWFt IFBhdGNoZXMKKyMgUmVzaXplIHRoZSBndWVzdCBkaXNwbGF5IHRvIGZvbGxvdyB0aGUgdmlld2Vy IHdpbmRvdworIyBodHRwczovL2ludmVudC5rZGUub3JnL3N5c3RlbS9rYXJ0b24vLS9tZXJnZV9y ZXF1ZXN0cy82MworUGF0Y2gxMDA6ICAgICAgIDYzLnBhdGNoCisKICMgcWVtdSBpc24ndCBhdmFp bGFibGUgb24gMzItYml0CiBFeGNsdWRlQXJjaDogJXtpeDg2fQogCkBAIC03Niw2ICs4MSw5IEBA IGRlc2t0b3AtZmlsZS12YWxpZGF0ZSAle2J1aWxkcm9vdH0vJXtfZGF0YWRpcn0vYXBwbGljYXRp b25zL29yZy5rZGUua2FydG9uLmRlc2t0CiAle19rZjZfZGF0YWRpcn0vcWxvZ2dpbmctY2F0ZWdv cmllczYva2FydG9uLmNhdGVnb3JpZXMKIAogJWNoYW5nZWxvZworKiBGcmkgQXVnIDIxIDIwMjYg U3RldmUgQ29zc2V0dGUgPGZhcmNob3JkQGdtYWlsLmNvbT4gLSAwLjFeMjAyNjA4MTguMTA0NDM2 LjU1NjQ1OGUtMQorLSBMYXRlc3QgZ2l0IHNuYXBzaG90ICsgdXBzdHJlYW0gcGF0Y2gKKwogKiBN b24gQXVnIDE3IDIwMjYgU3RldmUgQ29zc2V0dGUgPGZhcmNob3JkQGdtYWlsLmNvbT4gLSAwLjFe MjAyNjA4MDUuMTQzMzUwLmE0MjYxMzItMQogLSBVcGRhdGVkIHRvIGEgbmV3ZXIgZ2l0IGNvbW1p dAogCgpkaWZmIC0tZ2l0IGEvc291cmNlcyBiL3NvdXJjZXMKaW5kZXggZGI3NTYwMi4uZjBhNzZj NiAxMDA2NDQKLS0tIGEvc291cmNlcworKysgYi9zb3VyY2VzCkBAIC0xICsxIEBACi1TSEE1MTIg KGthcnRvbi1hNDI2MTMyY2YzMWRhM2I1YTRjMTA5Y2FmYmEwMmNjODdkMGFkMjdhLnRhci5neikg PSBiZTkyY2VlYzcwOTdhNmMyZjQ3NDZlMzM1ZTkwMjNhMjUwZTA5NWRjNjAzNzEzMDUzYjMzMjFh ZTA2OWFkZTJkNWU5YWZlOWUzMGU1OTI2ZTU5NTJhM2QxMmVmNWFjYTVhZjUzNjkyZDVhNDI4YjZi ZjQ2MjYyNzIwNWZjOGFlZAorU0hBNTEyIChrYXJ0b24tNTU2NDU4ZWNhYzBjMDM0MThiYTM2NjEx YmY3NDMwOTU3YmY0MGFmYi50YXIuZ3opID0gYTZhMmYxOGFlZmJiY2ZiZDA1YTYyMGY4NWNiMTg5 YzhkYzE1MmU1NzMwNmQxNmExNjY5ZTg5YzBiZmY4MTYxOTBjM2U2YjE5NmNlYzA2ZTA5MzVkZWZj NWY1ZTgxMjM0NzRiOTVhYmY1OTFiNTdlYTQzYzU3YmQ0YTMyZWVkYWUK