From: Bjorn Munch Date: January 19 2011 11:30am Subject: bzr push into mysql-5.5-mtr branch (bjorn.munch:3152 to 3154) List-Archive: http://lists.mysql.com/commits/129168 Message-Id: <201101191130.p0JBUJ7f008403@khepri15.norway.sun.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 IDMxNTQgQmpvcm4gTXVuY2gJMjAxMS0wMS0xOSBbbWVyZ2VdCiAgICAgIG51bGwgdXBtZXJnZQoK IDMxNTMgQmpvcm4gTXVuY2gJMjAxMS0wMS0xOSBbbWVyZ2VdCiAgICAgIG1lcmdlIGZyb20gNS41 IG1haW4KCiAgICBhZGRlZDoKICAgICAgbXlzcWwtdGVzdC9pbmNsdWRlL3Jlc3RhcnRfc2xhdmVf c3FsLmluYwogICAgICBteXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fbWFzdGVyLmlu YwogICAgICBteXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUuaW5jCiAgICAg IG15c3FsLXRlc3QvaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2ZTEuaW5jCiAgICBtb2RpZmll ZDoKICAgICAgY21ha2UvY2hhcmFjdGVyX3NldHMuY21ha2UKICAgICAgY29uZmlnLmguY21ha2UK ICAgICAgZXh0cmEvbXlfcHJpbnRfZGVmYXVsdHMuYwogICAgICBpbmNsdWRlL215X3N5cy5oCiAg ICAgIG15c3FsLXRlc3QvY29sbGVjdGlvbnMvZGVmYXVsdC5leHBlcmltZW50YWwKICAgICAgbXlz cWwtdGVzdC9yL2N0eXBlX21hbnkucmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9mdW5jX2xpa2Uu cmVzdWx0CiAgICAgIG15c3FsLXRlc3Qvci9zaG93X2NoZWNrLnJlc3VsdAogICAgICBteXNxbC10 ZXN0L3IveG1sLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC9yL3JwbF9zdG9wX3Ns YXZlLnJlc3VsdAogICAgICBteXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9jcm9zc192ZXJzaW9u LnRlc3QKICAgICAgbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfcGFja2V0LnRlc3QKICAgICAg bXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfc3RvcF9zbGF2ZS50ZXN0CiAgICAgIG15c3FsLXRl c3Qvc3VpdGUvc3lzX3ZhcnMvci9pbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3BjdF9mdW5jLnJlc3Vs dAogICAgICBteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3QvaW5ub2RiX21heF9kaXJ0eV9wYWdl c19wY3RfZnVuYy50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9jdHlwZV9tYW55LnRlc3QKICAgICAg bXlzcWwtdGVzdC90L2Z1bmNfbGlrZS50ZXN0CiAgICAgIG15c3FsLXRlc3QvdC9zaG93X2NoZWNr LnRlc3QKICAgICAgbXlzcWwtdGVzdC90L3htbC50ZXN0CiAgICAgIG15c3lzL2RlZmF1bHQuYwog ICAgICBteXN5cy9teV9nZXRvcHQuYwogICAgICBzcWwtY29tbW9uL2NsaWVudC5jCiAgICAgIHNx bC9pdGVtX3N0cmZ1bmMuY2MKICAgICAgc3FsL2l0ZW1fc3RyZnVuYy5oCiAgICAgIHNxbC9pdGVt X3N1bS5oCiAgICAgIHNxbC9teXNxbGQuY2MKICAgICAgc3FsL3NsYXZlLmNjCiAgICAgIHNxbC9z cWxfcmVwbC5jYwogICAgICBzdG9yYWdlL25kYi90ZXN0L3J1bi10ZXN0L3NldHVwLmNwcAogICAg ICBzdHJpbmdzL3htbC5jCiAzMTUyIEJqb3JuIE11bmNoCTIwMTEtMDEtMTggW21lcmdlXQogICAg ICB1cG1lcmdlIHVuZG8gb2YgNTkwNjMKCiAgICBtb2RpZmllZDoKICAgICAgbXlzcWwtdGVzdC9p bmNsdWRlL3JwbF9zdGFydF9zZXJ2ZXIuaW5jCiAgICAgIG15c3FsLXRlc3QvaW5jbHVkZS9ycGxf c3RvcF9zZXJ2ZXIuaW5jCiAgICAgIG15c3FsLXRlc3QvbGliL210cl9ncHJvZi5wbAo9PT0gbW9k aWZpZWQgZmlsZSAnY21ha2UvY2hhcmFjdGVyX3NldHMuY21ha2UnCi0tLSBhL2NtYWtlL2NoYXJh Y3Rlcl9zZXRzLmNtYWtlCTIwMTAtMDItMjUgMDg6MTU6NDYgKzAwMDAKKysrIGIvY21ha2UvY2hh cmFjdGVyX3NldHMuY21ha2UJMjAxMS0wMS0wNCAxMDoyMzo0NSArMDAwMApAQCAtMSw0ICsxLDQg QEAKLSMgQ29weXJpZ2h0IChDKSAyMDA5IFN1biBNaWNyb3N5c3RlbXMsIEluYworIyBDb3B5cmln aHQgKGMpIDIwMDksIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCiAjIAogIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIyBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQpAQCAtMTMsMTcg KzEzLDE5IEBACiAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRo ZSBGcmVlIFNvZnR3YXJlCiAjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0 aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBIAogCi0jQ2hhcnNldHMgYW5kIGNv bGxhdGlvbnMKKyMgQ2hhcnNldHMgYW5kIGNvbGxhdGlvbnMKIElGKE5PVCBERUZBVUxUX0NIQVJT RVQpCi1TRVQoREVGQVVMVF9DSEFSU0VUICJsYXRpbjEiKQorICBTRVQoREVGQVVMVF9DSEFSU0VU ICJsYXRpbjEiKQogRU5ESUYoKQogCi1JRihOT1QgREVGQVVMVF9DT0xMQVRJT05TKQotU0VUKERF RkFVTFRfQ09MTEFUSU9OICJsYXRpbjFfc3dlZGlzaF9jaSIpCitJRihOT1QgREVGQVVMVF9DT0xM QVRJT04pCisgIFNFVChERUZBVUxUX0NPTExBVElPTiAibGF0aW4xX3N3ZWRpc2hfY2kiKQogRU5E SUYoKQogCiBTRVQoQ0hBUlNFVFMgJHtERUZBVUxUX0NIQVJTRVR9IGxhdGluMSB1dGY4IHV0Zjht YjQpCi1TRVQoQ0hBUlNFVFNfQ09NUExFWCBiaWc1IGNwMTI1MCBjcDkzMiBldWNqcG1zIGV1Y2ty IGdiMjMxMiBnYmsgbGF0aW4xIGxhdGluMiBzamlzIHRpczYyMCB1Y3MyIHVqaXMgdXRmOCB1dGY4 bWI0IHV0ZjE2IHV0ZjMyKQorU0VUKENIQVJTRVRTX0NPTVBMRVgKKyAgYmlnNSBjcDEyNTAgY3A5 MzIgZXVjanBtcyBldWNrciBnYjIzMTIgZ2JrIGxhdGluMSBsYXRpbjIKKyAgc2ppcyB0aXM2MjAg dWNzMiB1amlzIHV0ZjggdXRmOG1iNCB1dGYxNiB1dGYzMikKIAogU0VUKENIQVJTRVRTX0FWQUlM QUJMRSAKIGJpbmFyeSBhcm1zY2lpOCBhc2NpaSBiaWc1IGNwMTI1MCBjcDEyNTEgY3AxMjU2IGNw MTI1NwoKPT09IG1vZGlmaWVkIGZpbGUgJ2NvbmZpZy5oLmNtYWtlJwotLS0gYS9jb25maWcuaC5j bWFrZQkyMDExLTAxLTExIDA5OjA3OjM3ICswMDAwCisrKyBiL2NvbmZpZy5oLmNtYWtlCTIwMTEt MDEtMDQgMTA6MjM6NDUgKzAwMDAKQEAgLTEsNiArMSw1IEBACi0vKiBDb3B5cmlnaHQgKEMpIDIw MDksIDIwMTEsIE9yYWNsZSBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMKLSAgIHJl c2VydmVkCi0KKy8qIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMSwgT3JhY2xlIGFuZC9vciBpdHMg YWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAKICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIG9mIHRoZSBM aWNlbnNlLgpAQCAtNTE2LDggKzUxNSw4IEBACiAjY21ha2VkZWZpbmUgQ1lCT1pVIDEKIAogLyog Q2hhcmFjdGVyIHNldHMgYW5kIGNvbGxhdGlvbnMgKi8KLSNjbWFrZWRlZmluZSBNWVNRTF9ERUZB VUxUX0NIQVJTRVRfTkFNRSAibGF0aW4xIgotI2NtYWtlZGVmaW5lIE1ZU1FMX0RFRkFVTFRfQ09M TEFUSU9OX05BTUUgImxhdGluMV9zd2VkaXNoX2NpIgorI2NtYWtlZGVmaW5lIE1ZU1FMX0RFRkFV TFRfQ0hBUlNFVF9OQU1FICJATVlTUUxfREVGQVVMVF9DSEFSU0VUX05BTUVAIgorI2NtYWtlZGVm aW5lIE1ZU1FMX0RFRkFVTFRfQ09MTEFUSU9OX05BTUUgIkBNWVNRTF9ERUZBVUxUX0NPTExBVElP Tl9OQU1FQCIKIAogI2NtYWtlZGVmaW5lIFVTRV9NQiAxCiAjY21ha2VkZWZpbmUgVVNFX01CX0lE RU5UIDEKCj09PSBtb2RpZmllZCBmaWxlICdleHRyYS9teV9wcmludF9kZWZhdWx0cy5jJwotLS0g YS9leHRyYS9teV9wcmludF9kZWZhdWx0cy5jCTIwMTAtMDctMTUgMTE6MTM6MzAgKzAwMDAKKysr IGIvZXh0cmEvbXlfcHJpbnRfZGVmYXVsdHMuYwkyMDExLTAxLTE3IDA3OjQ0OjM3ICswMDAwCkBA IC0xOTMsNyArMTkzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICB9CiAK ICAgZm9yIChhcmd1bWVudD0gYXJndW1lbnRzKzEgOyAqYXJndW1lbnQgOyBhcmd1bWVudCsrKQot ICAgIGlmICgqYXJndW1lbnQgIT0gYXJnc19zZXBhcmF0b3IpICAgICAgICAgICAvKiBza2lwIGFy Z3VtZW50cyBzZXBhcmF0b3IgKi8KKyAgICBpZiAoIW15X2dldG9wdF9pc19hcmdzX3NlcGFyYXRv cigqYXJndW1lbnQpKSAgICAgICAgICAgLyogc2tpcCBhcmd1bWVudHMgc2VwYXJhdG9yICovCiAg ICAgICBwdXRzKCphcmd1bWVudCk7CiAgIG15X2ZyZWUobG9hZF9kZWZhdWx0X2dyb3Vwcyk7CiAg IGZyZWVfZGVmYXVsdHMoYXJndW1lbnRzKTsKCj09PSBtb2RpZmllZCBmaWxlICdpbmNsdWRlL215 X3N5cy5oJwotLS0gYS9pbmNsdWRlL215X3N5cy5oCTIwMTEtMDEtMTEgMDk6MDc6MzcgKzAwMDAK KysrIGIvaW5jbHVkZS9teV9zeXMuaAkyMDExLTAxLTE3IDA3OjQ0OjM3ICswMDAwCkBAIC04MTcs NyArODE3LDggQEAgZXh0ZXJuIHZvaWQgKm1lbWR1cF9yb290KE1FTV9ST09UICpyb290LAogZXh0 ZXJuIGludCBnZXRfZGVmYXVsdHNfb3B0aW9ucyhpbnQgYXJnYywgY2hhciAqKmFyZ3YsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKipkZWZhdWx0cywgY2hhciAqKmV4dHJh X2RlZmF1bHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqZ3JvdXBf c3VmZml4KTsKLWV4dGVybiBjb25zdCBjaGFyICphcmdzX3NlcGFyYXRvcjsKK2V4dGVybiBteV9i b29sIG15X2dldG9wdF91c2VfYXJnc19zZXBhcmF0b3I7CitleHRlcm4gbXlfYm9vbCBteV9nZXRv cHRfaXNfYXJnc19zZXBhcmF0b3IoY29uc3QgY2hhciogYXJnKTsKIGV4dGVybiBpbnQgbXlfbG9h ZF9kZWZhdWx0cyhjb25zdCBjaGFyICpjb25mX2ZpbGUsIGNvbnN0IGNoYXIgKipncm91cHMsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICphcmdjLCBjaGFyICoqKmFyZ3YsIGNvbnN0 IGNoYXIgKioqKTsKIGV4dGVybiBpbnQgbG9hZF9kZWZhdWx0cyhjb25zdCBjaGFyICpjb25mX2Zp bGUsIGNvbnN0IGNoYXIgKipncm91cHMsCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC9j b2xsZWN0aW9ucy9kZWZhdWx0LmV4cGVyaW1lbnRhbCcKLS0tIGEvbXlzcWwtdGVzdC9jb2xsZWN0 aW9ucy9kZWZhdWx0LmV4cGVyaW1lbnRhbAkyMDExLTAxLTE0IDEyOjU5OjIzICswMDAwCisrKyBi L215c3FsLXRlc3QvY29sbGVjdGlvbnMvZGVmYXVsdC5leHBlcmltZW50YWwJMjAxMS0wMS0xOCAx Nzo1MTozOSArMDAwMApAQCAtMTAsNyArMTAsNiBAQCBpbm5vZGIuaW5ub2RiX2luZm9ybWF0aW9u X3NjaGVtYQogbWFpbi5mdW5jX21hdGggQGZyZWVic2QgICAgICAgICAgICAgICAgICAjIEJ1ZyM0 MzAyMCAyMDEwLTA1LTA0IGFsaWsgbWFpbi5mdW5jX21hdGggZmFpbHMgb24gRnJlZUJTRCBpbiBQ QjIKIG1haW4uZ2lzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBCdWcjNTIyMDgg MjAxMC0xMS0yNCBhbGlrIGdpcyBmYWlscyBvbiBzb21lIHBsYXRmb3JtcyAoU29sYXJpcywgSFAt VVgsIExpbnV4KQogbWFpbi5naXMtcnRyZWUgQGZyZWVic2QgICAgICAgICAgICAgICAgICAjIEJ1 ZyMzODk2NSAyMDEwLTA1LTA0IGFsaWsgdGVzdCBjYXNlcyBnaXMtcnRyZWUsIHR5cGVfZmxvYXQs IHR5cGVfbmV3ZGVjaW1hbCBmYWlsIGluIGVtYmVkZGVkIHNlcnZlcgotbWFpbi5pbmZvcm1hdGlv bl9zY2hlbWEgICAgICAgICAgICAgICAgICAjIEJ1ZyM0NzQ0OSAyMDA5LTA5LTE5IGFsaWsgbWFp bi5pbmZvcm1hdGlvbl9zY2hlbWEgYW5kIGlubm9kYi5pbm5vZGJfaW5mb3JtYXRpb25fc2NoZW1h IGZhaWwgc3BvcmFkaWNhbGx5CiBtYWluLmxvY2tfbXVsdGlfYnVnMzg0OTkgICAgICAgICAgICAg ICAgICMgQnVnIzQ3NDQ4IDIwMDktMDktMTkgYWxpayBtYWluLmxvY2tfbXVsdGlfYnVnMzg0OTkg dGltZXMgb3V0IHNwb3JhZGljYWxseQogbWFpbi5vdXRmaWxlX2xvYWRkYXRhIEBzb2xhcmlzICAg ICAgICAgICAjIEJ1ZyM0Njg5NSAyMDEwLTAxLTIwIGFsaWsgVGVzdCAib3V0ZmlsZV9sb2FkZGF0 YSIgZmFpbHMgKHJlcHJvZHVjaWJsZSkKIG1haW4uc2lnbmFsX2RlbW8zIEBzb2xhcmlzICAgICAg ICAgICAgICAgIyBCdWcjNDc3OTEgMjAxMC0wMS0yMCBhbGlrIFNldmVyYWwgdGVzdCBjYXNlcyBm YWlsIG9uIFNvbGFyaXMgd2l0aCBlcnJvciBUaHJlYWQgc3RhY2sgb3ZlcnJ1bgoKPT09IGFkZGVk IGZpbGUgJ215c3FsLXRlc3QvaW5jbHVkZS9yZXN0YXJ0X3NsYXZlX3NxbC5pbmMnCi0tLSBhL215 c3FsLXRlc3QvaW5jbHVkZS9yZXN0YXJ0X3NsYXZlX3NxbC5pbmMJMTk3MC0wMS0wMSAwMDowMDow MCArMDAwMAorKysgYi9teXNxbC10ZXN0L2luY2x1ZGUvcmVzdGFydF9zbGF2ZV9zcWwuaW5jCTIw MTEtMDEtMTggMTc6MjM6NDkgKzAwMDAKQEAgLTAsMCArMSw0MyBAQAorIyA9PT09IFB1cnBvc2Ug PT09PQorIworIyBQcm92aWRlIGEgZWFyaWVyIHdheSB0byByZXN0YXJ0IFNRTCB0aHJlYWQgd2hl biB5b3Ugd2FudCB0byBzdG9wIHNxbCB0aHJlYWQKKyMgYW5kIHRoZW4gc3RhcnQgaXQgaW1tZWRp YXRlbHkuCisjCisjIFNvdXJjZXMgc3RvcF9zbGF2ZV9zcWwuaW5jIHRvIHN0b3AgU1FMIHRocmVh ZCBvbiB0aGUgY3VycmVudCBjb25uZWN0aW9uLgorIyBUaGVuIGlzc3VlcyBTVEFSVCBTTEFWRSBT UUxfVEhSRUFEIGFuZCB0aGVuIHdhaXRzIHVudGlsCisjIHRoZSBTUUwgdGhyZWFkcyBoYXZlIHN0 YXJ0ZWQsIG9yIHVudGlsIGEgdGltZW91dCBpcyByZWFjaGVkLgorIworIyBQbGVhc2UgdXNlIHRo aXMgaW5zdGVhZCBvZiAnU1RPUHxTVEFSVCBTTEFWRSBTUUxfVEhSRUFEJywgdG8gcmVkdWNlIHRo ZSByaXNrIG9mCisjIHRlc3QgY2FzZSBidWdzLgorIworIworIyA9PT09IFVzYWdlID09PT0KKyMK KyMgWy0tbGV0ICRzbGF2ZV90aW1lb3V0PSBOVU1CRVJdCisjIFstLWxldCAkcnBsX2RlYnVnPSAx XQorIyAtLXNvdXJjZSBpbmNsdWRlL3Jlc3RhcnRfc2xhdmVfc3FsLmluYworIworIyBQYXJhbWV0 ZXJzOgorIyAgICRzbGF2ZV90aW1lb3V0CisjICAgICBTZWUgaW5jbHVkZS93YWl0X2Zvcl9zbGF2 ZV9wYXJhbS5pbmMKKyMKKyMgICAkcnBsX2RlYnVnCisjICAgICBTZWUgaW5jbHVkZS9ycGxfaW5p dC5pbmMKKworCistLWxldCAkaW5jbHVkZV9maWxlbmFtZT0gcmVzdGFydF9zbGF2ZS5pbmMKKy0t c291cmNlIGluY2x1ZGUvYmVnaW5faW5jbHVkZV9maWxlLmluYworCisKK2lmICghJHJwbF9kZWJ1 ZykKK3sKKyAgLS1kaXNhYmxlX3F1ZXJ5X2xvZworfQorCitzb3VyY2UgaW5jbHVkZS9zdG9wX3Ns YXZlX3NxbC5pbmM7CitTVEFSVCBTTEFWRSBTUUxfVEhSRUFEOworc291cmNlIGluY2x1ZGUvd2Fp dF9mb3Jfc2xhdmVfc3FsX3RvX3N0YXJ0LmluYzsKKworCistLWxldCAkaW5jbHVkZV9maWxlbmFt ZT0gcmVzdGFydF9zbGF2ZS5pbmMKKy0tc291cmNlIGluY2x1ZGUvZW5kX2luY2x1ZGVfZmlsZS5p bmMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVz dC9pbmNsdWRlL3JwbF9jb25uZWN0aW9uX21hc3Rlci5pbmMnCi0tLSBhL215c3FsLXRlc3QvaW5j bHVkZS9ycGxfY29ubmVjdGlvbl9tYXN0ZXIuaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9pbmNsdWRlL3JwbF9jb25uZWN0aW9uX21hc3Rlci5pbmMJMjAxMS0w MS0xOCAxNzoyMzo0OSArMDAwMApAQCAtMCwwICsxLDIgQEAKK2xldCAkcnBsX2Nvbm5lY3Rpb25f bmFtZT0gbWFzdGVyOworc291cmNlIGluY2x1ZGUvcnBsX2Nvbm5lY3Rpb24uaW5jOwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKCj09PSBhZGRlZCBmaWxlICdteXNxbC10ZXN0L2luY2x1ZGUv cnBsX2Nvbm5lY3Rpb25fc2xhdmUuaW5jJwotLS0gYS9teXNxbC10ZXN0L2luY2x1ZGUvcnBsX2Nv bm5lY3Rpb25fc2xhdmUuaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwt dGVzdC9pbmNsdWRlL3JwbF9jb25uZWN0aW9uX3NsYXZlLmluYwkyMDExLTAxLTE4IDE3OjIzOjQ5 ICswMDAwCkBAIC0wLDAgKzEsMiBAQAorbGV0ICRycGxfY29ubmVjdGlvbl9uYW1lPSBzbGF2ZTsK K3NvdXJjZSBpbmNsdWRlL3JwbF9jb25uZWN0aW9uLmluYzsKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCgo9PT0gYWRkZWQgZmlsZSAnbXlzcWwtdGVzdC9pbmNsdWRlL3JwbF9jb25uZWN0aW9u X3NsYXZlMS5pbmMnCi0tLSBhL215c3FsLXRlc3QvaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9zbGF2 ZTEuaW5jCTE5NzAtMDEtMDEgMDA6MDA6MDAgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9pbmNsdWRl L3JwbF9jb25uZWN0aW9uX3NsYXZlMS5pbmMJMjAxMS0wMS0xOCAxNzoyMzo0OSArMDAwMApAQCAt MCwwICsxLDIgQEAKK2xldCAkcnBsX2Nvbm5lY3Rpb25fbmFtZT0gc2xhdmUxOworc291cmNlIGlu Y2x1ZGUvcnBsX2Nvbm5lY3Rpb24uaW5jOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3IvY3R5cGVfbWFueS5yZXN1bHQnCi0tLSBhL215 c3FsLXRlc3Qvci9jdHlwZV9tYW55LnJlc3VsdAkyMDEwLTEyLTE1IDA5OjU4OjM3ICswMDAwCisr KyBiL215c3FsLXRlc3Qvci9jdHlwZV9tYW55LnJlc3VsdAkyMDExLTAxLTE3IDEyOjI2OjEzICsw MDAwCkBAIC0xNjg0LDYgKzE2ODQsMjEgQEAgQVJNRU5JQU4gQ0FQSVQgRUNICTIKIEFSTUVOSUFO IENBUElUIFpBCTIKIERST1AgVEFCTEUgdDE7CiAjCisjIFN0YXJ0IG9mIDUuMSB0ZXN0cworIwor IworIyBCdWcjNTgzNzEgQXNzZXJ0aW9uIGZhaWxlZDogIXMudXNlc19idWZmZXJfb3duZWRfYnko dGhpcykgd2l0aCBmb3JtYXQgc3RyaW5nIGZ1bmN0aW9uCisjCitTRVQgTkFNRVMgbGF0aW4xOwor RE8gQ09OVkVSVChDQVNUKFNVQlNUUklOR19JTkRFWChGT1JNQVQoMSwnMTExMScpLCBGT1JNQVQo JycsJ1pwcScpLDEpIAorQVMgQklOQVJZKDApKSBVU0lORyB1dGY4KTsKK1dhcm5pbmdzOgorV2Fy bmluZwkxMjkyCVRydW5jYXRlZCBpbmNvcnJlY3QgSU5URUdFUiB2YWx1ZTogJ1pwcScKK1dhcm5p bmcJMTI5MglUcnVuY2F0ZWQgaW5jb3JyZWN0IEJJTkFSWSgwKSB2YWx1ZTogJzEuJworIworIyBF bmQgb2YgNS4xIHRlc3RzCisjCisjCiAjIFN0YXJ0IG9mIDUuNSB0ZXN0cwogIwogIwoKPT09IG1v ZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvci9mdW5jX2xpa2UucmVzdWx0JwotLS0gYS9teXNxbC10 ZXN0L3IvZnVuY19saWtlLnJlc3VsdAkyMDEwLTExLTExIDEwOjMxOjE3ICswMDAwCisrKyBiL215 c3FsLXRlc3Qvci9mdW5jX2xpa2UucmVzdWx0CTIwMTEtMDEtMTcgMDk6Mzk6NTkgKzAwMDAKQEAg LTE4Miw0ICsxODIsOSBAQCBJTlNFUlQgSU5UTyB0MiBWQUxVRVMgKDEpLCAoMiksICgzKTsKIFNF TEVDVCAxIEZST00gdDIgSk9JTiB0MSBPTiAxIExJS0UgYSBHUk9VUCBCWSBhOwogMQogRFJPUCBU QUJMRSB0MSwgdDI7CisjCisjIEJ1ZyM1OTE0OSB2YWxncmluZCB3YXJuaW5ncyB3aXRoICJsaWtl IC4uIGVzY2FwZSAuLiIgZnVuY3Rpb24KKyMKK1NFTEVDVCAnJyBMSUtFICcxJyBFU0NBUEUgQ09V TlQoMSk7CitFUlJPUiBIWTAwMDogSW5jb3JyZWN0IGFyZ3VtZW50cyB0byBFU0NBUEUKIEVuZCBv ZiA1LjEgdGVzdHMKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3Ivc2hvd19jaGVjay5y ZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci9zaG93X2NoZWNrLnJlc3VsdAkyMDExLTAxLTE3IDA3 OjEyOjM4ICswMDAwCisrKyBiL215c3FsLXRlc3Qvci9zaG93X2NoZWNrLnJlc3VsdAkyMDExLTAx LTE4IDEyOjA0OjE3ICswMDAwCkBAIC0xMzM0LDcgKzEzMzQsNyBAQCBDUkVBVEUgREFUQUJBU0Ug YO+/vWA7CiBDUkVBVEUgVEFCTEUgYO+/vWAuYO+/vWAgKGEgaW50KSBFTkdJTkU9TWVtb3J5Owog U0hPVyBUQUJMRSBTVEFUVVMgRlJPTSBg77+9YCBMSUtFICfvv70nOwogTmFtZQlFbmdpbmUJVmVy c2lvbglSb3dfZm9ybWF0CVJvd3MJQXZnX3Jvd19sZW5ndGgJRGF0YV9sZW5ndGgJTWF4X2RhdGFf bGVuZ3RoCUluZGV4X2xlbmd0aAlEYXRhX2ZyZWUJQXV0b19pbmNyZW1lbnQJQ3JlYXRlX3RpbWUJ VXBkYXRlX3RpbWUJQ2hlY2tfdGltZQlDb2xsYXRpb24JQ2hlY2tzdW0JQ3JlYXRlX29wdGlvbnMJ Q29tbWVudAot77+9CU1FTU9SWQkxMAlGaXhlZAkwCTgJIwkjCSMJMAlOVUxMCU5VTEwJTlVMTAlO VUxMCWxhdGluMV9zd2VkaXNoX2NpCU5VTEwJCQor77+9CU1FTU9SWQkxMAlGaXhlZAkwCSMJIwkj CSMJMAlOVUxMCU5VTEwJTlVMTAlOVUxMCWxhdGluMV9zd2VkaXNoX2NpCU5VTEwJCQogRFJPUCBE QVRBQkFTRSBg77+9YDsKIHNob3cgY29sdW1ucyBmcm9tIGAjbXlzcWw1MCM/Pz8/Pz8/P2A7CiBH b3Qgb25lIG9mIHRoZSBsaXN0ZWQgZXJyb3JzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVz dC9yL3htbC5yZXN1bHQnCi0tLSBhL215c3FsLXRlc3Qvci94bWwucmVzdWx0CTIwMTAtMTEtMjQg MTQ6MDg6MDYgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9yL3htbC5yZXN1bHQJMjAxMS0wMS0xOCAw Njo1MDowMyArMDAwMApAQCAtMTExMyw2ICsxMTEzLDE3IEBAIFNFTEVDVCBVUERBVEVYTUwoTlVM TCwgKExQQUQoMC4xMTExRS0xNSwKIEVSUk9SIDIyMDA3OiBJbGxlZ2FsIGRvdWJsZSAnMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExJyB2YWx1ZSBmb3VuZCBkdXJpbmcgcGFyc2luZwogU0VMRUNUIEVYVFJB Q1RWQUxVRSgnJywgTFBBRCgwLjExMTFFLTE1LCAnMjAxMScsIDEpKTsKIEVSUk9SIDIyMDA3OiBJ bGxlZ2FsIGRvdWJsZSAnMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExJyB2YWx1ZSBmb3VuZCBkdXJpbmcg cGFyc2luZworIworIyBCdWcgIzQ0MzMyIAlteV94bWxfc2NhbiByZWFkcyBiZWhpbmQgdGhlIGVu ZCBvZiBidWZmZXIKKyMKK1NFTEVDVCBVUERBVEVYTUwoQ09OVkVSVChfbGF0aW4xJzwnIFVTSU5H IHV0ZjgpLCcxJywnMScpOworVVBEQVRFWE1MKENPTlZFUlQoX2xhdGluMSc8JyBVU0lORyB1dGY4 KSwnMScsJzEnKQorTlVMTAorV2FybmluZ3M6CitXYXJuaW5nCTE1MjUJSW5jb3JyZWN0IFhNTCB2 YWx1ZTogJ3BhcnNlIGVycm9yIGF0IGxpbmUgMSBwb3MgMjogRU5ELU9GLUlOUFVUIHVuZXhwZWN0 ZWQgKGlkZW50IG9yICcvJyB3YW50ZWQpJworU0VMRUNUIFVQREFURVhNTChDT05WRVJUKF9sYXRp bjEnPCEtLScgVVNJTkcgdXRmOCksJzEnLCcxJyk7CitVUERBVEVYTUwoQ09OVkVSVChfbGF0aW4x JzwhLS0nIFVTSU5HIHV0ZjgpLCcxJywnMScpCitOVUxMCiBFbmQgb2YgNS4xIHRlc3RzCiAjCiAj IFN0YXJ0IG9mIDUuNSB0ZXN0cwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUv cnBsL3IvcnBsX3N0b3Bfc2xhdmUucmVzdWx0JwotLS0gYS9teXNxbC10ZXN0L3N1aXRlL3JwbC9y L3JwbF9zdG9wX3NsYXZlLnJlc3VsdAkyMDEwLTEyLTE5IDE3OjE1OjEyICswMDAwCisrKyBiL215 c3FsLXRlc3Qvc3VpdGUvcnBsL3IvcnBsX3N0b3Bfc2xhdmUucmVzdWx0CTIwMTEtMDEtMTggMTc6 Mzg6MTAgKzAwMDAKQEAgLTc0LDUgKzc0LDQ3IEBAIGluY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfc3Fs X3RvX3N0YXJ0LmluYwogCiAjIFRlc3QgZW5kCiBTRVQgR0xPQkFMIGRlYnVnPSAnJGRlYnVnX3Nh dmUnOworaW5jbHVkZS9yZXN0YXJ0X3NsYXZlLmluYworW2Nvbm5lY3Rpb24gbWFzdGVyXQogRFJP UCBUQUJMRSB0MSwgdDI7CisKKyMgQnVnIzU4NTQ2IHRlc3QgcnBsX3BhY2tldCB0aW1lb3V0IGZh aWx1cmUgc3BvcmFkaWNhbGx5IG9uIFBCCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU1RPUCBTTEFWRSBz dG9wcGVkIElPIHRocmVhZCBmaXJzdCBhbmQgdGhlbiBzdG9wcGVkIFNRTCB0aHJlYWQuIEl0IHdh cworIyBwb3NzaWJsZSB0aGF0IElPIHRocmVhZCBzdG9wcGVkIGFmdGVyIHJlcGxpY2F0aW5nIHBh cnQgb2YgYSB0cmFuc2FjdGlvbgorIyB3aGljaCBTUUwgdGhyZWFkIHdhcyBleGVjdXRpbmcuIFNR TCB0aHJlYWQgd291bGQgYmUgaHVuZyBpZiB0aGUKKyMgdHJhbnNhY3Rpb24gY291bGQgbm90IGJl IHJvbGxlZCBiYWNrIHNhZmVseS4KKyMgSXQgY2F1c2VkIHNvbWUgc3BvcmFkaWMgZmFpbHVyZXMg b24gUEIyLgorIworIyBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB3aGVuICdTVE9QIFNMQVZFJyBp cyBpc3N1ZWQgYnkgYSB1c2VyLCBJTworIyB0aHJlYWQgd2lsbCBjb250aW51ZSB0byBmZXRjaCB0 aGUgcmVzdCBldmVudHMgb2YgdGhlIHRyYW5zYWN0aW9uIHdoaWNoCisjIGlzIGJlaW5nIGV4ZWN1 dGVkIGJ5IFNRTCB0aHJlYWQgYW5kIGlzIG5vdCBhYmxlIHRvIGJlIHJvbGxlZCBiYWNrIHNhZmVs eS4KK0NSRUFURSBUQUJMRSB0MSAoYzEgSU5UIEtFWSwgYzIgSU5UKSBFTkdJTkU9SW5ub0RCOwor Q1JFQVRFIFRBQkxFIHQyIChjMSBJTlQpIEVOR0lORT1NeUlTQU07CitJTlNFUlQgSU5UTyB0MSBW QUxVRVMoMSwgMSk7CitTRVQgR0xPQkFMIGRlYnVnPSAnZCxkdW1wX3RocmVhZF93YWl0X2JlZm9y ZV9zZW5kX3hpZCc7CitbY29ubmVjdGlvbiBzbGF2ZV0KK2luY2x1ZGUvcmVzdGFydF9zbGF2ZS5p bmMKK0JFR0lOOworVVBEQVRFIHQxIFNFVCBjMiA9IDIgV0hFUkUgYzEgPSAxOworW2Nvbm5lY3Rp b24gbWFzdGVyXQorQkVHSU47CitJTlNFUlQgSU5UTyB0MSBWQUxVRVMoMiwgMik7CitJTlNFUlQg SU5UTyB0MiBWQUxVRVMoMSk7CitVUERBVEUgdDEgU0VUIGMyID0gMyBXSEVSRSBjMSA9IDE7CitD T01NSVQ7CitbY29ubmVjdGlvbiBzbGF2ZTFdCitTVE9QIFNMQVZFOworW2Nvbm5lY3Rpb24gc2xh dmVdCitST0xMQkFDSzsKK1tjb25uZWN0aW9uIG1hc3Rlcl0KK1NFVCBERUJVR19TWU5DPSAnbm93 IFNJR05BTCBzaWduYWwuY29udGludWUnOworU0VUIERFQlVHX1NZTkM9ICdSRVNFVCc7CitbY29u bmVjdGlvbiBzbGF2ZV0KK2luY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfdG9fc3RvcC5pbmMKK1tjb25u ZWN0aW9uIHNsYXZlMV0KK2luY2x1ZGUvc3RhcnRfc2xhdmUuaW5jCitbY29ubmVjdGlvbiBtYXN0 ZXJdCitEUk9QIFRBQkxFIHQxLCB0MjsKK1NFVCBHTE9CQUwgZGVidWc9ICRkZWJ1Z19zYXZlOwog aW5jbHVkZS9ycGxfZW5kLmluYwoKPT09IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUv cnBsL3QvcnBsX2Nyb3NzX3ZlcnNpb24udGVzdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9ycGwv dC9ycGxfY3Jvc3NfdmVyc2lvbi50ZXN0CTIwMTAtMTItMTkgMTc6MTU6MTIgKzAwMDAKKysrIGIv bXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfY3Jvc3NfdmVyc2lvbi50ZXN0CTIwMTEtMDEtMTcg MTg6NTE6MDEgKzAwMDAKQEAgLTEyLDExICsxMiw2IEBACiAKIC0tc291cmNlIGluY2x1ZGUvbWFz dGVyLXNsYXZlLmluYwogCi0jIFRoZSB0ZXN0IGlzIGRpc2FibGVkIGZvciB3aW5kb3dzIGR1ZSB0 byAKLSMgQnVnICM0Mjg3OSBDSEFOR0UgTUFTVEVSIFJFTEFZX0xPR19GSUxFPXBhdGggZmFpbHMg b24gd2luZG93cwotIyBUb2RvOiByZWxlYXNlIGl0IGZyb20gbm90X3dpbmRvd3MKLS0tc291cmNl IGluY2x1ZGUvbm90X3dpbmRvd3MuaW5jCi0KICMKICMgQnVnIzMxMjQwIGxvYWQgZGF0YSBpbmZp bGUgcmVwbGljYXRpb24gYmV0d2VlbiAoNC4wIG9yIDQuMSkgYW5kIDUuMSBmYWlscwogIwoKPT09 IG1vZGlmaWVkIGZpbGUgJ215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3BhY2tldC50ZXN0Jwot LS0gYS9teXNxbC10ZXN0L3N1aXRlL3JwbC90L3JwbF9wYWNrZXQudGVzdAkyMDEwLTEyLTE5IDE3 OjE1OjEyICswMDAwCisrKyBiL215c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3BhY2tldC50ZXN0 CTIwMTEtMDEtMTggMTc6Mzg6MTAgKzAwMDAKQEAgLTI2LDggKzI2LDggQEAgbGV0ICRvbGRfbmV0 X2J1ZmZlcl9sZW5ndGg9IGBTRUxFQ1QgQEBnbAogU0VUIEBAZ2xvYmFsLm1heF9hbGxvd2VkX3Bh Y2tldD0xMDI0OwogU0VUIEBAZ2xvYmFsLm5ldF9idWZmZXJfbGVuZ3RoPTEwMjQ7CiAKK3N5bmNf c2xhdmVfd2l0aF9tYXN0ZXI7CiAjIFJlc3RhcnQgc2xhdmUgZm9yIHNldHRpbmcgdG8gdGFrZSBl ZmZlY3QKLWNvbm5lY3Rpb24gc2xhdmU7CiBzb3VyY2UgaW5jbHVkZS9zdG9wX3NsYXZlLmluYzsK IHNvdXJjZSBpbmNsdWRlL3N0YXJ0X3NsYXZlLmluYzsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ215 c3FsLXRlc3Qvc3VpdGUvcnBsL3QvcnBsX3N0b3Bfc2xhdmUudGVzdCcKLS0tIGEvbXlzcWwtdGVz dC9zdWl0ZS9ycGwvdC9ycGxfc3RvcF9zbGF2ZS50ZXN0CTIwMTAtMTItMTkgMTc6MTU6MTIgKzAw MDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9ycGwvdC9ycGxfc3RvcF9zbGF2ZS50ZXN0CTIwMTEt MDEtMTggMTc6Mzg6MTAgKzAwMDAKQEAgLTQ1LDcgKzQ1LDY5IEBAIHNvdXJjZSBleHRyYS9ycGxf dGVzdHMvcnBsX3N0b3Bfc2xhdmUudGUKIC0tZWNobwogLS1lY2hvICMgVGVzdCBlbmQKIFNFVCBH TE9CQUwgZGVidWc9ICckZGVidWdfc2F2ZSc7Citzb3VyY2UgaW5jbHVkZS9yZXN0YXJ0X3NsYXZl X3NxbC5pbmM7CiAKLWNvbm5lY3Rpb24gbWFzdGVyOworLS1zb3VyY2UgaW5jbHVkZS9ycGxfY29u bmVjdGlvbl9tYXN0ZXIuaW5jCiBEUk9QIFRBQkxFIHQxLCB0MjsKKworLS1lY2hvCistLWVjaG8g IyBCdWcjNTg1NDYgdGVzdCBycGxfcGFja2V0IHRpbWVvdXQgZmFpbHVyZSBzcG9yYWRpY2FsbHkg b24gUEIKKy0tZWNobyAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tZWNobyAjIFNUT1AgU0xBVkUgc3RvcHBl ZCBJTyB0aHJlYWQgZmlyc3QgYW5kIHRoZW4gc3RvcHBlZCBTUUwgdGhyZWFkLiBJdCB3YXMKKy0t ZWNobyAjIHBvc3NpYmxlIHRoYXQgSU8gdGhyZWFkIHN0b3BwZWQgYWZ0ZXIgcmVwbGljYXRpbmcg cGFydCBvZiBhIHRyYW5zYWN0aW9uCistLWVjaG8gIyB3aGljaCBTUUwgdGhyZWFkIHdhcyBleGVj dXRpbmcuIFNRTCB0aHJlYWQgd291bGQgYmUgaHVuZyBpZiB0aGUKKy0tZWNobyAjIHRyYW5zYWN0 aW9uIGNvdWxkIG5vdCBiZSByb2xsZWQgYmFjayBzYWZlbHkuCistLWVjaG8gIyBJdCBjYXVzZWQg c29tZSBzcG9yYWRpYyBmYWlsdXJlcyBvbiBQQjIuCistLWVjaG8gIworLS1lY2hvICMgVGhpcyB0 ZXN0IHZlcmlmaWVzIHRoYXQgd2hlbiAnU1RPUCBTTEFWRScgaXMgaXNzdWVkIGJ5IGEgdXNlciwg SU8KKy0tZWNobyAjIHRocmVhZCB3aWxsIGNvbnRpbnVlIHRvIGZldGNoIHRoZSByZXN0IGV2ZW50 cyBvZiB0aGUgdHJhbnNhY3Rpb24gd2hpY2gKKy0tZWNobyAjIGlzIGJlaW5nIGV4ZWN1dGVkIGJ5 IFNRTCB0aHJlYWQgYW5kIGlzIG5vdCBhYmxlIHRvIGJlIHJvbGxlZCBiYWNrIHNhZmVseS4KKwor Q1JFQVRFIFRBQkxFIHQxIChjMSBJTlQgS0VZLCBjMiBJTlQpIEVOR0lORT1Jbm5vREI7CitDUkVB VEUgVEFCTEUgdDIgKGMxIElOVCkgRU5HSU5FPU15SVNBTTsKK0lOU0VSVCBJTlRPIHQxIFZBTFVF UygxLCAxKTsKKworbGV0ICRkZWJ1Z19zYXZlPSBgU0VMRUNUIEBAR0xPQkFMLmRlYnVnYDsKK1NF VCBHTE9CQUwgZGVidWc9ICdkLGR1bXBfdGhyZWFkX3dhaXRfYmVmb3JlX3NlbmRfeGlkJzsKKwor c3luY19zbGF2ZV93aXRoX21hc3RlcjsKKworLS1zb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVjdGlv bl9zbGF2ZS5pbmMKK3NvdXJjZSBpbmNsdWRlL3Jlc3RhcnRfc2xhdmVfc3FsLmluYzsKKworQkVH SU47CitVUERBVEUgdDEgU0VUIGMyID0gMiBXSEVSRSBjMSA9IDE7CisKKy0tc291cmNlIGluY2x1 ZGUvcnBsX2Nvbm5lY3Rpb25fbWFzdGVyLmluYworQkVHSU47CitJTlNFUlQgSU5UTyB0MSBWQUxV RVMoMiwgMik7CitJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMSk7CitVUERBVEUgdDEgU0VUIGMyID0g MyBXSEVSRSBjMSA9IDE7CitDT01NSVQ7CisKKy0tc291cmNlIGluY2x1ZGUvcnBsX2Nvbm5lY3Rp b25fc2xhdmUxLmluYworbGV0ICRzaG93X3N0YXRlbWVudD0gU0hPVyBQUk9DRVNTTElTVDsKK2xl dCAkZmllbGQ9IEluZm87CitsZXQgJGNvbmRpdGlvbj0gPSAnVVBEQVRFIHQxIFNFVCBjMiA9IDMg V0hFUkUgYzEgPSAxJzsKK3NvdXJjZSBpbmNsdWRlL3dhaXRfc2hvd19jb25kaXRpb24uaW5jOwor CitzZW5kIFNUT1AgU0xBVkU7CisKKy0tc291cmNlIGluY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fc2xh dmUuaW5jCitST0xMQkFDSzsKKworLS1zb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVjdGlvbl9tYXN0 ZXIuaW5jCitTRVQgREVCVUdfU1lOQz0gJ25vdyBTSUdOQUwgc2lnbmFsLmNvbnRpbnVlJzsKK1NF VCBERUJVR19TWU5DPSAnUkVTRVQnOworCistLXNvdXJjZSBpbmNsdWRlL3JwbF9jb25uZWN0aW9u X3NsYXZlLmluYworc291cmNlIGluY2x1ZGUvd2FpdF9mb3Jfc2xhdmVfdG9fc3RvcC5pbmM7CisK Ky0tc291cmNlIGluY2x1ZGUvcnBsX2Nvbm5lY3Rpb25fc2xhdmUxLmluYworcmVhcDsKK3NvdXJj ZSBpbmNsdWRlL3N0YXJ0X3NsYXZlLmluYzsKKworLS1zb3VyY2UgaW5jbHVkZS9ycGxfY29ubmVj dGlvbl9tYXN0ZXIuaW5jCitEUk9QIFRBQkxFIHQxLCB0MjsKK1NFVCBHTE9CQUwgZGVidWc9ICRk ZWJ1Z19zYXZlOwogLS1zb3VyY2UgaW5jbHVkZS9ycGxfZW5kLmluYwoKPT09IG1vZGlmaWVkIGZp bGUgJ215c3FsLXRlc3Qvc3VpdGUvc3lzX3ZhcnMvci9pbm5vZGJfbWF4X2RpcnR5X3BhZ2VzX3Bj dF9mdW5jLnJlc3VsdCcKLS0tIGEvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL2lubm9kYl9t YXhfZGlydHlfcGFnZXNfcGN0X2Z1bmMucmVzdWx0CTIwMDktMDEtMzAgMTY6NTk6MTAgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy9yL2lubm9kYl9tYXhfZGlydHlfcGFnZXNf cGN0X2Z1bmMucmVzdWx0CTIwMTEtMDEtMTggMDM6NTQ6NTIgKzAwMDAKQEAgLTY0LDEyICs2NCwx MiBAQCBTRVQgbGFzdCA9IHBjdDsKIEVORCBJRjsKIEVORCBXSElMRTsKIEVORC8vCi1DUkVBVEUg UFJPQ0VEVVJFIGNoZWNrX3BjdChJTiBudW0gREVDSU1BTCkKK0NSRUFURSBQUk9DRURVUkUgY2hl Y2tfcGN0KElOIHN1Y2Nlc3Nfb25fd2FpdCBCT09MRUFOKQogQkVHSU4KLUlGIChkaXJ0eV9wY3Qo KSA8IG51bSkgVEhFTgorSUYgKHN1Y2Nlc3Nfb25fd2FpdCA+IDApIFRIRU4KIFNFTEVDVCAnQkVM T1dfTUFYJyBBUyBQQ1RfVkFMVUU7CiBFTFNFCi1TRUxFQ1QgJ0FCT1ZFX01BWCcgQVMgUENUX1ZB TFVFOworU0VMRUNUICdBQk9WRV9NQVggb3IgVGltZU91dCBPZiBUaGUgVGVzdCcgQVMgUENUX1ZB TFVFOwogRU5EIElGOwogRU5ELy8KIENSRUFURSBUQUJMRSB0MSgKQEAgLTgzLDcgKzgzLDcgQEAg Q0FMTCBhZGRfdW50aWwoMTApOwogRkxVU0ggVEFCTEVTOwogQ0FMTCBhZGRfcmVjb3Jkcyg1MDAp OwogJ1dlIGV4cGVjdCBkaXJ0eSBwYWdlcyBwY3QgdG8gYmUgQkVMT1dfTUFYIGFmdGVyIHNvbWUg dGltZSBkZXBlbmRpbmcgb24gcGVyZm9ybWFuY2UnCi1DQUxMIGNoZWNrX3BjdCgxMCk7CitDQUxM IGNoZWNrX3BjdCgxKTsKIFBDVF9WQUxVRQogQkVMT1dfTUFYCiBEUk9QIFBST0NFRFVSRSBhZGRf cmVjb3JkczsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3N1aXRlL3N5c192YXJzL3Qv aW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3RfZnVuYy50ZXN0JwotLS0gYS9teXNxbC10ZXN0L3N1 aXRlL3N5c192YXJzL3QvaW5ub2RiX21heF9kaXJ0eV9wYWdlc19wY3RfZnVuYy50ZXN0CTIwMDkt MDMtMjAgMTc6MTE6MjIgKzAwMDAKKysrIGIvbXlzcWwtdGVzdC9zdWl0ZS9zeXNfdmFycy90L2lu bm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0X2Z1bmMudGVzdAkyMDExLTAxLTE4IDAzOjU0OjUyICsw MDAwCkBAIC0xMTcsMTIgKzExNywxMiBAQCBCRUdJTgogICAgRU5EIFdISUxFOwogRU5ELy8KIAot Q1JFQVRFIFBST0NFRFVSRSBjaGVja19wY3QoSU4gbnVtIERFQ0lNQUwpCitDUkVBVEUgUFJPQ0VE VVJFIGNoZWNrX3BjdChJTiBzdWNjZXNzX29uX3dhaXQgQk9PTEVBTikKIEJFR0lOCi0gICBJRiAo ZGlydHlfcGN0KCkgPCBudW0pIFRIRU4KKyAgIElGIChzdWNjZXNzX29uX3dhaXQgPiAwKSBUSEVO CiAgICAgICBTRUxFQ1QgJ0JFTE9XX01BWCcgQVMgUENUX1ZBTFVFOwogICAgRUxTRQotICAgICAg U0VMRUNUICdBQk9WRV9NQVgnIEFTIFBDVF9WQUxVRTsKKyAgICAgIFNFTEVDVCAnQUJPVkVfTUFY IG9yIFRpbWVPdXQgT2YgVGhlIFRlc3QnIEFTIFBDVF9WQUxVRTsKICAgIEVORCBJRjsKIEVORC8v CiAKQEAgLTE1NSw3ICsxNTUsOCBAQCBsZXQgJHdhaXRfY29uZGl0aW9uPSBTRUxFQ1QgKGRpcnR5 X3BjdCgpCiAtLXNvdXJjZSBpbmNsdWRlL3dhaXRfY29uZGl0aW9uLmluYwogCiAtLWVjaG8gJ1dl IGV4cGVjdCBkaXJ0eSBwYWdlcyBwY3QgdG8gYmUgQkVMT1dfTUFYIGFmdGVyIHNvbWUgdGltZSBk ZXBlbmRpbmcgb24gcGVyZm9ybWFuY2UnCi1DQUxMIGNoZWNrX3BjdCgxMCk7CisjIFZhbHVlIEZv ciAkc3VjZXNzIHdpbGwgYmUgc2V0IGZyb20gaW5jbHVkZS93YWl0X2NvbmRpdGlvbi5pbmMgZmls ZS4gSXQgY2FuIGhhdmUgdmFsdWVzIDEgb3IgMC4gSXQgd2lsbCBiZSAxIGlmIGRpcnR5X3BjdCgp IDw9IEBAZ2xvYmFsLmlubm9kYl9tYXhfZGlydHlfcGFnZXNfcGN0IGVsc2UgaXQgd2lsbCBiZSAw LgorZXZhbCBDQUxMIGNoZWNrX3BjdCgkc3VjY2Vzcyk7CiBEUk9QIFBST0NFRFVSRSBhZGRfcmVj b3JkczsKIERST1AgUFJPQ0VEVVJFIGFkZF91bnRpbDsKIERST1AgUFJPQ0VEVVJFIGNoZWNrX3Bj dDsKCj09PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QvY3R5cGVfbWFueS50ZXN0JwotLS0g YS9teXNxbC10ZXN0L3QvY3R5cGVfbWFueS50ZXN0CTIwMTAtMTItMTUgMDk6NTg6MzcgKzAwMDAK KysrIGIvbXlzcWwtdGVzdC90L2N0eXBlX21hbnkudGVzdAkyMDExLTAxLTE3IDEyOjI2OjEzICsw MDAwCkBAIC0yMTcsNiArMjE3LDIxIEBAIERST1AgVEFCTEUgdDE7CiAKIAogLS1lY2hvICMKKy0t ZWNobyAjIFN0YXJ0IG9mIDUuMSB0ZXN0cworLS1lY2hvICMKKworLS1lY2hvICMKKy0tZWNobyAj IEJ1ZyM1ODM3MSBBc3NlcnRpb24gZmFpbGVkOiAhcy51c2VzX2J1ZmZlcl9vd25lZF9ieSh0aGlz KSB3aXRoIGZvcm1hdCBzdHJpbmcgZnVuY3Rpb24KKy0tZWNobyAjCisKK1NFVCBOQU1FUyBsYXRp bjE7CitETyBDT05WRVJUKENBU1QoU1VCU1RSSU5HX0lOREVYKEZPUk1BVCgxLCcxMTExJyksIEZP Uk1BVCgnJywnWnBxJyksMSkgCisgICAgICAgICAgICAgICAgQVMgQklOQVJZKDApKSBVU0lORyB1 dGY4KTsKKy0tZWNobyAjCistLWVjaG8gIyBFbmQgb2YgNS4xIHRlc3RzCistLWVjaG8gIworCist LWVjaG8gIwogLS1lY2hvICMgU3RhcnQgb2YgNS41IHRlc3RzCiAtLWVjaG8gIwogCgo9PT0gbW9k aWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L2Z1bmNfbGlrZS50ZXN0JwotLS0gYS9teXNxbC10ZXN0 L3QvZnVuY19saWtlLnRlc3QJMjAxMC0xMS0wOCAxMDo1NTo0MyArMDAwMAorKysgYi9teXNxbC10 ZXN0L3QvZnVuY19saWtlLnRlc3QJMjAxMS0wMS0xNyAwOTozMDoyMiArMDAwMApAQCAtMTI2LDUg KzEyNiwxMCBAQCBJTlNFUlQgSU5UTyB0MiBWQUxVRVMgKDEpLCAoMiksICgzKTsKIFNFTEVDVCAx IEZST00gdDIgSk9JTiB0MSBPTiAxIExJS0UgYSBHUk9VUCBCWSBhOwogRFJPUCBUQUJMRSB0MSwg dDI7CiAKKy0tZWNobyAjCistLWVjaG8gIyBCdWcjNTkxNDkgdmFsZ3JpbmQgd2FybmluZ3Mgd2l0 aCAibGlrZSAuLiBlc2NhcGUgLi4iIGZ1bmN0aW9uCistLWVjaG8gIworLS1lcnJvciBFUl9XUk9O R19BUkdVTUVOVFMKK1NFTEVDVCAnJyBMSUtFICcxJyBFU0NBUEUgQ09VTlQoMSk7CiAKIC0tZWNo byBFbmQgb2YgNS4xIHRlc3RzCgo9PT0gbW9kaWZpZWQgZmlsZSAnbXlzcWwtdGVzdC90L3Nob3df Y2hlY2sudGVzdCcKLS0tIGEvbXlzcWwtdGVzdC90L3Nob3dfY2hlY2sudGVzdAkyMDExLTAxLTE3 IDA3OjEyOjM4ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC9zaG93X2NoZWNrLnRlc3QJMjAxMS0w MS0xOCAxMjowNDoxNyArMDAwMApAQCAtMTA3Myw3ICsxMDczLDcgQEAgc2V0IG5hbWVzIGxhdGlu MTsKIFNFVCBOQU1FUyBsYXRpbjE7CiBDUkVBVEUgREFUQUJBU0UgYO+/vWA7CiBDUkVBVEUgVEFC TEUgYO+/vWAuYO+/vWAgKGEgaW50KSBFTkdJTkU9TWVtb3J5OwotLS1yZXBsYWNlX2NvbHVtbiA3 ICMgOCAjIDkgIworLS1yZXBsYWNlX2NvbHVtbiA2ICMgNyAjIDggIyA5ICMKIFNIT1cgVEFCTEUg U1RBVFVTIEZST00gYO+/vWAgTElLRSAn77+9JzsKIERST1AgREFUQUJBU0UgYO+/vWA7CiAKCj09 PSBtb2RpZmllZCBmaWxlICdteXNxbC10ZXN0L3QveG1sLnRlc3QnCi0tLSBhL215c3FsLXRlc3Qv dC94bWwudGVzdAkyMDEwLTExLTI0IDE0OjA4OjA2ICswMDAwCisrKyBiL215c3FsLXRlc3QvdC94 bWwudGVzdAkyMDExLTAxLTE4IDA2OjUwOjAzICswMDAwCkBAIC02NDAsNiArNjQwLDExIEBAIFNF TEVDVCBVUERBVEVYTUwoTlVMTCwgKExQQUQoMC4xMTExRS0xNSwKIC0tZXJyb3IgRVJfSUxMRUdB TF9WQUxVRV9GT1JfVFlQRQogU0VMRUNUIEVYVFJBQ1RWQUxVRSgnJywgTFBBRCgwLjExMTFFLTE1 LCAnMjAxMScsIDEpKTsKIAorLS1lY2hvICMKKy0tZWNobyAjIEJ1ZyAjNDQzMzIgCW15X3htbF9z Y2FuIHJlYWRzIGJlaGluZCB0aGUgZW5kIG9mIGJ1ZmZlcgorLS1lY2hvICMKK1NFTEVDVCBVUERB VEVYTUwoQ09OVkVSVChfbGF0aW4xJzwnIFVTSU5HIHV0ZjgpLCcxJywnMScpOworU0VMRUNUIFVQ REFURVhNTChDT05WRVJUKF9sYXRpbjEnPCEtLScgVVNJTkcgdXRmOCksJzEnLCcxJyk7CiAKIC0t ZWNobyBFbmQgb2YgNS4xIHRlc3RzCiAKCj09PSBtb2RpZmllZCBmaWxlICdteXN5cy9kZWZhdWx0 LmMnCi0tLSBhL215c3lzL2RlZmF1bHQuYwkyMDEwLTExLTE2IDEwOjU4OjM5ICswMDAwCisrKyBi L215c3lzL2RlZmF1bHQuYwkyMDExLTAxLTE3IDA3OjQ0OjM3ICswMDAwCkBAIC02MSw5ICs2MSwy MyBAQAogICAgY2hlY2sgdGhlIHBvaW50ZXIsIHVzZSAiLS0tLWFyZ3Mtc2VwYXJhdG9yLS0tLSIg aGVyZSB0byBlYXNlIGRlYnVnCiAgICBpZiBzb21lb25lIG1pc3VzZWQgaXQuCiAKKyAgIFRoZSBh cmdzIHNlcHJhdG9yIHdpbGwgb25seSBiZSBhZGRlZCB3aGVuCisgICBteV9nZXRvcHRfdXNlX2Fy Z3Nfc2VwcmF0b3IgaXMgc2V0IHRvIFRSVUUgYmVmb3JlIGNhbGxpbmcKKyAgIGxvYWRfZGVmYXVs dHMoKTsKKwogICAgU2VlIEJVRyMyNTE5MgogKi8KLWNvbnN0IGNoYXIgKmFyZ3Nfc2VwYXJhdG9y PSAiLS0tLWFyZ3Mtc2VwYXJhdG9yLS0tLSI7CitzdGF0aWMgY29uc3QgY2hhciAqYXJnc19zZXBh cmF0b3I9ICItLS0tYXJncy1zZXBhcmF0b3ItLS0tIjsKK2lubGluZSBzdGF0aWMgdm9pZCBzZXRf YXJnc19zZXBhcmF0b3IoY2hhcioqIGFyZykKK3sKKyAgREJVR19BU1NFUlQobXlfZ2V0b3B0X3Vz ZV9hcmdzX3NlcGFyYXRvcik7CisgICphcmc9IChjaGFyKilhcmdzX3NlcGFyYXRvcjsKK30KK215 X2Jvb2wgbXlfZ2V0b3B0X3VzZV9hcmdzX3NlcGFyYXRvcj0gRkFMU0U7CitteV9ib29sIG15X2dl dG9wdF9pc19hcmdzX3NlcGFyYXRvcihjb25zdCBjaGFyKiBhcmcpCit7CisgIHJldHVybiAoYXJn ID09IGFyZ3Nfc2VwYXJhdG9yKTsKK30KIGNvbnN0IGNoYXIgKm15X2RlZmF1bHRzX2ZpbGU9MDsK IGNvbnN0IGNoYXIgKm15X2RlZmF1bHRzX2dyb3VwX3N1ZmZpeD0wOwogY29uc3QgY2hhciAqbXlf ZGVmYXVsdHNfZXh0cmFfZmlsZT0wOwpAQCAtNTAzLDYgKzUxNyw3IEBAIGludCBteV9sb2FkX2Rl ZmF1bHRzKGNvbnN0IGNoYXIgKmNvbmZfZmkKICAgY2hhciAqcHRyLCoqcmVzOwogICBzdHJ1Y3Qg aGFuZGxlX29wdGlvbl9jdHggY3R4OwogICBjb25zdCBjaGFyICoqZGlyczsKKyAgdWludCBhcmdz X3NlcD0gbXlfZ2V0b3B0X3VzZV9hcmdzX3NlcGFyYXRvciA/IDEgOiAwOwogICBEQlVHX0VOVEVS KCJsb2FkX2RlZmF1bHRzIik7CiAKICAgaW5pdF9hbGxvY19yb290KCZhbGxvYyw1MTIsMCk7CkBA IC01MTUsMTcgKzUzMCwyOCBAQCBpbnQgbXlfbG9hZF9kZWZhdWx0cyhjb25zdCBjaGFyICpjb25m X2ZpCiAgIGlmICgqYXJnYyA+PSAyICYmICFzdHJjbXAoYXJndlswXVsxXSwiLS1uby1kZWZhdWx0 cyIpKQogICB7CiAgICAgLyogcmVtb3ZlIHRoZSAtLW5vLWRlZmF1bHRzIGFyZ3VtZW50IGFuZCBy ZXR1cm4gb25seSB0aGUgb3RoZXIgYXJndW1lbnRzICovCi0gICAgdWludCBpOworICAgIHVpbnQg aSwgajsKICAgICBpZiAoIShwdHI9KGNoYXIqKSBhbGxvY19yb290KCZhbGxvYyxzaXplb2YoYWxs b2MpKwogCQkJCSAoKmFyZ2MgKyAxKSpzaXplb2YoY2hhciopKSkpCiAgICAgICBnb3RvIGVycjsK ICAgICByZXM9IChjaGFyKiopIChwdHIrc2l6ZW9mKGFsbG9jKSk7CiAgICAgcmVzWzBdPSAqKmFy Z3Y7CQkJCS8qIENvcHkgcHJvZ3JhbSBuYW1lICovCi0gICAgLyogc2V0IGFyZ3VtZW50cyBzZXBh cmF0b3IgKi8KLSAgICByZXNbMV09IChjaGFyICopYXJnc19zZXBhcmF0b3I7Ci0gICAgZm9yIChp PTIgOyBpIDwgKHVpbnQpICphcmdjIDsgaSsrKQotICAgICAgcmVzW2ldPWFyZ3ZbMF1baV07Ci0g ICAgcmVzW2ldPTA7CQkJCQkvKiBFbmQgcG9pbnRlciAqLworICAgIGo9IDE7ICAgICAgICAgICAg ICAgICAvKiBTdGFydCBmcm9tIDEgZm9yIHRoZSByZXNldCByZXN1bHQgYXJncyAqLworICAgIGlm IChteV9nZXRvcHRfdXNlX2FyZ3Nfc2VwYXJhdG9yKQorICAgIHsKKyAgICAgIC8qIHNldCBhcmd1 bWVudHMgc2VwYXJhdG9yICovCisgICAgICBzZXRfYXJnc19zZXBhcmF0b3IoJnJlc1sxXSk7Cisg ICAgICBqKys7CisgICAgfQorICAgIGZvciAoaT0yIDsgaSA8ICh1aW50KSAqYXJnYyA7IGkrKywg aisrKQorICAgICAgcmVzW2pdPWFyZ3ZbMF1baV07CisgICAgcmVzW2pdPTA7CQkJCQkvKiBFbmQg cG9pbnRlciAqLworICAgIC8qCisgICAgICBVcGRhdGUgdGhlIGFyZ2MsIGlmIGhhdmUgbm90IGFk ZGVkIGFyZ3Mgc2VwYXJhdG9yLCB0aGVuIHdlIGhhdmUKKyAgICAgIHRvIGRlY3JlYXNlIGFyZ2Mg YmVjYXVzZSB3ZSBoYXZlIHJlbW92ZWQgdGhlICItLW5vLWRlZmF1bHRzIi4KKyAgICAqLworICAg IGlmICghbXlfZ2V0b3B0X3VzZV9hcmdzX3NlcGFyYXRvcikKKyAgICAgICgqYXJnYyktLTsKICAg ICAqYXJndj1yZXM7CiAgICAgKihNRU1fUk9PVCopIHB0cj0gYWxsb2M7CQkJLyogU2F2ZSBhbGxv YyByb290IGZvciBmcmVlICovCiAgICAgaWYgKGRlZmF1bHRfZGlyZWN0b3JpZXMpCkBAIC01NTks NyArNTg1LDcgQEAgaW50IG15X2xvYWRfZGVmYXVsdHMoY29uc3QgY2hhciAqY29uZl9maQogICAg IG9yIGEgZm9yY2VkIGRlZmF1bHQgZmlsZQogICAqLwogICBpZiAoIShwdHI9KGNoYXIqKSBhbGxv Y19yb290KCZhbGxvYyxzaXplb2YoYWxsb2MpKwotCQkJICAgICAgIChhcmdzLmVsZW1lbnRzICsg KmFyZ2MgKyAxICsgMSkgKnNpemVvZihjaGFyKikpKSkKKwkJCSAgICAgICAoYXJncy5lbGVtZW50 cyArICphcmdjICsgMSArIGFyZ3Nfc2VwKSAqc2l6ZW9mKGNoYXIqKSkpKQogICAgIGdvdG8gZXJy OwogICByZXM9IChjaGFyKiopIChwdHIrc2l6ZW9mKGFsbG9jKSk7CiAKQEAgLTU4MCwxNiArNjA2 LDE5IEBAIGludCBteV9sb2FkX2RlZmF1bHRzKGNvbnN0IGNoYXIgKmNvbmZfZmkKICAgICAtLSph cmdjOyArKyphcmd2OwkJCQkvKiBza2lwIGFyZ3VtZW50ICovCiAgIH0KIAotICAvKiBzZXQgYXJn dW1lbnRzIHNlcGFyYXRvciBmb3IgYXJndW1lbnRzIGZyb20gY29uZmlnIGZpbGUgYW5kCi0gICAg IGNvbW1hbmQgbGluZSAqLwotICByZXNbYXJncy5lbGVtZW50cysxXT0gKGNoYXIgKilhcmdzX3Nl cGFyYXRvcjsKKyAgaWYgKG15X2dldG9wdF91c2VfYXJnc19zZXBhcmF0b3IpCisgIHsKKyAgICAv KiBzZXQgYXJndW1lbnRzIHNlcGFyYXRvciBmb3IgYXJndW1lbnRzIGZyb20gY29uZmlnIGZpbGUg YW5kCisgICAgICAgY29tbWFuZCBsaW5lICovCisgICAgc2V0X2FyZ3Nfc2VwYXJhdG9yKCZyZXNb YXJncy5lbGVtZW50cysxXSk7CisgIH0KIAogICBpZiAoKmFyZ2MpCi0gICAgbWVtY3B5KCh1Y2hh ciopIChyZXMrMSthcmdzLmVsZW1lbnRzKzEpLCAoY2hhciopICgoKmFyZ3YpKzEpLAorICAgIG1l bWNweSgodWNoYXIqKSAocmVzKzErYXJncy5lbGVtZW50cythcmdzX3NlcCksIChjaGFyKikgKCgq YXJndikrMSksCiAJICAgKCphcmdjLTEpKnNpemVvZihjaGFyKikpOwotICByZXNbYXJncy5lbGVt ZW50cysgKmFyZ2MrMV09MDsgICAgICAgICAgICAgICAgLyogbGFzdCBudWxsICovCisgIHJlc1th cmdzLmVsZW1lbnRzKyAqYXJnYythcmdzX3NlcF09MDsgICAgICAgICAgICAgICAgLyogbGFzdCBu dWxsICovCiAKLSAgKCphcmdjKSs9YXJncy5lbGVtZW50cysxOworICAoKmFyZ2MpKz1hcmdzLmVs ZW1lbnRzK2FyZ3Nfc2VwOwogICAqYXJndj0gKGNoYXIqKikgcmVzOwogICAqKE1FTV9ST09UKikg cHRyPSBhbGxvYzsJCQkvKiBTYXZlIGFsbG9jIHJvb3QgZm9yIGZyZWUgKi8KICAgZGVsZXRlX2R5 bmFtaWMoJmFyZ3MpOwpAQCAtNTk5LDcgKzYyOCw3IEBAIGludCBteV9sb2FkX2RlZmF1bHRzKGNv bnN0IGNoYXIgKmNvbmZfZmkKICAgICBwcmludGYoIiVzIHdvdWxkIGhhdmUgYmVlbiBzdGFydGVk IHdpdGggdGhlIGZvbGxvd2luZyBhcmd1bWVudHM6XG4iLAogCSAgICoqYXJndik7CiAgICAgZm9y IChpPTEgOyBpIDwgKmFyZ2MgOyBpKyspCi0gICAgICBpZiAoKCphcmd2KVtpXSAhPSBhcmdzX3Nl cGFyYXRvcikgLyogc2tpcCBhcmd1bWVudHMgc2VwYXJhdG9yICovCisgICAgICBpZiAoIW15X2dl dG9wdF9pc19hcmdzX3NlcGFyYXRvcigoKmFyZ3YpW2ldKSkgLyogc2tpcCBhcmd1bWVudHMgc2Vw YXJhdG9yICovCiAgICAgICAgIHByaW50ZigiJXMgIiwgKCphcmd2KVtpXSk7CiAgICAgcHV0cygi Iik7CiAgICAgZXhpdCgwKTsKCj09PSBtb2RpZmllZCBmaWxlICdteXN5cy9teV9nZXRvcHQuYycK LS0tIGEvbXlzeXMvbXlfZ2V0b3B0LmMJMjAxMS0wMS0xNCAyMjoxODoyMiArMDAwMAorKysgYi9t eXN5cy9teV9nZXRvcHQuYwkyMDExLTAxLTE3IDA3OjQ0OjM3ICswMDAwCkBAIC0xNzYsNyArMTc2 LDcgQEAgaW50IGhhbmRsZV9vcHRpb25zKGludCAqYXJnYywgY2hhciAqKiphcgogICAqLwogICBm b3IgKHBvcz0gKmFyZ3YsIHBvc19lbmQ9cG9zKyAqYXJnYzsgcG9zICE9IHBvc19lbmQgOyBwb3Mr KykKICAgewotICAgIGlmICgqcG9zID09IGFyZ3Nfc2VwYXJhdG9yKQorICAgIGlmIChteV9nZXRv cHRfaXNfYXJnc19zZXBhcmF0b3IoKnBvcykpCiAgICAgewogICAgICAgaXNfY21kbGluZV9hcmc9 IDA7CiAgICAgICBicmVhazsKQEAgLTE4OCw3ICsxODgsNyBAQCBpbnQgaGFuZGxlX29wdGlvbnMo aW50ICphcmdjLCBjaGFyICoqKmFyCiAgICAgY2hhciAqKmZpcnN0PSBwb3M7CiAgICAgY2hhciAq Y3VyX2FyZz0gKnBvczsKICAgICBvcHRfZm91bmQ9IDA7Ci0gICAgaWYgKCFpc19jbWRsaW5lX2Fy ZyAmJiAoY3VyX2FyZyA9PSBhcmdzX3NlcGFyYXRvcikpCisgICAgaWYgKCFpc19jbWRsaW5lX2Fy ZyAmJiAobXlfZ2V0b3B0X2lzX2FyZ3Nfc2VwYXJhdG9yKGN1cl9hcmcpKSkKICAgICB7CiAgICAg ICBpc19jbWRsaW5lX2FyZz0gMTsKIAoKPT09IG1vZGlmaWVkIGZpbGUgJ3NxbC1jb21tb24vY2xp ZW50LmMnCi0tLSBhL3NxbC1jb21tb24vY2xpZW50LmMJMjAxMS0wMS0xMSAwOTowNzozNyArMDAw MAorKysgYi9zcWwtY29tbW9uL2NsaWVudC5jCTIwMTEtMDEtMTcgMDc6NDQ6MzcgKzAwMDAKQEAg LTEyMDcsNyArMTIwNyw3IEBAIHZvaWQgbXlzcWxfcmVhZF9kZWZhdWx0X29wdGlvbnMoc3RydWN0 IHMKICAgICBjaGFyICoqb3B0aW9uPWFyZ3Y7CiAgICAgd2hpbGUgKCorK29wdGlvbikKICAgICB7 Ci0gICAgICBpZiAob3B0aW9uWzBdID09IGFyZ3Nfc2VwYXJhdG9yKSAgICAgICAgICAvKiBza2lw IGFyZ3VtZW50cyBzZXBhcmF0b3IgKi8KKyAgICAgIGlmIChteV9nZXRvcHRfaXNfYXJnc19zZXBh cmF0b3Iob3B0aW9uWzBdKSkgICAgICAgICAgLyogc2tpcCBhcmd1bWVudHMgc2VwYXJhdG9yICov CiAgICAgICAgIGNvbnRpbnVlOwogICAgICAgLyogREJVR19QUklOVCgiaW5mbyIsKCJvcHRpb246 ICVzIixvcHRpb25bMF0pKTsgKi8KICAgICAgIGlmIChvcHRpb25bMF1bMF0gPT0gJy0nICYmIG9w dGlvblswXVsxXSA9PSAnLScpCgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL2l0ZW1fc3RyZnVuYy5j YycKLS0tIGEvc3FsL2l0ZW1fc3RyZnVuYy5jYwkyMDExLTAxLTEzIDA4OjA3OjIxICswMDAwCisr KyBiL3NxbC9pdGVtX3N0cmZ1bmMuY2MJMjAxMS0wMS0xNyAxMjoyNjoxMyArMDAwMApAQCAtMjk1 OSwyMiArMjk1OSwxNiBAQCBTdHJpbmcgKkl0ZW1fZnVuY19jb252X2NoYXJzZXQ6OnZhbF9zdHIo CiAgIERCVUdfQVNTRVJUKGZpeGVkID09IDEpOwogICBpZiAodXNlX2NhY2hlZF92YWx1ZSkKICAg ICByZXR1cm4gbnVsbF92YWx1ZSA/IDAgOiAmc3RyX3ZhbHVlOwotICAvKiAKLSAgICBIZXJlIHdl IGRvbid0IHBhc3MgJ3N0cicgYXMgYSBwYXJhbWV0ZXIgdG8gYXJnc1swXS0+dmFsX3N0cigpCi0g ICAgYXMgJ3N0cicgbWF5IHBvaW50IHRvICdzdHJfdmFsdWUnIChlLmcuIHNlZSBJdGVtOjpzYXZl X2luX2ZpZWxkKCkpLAotICAgIHdoaWNoIHdlIHVzZSBiZWxvdyB0byBjb252ZXJ0IHN0cmluZy4g Ci0gICAgVXNlIGFyZ3VtZW50J3MgJ3N0cl92YWx1ZScgaW5zdGVhZC4KLSAgKi8KLSAgU3RyaW5n ICphcmc9IGFyZ3NbMF0tPnZhbF9zdHIoJmFyZ3NbMF0tPnN0cl92YWx1ZSk7CisgIFN0cmluZyAq YXJnPSBhcmdzWzBdLT52YWxfc3RyKHN0cik7CiAgIHVpbnQgZHVtbXlfZXJyb3JzOwogICBpZiAo IWFyZykKICAgewogICAgIG51bGxfdmFsdWU9MTsKICAgICByZXR1cm4gMDsKICAgfQotICBudWxs X3ZhbHVlPSBzdHJfdmFsdWUuY29weShhcmctPnB0cigpLGFyZy0+bGVuZ3RoKCksYXJnLT5jaGFy c2V0KCksCisgIG51bGxfdmFsdWU9IHRtcF92YWx1ZS5jb3B5KGFyZy0+cHRyKCksIGFyZy0+bGVu Z3RoKCksIGFyZy0+Y2hhcnNldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb252 X2NoYXJzZXQsICZkdW1teV9lcnJvcnMpOwotICByZXR1cm4gbnVsbF92YWx1ZSA/IDAgOiBjaGVj a193ZWxsX2Zvcm1lZF9yZXN1bHQoJnN0cl92YWx1ZSk7CisgIHJldHVybiBudWxsX3ZhbHVlID8g MCA6IGNoZWNrX3dlbGxfZm9ybWVkX3Jlc3VsdCgmdG1wX3ZhbHVlKTsKIH0KIAogdm9pZCBJdGVt X2Z1bmNfY29udl9jaGFyc2V0OjpmaXhfbGVuZ3RoX2FuZF9kZWMoKQoKPT09IG1vZGlmaWVkIGZp bGUgJ3NxbC9pdGVtX3N0cmZ1bmMuaCcKLS0tIGEvc3FsL2l0ZW1fc3RyZnVuYy5oCTIwMTEtMDEt MTMgMDg6MDc6MjEgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3RyZnVuYy5oCTIwMTEtMDEtMTcgMTI6 MjY6MTMgKzAwMDAKQEAgLTc5MSw2ICs3OTEsNyBAQCBwdWJsaWM6CiBjbGFzcyBJdGVtX2Z1bmNf Y29udl9jaGFyc2V0IDpwdWJsaWMgSXRlbV9zdHJfZnVuYwogewogICBib29sIHVzZV9jYWNoZWRf dmFsdWU7CisgIFN0cmluZyB0bXBfdmFsdWU7CiBwdWJsaWM6CiAgIGJvb2wgc2FmZTsKICAgQ0hB UlNFVF9JTkZPICpjb252X2NoYXJzZXQ7IC8vIGtlZXAgaXQgcHVibGljCgo9PT0gbW9kaWZpZWQg ZmlsZSAnc3FsL2l0ZW1fc3VtLmgnCi0tLSBhL3NxbC9pdGVtX3N1bS5oCTIwMTAtMTItMjEgMTE6 NTA6MDMgKzAwMDAKKysrIGIvc3FsL2l0ZW1fc3VtLmgJMjAxMS0wMS0xNyAwOTozOTo1OSArMDAw MApAQCAtNDQ1LDYgKzQ0NSw3IEBAIHB1YmxpYzoKICAgICBmb3JjZWRfY29uc3Q9IFRSVUU7IAog ICB9CiAgIHZpcnR1YWwgYm9vbCBjb25zdF9pdGVtKCkgY29uc3QgeyByZXR1cm4gZm9yY2VkX2Nv bnN0OyB9CisgIHZpcnR1YWwgYm9vbCBjb25zdF9kdXJpbmdfZXhlY3V0aW9uKCkgY29uc3QgeyBy ZXR1cm4gZmFsc2U7IH0KICAgdmlydHVhbCB2b2lkIHByaW50KFN0cmluZyAqc3RyLCBlbnVtX3F1 ZXJ5X3R5cGUgcXVlcnlfdHlwZSk7CiAgIHZvaWQgZml4X251bV9sZW5ndGhfYW5kX2RlYygpOwog Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL215c3FsZC5jYycKLS0tIGEvc3FsL215c3FsZC5jYwky MDExLTAxLTE0IDEzOjIxOjQ2ICswMDAwCisrKyBiL3NxbC9teXNxbGQuY2MJMjAxMS0wMS0xNyAw Nzo0NDozNyArMDAwMApAQCAtNDIwNyw4ICs0MjA3LDEwIEBAIGludCBteXNxbGRfbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAKICAgb3JpZ19hcmdjPSBhcmdjOwogICBvcmlnX2FyZ3Y9IGFy Z3Y7CisgIG15X2dldG9wdF91c2VfYXJnc19zZXBhcmF0b3I9IFRSVUU7CiAgIGlmIChsb2FkX2Rl ZmF1bHRzKE1ZU1FMX0NPTkZJR19OQU1FLCBsb2FkX2RlZmF1bHRfZ3JvdXBzLCAmYXJnYywgJmFy Z3YpKQogICAgIHJldHVybiAxOworICBteV9nZXRvcHRfdXNlX2FyZ3Nfc2VwYXJhdG9yPSBGQUxT RTsKICAgZGVmYXVsdHNfYXJnYz0gYXJnYzsKICAgZGVmYXVsdHNfYXJndj0gYXJndjsKICAgcmVt YWluaW5nX2FyZ2M9IGFyZ2M7Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3NsYXZlLmNjJwotLS0g YS9zcWwvc2xhdmUuY2MJMjAxMC0xMi0wNyAxNjo1NToyNSArMDAwMAorKysgYi9zcWwvc2xhdmUu Y2MJMjAxMS0wMS0xOCAxNzozODoxMCArMDAwMApAQCAtNTA0LDYgKzUwNCwzMCBAQCBpbnQgdGVy bWluYXRlX3NsYXZlX3RocmVhZHMoTWFzdGVyX2luZm8qCiAgIG15c3FsX211dGV4X3QgKnNxbF9s b2NrID0gJm1pLT5ybGkucnVuX2xvY2ssICppb19sb2NrID0gJm1pLT5ydW5fbG9jazsKICAgbXlz cWxfbXV0ZXhfdCAqbG9nX2xvY2s9IG1pLT5ybGkucmVsYXlfbG9nLmdldF9sb2dfbG9jaygpOwog CisgIGlmICh0aHJlYWRfbWFzayAmIChTTEFWRV9TUUx8U0xBVkVfRk9SQ0VfQUxMKSkKKyAgewor ICAgIERCVUdfUFJJTlQoImluZm8iLCgiVGVybWluYXRpbmcgU1FMIHRocmVhZCIpKTsKKyAgICBt aS0+cmxpLmFib3J0X3NsYXZlPTE7CisgICAgaWYgKChlcnJvcj10ZXJtaW5hdGVfc2xhdmVfdGhy ZWFkKG1pLT5ybGkuc3FsX3RoZCwgc3FsX2xvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZtaS0+cmxpLnN0b3BfY29uZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJm1pLT5ybGkuc2xhdmVfcnVubmluZywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2tpcF9sb2NrKSkgJiYKKyAgICAgICAgIWZvcmNlX2FsbCkK KyAgICAgIERCVUdfUkVUVVJOKGVycm9yKTsKKworICAgIG15c3FsX211dGV4X2xvY2sobG9nX2xv Y2spOworCisgICAgREJVR19QUklOVCgiaW5mbyIsKCJGbHVzaGluZyByZWxheS1sb2cgaW5mbyBm aWxlLiIpKTsKKyAgICBpZiAoY3VycmVudF90aGQpCisgICAgICB0aGRfcHJvY19pbmZvKGN1cnJl bnRfdGhkLCAiRmx1c2hpbmcgcmVsYXktbG9nIGluZm8gZmlsZS4iKTsKKyAgICBpZiAoZmx1c2hf cmVsYXlfbG9nX2luZm8oJm1pLT5ybGkpKQorICAgICAgREJVR19SRVRVUk4oRVJfRVJST1JfRFVS SU5HX0ZMVVNIX0xPR1MpOworICAgIAorICAgIGlmIChteV9zeW5jKG1pLT5ybGkuaW5mb19mZCwg TVlGKE1ZX1dNRSkpKQorICAgICAgREJVR19SRVRVUk4oRVJfRVJST1JfRFVSSU5HX0ZMVVNIX0xP R1MpOworCisgICAgbXlzcWxfbXV0ZXhfdW5sb2NrKGxvZ19sb2NrKTsKKyAgfQogICBpZiAodGhy ZWFkX21hc2sgJiAoU0xBVkVfSU98U0xBVkVfRk9SQ0VfQUxMKSkKICAgewogICAgIERCVUdfUFJJ TlQoImluZm8iLCgiVGVybWluYXRpbmcgSU8gdGhyZWFkIikpOwpAQCAtNTMxLDMwICs1NTUsNiBA QCBpbnQgdGVybWluYXRlX3NsYXZlX3RocmVhZHMoTWFzdGVyX2luZm8qCiAgICAgICBEQlVHX1JF VFVSTihFUl9FUlJPUl9EVVJJTkdfRkxVU0hfTE9HUyk7CiAKICAgICBteXNxbF9tdXRleF91bmxv Y2sobG9nX2xvY2spOwotICB9Ci0gIGlmICh0aHJlYWRfbWFzayAmIChTTEFWRV9TUUx8U0xBVkVf Rk9SQ0VfQUxMKSkKLSAgewotICAgIERCVUdfUFJJTlQoImluZm8iLCgiVGVybWluYXRpbmcgU1FM IHRocmVhZCIpKTsKLSAgICBtaS0+cmxpLmFib3J0X3NsYXZlPTE7Ci0gICAgaWYgKChlcnJvcj10 ZXJtaW5hdGVfc2xhdmVfdGhyZWFkKG1pLT5ybGkuc3FsX3RoZCwgc3FsX2xvY2ssCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtaS0+cmxpLnN0b3BfY29uZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm1pLT5ybGkuc2xhdmVfcnVubmluZywK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9sb2NrKSkgJiYKLSAg ICAgICAgIWZvcmNlX2FsbCkKLSAgICAgIERCVUdfUkVUVVJOKGVycm9yKTsKLQotICAgIG15c3Fs X211dGV4X2xvY2sobG9nX2xvY2spOwotCi0gICAgREJVR19QUklOVCgiaW5mbyIsKCJGbHVzaGlu ZyByZWxheS1sb2cgaW5mbyBmaWxlLiIpKTsKLSAgICBpZiAoY3VycmVudF90aGQpCi0gICAgICB0 aGRfcHJvY19pbmZvKGN1cnJlbnRfdGhkLCAiRmx1c2hpbmcgcmVsYXktbG9nIGluZm8gZmlsZS4i KTsKLSAgICBpZiAoZmx1c2hfcmVsYXlfbG9nX2luZm8oJm1pLT5ybGkpKQotICAgICAgREJVR19S RVRVUk4oRVJfRVJST1JfRFVSSU5HX0ZMVVNIX0xPR1MpOwotICAgIAotICAgIGlmIChteV9zeW5j KG1pLT5ybGkuaW5mb19mZCwgTVlGKE1ZX1dNRSkpKQotICAgICAgREJVR19SRVRVUk4oRVJfRVJS T1JfRFVSSU5HX0ZMVVNIX0xPR1MpOwotCi0gICAgbXlzcWxfbXV0ZXhfdW5sb2NrKGxvZ19sb2Nr KTsKICAgfQogICBEQlVHX1JFVFVSTigwKTsgCiB9Cgo9PT0gbW9kaWZpZWQgZmlsZSAnc3FsL3Nx bF9yZXBsLmNjJwotLS0gYS9zcWwvc3FsX3JlcGwuY2MJMjAxMC0xMi0wNyAxNjo1NToyNSArMDAw MAorKysgYi9zcWwvc3FsX3JlcGwuY2MJMjAxMS0wMS0xOCAxNzozODoxMCArMDAwMApAQCAtMjUs NiArMjUsNyBAQAogI2luY2x1ZGUgInJwbF9maWx0ZXIuaCIKICNpbmNsdWRlIDxteV9kaXIuaD4K ICNpbmNsdWRlICJycGxfaGFuZGxlci5oIgorI2luY2x1ZGUgImRlYnVnX3N5bmMuaCIKIAogaW50 IG1heF9iaW5sb2dfZHVtcF9ldmVudHMgPSAwOyAvLyB1bmxpbWl0ZWQKIG15X2Jvb2wgb3B0X3Nw b3JhZGljX2JpbmxvZ19kdW1wX2ZhaWwgPSAwOwpAQCAtNjkzLDYgKzY5NCwxOSBAQCBpbXBvc3Np YmxlIHBvc2l0aW9uIjsKICAgICAgICAgY29vcmQtPnBvcz0gdWludDRrb3JyKHBhY2tldC0+cHRy KCkgKyBldl9vZmZzZXQgKyBMT0dfUE9TX09GRlNFVCk7CiAKICAgICAgIGV2ZW50X3R5cGU9IChM b2dfZXZlbnRfdHlwZSkoKCpwYWNrZXQpW0xPR19FVkVOVF9PRkZTRVQrZXZfb2Zmc2V0XSk7Cisg ICAgICBEQlVHX0VYRUNVVEVfSUYoImR1bXBfdGhyZWFkX3dhaXRfYmVmb3JlX3NlbmRfeGlkIiwK KyAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZl bnRfdHlwZSA9PSBYSURfRVZFTlQpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgICAgICAgIG5ldF9mbHVzaChuZXQpOworICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyIGFjdFtdPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3cg IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3YWl0X2ZvciBzaWduYWwuY29udGludWUi OworICAgICAgICAgICAgICAgICAgICAgICAgICBEQlVHX0FTU0VSVChvcHRfZGVidWdfc3luY190 aW1lb3V0ID4gMCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgIERCVUdfQVNTRVJUKCFkZWJ1 Z19zeW5jX3NldF9hY3Rpb24oY3VycmVudF90aGQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1RSSU5HX1dJVEhfTEVOKGFjdCkp KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICB9KTsK ICAgICAgIGlmIChldmVudF90eXBlID09IEZPUk1BVF9ERVNDUklQVElPTl9FVkVOVCkKICAgICAg IHsKICAgICAgICAgYmlubG9nX2Nhbl9iZV9jb3JydXB0ZWQ9IHRlc3QoKCpwYWNrZXQpW0ZMQUdT X09GRlNFVCtldl9vZmZzZXRdICYKQEAgLTcxOCw2ICs3MzIsMTQgQEAgaW1wb3NzaWJsZSBwb3Np dGlvbiI7CiAJZ290byBlcnI7CiAgICAgICB9CiAKKyAgICAgIERCVUdfRVhFQ1VURV9JRigiZHVt cF90aHJlYWRfd2FpdF9iZWZvcmVfc2VuZF94aWQiLAorICAgICAgICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldmVudF90eXBlID09IFhJRF9FVkVOVCkKKyAg ICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbmV0X2Zs dXNoKG5ldCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg ICAgfSk7CisKICAgICAgIERCVUdfUFJJTlQoImluZm8iLCAoImxvZyBldmVudCBjb2RlICVkIiwg ZXZlbnRfdHlwZSkpOwogICAgICAgaWYgKGV2ZW50X3R5cGUgPT0gTE9BRF9FVkVOVCkKICAgICAg IHsKCj09PSBtb2RpZmllZCBmaWxlICdzdG9yYWdlL25kYi90ZXN0L3J1bi10ZXN0L3NldHVwLmNw cCcKLS0tIGEvc3RvcmFnZS9uZGIvdGVzdC9ydW4tdGVzdC9zZXR1cC5jcHAJMjAwOS0xMC0wMiAw ODoyNTo1MyArMDAwMAorKysgYi9zdG9yYWdlL25kYi90ZXN0L3J1bi10ZXN0L3NldHVwLmNwcAky MDExLTAxLTE3IDA3OjQ0OjM3ICswMDAwCkBAIC0xMDUsNyArMTA1LDcgQEAgc2V0dXBfY29uZmln KGF0cnRfY29uZmlnJiBjb25maWcpCiAgICAgICovCiAgICAgZm9yIChqID0gMDsgajwoc2l6ZV90 KWFyZ2M7IGorKykKICAgICB7Ci0gICAgICBpZiAodG1wW2pdID09IGFyZ3Nfc2VwYXJhdG9yKSAg ICAgICAgICAgICAvKiBza2lwIGFyZ3VtZW50cyBzZXBhcmF0b3IgKi8KKyAgICAgIGlmIChteV9n ZXRvcHRfaXNfYXJnc19zZXBhcmF0b3IodG1wW2pdKSkgLyogc2tpcCBhcmd1bWVudHMgc2VwYXJh dG9yICovCiAgICAgICAgIGNvbnRpbnVlOwogICAgICAgZm9yIChrID0gMDsgcHJvY19hcmdzW2td Lm5hbWU7IGsrKykKICAgICAgIHsKQEAgLTM3NSw3ICszNzUsNyBAQCBsb2FkX29wdGlvbnMoaW50 IGFyZ2MsIGNoYXIqKiBhcmd2LCBpbnQKICAgICAgKiAgU2tpcCB0aGUgc2VwYXJhdG9yIGZvciBh cmd1bWVudHMgZnJvbSBjb25maWcgZmlsZSBhbmQgY29tbWFuZAogICAgICAqICBsaW5lCiAgICAg ICovCi0gICAgaWYgKGFyZ3ZbaV0gPT0gYXJnc19zZXBhcmF0b3IpCisgICAgaWYgKG15X2dldG9w dF9pc19hcmdzX3NlcGFyYXRvcihhcmd2W2ldKSkKICAgICAgIGNvbnRpbnVlOwogICAgIGZvciAo c2l6ZV90IGogPSAwOyBmX29wdGlvbnNbal0ubmFtZTsgaisrKQogICAgIHsKCj09PSBtb2RpZmll ZCBmaWxlICdzdHJpbmdzL3htbC5jJwotLS0gYS9zdHJpbmdzL3htbC5jCTIwMTAtMDctMDIgMTg6 MzA6NDcgKzAwMDAKKysrIGIvc3RyaW5ncy94bWwuYwkyMDExLTAxLTE4IDA2OjM4OjQxICswMDAw CkBAIC0xMDYsNiArMTA2LDEzIEBAIHN0YXRpYyB2b2lkIG15X3htbF9ub3JtX3RleHQoTVlfWE1M X0FUVFIKIH0KIAogCitzdGF0aWMgaW5saW5lIG15X2Jvb2wKK215X3htbF9wYXJzZXJfcHJlZml4 X2NtcChNWV9YTUxfUEFSU0VSICpwLCBjb25zdCBjaGFyICpzLCBzaXplX3Qgc2xlbikKK3sKKyAg cmV0dXJuIChwLT5jdXIgKyBzbGVuID4gcC0+ZW5kKSB8fCBtZW1jbXAocC0+Y3VyLCBzLCBzbGVu KTsKK30KKworCiBzdGF0aWMgaW50IG15X3htbF9zY2FuKE1ZX1hNTF9QQVJTRVIgKnAsTVlfWE1M X0FUVFIgKmEpCiB7CiAgIGludCBsZXg7CkBAIC0xMjMsMTYgKzEzMCwyMCBAQCBzdGF0aWMgaW50 IG15X3htbF9zY2FuKE1ZX1hNTF9QQVJTRVIgKnAsCiAgIGEtPmJlZz1wLT5jdXI7CiAgIGEtPmVu ZD1wLT5jdXI7CiAgIAotICBpZiAoKHAtPmVuZCAtIHAtPmN1ciA+IDMpICYmICFtZW1jbXAocC0+ Y3VyLCI8IS0tIiw0KSkKKyAgaWYgKCFteV94bWxfcGFyc2VyX3ByZWZpeF9jbXAocCwgQ19TVFJJ TkdfV0lUSF9MRU4oIjwhLS0iKSkpCiAgIHsKLSAgICBmb3IgKDsgKHAtPmN1ciA8IHAtPmVuZCkg JiYgbWVtY21wKHAtPmN1ciwgIi0tPiIsIDMpOyBwLT5jdXIrKykKLSAgICB7fQotICAgIGlmICgh bWVtY21wKHAtPmN1ciwgIi0tPiIsIDMpKQotICAgICAgcC0+Y3VyKz0zOworICAgIGZvciAoOyBw LT5jdXIgPCBwLT5lbmQ7IHAtPmN1cisrKQorICAgIHsKKyAgICAgIGlmICghbXlfeG1sX3BhcnNl cl9wcmVmaXhfY21wKHAsIENfU1RSSU5HX1dJVEhfTEVOKCItLT4iKSkpCisgICAgICB7CisgICAg ICAgIHAtPmN1cis9IDM7CisgICAgICAgIGJyZWFrOworICAgICAgfQorICAgIH0KICAgICBhLT5l bmQ9cC0+Y3VyOwogICAgIGxleD1NWV9YTUxfQ09NTUVOVDsKICAgfQotICBlbHNlIGlmICghbWVt Y21wKHAtPmN1ciwgIjwhW0NEQVRBWyIsOSkpCisgIGVsc2UgaWYgKCFteV94bWxfcGFyc2VyX3By ZWZpeF9jbXAocCwgQ19TVFJJTkdfV0lUSF9MRU4oIjwhW0NEQVRBWyIpKSkKICAgewogICAgIHAt PmN1cis9IDk7CiAgICAgZm9yICg7IHAtPmN1ciA8IHAtPmVuZCAtIDIgOyBwLT5jdXIrKykKCk5v IGJ1bmRsZSAocmVhc29uOiB1c2VsZXNzIGZvciBwdXNoIGVtYWlscyku