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: Diego Herrera To: git-commits@fedoraproject.org Subject: [rpms/opentoonz] rawhide: Update to 1.8.0 Date: Thu, 30 Jul 2026 18:31:29 GMT Message-ID: <178543628962.1.2605255701096878051.rpms-opentoonz-63f7647fbc74@fedoraproject.org> List-ID: X-Git-Repo: rpms/opentoonz X-Git-Branch: rawhide X-Git-Rev: 63f7647fbc7425d7ea2f18dfbba28bb8412ed319 ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvb3BlbnRvb256CiAgICAgICAgICAgIEJyYW5jaCA6IHJhd2hpZGUKICAgICAg ICAgICAgQ29tbWl0IDogNjNmNzY0N2ZiYzc0MjVkN2VhMmYxOGRmYmJhMjhiYjg0MTJlZDMxOQog ICAgICAgICAgICBBdXRob3IgOiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPgog ICAgICAgICAgICBEYXRlICAgOiAyMDI2LTA3LTMwVDEzOjQ3OjU1LTA0OjAwCiAgICAgICAgICAg IFN0YXRzICA6ICs5OTcvLTEwMDMgaW4gMjMgZmlsZShzKQogICAgICAgICAgICBVUkwgICAgOiBo dHRwczovL3NyYy5mZWRvcmFwcm9qZWN0Lm9yZy9ycG1zL29wZW50b29uei9jLzYzZjc2NDdmYmM3 NDI1ZDdlYTJmMThkZmJiYTI4YmI4NDEyZWQzMTk/YnJhbmNoPXJhd2hpZGUKCiAgICAgICAgICAg IExvZzoKICAgICAgICAgICAgVXBkYXRlIHRvIDEuOC4wCgoqIEltcGxlbWVudCBhdXRvc3BlYwoq IENsZWFudXAgcGF0Y2hlcwoKLS0tCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGlnbm9y ZQppbmRleCBiZmJhNWZhLi44MTRmZDExIDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5n aXRpZ25vcmUKQEAgLTEsNyArMSw5IEBACiAvcmVzdWx0c18qCiAvcmV2aWV3LSoKIC8qLnNyYy5y cG0KKy8qLnRhci5negogL3YxLjUuMC50YXIuZ3oKIC92MS42LjAudGFyLmd6CiAvdjEuNy4wLnRh ci5negogL3YxLjcuMS50YXIuZ3oKKy92MS44LjAudGFyLmd6CgpkaWZmIC0tZ2l0IGEvMDAwMS1s em8tZml4LnBhdGNoIGIvMDAwMS1sem8tZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjFmMDU2ZjYKLS0tIC9kZXYvbnVsbAorKysgYi8wMDAxLWx6by1maXgucGF0 Y2gKQEAgLTAsMCArMSwyMiBAQAorRnJvbSA5Mjc0ZTBkZDI0ZGM2YzcxMWU0N2ViZjJjMTU4MDM0 MGFjMzIzYTBjIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGllZ28gSGVycmVyYSA8 ZGhlcnJlcmFAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwgMjcgSnVsIDIwMjYgMTY6NDM6MzEgLTA0 MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzldIGx6by1maXgKKworCitkaWZmIC0tZ2l0IGEvdG9vbnov c291cmNlcy9DTWFrZUxpc3RzLnR4dCBiL3Rvb256L3NvdXJjZXMvQ01ha2VMaXN0cy50eHQKK2lu ZGV4IDdjZjk3OWE2My4uZjAxYjcxOTcwIDEwMDY0NAorLS0tIGEvdG9vbnovc291cmNlcy9DTWFr ZUxpc3RzLnR4dAorKysrIGIvdG9vbnovc291cmNlcy9DTWFrZUxpc3RzLnR4dAorQEAgLTc0NCw3 ICs3NDQsNyBAQCBhZGRfc3ViZGlyZWN0b3J5KGltYWdlKQorIGFkZF9zdWJkaXJlY3RvcnkodG9v bnpxdCkKKyBhZGRfc3ViZGlyZWN0b3J5KHRuenRvb2xzKQorIAorLWFkZF9zdWJkaXJlY3Rvcnko JHtTREtST09UfS9sem8vZHJpdmVyIGx6b2RyaXZlcikKKysjIGFkZF9zdWJkaXJlY3RvcnkoJHtT REtST09UfS9sem8vZHJpdmVyIGx6b2RyaXZlcikKKyAKKyBhZGRfc3ViZGlyZWN0b3J5KHRvb256 KQorIGFkZF9zdWJkaXJlY3RvcnkodGNsZWFudXBwZXIpCistLSAKKzIuNTUuMAorCgpkaWZmIC0t Z2l0IGEvMDAwMi10aWZmLWZpeC5wYXRjaCBiLzAwMDItdGlmZi1maXgucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NjYWYwYQotLS0gL2Rldi9udWxsCisrKyBiLzAw MDItdGlmZi1maXgucGF0Y2gKQEAgLTAsMCArMSwyMDEgQEAKK0Zyb20gNmNiODgyN2YxMjNmOWNk ODlkYTliMjFhOTA2MWUzNzI0N2ViOTJjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206 IERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDI3IEp1bCAy MDI2IDE2OjQ5OjU4IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggMi85XSB0aWZmIGZpeAorCisKK2Rp ZmYgLS1naXQgYS90b29uei9jbWFrZS9GaW5kVElGRi5jbWFrZSBiL3Rvb256L2NtYWtlL0ZpbmRU SUZGLmNtYWtlCitpbmRleCBiM2RiNWZhMDQuLmI0MzMyY2Q4NiAxMDA2NDQKKy0tLSBhL3Rvb256 L2NtYWtlL0ZpbmRUSUZGLmNtYWtlCisrKysgYi90b29uei9jbWFrZS9GaW5kVElGRi5jbWFrZQor QEAgLTMsMjggKzMsMTIgQEAgZmluZF9wYXRoKAorICAgICBUSUZGX0lOQ0xVREVfRElSCisgICAg IE5BTUVTCisgICAgICAgICB0aWZmaW8uaAorLSAgICBISU5UUworLSAgICAgICAgJHtTREtST09U fQorLSAgICBQQVRIX1NVRkZJWEVTCistICAgICAgICB0aWZmLTQuMC4zL2xpYnRpZmYvCistIyBp ZiBtb25vIG9yIGFub3RoZXIgZnJhbWV3b3JrIHdpdGggYSB0aWYgbGlicmFyeQorLSMgaXMgaW5z dGFsbGVkLCBpZ25vcmUgaXQuCistaWYoQlVJTERfRU5WX0FQUExFKQorLSAgICBOT19ERUZBVUxU X1BBVEgKKy0gICAgTk9fQ01BS0VfRU5WSVJPTk1FTlRQQVRICistICAgIE5PX0NNQUtFX1BBVEgK Ky1lbmRpZigpCisgKQorIAorIGZpbmRfbGlicmFyeSgKKyAgICAgVElGRl9MSUJSQVJZCisgICAg IE5BTUVTCistICAgICAgICBsaWJ0aWZmLmEKKy0gICAgSElOVFMKKy0gICAgICAgICR7U0RLUk9P VH0KKy0gICAgUEFUSF9TVUZGSVhFUworLSAgICAgICAgdGlmZi00LjAuMy9saWJ0aWZmLy5saWJz CistICAgIE5PX0RFRkFVTFRfUEFUSAorKyAgICAgICAgbGlidGlmZi5zbworICkKKyAKKyBtZXNz YWdlKCIqKioqKiBsaWJ0aWZmIEhlYWRlciBwYXRoOiIgJHtUSUZGX0lOQ0xVREVfRElSfSkKK2Rp ZmYgLS1naXQgYS90b29uei9zb3VyY2VzL2ltYWdlL3RpZi90aWlvX3RpZi5jcHAgYi90b29uei9z b3VyY2VzL2ltYWdlL3RpZi90aWlvX3RpZi5jcHAKK2luZGV4IGM5NjgyZjJmYy4uZWEzOGIxMjY0 IDEwMDY0NAorLS0tIGEvdG9vbnovc291cmNlcy9pbWFnZS90aWYvdGlpb190aWYuY3BwCisrKysg Yi90b29uei9zb3VyY2VzL2ltYWdlL3RpZi90aWlvX3RpZi5jcHAKK0BAIC02NSw3ICs2NSw2IEBA IHB1YmxpYzoKKyAKKyAgIGludCBza2lwTGluZXMoaW50IGxpbmVDb3VudCkgb3ZlcnJpZGU7Cisg ICB2b2lkIHJlYWRMaW5lKGNoYXIgKmJ1ZmZlciwgaW50IHgwLCBpbnQgeDEsIGludCBzaHJpbmsp IG92ZXJyaWRlOworLSAgdm9pZCByZWFkTGluZShzaG9ydCAqYnVmZmVyLCBpbnQgeDAsIGludCB4 MSwgaW50IHNocmluaykgb3ZlcnJpZGU7CisgfTsKKyAKKyAvLy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorQEAgLTQyMiwxNDUgKzQy MSw5IEBAIGludCBUaWZSZWFkZXI6OnNraXBMaW5lcyhpbnQgbGluZUNvdW50KSB7CisgCisgI2lu Y2x1ZGUgInRpbWFnZV9pby5oIgorIAorLXZvaWQgVGlmUmVhZGVyOjpyZWFkTGluZShzaG9ydCAq YnVmZmVyLCBpbnQgeDAsIGludCB4MSwgaW50IHNocmluaykgeworLSAgYXNzZXJ0KHNocmluayA+ IDApOworLQorLSAgY29uc3QgaW50IHBpeGVsU2l6ZSA9IDg7CistICBpbnQgc3RyaXBSb3dTaXpl ICAgID0gbV9yb3dMZW5ndGggKiBwaXhlbFNpemU7CistCistICBpZiAobV9yb3cgPCBtX2luZm8u bV95MCB8fCBtX3JvdyA+IG1faW5mby5tX3kxKSB7CistICAgIG1lbXNldChidWZmZXIsIDAsICh4 MSAtIHgwICsgMSkgKiBwaXhlbFNpemUpOworLSAgICBtX3JvdysrOworLSAgICByZXR1cm47Cist ICB9CistCistICBpbnQgc3RyaXBJbmRleCA9IG1fcm93IC8gbV9yb3dzUGVyU3RyaXA7CistICBp ZiAobV9zdHJpcEluZGV4ICE9IHN0cmlwSW5kZXgpIHsKKy0gICAgLy8gUmV0cmlldmUgdGhlIHN0 cmlwIGhvbGRpbmcgY3VycmVudCByb3cuIFBsZWFzZSwgb2JzZXJ2ZSB0aGF0CistICAgIC8vIFRJ RkYgZnVuY3Rpb25zIHdpbGwgcmV0dXJuIHRoZSBzdHJpcCBidWZmZXIgaW4gdGhlIEJPVFRPTS1V UCBvcmllbnRhdGlvbiwKKy0gICAgLy8gbm8gbWF0dGVyIHRoZSBpbnRlcm5hbCB0aWYncyBvcmll bnRhdGlvbiBzdG9yYWdlCistCistICAgIG1fc3RyaXBJbmRleCA9IHN0cmlwSW5kZXg7CistCist ICAgIGlmIChUSUZGSXNUaWxlZChtX3RpZmYpKSB7CistICAgICAgLy8gUmV0cmlldmUgdGlsZXMg c2l6ZQorLSAgICAgIHVpbnQzMiB0aWxlV2lkdGggPSAwLCB0aWxlSGVpZ2h0ID0gMDsKKy0gICAg ICBUSUZGR2V0RmllbGQobV90aWZmLCBUSUZGVEFHX1RJTEVXSURUSCwgJnRpbGVXaWR0aCk7Cist ICAgICAgVElGRkdldEZpZWxkKG1fdGlmZiwgVElGRlRBR19USUxFTEVOR1RILCAmdGlsZUhlaWdo dCk7CistICAgICAgYXNzZXJ0KHRpbGVXaWR0aCA+IDAgJiYgdGlsZUhlaWdodCA+IDApOworLQor LSAgICAgIC8vIEFsbG9jYXRlIGEgc3VmZmljaWVudCBidWZmZXIgdG8gc3RvcmUgYSBzaW5nbGUg dGlsZQorLSAgICAgIGludCB0aWxlU2l6ZSA9IHRpbGVXaWR0aCAqIHRpbGVIZWlnaHQ7CistICAg ICAgc3RkOjp1bmlxdWVfcHRyPHVpbnQ2NFtdPiB0aWxlKG5ldyB1aW50NjRbdGlsZVNpemVdKTsK Ky0KKy0gICAgICBpbnQgeCA9IDA7CistICAgICAgaW50IHkgPSB0aWxlSGVpZ2h0ICogbV9zdHJp cEluZGV4OworLQorLSAgICAgIC8vIEluIGNhc2UgaXQncyB0aGUgbGFzdCB0aWxlcyByb3csIHRo ZSB0aWxlIHNpemUgbWlnaHQgZXhjZWVkIHRoZSBpbWFnZQorLSAgICAgIC8vIGJvdW5kcworLSAg ICAgIGludCBsYXN0VHkgPSBzdGQ6Om1pbigoaW50KXRpbGVIZWlnaHQsIG1faW5mby5tX2x5IC0g eSk7CistCistICAgICAgLy8gVHJhdmVyc2UgdGhlIHRpbGVzIHJvdworLSAgICAgIHdoaWxlICh4 IDwgbV9pbmZvLm1fbHgpIHsKKy0gICAgICAgIGludCByZXQgPSBUSUZGUmVhZFJHQkFUaWxlXzY0 KG1fdGlmZiwgeCwgeSwgdGlsZS5nZXQoKSk7CistICAgICAgICBhc3NlcnQocmV0KTsKKy0KKy0g ICAgICAgIGludCB0aWxlUm93U2l6ZSA9IHN0ZDo6bWluKChpbnQpdGlsZVdpZHRoLCBtX2luZm8u bV9seCAtIHgpICogcGl4ZWxTaXplOworLQorLSAgICAgICAgLy8gQ29weSB0aGUgdGlsZSByb3dz IGluIHRoZSBjb3JyZXNwb25kaW5nIG91dHB1dCBzdHJpcCByb3dzCistICAgICAgICBmb3IgKGlu dCB0eSA9IDA7IHR5IDwgbGFzdFR5OyArK3R5KSB7CistICAgICAgICAgIG1lbWNweShtX3N0cmlw QnVmZmVyICsgKHR5ICogbV9yb3dMZW5ndGggKyB4KSAqIHBpeGVsU2l6ZSwKKy0gICAgICAgICAg ICAgICAgIChVQ0hBUiAqKXRpbGUuZ2V0KCkgKyB0eSAqIHRpbGVXaWR0aCAqIHBpeGVsU2l6ZSwg dGlsZVJvd1NpemUpOworLSAgICAgICAgfQorLQorLSAgICAgICAgeCArPSB0aWxlV2lkdGg7Cist ICAgICAgfQorLSAgICB9IGVsc2UgeworLSAgICAgIGludCB5ICA9IG1fcm93c1BlclN0cmlwICog bV9zdHJpcEluZGV4OworLSAgICAgIGludCBvayA9IFRJRkZSZWFkUkdCQVN0cmlwXzY0KG1fdGlm ZiwgeSwgKHVpbnQ2NCAqKW1fc3RyaXBCdWZmZXIpOworLSAgICAgIGFzc2VydChvayk7CistICAg IH0KKy0gIH0KKy0KKy0gIHVpbnQxNiBvcmllbnQgPSBPUklFTlRBVElPTl9UT1BMRUZUOworLSAg VElGRkdldEZpZWxkKG1fdGlmZiwgVElGRlRBR19PUklFTlRBVElPTiwgJm9yaWVudCk7CistCist ICBpbnQgciA9IG1fcm93c1BlclN0cmlwIC0gMSAtIChtX3JvdyAlIG1fcm93c1BlclN0cmlwKTsK Ky0gIHN3aXRjaCAob3JpZW50KSAgLy8gUHJldHR5IHdlYWsgY2hlY2sgZm9yIHRvcC9ib3R0b20g b3JpZW50YXRpb24KKy0gIHsKKy0gIGNhc2UgT1JJRU5UQVRJT05fVE9QTEVGVDoKKy0gIGNhc2Ug T1JJRU5UQVRJT05fVE9QUklHSFQ6CistICBjYXNlIE9SSUVOVEFUSU9OX0xFRlRUT1A6CistICBj YXNlIE9SSUVOVEFUSU9OX1JJR0hUVE9QOgorLSAgICAvLyBXZSBoYXZlIHRvIGludmVydCB0aGUg Zml4ZWQgQk9UVE9NLVVQIHJldHVybmVkIGJ5IFRJRkYgZnVuY3Rpb25zIC0gc2luY2UKKy0gICAg Ly8gdGhpcyBmdW5jdGlvbiBpcworLSAgICAvLyBzdXBwb3NlZCB0byBpZ25vcmUgb3JpZW50YXRp b24gaXNzdWVzICh3aGljaCBhcmUgbWFuYWdlZCBvdXRzaWRlKS4KKy0KKy0gICAgLy8gVGhlIGxh c3QgdGlsZXMgcm93IHdpbGwgYWN0dWFsbHkgc3RhcnQgYXQgdGhlIEVORCBPRiBUSEUgSU1BR0Ug KG5vdAorLSAgICAvLyBuZWNlc3NhcmlseSBhdAorLSAgICAvLyBtX3Jvd3NQZXJTdHJpcCBtdWx0 aXBsZXMpLiBTbywgd2UgbXVzdCBhZGp1c3QgZm9yIHRoYXQuCistCistICAgIHIgPSBzdGQ6Om1p bihtX3Jvd3NQZXJTdHJpcCwgbV9pbmZvLm1fbHkgLSBtX3Jvd3NQZXJTdHJpcCAqIG1fc3RyaXBJ bmRleCkgLQorLSAgICAgICAgMSAtIChtX3JvdyAlIG1fcm93c1BlclN0cmlwKTsKKy0gICAgYnJl YWs7CistCistICBjYXNlIE9SSUVOVEFUSU9OX0JPVFJJR0hUOgorLSAgY2FzZSBPUklFTlRBVElP Tl9CT1RMRUZUOgorLSAgY2FzZSBPUklFTlRBVElPTl9SSUdIVEJPVDoKKy0gIGNhc2UgT1JJRU5U QVRJT05fTEVGVEJPVDoKKy0gICAgciA9IG1fcm93ICUgbV9yb3dzUGVyU3RyaXA7CistICAgIGJy ZWFrOworLSAgfQorLQorLSAgLy8gRmluYWxseSwgY29weSB0aGUgc3RyaXAgcm93IHRvIHRoZSBv dXRwdXQgcm93IGJ1ZmZlcgorLSAgVFBpeGVsNjQgKnBpeCA9IChUUGl4ZWw2NCAqKWJ1ZmZlcjsK Ky0gIFVTSE9SVCAqdiAgICAgPSAoVVNIT1JUICopKG1fc3RyaXBCdWZmZXIgKyByICogc3RyaXBS b3dTaXplKTsKKy0KKy0gIHBpeCArPSB4MDsKKy0gIHYgKz0gNCAqIHgwOworLQorLSAgaW50IHdp ZHRoID0KKy0gICAgICAoeDEgPCB4MCkgPyAobV9pbmZvLm1fbHggLSAxKSAvIHNocmluayArIDEg OiAoeDEgLSB4MCkgLyBzaHJpbmsgKyAxOworLQorLSAgZm9yIChpbnQgaSA9IDA7IGkgPCB3aWR0 aDsgaSsrKSB7CistICAgIFVTSE9SVCBjID0gKnYrKzsKKy0gICAgcGl4LT5yICAgPSBjOworLSAg ICBjICAgICAgICA9ICp2Kys7CistICAgIHBpeC0+ZyAgID0gYzsKKy0gICAgYyAgICAgICAgPSAq disrOworLSAgICBwaXgtPmIgICA9IGM7CistICAgIGMgICAgICAgID0gKnYrKzsKKy0gICAgcGl4 LT5tICAgPSBjOworLQorLSAgICBwaXggKz0gc2hyaW5rOworLSAgICB2ICs9IDQgKiAoc2hyaW5r IC0gMSk7CistICB9CistCistICBtX3JvdysrOworLX0KKy0KKyAvLz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorIAorIHZvaWQg VGlmUmVhZGVyOjpyZWFkTGluZShjaGFyICpidWZmZXIsIGludCB4MCwgaW50IHgxLCBpbnQgc2hy aW5rKSB7CistICBpZiAodGhpcy0+bV9pbmZvLm1fYml0c1BlclNhbXBsZSA9PSAxNiAmJgorLSAg ICAgIHRoaXMtPm1faW5mby5tX3NhbXBsZVBlclBpeGVsID49IDMpIHsKKy0gICAgc3RkOjp2ZWN0 b3I8c2hvcnQ+IGFwcCg0ICogKG1faW5mby5tX2x4KSk7CistICAgIHJlYWRMaW5lKCZhcHBbMF0s IHgwLCB4MSwgc2hyaW5rKTsKKy0KKy0gICAgVFBpeGVsNjQgKnBpeGluID0gKFRQaXhlbDY0ICop JmFwcFswXTsKKy0KKy0gICAgVFBpeGVsMzIgKnBpeG91dCA9IChUUGl4ZWwzMiAqKWJ1ZmZlcjsK Ky0gICAgZm9yIChpbnQgaiA9IDA7IGogPCB4MDsgaisrKSB7CistICAgICAgcGl4b3V0Kys7Cist ICAgICAgcGl4aW4rKzsKKy0gICAgfQorLQorLSAgICBmb3IgKGludCBpID0gMDsgaSA8ICh4MSAt IHgwKSArIDE7IGkrKykKKy0gICAgICAqcGl4b3V0KysgPSBQaXhlbENvbnZlcnRlcjxUUGl4ZWwz Mj46OmZyb20oKnBpeGluKyspOworLQorLSAgICByZXR1cm47CistICB9CistCisgICBhc3NlcnQo c2hyaW5rID4gMCk7CisgCisgICBjb25zdCBpbnQgcGl4ZWxTaXplID0gNDsKKy0tIAorMi41NS4w CisKCmRpZmYgLS1naXQgYS8wMDAzLWV4ci1maXgucGF0Y2ggYi8wMDAzLWV4ci1maXgucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMyOTA2ZQotLS0gL2Rldi9udWxs CisrKyBiLzAwMDMtZXhyLWZpeC5wYXRjaApAQCAtMCwwICsxLDExOCBAQAorRnJvbSA5YThmNmM3 MjYzOWQ4ZWQ3YWRlZDliZGEzYmNmMmM2YzkwYjRiZDhhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQorRnJvbTogRGllZ28gSGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4KK0RhdGU6IE1vbiwg MjcgSnVsIDIwMjYgMTY6NTI6NTEgLTA0MDAKK1N1YmplY3Q6IFtQQVRDSCAzLzldIGV4ciBmaXgK KworCitkaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy9pbWFnZS9DTWFrZUxpc3RzLnR4dCBiL3Rv b256L3NvdXJjZXMvaW1hZ2UvQ01ha2VMaXN0cy50eHQKK2luZGV4IDAxZDkwZjZhMy4uZDZjYTBi NWMxIDEwMDY0NAorLS0tIGEvdG9vbnovc291cmNlcy9pbWFnZS9DTWFrZUxpc3RzLnR4dAorKysr IGIvdG9vbnovc291cmNlcy9pbWFnZS9DTWFrZUxpc3RzLnR4dAorQEAgLTIwMiw0ICsyMDIsNiBA QCBlbHNlaWYoQlVJTERfRU5WX1VOSVhMSUtFKQorICAgICBlbmRpZigpCisgZW5kaWYoKQorIAor K3NldChFWFRSQV9MSUJTICR7RVhUUkFfTElCU30gLWx0aW55ZXhyKQorKworIHRhcmdldF9saW5r X2xpYnJhcmllcyhpbWFnZSBRdDU6OkNvcmUgUXQ1OjpHdWkgUXQ1OjpOZXR3b3JrICR7Wl9MSUJ9 ICR7R0xVVF9MSUJ9ICR7R0xfTElCfSAke0pQRUdfTElCfSAke1RJRkZfTElCfSAke1BOR19MSUJ9 ICR7RVhUUkFfTElCU30pCitkaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy9pbWFnZS9leHIvdGlu eWV4cl9vdG1vZC5oIGIvdG9vbnovc291cmNlcy9pbWFnZS9leHIvdGlueWV4cl9vdG1vZC5oCitp bmRleCA1NmMxODEwYmQuLjIzMDk5NGIwMiAxMDA2NDQKKy0tLSBhL3Rvb256L3NvdXJjZXMvaW1h Z2UvZXhyL3RpbnlleHJfb3Rtb2QuaAorKysrIGIvdG9vbnovc291cmNlcy9pbWFnZS9leHIvdGlu eWV4cl9vdG1vZC5oCitAQCAtMSw3ICsxLDYgQEAKKyAjaWZuZGVmIFRJTllFWFJfT1RNT0RfSF8K KyAjZGVmaW5lIFRJTllFWFJfT1RNT0RfSF8KKyAKKy0jZGVmaW5lIFRJTllFWFJfSU1QTEVNRU5U QVRJT04KKyAjaW5jbHVkZSAidGlueWV4ci5oIgorICNpbmNsdWRlIDxjYXNzZXJ0PgorIAorQEAg LTc3LDYgKzc2LDg1IEBAIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM SVRZIE9GIFNVQ0ggREFNQUdFLgorIAorIC8vIEVuZCBvZiBPcGVuRVhSIGxpY2Vuc2UgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKyNpZm5kZWYg VElOWUVYUl9JTVBMRU1FTlRBVElPTl9ERUZJTkVECisrCisrI2luY2x1ZGUgPGNhc3NlcnQ+Cisr I2luY2x1ZGUgPGNzdGRpbz4KKysjaW5jbHVkZSA8Y3N0ZGxpYj4KKysjaW5jbHVkZSA8Y3N0cmlu Zz4KKysKKysjaW5jbHVkZSA8YWxnb3JpdGhtPgorKyNpbmNsdWRlIDxzc3RyZWFtPgorKyNpbmNs dWRlIDxzdHJpbmc+CisrI2luY2x1ZGUgPHZlY3Rvcj4KKysKKytuYW1lc3BhY2UgdGlueWV4ciB7 CisrCisrc3RhdGljIGNvbnN0IGludCBrRVhSVmVyc2lvblNpemUgPSA4OworKworK3N0cnVjdCBM YXllckNoYW5uZWwgeworKyAgZXhwbGljaXQgTGF5ZXJDaGFubmVsKHNpemVfdCBpLCBzdGQ6OnN0 cmluZyBuKSA6IGluZGV4KGkpLCBuYW1lKG4pIHt9CisrICBzaXplX3QgaW5kZXg7CisrICBzdGQ6 OnN0cmluZyBuYW1lOworK307CisrCisrCisrc3RhdGljIHZvaWQgU2V0RXJyb3JNZXNzYWdlKGNv bnN0IHN0ZDo6c3RyaW5nICZtc2csIGNvbnN0IGNoYXIgKiplcnIpIHsKKysgIGlmIChlcnIpIHsK KysjaWZkZWYgX1dJTjMyCisrICAgICgqZXJyKSA9IF9zdHJkdXAobXNnLmNfc3RyKCkpOworKyNl bHNlCisrICAgICgqZXJyKSA9IHN0cmR1cChtc2cuY19zdHIoKSk7CisrI2VuZGlmCisrICB9Cisr fQorKworK3N0YXRpYyB2b2lkIEdldExheWVycyhjb25zdCBFWFJIZWFkZXIgJmV4cl9oZWFkZXIs CisrICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiAmbGF5ZXJf bmFtZXMpIHsKKysgIC8vIE5haXZlIGltcGxlbWVudGF0aW9uCisrICAvLyBHcm91cCBjaGFubmVs cyBieSBsYXllcnMKKysgIC8vIGdvIG92ZXIgYWxsIGNoYW5uZWwgbmFtZXMsIHNwbGl0IGJ5IHBl cmlvZHMKKysgIC8vIGNvbGxlY3QgdW5pcXVlIG5hbWVzCisrICBsYXllcl9uYW1lcy5jbGVhcigp OworKyAgZm9yIChpbnQgYyA9IDA7IGMgPCBleHJfaGVhZGVyLm51bV9jaGFubmVsczsgYysrKSB7 CisrICAgIHN0ZDo6c3RyaW5nIGZ1bGxfbmFtZShleHJfaGVhZGVyLmNoYW5uZWxzW2NdLm5hbWUp OworKyAgICBjb25zdCBzaXplX3QgcG9zID0gZnVsbF9uYW1lLmZpbmRfbGFzdF9vZignLicpOwor KyAgICBpZiAocG9zICE9IHN0ZDo6c3RyaW5nOjpucG9zICYmIHBvcyAhPSAwICYmIHBvcyArIDEg PCBmdWxsX25hbWUuc2l6ZSgpKSB7CisrICAgICAgZnVsbF9uYW1lLmVyYXNlKHBvcyk7CisrICAg ICAgaWYgKHN0ZDo6ZmluZChsYXllcl9uYW1lcy5iZWdpbigpLCBsYXllcl9uYW1lcy5lbmQoKSwg ZnVsbF9uYW1lKSA9PQorKyAgICAgICAgICBsYXllcl9uYW1lcy5lbmQoKSkKKysgICAgICAgIGxh eWVyX25hbWVzLnB1c2hfYmFjayhmdWxsX25hbWUpOworKyAgICB9CisrICB9CisrfQorKworK3N0 YXRpYyB2b2lkIENoYW5uZWxzSW5MYXllcihjb25zdCBFWFJIZWFkZXIgJmV4cl9oZWFkZXIsCisr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nIGxheWVyX25hbWUs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6dmVjdG9yPExheWVyQ2hhbm5lbD4g JmNoYW5uZWxzKSB7CisrICBjaGFubmVscy5jbGVhcigpOworKyAgZm9yIChpbnQgYyA9IDA7IGMg PCBleHJfaGVhZGVyLm51bV9jaGFubmVsczsgYysrKSB7CisrICAgIHN0ZDo6c3RyaW5nIGNoX25h bWUoZXhyX2hlYWRlci5jaGFubmVsc1tjXS5uYW1lKTsKKysgICAgaWYgKGxheWVyX25hbWUuZW1w dHkoKSkgeworKyAgICAgIGNvbnN0IHNpemVfdCBwb3MgPSBjaF9uYW1lLmZpbmRfbGFzdF9vZign LicpOworKyAgICAgIGlmIChwb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MgJiYgcG9zIDwgY2hfbmFt ZS5zaXplKCkpIHsKKysgICAgICAgIGNoX25hbWUgPSBjaF9uYW1lLnN1YnN0cihwb3MgKyAxKTsK KysgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAgY29uc3Qgc2l6ZV90IHBvcyA9IGNoX25h bWUuZmluZChsYXllcl9uYW1lICsgJy4nKTsKKysgICAgICBpZiAocG9zID09IHN0ZDo6c3RyaW5n OjpucG9zKSBjb250aW51ZTsKKysgICAgICBpZiAocG9zID09IDApIHsKKysgICAgICAgIGNoX25h bWUgPSBjaF9uYW1lLnN1YnN0cihsYXllcl9uYW1lLnNpemUoKSArIDEpOworKyAgICAgIH0KKysg ICAgfQorKyAgICBMYXllckNoYW5uZWwgY2goc2l6ZV90KGMpLCBjaF9uYW1lKTsKKysgICAgY2hh bm5lbHMucHVzaF9iYWNrKGNoKTsKKysgIH0KKyt9CisrCisrfQorKworKyNlbmRpZgorKworICNp ZmRlZiBfX2NwbHVzcGx1cworIGV4dGVybiAiQyIgeworICNlbmRpZgorLS0gCisyLjU1LjAKKwoK ZGlmZiAtLWdpdCBhLzAwMDQtZ2V0aG9zdGJ5bmFtZS5wYXRjaCBiLzAwMDQtZ2V0aG9zdGJ5bmFt ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTFlMjNmCi0tLSAv ZGV2L251bGwKKysrIGIvMDAwNC1nZXRob3N0YnluYW1lLnBhdGNoCkBAIC0wLDAgKzEsMjY1IEBA CitGcm9tIDVhNGJlMjJhYmM2OGExZGQxMGRmNTJjYmM0N2RhOWRjZTg2MGE2ZDYgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCitGcm9tOiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29t PgorRGF0ZTogTW9uLCAyNyBKdWwgMjAyNiAxNjo1MzoyOSAtMDQwMAorU3ViamVjdDogW1BBVENI IDQvOV0gZ2V0aG9zdGJ5bmFtZQorCisKK2RpZmYgLS1naXQgYS90b29uei9zb3VyY2VzL3Rvb256 ZmFybS90ZmFybS90ZmFybXRhc2suY3BwIGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0v dGZhcm10YXNrLmNwcAoraW5kZXggZWFiYjAwMDgyLi45YmFkNzk4OGIgMTAwNjQ0CistLS0gYS90 b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybS90ZmFybXRhc2suY3BwCisrKysgYi90b29uei9z b3VyY2VzL3Rvb256ZmFybS90ZmFybS90ZmFybXRhc2suY3BwCitAQCAtMjIsMTMgKzIyLDEzIEBA CisgI2VsaWYgZGVmaW5lZChNQUNPU1gpCisgI2luY2x1ZGUgInR2ZXJzaW9uLmgiCisgdXNpbmcg bmFtZXNwYWNlIFRWRVI7CistI2luY2x1ZGUgPG5ldGRiLmg+ICAgICAgLy8gZ2V0aG9zdGJ5bmFt ZQorKyNpbmNsdWRlIDxuZXRkYi5oPiAgICAgIC8vIGdldGFkZHJpbmZvCisgI2luY2x1ZGUgPGFy cGEvaW5ldC5oPiAgLy8gaW5ldF9udG9hCisgI2Vsc2UKKyAvLyB0aGVzZSB3ZXJlIGluY2x1ZGVk IGZvciBPU1gsIGknbSBub3Qgc3VyZSBpZiB0aGV5IGFyZSByZXF1aXJlZCBmb3IgbGludXggb3IK KyAvLyBub3Q/IGxlYXZpbmcgdGhlbSBpbiBhcyBsaW51eCB3YXMgYnVpbGRpbmcgc3VjY2Vzc2Z1 bGx5IGFscmVhZHkuIGRhbWllczEzIC0KKyAvLyAyMDE3LTA0LTE1LgorLSNpbmNsdWRlIDxuZXRk Yi5oPiAgICAgIC8vIGdldGhvc3RieW5hbWUKKysjaW5jbHVkZSA8bmV0ZGIuaD4gICAgICAvLyBn ZXRhZGRyaW5mbworICNpbmNsdWRlIDxhcnBhL2luZXQuaD4gIC8vIGluZXRfbnRvYQorICNlbmRp ZgorIAorQEAgLTQ4NCw2ICs0ODQsMTEgQEAgUVN0cmluZyBURmFybVRhc2s6OmdldENvbW1hbmRM aW5lUHJnTmFtZSgpIGNvbnN0IHsKKyBRU3RyaW5nIFRGYXJtVGFzazo6Z2V0Q29tbWFuZExpbmVB cmd1bWVudHMoKSBjb25zdCB7CisgICBRU3RyaW5nIGNtZGxpbmUgPSAiIjsKKyAKKysgIHN0cnVj dCBhZGRyaW5mbyAqYWkgPSBOVUxMOworKyAgc3RydWN0IGFkZHJpbmZvIGhpbnRzOworKyAgbWVt c2V0KCZoaW50cywgMCwgc2l6ZW9mKHN0cnVjdCBhZGRyaW5mbykpOworKyAgaGludHMuYWlfZmFt aWx5ID0gQUZfSU5FVDsKKysKKyAgIGlmICghbV90YXNrRmlsZVBhdGguaXNFbXB0eSgpKQorICAg ICBjbWRsaW5lICs9ICIgXCIiICsKKyAgICAgICAgICAgICAgICBRU3RyaW5nOjpmcm9tU3RkV1N0 cmluZygKK0BAIC00OTEsOSArNDk2LDEyIEBAIFFTdHJpbmcgVEZhcm1UYXNrOjpnZXRDb21tYW5k TGluZUFyZ3VtZW50cygpIGNvbnN0IHsKKyAgICAgICAgICAgICAgICAiXCIiOworIAorICAgaWYg KG1fY2FsbGVyTWFjaGluZU5hbWUgIT0gIiIpIHsKKy0gICAgc3RydWN0IGhvc3RlbnQgKmhlID0g Z2V0aG9zdGJ5bmFtZShtX2NhbGxlck1hY2hpbmVOYW1lLnRvTGF0aW4xKCkpOworLSAgICBpZiAo aGUpIHsKKy0gICAgICBjaGFyICppcEFkZHJlc3MgPSBpbmV0X250b2EoKihzdHJ1Y3QgaW5fYWRk ciAqKSooaGUtPmhfYWRkcl9saXN0KSk7CisrICAgIGludCBzdWMgPSBnZXRhZGRyaW5mbyhtX2Nh bGxlck1hY2hpbmVOYW1lLnRvTGF0aW4xKCksIE5VTEwsICZoaW50cywgJmFpKTsKKysgICAgaWYg KHN1YyA9PSAwKSB7CisrICAgICAgc3RydWN0IHNvY2thZGRyX2luICphaV9hZGRyOworKyAgICAg IGFpX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyX2luICopYWktPmFpX2FkZHI7CisrCisrICAgICAg Y2hhciAqaXBBZGRyZXNzID0gaW5ldF9udG9hKChzdHJ1Y3QgaW5fYWRkcilhaV9hZGRyLT5zaW5f YWRkcik7CisgICAgICAgY21kbGluZSArPSAiIC10bXNnICIgKyBRU3RyaW5nOjpmcm9tVXRmOChp cEFkZHJlc3MpOworICAgICB9CisgICB9CitkaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy90b29u emZhcm0vdGZhcm0vdHNlcnZlcnByb3h5LmNwcCBiL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3Rm YXJtL3RzZXJ2ZXJwcm94eS5jcHAKK2luZGV4IDAzNTI5NmMxNC4uMmVlNGJhOTU4IDEwMDY0NAor LS0tIGEvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHNlcnZlcnByb3h5LmNwcAorKysr IGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHNlcnZlcnByb3h5LmNwcAorQEAgLTI4 LDE2ICsyOCwyMyBAQCBlbnVtIHsKKyAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisgCisgaW50IGFz a1NlcnZlcihzdHJpbmcgaG9zdE5hbWUsIGludCBwb3J0SWQsIHN0cmluZyBxdWVzdGlvbiwgc3Ry aW5nICZhbnN3ZXIpIHsKKy0gIHN0cnVjdCBob3N0ZW50ICpoZSA9IGdldGhvc3RieW5hbWUoaG9z dE5hbWUuY19zdHIoKSk7CistICBpZiAoIWhlKSByZXR1cm4gSE9TVF9VTktOT1dOOworLQorKyAg c3RydWN0IGFkZHJpbmZvICphaSA9IE5VTEw7CisrICBzdHJ1Y3QgYWRkcmluZm8gaGludHM7Cisr ICBtZW1zZXQoJmhpbnRzLCAwLCBzaXplb2Yoc3RydWN0IGFkZHJpbmZvKSk7CisrICBoaW50cy5h aV9mYW1pbHkgPSBBRl9JTkVUOworKworKyAgaW50IHN1YyA9IGdldGFkZHJpbmZvKGhvc3ROYW1l LmNfc3RyKCksIE5VTEwsICZoaW50cywgJmFpKTsKKysgIGlmIChzdWMgIT0gMCkgcmV0dXJuIEhP U1RfVU5LTk9XTjsKKysgCisgICBpbnQgc29ja2V0X2lkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tf U1RSRUFNLCAwKTsKKy0KKysgIHN0cnVjdCBzb2NrYWRkcl9pbiAqYWlfYWRkcjsKKysgIGFpX2Fk ZHIgPSAoc3RydWN0IHNvY2thZGRyX2luICopYWktPmFpX2FkZHI7CisrIAorICAgc3RydWN0IHNv Y2thZGRyX2luIGFkZHI7CisgICBtZW1zZXQoKGNoYXIgKikmYWRkciwgMCwgc2l6ZW9mIGFkZHIp OworLSAgYWRkci5zaW5fZmFtaWx5ID0gaGUtPmhfYWRkcnR5cGU7CistICBhZGRyLnNpbl9wb3J0 ICAgPSBodG9ucyhwb3J0SWQpOworLSAgbWVtY3B5KChjaGFyICopJihhZGRyLnNpbl9hZGRyKSwg aGUtPmhfYWRkciwgaGUtPmhfbGVuZ3RoKTsKKysgIGFkZHIuc2luX2ZhbWlseSA9IGFpX2FkZHIt PnNpbl9mYW1pbHk7CisrICBhZGRyLnNpbl9wb3J0ICAgPSBodG9ucyhwb3J0KTsKKysgIGFkZHIu c2luX2FkZHIgPSBhaV9hZGRyLT5zaW5fYWRkcjsKKyAKKyAgIGludCByY0Nvbm5lY3QgPSBjb25u ZWN0KHNvY2tldF9pZCwgKHN0cnVjdCBzb2NrYWRkciAqKSYoYWRkciksIHNpemVvZiBhZGRyKTsK KyAgIGlmIChyY0Nvbm5lY3QgPT0gU09DS0VUX0VSUk9SKSByZXR1cm4gQ09OTkVDVElPTl9GQUlM RUQ7CitAQCAtODIsMTYgKzg5LDIzIEBAIFRTZXJ2ZXJQcm94eTo6flRTZXJ2ZXJQcm94eSgpIHsK KyAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisgYm9vbCBUU2VydmVyUHJveHk6OnRlc3RDb25u ZWN0aW9uKCkgY29uc3QgeworLSAgc3RydWN0IGhvc3RlbnQgKmhlID0gZ2V0aG9zdGJ5bmFtZSht X2hvc3ROYW1lLmNfc3RyKCkpOworLSAgaWYgKCFoZSkgcmV0dXJuIGZhbHNlOworLQorKyAgYWRk cmluZm8gKmFpID0gTlVMTDsKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50czsKKysgIG1lbXNldCgm aGludHMsIDAsIHNpemVvZihzdHJ1Y3QgYWRkcmluZm8pKTsKKysgIGhpbnRzLmFpX2ZhbWlseSA9 IEFGX0lORVQ7CisrCisrICBpbnQgc3VjID0gZ2V0YWRkcmluZm8obV9ob3N0TmFtZS5jX3N0cigp LCBOVUxMLCAmaGludHMsICZhaSk7CisrICBpZiAoc3VjICE9IDApIHJldHVybiBmYWxzZTsKKysg CisgICBpbnQgc29ja2V0X2lkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKysg IHN0cnVjdCBzb2NrYWRkcl9pbiAqYWlfYWRkcjsKKysgIGFpX2FkZHIgPSAoc3RydWN0IHNvY2th ZGRyX2luICopYWktPmFpX2FkZHI7CisgCisgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsKKyAg IG1lbXNldCgoY2hhciAqKSZhZGRyLCAwLCBzaXplb2YgYWRkcik7CistICBhZGRyLnNpbl9mYW1p bHkgPSBoZS0+aF9hZGRydHlwZTsKKy0gIGFkZHIuc2luX3BvcnQgICA9IGh0b25zKG1fcG9ydElk KTsKKy0gIG1lbWNweSgoY2hhciAqKSYoYWRkci5zaW5fYWRkciksIGhlLT5oX2FkZHIsIGhlLT5o X2xlbmd0aCk7CisrICBhZGRyLnNpbl9mYW1pbHkgPSBhaV9hZGRyLT5zaW5fZmFtaWx5OworKyAg YWRkci5zaW5fcG9ydCAgID0gaHRvbnMocG9ydCk7CisrICBhZGRyLnNpbl9hZGRyID0gYWlfYWRk ci0+c2luX2FkZHI7CisgCisgICBib29sIHJldCA9IChTT0NLRVRfRVJST1IgIT0KKyAgICAgICAg ICAgICAgIGNvbm5lY3Qoc29ja2V0X2lkLCAoc3RydWN0IHNvY2thZGRyICopJihhZGRyKSwgc2l6 ZW9mIGFkZHIpKTsKK2RpZmYgLS1naXQgYS90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybS90 dGNwaXBjbGllbnQuY3BwIGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHRjcGlwY2xp ZW50LmNwcAoraW5kZXggZjhhNzY0NTAzLi44OTY3MWRlODEgMTAwNjQ0CistLS0gYS90b29uei9z b3VyY2VzL3Rvb256ZmFybS90ZmFybS90dGNwaXBjbGllbnQuY3BwCisrKysgYi90b29uei9zb3Vy Y2VzL3Rvb256ZmFybS90ZmFybS90dGNwaXBjbGllbnQuY3BwCitAQCAtNDksOCArNDksMTMgQEAg aW50IFRUY3BJcENsaWVudDo6Y29ubmVjdChjb25zdCBRU3RyaW5nICZob3N0TmFtZSwgY29uc3Qg UVN0cmluZyAmYWRkclN0ciwKKyAgICAgICB1bnNpZ25lZCBsb25nIGlwQWRkciA9IGluZXRfYWRk cihhZGRyU3RyLmNfc3RyKCkpOworICAgICB9CisgICAqLworLSAgc3RydWN0IGhvc3RlbnQgKmhl ID0gZ2V0aG9zdGJ5bmFtZShob3N0TmFtZS50b1V0ZjgoKSk7CistICBpZiAoIWhlKSB7CisrICBz dHJ1Y3QgYWRkcmluZm8gKmFpID0gTlVMTDsKKysgIHN0cnVjdCBhZGRyaW5mbyBoaW50czsKKysg IG1lbXNldCgmaGludHMsIDAsIHNpemVvZihzdHJ1Y3QgYWRkcmluZm8pKTsKKysgIGhpbnRzLmFp X2ZhbWlseSA9IEFGX0lORVQ7CisrCisrICBpbnQgc3VjID0gZ2V0YWRkcmluZm8oaG9zdE5hbWUu dG9VdGY4KCksIE5VTEwsICZoaW50cywgJmFpKTsKKysgIGlmIChzdWMgIT0gMCkgeworICNpZmRl ZiBfV0lOMzIKKyAgICAgaW50IGVyciA9IFdTQUdldExhc3RFcnJvcigpOworICNlbHNlCitAQCAt NTksMTIgKzY0LDE0IEBAIGludCBUVGNwSXBDbGllbnQ6OmNvbm5lY3QoY29uc3QgUVN0cmluZyAm aG9zdE5hbWUsIGNvbnN0IFFTdHJpbmcgJmFkZHJTdHIsCisgICB9CisgCisgICBpbnQgc29ja2V0 X2lkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKKysgIHN0cnVjdCBzb2NrYWRk cl9pbiAqYWlfYWRkcjsKKysgIGFpX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyX2luICopYWktPmFp X2FkZHI7CisgCisgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsKKyAgIG1lbXNldCgoY2hhciAq KSZhZGRyLCAwLCBzaXplb2YgYWRkcik7CistICBhZGRyLnNpbl9mYW1pbHkgPSBoZS0+aF9hZGRy dHlwZTsKKysgIGFkZHIuc2luX2ZhbWlseSA9IGFpX2FkZHItPnNpbl9mYW1pbHk7CisgICBhZGRy LnNpbl9wb3J0ICAgPSBodG9ucyhwb3J0KTsKKy0gIG1lbWNweSgoY2hhciAqKSYoYWRkci5zaW5f YWRkciksIGhlLT5oX2FkZHIsIGhlLT5oX2xlbmd0aCk7CisrICBhZGRyLnNpbl9hZGRyID0gYWlf YWRkci0+c2luX2FkZHI7CisgCisgICBpbnQgcmNDb25uZWN0ID0gOjpjb25uZWN0KHNvY2tldF9p ZCwgKHN0cnVjdCBzb2NrYWRkciAqKSYoYWRkciksIHNpemVvZiBhZGRyKTsKKyAgIGlmIChyY0Nv bm5lY3QgPT0gU09DS0VUX0VSUk9SKSB7CitkaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy90b29u emZhcm0vdGZhcm0vdHRjcGlwc2VydmVyLmNwcCBiL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3Rm YXJtL3R0Y3BpcHNlcnZlci5jcHAKK2luZGV4IDNhNjVkNTE3NC4uZDFlMTI3YTNhIDEwMDY0NAor LS0tIGEvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHRjcGlwc2VydmVyLmNwcAorKysr IGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHRjcGlwc2VydmVyLmNwcAorQEAgLTQz MSwxNSArNDMxLDIxIEBAIHZvaWQgVFRjcElwU2VydmVyOjpzZW5kUmVwbHkoaW50IHNvY2tldCwg Y29uc3QgUVN0cmluZyAmcmVwbHkpIHsKKyBpbnQgZXN0YWJsaXNoKHVuc2lnbmVkIHNob3J0IHBv cnRudW0sIGludCAmc29jaykgeworICAgY2hhciBteW5hbWVbTUFYSE9TVE5BTUUgKyAxXTsKKyAg IHN0cnVjdCBzb2NrYWRkcl9pbiBzYTsKKy0gIHN0cnVjdCBob3N0ZW50ICpocDsKKysgIHN0cnVj dCBhZGRyaW5mbyAqYWkgPSBOVUxMOworKyAgc3RydWN0IGFkZHJpbmZvIGhpbnRzOworKyAgbWVt c2V0KCZoaW50cywgMCwgc2l6ZW9mKHN0cnVjdCBhZGRyaW5mbykpOworKyAgaGludHMuYWlfZmFt aWx5ID0gQUZfSU5FVDsKKyAKKyAgIG1lbXNldCgmc2EsIDAsIHNpemVvZihzdHJ1Y3Qgc29ja2Fk ZHJfaW4pKTsgLyogY2xlYXIgb3VyIGFkZHJlc3MgKi8KKyAgIGdldGhvc3RuYW1lKG15bmFtZSwg TUFYSE9TVE5BTUUpOyAgICAgICAgICAgLyogd2hvIGFyZSB3ZT8gKi8KKy0gIGhwID0gZ2V0aG9z dGJ5bmFtZShteW5hbWUpOyAgICAgICAgICAgICAgICAgLyogZ2V0IG91ciBhZGRyZXNzIGluZm8g Ki8KKy0gIGlmIChocCA9PSBOVUxMKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2Ug ZG9uJ3QgZXhpc3QgIT8gKi8KKysgIGludCBzdWMgPSBnZXRhZGRyaW5mbyhteW5hbWUsIE5VTEws ICZoaW50cywgJmFpKTsgLyogZ2V0IG91ciBhZGRyZXNzIGluZm8gKi8KKysgIGlmIChzdWMgIT0g MCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdlIGRvbid0IGV4aXN0ICE/ICovCisg ICAgIHJldHVybiAoLTEpOworIAorLSAgc2Euc2luX2ZhbWlseSA9IGhwLT5oX2FkZHJ0eXBlOyAv KiB0aGlzIGlzIG91ciBob3N0IGFkZHJlc3MgKi8KKysgIHN0cnVjdCBzb2NrYWRkcl9pbiAqYWlf YWRkcjsKKysgIGFpX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyX2luICopYWktPmFpX2FkZHI7Cisr CisrICBzYS5zaW5fZmFtaWx5ID0gYWlfYWRkci0+c2luX2ZhbWlseTsgLyogdGhpcyBpcyBvdXIg aG9zdCBhZGRyZXNzICovCisgICBzYS5zaW5fcG9ydCAgID0gaHRvbnMocG9ydG51bSk7IC8qIHRo aXMgaXMgb3VyIHBvcnQgbnVtYmVyICovCisgICBpZiAoKHNvY2sgPSBzb2NrZXQoQUZfSU5FVCwg U09DS19TVFJFQU0sIDApKSA8IDApIC8qIGNyZWF0ZSBzb2NrZXQgKi8KKyAgIHsKK2RpZmYgLS1n aXQgYS90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybWNvbnRyb2xsZXIvdGZhcm1jb250cm9s bGVyX3NodXRkb3duLmNwcCBiL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtY29udHJvbGxl ci90ZmFybWNvbnRyb2xsZXJfc2h1dGRvd24uY3BwCitpbmRleCAxZTcwMDVjYzYuLjMyMDg3ZDE4 YiAxMDA2NDQKKy0tLSBhL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtY29udHJvbGxlci90 ZmFybWNvbnRyb2xsZXJfc2h1dGRvd24uY3BwCisrKysgYi90b29uei9zb3VyY2VzL3Rvb256ZmFy bS90ZmFybWNvbnRyb2xsZXIvdGZhcm1jb250cm9sbGVyX3NodXRkb3duLmNwcAorQEAgLTE2LDIx ICsxNiwyOCBAQAorIAorIGludCBjYWxsX3NvY2tldChjaGFyICpob3N0bmFtZSwgdW5zaWduZWQg c2hvcnQgcG9ydG51bSkgeworICAgc3RydWN0IHNvY2thZGRyX2luIHNhOworLSAgc3RydWN0IGhv c3RlbnQgKmhwOworKyAgc3RydWN0IGFkZHJpbmZvICphaSA9IE5VTEw7CisrICBzdHJ1Y3QgYWRk cmluZm8gaGludHM7CisrICBtZW1zZXQoJmhpbnRzLCAwLCBzaXplb2Yoc3RydWN0IGFkZHJpbmZv KSk7CisrICBoaW50cy5haV9mYW1pbHkgPSBBRl9JTkVUOworICAgaW50IHM7CisgCistICBpZiAo KGhwID0gZ2V0aG9zdGJ5bmFtZShob3N0bmFtZSkpID09IE5VTEwpIC8qIGRvIHdlIGtub3cgdGhl IGhvc3QncyAqLworKyAgaW50IHN1YyA9IGdldGFkZHJpbmZvKGhvc3RuYW1lLCBOVUxMLCAmaGlu dHMsICZhaSk7CisrICBpZiAoc3VjICE9IDApIC8qIGRvIHdlIGtub3cgdGhlIGhvc3QncyAqLwor ICAgeworICAgICBlcnJubyA9IEVDT05OUkVGVVNFRDsgLyogYWRkcmVzcz8gKi8KKyAgICAgcmV0 dXJuICgtMSk7ICAgICAgICAgIC8qIG5vICovCisgICB9CisgCisrICBzdHJ1Y3Qgc29ja2FkZHJf aW4gKmFpX2FkZHI7CisrICBhaV9hZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFpLT5haV9h ZGRyOworKworICAgbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7CistICBtZW1jcHkoKGNoYXIg Kikmc2Euc2luX2FkZHIsIGhwLT5oX2FkZHIsIGhwLT5oX2xlbmd0aCk7IC8qIHNldCBhZGRyZXNz ICovCistICBzYS5zaW5fZmFtaWx5ID0gaHAtPmhfYWRkcnR5cGU7CisrICBzYS5zaW5fYWRkciA9 IGFpX2FkZHItPnNpbl9hZGRyOworKyAgc2Euc2luX2ZhbWlseSA9IGFpX2FkZHItPnNpbl9mYW1p bHk7CisgICBzYS5zaW5fcG9ydCAgID0gaHRvbnMoKHVfc2hvcnQpcG9ydG51bSk7CisgCistICBp ZiAoKHMgPSBzb2NrZXQoaHAtPmhfYWRkcnR5cGUsIFNPQ0tfU1RSRUFNLCAwKSkgPCAwKSAvKiBn ZXQgc29ja2V0ICovCisrICBpZiAoKHMgPSBzb2NrZXQoYWlfYWRkci0+c2luX2ZhbWlseSwgU09D S19TVFJFQU0sIDApKSA8IDApIC8qIGdldCBzb2NrZXQgKi8KKyAgICAgcmV0dXJuICgtMSk7Cisg ICBpZiAoY29ubmVjdChzLCAoc3RydWN0IHNvY2thZGRyICopJnNhLCBzaXplb2Ygc2EpIDwgMCkg LyogY29ubmVjdCAqLworICAgeworZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJt L3RmYXJtc2VydmVyL3RmYXJtc2VydmVyX3NodXRkb3duLmNwcCBiL3Rvb256L3NvdXJjZXMvdG9v bnpmYXJtL3RmYXJtc2VydmVyL3RmYXJtc2VydmVyX3NodXRkb3duLmNwcAoraW5kZXggYTNmZjZm YzYwLi43ZDIyYzc2MGEgMTAwNjQ0CistLS0gYS90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFy bXNlcnZlci90ZmFybXNlcnZlcl9zaHV0ZG93bi5jcHAKKysrKyBiL3Rvb256L3NvdXJjZXMvdG9v bnpmYXJtL3RmYXJtc2VydmVyL3RmYXJtc2VydmVyX3NodXRkb3duLmNwcAorQEAgLTE2LDIxICsx NiwyOCBAQAorIAorIGludCBjYWxsX3NvY2tldChjaGFyICpob3N0bmFtZSwgdW5zaWduZWQgc2hv cnQgcG9ydG51bSkgeworICAgc3RydWN0IHNvY2thZGRyX2luIHNhOworLSAgc3RydWN0IGhvc3Rl bnQgKmhwOworKyAgc3RydWN0IGFkZHJpbmZvICphaSA9IE5VTEw7CisrICBzdHJ1Y3QgYWRkcmlu Zm8gaGludHM7CisrICBtZW1zZXQoJmhpbnRzLCAwLCBzaXplb2Yoc3RydWN0IGFkZHJpbmZvKSk7 CisrICBoaW50cy5haV9mYW1pbHkgPSBBRl9JTkVUOworICAgaW50IHM7CisgCistICBpZiAoKGhw ID0gZ2V0aG9zdGJ5bmFtZShob3N0bmFtZSkpID09IE5VTEwpIC8qIGRvIHdlIGtub3cgdGhlIGhv c3QncyAqLworKyAgaW50IHN1YyA9IGdldGFkZHJpbmZvKGhvc3RuYW1lLCBOVUxMLCAmaGludHMs ICZhaSk7CisrICBpZiAoc3VjICE9IDApIC8qIGRvIHdlIGtub3cgdGhlIGhvc3QncyAqLworICAg eworICAgICBlcnJubyA9IEVDT05OUkVGVVNFRDsgLyogYWRkcmVzcz8gKi8KKyAgICAgcmV0dXJu ICgtMSk7ICAgICAgICAgIC8qIG5vICovCisgICB9CisgCisrICBzdHJ1Y3Qgc29ja2FkZHJfaW4g KmFpX2FkZHI7CisrICBhaV9hZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFpLT5haV9hZGRy OworKworICAgbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHNhKSk7CistICBtZW1jcHkoKGNoYXIgKikm c2Euc2luX2FkZHIsIGhwLT5oX2FkZHIsIGhwLT5oX2xlbmd0aCk7IC8qIHNldCBhZGRyZXNzICov CistICBzYS5zaW5fZmFtaWx5ID0gaHAtPmhfYWRkcnR5cGU7CisrICBzYS5zaW5fYWRkciA9IGFp X2FkZHItPnNpbl9hZGRyOworKyAgc2Euc2luX2ZhbWlseSA9IGFpX2FkZHItPnNpbl9mYW1pbHk7 CisgICBzYS5zaW5fcG9ydCAgID0gaHRvbnMoKHVfc2hvcnQpcG9ydG51bSk7CisgCistICBpZiAo KHMgPSBzb2NrZXQoaHAtPmhfYWRkcnR5cGUsIFNPQ0tfU1RSRUFNLCAwKSkgPCAwKSAvKiBnZXQg c29ja2V0ICovCisrICBpZiAoKHMgPSBzb2NrZXQoYWlfYWRkci0+c2luX2ZhbWlseSwgU09DS19T VFJFQU0sIDApKSA8IDApIC8qIGdldCBzb2NrZXQgKi8KKyAgICAgcmV0dXJuICgtMSk7CisgICBp ZiAoY29ubmVjdChzLCAoc3RydWN0IHNvY2thZGRyICopJnNhLCBzaXplb2Ygc2EpIDwgMCkgLyog Y29ubmVjdCAqLworICAgeworLS0gCisyLjU1LjAKKwoKZGlmZiAtLWdpdCBhLzAwMDUtaW5zdGFs bC1wYXRoLWZpeC5wYXRjaCBiLzAwMDUtaW5zdGFsbC1wYXRoLWZpeC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMjVmY2Y3Ci0tLSAvZGV2L251bGwKKysrIGIvMDAw NS1pbnN0YWxsLXBhdGgtZml4LnBhdGNoCkBAIC0wLDAgKzEsODMgQEAKK0Zyb20gNWY5YWEyN2Yx NGJjYThmZGYwMmJmOWRlODYyZTVlMDg0NDM1NmRiMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK K0Zyb206IERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDI3 IEp1bCAyMDI2IDE2OjUzOjQ4IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggNS85XSBpbnN0YWxsIHBh dGggZml4CisKKworZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvdG9vbnovQ01ha2VMaXN0cy50 eHQgYi90b29uei9zb3VyY2VzL3Rvb256L0NNYWtlTGlzdHMudHh0CitpbmRleCBhNzBhZjZkZWQu LmFlMTRkYTY3MSAxMDA2NDQKKy0tLSBhL3Rvb256L3NvdXJjZXMvdG9vbnovQ01ha2VMaXN0cy50 eHQKKysrKyBiL3Rvb256L3NvdXJjZXMvdG9vbnovQ01ha2VMaXN0cy50eHQKK0BAIC02ODYsNyAr Njg2LDcgQEAgaWYoQlVJTERfRU5WX1VOSVhMSUtFIEFORCBCVUlMRF9UQVJHRVRfV0lOKQorICAg ICAgICAgICAgICIkPFRBUkdFVF9GSUxFOnRjb252ZXJ0ZXI+IgorICAgICAgICAgICAgICIkPFRB UkdFVF9GSUxFOnRmYXJtY29udHJvbGxlcj4iCisgICAgICAgICAgICAgIiQ8VEFSR0VUX0ZJTEU6 dGZhcm1zZXJ2ZXI+IgorLSAgICAgICAgREVTVElOQVRJT04gYmluCisrICAgICAgICBERVNUSU5B VElPTiAke0NNQUtFX0lOU1RBTExfUFJFRklYfS9iaW4KKyAgICAgKQorIAorICAgICBpZihMWk9E UklWRVJfRk9VTkQpCitAQCAtNjk0LDcgKzY5NCw3IEBAIGlmKEJVSUxEX0VOVl9VTklYTElLRSBB TkQgQlVJTERfVEFSR0VUX1dJTikKKyAgICAgICAgICAgICBQUk9HUkFNUworICAgICAgICAgICAg ICAgICAiJDxUQVJHRVRfRklMRTpsem9jb21wcmVzcz4iCisgICAgICAgICAgICAgICAgICIkPFRB UkdFVF9GSUxFOmx6b2RlY29tcHJlc3M+IgorLSAgICAgICAgICAgIERFU1RJTkFUSU9OIGJpbgor KyAgICAgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2JpbgorICAg ICAgICAgKQorICAgICBlbmRpZigpCisgCitAQCAtNzMwLDIxICs3MzAsMjAgQEAgZWxzZWlmKEJV SUxEX0VOVl9VTklYTElLRSBBTkQgTk9UIEJVSUxEX1RBUkdFVF9XSU4pCisgICAgIGluc3RhbGwo CisgICAgICAgICBUQVJHRVRTCisgICAgICAgICAgICAgT3BlblRvb256CistICAgICAgICBERVNU SU5BVElPTiBiaW4KKysgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9 L2JpbgorICAgICApCisgCisgICAgICMgU2hlbGwgc2NyaXB0IHRoYXQgY29waWVzIGZpbGVzIHRv IHRoZSBob21lIGRpcmVjdG9yeSBhcyBuZWVkZWQKKyAgICAgIyBhbmQgc2V0cyB0aGUgbGlicmFy eSBwcmVsb2FkIHBhdGguCisgICAgIGZpbGUoV1JJVEUgJHtDTUFLRV9CSU5BUllfRElSfS9iaW4v b3BlbnRvb256CisgIiMhL2Jpbi9zaAorLU9QRU5UT09OWl9CQVNFPVwkKGRpcm5hbWUgXCJcJDBc IikvLi4KKyAKKyBpZiBbICEgLWQgXCRIT01FLy5jb25maWcvT3BlblRvb256IF07IHRoZW4KKyAg ICAgbWtkaXIgLXAgXCRIT01FLy5jb25maWcvT3BlblRvb256CisgZmkKKyAKKyBpZiBbICEgLWQg XCRIT01FLy5jb25maWcvT3BlblRvb256L3N0dWZmIF07IHRoZW4KKy0gICAgY3AgLXIgXCRPUEVO VE9PTlpfQkFTRS9zaGFyZS9vcGVudG9vbnovc3R1ZmYgXCRIT01FLy5jb25maWcvT3BlblRvb256 CisrICAgIGNwIC1yICR7U0hBUkVfSU5TVEFMTF9QUkVGSVh9L29wZW50b29uei9zdHVmZiBcJEhP TUUvLmNvbmZpZy9PcGVuVG9vbnoKKyBmaQorIAorIGlmIFsgISAtZCBcJEhPTUUvLmNvbmZpZy9P cGVuVG9vbnovc3R1ZmYvcHJvamVjdHMvbGlicmFyeSBdOyB0aGVuCitAQCAtNzcxLDkgKzc3MCw5 IEBAIFRPT05aU1RVRElPUEFMRVRURT1cIlwkSE9NRS8uY29uZmlnL09wZW5Ub29uei9zdHVmZi9z dHVkaW9wYWxldHRlXCIKKyBFT0YKKyBmaQorIAorLWV4cG9ydCAke1BSRUxPQURfVkFSSUFCTEV9 PVwke09QRU5UT09OWl9CQVNFfS9saWIvb3BlbnRvb256OlwkeyR7UFJFTE9BRF9WQVJJQUJMRX19 CisrZXhwb3J0ICR7UFJFTE9BRF9WQVJJQUJMRX09JHtMSUJfSU5TVEFMTF9ESVJ9L29wZW50b29u ejpcJHske1BSRUxPQURfVkFSSUFCTEV9fQorIAorLWV4ZWMgXCRPUEVOVE9PTlpfQkFTRS9iaW4v T3BlblRvb256IFwiXCRAXCIKKytleGVjICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2Jpbi9PcGVu VG9vbnogXCJcJEBcIgorICIpCisgICAgICMgb25seSBuZWVkZWQgZm9yIGV4ZWN1dGluZyB3aXRo b3V0IGluc3RhbGxpbmcKKyAgICAgZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgY2htb2QgK3ggJHtD TUFLRV9CSU5BUllfRElSfS9iaW4vb3BlbnRvb256KQorQEAgLTgxMSwxMyArODEwLDEzIEBAIGV4 ZWMgXCRPUEVOVE9PTlpfQkFTRS9iaW4vT3BlblRvb256IFwiXCRAXCIKKyAgICAgICAgICAgICAi JDxUQVJHRVRfRklMRTp0bnp0b29scz4iCisgICAgICAgICAgICAgIiQ8VEFSR0VUX0ZJTEU6dG56 c3RkZng+IgorICAgICAgICAgICAgICIkPFRBUkdFVF9GSUxFOnRmYXJtPiIKKy0gICAgICAgIERF U1RJTkFUSU9OIGxpYi9vcGVudG9vbnoKKysgICAgICAgIERFU1RJTkFUSU9OICR7TElCX0lOU1RB TExfRElSfS9vcGVudG9vbnoKKyAgICAgKQorIAorICAgICBpbnN0YWxsKAorICAgICAgICAgRElS RUNUT1JZCisgICAgICAgICAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS8uLi8uLi9zdHVmZgorLSAg ICAgICAgREVTVElOQVRJT04gc2hhcmUvb3BlbnRvb256CisrICAgICAgICBERVNUSU5BVElPTiAk e1NIQVJFX0lOU1RBTExfUFJFRklYfS9vcGVudG9vbnoKKyAgICAgKQorIAorIGVuZGlmKCkKKy0t IAorMi41NS4wCisKCmRpZmYgLS1naXQgYS8wMDA2LWtpc3NmZnQtZml4LnBhdGNoIGIvMDAwNi1r aXNzZmZ0LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDA0 NDExCi0tLSAvZGV2L251bGwKKysrIGIvMDAwNi1raXNzZmZ0LWZpeC5wYXRjaApAQCAtMCwwICsx LDQ1IEBACitGcm9tIDc4YjljZjcwOTEzMDllODlmMWZhMjRmNmM0ZjYyMGYzZDIxNTNmOTQgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRo YXQuY29tPgorRGF0ZTogTW9uLCAyNyBKdWwgMjAyNiAxNjo1Njo0NiAtMDQwMAorU3ViamVjdDog W1BBVENIIDYvOV0ga2lzc2ZmdCBmaXgKKworCitkaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy9z dGRmeC9DTWFrZUxpc3RzLnR4dCBiL3Rvb256L3NvdXJjZXMvc3RkZngvQ01ha2VMaXN0cy50eHQK K2luZGV4IDU4ZTk5NDllZS4uOWUyZjExMTIzIDEwMDY0NAorLS0tIGEvdG9vbnovc291cmNlcy9z dGRmeC9DTWFrZUxpc3RzLnR4dAorKysrIGIvdG9vbnovc291cmNlcy9zdGRmeC9DTWFrZUxpc3Rz LnR4dAorQEAgLTI3MSw4ICsyNzEsNiBAQCBzZXQoU09VUkNFUworICAgICBpd2Ffbm9pc2UxMjM0 LmNwcAorICAgICBpd2FfcG5wZXJzcGVjdGl2ZWZ4LmNwcAorICAgICBpd2Ffc29hcGJ1YmJsZWZ4 LmNwcAorLSAgICAke1NES1JPT1R9L2tpc3NfZmZ0L2tpc3NfZmZ0LmMKKy0gICAgJHtTREtST09U fS9raXNzX2ZmdC9raXNzX2ZmdG5kLmMKKyAgICAgaXdhX2Jva2VoZnguY3BwCisgICAgIGl3YV90 aW1lY29kZWZ4LmNwcAorICAgICBpd2FfYm9rZWhyZWZmeC5jcHAKK0BAIC0zMDcsNiArMzA1LDcg QEAgYWRkX2xpYnJhcnkodG56c3RkZnggU0hBUkVEICR7SEVBREVSU30gJHtTT1VSQ0VTfSAke09C SkNTT1VSQ0VTfSkKKyBhZGRfZGVmaW5pdGlvbnMoCisgICAgIC1EX1VTUkRMTAorICAgICAtRFRO WlNUREZYX0VYUE9SVFMKKysgICAgLURraXNzX2ZmdF9zY2FsYXI9ZG91YmxlCisgKQorIAorIGlm KEJVSUxEX0VOVl9BUFBMRSkKK0BAIC0zMzAsMTIgKzMyOSwxMiBAQCBlbHNlKCkKKyBlbmRpZigp CisgCisgaW5jbHVkZV9kaXJlY3RvcmllcygKKy0gICAgJHtTREtST09UfS9raXNzX2ZmdAorKyAg ICAvdXNyL2luY2x1ZGUva2lzc2ZmdC8KKyApCisgCisgX2ZpbmRfdG9vbnpfbGlicmFyeShUTlpM SUJTICJ0bnpjb3JlO3RuemJhc2U7dG9vbnpsaWIiKQorIAorLXRhcmdldF9saW5rX2xpYnJhcmll cyh0bnpzdGRmeCBRdDU6OkNvcmUgUXQ1OjpHdWkgUXQ1OjpPcGVuR0wgJHtHTF9MSUJ9ICR7R0xF V19MSUJ9ICR7VE5aTElCU30gJHtQVEhSRUFEX0xJQlJBUll9KQorK3RhcmdldF9saW5rX2xpYnJh cmllcyh0bnpzdGRmeCBRdDU6OkNvcmUgUXQ1OjpHdWkgUXQ1OjpPcGVuR0wgJHtHTF9MSUJ9ICR7 R0xFV19MSUJ9ICR7VE5aTElCU30gJHtQVEhSRUFEX0xJQlJBUll9IGtpc3NmZnQtZG91YmxlKQor IAorIGlmKE9wZW5DVl9GT1VORCkKKyAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHRuenN0ZGZ4 ICR7T3BlbkNWX0xJQlN9KQorLS0gCisyLjU1LjAKKwoKZGlmZiAtLWdpdCBhLzAwMDctdG9vbnpy bGUtcm0ucGF0Y2ggYi8wMDA3LXRvb256cmxlLXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjYyNWMyYzYKLS0tIC9kZXYvbnVsbAorKysgYi8wMDA3LXRvb256cmxl LXJtLnBhdGNoCkBAIC0wLDAgKzEsMjMgQEAKK0Zyb20gZDJhZjgwMWVmZDk3MjljMjYzZDEyMmY4 NmEzNDY0ZGIwZjZmZjVkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERpZWdvIEhl cnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+CitEYXRlOiBNb24sIDI3IEp1bCAyMDI2IDE2OjU3 OjI0IC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggNy85XSB0b29uenJsZSBybQorCisKK2RpZmYgLS1n aXQgYS90b29uei9zb3VyY2VzL2ltYWdlL0NNYWtlTGlzdHMudHh0IGIvdG9vbnovc291cmNlcy9p bWFnZS9DTWFrZUxpc3RzLnR4dAoraW5kZXggZDZjYTBiNWMxLi40NDIwZjFjZjEgMTAwNjQ0Cist LS0gYS90b29uei9zb3VyY2VzL2ltYWdlL0NNYWtlTGlzdHMudHh0CisrKysgYi90b29uei9zb3Vy Y2VzL2ltYWdlL0NNYWtlTGlzdHMudHh0CitAQCAtNzQsNyArNzQsOCBAQCBpZihOT1QgQlVJTERf VEFSR0VUX0JTRCkKKyAgICAgICAgIHRpZi90aWlvX3RpZi5jcHAKKyAgICAgICAgIHR6cC90aWlv X3BsdC5jcHAKKyAgICAgICAgIHR6cC90aWlvX3R6cC5jcHAKKy0gICAgICAgIHR6cC90b29uenJs ZS5jcHAKKysgICAgICAgICMgUmVtb3ZlZCBzaW5jZSBpdCByZXF1aXJlcyBsaWJ0aWZmIGludGVy bmFsIEFQSSBhY2Nlc3MuCisrICAgICAgICAjIHR6cC90b29uenJsZS5jcHAKKyAgICAgICAgIHR6 cC9hdmwuYworICAgICApCisgZW5kaWYoKQorLS0gCisyLjU1LjAKKwoKZGlmZiAtLWdpdCBhLzAw MDgtdHpwLXRpZmZpb3AtZml4LnBhdGNoIGIvMDAwOC10enAtdGlmZmlvcC1maXgucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTIyZDhiZgotLS0gL2Rldi9udWxsCisr KyBiLzAwMDgtdHpwLXRpZmZpb3AtZml4LnBhdGNoCkBAIC0wLDAgKzEsNDIgQEAKK0Zyb20gMmQ4 MzE4MWE1YmNiYmIyMDdmYjVkODM3NzAxMWVkNTNhM2M4ZmM1YyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKK0Zyb206IERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+CitEYXRlOiBN b24sIDI3IEp1bCAyMDI2IDE2OjU3OjQwIC0wNDAwCitTdWJqZWN0OiBbUEFUQ0ggOC85XSB0enAg dGlmZmlvcCBmaXgKKworCitkaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy9pbWFnZS90enAvdGlp b190enAuY3BwIGIvdG9vbnovc291cmNlcy9pbWFnZS90enAvdGlpb190enAuY3BwCitpbmRleCAw ODBmOWJkZjQuLmEyMmY5ZDBmNyAxMDA2NDQKKy0tLSBhL3Rvb256L3NvdXJjZXMvaW1hZ2UvdHpw L3RpaW9fdHpwLmNwcAorKysrIGIvdG9vbnovc291cmNlcy9pbWFnZS90enAvdGlpb190enAuY3Bw CitAQCAtNyw3ICs3LDcgQEAKKyAjaW5jbHVkZSAidGV4Y2VwdGlvbi5oIgorIAorICNpbmNsdWRl ICJ0aWZmaW8uaCIKKy0jaW5jbHVkZSAidGlmZmlvcC5oIgorKy8vICNpbmNsdWRlICJ0aWZmaW9w LmgiCisgLy8gI2luY2x1ZGUgInRzcGVjaWFsc3R5bGVpZC5oIgorICNpbmNsdWRlIDxzZXQ+Cisg CitAQCAtMjI1LDggKzIyNSw3IEBAIHZvaWQgVHpwUmVhZGVyOjpyZWFkTGluZShjaGFyICpidWZm ZXIsIGludCB4MCwgaW50IHgxLCBpbnQgc2hyaW5rKSB7CisgICAgICAgc3RhdGljIHN0ZDo6c2V0 PGludD4gdGFibGU7CisgCisgICAgICAgLy8vIHBlciBsZSB0enAgY2hlIHZlbmdvbm8gZGEgSXJp eAorLSAgICAgIGJvb2wgYmlnRW5kaWFuID0KKy0gICAgICAgICAgKG1fdGlmZi0+dGlmX2hlYWRl ci5jbGFzc2ljLnRpZmZfbWFnaWMgPT0gVElGRl9CSUdFTkRJQU4pOworKyAgICAgIGJvb2wgYmln RW5kaWFuID0gVElGRklzQmlnRW5kaWFuKG1fdGlmZik7CisgCisgICAgICAgZm9yIChpbnQgaSA9 IDA7IGkgPCBtX2x4OyBpKyspIHsKKyAgICAgICAgIHVuc2lnbmVkIHNob3J0IGluUGl4ID0gbGlu ZVtpXTsKK0BAIC0yNTUsOCArMjU0LDcgQEAgdm9pZCBUenBSZWFkZXI6OnJlYWRMaW5lKGNoYXIg KmJ1ZmZlciwgaW50IHgwLCBpbnQgeDEsIGludCBzaHJpbmspIHsKKyAgICAgICBzdGF0aWMgc3Rk OjpzZXQ8aW50PiB0YWJsZTsKKyAKKyAgICAgICAvLy8gcGVyIGxlIHR6cCBjaGUgdmVuZ29ubyBk YSBJcml4CistICAgICAgYm9vbCBiaWdFbmRpYW4gPQorLSAgICAgICAgICAobV90aWZmLT50aWZf aGVhZGVyLmNsYXNzaWMudGlmZl9tYWdpYyA9PSBUSUZGX0JJR0VORElBTik7CisrICAgICAgYm9v bCBiaWdFbmRpYW4gPSBUSUZGSXNCaWdFbmRpYW4obV90aWZmKTsKKyAKKyAgICAgICBmb3IgKGlu dCBpID0gMDsgaSA8IG1fbHg7IGkrKykgeworICAgICAgICAgdW5zaWduZWQgc2hvcnQgaW5QaXgg PSBsaW5lW2ldOworLS0gCisyLjU1LjAKKwoKZGlmZiAtLWdpdCBhLzAwMDktYXBwZGF0YS5wYXRj aCBiLzAwMDktYXBwZGF0YS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li43YmMxYmVlCi0tLSAvZGV2L251bGwKKysrIGIvMDAwOS1hcHBkYXRhLnBhdGNoCkBAIC0wLDAg KzEsMjQgQEAKK0Zyb20gMmVlMGJkZDBhMjRlZWQ0ZTA5Y2I0NDczMDcwMWE4NjgwYjY3MzIzYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJl ZGhhdC5jb20+CitEYXRlOiBNb24sIDI3IEp1bCAyMDI2IDE2OjU4OjMyIC0wNDAwCitTdWJqZWN0 OiBbUEFUQ0ggOS85XSBhcHBkYXRhCisKKworZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMveGRn LWRhdGEvaW8uZ2l0aHViLk9wZW5Ub29uei5hcHBkYXRhLnhtbCBiL3Rvb256L3NvdXJjZXMveGRn LWRhdGEvaW8uZ2l0aHViLk9wZW5Ub29uei5hcHBkYXRhLnhtbAoraW5kZXggMWVhODgyNmVlLi5j Y2I5NGQ1NWUgMTAwNjQ0CistLS0gYS90b29uei9zb3VyY2VzL3hkZy1kYXRhL2lvLmdpdGh1Yi5P cGVuVG9vbnouYXBwZGF0YS54bWwKKysrKyBiL3Rvb256L3NvdXJjZXMveGRnLWRhdGEvaW8uZ2l0 aHViLk9wZW5Ub29uei5hcHBkYXRhLnhtbAorQEAgLTE4LDYgKzE4LDEwIEBACisgICAgICAgRHdh bmdvIGxhdW5jaGVkIHRoZSBPcGVuVG9vbnogcHJvamVjdCBpbiBjb29wZXJhdGlvbgorICAgICAg IHdpdGggRGlnaXRhbCBWaWRlbyBhbmQgU3R1ZGlvIEdoaWJsaS4KKyAgICAgPC9wPgorKyAgICA8 cD4KKysgICAgICBUaGlzIHZlcnNpb24gd2FzIHBhY2thZ2VkIGZvciBGZWRvcmEgdXNpbmcgdGhl IGxhdGVzdCBzdGFibGUgbGlicmFyaWVzCisrICAgICAgYXZhaWxhYmxlIGluIHRoZSBkaXN0cmli dXRpb24sIGluIGV4Y2hhbmdlIHNvbWUgZmVhdHVyZXMgd2VyZSBkaXNhYmxlZC4KKysgICAgPC9w PgorICAgPC9kZXNjcmlwdGlvbj4KKyAgIDx1cmwgdHlwZT0iaG9tZXBhZ2UiPmh0dHBzOi8vb3Bl bnRvb256LmdpdGh1Yi5pby9lLzwvdXJsPgorICAgPHVybCB0eXBlPSJidWd0cmFja2VyIj5odHRw czovL2dpdGh1Yi5jb20vb3BlbnRvb256L29wZW50b29uei9pc3N1ZXM8L3VybD4KKy0tIAorMi41 NS4wCisKCmRpZmYgLS1naXQgYS9jaGFuZ2Vsb2cgYi9jaGFuZ2Vsb2cKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYmZiZTk2ZQotLS0gL2Rldi9udWxsCisrKyBiL2NoYW5nZWxv ZwpAQCAtMCwwICsxLDExOCBAQAorKiBUaHUgSnVsIDE2IDIwMjYgRmVkb3JhIFJlbGVhc2UgRW5n aW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjcuMS0yMQorLSBSZWJ1aWx0 IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQ1X01hc3NfUmVidWls ZAorCisqIFRodSBKYW4gMjkgMjAyNiBOaWNvbGFzIENoYXV2ZXQgPGt3aXphcnRAZ21haWwuY29t PiAtIDEuNy4xLTIwCistIFJlYnVpbHQgZm9yIE9wZW5DViA0LjEzCisKKyogRnJpIEphbiAxNiAy MDI2IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+ IC0gMS43LjEtMTkKKy0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtp L0ZlZG9yYV80NF9NYXNzX1JlYnVpbGQKKworKiBXZWQgRGVjIDEwIDIwMjUgTmljb2xhcyBDaGF1 dmV0IDxrd2l6YXJ0QGdtYWlsLmNvbT4gLSAxLjcuMS0xOAorLSBSZWJ1aWx0IGZvciBPcGVuQ1Yt NC4xMgorCisqIFRodSBKdWwgMjQgMjAyNSBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVs ZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNy4xLTE3CistIFJlYnVpbHQgZm9yIGh0dHBzOi8v ZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDNfTWFzc19SZWJ1aWxkCisKKyogVHVlIEZl YiAwNCAyMDI1IFPDqXJnaW8gQmFzdG8gPHNlcmdpb0BzZXJqdXguY29tPiAtIDEuNy4xLTE2Cist IFJlYnVpbGQgZm9yIG9wZW5jdi00LjExLjAKKworKiBNb24gRmViIDMgMjAyNSBEaWVnbyBIZXJy ZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjcuMS0xNQorLSBGaXggYW1iaWd1b3NseSBkZWZp bmVkIGZ1bmN0aW9uIHBvaW50ZXJzCisKKyogRnJpIEphbiAxNyAyMDI1IEZlZG9yYSBSZWxlYXNl IEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS43LjEtMTQKKy0gUmVi dWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80Ml9NYXNzX1Jl YnVpbGQKKworKiBTdW4gU2VwIDA4IDIwMjQgQW50b25pbyBUcmFuZGUgPHNhZ2l0dGVyQGZlZG9y YXByb2plY3Qub3JnPiAxLjcuMS0xMworLSBSZWJ1aWxkIGZvciBTdXBlckxVLTcuMC4wCisKKyog TW9uIFNlcCAwMiAyMDI0IE1pcm9zbGF2IFN1Y2jDvSA8bXN1Y2h5QHJlZGhhdC5jb20+IC0gMS43 LjEtMTIKKy0gY29udmVydCBsaWNlbnNlIHRvIFNQRFgKKworKiBUaHUgSnVsIDI1IDIwMjQgU8Op cmdpbyBCYXN0byA8c2VyZ2lvQHNlcmp1eC5jb20+IC0gMS43LjEtMTEKKy0gUmVidWlsZCBmb3Ig b3BlbmN2IDQuMTAuMAorCisqIFRodSBKdWwgMTggMjAyNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVl cmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNy4xLTEwCistIFJlYnVpbHQgZm9y IGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDFfTWFzc19SZWJ1aWxkCisK KyogVHVlIEZlYiAwNiAyMDI0IEZyYW50acWhZWsgWmF0bG91a2FsIDxmemF0bG91a0ByZWRoYXQu Y29tPiAtIDEuNy4xLTkKKy0gUmVidWlsdCBmb3IgdHVyYm9qcGVnIDMuMC4yCisKKyogTW9uIEZl YiAwNSAyMDI0IFPDqXJnaW8gQmFzdG8gPHNlcmdpb0BzZXJqdXguY29tPiAtIDEuNy4xLTgKKy0g UmVidWlsZCBmb3Igb3BlbmN2IDQuOS4wCisKKyogVGh1IEZlYiAxIDIwMjQgRGllZ28gSGVycmVy YSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS43LjEtNworLSBGaXggZm9yIGtpc3NmZnQtdjEzMS4x LjAKKy0gRml4IGZvciB0aW55ZXhyLXYxLjAuNworCisqIFRodSBKYW4gMjUgMjAyNCBGZWRvcmEg UmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNy4xLTYK Ky0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MF9N YXNzX1JlYnVpbGQKKworKiBTdW4gSmFuIDIxIDIwMjQgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJp bmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjcuMS01CistIFJlYnVpbHQgZm9yIGh0 dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDBfTWFzc19SZWJ1aWxkCisKKyog TW9uIEF1ZyAwNyAyMDIzIFPDqXJnaW8gQmFzdG8gPHNlcmdpb0BzZXJqdXguY29tPiAtIDEuNy4x LTQKKy0gUmVidWlsZCBmb3Igb3BlbmN2IDQuOC4wCisKKyogVGh1IEp1bCAyMCAyMDIzIEZlZG9y YSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS43LjEt MworLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzM5 X01hc3NfUmVidWlsZAorCisqIFNhdCBKdWwgMTUgMjAyMyBBbnRvbmlvIFRyYW5kZSA8c2FnaXR0 ZXJAZmVkb3JhcHJvamVjdC5vcmc+IDEuNy4xLTIKKy0gUmVidWlsZCBmb3IgU3VwZXJMVS02LjAu MAorCisqIFR1ZSBKdW4gMjAgMjAyMyBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29t PiAxLjcuMS0xCistIFVwZGF0ZWQgdG8gMS43LjEKKy0gVXBkYXRlIHBhY2thZ2UgZGVzY3JpcHRp b24KKworKiBXZWQgTWF5IDEwIDIwMjMgRGllZ28gSGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNv bT4gMS43LjAtMQorLSBVcGRhdGVkIHRvIDEuNy4wCisKKyogTW9uIEZlYiA2IDIwMjMgRGllZ28g SGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS42LjAtMTEKKy0gRml4IHNpemVfdCByZWRl ZmluaXRpb24gaXNzdWUgb24gdGdjOjpoYXNoIGNsYXNzLgorCisqIFRodSBKYW4gMTkgMjAyMyBG ZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEu Ni4wLTEwCistIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRv cmFfMzhfTWFzc19SZWJ1aWxkCisKKyogTW9uIEphbiAxNiAyMDIzIFPDqXJnaW8gQmFzdG8gPHNl cmdpb0BzZXJqdXguY29tPiAtIDEuNi4wLTkKKy0gUmVidWlsZCBmb3Igb3BlbmN2IDQuNy4wCisK KyogV2VkIE5vdiAyIDIwMjIgRGllZ28gSGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS42 LjAtOAorLSBFeHBvc2Ugc3RhdGljIGxpYnJhcnkgZGVwZW5kZW5jeQorCisqIFRodSBBdWcgMjUg MjAyMiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjYuMC03CistIE1ha2Ug ZXhyIHBhdGNoIGNvbXBhdGlibGUgd2l0aCB1cHN0cmVhbQorCisqIFRodSBBdWcgMjUgMjAyMiBE aWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjYuMC02CistIEZpeCBleHIgbGlu a2luZyBwcm9ibGVtcworCisqIFRodSBBdWcgMjUgMjAyMiBJw7Fha2kgw5pjYXIgPGl1Y2FyQGZl ZG9yYXByb2plY3Qub3JnPiAtIDEuNi4wLTUKKy0gQWRoZXJlIHRvIEJMQVMvTEFQQUNLIGd1aWRl bGluZXMKKworKiBGcmkgSnVsIDIyIDIwMjIgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJl bGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjYuMC00CistIFJlYnVpbHQgZm9yIGh0dHBzOi8v ZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzdfTWFzc19SZWJ1aWxkCisKKyogVHVlIEp1 biAyMSAyMDIyIFPDqXJnaW8gQmFzdG8gPHNlcmdpb0BzZXJqdXguY29tPiAtIDEuNi4wLTMKKy0g UmVidWlsdCBmb3Igb3BlbmN2IDQuNi4wCisKKyogRnJpIEFwciAyOSAyMDIyIERpZWdvIEhlcnJl cmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNi4wLTIKKy0gRGlzYWJsZSBleHIgZm9ybWF0IGJl Y2F1c2Ugb2YgbGlua2luZyBwcm9ibGVtcworCisqIE1vbiBBcHIgMTggMjAyMiBEaWVnbyBIZXJy ZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjYuMC0xCistIFVwZGF0ZWQgdG8gMS42LjAKKwor KiBXZWQgTWFyIDE2IDIwMjIgRGllZ28gSGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS41 LjAtNQorLSBGaXhlZCBidWlsZCBwcm9ibGVtcyB3aXRoIGNtYWtlCistIGxpYnVzYiByZXRpcmVk IGZyb20gcmF3aGlkZQorCisqIFNhdCBGZWIgNSAyMDIyIERpZWdvIEhlcnJlcmEgPGRoZXJyZXJh QHJlZGhhdC5jb20+IDEuNS4wLTQKKy0gUmVzdG9yZWQgbWV0YWluZm8gCisKKyogRnJpIEZlYiA0 IDIwMjIgRGllZ28gSGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS41LjAtMworLSBBZGRl ZCB2ZXJzaW9uIG1hY3JvIHRvIHRoZSBzb3VyY2UgdXJsIAorCisqIEZyaSBGZWIgNCAyMDIyIERp ZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNS4wLTIKKy0gQWRkZWQgY21ha2Ug bWFjcm9zCistIFVzZWQgZGVza3RvcC1maWxlLXZhbGlkYXRlIGluc3RlYWQgb2YgZGVza3RvcC1m aWxlLWluc3RhbGwKKy0gQ2xlYW5lZCB1cCByZXF1aXJlbWVudHMKKworKiBXZWQgRmViIDIgMjAy MiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjUuMC0xCistIEZpcnN0IGNv bW1pdAoKZGlmZiAtLWdpdCBhL29wZW50b29uei0xLjUuMC1sem8tZml4LnBhdGNoIGIvb3BlbnRv b256LTEuNS4wLWx6by1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0 M2Y5Y2EuLjAwMDAwMDAKLS0tIGEvb3BlbnRvb256LTEuNS4wLWx6by1maXgucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1kaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy9DTWFr ZUxpc3RzLnR4dCBiL3Rvb256L3NvdXJjZXMvQ01ha2VMaXN0cy50eHQKLWluZGV4IDdjZjNkN2M1 Li43MWE1ZDI3ZiAxMDA2NDQKLS0tLSBhL3Rvb256L3NvdXJjZXMvQ01ha2VMaXN0cy50eHQKLSsr KyBiL3Rvb256L3NvdXJjZXMvQ01ha2VMaXN0cy50eHQKLUBAIC02MTQsNyArNjE0LDcgQEAgYWRk X3N1YmRpcmVjdG9yeShpbWFnZSkKLSBhZGRfc3ViZGlyZWN0b3J5KHRvb256cXQpCi0gYWRkX3N1 YmRpcmVjdG9yeSh0bnp0b29scykKLSAKLS1hZGRfc3ViZGlyZWN0b3J5KCR7U0RLUk9PVH0vbHpv L2RyaXZlciBsem9kcml2ZXIpCi0rIyBhZGRfc3ViZGlyZWN0b3J5KCR7U0RLUk9PVH0vbHpvL2Ry aXZlciBsem9kcml2ZXIpCi0gCi0gYWRkX3N1YmRpcmVjdG9yeSh0b29ueikKLSBhZGRfc3ViZGly ZWN0b3J5KHRjbGVhbnVwcGVyKQoKZGlmZiAtLWdpdCBhL29wZW50b29uei0xLjUuMC10aWZmLWZp eC5wYXRjaCBiL29wZW50b29uei0xLjUuMC10aWZmLWZpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggNDQzNDE2Ny4uMDAwMDAwMAotLS0gYS9vcGVudG9vbnotMS41LjAtdGlm Zi1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxOTIgKzAsMCBAQAotZGlmZiAtLWdpdCBh L3Rvb256L2NtYWtlL0ZpbmRUSUZGLmNtYWtlIGIvdG9vbnovY21ha2UvRmluZFRJRkYuY21ha2UK LWluZGV4IGIzZGI1ZmEwLi5iNDMzMmNkOCAxMDA2NDQKLS0tLSBhL3Rvb256L2NtYWtlL0ZpbmRU SUZGLmNtYWtlCi0rKysgYi90b29uei9jbWFrZS9GaW5kVElGRi5jbWFrZQotQEAgLTMsMjggKzMs MTIgQEAgZmluZF9wYXRoKAotICAgICBUSUZGX0lOQ0xVREVfRElSCi0gICAgIE5BTUVTCi0gICAg ICAgICB0aWZmaW8uaAotLSAgICBISU5UUwotLSAgICAgICAgJHtTREtST09UfQotLSAgICBQQVRI X1NVRkZJWEVTCi0tICAgICAgICB0aWZmLTQuMC4zL2xpYnRpZmYvCi0tIyBpZiBtb25vIG9yIGFu b3RoZXIgZnJhbWV3b3JrIHdpdGggYSB0aWYgbGlicmFyeQotLSMgaXMgaW5zdGFsbGVkLCBpZ25v cmUgaXQuCi0taWYoQlVJTERfRU5WX0FQUExFKQotLSAgICBOT19ERUZBVUxUX1BBVEgKLS0gICAg Tk9fQ01BS0VfRU5WSVJPTk1FTlRQQVRICi0tICAgIE5PX0NNQUtFX1BBVEgKLS1lbmRpZigpCi0g KQotIAotIGZpbmRfbGlicmFyeSgKLSAgICAgVElGRl9MSUJSQVJZCi0gICAgIE5BTUVTCi0tICAg ICAgICBsaWJ0aWZmLmEKLS0gICAgSElOVFMKLS0gICAgICAgICR7U0RLUk9PVH0KLS0gICAgUEFU SF9TVUZGSVhFUwotLSAgICAgICAgdGlmZi00LjAuMy9saWJ0aWZmLy5saWJzCi0tICAgIE5PX0RF RkFVTFRfUEFUSAotKyAgICAgICAgbGlidGlmZi5zbwotICkKLSAKLSBtZXNzYWdlKCIqKioqKiBs aWJ0aWZmIEhlYWRlciBwYXRoOiIgJHtUSUZGX0lOQ0xVREVfRElSfSkKLWRpZmYgLS1naXQgYS90 b29uei9zb3VyY2VzL2ltYWdlL3RpZi90aWlvX3RpZi5jcHAgYi90b29uei9zb3VyY2VzL2ltYWdl L3RpZi90aWlvX3RpZi5jcHAKLWluZGV4IDU5MGYwYmZmLi4xMzg1NjQyZCAxMDA2NDQKLS0tLSBh L3Rvb256L3NvdXJjZXMvaW1hZ2UvdGlmL3RpaW9fdGlmLmNwcAotKysrIGIvdG9vbnovc291cmNl cy9pbWFnZS90aWYvdGlpb190aWYuY3BwCi1AQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6Ci0gCi0g ICBpbnQgc2tpcExpbmVzKGludCBsaW5lQ291bnQpIG92ZXJyaWRlOwotICAgdm9pZCByZWFkTGlu ZShjaGFyICpidWZmZXIsIGludCB4MCwgaW50IHgxLCBpbnQgc2hyaW5rKSBvdmVycmlkZTsKLS0g IHZvaWQgcmVhZExpbmUoc2hvcnQgKmJ1ZmZlciwgaW50IHgwLCBpbnQgeDEsIGludCBzaHJpbmsp IG92ZXJyaWRlOwotIH07Ci0gCi0gLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUBAIC00MjIsMTQ1ICs0MjEsOSBAQCBpbnQgVGlm UmVhZGVyOjpza2lwTGluZXMoaW50IGxpbmVDb3VudCkgewotIAotICNpbmNsdWRlICJ0aW1hZ2Vf aW8uaCIKLSAKLS12b2lkIFRpZlJlYWRlcjo6cmVhZExpbmUoc2hvcnQgKmJ1ZmZlciwgaW50IHgw LCBpbnQgeDEsIGludCBzaHJpbmspIHsKLS0gIGFzc2VydChzaHJpbmsgPiAwKTsKLS0KLS0gIGNv bnN0IGludCBwaXhlbFNpemUgPSA4OwotLSAgaW50IHN0cmlwUm93U2l6ZSAgICA9IG1fcm93TGVu Z3RoICogcGl4ZWxTaXplOwotLQotLSAgaWYgKG1fcm93IDwgbV9pbmZvLm1feTAgfHwgbV9yb3cg PiBtX2luZm8ubV95MSkgewotLSAgICBtZW1zZXQoYnVmZmVyLCAwLCAoeDEgLSB4MCArIDEpICog cGl4ZWxTaXplKTsKLS0gICAgbV9yb3crKzsKLS0gICAgcmV0dXJuOwotLSAgfQotLQotLSAgaW50 IHN0cmlwSW5kZXggPSBtX3JvdyAvIG1fcm93c1BlclN0cmlwOwotLSAgaWYgKG1fc3RyaXBJbmRl eCAhPSBzdHJpcEluZGV4KSB7Ci0tICAgIC8vIFJldHJpZXZlIHRoZSBzdHJpcCBob2xkaW5nIGN1 cnJlbnQgcm93LiBQbGVhc2UsIG9ic2VydmUgdGhhdAotLSAgICAvLyBUSUZGIGZ1bmN0aW9ucyB3 aWxsIHJldHVybiB0aGUgc3RyaXAgYnVmZmVyIGluIHRoZSBCT1RUT00tVVAgb3JpZW50YXRpb24s Ci0tICAgIC8vIG5vIG1hdHRlciB0aGUgaW50ZXJuYWwgdGlmJ3Mgb3JpZW50YXRpb24gc3RvcmFn ZQotLQotLSAgICBtX3N0cmlwSW5kZXggPSBzdHJpcEluZGV4OwotLQotLSAgICBpZiAoVElGRklz VGlsZWQobV90aWZmKSkgewotLSAgICAgIC8vIFJldHJpZXZlIHRpbGVzIHNpemUKLS0gICAgICB1 aW50MzIgdGlsZVdpZHRoID0gMCwgdGlsZUhlaWdodCA9IDA7Ci0tICAgICAgVElGRkdldEZpZWxk KG1fdGlmZiwgVElGRlRBR19USUxFV0lEVEgsICZ0aWxlV2lkdGgpOwotLSAgICAgIFRJRkZHZXRG aWVsZChtX3RpZmYsIFRJRkZUQUdfVElMRUxFTkdUSCwgJnRpbGVIZWlnaHQpOwotLSAgICAgIGFz c2VydCh0aWxlV2lkdGggPiAwICYmIHRpbGVIZWlnaHQgPiAwKTsKLS0KLS0gICAgICAvLyBBbGxv Y2F0ZSBhIHN1ZmZpY2llbnQgYnVmZmVyIHRvIHN0b3JlIGEgc2luZ2xlIHRpbGUKLS0gICAgICBp bnQgdGlsZVNpemUgPSB0aWxlV2lkdGggKiB0aWxlSGVpZ2h0OwotLSAgICAgIHN0ZDo6dW5pcXVl X3B0cjx1aW50NjRbXT4gdGlsZShuZXcgdWludDY0W3RpbGVTaXplXSk7Ci0tCi0tICAgICAgaW50 IHggPSAwOwotLSAgICAgIGludCB5ID0gdGlsZUhlaWdodCAqIG1fc3RyaXBJbmRleDsKLS0KLS0g ICAgICAvLyBJbiBjYXNlIGl0J3MgdGhlIGxhc3QgdGlsZXMgcm93LCB0aGUgdGlsZSBzaXplIG1p Z2h0IGV4Y2VlZCB0aGUgaW1hZ2UKLS0gICAgICAvLyBib3VuZHMKLS0gICAgICBpbnQgbGFzdFR5 ID0gc3RkOjptaW4oKGludCl0aWxlSGVpZ2h0LCBtX2luZm8ubV9seSAtIHkpOwotLQotLSAgICAg IC8vIFRyYXZlcnNlIHRoZSB0aWxlcyByb3cKLS0gICAgICB3aGlsZSAoeCA8IG1faW5mby5tX2x4 KSB7Ci0tICAgICAgICBpbnQgcmV0ID0gVElGRlJlYWRSR0JBVGlsZV82NChtX3RpZmYsIHgsIHks IHRpbGUuZ2V0KCkpOwotLSAgICAgICAgYXNzZXJ0KHJldCk7Ci0tCi0tICAgICAgICBpbnQgdGls ZVJvd1NpemUgPSBzdGQ6Om1pbigoaW50KXRpbGVXaWR0aCwgbV9pbmZvLm1fbHggLSB4KSAqIHBp eGVsU2l6ZTsKLS0KLS0gICAgICAgIC8vIENvcHkgdGhlIHRpbGUgcm93cyBpbiB0aGUgY29ycmVz cG9uZGluZyBvdXRwdXQgc3RyaXAgcm93cwotLSAgICAgICAgZm9yIChpbnQgdHkgPSAwOyB0eSA8 IGxhc3RUeTsgKyt0eSkgewotLSAgICAgICAgICBtZW1jcHkobV9zdHJpcEJ1ZmZlciArICh0eSAq IG1fcm93TGVuZ3RoICsgeCkgKiBwaXhlbFNpemUsCi0tICAgICAgICAgICAgICAgICAoVUNIQVIg Kil0aWxlLmdldCgpICsgdHkgKiB0aWxlV2lkdGggKiBwaXhlbFNpemUsIHRpbGVSb3dTaXplKTsK LS0gICAgICAgIH0KLS0KLS0gICAgICAgIHggKz0gdGlsZVdpZHRoOwotLSAgICAgIH0KLS0gICAg fSBlbHNlIHsKLS0gICAgICBpbnQgeSAgPSBtX3Jvd3NQZXJTdHJpcCAqIG1fc3RyaXBJbmRleDsK LS0gICAgICBpbnQgb2sgPSBUSUZGUmVhZFJHQkFTdHJpcF82NChtX3RpZmYsIHksICh1aW50NjQg KiltX3N0cmlwQnVmZmVyKTsKLS0gICAgICBhc3NlcnQob2spOwotLSAgICB9Ci0tICB9Ci0tCi0t ICB1aW50MTYgb3JpZW50ID0gT1JJRU5UQVRJT05fVE9QTEVGVDsKLS0gIFRJRkZHZXRGaWVsZCht X3RpZmYsIFRJRkZUQUdfT1JJRU5UQVRJT04sICZvcmllbnQpOwotLQotLSAgaW50IHIgPSBtX3Jv d3NQZXJTdHJpcCAtIDEgLSAobV9yb3cgJSBtX3Jvd3NQZXJTdHJpcCk7Ci0tICBzd2l0Y2ggKG9y aWVudCkgIC8vIFByZXR0eSB3ZWFrIGNoZWNrIGZvciB0b3AvYm90dG9tIG9yaWVudGF0aW9uCi0t ICB7Ci0tICBjYXNlIE9SSUVOVEFUSU9OX1RPUExFRlQ6Ci0tICBjYXNlIE9SSUVOVEFUSU9OX1RP UFJJR0hUOgotLSAgY2FzZSBPUklFTlRBVElPTl9MRUZUVE9QOgotLSAgY2FzZSBPUklFTlRBVElP Tl9SSUdIVFRPUDoKLS0gICAgLy8gV2UgaGF2ZSB0byBpbnZlcnQgdGhlIGZpeGVkIEJPVFRPTS1V UCByZXR1cm5lZCBieSBUSUZGIGZ1bmN0aW9ucyAtIHNpbmNlCi0tICAgIC8vIHRoaXMgZnVuY3Rp b24gaXMKLS0gICAgLy8gc3VwcG9zZWQgdG8gaWdub3JlIG9yaWVudGF0aW9uIGlzc3VlcyAod2hp Y2ggYXJlIG1hbmFnZWQgb3V0c2lkZSkuCi0tCi0tICAgIC8vIFRoZSBsYXN0IHRpbGVzIHJvdyB3 aWxsIGFjdHVhbGx5IHN0YXJ0IGF0IHRoZSBFTkQgT0YgVEhFIElNQUdFIChub3QKLS0gICAgLy8g bmVjZXNzYXJpbHkgYXQKLS0gICAgLy8gbV9yb3dzUGVyU3RyaXAgbXVsdGlwbGVzKS4gU28sIHdl IG11c3QgYWRqdXN0IGZvciB0aGF0LgotLQotLSAgICByID0gc3RkOjptaW4obV9yb3dzUGVyU3Ry aXAsIG1faW5mby5tX2x5IC0gbV9yb3dzUGVyU3RyaXAgKiBtX3N0cmlwSW5kZXgpIC0KLS0gICAg ICAgIDEgLSAobV9yb3cgJSBtX3Jvd3NQZXJTdHJpcCk7Ci0tICAgIGJyZWFrOwotLQotLSAgY2Fz ZSBPUklFTlRBVElPTl9CT1RSSUdIVDoKLS0gIGNhc2UgT1JJRU5UQVRJT05fQk9UTEVGVDoKLS0g IGNhc2UgT1JJRU5UQVRJT05fUklHSFRCT1Q6Ci0tICBjYXNlIE9SSUVOVEFUSU9OX0xFRlRCT1Q6 Ci0tICAgIHIgPSBtX3JvdyAlIG1fcm93c1BlclN0cmlwOwotLSAgICBicmVhazsKLS0gIH0KLS0K LS0gIC8vIEZpbmFsbHksIGNvcHkgdGhlIHN0cmlwIHJvdyB0byB0aGUgb3V0cHV0IHJvdyBidWZm ZXIKLS0gIFRQaXhlbDY0ICpwaXggPSAoVFBpeGVsNjQgKilidWZmZXI7Ci0tICBVU0hPUlQgKnYg ICAgID0gKFVTSE9SVCAqKShtX3N0cmlwQnVmZmVyICsgciAqIHN0cmlwUm93U2l6ZSk7Ci0tCi0t ICBwaXggKz0geDA7Ci0tICB2ICs9IDQgKiB4MDsKLS0KLS0gIGludCB3aWR0aCA9Ci0tICAgICAg KHgxIDwgeDApID8gKG1faW5mby5tX2x4IC0gMSkgLyBzaHJpbmsgKyAxIDogKHgxIC0geDApIC8g c2hyaW5rICsgMTsKLS0KLS0gIGZvciAoaW50IGkgPSAwOyBpIDwgd2lkdGg7IGkrKykgewotLSAg ICBVU0hPUlQgYyA9ICp2Kys7Ci0tICAgIHBpeC0+ciAgID0gYzsKLS0gICAgYyAgICAgICAgPSAq disrOwotLSAgICBwaXgtPmcgICA9IGM7Ci0tICAgIGMgICAgICAgID0gKnYrKzsKLS0gICAgcGl4 LT5iICAgPSBjOwotLSAgICBjICAgICAgICA9ICp2Kys7Ci0tICAgIHBpeC0+bSAgID0gYzsKLS0K LS0gICAgcGl4ICs9IHNocmluazsKLS0gICAgdiArPSA0ICogKHNocmluayAtIDEpOwotLSAgfQot LQotLSAgbV9yb3crKzsKLS19Ci0tCi0gLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLSAKLSB2b2lkIFRpZlJlYWRlcjo6cmVh ZExpbmUoY2hhciAqYnVmZmVyLCBpbnQgeDAsIGludCB4MSwgaW50IHNocmluaykgewotLSAgaWYg KHRoaXMtPm1faW5mby5tX2JpdHNQZXJTYW1wbGUgPT0gMTYgJiYKLS0gICAgICB0aGlzLT5tX2lu Zm8ubV9zYW1wbGVQZXJQaXhlbCA+PSAzKSB7Ci0tICAgIHN0ZDo6dmVjdG9yPHNob3J0PiBhcHAo NCAqIChtX2luZm8ubV9seCkpOwotLSAgICByZWFkTGluZSgmYXBwWzBdLCB4MCwgeDEsIHNocmlu ayk7Ci0tCi0tICAgIFRQaXhlbDY0ICpwaXhpbiA9IChUUGl4ZWw2NCAqKSZhcHBbMF07Ci0tCi0t ICAgIFRQaXhlbDMyICpwaXhvdXQgPSAoVFBpeGVsMzIgKilidWZmZXI7Ci0tICAgIGZvciAoaW50 IGogPSAwOyBqIDwgeDA7IGorKykgewotLSAgICAgIHBpeG91dCsrOwotLSAgICAgIHBpeGluKys7 Ci0tICAgIH0KLS0KLS0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCAoeDEgLSB4MCkgKyAxOyBpKysp Ci0tICAgICAgKnBpeG91dCsrID0gUGl4ZWxDb252ZXJ0ZXI8VFBpeGVsMzI+Ojpmcm9tKCpwaXhp bisrKTsKLS0KLS0gICAgcmV0dXJuOwotLSAgfQotLQotICAgYXNzZXJ0KHNocmluayA+IDApOwot IAotICAgY29uc3QgaW50IHBpeGVsU2l6ZSA9IDQ7CgpkaWZmIC0tZ2l0IGEvb3BlbnRvb256LTEu Ny4wLWdldGhvc3RieW5hbWUucGF0Y2ggYi9vcGVudG9vbnotMS43LjAtZ2V0aG9zdGJ5bmFtZS5w YXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzA2ZjU5Zi4uMDAwMDAwMAotLS0g YS9vcGVudG9vbnotMS43LjAtZ2V0aG9zdGJ5bmFtZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDI1NiArMCwwIEBACi1kaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0v dGZhcm10YXNrLmNwcCBiL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtL3RmYXJtdGFzay5j cHAKLWluZGV4IDgzNjI2NmJlLi45ZjljZjhlMiAxMDA2NDQKLS0tLSBhL3Rvb256L3NvdXJjZXMv dG9vbnpmYXJtL3RmYXJtL3RmYXJtdGFzay5jcHAKLSsrKyBiL3Rvb256L3NvdXJjZXMvdG9vbnpm YXJtL3RmYXJtL3RmYXJtdGFzay5jcHAKLUBAIC0yMiwxMyArMjIsMTMgQEAKLSAjZWxpZiBkZWZp bmVkKE1BQ09TWCkKLSAjaW5jbHVkZSAidHZlcnNpb24uaCIKLSB1c2luZyBuYW1lc3BhY2UgVFZF UjsKLS0jaW5jbHVkZSA8bmV0ZGIuaD4gICAgICAvLyBnZXRob3N0YnluYW1lCi0rI2luY2x1ZGUg PG5ldGRiLmg+ICAgICAgLy8gZ2V0YWRkcmluZm8KLSAjaW5jbHVkZSA8YXJwYS9pbmV0Lmg+ICAv LyBpbmV0X250b2EKLSAjZWxzZQotIC8vIHRoZXNlIHdlcmUgaW5jbHVkZWQgZm9yIE9TWCwgaSdt IG5vdCBzdXJlIGlmIHRoZXkgYXJlIHJlcXVpcmVkIGZvciBsaW51eCBvcgotIC8vIG5vdD8gbGVh dmluZyB0aGVtIGluIGFzIGxpbnV4IHdhcyBidWlsZGluZyBzdWNjZXNzZnVsbHkgYWxyZWFkeS4g ZGFtaWVzMTMgLQotIC8vIDIwMTctMDQtMTUuCi0tI2luY2x1ZGUgPG5ldGRiLmg+ICAgICAgLy8g Z2V0aG9zdGJ5bmFtZQotKyNpbmNsdWRlIDxuZXRkYi5oPiAgICAgIC8vIGdldGFkZHJpbmZvCi0g I2luY2x1ZGUgPGFycGEvaW5ldC5oPiAgLy8gaW5ldF9udG9hCi0gI2VuZGlmCi0gCi1AQCAtNDg4 LDYgKzQ4OCwxMSBAQCBRU3RyaW5nIFRGYXJtVGFzazo6Z2V0Q29tbWFuZExpbmVQcmdOYW1lKCkg Y29uc3QgewotIFFTdHJpbmcgVEZhcm1UYXNrOjpnZXRDb21tYW5kTGluZUFyZ3VtZW50cygpIGNv bnN0IHsKLSAgIFFTdHJpbmcgY21kbGluZSA9ICIiOwotIAotKyAgc3RydWN0IGFkZHJpbmZvICph aSA9IE5VTEw7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludHM7Ci0rICBtZW1zZXQoJmhpbnRzLCAw LCBzaXplb2Yoc3RydWN0IGFkZHJpbmZvKSk7Ci0rICBoaW50cy5haV9mYW1pbHkgPSBBRl9JTkVU OwotKwotICAgaWYgKCFtX3Rhc2tGaWxlUGF0aC5pc0VtcHR5KCkpCi0gICAgIGNtZGxpbmUgKz0g IiBcIiIgKwotICAgICAgICAgICAgICAgIFFTdHJpbmc6OmZyb21TdGRXU3RyaW5nKAotQEAgLTQ5 NSw5ICs1MDAsMTIgQEAgUVN0cmluZyBURmFybVRhc2s6OmdldENvbW1hbmRMaW5lQXJndW1lbnRz KCkgY29uc3QgewotICAgICAgICAgICAgICAgICJcIiI7Ci0gCi0gICBpZiAobV9jYWxsZXJNYWNo aW5lTmFtZSAhPSAiIikgewotLSAgICBzdHJ1Y3QgaG9zdGVudCAqaGUgPSBnZXRob3N0YnluYW1l KG1fY2FsbGVyTWFjaGluZU5hbWUudG9MYXRpbjEoKSk7Ci0tICAgIGlmIChoZSkgewotLSAgICAg IGNoYXIgKmlwQWRkcmVzcyA9IGluZXRfbnRvYSgqKHN0cnVjdCBpbl9hZGRyICopKihoZS0+aF9h ZGRyX2xpc3QpKTsKLSsgICAgaW50IHN1YyA9IGdldGFkZHJpbmZvKG1fY2FsbGVyTWFjaGluZU5h bWUudG9MYXRpbjEoKSwgTlVMTCwgJmhpbnRzLCAmYWkpOwotKyAgICBpZiAoc3VjID09IDApIHsK LSsgICAgICBzdHJ1Y3Qgc29ja2FkZHJfaW4gKmFpX2FkZHI7Ci0rICAgICAgYWlfYWRkciA9IChz dHJ1Y3Qgc29ja2FkZHJfaW4gKilhaS0+YWlfYWRkcjsKLSsKLSsgICAgICBjaGFyICppcEFkZHJl c3MgPSBpbmV0X250b2EoKHN0cnVjdCBpbl9hZGRyKWFpX2FkZHItPnNpbl9hZGRyKTsKLSAgICAg ICBjbWRsaW5lICs9ICIgLXRtc2cgIiArIFFTdHJpbmc6OmZyb21VdGY4KGlwQWRkcmVzcyk7Ci0g ICAgIH0KLSAgIH0KLWRpZmYgLS1naXQgYS90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybS90 c2VydmVycHJveHkuY3BwIGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHNlcnZlcnBy b3h5LmNwcAotaW5kZXggMDM1Mjk2YzEuLjJlZTRiYTk1IDEwMDY0NAotLS0tIGEvdG9vbnovc291 cmNlcy90b29uemZhcm0vdGZhcm0vdHNlcnZlcnByb3h5LmNwcAotKysrIGIvdG9vbnovc291cmNl cy90b29uemZhcm0vdGZhcm0vdHNlcnZlcnByb3h5LmNwcAotQEAgLTI4LDE2ICsyOCwyMyBAQCBl bnVtIHsKLSAvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0gCi0gaW50IGFza1NlcnZlcihzdHJpbmcg aG9zdE5hbWUsIGludCBwb3J0SWQsIHN0cmluZyBxdWVzdGlvbiwgc3RyaW5nICZhbnN3ZXIpIHsK LS0gIHN0cnVjdCBob3N0ZW50ICpoZSA9IGdldGhvc3RieW5hbWUoaG9zdE5hbWUuY19zdHIoKSk7 Ci0tICBpZiAoIWhlKSByZXR1cm4gSE9TVF9VTktOT1dOOwotLQotKyAgc3RydWN0IGFkZHJpbmZv ICphaSA9IE5VTEw7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludHM7Ci0rICBtZW1zZXQoJmhpbnRz LCAwLCBzaXplb2Yoc3RydWN0IGFkZHJpbmZvKSk7Ci0rICBoaW50cy5haV9mYW1pbHkgPSBBRl9J TkVUOwotKwotKyAgaW50IHN1YyA9IGdldGFkZHJpbmZvKGhvc3ROYW1lLmNfc3RyKCksIE5VTEws ICZoaW50cywgJmFpKTsKLSsgIGlmIChzdWMgIT0gMCkgcmV0dXJuIEhPU1RfVU5LTk9XTjsKLSsg Ci0gICBpbnQgc29ja2V0X2lkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKLS0K LSsgIHN0cnVjdCBzb2NrYWRkcl9pbiAqYWlfYWRkcjsKLSsgIGFpX2FkZHIgPSAoc3RydWN0IHNv Y2thZGRyX2luICopYWktPmFpX2FkZHI7Ci0rIAotICAgc3RydWN0IHNvY2thZGRyX2luIGFkZHI7 Ci0gICBtZW1zZXQoKGNoYXIgKikmYWRkciwgMCwgc2l6ZW9mIGFkZHIpOwotLSAgYWRkci5zaW5f ZmFtaWx5ID0gaGUtPmhfYWRkcnR5cGU7Ci0tICBhZGRyLnNpbl9wb3J0ICAgPSBodG9ucyhwb3J0 SWQpOwotLSAgbWVtY3B5KChjaGFyICopJihhZGRyLnNpbl9hZGRyKSwgaGUtPmhfYWRkciwgaGUt PmhfbGVuZ3RoKTsKLSsgIGFkZHIuc2luX2ZhbWlseSA9IGFpX2FkZHItPnNpbl9mYW1pbHk7Ci0r ICBhZGRyLnNpbl9wb3J0ICAgPSBodG9ucyhwb3J0KTsKLSsgIGFkZHIuc2luX2FkZHIgPSBhaV9h ZGRyLT5zaW5fYWRkcjsKLSAKLSAgIGludCByY0Nvbm5lY3QgPSBjb25uZWN0KHNvY2tldF9pZCwg KHN0cnVjdCBzb2NrYWRkciAqKSYoYWRkciksIHNpemVvZiBhZGRyKTsKLSAgIGlmIChyY0Nvbm5l Y3QgPT0gU09DS0VUX0VSUk9SKSByZXR1cm4gQ09OTkVDVElPTl9GQUlMRUQ7Ci1AQCAtODIsMTYg Kzg5LDIzIEBAIFRTZXJ2ZXJQcm94eTo6flRTZXJ2ZXJQcm94eSgpIHsKLSAvLy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0gCi0gYm9vbCBUU2VydmVyUHJveHk6OnRlc3RDb25uZWN0aW9uKCkgY29uc3Qg ewotLSAgc3RydWN0IGhvc3RlbnQgKmhlID0gZ2V0aG9zdGJ5bmFtZShtX2hvc3ROYW1lLmNfc3Ry KCkpOwotLSAgaWYgKCFoZSkgcmV0dXJuIGZhbHNlOwotLQotKyAgYWRkcmluZm8gKmFpID0gTlVM TDsKLSsgIHN0cnVjdCBhZGRyaW5mbyBoaW50czsKLSsgIG1lbXNldCgmaGludHMsIDAsIHNpemVv ZihzdHJ1Y3QgYWRkcmluZm8pKTsKLSsgIGhpbnRzLmFpX2ZhbWlseSA9IEFGX0lORVQ7Ci0rCi0r ICBpbnQgc3VjID0gZ2V0YWRkcmluZm8obV9ob3N0TmFtZS5jX3N0cigpLCBOVUxMLCAmaGludHMs ICZhaSk7Ci0rICBpZiAoc3VjICE9IDApIHJldHVybiBmYWxzZTsKLSsgCi0gICBpbnQgc29ja2V0 X2lkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsKLSsgIHN0cnVjdCBzb2NrYWRk cl9pbiAqYWlfYWRkcjsKLSsgIGFpX2FkZHIgPSAoc3RydWN0IHNvY2thZGRyX2luICopYWktPmFp X2FkZHI7Ci0gCi0gICBzdHJ1Y3Qgc29ja2FkZHJfaW4gYWRkcjsKLSAgIG1lbXNldCgoY2hhciAq KSZhZGRyLCAwLCBzaXplb2YgYWRkcik7Ci0tICBhZGRyLnNpbl9mYW1pbHkgPSBoZS0+aF9hZGRy dHlwZTsKLS0gIGFkZHIuc2luX3BvcnQgICA9IGh0b25zKG1fcG9ydElkKTsKLS0gIG1lbWNweSgo Y2hhciAqKSYoYWRkci5zaW5fYWRkciksIGhlLT5oX2FkZHIsIGhlLT5oX2xlbmd0aCk7Ci0rICBh ZGRyLnNpbl9mYW1pbHkgPSBhaV9hZGRyLT5zaW5fZmFtaWx5OwotKyAgYWRkci5zaW5fcG9ydCAg ID0gaHRvbnMocG9ydCk7Ci0rICBhZGRyLnNpbl9hZGRyID0gYWlfYWRkci0+c2luX2FkZHI7Ci0g Ci0gICBib29sIHJldCA9IChTT0NLRVRfRVJST1IgIT0KLSAgICAgICAgICAgICAgIGNvbm5lY3Qo c29ja2V0X2lkLCAoc3RydWN0IHNvY2thZGRyICopJihhZGRyKSwgc2l6ZW9mIGFkZHIpKTsKLWRp ZmYgLS1naXQgYS90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybS90dGNwaXBjbGllbnQuY3Bw IGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm0vdHRjcGlwY2xpZW50LmNwcAotaW5kZXgg ZjhhNzY0NTAuLjg5NjcxZGU4IDEwMDY0NAotLS0tIGEvdG9vbnovc291cmNlcy90b29uemZhcm0v dGZhcm0vdHRjcGlwY2xpZW50LmNwcAotKysrIGIvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZh cm0vdHRjcGlwY2xpZW50LmNwcAotQEAgLTQ5LDggKzQ5LDEzIEBAIGludCBUVGNwSXBDbGllbnQ6 OmNvbm5lY3QoY29uc3QgUVN0cmluZyAmaG9zdE5hbWUsIGNvbnN0IFFTdHJpbmcgJmFkZHJTdHIs Ci0gICAgICAgdW5zaWduZWQgbG9uZyBpcEFkZHIgPSBpbmV0X2FkZHIoYWRkclN0ci5jX3N0cigp KTsKLSAgICAgfQotICAgKi8KLS0gIHN0cnVjdCBob3N0ZW50ICpoZSA9IGdldGhvc3RieW5hbWUo aG9zdE5hbWUudG9VdGY4KCkpOwotLSAgaWYgKCFoZSkgewotKyAgc3RydWN0IGFkZHJpbmZvICph aSA9IE5VTEw7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludHM7Ci0rICBtZW1zZXQoJmhpbnRzLCAw LCBzaXplb2Yoc3RydWN0IGFkZHJpbmZvKSk7Ci0rICBoaW50cy5haV9mYW1pbHkgPSBBRl9JTkVU OwotKwotKyAgaW50IHN1YyA9IGdldGFkZHJpbmZvKGhvc3ROYW1lLnRvVXRmOCgpLCBOVUxMLCAm aGludHMsICZhaSk7Ci0rICBpZiAoc3VjICE9IDApIHsKLSAjaWZkZWYgX1dJTjMyCi0gICAgIGlu dCBlcnIgPSBXU0FHZXRMYXN0RXJyb3IoKTsKLSAjZWxzZQotQEAgLTU5LDEyICs2NCwxNCBAQCBp bnQgVFRjcElwQ2xpZW50Ojpjb25uZWN0KGNvbnN0IFFTdHJpbmcgJmhvc3ROYW1lLCBjb25zdCBR U3RyaW5nICZhZGRyU3RyLAotICAgfQotIAotICAgaW50IHNvY2tldF9pZCA9IHNvY2tldChBRl9J TkVULCBTT0NLX1NUUkVBTSwgMCk7Ci0rICBzdHJ1Y3Qgc29ja2FkZHJfaW4gKmFpX2FkZHI7Ci0r ICBhaV9hZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFpLT5haV9hZGRyOwotIAotICAgc3Ry dWN0IHNvY2thZGRyX2luIGFkZHI7Ci0gICBtZW1zZXQoKGNoYXIgKikmYWRkciwgMCwgc2l6ZW9m IGFkZHIpOwotLSAgYWRkci5zaW5fZmFtaWx5ID0gaGUtPmhfYWRkcnR5cGU7Ci0rICBhZGRyLnNp bl9mYW1pbHkgPSBhaV9hZGRyLT5zaW5fZmFtaWx5OwotICAgYWRkci5zaW5fcG9ydCAgID0gaHRv bnMocG9ydCk7Ci0tICBtZW1jcHkoKGNoYXIgKikmKGFkZHIuc2luX2FkZHIpLCBoZS0+aF9hZGRy LCBoZS0+aF9sZW5ndGgpOwotKyAgYWRkci5zaW5fYWRkciA9IGFpX2FkZHItPnNpbl9hZGRyOwot IAotICAgaW50IHJjQ29ubmVjdCA9IDo6Y29ubmVjdChzb2NrZXRfaWQsIChzdHJ1Y3Qgc29ja2Fk ZHIgKikmKGFkZHIpLCBzaXplb2YgYWRkcik7Ci0gICBpZiAocmNDb25uZWN0ID09IFNPQ0tFVF9F UlJPUikgewotZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtL3R0Y3Bp cHNlcnZlci5jcHAgYi90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybS90dGNwaXBzZXJ2ZXIu Y3BwCi1pbmRleCBhYzZkZjZlZS4uZDc2MjQyZjYgMTAwNjQ0Ci0tLS0gYS90b29uei9zb3VyY2Vz L3Rvb256ZmFybS90ZmFybS90dGNwaXBzZXJ2ZXIuY3BwCi0rKysgYi90b29uei9zb3VyY2VzL3Rv b256ZmFybS90ZmFybS90dGNwaXBzZXJ2ZXIuY3BwCi1AQCAtNDQ3LDE1ICs0NDcsMjEgQEAgdm9p ZCBUVGNwSXBTZXJ2ZXI6OnNlbmRSZXBseShpbnQgc29ja2V0LCBjb25zdCBRU3RyaW5nICZyZXBs eSkgewotIGludCBlc3RhYmxpc2godW5zaWduZWQgc2hvcnQgcG9ydG51bSwgaW50ICZzb2NrKSB7 Ci0gICBjaGFyIG15bmFtZVtNQVhIT1NUTkFNRSArIDFdOwotICAgc3RydWN0IHNvY2thZGRyX2lu IHNhOwotLSAgc3RydWN0IGhvc3RlbnQgKmhwOwotKyAgc3RydWN0IGFkZHJpbmZvICphaSA9IE5V TEw7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludHM7Ci0rICBtZW1zZXQoJmhpbnRzLCAwLCBzaXpl b2Yoc3RydWN0IGFkZHJpbmZvKSk7Ci0rICBoaW50cy5haV9mYW1pbHkgPSBBRl9JTkVUOwotIAot ICAgbWVtc2V0KCZzYSwgMCwgc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbikpOyAvKiBjbGVhciBv dXIgYWRkcmVzcyAqLwotICAgZ2V0aG9zdG5hbWUobXluYW1lLCBNQVhIT1NUTkFNRSk7ICAgICAg ICAgICAvKiB3aG8gYXJlIHdlPyAqLwotLSAgaHAgPSBnZXRob3N0YnluYW1lKG15bmFtZSk7ICAg ICAgICAgICAgICAgICAvKiBnZXQgb3VyIGFkZHJlc3MgaW5mbyAqLwotLSAgaWYgKGhwID09IE5V TEwpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiB3ZSBkb24ndCBleGlzdCAhPyAqLwot KyAgaW50IHN1YyA9IGdldGFkZHJpbmZvKG15bmFtZSwgTlVMTCwgJmhpbnRzLCAmYWkpOyAvKiBn ZXQgb3VyIGFkZHJlc3MgaW5mbyAqLwotKyAgaWYgKHN1YyAhPSAwKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogd2UgZG9uJ3QgZXhpc3QgIT8gKi8KLSAgICAgcmV0dXJuICgtMSk7Ci0g Ci0tICBzYS5zaW5fZmFtaWx5ID0gaHAtPmhfYWRkcnR5cGU7IC8qIHRoaXMgaXMgb3VyIGhvc3Qg YWRkcmVzcyAqLwotKyAgc3RydWN0IHNvY2thZGRyX2luICphaV9hZGRyOwotKyAgYWlfYWRkciA9 IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilhaS0+YWlfYWRkcjsKLSsKLSsgIHNhLnNpbl9mYW1pbHkg PSBhaV9hZGRyLT5zaW5fZmFtaWx5OyAvKiB0aGlzIGlzIG91ciBob3N0IGFkZHJlc3MgKi8KLSAg IHNhLnNpbl9wb3J0ICAgPSBodG9ucyhwb3J0bnVtKTsgLyogdGhpcyBpcyBvdXIgcG9ydCBudW1i ZXIgKi8KLSAgIGlmICgoc29jayA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCkpIDwg MCkgLyogY3JlYXRlIHNvY2tldCAqLwotICAgewotZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMv dG9vbnpmYXJtL3RmYXJtY29udHJvbGxlci90ZmFybWNvbnRyb2xsZXJfc2h1dGRvd24uY3BwIGIv dG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm1jb250cm9sbGVyL3RmYXJtY29udHJvbGxlcl9z aHV0ZG93bi5jcHAKLWluZGV4IDFlNzAwNWNjLi4zMjA4N2QxOCAxMDA2NDQKLS0tLSBhL3Rvb256 L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtY29udHJvbGxlci90ZmFybWNvbnRyb2xsZXJfc2h1dGRv d24uY3BwCi0rKysgYi90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybWNvbnRyb2xsZXIvdGZh cm1jb250cm9sbGVyX3NodXRkb3duLmNwcAotQEAgLTE2LDIxICsxNiwyOCBAQAotIAotIGludCBj YWxsX3NvY2tldChjaGFyICpob3N0bmFtZSwgdW5zaWduZWQgc2hvcnQgcG9ydG51bSkgewotICAg c3RydWN0IHNvY2thZGRyX2luIHNhOwotLSAgc3RydWN0IGhvc3RlbnQgKmhwOwotKyAgc3RydWN0 IGFkZHJpbmZvICphaSA9IE5VTEw7Ci0rICBzdHJ1Y3QgYWRkcmluZm8gaGludHM7Ci0rICBtZW1z ZXQoJmhpbnRzLCAwLCBzaXplb2Yoc3RydWN0IGFkZHJpbmZvKSk7Ci0rICBoaW50cy5haV9mYW1p bHkgPSBBRl9JTkVUOwotICAgaW50IHM7Ci0gCi0tICBpZiAoKGhwID0gZ2V0aG9zdGJ5bmFtZSho b3N0bmFtZSkpID09IE5VTEwpIC8qIGRvIHdlIGtub3cgdGhlIGhvc3QncyAqLwotKyAgaW50IHN1 YyA9IGdldGFkZHJpbmZvKGhvc3RuYW1lLCBOVUxMLCAmaGludHMsICZhaSk7Ci0rICBpZiAoc3Vj ICE9IDApIC8qIGRvIHdlIGtub3cgdGhlIGhvc3QncyAqLwotICAgewotICAgICBlcnJubyA9IEVD T05OUkVGVVNFRDsgLyogYWRkcmVzcz8gKi8KLSAgICAgcmV0dXJuICgtMSk7ICAgICAgICAgIC8q IG5vICovCi0gICB9Ci0gCi0rICBzdHJ1Y3Qgc29ja2FkZHJfaW4gKmFpX2FkZHI7Ci0rICBhaV9h ZGRyID0gKHN0cnVjdCBzb2NrYWRkcl9pbiAqKWFpLT5haV9hZGRyOwotKwotICAgbWVtc2V0KCZz YSwgMCwgc2l6ZW9mKHNhKSk7Ci0tICBtZW1jcHkoKGNoYXIgKikmc2Euc2luX2FkZHIsIGhwLT5o X2FkZHIsIGhwLT5oX2xlbmd0aCk7IC8qIHNldCBhZGRyZXNzICovCi0tICBzYS5zaW5fZmFtaWx5 ID0gaHAtPmhfYWRkcnR5cGU7Ci0rICBzYS5zaW5fYWRkciA9IGFpX2FkZHItPnNpbl9hZGRyOwot KyAgc2Euc2luX2ZhbWlseSA9IGFpX2FkZHItPnNpbl9mYW1pbHk7Ci0gICBzYS5zaW5fcG9ydCAg ID0gaHRvbnMoKHVfc2hvcnQpcG9ydG51bSk7Ci0gCi0tICBpZiAoKHMgPSBzb2NrZXQoaHAtPmhf YWRkcnR5cGUsIFNPQ0tfU1RSRUFNLCAwKSkgPCAwKSAvKiBnZXQgc29ja2V0ICovCi0rICBpZiAo KHMgPSBzb2NrZXQoYWlfYWRkci0+c2luX2ZhbWlseSwgU09DS19TVFJFQU0sIDApKSA8IDApIC8q IGdldCBzb2NrZXQgKi8KLSAgICAgcmV0dXJuICgtMSk7Ci0gICBpZiAoY29ubmVjdChzLCAoc3Ry dWN0IHNvY2thZGRyICopJnNhLCBzaXplb2Ygc2EpIDwgMCkgLyogY29ubmVjdCAqLwotICAgewot ZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtc2VydmVyL3RmYXJtc2Vy dmVyX3NodXRkb3duLmNwcCBiL3Rvb256L3NvdXJjZXMvdG9vbnpmYXJtL3RmYXJtc2VydmVyL3Rm YXJtc2VydmVyX3NodXRkb3duLmNwcAotaW5kZXggYTNmZjZmYzYuLjdkMjJjNzYwIDEwMDY0NAot LS0tIGEvdG9vbnovc291cmNlcy90b29uemZhcm0vdGZhcm1zZXJ2ZXIvdGZhcm1zZXJ2ZXJfc2h1 dGRvd24uY3BwCi0rKysgYi90b29uei9zb3VyY2VzL3Rvb256ZmFybS90ZmFybXNlcnZlci90ZmFy bXNlcnZlcl9zaHV0ZG93bi5jcHAKLUBAIC0xNiwyMSArMTYsMjggQEAKLSAKLSBpbnQgY2FsbF9z b2NrZXQoY2hhciAqaG9zdG5hbWUsIHVuc2lnbmVkIHNob3J0IHBvcnRudW0pIHsKLSAgIHN0cnVj dCBzb2NrYWRkcl9pbiBzYTsKLS0gIHN0cnVjdCBob3N0ZW50ICpocDsKLSsgIHN0cnVjdCBhZGRy aW5mbyAqYWkgPSBOVUxMOwotKyAgc3RydWN0IGFkZHJpbmZvIGhpbnRzOwotKyAgbWVtc2V0KCZo aW50cywgMCwgc2l6ZW9mKHN0cnVjdCBhZGRyaW5mbykpOwotKyAgaGludHMuYWlfZmFtaWx5ID0g QUZfSU5FVDsKLSAgIGludCBzOwotIAotLSAgaWYgKChocCA9IGdldGhvc3RieW5hbWUoaG9zdG5h bWUpKSA9PSBOVUxMKSAvKiBkbyB3ZSBrbm93IHRoZSBob3N0J3MgKi8KLSsgIGludCBzdWMgPSBn ZXRhZGRyaW5mbyhob3N0bmFtZSwgTlVMTCwgJmhpbnRzLCAmYWkpOwotKyAgaWYgKHN1YyAhPSAw KSAvKiBkbyB3ZSBrbm93IHRoZSBob3N0J3MgKi8KLSAgIHsKLSAgICAgZXJybm8gPSBFQ09OTlJF RlVTRUQ7IC8qIGFkZHJlc3M/ICovCi0gICAgIHJldHVybiAoLTEpOyAgICAgICAgICAvKiBubyAq LwotICAgfQotIAotKyAgc3RydWN0IHNvY2thZGRyX2luICphaV9hZGRyOwotKyAgYWlfYWRkciA9 IChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilhaS0+YWlfYWRkcjsKLSsKLSAgIG1lbXNldCgmc2EsIDAs IHNpemVvZihzYSkpOwotLSAgbWVtY3B5KChjaGFyICopJnNhLnNpbl9hZGRyLCBocC0+aF9hZGRy LCBocC0+aF9sZW5ndGgpOyAvKiBzZXQgYWRkcmVzcyAqLwotLSAgc2Euc2luX2ZhbWlseSA9IGhw LT5oX2FkZHJ0eXBlOwotKyAgc2Euc2luX2FkZHIgPSBhaV9hZGRyLT5zaW5fYWRkcjsKLSsgIHNh LnNpbl9mYW1pbHkgPSBhaV9hZGRyLT5zaW5fZmFtaWx5OwotICAgc2Euc2luX3BvcnQgICA9IGh0 b25zKCh1X3Nob3J0KXBvcnRudW0pOwotIAotLSAgaWYgKChzID0gc29ja2V0KGhwLT5oX2FkZHJ0 eXBlLCBTT0NLX1NUUkVBTSwgMCkpIDwgMCkgLyogZ2V0IHNvY2tldCAqLwotKyAgaWYgKChzID0g c29ja2V0KGFpX2FkZHItPnNpbl9mYW1pbHksIFNPQ0tfU1RSRUFNLCAwKSkgPCAwKSAvKiBnZXQg c29ja2V0ICovCi0gICAgIHJldHVybiAoLTEpOwotICAgaWYgKGNvbm5lY3QocywgKHN0cnVjdCBz b2NrYWRkciAqKSZzYSwgc2l6ZW9mIHNhKSA8IDApIC8qIGNvbm5lY3QgKi8KLSAgIHsKCmRpZmYg LS1naXQgYS9vcGVudG9vbnotMS43LjAtaW5zdGFsbC1wYXRoLWZpeC5wYXRjaCBiL29wZW50b29u ei0xLjcuMC1pbnN0YWxsLXBhdGgtZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAzMjg2ODkwLi4wMDAwMDAwCi0tLSBhL29wZW50b29uei0xLjcuMC1pbnN0YWxsLXBhdGgt Zml4LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3Rv b256L3NvdXJjZXMvdG9vbnovQ01ha2VMaXN0cy50eHQgYi90b29uei9zb3VyY2VzL3Rvb256L0NN YWtlTGlzdHMudHh0Ci1pbmRleCBkM2FlZTQ5MS4uZGRlNjkwNzkgMTAwNjQ0Ci0tLS0gYS90b29u ei9zb3VyY2VzL3Rvb256L0NNYWtlTGlzdHMudHh0Ci0rKysgYi90b29uei9zb3VyY2VzL3Rvb256 L0NNYWtlTGlzdHMudHh0Ci1AQCAtNjYwLDIxICs2NjAsMjAgQEAgZWxzZWlmKEJVSUxEX0VOVl9V TklYTElLRSBBTkQgTk9UIEJVSUxEX1RBUkdFVF9XSU4pCi0gICAgIGluc3RhbGwoCi0gICAgICAg ICBUQVJHRVRTCi0gICAgICAgICAgICAgT3BlblRvb256Ci0tICAgICAgICBERVNUSU5BVElPTiBi aW4KLSsgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2JpbgotICAg ICApCi0gCi0gICAgICMgU2hlbGwgc2NyaXB0IHRoYXQgY29waWVzIGZpbGVzIHRvIHRoZSBob21l IGRpcmVjdG9yeSBhcyBuZWVkZWQKLSAgICAgIyBhbmQgc2V0cyB0aGUgbGlicmFyeSBwcmVsb2Fk IHBhdGguCi0gICAgIGZpbGUoV1JJVEUgJHtDTUFLRV9CSU5BUllfRElSfS9iaW4vb3BlbnRvb256 Ci0gIiMhL2Jpbi9zaAotLU9QRU5UT09OWl9CQVNFPVwkKGRpcm5hbWUgXCJcJDBcIikvLi4KLSAK LSBpZiBbICEgLWQgXCRIT01FLy5jb25maWcvT3BlblRvb256IF07IHRoZW4KLSAgICAgbWtkaXIg LXAgXCRIT01FLy5jb25maWcvT3BlblRvb256Ci0gZmkKLSAKLSBpZiBbICEgLWQgXCRIT01FLy5j b25maWcvT3BlblRvb256L3N0dWZmIF07IHRoZW4KLS0gICAgY3AgLXIgXCRPUEVOVE9PTlpfQkFT RS9zaGFyZS9vcGVudG9vbnovc3R1ZmYgXCRIT01FLy5jb25maWcvT3BlblRvb256Ci0rICAgIGNw IC1yICR7U0hBUkVfSU5TVEFMTF9QUkVGSVh9L29wZW50b29uei9zdHVmZiBcJEhPTUUvLmNvbmZp Zy9PcGVuVG9vbnoKLSBmaQotIAotIGlmIFsgISAtZCBcJEhPTUUvLmNvbmZpZy9PcGVuVG9vbnov c3R1ZmYvcHJvamVjdHMvbGlicmFyeSBdOyB0aGVuCi1AQCAtNzAxLDkgKzcwMCw5IEBAIFRPT05a U1RVRElPUEFMRVRURT1cIlwkSE9NRS8uY29uZmlnL09wZW5Ub29uei9zdHVmZi9zdHVkaW9wYWxl dHRlXCIKLSBFT0YKLSBmaQotIAotLWV4cG9ydCAke1BSRUxPQURfVkFSSUFCTEV9PVwke09QRU5U T09OWl9CQVNFfS9saWIvb3BlbnRvb256OlwkeyR7UFJFTE9BRF9WQVJJQUJMRX19Ci0rZXhwb3J0 ICR7UFJFTE9BRF9WQVJJQUJMRX09JHtMSUJfSU5TVEFMTF9ESVJ9L29wZW50b29uejpcJHske1BS RUxPQURfVkFSSUFCTEV9fQotIAotLWV4ZWMgXCRPUEVOVE9PTlpfQkFTRS9iaW4vT3BlblRvb256 IFwiXCRAXCIKLStleGVjICR7Q01BS0VfSU5TVEFMTF9QUkVGSVh9L2Jpbi9PcGVuVG9vbnogXCJc JEBcIgotICIpCi0gICAgICMgb25seSBuZWVkZWQgZm9yIGV4ZWN1dGluZyB3aXRob3V0IGluc3Rh bGxpbmcKLSAgICAgZXhlY3V0ZV9wcm9jZXNzKENPTU1BTkQgY2htb2QgK3ggJHtDTUFLRV9CSU5B UllfRElSfS9iaW4vb3BlbnRvb256KQotQEAgLTcxNiw3ICs3MTUsNyBAQCBleGVjIFwkT1BFTlRP T05aX0JBU0UvYmluL09wZW5Ub29ueiBcIlwkQFwiCi0gICAgICAgICAgICAgIiQ8VEFSR0VUX0ZJ TEU6dGNvbnZlcnRlcj4iCi0gICAgICAgICAgICAgIiQ8VEFSR0VUX0ZJTEU6dGZhcm1jb250cm9s bGVyPiIKLSAgICAgICAgICAgICAiJDxUQVJHRVRfRklMRTp0ZmFybXNlcnZlcj4iCi0tICAgICAg ICBERVNUSU5BVElPTiBiaW4KLSsgICAgICAgIERFU1RJTkFUSU9OICR7Q01BS0VfSU5TVEFMTF9Q UkVGSVh9L2JpbgotICAgICApCi0gCi0gICAgIGlmKExaT0RSSVZFUl9GT1VORCkKLUBAIC03MjQs NyArNzIzLDcgQEAgZXhlYyBcJE9QRU5UT09OWl9CQVNFL2Jpbi9PcGVuVG9vbnogXCJcJEBcIgot ICAgICAgICAgICAgIFBST0dSQU1TCi0gICAgICAgICAgICAgICAgICIkPFRBUkdFVF9GSUxFOmx6 b2NvbXByZXNzPiIKLSAgICAgICAgICAgICAgICAgIiQ8VEFSR0VUX0ZJTEU6bHpvZGVjb21wcmVz cz4iCi0tICAgICAgICAgICAgREVTVElOQVRJT04gYmluCi0rICAgICAgICAgICAgREVTVElOQVRJ T04gJHtDTUFLRV9JTlNUQUxMX1BSRUZJWH0vYmluCi0gICAgICAgICApCi0gICAgIGVuZGlmKCkK LSAKLUBAIC03NDEsMTMgKzc0MCwxMyBAQCBleGVjIFwkT1BFTlRPT05aX0JBU0UvYmluL09wZW5U b29ueiBcIlwkQFwiCi0gICAgICAgICAgICAgIiQ8VEFSR0VUX0ZJTEU6dG56dG9vbHM+IgotICAg ICAgICAgICAgICIkPFRBUkdFVF9GSUxFOnRuenN0ZGZ4PiIKLSAgICAgICAgICAgICAiJDxUQVJH RVRfRklMRTp0ZmFybT4iCi0tICAgICAgICBERVNUSU5BVElPTiBsaWIvb3BlbnRvb256Ci0rICAg ICAgICBERVNUSU5BVElPTiAke0xJQl9JTlNUQUxMX0RJUn0vb3BlbnRvb256Ci0gICAgICkKLSAK LSAgICAgaW5zdGFsbCgKLSAgICAgICAgIERJUkVDVE9SWQotICAgICAgICAgICAgICR7Q01BS0Vf U09VUkNFX0RJUn0vLi4vLi4vc3R1ZmYKLS0gICAgICAgIERFU1RJTkFUSU9OIHNoYXJlL29wZW50 b29uegotKyAgICAgICAgREVTVElOQVRJT04gJHtTSEFSRV9JTlNUQUxMX1BSRUZJWH0vb3BlbnRv b256Ci0gICAgICkKLSAKLSBlbmRpZigpCgpkaWZmIC0tZ2l0IGEvb3BlbnRvb256LTEuNy4wLXRv b256cmxlLXJtLnBhdGNoIGIvb3BlbnRvb256LTEuNy4wLXRvb256cmxlLXJtLnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNmZiMDVmLi4wMDAwMDAwCi0tLSBhL29wZW50b29u ei0xLjcuMC10b29uenJsZS1ybS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAK LWRpZmYgLS1naXQgYS90b29uei9zb3VyY2VzL2ltYWdlL0NNYWtlTGlzdHMudHh0IGIvdG9vbnov c291cmNlcy9pbWFnZS9DTWFrZUxpc3RzLnR4dAotaW5kZXggODc5NTNjZWQuLmNjZGE5MWRlIDEw MDY0NAotLS0tIGEvdG9vbnovc291cmNlcy9pbWFnZS9DTWFrZUxpc3RzLnR4dAotKysrIGIvdG9v bnovc291cmNlcy9pbWFnZS9DTWFrZUxpc3RzLnR4dAotQEAgLTcyLDcgKzcyLDggQEAgaWYoTk9U IEJVSUxEX1RBUkdFVF9CU0QpCi0gICAgICAgICB0aWYvdGlpb190aWYuY3BwCi0gICAgICAgICB0 enAvdGlpb19wbHQuY3BwCi0gICAgICAgICB0enAvdGlpb190enAuY3BwCi0tICAgICAgICB0enAv dG9vbnpybGUuY3BwCi0rICAgICAgICAjIFJlbW92ZWQgc2luY2UgaXQgcmVxdWlyZXMgbGlidGlm ZiBpbnRlcm5hbCBBUEkgYWNjZXNzLgotKyAgICAgICAgIyB0enAvdG9vbnpybGUuY3BwCi0gICAg ICAgICB0enAvYXZsLmMKLSAgICAgKQotIGVuZGlmKCkKCmRpZmYgLS1naXQgYS9vcGVudG9vbnot MS43LjAtdHpwLXRpZmZpb3AtZml4LnBhdGNoIGIvb3BlbnRvb256LTEuNy4wLXR6cC10aWZmaW9w LWZpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjMzYzNlMS4uMDAwMDAw MAotLS0gYS9vcGVudG9vbnotMS43LjAtdHpwLXRpZmZpb3AtZml4LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMzMgKzAsMCBAQAotZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvaW1hZ2UvdHpw L3RpaW9fdHpwLmNwcCBiL3Rvb256L3NvdXJjZXMvaW1hZ2UvdHpwL3RpaW9fdHpwLmNwcAotaW5k ZXggMDgwZjliZGYuLmEyMmY5ZDBmIDEwMDY0NAotLS0tIGEvdG9vbnovc291cmNlcy9pbWFnZS90 enAvdGlpb190enAuY3BwCi0rKysgYi90b29uei9zb3VyY2VzL2ltYWdlL3R6cC90aWlvX3R6cC5j cHAKLUBAIC03LDcgKzcsNyBAQAotICNpbmNsdWRlICJ0ZXhjZXB0aW9uLmgiCi0gCi0gI2luY2x1 ZGUgInRpZmZpby5oIgotLSNpbmNsdWRlICJ0aWZmaW9wLmgiCi0rLy8gI2luY2x1ZGUgInRpZmZp b3AuaCIKLSAvLyAjaW5jbHVkZSAidHNwZWNpYWxzdHlsZWlkLmgiCi0gI2luY2x1ZGUgPHNldD4K LSAKLUBAIC0yMjUsOCArMjI1LDcgQEAgdm9pZCBUenBSZWFkZXI6OnJlYWRMaW5lKGNoYXIgKmJ1 ZmZlciwgaW50IHgwLCBpbnQgeDEsIGludCBzaHJpbmspIHsKLSAgICAgICBzdGF0aWMgc3RkOjpz ZXQ8aW50PiB0YWJsZTsKLSAKLSAgICAgICAvLy8gcGVyIGxlIHR6cCBjaGUgdmVuZ29ubyBkYSBJ cml4Ci0tICAgICAgYm9vbCBiaWdFbmRpYW4gPQotLSAgICAgICAgICAobV90aWZmLT50aWZfaGVh ZGVyLmNsYXNzaWMudGlmZl9tYWdpYyA9PSBUSUZGX0JJR0VORElBTik7Ci0rICAgICAgYm9vbCBi aWdFbmRpYW4gPSBUSUZGSXNCaWdFbmRpYW4obV90aWZmKTsKLSAKLSAgICAgICBmb3IgKGludCBp ID0gMDsgaSA8IG1fbHg7IGkrKykgewotICAgICAgICAgdW5zaWduZWQgc2hvcnQgaW5QaXggPSBs aW5lW2ldOwotQEAgLTI1NSw4ICsyNTQsNyBAQCB2b2lkIFR6cFJlYWRlcjo6cmVhZExpbmUoY2hh ciAqYnVmZmVyLCBpbnQgeDAsIGludCB4MSwgaW50IHNocmluaykgewotICAgICAgIHN0YXRpYyBz dGQ6OnNldDxpbnQ+IHRhYmxlOwotIAotICAgICAgIC8vLyBwZXIgbGUgdHpwIGNoZSB2ZW5nb25v IGRhIElyaXgKLS0gICAgICBib29sIGJpZ0VuZGlhbiA9Ci0tICAgICAgICAgIChtX3RpZmYtPnRp Zl9oZWFkZXIuY2xhc3NpYy50aWZmX21hZ2ljID09IFRJRkZfQklHRU5ESUFOKTsKLSsgICAgICBi b29sIGJpZ0VuZGlhbiA9IFRJRkZJc0JpZ0VuZGlhbihtX3RpZmYpOwotIAotICAgICAgIGZvciAo aW50IGkgPSAwOyBpIDwgbV9seDsgaSsrKSB7Ci0gICAgICAgICB1bnNpZ25lZCBzaG9ydCBpblBp eCA9IGxpbmVbaV07CgpkaWZmIC0tZ2l0IGEvb3BlbnRvb256LTEuNy4xLWFwcGRhdGEucGF0Y2gg Yi9vcGVudG9vbnotMS43LjEtYXBwZGF0YS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggZDNjMzEyMi4uMDAwMDAwMAotLS0gYS9vcGVudG9vbnotMS43LjEtYXBwZGF0YS5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLWRpZmYgLS1naXQgYS90b29uei9zb3Vy Y2VzL3hkZy1kYXRhL2lvLmdpdGh1Yi5PcGVuVG9vbnouYXBwZGF0YS54bWwgYi90b29uei9zb3Vy Y2VzL3hkZy1kYXRhL2lvLmdpdGh1Yi5PcGVuVG9vbnouYXBwZGF0YS54bWwKLWluZGV4IDRmNjMx YTdlLi43YmZhMWUzOSAxMDA2NDQKLS0tLSBhL3Rvb256L3NvdXJjZXMveGRnLWRhdGEvaW8uZ2l0 aHViLk9wZW5Ub29uei5hcHBkYXRhLnhtbAotKysrIGIvdG9vbnovc291cmNlcy94ZGctZGF0YS9p by5naXRodWIuT3BlblRvb256LmFwcGRhdGEueG1sCi1AQCAtMTgsNiArMTgsMTAgQEAKLSAgICAg ICBEd2FuZ28gbGF1bmNoZWQgdGhlIE9wZW5Ub29ueiBwcm9qZWN0IGluIGNvb3BlcmF0aW9uCi0g ICAgICAgd2l0aCBEaWdpdGFsIFZpZGVvIGFuZCBTdHVkaW8gR2hpYmxpLgotICAgICA8L3A+Ci0r ICAgIDxwPgotKyAgICAgIFRoaXMgdmVyc2lvbiB3YXMgcGFja2FnZWQgZm9yIEZlZG9yYSB1c2lu ZyB0aGUgbGF0ZXN0IHN0YWJsZSBsaWJyYXJpZXMKLSsgICAgICBhdmFpbGFibGUgaW4gdGhlIGRp c3RyaWJ1dGlvbiwgaW4gZXhjaGFuZ2Ugc29tZSBmZWF0dXJlcyB3ZXJlIGRpc2FibGVkLgotKyAg ICA8L3A+Ci0gICA8L2Rlc2NyaXB0aW9uPgotICAgPHVybCB0eXBlPSJob21lcGFnZSI+aHR0cHM6 Ly9vcGVudG9vbnouZ2l0aHViLmlvL2UvPC91cmw+Ci0gICA8dXJsIHR5cGU9ImJ1Z3RyYWNrZXIi Pmh0dHBzOi8vZ2l0aHViLmNvbS9vcGVudG9vbnovb3BlbnRvb256L2lzc3VlczwvdXJsPgoKZGlm ZiAtLWdpdCBhL29wZW50b29uei0xLjcuMS1leHItZml4LnBhdGNoIGIvb3BlbnRvb256LTEuNy4x LWV4ci1maXgucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhNDc0OTUuLjAw MDAwMDAKLS0tIGEvb3BlbnRvb256LTEuNy4xLWV4ci1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwxMTggKzAsMCBAQAotZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvaW1hZ2UvQ01ha2VM aXN0cy50eHQgYi90b29uei9zb3VyY2VzL2ltYWdlL0NNYWtlTGlzdHMudHh0Ci1pbmRleCA4Nzk1 M2NlZC4uOGMwYjI0ZmUgMTAwNjQ0Ci0tLS0gYS90b29uei9zb3VyY2VzL2ltYWdlL0NNYWtlTGlz dHMudHh0Ci0rKysgYi90b29uei9zb3VyY2VzL2ltYWdlL0NNYWtlTGlzdHMudHh0Ci1AQCAtMTk3 LDQgKzE5Nyw2IEBAIGVsc2VpZihCVUlMRF9FTlZfVU5JWExJS0UpCi0gICAgIGVuZGlmKCkKLSBl bmRpZigpCi0gCi0rc2V0KEVYVFJBX0xJQlMgJHtFWFRSQV9MSUJTfSAtbHRpbnlleHIpCi0rCi0g dGFyZ2V0X2xpbmtfbGlicmFyaWVzKGltYWdlIFF0NTo6Q29yZSBRdDU6Okd1aSBRdDU6Ok5ldHdv cmsgJHtaX0xJQn0gJHtHTFVUX0xJQn0gJHtHTF9MSUJ9ICR7SlBFR19MSUJ9ICR7VElGRl9MSUJ9 ICR7UE5HX0xJQn0gJHtFWFRSQV9MSUJTfSkKLWRpZmYgLS1naXQgYS90b29uei9zb3VyY2VzL2lt YWdlL2V4ci90aW55ZXhyX290bW9kLmggYi90b29uei9zb3VyY2VzL2ltYWdlL2V4ci90aW55ZXhy X290bW9kLmgKLWluZGV4IGVjZTMxNzU1Li4wMWEwMTc4NiAxMDA2NDQKLS0tLSBhL3Rvb256L3Nv dXJjZXMvaW1hZ2UvZXhyL3RpbnlleHJfb3Rtb2QuaAotKysrIGIvdG9vbnovc291cmNlcy9pbWFn ZS9leHIvdGlueWV4cl9vdG1vZC5oCi1AQCAtMSw3ICsxLDYgQEAKLSAjaWZuZGVmIFRJTllFWFJf T1RNT0RfSF8KLSAjZGVmaW5lIFRJTllFWFJfT1RNT0RfSF8KLSAKLS0jZGVmaW5lIFRJTllFWFJf SU1QTEVNRU5UQVRJT04KLSAjaW5jbHVkZSAidGlueWV4ci5oIgotIAotIC8qCi1AQCAtNzYsNiAr NzUsODUgQEAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg U1VDSCBEQU1BR0UuCi0gCi0gLy8gRW5kIG9mIE9wZW5FWFIgbGljZW5zZSAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gCi0rI2lmbmRlZiBUSU5ZRVhS X0lNUExFTUVOVEFUSU9OX0RFRklORUQKLSsKLSsjaW5jbHVkZSA8Y2Fzc2VydD4KLSsjaW5jbHVk ZSA8Y3N0ZGlvPgotKyNpbmNsdWRlIDxjc3RkbGliPgotKyNpbmNsdWRlIDxjc3RyaW5nPgotKwot KyNpbmNsdWRlIDxhbGdvcml0aG0+Ci0rI2luY2x1ZGUgPHNzdHJlYW0+Ci0rI2luY2x1ZGUgPHN0 cmluZz4KLSsjaW5jbHVkZSA8dmVjdG9yPgotKwotK25hbWVzcGFjZSB0aW55ZXhyIHsKLSsKLStz dGF0aWMgY29uc3QgaW50IGtFWFJWZXJzaW9uU2l6ZSA9IDg7Ci0rCi0rc3RydWN0IExheWVyQ2hh bm5lbCB7Ci0rICBleHBsaWNpdCBMYXllckNoYW5uZWwoc2l6ZV90IGksIHN0ZDo6c3RyaW5nIG4p IDogaW5kZXgoaSksIG5hbWUobikge30KLSsgIHNpemVfdCBpbmRleDsKLSsgIHN0ZDo6c3RyaW5n IG5hbWU7Ci0rfTsKLSsKLSsKLStzdGF0aWMgdm9pZCBTZXRFcnJvck1lc3NhZ2UoY29uc3Qgc3Rk OjpzdHJpbmcgJm1zZywgY29uc3QgY2hhciAqKmVycikgewotKyAgaWYgKGVycikgewotKyNpZmRl ZiBfV0lOMzIKLSsgICAgKCplcnIpID0gX3N0cmR1cChtc2cuY19zdHIoKSk7Ci0rI2Vsc2UKLSsg ICAgKCplcnIpID0gc3RyZHVwKG1zZy5jX3N0cigpKTsKLSsjZW5kaWYKLSsgIH0KLSt9Ci0rCi0r c3RhdGljIHZvaWQgR2V0TGF5ZXJzKGNvbnN0IEVYUkhlYWRlciAmZXhyX2hlYWRlciwKLSsgICAg ICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+ICZsYXllcl9uYW1lcykg ewotKyAgLy8gTmFpdmUgaW1wbGVtZW50YXRpb24KLSsgIC8vIEdyb3VwIGNoYW5uZWxzIGJ5IGxh eWVycwotKyAgLy8gZ28gb3ZlciBhbGwgY2hhbm5lbCBuYW1lcywgc3BsaXQgYnkgcGVyaW9kcwot KyAgLy8gY29sbGVjdCB1bmlxdWUgbmFtZXMKLSsgIGxheWVyX25hbWVzLmNsZWFyKCk7Ci0rICBm b3IgKGludCBjID0gMDsgYyA8IGV4cl9oZWFkZXIubnVtX2NoYW5uZWxzOyBjKyspIHsKLSsgICAg c3RkOjpzdHJpbmcgZnVsbF9uYW1lKGV4cl9oZWFkZXIuY2hhbm5lbHNbY10ubmFtZSk7Ci0rICAg IGNvbnN0IHNpemVfdCBwb3MgPSBmdWxsX25hbWUuZmluZF9sYXN0X29mKCcuJyk7Ci0rICAgIGlm IChwb3MgIT0gc3RkOjpzdHJpbmc6Om5wb3MgJiYgcG9zICE9IDAgJiYgcG9zICsgMSA8IGZ1bGxf bmFtZS5zaXplKCkpIHsKLSsgICAgICBmdWxsX25hbWUuZXJhc2UocG9zKTsKLSsgICAgICBpZiAo c3RkOjpmaW5kKGxheWVyX25hbWVzLmJlZ2luKCksIGxheWVyX25hbWVzLmVuZCgpLCBmdWxsX25h bWUpID09Ci0rICAgICAgICAgIGxheWVyX25hbWVzLmVuZCgpKQotKyAgICAgICAgbGF5ZXJfbmFt ZXMucHVzaF9iYWNrKGZ1bGxfbmFtZSk7Ci0rICAgIH0KLSsgIH0KLSt9Ci0rCi0rc3RhdGljIHZv aWQgQ2hhbm5lbHNJbkxheWVyKGNvbnN0IEVYUkhlYWRlciAmZXhyX2hlYWRlciwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcgbGF5ZXJfbmFtZSwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjp2ZWN0b3I8TGF5ZXJDaGFubmVsPiAmY2hhbm5l bHMpIHsKLSsgIGNoYW5uZWxzLmNsZWFyKCk7Ci0rICBmb3IgKGludCBjID0gMDsgYyA8IGV4cl9o ZWFkZXIubnVtX2NoYW5uZWxzOyBjKyspIHsKLSsgICAgc3RkOjpzdHJpbmcgY2hfbmFtZShleHJf aGVhZGVyLmNoYW5uZWxzW2NdLm5hbWUpOwotKyAgICBpZiAobGF5ZXJfbmFtZS5lbXB0eSgpKSB7 Ci0rICAgICAgY29uc3Qgc2l6ZV90IHBvcyA9IGNoX25hbWUuZmluZF9sYXN0X29mKCcuJyk7Ci0r ICAgICAgaWYgKHBvcyAhPSBzdGQ6OnN0cmluZzo6bnBvcyAmJiBwb3MgPCBjaF9uYW1lLnNpemUo KSkgewotKyAgICAgICAgY2hfbmFtZSA9IGNoX25hbWUuc3Vic3RyKHBvcyArIDEpOwotKyAgICAg IH0KLSsgICAgfSBlbHNlIHsKLSsgICAgICBjb25zdCBzaXplX3QgcG9zID0gY2hfbmFtZS5maW5k KGxheWVyX25hbWUgKyAnLicpOwotKyAgICAgIGlmIChwb3MgPT0gc3RkOjpzdHJpbmc6Om5wb3Mp IGNvbnRpbnVlOwotKyAgICAgIGlmIChwb3MgPT0gMCkgewotKyAgICAgICAgY2hfbmFtZSA9IGNo X25hbWUuc3Vic3RyKGxheWVyX25hbWUuc2l6ZSgpICsgMSk7Ci0rICAgICAgfQotKyAgICB9Ci0r ICAgIExheWVyQ2hhbm5lbCBjaChzaXplX3QoYyksIGNoX25hbWUpOwotKyAgICBjaGFubmVscy5w dXNoX2JhY2soY2gpOwotKyAgfQotK30KLSsKLSt9Ci0rCi0rI2VuZGlmCi0rCi0gI2lmZGVmIF9f Y3BsdXNwbHVzCi0gZXh0ZXJuICJDIiB7Ci0gI2VuZGlmCi1AQCAtNDczLDcgKzU1MSw3IEBAIGlu dCBTYXZlRVhSSW1hZ2VUb0ZpbGVIYW5kbGUoY29uc3QgRVhSSW1hZ2UgKmV4cl9pbWFnZSwKLSAg IHVuc2lnbmVkIGNoYXIgKm1lbSA9IE5VTEw7Ci0gICBzaXplX3QgbWVtX3NpemUgICAgPSBTYXZl RVhSSW1hZ2VUb01lbW9yeShleHJfaW1hZ2UsIGV4cl9oZWFkZXIsICZtZW0sIGVycik7Ci0gICBp ZiAobWVtX3NpemUgPT0gMCkgewotLSAgICByZXR1cm4gVElOWUVYUl9FUlJPUl9TRVJJQUxaQVRJ T05fRkFJTEVEOwotKyAgICByZXR1cm4gVElOWUVYUl9FUlJPUl9TRVJJQUxJWkFUSU9OX0ZBSUxF RDsKLSAgIH0KLSAKLSAgIHNpemVfdCB3cml0dGVuX3NpemUgPSAwOwoKZGlmZiAtLWdpdCBhL29w ZW50b29uei0xLjcuMS1mdW5jcHRyLWZpeC5wYXRjaCBiL29wZW50b29uei0xLjcuMS1mdW5jcHRy LWZpeC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFhNDBmNC4uMDAwMDAw MAotLS0gYS9vcGVudG9vbnotMS43LjEtZnVuY3B0ci1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSw0OSArMCwwIEBACi1kaWZmIC0tZ2l0IGEvdG9vbnovc291cmNlcy9pbWFnZS90enAvYXZs LmggYi90b29uei9zb3VyY2VzL2ltYWdlL3R6cC9hdmwuaAotaW5kZXggZTQ4ZjljZDMuLmQ3YmYx MGIwIDEwMDY0NAotLS0tIGEvdG9vbnovc291cmNlcy9pbWFnZS90enAvYXZsLmgKLSsrKyBiL3Rv b256L3NvdXJjZXMvaW1hZ2UvdHpwL2F2bC5oCi1AQCAtNzIsNyArNzIsNyBAQCBleHRlcm4gZG91 YmxlIEF2bF9EdW1teVtdOwotICNkZWZpbmUgQVZMX0RVUF9VU0ggKEFWTF9OT0RVUF9VU0ggfCAx KQotICNkZWZpbmUgQVZMX0RVUF9DSFIgKEFWTF9OT0RVUF9DSFIgfCAxKQotIAotLSNkZWZpbmUg QVZMX0FWTENNUCAoaW50ICgqKSgpKTAKLSsjZGVmaW5lIEFWTF9BVkxDTVAgKGludCAoKikodm9p ZCAqLCB2b2lkICopKTAKLSAKLSAjZGVmaW5lIGF2bF90cmVlX25vZHVwKHVzcmNtcCkgYXZsX190 cmVlKEFWTF9OT0RVUF9NQlIsICh1bnNpZ25lZCkwLCAodXNyY21wKSkKLSAjZGVmaW5lIGF2bF90 cmVlX25vZHVwX21icihzdHJ1Y3R1cmUsIG1lbWJlciwgdXNyY21wKSAgICAgICAgICAgICAgICAg ICAgICAgICAgXAotQEAgLTE2Myw3ICsxNjMsNyBAQCBzdHJ1Y3QgYXZsX3BhdGggewotIHR5cGVk ZWYgc3RydWN0IGF2bF90cmVlIHsKLSAgIHVuc2lnbmVkIHNob3J0IGtleWluZm87Ci0gICB1bnNp Z25lZCBzaG9ydCBrZXlvZmZzOwotLSAgaW50ICgqdXNyY21wKSgpOwotKyAgaW50ICgqdXNyY21w KSh2b2lkICosIHZvaWQgKik7Ci0gICBsb25nIG5vZGVzOwotICAgc3RydWN0IGF2bF9ub2RlICpy b290OwotICAgc3RydWN0IGF2bF9wYXRoICpwYXRoOwotQEAgLTIyMyw3ICsyMjMsNyBAQCBUTlpB UEkgaW50IGF2bF9wb3J0aW5nX3Byb2JsZW1zKCk7Ci0gCi0gI2Vsc2UKLSAKLS1UTlpBUEkgVFJF RSAqYXZsX190cmVlKGludCB0cmVldHlwZSwgdW5zaWduZWQga2V5b2ZmcywgaW50ICgqdXNyY21w KSgpKTsKLStUTlpBUEkgVFJFRSAqYXZsX190cmVlKGludCB0cmVldHlwZSwgdW5zaWduZWQga2V5 b2ZmcywgaW50ICgqdXNyY21wKSh2b2lkICosIHZvaWQgKikpOwotIFROWkFQSSBUUkVFICphdmxf Y29weShUUkVFICp0cmVlKTsKLSAKLSBUTlpBUEkgaW50IGF2bF9pbnNlcnQoVFJFRSAqdHJlZSwg dm9pZCAqZGF0YSk7Ci1AQCAtMjM2LDcgKzIzNiw3IEBAIFROWkFQSSB2b2lkICphdmxfbG9jYXRl X2ZpcnN0KFRSRUUgKnRyZWUpOwotIFROWkFQSSB2b2lkICphdmxfbG9jYXRlX2xhc3QoVFJFRSAq dHJlZSk7Ci0gVE5aQVBJIHZvaWQgKmF2bF9fcmVtb3ZlKFRSRUUgKnRyZWUsIGxvbmcga2V5dmFs KTsKLSAKLS1UTlpBUEkgdm9pZCBhdmxfX3NjYW4oVFJFRSAqdHJlZSwgdm9pZCAoKnVzcmZ1biko KSwgaW50IGJhY2spOwotK1ROWkFQSSB2b2lkIGF2bF9fc2NhbihUUkVFICp0cmVlLCB2b2lkICgq dXNyZnVuKSh2b2lkICopLCBpbnQgYmFjayk7Ci0gCi0gVE5aQVBJIHZvaWQgKmF2bF9maXJzdChU UkVFICp0cmVlKTsKLSBUTlpBUEkgdm9pZCAqYXZsX2xhc3QoVFJFRSAqdHJlZSk7Ci1AQCAtMjQ3 LDcgKzI0Nyw3IEBAIFROWkFQSSB2b2lkIGF2bF9zdG9wKFRSRUUgKnRyZWUpOwotIAotIFROWkFQ SSB2b2lkICphdmxfX2xpbmsoVFJFRSAqdHJlZSwgdW5zaWduZWQgcHRyb2ZmcywgaW50IGJhY2sp OwotIAotLVROWkFQSSB2b2lkIGF2bF9yZWxlYXNlKFRSRUUgKnRyZWUsIHZvaWQgKCp1c3JmdW4p KCkpOwotK1ROWkFQSSB2b2lkIGF2bF9yZWxlYXNlKFRSRUUgKnRyZWUsIHZvaWQgKCp1c3JmdW4p KHZvaWQgKikpOwotIFROWkFQSSB2b2lkIGF2bF9yZXNldChUUkVFICp0cmVlKTsKLSBUTlpBUEkg dm9pZCBhdmxfY2xvc2UoVFJFRSAqdHJlZSk7Ci0gCgpkaWZmIC0tZ2l0IGEvb3BlbnRvb256LTEu Ny4xLWtpc3NmZnQtZml4LnBhdGNoIGIvb3BlbnRvb256LTEuNy4xLWtpc3NmZnQtZml4LnBhdGNo CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzc5YmVmLi4wMDAwMDAwCi0tLSBhL29w ZW50b29uei0xLjcuMS1raXNzZmZ0LWZpeC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICsw LDAgQEAKLWRpZmYgLS1naXQgYS90b29uei9zb3VyY2VzL3N0ZGZ4L0NNYWtlTGlzdHMudHh0IGIv dG9vbnovc291cmNlcy9zdGRmeC9DTWFrZUxpc3RzLnR4dAotaW5kZXggNGRlMDZlYzguLmM3YWYy YzE5IDEwMDY0NAotLS0tIGEvdG9vbnovc291cmNlcy9zdGRmeC9DTWFrZUxpc3RzLnR4dAotKysr IGIvdG9vbnovc291cmNlcy9zdGRmeC9DTWFrZUxpc3RzLnR4dAotQEAgLTI3MCw4ICsyNzAsOCBA QCBzZXQoU09VUkNFUwotICAgICBpd2Ffbm9pc2UxMjM0LmNwcAotICAgICBpd2FfcG5wZXJzcGVj dGl2ZWZ4LmNwcAotICAgICBpd2Ffc29hcGJ1YmJsZWZ4LmNwcAotLSAgICAke1NES1JPT1R9L2tp c3NfZmZ0MTMwL2tpc3NfZmZ0LmMKLS0gICAgJHtTREtST09UfS9raXNzX2ZmdDEzMC90b29scy9r aXNzX2ZmdG5kLmMKLSsjICAgICR7U0RLUk9PVH0va2lzc19mZnQxMzAva2lzc19mZnQuYwotKyMg ICAgJHtTREtST09UfS9raXNzX2ZmdDEzMC90b29scy9raXNzX2ZmdG5kLmMKLSAgICAgaXdhX2Jv a2VoZnguY3BwCi0gICAgIGl3YV90aW1lY29kZWZ4LmNwcAotICAgICBpd2FfYm9rZWhyZWZmeC5j cHAKLUBAIC0zMDMsNiArMzAzLDcgQEAgYWRkX2xpYnJhcnkodG56c3RkZnggU0hBUkVEICR7SEVB REVSU30gJHtTT1VSQ0VTfSAke09CSkNTT1VSQ0VTfSkKLSBhZGRfZGVmaW5pdGlvbnMoCi0gICAg IC1EX1VTUkRMTAotICAgICAtRFROWlNUREZYX0VYUE9SVFMKLSsgICAgLURraXNzX2ZmdF9zY2Fs YXI9ZG91YmxlCi0gKQotIAotIGlmKEJVSUxEX0VOVl9BUFBMRSkKLUBAIC0zMjYsMTIgKzMyNywx MyBAQCBlbHNlKCkKLSBlbmRpZigpCi0gCi0gaW5jbHVkZV9kaXJlY3RvcmllcygKLS0gICAgJHtT REtST09UfS9raXNzX2ZmdDEzMAotKyMgICAgJHtTREtST09UfS9raXNzX2ZmdDEzMAotKyAgICAv dXNyL2luY2x1ZGUva2lzc2ZmdC8KLSApCi0gCi0gX2ZpbmRfdG9vbnpfbGlicmFyeShUTlpMSUJT ICJ0bnpjb3JlO3RuemJhc2U7dG9vbnpsaWIiKQotIAotLXRhcmdldF9saW5rX2xpYnJhcmllcyh0 bnpzdGRmeCBRdDU6OkNvcmUgUXQ1OjpHdWkgUXQ1OjpPcGVuR0wgJHtHTF9MSUJ9ICR7R0xFV19M SUJ9ICR7VE5aTElCU30gJHtQVEhSRUFEX0xJQlJBUll9KQotK3RhcmdldF9saW5rX2xpYnJhcmll cyh0bnpzdGRmeCBRdDU6OkNvcmUgUXQ1OjpHdWkgUXQ1OjpPcGVuR0wgJHtHTF9MSUJ9ICR7R0xF V19MSUJ9ICR7VE5aTElCU30gJHtQVEhSRUFEX0xJQlJBUll9IGtpc3NmZnQtZG91YmxlKQotIAot IGlmKE9wZW5DVl9GT1VORCkKLSAgICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKHRuenN0ZGZ4ICR7 T3BlbkNWX0xJQlN9KQotZGlmZiAtLWdpdCBhL3Rvb256L3NvdXJjZXMvc3RkZngvaXdhX2Jva2Vo X3V0aWwuaCBiL3Rvb256L3NvdXJjZXMvc3RkZngvaXdhX2Jva2VoX3V0aWwuaAotaW5kZXggNWJi NTkzYzYuLjNlMjczNWVlIDEwMDY0NAotLS0tIGEvdG9vbnovc291cmNlcy9zdGRmeC9pd2FfYm9r ZWhfdXRpbC5oCi0rKysgYi90b29uei9zb3VyY2VzL3N0ZGZ4L2l3YV9ib2tlaF91dGlsLmgKLUBA IC02LDcgKzYsNyBAQAotICNpbmNsdWRlICJ0Z2VvbWV0cnkuaCIKLSAjaW5jbHVkZSAidHJhc3Rl ci5oIgotICNpbmNsdWRlICJraXNzX2ZmdC5oIgotLSNpbmNsdWRlICJ0b29scy9raXNzX2ZmdG5k LmgiCi0rI2luY2x1ZGUgImtpc3NfZmZ0bmQuaCIKLSAjaW5jbHVkZSAidHRpbGUuaCIKLSAjaW5j bHVkZSAic3RkZnguaCIKLSAjaW5jbHVkZSAidGZ4cGFyYW0uaCIKLWRpZmYgLS1naXQgYS90b29u ei9zb3VyY2VzL3N0ZGZ4L2l3YV9nbGFyZWZ4LmggYi90b29uei9zb3VyY2VzL3N0ZGZ4L2l3YV9n bGFyZWZ4LmgKLWluZGV4IDQ5ODczYTRkLi5iZTgyYjdiYiAxMDA2NDQKLS0tLSBhL3Rvb256L3Nv dXJjZXMvc3RkZngvaXdhX2dsYXJlZnguaAotKysrIGIvdG9vbnovc291cmNlcy9zdGRmeC9pd2Ff Z2xhcmVmeC5oCi1AQCAtMTUsNyArMTUsNyBAQCBJd2FfR2xhcmVGeAotICNpbmNsdWRlIDxRTGlz dD4KLSAjaW5jbHVkZSA8UVRocmVhZD4KLSAKLS0jaW5jbHVkZSAidG9vbHMva2lzc19mZnRuZC5o IgotKyNpbmNsdWRlICJraXNzX2ZmdG5kLmgiCi0gCi0gY29uc3QgaW50IExBWUVSX05VTSA9IDU7 Ci0gCgpkaWZmIC0tZ2l0IGEvb3BlbnRvb256LnNwZWMgYi9vcGVudG9vbnouc3BlYwppbmRleCBl N2U3MjUwLi45YmMyNTE4IDEwMDY0NAotLS0gYS9vcGVudG9vbnouc3BlYworKysgYi9vcGVudG9v bnouc3BlYwpAQCAtMSw2NCArMSw2MiBAQAogJXVuZGVmaW5lIF9fY21ha2VfaW5fc291cmNlX2J1 aWxkCiAlZGVmaW5lIF92cGF0aF9zcmNkaXIgdG9vbnovc291cmNlcwogCi1OYW1lOiAgICBvcGVu dG9vbnoKLVZlcnNpb246IDEuNy4xCi1SZWxlYXNlOiAyMSV7P2Rpc3R9Ci1TdW1tYXJ5OiAyRCBh bmltYXRpb24gc29mdHdhcmUKK05hbWU6ICAgICAgICAgICBvcGVudG9vbnoKK1ZlcnNpb246ICAg ICAgICAxLjguMAorUmVsZWFzZTogICAgICAgICVhdXRvcmVsZWFzZQorU3VtbWFyeTogICAgICAg IDJEIGFuaW1hdGlvbiBzb2Z0d2FyZQogCi0jIEF1dG9tYXRpY2FsbHkgY29udmVydGVkIGZyb20g b2xkIGZvcm1hdDogQlNEIC0gcmV2aWV3IGlzIGhpZ2hseSByZWNvbW1lbmRlZC4KLUxpY2Vuc2U6 IExpY2Vuc2VSZWYtQ2FsbGF3YXktQlNECi1VUkw6ICAgICBodHRwczovL29wZW50b29uei5naXRo dWIuaW8vCi1Tb3VyY2UwOiBodHRwczovL2dpdGh1Yi5jb20vb3BlbnRvb256L29wZW50b29uei9h cmNoaXZlL3JlZnMvdGFncy92JXt2ZXJzaW9ufS50YXIuZ3oKK0xpY2Vuc2U6ICAgICAgICBCU0Qt My1DbGF1c2UKK1VSTDogICAgICAgICAgICBodHRwczovL29wZW50b29uei5naXRodWIuaW8vCitT b3VyY2UwOiAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL29wZW50b29uei9vcGVudG9vbnovYXJj aGl2ZS9yZWZzL3RhZ3MvdiV7dmVyc2lvbn0udGFyLmd6CiAKLVBhdGNoMDogb3BlbnRvb256LTEu NS4wLWx6by1maXgucGF0Y2gKK1BhdGNoOiAgICAgICAgICAwMDAxLWx6by1maXgucGF0Y2gKICMg aHR0cHM6Ly9naXRodWIuY29tL29wZW50b29uei9vcGVudG9vbnovaXNzdWVzLzQxOTkKLVBhdGNo MTogb3BlbnRvb256LTEuNS4wLXRpZmYtZml4LnBhdGNoCi1QYXRjaDI6IG9wZW50b29uei0xLjcu MS1leHItZml4LnBhdGNoCitQYXRjaDogICAgICAgICAgMDAwMi10aWZmLWZpeC5wYXRjaAorUGF0 Y2g6ICAgICAgICAgIDAwMDMtZXhyLWZpeC5wYXRjaAogIyBodHRwczovL2dpdGh1Yi5jb20vb3Bl bnRvb256L29wZW50b29uei9wdWxsLzQyMzkKLVBhdGNoMzogb3BlbnRvb256LTEuNy4wLWdldGhv c3RieW5hbWUucGF0Y2gKLVBhdGNoNDogb3BlbnRvb256LTEuNy4wLWluc3RhbGwtcGF0aC1maXgu cGF0Y2gKLVBhdGNoNTogb3BlbnRvb256LTEuNy4xLWtpc3NmZnQtZml4LnBhdGNoICAgICAgIAot UGF0Y2g2OiBvcGVudG9vbnotMS43LjAtdG9vbnpybGUtcm0ucGF0Y2gKLVBhdGNoNzogb3BlbnRv b256LTEuNy4wLXR6cC10aWZmaW9wLWZpeC5wYXRjaAotUGF0Y2g4OiBvcGVudG9vbnotMS43LjEt YXBwZGF0YS5wYXRjaAotUGF0Y2g5OiBvcGVudG9vbnotMS43LjEtZnVuY3B0ci1maXgucGF0Y2gK LQotQnVpbGRSZXF1aXJlczogZmxleGlibGFzLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBib29zdC1k ZXZlbAotQnVpbGRSZXF1aXJlczogY21ha2UKLUJ1aWxkUmVxdWlyZXM6IGRlc2t0b3AtZmlsZS11 dGlscwotQnVpbGRSZXF1aXJlczogZnJlZWdsdXQtZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6IGZyZWV0 eXBlLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBnY2MKLUJ1aWxkUmVxdWlyZXM6IGdjYy1jKysKLUJ1 aWxkUmVxdWlyZXM6IGdsZXctZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6IGtpc3MtZmZ0LWRldmVsCi1C dWlsZFJlcXVpcmVzOiBsaWJhcHBzdHJlYW0tZ2xpYgotQnVpbGRSZXF1aXJlczogbGlianBlZy10 dXJiby1kZXZlbAotQnVpbGRSZXF1aXJlczogbGlibXlwYWludC1kZXZlbAotQnVpbGRSZXF1aXJl czogbGlicG5nLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBsaWJ0aWZmLWRldmVsCi1CdWlsZFJlcXVp cmVzOiBwa2djb25maWcobGlidXNiLTEuMCkKLUJ1aWxkUmVxdWlyZXM6IGx6NC1kZXZlbAotQnVp bGRSZXF1aXJlczogbHpvLWRldmVsCi1CdWlsZFJlcXVpcmVzOiBvcGVuY3YtZGV2ZWwKLUJ1aWxk UmVxdWlyZXM6IHF0NS1xdGJhc2UtZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6IHF0NS1xdG11bHRpbWVk aWEtZGV2ZWwKLUJ1aWxkUmVxdWlyZXM6IHF0NS1xdHNjcmlwdC1kZXZlbAotQnVpbGRSZXF1aXJl czogcXQ1LXF0c2VyaWFscG9ydC1kZXZlbAotQnVpbGRSZXF1aXJlczogcXQ1LXF0c3ZnLWRldmVs Ci1CdWlsZFJlcXVpcmVzOiBxdDUtcXR0b29scy1kZXZlbAotQnVpbGRSZXF1aXJlczogU3VwZXJM VS1kZXZlbAotQnVpbGRSZXF1aXJlczogdGlueWV4ci1kZXZlbAotQnVpbGRSZXF1aXJlczogdHVy Ym9qcGVnLWRldmVsCi1CdWlsZFJlcXVpcmVzOiB4ei1kZXZlbAotCi1CdWlsZFJlcXVpcmVzOiBx dDUtcXR0b29scy1zdGF0aWMKLQotUmVxdWlyZXM6IG9wZW5jdgotUmVxdWlyZXM6IGhpY29sb3It aWNvbi10aGVtZQotUmVxdWlyZXM6ICV7bmFtZX0tZGF0YSA9ICV7dmVyc2lvbn0tJXtyZWxlYXNl fQorUGF0Y2g6ICAgICAgICAgIDAwMDQtZ2V0aG9zdGJ5bmFtZS5wYXRjaAorUGF0Y2g6ICAgICAg ICAgIDAwMDUtaW5zdGFsbC1wYXRoLWZpeC5wYXRjaAorUGF0Y2g6ICAgICAgICAgIDAwMDYta2lz c2ZmdC1maXgucGF0Y2ggICAgICAgCitQYXRjaDogICAgICAgICAgMDAwNy10b29uenJsZS1ybS5w YXRjaAorUGF0Y2g6ICAgICAgICAgIDAwMDgtdHpwLXRpZmZpb3AtZml4LnBhdGNoCitQYXRjaDog ICAgICAgICAgMDAwOS1hcHBkYXRhLnBhdGNoCisKK0J1aWxkUmVxdWlyZXM6ICBmbGV4aWJsYXMt ZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBib29zdC1kZXZlbAorQnVpbGRSZXF1aXJlczogIGNtYWtl CitCdWlsZFJlcXVpcmVzOiAgZGVza3RvcC1maWxlLXV0aWxzCitCdWlsZFJlcXVpcmVzOiAgZnJl ZWdsdXQtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBmcmVldHlwZS1kZXZlbAorQnVpbGRSZXF1aXJl czogIGdjYworQnVpbGRSZXF1aXJlczogIGdjYy1jKysKK0J1aWxkUmVxdWlyZXM6ICBnbGV3LWRl dmVsCitCdWlsZFJlcXVpcmVzOiAga2lzcy1mZnQtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBsaWJh cHBzdHJlYW0tZ2xpYgorQnVpbGRSZXF1aXJlczogIGxpYmpwZWctdHVyYm8tZGV2ZWwKK0J1aWxk UmVxdWlyZXM6ICBsaWJteXBhaW50LWRldmVsCitCdWlsZFJlcXVpcmVzOiAgbGlicG5nLWRldmVs CitCdWlsZFJlcXVpcmVzOiAgbGlidGlmZi1kZXZlbAorQnVpbGRSZXF1aXJlczogIHBrZ2NvbmZp ZyhsaWJ1c2ItMS4wKQorQnVpbGRSZXF1aXJlczogIGx6NC1kZXZlbAorQnVpbGRSZXF1aXJlczog IGx6by1kZXZlbAorQnVpbGRSZXF1aXJlczogIG9wZW5jdi1kZXZlbAorQnVpbGRSZXF1aXJlczog IHF0NS1xdGJhc2UtZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICBxdDUtcXRtdWx0aW1lZGlhLWRldmVs CitCdWlsZFJlcXVpcmVzOiAgcXQ1LXF0c2NyaXB0LWRldmVsCitCdWlsZFJlcXVpcmVzOiAgcXQ1 LXF0c2VyaWFscG9ydC1kZXZlbAorQnVpbGRSZXF1aXJlczogIHF0NS1xdHN2Zy1kZXZlbAorQnVp bGRSZXF1aXJlczogIHF0NS1xdHRvb2xzLWRldmVsCitCdWlsZFJlcXVpcmVzOiAgU3VwZXJMVS1k ZXZlbAorQnVpbGRSZXF1aXJlczogIHRpbnlleHItZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICB0dXJi b2pwZWctZGV2ZWwKK0J1aWxkUmVxdWlyZXM6ICB4ei1kZXZlbAorCitCdWlsZFJlcXVpcmVzOiAg cXQ1LXF0dG9vbHMtc3RhdGljCisKK1JlcXVpcmVzOiAgICAgICBvcGVuY3YKK1JlcXVpcmVzOiAg ICAgICBoaWNvbG9yLWljb24tdGhlbWUKK1JlcXVpcmVzOiAgICAgICAle25hbWV9LWRhdGEgPSAl e3ZlcnNpb259LSV7cmVsZWFzZX0KIAogJWRlc2NyaXB0aW9uCiBPcGVuVG9vbnogaXMgYSAyRCBh bmltYXRpb24gc29mdHdhcmUgcHVibGlzaGVkIGJ5IERXQU5HTy4gSXQgaXMgYmFzZWQgb24gCkBA IC0xMzksMTIxICsxMzcsNCBAQCBhcHBzdHJlYW0tdXRpbCB2YWxpZGF0ZS1yZWxheCAtLW5vbmV0 IFwKIAogCiAlY2hhbmdlbG9nCi0qIFRodSBKdWwgMTYgMjAyNiBGZWRvcmEgUmVsZWFzZSBFbmdp bmVlcmluZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNy4xLTIxCi0tIFJlYnVpbHQg Zm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfNDVfTWFzc19SZWJ1aWxk Ci0KLSogVGh1IEphbiAyOSAyMDI2IE5pY29sYXMgQ2hhdXZldCA8a3dpemFydEBnbWFpbC5jb20+ IC0gMS43LjEtMjAKLS0gUmVidWlsdCBmb3IgT3BlbkNWIDQuMTMKLQotKiBGcmkgSmFuIDE2IDIw MjYgRmVkb3JhIFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4g LSAxLjcuMS0xOQotLSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kv RmVkb3JhXzQ0X01hc3NfUmVidWlsZAotCi0qIFdlZCBEZWMgMTAgMjAyNSBOaWNvbGFzIENoYXV2 ZXQgPGt3aXphcnRAZ21haWwuY29tPiAtIDEuNy4xLTE4Ci0tIFJlYnVpbHQgZm9yIE9wZW5DVi00 LjEyCi0KLSogVGh1IEp1bCAyNCAyMDI1IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxl bmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS43LjEtMTcKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9m ZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80M19NYXNzX1JlYnVpbGQKLQotKiBUdWUgRmVi IDA0IDIwMjUgU8OpcmdpbyBCYXN0byA8c2VyZ2lvQHNlcmp1eC5jb20+IC0gMS43LjEtMTYKLS0g UmVidWlsZCBmb3Igb3BlbmN2LTQuMTEuMAotCi0qIE1vbiBGZWIgMyAyMDI1IERpZWdvIEhlcnJl cmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNy4xLTE1Ci0tIEZpeCBhbWJpZ3Vvc2x5IGRlZmlu ZWQgZnVuY3Rpb24gcG9pbnRlcnMKLQotKiBGcmkgSmFuIDE3IDIwMjUgRmVkb3JhIFJlbGVhc2Ug RW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjcuMS0xNAotLSBSZWJ1 aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQyX01hc3NfUmVi dWlsZAotCi0qIFN1biBTZXAgMDggMjAyNCBBbnRvbmlvIFRyYW5kZSA8c2FnaXR0ZXJAZmVkb3Jh cHJvamVjdC5vcmc+IDEuNy4xLTEzCi0tIFJlYnVpbGQgZm9yIFN1cGVyTFUtNy4wLjAKLQotKiBN b24gU2VwIDAyIDIwMjQgTWlyb3NsYXYgU3VjaMO9IDxtc3VjaHlAcmVkaGF0LmNvbT4gLSAxLjcu MS0xMgotLSBjb252ZXJ0IGxpY2Vuc2UgdG8gU1BEWAotCi0qIFRodSBKdWwgMjUgMjAyNCBTw6ly Z2lvIEJhc3RvIDxzZXJnaW9Ac2VyanV4LmNvbT4gLSAxLjcuMS0xMQotLSBSZWJ1aWxkIGZvciBv cGVuY3YgNC4xMC4wCi0KLSogVGh1IEp1bCAxOCAyMDI0IEZlZG9yYSBSZWxlYXNlIEVuZ2luZWVy aW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS43LjEtMTAKLS0gUmVidWlsdCBmb3Ig aHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MV9NYXNzX1JlYnVpbGQKLQot KiBUdWUgRmViIDA2IDIwMjQgRnJhbnRpxaFlayBaYXRsb3VrYWwgPGZ6YXRsb3VrQHJlZGhhdC5j b20+IC0gMS43LjEtOQotLSBSZWJ1aWx0IGZvciB0dXJib2pwZWcgMy4wLjIKLQotKiBNb24gRmVi IDA1IDIwMjQgU8OpcmdpbyBCYXN0byA8c2VyZ2lvQHNlcmp1eC5jb20+IC0gMS43LjEtOAotLSBS ZWJ1aWxkIGZvciBvcGVuY3YgNC45LjAKLQotKiBUaHUgRmViIDEgMjAyNCBEaWVnbyBIZXJyZXJh IDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjcuMS03Ci0tIEZpeCBmb3Iga2lzc2ZmdC12MTMxLjEu MAotLSBGaXggZm9yIHRpbnlleHItdjEuMC43Ci0KLSogVGh1IEphbiAyNSAyMDI0IEZlZG9yYSBS ZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS43LjEtNgot LSBSZWJ1aWx0IGZvciBodHRwczovL2ZlZG9yYXByb2plY3Qub3JnL3dpa2kvRmVkb3JhXzQwX01h c3NfUmVidWlsZAotCi0qIFN1biBKYW4gMjEgMjAyNCBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmlu ZyA8cmVsZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNy4xLTUKLS0gUmVidWlsdCBmb3IgaHR0 cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV80MF9NYXNzX1JlYnVpbGQKLQotKiBN b24gQXVnIDA3IDIwMjMgU8OpcmdpbyBCYXN0byA8c2VyZ2lvQHNlcmp1eC5jb20+IC0gMS43LjEt NAotLSBSZWJ1aWxkIGZvciBvcGVuY3YgNC44LjAKLQotKiBUaHUgSnVsIDIwIDIwMjMgRmVkb3Jh IFJlbGVhc2UgRW5naW5lZXJpbmcgPHJlbGVuZ0BmZWRvcmFwcm9qZWN0Lm9yZz4gLSAxLjcuMS0z Ci0tIFJlYnVpbHQgZm9yIGh0dHBzOi8vZmVkb3JhcHJvamVjdC5vcmcvd2lraS9GZWRvcmFfMzlf TWFzc19SZWJ1aWxkCi0KLSogU2F0IEp1bCAxNSAyMDIzIEFudG9uaW8gVHJhbmRlIDxzYWdpdHRl ckBmZWRvcmFwcm9qZWN0Lm9yZz4gMS43LjEtMgotLSBSZWJ1aWxkIGZvciBTdXBlckxVLTYuMC4w Ci0KLSogVHVlIEp1biAyMCAyMDIzIERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+ IDEuNy4xLTEKLS0gVXBkYXRlZCB0byAxLjcuMQotLSBVcGRhdGUgcGFja2FnZSBkZXNjcmlwdGlv bgotCi0qIFdlZCBNYXkgMTAgMjAyMyBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29t PiAxLjcuMC0xCi0tIFVwZGF0ZWQgdG8gMS43LjAKLQotKiBNb24gRmViIDYgMjAyMyBEaWVnbyBI ZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjYuMC0xMQotLSBGaXggc2l6ZV90IHJlZGVm aW5pdGlvbiBpc3N1ZSBvbiB0Z2M6Omhhc2ggY2xhc3MuCi0KLSogVGh1IEphbiAxOSAyMDIzIEZl ZG9yYSBSZWxlYXNlIEVuZ2luZWVyaW5nIDxyZWxlbmdAZmVkb3JhcHJvamVjdC5vcmc+IC0gMS42 LjAtMTAKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9mZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9y YV8zOF9NYXNzX1JlYnVpbGQKLQotKiBNb24gSmFuIDE2IDIwMjMgU8OpcmdpbyBCYXN0byA8c2Vy Z2lvQHNlcmp1eC5jb20+IC0gMS42LjAtOQotLSBSZWJ1aWxkIGZvciBvcGVuY3YgNC43LjAKLQot KiBXZWQgTm92IDIgMjAyMiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjYu MC04Ci0tIEV4cG9zZSBzdGF0aWMgbGlicmFyeSBkZXBlbmRlbmN5Ci0KLSogVGh1IEF1ZyAyNSAy MDIyIERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNi4wLTcKLS0gTWFrZSBl eHIgcGF0Y2ggY29tcGF0aWJsZSB3aXRoIHVwc3RyZWFtCi0KLSogVGh1IEF1ZyAyNSAyMDIyIERp ZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNi4wLTYKLS0gRml4IGV4ciBsaW5r aW5nIHByb2JsZW1zCi0KLSogVGh1IEF1ZyAyNSAyMDIyIEnDsWFraSDDmmNhciA8aXVjYXJAZmVk b3JhcHJvamVjdC5vcmc+IC0gMS42LjAtNQotLSBBZGhlcmUgdG8gQkxBUy9MQVBBQ0sgZ3VpZGVs aW5lcwotCi0qIEZyaSBKdWwgMjIgMjAyMiBGZWRvcmEgUmVsZWFzZSBFbmdpbmVlcmluZyA8cmVs ZW5nQGZlZG9yYXByb2plY3Qub3JnPiAtIDEuNi4wLTQKLS0gUmVidWlsdCBmb3IgaHR0cHM6Ly9m ZWRvcmFwcm9qZWN0Lm9yZy93aWtpL0ZlZG9yYV8zN19NYXNzX1JlYnVpbGQKLQotKiBUdWUgSnVu IDIxIDIwMjIgU8OpcmdpbyBCYXN0byA8c2VyZ2lvQHNlcmp1eC5jb20+IC0gMS42LjAtMwotLSBS ZWJ1aWx0IGZvciBvcGVuY3YgNC42LjAKLQotKiBGcmkgQXByIDI5IDIwMjIgRGllZ28gSGVycmVy YSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS42LjAtMgotLSBEaXNhYmxlIGV4ciBmb3JtYXQgYmVj YXVzZSBvZiBsaW5raW5nIHByb2JsZW1zCi0KLSogTW9uIEFwciAxOCAyMDIyIERpZWdvIEhlcnJl cmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNi4wLTEKLS0gVXBkYXRlZCB0byAxLjYuMAotCi0q IFdlZCBNYXIgMTYgMjAyMiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjUu MC01Ci0tIEZpeGVkIGJ1aWxkIHByb2JsZW1zIHdpdGggY21ha2UKLS0gbGlidXNiIHJldGlyZWQg ZnJvbSByYXdoaWRlCi0KLSogU2F0IEZlYiA1IDIwMjIgRGllZ28gSGVycmVyYSA8ZGhlcnJlcmFA cmVkaGF0LmNvbT4gMS41LjAtNAotLSBSZXN0b3JlZCBtZXRhaW5mbyAKLQotKiBGcmkgRmViIDQg MjAyMiBEaWVnbyBIZXJyZXJhIDxkaGVycmVyYUByZWRoYXQuY29tPiAxLjUuMC0zCi0tIEFkZGVk IHZlcnNpb24gbWFjcm8gdG8gdGhlIHNvdXJjZSB1cmwgCi0KLSogRnJpIEZlYiA0IDIwMjIgRGll Z28gSGVycmVyYSA8ZGhlcnJlcmFAcmVkaGF0LmNvbT4gMS41LjAtMgotLSBBZGRlZCBjbWFrZSBt YWNyb3MKLS0gVXNlZCBkZXNrdG9wLWZpbGUtdmFsaWRhdGUgaW5zdGVhZCBvZiBkZXNrdG9wLWZp bGUtaW5zdGFsbAotLSBDbGVhbmVkIHVwIHJlcXVpcmVtZW50cwotCi0qIFdlZCBGZWIgMiAyMDIy IERpZWdvIEhlcnJlcmEgPGRoZXJyZXJhQHJlZGhhdC5jb20+IDEuNS4wLTEKLS0gRmlyc3QgY29t bWl0CislYXV0b2NoYW5nZWxvZwoKZGlmZiAtLWdpdCBhL3NvdXJjZXMgYi9zb3VyY2VzCmluZGV4 IDdkMDdiNmQuLjgyMjY3ZjcgMTAwNjQ0Ci0tLSBhL3NvdXJjZXMKKysrIGIvc291cmNlcwpAQCAt MSwyICsxIEBACi1TSEE1MTIgKHYxLjcuMC50YXIuZ3opID0gMTI0MDAwOWI3ZDBjZmUwMTE1NjZl Mzg0ZjZjNDdhMGM4Y2Y1YmFlMmNhY2M3MDhhZWY4ZTdkMmQ3ZTUxMmEzOTE5NGEwNGZiMzhhNDQz NTgxZWRiZDI0NmE3YjI3NjIzNDkyOWQ4ZDY2MWZmMDM1NTk1NWJkMTM3OTgxYjRjY2EKLVNIQTUx MiAodjEuNy4xLnRhci5neikgPSBlMzNkZjMxNWI5NDU1MTBjMmRiYzVhZWYzNGI4NmZhMjBkYjU3 MWEzMTk2ODg4YTE5NDBmM2RiYjRjNTM0MGI4YjU3Y2Q2NTlhYmVlNDU2ZTQ5ZmM4ZjRmM2QxMGI2 ZWNmZWNjYzc3NzBlYzMxOTNlZTNmNWU2MGRhZDZmZTVjZgorU0hBNTEyICh2MS44LjAudGFyLmd6 KSA9IDNiZDk4YTUwYWE3Yzk2ZDczYjM2ODEyNTkyNzNmZjg5YjhkMWI3MWJkZTM3OTJjMTljY2Fm Y2VmMWIyYmViMzJmMTk2NTYwZTUxZjQ5MzMxODA5ZTcwYzY0NzRjZjk3OTI0YjQwYmMzMmY3YzQ4 NWRjNmE5ZDYyNGM3Zjk3MzU0Cg==