[COMMIT] Avoid confusion about ELC vs. source file encoding, #'load, #'load-internal.
Aidan Kehoe <[email protected]> Wed, 3 Jun 2015 20:14:52 +0100
| Newsgroups | gmane.emacs.xemacs.patches |
|---|---|
| Message-ID | <[email protected]> |
CkFQUFJPVkUgQ09NTUlUCgpOT1RFOiBUaGlzIHBhdGNoIGhhcyBiZWVuIGNvbW1pdHRlZC4KCiMg SEcgY2hhbmdlc2V0IHBhdGNoCiMgVXNlciBBaWRhbiBLZWhvZSA8a2Vob2VhQHBhcmhhc2FyZC5u ZXQ+CiMgRGF0ZSAxNDMzMzU4Nzg3IC0zNjAwCiMgICAgICBXZWQgSnVuIDAzIDIwOjEzOjA3IDIw MTUgKzAxMDAKIyBOb2RlIElEIDExNTJlMDA5MWY4YzViZDc5OTkxN2Y1MGQ0MjU0ZWZlZmYyYTU1 YzgKIyBQYXJlbnQgIDFhZjUzZDM1ZGQ1MzAwMjNjOWU5NmE0YzIzMGY5M2U0MWE2NDMzMDYKQXZv aWQgY29uZnVzaW9uIGFib3V0IEVMQyB2cy4gc291cmNlIGZpbGUgZW5jb2RpbmcsICMnbG9hZCwg Iydsb2FkLWludGVybmFsLgoKbGlzcC9DaGFuZ2VMb2cgYWRkaXRpb246CgoyMDE1LTA2LTAzICBB aWRhbiBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgoKCSogY29kZS1maWxlcy5lbCAobG9h ZCk6CglSZXZpc2UgdGhpcyB0byByZXNwZWN0IGxvYWQtaWdub3JlLW91dC1vZi1kYXRlLWVsYy1m aWxlcywgcmF0aGVyCgl0aGFuIGxlYXZpbmcgdGhhdCB0byAjJ2xvYWQtaW50ZXJuYWwuIEF2b2lk cyBhIGNvcm5lciBjYXNlIHdoZXJlCgl0aGUgc291cmNlIGFuZCB0aGUgY29tcGlsZWQgZmlsZSBo YXZlIGRpZmZlcmVudCwgaW5jb21wYXRpYmxlCgllbmNvZGluZ3MuCglNb3ZlIHRoZSBjYWxsIHRv ICMnc3Vic3RpdHV0ZS1pbi1maWxlLW5hbWUgaGVyZS4KCU5vIGxvbmdlciBjaGVjayBmb3IgYSB6 ZXJvLWxlbmd0aCBmaWxlbmFtZSwgc2luY2UgIydsb2FkLWludGVybmFsCglubyBsb25nZXIgY2hv a2VzIG9uIHNhbWUgYW5kIGVycm9ycyBjb3JyZWN0bHkuCgpzcmMvQ2hhbmdlTG9nIGFkZGl0aW9u OgoKMjAxNS0wNi0wMyAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KCgkqIGxy ZWFkLmMgKEZsb2FkX2ludGVybmFsKToKCURlbGVnYXRlIGNhbGxpbmcgdGhlIGhhbmRsZXIgYW5k ICMnc3Vic3RpdHV0ZS1pbi1maWxlLW5hbWUgdG8gIydsb2FkLgoJRXJyb3IgY29ycmVjdGx5IHdp dGggYSB6ZXJvLWxlbmd0aCBmaWxlIG5hbWUsIGluc3RlYWQgb2YgZ2l2aW5nIGEKCWJ1cyBlcnJv ciBvbiBteSBtYWNoaW5lLgoJRGVsZWdhdGUgdGhlIGNoZWNrIGZvciBvdXQtb2YtZGF0ZSBFTEMg ZmlsZXMgdG8gIydsb2FkLAoJYXZvaWRpbmcgYSBidWcgd2hlcmUgdGhlIGVuY29kaW5nIG9mIHRo ZSBFTEMgZmlsZSBhbmQgdGhlIHNvdXJjZQoJZmlsZSBkaWZmZXJlZC4KCSogbHJlYWQuYyAoUFJJ TlRfTE9BRElOR19NRVNTQUdFXzEpOgoJVGhpcyBpcyBzaW1wbGlmaWVkLCBub3cgd2Ugbm8gbG9u Z2VyIGhhdmUgdG8gdGFsayBhYm91dAoJb3V0LW9mLWRhdGUgRUxDIGZpbGVzLgoKdGVzdHMvQ2hh bmdlTG9nIGFkZGl0aW9uOgoKMjAxNS0wNi0wMyAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFz YXJkLm5ldD4KCgkqIGF1dG9tYXRlZC9maWxlLXRlc3RzLmVsOgoJR3Jvc3Mgc2FuaXR5IGNoZWNr IGZvciAjJ2xvYWQgYW5kICMnbG9hZC1pbnRlcm5hbCB3aXRoIGEKCXplcm8tbGVuZ3RoIEZJTEUs IHNvbWV0aGluZyB0aGF0IGNyYXNoZWQgdW50aWwgdG9kYXkuCgpkaWZmIC1yIDFhZjUzZDM1ZGQ1 MyAtciAxMTUyZTAwOTFmOGMgbGlzcC9DaGFuZ2VMb2cKLS0tIGEvbGlzcC9DaGFuZ2VMb2cJRnJp IE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCisrKyBiL2xpc3AvQ2hhbmdlTG9nCVdlZCBKdW4g MDMgMjA6MTM6MDcgMjAxNSArMDEwMApAQCAtMSwzICsxLDE0IEBACisyMDE1LTA2LTAzICBBaWRh biBLZWhvZSAgPGtlaG9lYUBwYXJoYXNhcmQubmV0PgorCisJKiBjb2RlLWZpbGVzLmVsIChsb2Fk KToKKwlSZXZpc2UgdGhpcyB0byByZXNwZWN0IGxvYWQtaWdub3JlLW91dC1vZi1kYXRlLWVsYy1m aWxlcywgcmF0aGVyCisJdGhhbiBsZWF2aW5nIHRoYXQgdG8gIydsb2FkLWludGVybmFsLiBBdm9p ZHMgYSBjb3JuZXIgY2FzZSB3aGVyZQorCXRoZSBzb3VyY2UgYW5kIHRoZSBjb21waWxlZCBmaWxl IGhhdmUgZGlmZmVyZW50LCBpbmNvbXBhdGlibGUKKwllbmNvZGluZ3MuCisJTW92ZSB0aGUgY2Fs bCB0byAjJ3N1YnN0aXR1dGUtaW4tZmlsZS1uYW1lIGhlcmUuCisJTm8gbG9uZ2VyIGNoZWNrIGZv ciBhIHplcm8tbGVuZ3RoIGZpbGVuYW1lLCBzaW5jZSAjJ2xvYWQtaW50ZXJuYWwKKwlubyBsb25n ZXIgY2hva2VzIG9uIHNhbWUgYW5kIGVycm9ycyBjb3JyZWN0bHkuCisKIDIwMTUtMDUtMTUgIEFp ZGFuIEtlaG9lICA8a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CiAKIAkqIHNpbXBsZS5lbDoKZGlmZiAt ciAxYWY1M2QzNWRkNTMgLXIgMTE1MmUwMDkxZjhjIGxpc3AvY29kZS1maWxlcy5lbAotLS0gYS9s aXNwL2NvZGUtZmlsZXMuZWwJRnJpIE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCisrKyBiL2xp c3AvY29kZS1maWxlcy5lbAlXZWQgSnVuIDAzIDIwOjEzOjA3IDIwMTUgKzAxMDAKQEAgLTI0OCw1 NCArMjQ4LDg4IEBACiAgLmVsYywgLmVsLCBvciBlbGVtZW50cyBvZiBgbW9kdWxlLWV4dGVuc2lv bnMnIHRvIHRoZSBzcGVjaWZpZWQgbmFtZSBGSUxFLgogUmV0dXJuIHQgaWYgZmlsZSBleGlzdHMu IgogICAoZGVjbGFyZSAoc3BlY2lhbCBsb2FkLW1vZHVsZXMtcXVpZXRseSkpCi0gIChsZXQgKCho YW5kbGVyIChmaW5kLWZpbGUtbmFtZS1oYW5kbGVyIGZpbGVuYW1lICdsb2FkKSkKLQkocGF0aCBu aWwpKQotICAgIChpZiBoYW5kbGVyCi0JKGZ1bmNhbGwgaGFuZGxlciAnbG9hZCBmaWxlbmFtZSBu b2Vycm9yIG5vbWVzc2FnZSBub3N1ZmZpeCkKLSAgICAgIDs7IEZpcnN0IHRyeSB0byBsb2FkIGEg TGlzcCBmaWxlCi0gICAgICAoaWYgKGFuZCAoPiAobGVuZ3RoIGZpbGVuYW1lKSAwKQotCSAgICAg ICAoc2V0cSBwYXRoIChsb2NhdGUtZmlsZSBmaWxlbmFtZSBsb2FkLXBhdGgKLQkJCQkgICAgICAg KGFuZCAobm90IG5vc3VmZml4KQotCQkJCQkgICAgJygiLmVsYyIgIi5lbCIgIiIpKSkpKQotCSAg Ozsgbm93IHVzZSB0aGUgaW50ZXJuYWwgbG9hZCB0byBhY3R1YWxseSBsb2FkIHRoZSBmaWxlLgot CSAgKGxvYWQtaW50ZXJuYWwKLQkgICBmaWxlbmFtZSBub2Vycm9yIG5vbWVzc2FnZSBub3N1ZmZp eAotCSAgIChsZXQgKChlbGMgOyB1c2Ugc3RyaW5nPSBpbnN0ZWFkIG9mIHN0cmluZy1tYXRjaCB0 byBrZWVwIG1hdGNoLWRhdGEuCi0JCSAgKGVxdWFscCAiLmVsYyIgKHN1YnN0cmluZyBwYXRoIC00 KSkpKQotCSAgICAgKG9yIChhbmQgKG5vdCBlbGMpIGNvZGluZy1zeXN0ZW0tZm9yLXJlYWQpCTtw cmVmZXIgZm9yIHNvdXJjZSBmaWxlCi0JCSA7OyBmaW5kIG1hZ2ljLWNvb2tpZQotCQkgKGxldCAo KGNvZGVzeXMKLQkJCShmaW5kLWNvZGluZy1zeXN0ZW0tbWFnaWMtY29va2llLWluLWZpbGUgcGF0 aCkpKQotCQkgICAod2hlbiBjb2Rlc3lzCi0JCSAgICAgKHNldHEgY29kZXN5cyAoaW50ZXJuIGNv ZGVzeXMpKQotCQkgICAgIChpZiAoZmluZC1jb2Rpbmctc3lzdGVtIGNvZGVzeXMpIGNvZGVzeXMp KSkKLQkJIChpZiBlbGMKLQkJICAgICA7OyBpZiByZWFkaW5nIGEgYnl0ZS1jb21waWxlZCBmaWxl IGFuZCB3ZSBkaWRuJ3QgZmluZAotCQkgICAgIDs7IGEgY29kaW5nLXN5c3RlbSBtYWdpYyBjb29r aWUsIHRoZW4gdXNlIGBiaW5hcnknLgotCQkgICAgIDs7IFdlIG5lZWQgdG8gZ3VhcmFudGVlIHRo YXQgd2UgbmV2ZXIgZG8gYXV0b2RldGVjdGlvbgotCQkgICAgIDs7IG9uIGJ5dGUtY29tcGlsZWQg ZmlsZXMgYmVjYXVzZSBjb25mdXNpb24gaGVyZSB3b3VsZAotCQkgICAgIDs7IGJlIGEgdmVyeSBi YWQgdGhpbmcuICBQcmUtZXhpc3RpbmcgYnl0ZS1jb21waWxlZAotCQkgICAgIDs7IGZpbGVzIGFy ZSBhbHdheXMgaW4gdGhlIGBiaW5hcnknIGNvZGluZyBzeXN0ZW0uCi0JCSAgICAgOzsgQWxzbywg Ynl0ZS1jb21waWxlZCBmaWxlcyBhbHdheXMgdXNlIGBsZicgdG8gdGVybWluYXRlCi0JCSAgICAg OzsgYSBsaW5lOyBkb24ndCByaXNrIGNvbmZ1c2lvbiBoZXJlIGVpdGhlci4KLQkJICAgICAnYmlu YXJ5Ci0JCSAgIChvciAoZmluZC1maWxlLWNvZGluZy1zeXN0ZW0tZm9yLXJlYWQtZnJvbS1maWxl bmFtZSBwYXRoKQotCQkgICAgICAgOzsgbG9va2luZyB1cCBpbiBgZmlsZS1jb2Rpbmctc3lzdGVt LWFsaXN0Jy4KLQkJICAgICAgIDs7IG90aGVyd2lzZSB1c2UgYGJ1ZmZlci1maWxlLWNvZGluZy1z eXN0ZW0tZm9yLXJlYWQnLAotCQkgICAgICAgOzsgYXMgbm9ybWFsCi0JCSAgICAgICBidWZmZXIt ZmlsZS1jb2Rpbmctc3lzdGVtLWZvci1yZWFkKQotCQkgICApKSkpCi0JOzsgVGhlIGZpbGUgbmFt ZSBpcyBpbnZhbGlkLCBvciB3ZSB3YW50IHRvIGxvYWQgYSBiaW5hcnkgbW9kdWxlCi0JKGlmIChh bmQgKD4gKGxlbmd0aCBmaWxlbmFtZSkgMCkKLQkJIChsb2NhdGUtZmlsZSBmaWxlbmFtZSBtb2R1 bGUtbG9hZC1wYXRoCi0JCQkgICAgICAoYW5kIChub3Qgbm9zdWZmaXgpIG1vZHVsZS1leHRlbnNp b25zKSkpCi0JICAgIChpZiAoZmVhdHVyZXAgJ21vZHVsZXMpCi0JCShsZXQgKChsb2FkLW1vZHVs ZXMtcXVpZXRseSBub21lc3NhZ2UpKQotCQkgIChkZWNsYXJlLWZib3VuZHAgKGxvYWQtbW9kdWxl IGZpbGVuYW1lKSkpCi0JICAgICAgKHNpZ25hbCAnZmlsZS1lcnJvciAnKCJUaGlzIFhFbWFjcyBk b2VzIG5vdCBzdXBwb3J0IG1vZHVsZXMiKSkpCi0JICAoYW5kIChudWxsIG5vZXJyb3IpCi0JICAg ICAgIChzaWduYWwgJ2ZpbGUtZXJyb3IgKGxpc3QgIkNhbm5vdCBvcGVuIGxvYWQgZmlsZSIgZmls ZW5hbWUpKSkpCi0JKSkpKQorICAobGV0IChoYW5kbGVyIHBhdGggZWxjIG9sZCAoc3BhY2VzICIi KSkKKyAgICAoY29uZAorICAgICAgOzsgTWF5YmUgdGhlcmUncyBhIGhhbmRsZXIuCisgICAgICAo KHNldHEgaGFuZGxlciAoZmluZC1maWxlLW5hbWUtaGFuZGxlciBmaWxlbmFtZSAnbG9hZCkpCisg ICAgICAgKGZ1bmNhbGwgaGFuZGxlciAnbG9hZCBmaWxlbmFtZSBub2Vycm9yIG5vbWVzc2FnZSBu b3N1ZmZpeCkpCisgICAgICA7OyBOb3BlLCBubyBoYW5kbGVyLiBUcnkgdG8gbG9hZCBhIExpc3Ag ZmlsZS4KKyAgICAgICgoc2V0cSBwYXRoCisgICAgICAgICAgICAgKGxvY2F0ZS1maWxlIChzZXRx IGZpbGVuYW1lIChzdWJzdGl0dXRlLWluLWZpbGUtbmFtZSBmaWxlbmFtZSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgIGxvYWQtcGF0aCAoYW5kIChub3Qgbm9zdWZmaXgpICcoIi5lbGMiICIu ZWwiICIiKSkpKQorICAgICAgIChzZXRxIGVsYworICAgICAgICAgICAgIChub3QgKG1pc21hdGNo CisgICAgICAgICAgICAgICAgICAgIi5lbGMiIHBhdGggOnRlc3QgKGFuZCAoZmlsZS1zeXN0ZW0t aWdub3JlLWNhc2UtcCBwYXRoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIydlcXVhbHApCis6c3RhcnQyIChtYXggMCAoLSAobGVuZ3RoIHBhdGgpIChsZW5ndGgg Ii5lbGMiKSkpKSkpCisgICAgICAgOzsgTWF5YmUgdGhlIC5lbGMgaXMgb3V0IG9mIGRhdGUgd2l0 aCByZWdhcmQgdG8gdGhlIC5lbCBmaWxlLiBJZiBzbyB3ZQorICAgICAgIDs7IG1heSBuZWVkIHRv IHByZWZlciB0aGUgLmVsIGZpbGUsIG9yIGp1c3QgdG8gd2Fybi4KKyAgICAgICAod2hlbiAoYW5k IGVsYyAob3IgbG9hZC1pZ25vcmUtb3V0LW9mLWRhdGUtZWxjLWZpbGVzCisgICAgICAgICAgICAg ICAgICAgICAgICAgIGxvYWQtd2Fybi13aGVuLXNvdXJjZS1uZXdlcikKKyAgICAgICAgICAgICAg ICAgIChmaWxlLW5ld2VyLXRoYW4tZmlsZS1wIChzdWJzZXEgcGF0aCAwIC0xKSBwYXRoKSkKKyAg ICAgICAgIChzZXRxIG9sZCAoaWYgbG9hZC1zaG93LWZ1bGwtcGF0aC1pbi1tZXNzYWdlcworICAg ICAgICAgICAgICAgICAgICAgICBwYXRoCisgICAgICAgICAgICAgICAgICAgICAoZmlsZS1uYW1l LW5vbmRpcmVjdG9yeSBwYXRoKSkKKyAgICAgICAgICAgICAgIG5vbWVzc2FnZSAob3Igbm9tZXNz YWdlIHQpKQorICAgICAgICAgICAgICAgOzsgQ29uc2lkZXJlZCBiaW5kaW5nIHRoaXMgd2l0aGlu IHRoaXMgZnVuY3Rpb24sIGJ1dCBkZWNpZGVkCisgICAgICAgICAgICAgICA7OyBhZ2FpbnN0IGl0 LCBzaW5jZSBpdCdzIG1vc3QgdXNlZCBmb3IgZGVidWdnaW5nLCBhbmQKKyAgICAgICAgICAgICAg IDs7IGVuY291bnRlcmluZyBhbiBvdXQtb2YtZGF0ZS1FTEMgZmlsZSBzaG91bGQgaGFwcGVuIHJh cmVseQorICAgICAgICAgICAgICAgOzsgZW5vdWdoIHRoYXQgdGhlIGluZmVsaWNpdHkgb2YgdGhl IGRvdWJsZS1sb2FkaW5nIG1lc3NhZ2UgaXMKKyAgICAgICAgICAgICAgIDs7IG91dHdlaWdoZWQg YnkgdGhlIGltcHJvdmVtZW50IGluIGRlYnVnZ2luZzoKKyAgICAgICAgICAgICAgIDtsb2FkLWFs d2F5cy1kaXNwbGF5LW1lc3NhZ2VzIG5pbCkKKyAgICAgICAgIChpZiAoYW5kIG5vbmludGVyYWN0 aXZlIGxvYWQtaW4tcHJvZ3Jlc3MpCisgICAgICAgICAgICAgKHNldHEgc3BhY2VzICIgICIpKQor ICAgICAgICAgKHdoZW4gbG9hZC1pZ25vcmUtb3V0LW9mLWRhdGUtZWxjLWZpbGVzCisgICAgICAg ICAgIChzZXRxIGZpbGVuYW1lCisgICAgICAgICAgICAgICAgIChpZiAobm90IChtaXNtYXRjaCAi LmVsYyIgZmlsZW5hbWUKKzpzdGFydDIgKG1heCAwICgtIChsZW5ndGggZmlsZW5hbWUpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGVuZ3Ro ICIuZWxjIikpKSkpCisgICAgICAgICAgICAgICAgICAgICAoc3Vic2VxIGZpbGVuYW1lIDAgLTEp CisgICAgICAgICAgICAgICAgICAgKGNvbmNhdCBmaWxlbmFtZSAiLmVsYyIpKQorICAgICAgICAg ICAgICAgICBwYXRoIChsb2NhdGUtZmlsZSBmaWxlbmFtZSBsb2FkLXBhdGgpKSkKKyAgICAgICAg IChtZXNzYWdlICIlcyVzICVzLi4uIChmaWxlICVzIGlzIG91dC1vZi1kYXRlKSIgc3BhY2VzCisg ICAgICAgICAgICAgICAgICAoaWYgKGVxIG5vbWVzc2FnZSAncmVxdWlyZSkgIlJlcXVpcmluZyIg IkxvYWRpbmciKQorICAgICAgICAgICAgICAgICAgKGlmIGxvYWQtc2hvdy1mdWxsLXBhdGgtaW4t bWVzc2FnZXMgcGF0aCBmaWxlbmFtZSkgb2xkKSkKKyAgICAgICA7OyBOb3cgdXNlICMnbG9hZC1p bnRlcm5hbCB0byBhY3R1YWxseSBsb2FkIHRoZSBmaWxlLgorICAgICAgIChwcm9nMQorICAgICAg ICAgICAobG9hZC1pbnRlcm5hbAorICAgICAgICAgICAgZmlsZW5hbWUgbm9lcnJvciBub21lc3Nh Z2Ugbm9zdWZmaXgKKyAgICAgICAgICAgIChvciAoYW5kIChub3QgZWxjKSBjb2Rpbmctc3lzdGVt LWZvci1yZWFkKSA7OyBQcmVmZXIgZm9yIHNvdXJjZQorICAgICAgICAgICAgICAgIDs7IGZpbmQg bWFnaWMtY29va2llCisgICAgICAgICAgICAgICAgKGxldCAoKGNvZGVzeXMKKyAgICAgICAgICAg ICAgICAgICAgICAgKGZpbmQtY29kaW5nLXN5c3RlbS1tYWdpYy1jb29raWUtaW4tZmlsZSBwYXRo KSkpCisgICAgICAgICAgICAgICAgICAod2hlbiBjb2Rlc3lzCisgICAgICAgICAgICAgICAgICAg IChzZXRxIGNvZGVzeXMgKGludGVybiBjb2Rlc3lzKSkKKyAgICAgICAgICAgICAgICAgICAgKGlm IChmaW5kLWNvZGluZy1zeXN0ZW0gY29kZXN5cykgY29kZXN5cykpKQorICAgICAgICAgICAgICAg IChpZiBlbGMKKyAgICAgICAgICAgICAgICAgICAgOzsgSWYgcmVhZGluZyBhIGJ5dGUtY29tcGls ZWQgZmlsZSBhbmQgd2UgZGlkbid0IGZpbmQgYQorICAgICAgICAgICAgICAgICAgICA7OyBjb2Rp bmctc3lzdGVtIG1hZ2ljIGNvb2tpZSwgdGhlbiB1c2UgYGJpbmFyeScuICBXZSBuZWVkCisgICAg ICAgICAgICAgICAgICAgIDs7IHRvIGd1YXJhbnRlZSB0aGF0IHdlIG5ldmVyIGRvIGF1dG9kZXRl Y3Rpb24gb24KKyAgICAgICAgICAgICAgICAgICAgOzsgYnl0ZS1jb21waWxlZCBmaWxlcyBiZWNh dXNlIGNvbmZ1c2lvbiBoZXJlIHdvdWxkIGJlIGEKKyAgICAgICAgICAgICAgICAgICAgOzsgdmVy eSBiYWQgdGhpbmcuICBQcmUtZXhpc3RpbmcgYnl0ZS1jb21waWxlZCBmaWxlcyBhcmUKKyAgICAg ICAgICAgICAgICAgICAgOzsgYWx3YXlzIGluIHRoZSBgYmluYXJ5JyBjb2Rpbmcgc3lzdGVtLiAg QWxzbywKKyAgICAgICAgICAgICAgICAgICAgOzsgYnl0ZS1jb21waWxlZCBmaWxlcyBhbHdheXMg dXNlIGBsZicgdG8gdGVybWluYXRlIGEKKyAgICAgICAgICAgICAgICAgICAgOzsgbGluZTsgZG9u J3QgcmlzayBjb25mdXNpb24gaGVyZSBlaXRoZXIuCisgICAgICAgICAgICAgICAgICAgICdiaW5h cnkKKyAgICAgICAgICAgICAgICAgIChvciAoZmluZC1maWxlLWNvZGluZy1zeXN0ZW0tZm9yLXJl YWQtZnJvbS1maWxlbmFtZSBwYXRoKQorICAgICAgICAgICAgICAgICAgICAgIDs7IGxvb2tpbmcg dXAgaW4gYGZpbGUtY29kaW5nLXN5c3RlbS1hbGlzdCcuICBvdGhlcndpc2UKKyAgICAgICAgICAg ICAgICAgICAgICA7OyB1c2UgYGJ1ZmZlci1maWxlLWNvZGluZy1zeXN0ZW0tZm9yLXJlYWQnLCBh cyBub3JtYWwKKyAgICAgICAgICAgICAgICAgICAgICBidWZmZXItZmlsZS1jb2Rpbmctc3lzdGVt LWZvci1yZWFkKSkpKQorICAgICAgICAgKGFuZCBvbGQKKyAgICAgICAgICAgICAgKG1lc3NhZ2Ug IiVzJXMgJXMuLi4gZG9uZSAoZmlsZSAlcyBpcyBvdXQtb2YtZGF0ZSkiIHNwYWNlcworICAgICAg ICAgICAgICAgICAgICAgICAoaWYgKGVxIG5vbWVzc2FnZSAncmVxdWlyZSkgIlJlcXVpcmluZyIg IkxvYWRpbmciKQorICAgICAgICAgICAgICAgICAgICAgICAoaWYgbG9hZC1zaG93LWZ1bGwtcGF0 aC1pbi1tZXNzYWdlcyBwYXRoIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICBvbGQp KSkpCisgICAgICA7OyBNYXliZSB0aGVyZSdzIGEgbW9kdWxlLgorICAgICAgKChsb2NhdGUtZmls ZSBmaWxlbmFtZSBtb2R1bGUtbG9hZC1wYXRoCisgICAgICAgICAgICAgICAgICAgIChhbmQgKG5v dCBub3N1ZmZpeCkgbW9kdWxlLWV4dGVuc2lvbnMpKQorICAgICAgIChsZXQgKChsb2FkLW1vZHVs ZXMtcXVpZXRseSBub21lc3NhZ2UpKQorICAgICAgICAgOzsgVGhpcyB3aWxsIGp1c3QgZXJyb3Ig aWYgd2UgZG9uJ3QgaGF2ZSBtb2R1bGUgc3VwcG9ydCwgbm8gbmVlZCB0bworICAgICAgICAgOzsg ZXJyb3Igc3BlY2lhbGx5IG91cnNlbHZlcy4KKyAgICAgICAgIChkZWNsYXJlLWZib3VuZHAgKGxv YWQtbW9kdWxlIGZpbGVuYW1lKSkpKQorICAgICAgOzsgTWF5YmUgd2UgY2FuJ3QgZmluZCB0aGUg ZmlsZS4KKyAgICAgICh0IChhbmQgKG5vdCBub2Vycm9yKQorICAgICAgICAgICAgICAoc2lnbmFs ICdmaWxlLWVycm9yIChsaXN0ICJDYW5ub3Qgb3BlbiBsb2FkIGZpbGUiIGZpbGVuYW1lKSkpKSkp KQogCiAoZGVmdmFyIGluc2VydC1maWxlLWNvbnRlbnRzLWFjY2Vzcy1ob29rIG5pbAogICAiQSBo b29rIHRvIG1ha2UgYSBmaWxlIGFjY2Vzc2libGUgYmVmb3JlIHJlYWRpbmcgaXQuCmRpZmYgLXIg MWFmNTNkMzVkZDUzIC1yIDExNTJlMDA5MWY4YyBzcmMvQ2hhbmdlTG9nCi0tLSBhL3NyYy9DaGFu Z2VMb2cJRnJpIE1heSAyOSAxNzowNjoyNCAyMDE1ICswMTAwCisrKyBiL3NyYy9DaGFuZ2VMb2cJ V2VkIEp1biAwMyAyMDoxMzowNyAyMDE1ICswMTAwCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDYt MDMgIEFpZGFuIEtlaG9lICA8a2Vob2VhQHBhcmhhc2FyZC5uZXQ+CisKKwkqIGxyZWFkLmMgKEZs b2FkX2ludGVybmFsKToKKwlEZWxlZ2F0ZSBjYWxsaW5nIHRoZSBoYW5kbGVyIGFuZCAjJ3N1YnN0 aXR1dGUtaW4tZmlsZS1uYW1lIHRvICMnbG9hZC4KKwlFcnJvciBjb3JyZWN0bHkgd2l0aCBhIHpl cm8tbGVuZ3RoIGZpbGUgbmFtZSwgaW5zdGVhZCBvZiBnaXZpbmcgYQorCWJ1cyBlcnJvciBvbiBt eSBtYWNoaW5lLgorCURlbGVnYXRlIHRoZSBjaGVjayBmb3Igb3V0LW9mLWRhdGUgRUxDIGZpbGVz IHRvICMnbG9hZCwgCisJYXZvaWRpbmcgYSBidWcgd2hlcmUgdGhlIGVuY29kaW5nIG9mIHRoZSBF TEMgZmlsZSBhbmQgdGhlIHNvdXJjZQorCWZpbGUgZGlmZmVyZWQuCisJKiBscmVhZC5jIChQUklO VF9MT0FESU5HX01FU1NBR0VfMSk6CisJVGhpcyBpcyBzaW1wbGlmaWVkLCBub3cgd2Ugbm8gbG9u Z2VyIGhhdmUgdG8gdGFsayBhYm91dAorCW91dC1vZi1kYXRlIEVMQyBmaWxlcy4KKwogMjAxNS0w NS0xNSAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KIAogCSogYnVmZmVyLmM6 CmRpZmYgLXIgMWFmNTNkMzVkZDUzIC1yIDExNTJlMDA5MWY4YyBzcmMvbHJlYWQuYwotLS0gYS9z cmMvbHJlYWQuYwlGcmkgTWF5IDI5IDE3OjA2OjI0IDIwMTUgKzAxMDAKKysrIGIvc3JjL2xyZWFk LmMJV2VkIEp1biAwMyAyMDoxMzowNyAyMDE1ICswMTAwCkBAIC01MzIsNDIgKzUzMiwyNiBAQAog ICBpbnQgZmQgPSAtMTsKICAgaW50IHNwZWNjb3VudCA9IHNwZWNwZGxfZGVwdGggKCk7CiAgIGlu dCBzb3VyY2Vfb25seSA9IDA7Ci0gIC8qIE5FV0VSIGFuZCBPTERFUiBhcmUgZmlsZW5hbWVzIHcv byBkaXJlY3RvcnksIHVzZWQgaW4gbG9hZGluZyBtZXNzYWdlcwotICAgICB0byBlLmcuIHdhcm4g b2YgbmV3ZXIgLmVsIGZpbGVzIHdoZW4gdGhlIC5lbGMgaXMgYmVpbmcgbG9hZGVkLiAqLworICAv KiBORVdFUiBpcyBhIGZpbGVuYW1lIHdpdGhvdXQgZGlyZWN0b3J5LCB1c2VkIGluIGxvYWRpbmcg bWVzc2FnZXMgd2hlbgorICAgICBsb2FkLWlnbm9yZS1lbGMtZmlsZXMgaXMgbm9uLW5pbC4gKi8K ICAgTGlzcF9PYmplY3QgbmV3ZXIgICA9IFFuaWw7Ci0gIExpc3BfT2JqZWN0IG9sZGVyICAgPSBR bmlsOwotICBMaXNwX09iamVjdCBoYW5kbGVyID0gUW5pbDsKICAgTGlzcF9PYmplY3QgZm91bmQg ICA9IFFuaWw7CiAgIExpc3BfT2JqZWN0IHJldHZhbDsKLSAgc3RydWN0IGdjcHJvIGdjcHJvMSwg Z2Nwcm8yLCBnY3BybzMsIGdjcHJvNDsKKyAgc3RydWN0IGdjcHJvIGdjcHJvMSwgZ2Nwcm8yLCBn Y3BybzM7CiAgIGludCByZWFkaW5nX2VsYyA9IDA7CiAgIGludCBmcm9tX3JlcXVpcmUgPSBFUSAo bm9tZXNzYWdlLCBRcmVxdWlyZSk7CiAgIGludCBtZXNzYWdlX3AgPSBOSUxQIChub21lc3NhZ2Up IHx8IGxvYWRfYWx3YXlzX2Rpc3BsYXlfbWVzc2FnZXM7Ci0gIHN0cnVjdCBzdGF0IHMxLCBzMjsK ICAgSWJ5dGUgKnNwYWNlcyA9IGFsbG9jYV9pYnl0ZXMgKGxvYWRfaW5fcHJvZ3Jlc3MgKiAyICsg MTApOwogICBpbnQgaTsKICAgUFJPRklMRV9ERUNMQVJFICgpOwogCi0gIEdDUFJPNCAoZmlsZSwg bmV3ZXIsIG9sZGVyLCBmb3VuZCk7CiAgIENIRUNLX1NUUklORyAoZmlsZSk7CisgIENIRUNLX1NZ TUJPTCAodXNlZF9jb2Rlc3lzKTsgLyogRWl0aGVyIG5pbCBvciBhbm90aGVyIHN5bWJvbCB0byB3 cml0ZSB0by4gKi8KKworICBHQ1BSTzMgKGZpbGUsIG5ld2VyLCBmb3VuZCk7CiAKICAgUFJPRklM RV9SRUNPUkRfRU5URVJJTkdfU0VDVElPTiAoUWxvYWRfaW50ZXJuYWwpOwogCi0gIC8qIElmIGZp bGUgbmFtZSBpcyBtYWdpYywgY2FsbCB0aGUgaGFuZGxlci4gICovCi0gIGhhbmRsZXIgPSBGZmlu ZF9maWxlX25hbWVfaGFuZGxlciAoZmlsZSwgUWxvYWQpOwotICBpZiAoIU5JTFAgKGhhbmRsZXIp KQotICAgIHsKLSAgICAgIHJldHZhbCA9IGNhbGw1IChoYW5kbGVyLCBRbG9hZCwgZmlsZSwgbm9l cnJvciwgbm9tZXNzYWdlLCBub3N1ZmZpeCk7Ci0gICAgICBnb3RvIGRvbmU7Ci0gICAgfQotCi0g IC8qIERvIHRoaXMgYWZ0ZXIgdGhlIGhhbmRsZXIgdG8gYXZvaWQKLSAgICAgdGhlIG5lZWQgdG8g Z2Nwcm8gbm9lcnJvciwgbm9tZXNzYWdlIGFuZCBub3N1ZmZpeC4KLSAgICAgKEJlbG93IGhlcmUs IHdlIGNhcmUgb25seSB3aGV0aGVyIHRoZXkgYXJlIG5pbCBvciBub3QuKSAgKi8KLSAgZmlsZSA9 IEZzdWJzdGl0dXRlX2luX2ZpbGVfbmFtZSAoZmlsZSk7Ci0gIGlmICghTklMUCAodXNlZF9jb2Rl c3lzKSkKLSAgICBDSEVDS19TWU1CT0wgKHVzZWRfY29kZXN5cyk7Ci0KICAgaWYgKG5vbmludGVy YWN0aXZlKQogICAgIHsKICAgICAgIGZvciAoaSA9IDA7IGkgPCBsb2FkX2luX3Byb2dyZXNzICog MjsgaSsrKQpAQCAtNTgwLDcgKzU2NCwxNyBAQAogICAvKiBBdm9pZCB3ZWlyZCBsb3NzYWdlIHdp dGggbnVsbCBzdHJpbmcgYXMgYXJnLAogICAgICBzaW5jZSBpdCB3b3VsZCB0cnkgdG8gbG9hZCBh IGRpcmVjdG9yeSBhcyBhIExpc3AgZmlsZS4KICAgICAgVW5peCB0cnVseSBzdWNrcy4gKi8KLSAg aWYgKFhTVFJJTkdfTEVOR1RIIChmaWxlKSA+IDApCisgIGlmIChYU1RSSU5HX0xFTkdUSCAoZmls ZSkgPT0gMCkKKyAgICB7CisgICAgICBpZiAoTklMUCAobm9lcnJvcikpCisgICAgICAgIHNpZ25h bF9lcnJvciAoUWZpbGVfZXJyb3IsICJDYW5ub3Qgb3BlbiBsb2FkIGZpbGUiLCBmaWxlKTsKKyAg ICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgIHJldHZhbCA9IFFuaWw7CisgICAgICAgICAg Z290byBkb25lOworICAgICAgICB9CisgICAgfQorICBlbHNlCiAgICAgewogICAgICAgSWJ5dGUg KmZvdW5kc3RyOwogICAgICAgaW50IGZvdW5kbGVuOwpAQCAtNjExLDQ0ICs2MDUsNiBAQAogCSBk aWZmZXIuIC0tYmVuICovCiAgICAgICBpZiAobG9hZF9pZ25vcmVfZWxjX2ZpbGVzKQogCW5ld2Vy ID0gRmZpbGVfbmFtZV9ub25kaXJlY3RvcnkgKGZvdW5kKTsKLSAgICAgIGVsc2UgaWYgKChsb2Fk X3dhcm5fd2hlbl9zb3VyY2VfbmV3ZXIgfHwKLQkJbG9hZF9pZ25vcmVfb3V0X29mX2RhdGVfZWxj X2ZpbGVzKSAmJgotCSAgICAgICAhbWVtY21wICgiLmVsYyIsIGZvdW5kc3RyICsgZm91bmRsZW4g LSA0LCA0KSkKLQl7Ci0JICBpZiAoISBxeGVfZnN0YXQgKGZkLCAmczEpKQkvKiBjYW4ndCBmYWls LCByaWdodD8gKi8KLQkgICAgewotCSAgICAgIGludCByZXN1bHQ7Ci0JICAgICAgLyogdGVtcG9y YXJpbHkgaGFjayB0aGUgJ2MnIG9mZiB0aGUgZW5kIG9mIHRoZSBmaWxlbmFtZSAqLwotCSAgICAg IGZvdW5kc3RyW2ZvdW5kbGVuIC0gMV0gPSAnXDAnOwotCSAgICAgIHJlc3VsdCA9IHF4ZV9zdGF0 IChmb3VuZHN0ciwgJnMyKTsKLQkgICAgICBpZiAocmVzdWx0ID49IDAgJiYKLQkJICAodW5zaWdu ZWQpIHMxLnN0X210aW1lIDwgKHVuc2lnbmVkKSBzMi5zdF9tdGltZSkKLQkJewotCQkgIC8qIC5l bGMgZXhpc3RzIGFuZCBpcyBvdXQtb2YtZGF0ZSB3cnQgLmVsICovCi0JCSAgTGlzcF9PYmplY3Qg ZWxfbmFtZSA9IG1ha2Vfc3RyaW5nIChmb3VuZHN0ciwgZm91bmRsZW4gLSAxKTsKLQkJICBzdHJ1 Y3QgZ2Nwcm8gbm5nY3BybzE7Ci0JCSAgTk5HQ1BSTzEgKGVsX25hbWUpOwotCQkgIG5ld2VyID0g RmZpbGVfbmFtZV9ub25kaXJlY3RvcnkgKGVsX25hbWUpOwotCQkgIGlmIChsb2FkX2lnbm9yZV9v dXRfb2ZfZGF0ZV9lbGNfZmlsZXMpCi0JCSAgICB7Ci0JCSAgICAgIGludCBuZXdmZCA9Ci0JCQls b2NhdGVfZmlsZV9vcGVuX29yX2FjY2Vzc19maWxlCi0JCQkoWFNUUklOR19EQVRBIChlbF9uYW1l KSwgLTEpOwotCi0JCSAgICAgIGlmIChuZXdmZCA+PSAwKQotCQkJewotCQkJICBvbGRlciA9IEZm aWxlX25hbWVfbm9uZGlyZWN0b3J5IChmb3VuZCk7Ci0JCQkgIGZvdW5kID0gZWxfbmFtZTsKLQkJ CSAgcmV0cnlfY2xvc2UgKGZkKTsKLQkJCSAgZmQgPSBuZXdmZDsKLQkJCX0KLQkJICAgIH0KLQkJ ICBOTlVOR0NQUk87Ci0JCX0KLQkgICAgICAvKiBwdXQgdGhlICdjJyBiYWNrIG9uIChrbHVkZ2Ut by1yYW1hKSAqLwotCSAgICAgIGZvdW5kc3RyW2ZvdW5kbGVuIC0gMV0gPSAnYyc7Ci0JICAgIH0K LQl9CiAgICAgICBlbHNlIGlmIChsb2FkX3dhcm5fd2hlbl9zb3VyY2Vfb25seSAmJgogCSAgICAg ICAvKiBgZm91bmQnIGVuZHMgaW4gIi5lbCIgKi8KIAkgICAgICAgIW1lbWNtcCAoIi5lbCIsIGZv dW5kc3RyICsgZm91bmRsZW4gLSAzLCAzKSAmJgpAQCAtNjcxLDE5ICs2MjcsNiBAQAogCQkgWFNU UklOR19EQVRBIChsb2FkX3Nob3dfZnVsbF9wYXRoX2luX21lc3NhZ2VzID8JXAogCQkJICAgICAg IGZvdW5kIDogbmV3ZXIpKTsJCQkJXAogICAgIH0JCQkJCQkJCQlcCi0gIGVsc2UgaWYgKCFOSUxQ IChvbGRlcikpCQkJCQkJXAotICAgIHsJCQkJCQkJCQlcCi0gICAgICBhc3NlcnQgKGxvYWRfaWdu b3JlX291dF9vZl9kYXRlX2VsY19maWxlcyk7CQkJXAotICAgICAgbWVzc2FnZSAobG9hZGluZyBk b25lICIgKGZpbGUgJXMgaXMgb3V0LW9mLWRhdGUpIiwgc3BhY2VzLAlcCi0JICAgICAgIFhTVFJJ TkdfREFUQSAobG9hZF9zaG93X2Z1bGxfcGF0aF9pbl9tZXNzYWdlcyA/CQlcCi0JCQkgICAgIGZv dW5kIDogbmV3ZXIpLAkJCQlcCi0JICAgICAgIFhTVFJJTkdfREFUQSAob2xkZXIpKTsJCQkJCVwK LSAgICB9CQkJCQkJCQkJXAotICBlbHNlIGlmICghTklMUCAobmV3ZXIpKQkJCQkJCVwKLSAgICBt ZXNzYWdlIChsb2FkaW5nIGRvbmUgIiAoZmlsZSAlcyBpcyBuZXdlcikiLCBzcGFjZXMsCQlcCi0J ICAgICBYU1RSSU5HX0RBVEEgKGxvYWRfc2hvd19mdWxsX3BhdGhfaW5fbWVzc2FnZXMgPwkJXAot CQkJICAgZm91bmQgOiBmaWxlKSwJCQkJXAotCSAgICAgWFNUUklOR19EQVRBIChuZXdlcikpOwkJ CQkJXAogICBlbHNlIGlmIChzb3VyY2Vfb25seSkJCQkJCQkJXAogICAgIG1lc3NhZ2UgKGxvYWRp bmcgZG9uZSAiIChmaWxlICVzLmVsYyBkb2VzIG5vdCBleGlzdCkiLCBzcGFjZXMsCVwKIAkgICAg IFhTVFJJTkdfREFUQSAobG9hZF9zaG93X2Z1bGxfcGF0aF9pbl9tZXNzYWdlcyA/CQlcCmRpZmYg LXIgMWFmNTNkMzVkZDUzIC1yIDExNTJlMDA5MWY4YyB0ZXN0cy9DaGFuZ2VMb2cKLS0tIGEvdGVz dHMvQ2hhbmdlTG9nCUZyaSBNYXkgMjkgMTc6MDY6MjQgMjAxNSArMDEwMAorKysgYi90ZXN0cy9D aGFuZ2VMb2cJV2VkIEp1biAwMyAyMDoxMzowNyAyMDE1ICswMTAwCkBAIC0xLDMgKzEsOSBAQAor MjAxNS0wNi0wMyAgQWlkYW4gS2Vob2UgIDxrZWhvZWFAcGFyaGFzYXJkLm5ldD4KKworCSogYXV0 b21hdGVkL2ZpbGUtdGVzdHMuZWw6CisJR3Jvc3Mgc2FuaXR5IGNoZWNrIGZvciAjJ2xvYWQgYW5k ICMnbG9hZC1pbnRlcm5hbCB3aXRoIGEKKwl6ZXJvLWxlbmd0aCBGSUxFLCBzb21ldGhpbmcgdGhh dCBjcmFzaGVkIHVudGlsIHRvZGF5LgorCiAyMDE1LTA1LTI5ICBBaWRhbiBLZWhvZSAgPGtlaG9l YUBwYXJoYXNhcmQubmV0PgogCiAJKiBhdXRvbWF0ZWQvbGlzcC10ZXN0cy5lbDoKZGlmZiAtciAx YWY1M2QzNWRkNTMgLXIgMTE1MmUwMDkxZjhjIHRlc3RzL2F1dG9tYXRlZC9maWxlLXRlc3RzLmVs Ci0tLSBhL3Rlc3RzL2F1dG9tYXRlZC9maWxlLXRlc3RzLmVsCUZyaSBNYXkgMjkgMTc6MDY6MjQg MjAxNSArMDEwMAorKysgYi90ZXN0cy9hdXRvbWF0ZWQvZmlsZS10ZXN0cy5lbAlXZWQgSnVuIDAz IDIwOjEzOjA3IDIwMTUgKzAxMDAKQEAgLTQwLDQgKzQwLDExIEBACiAgIGRvCiAgIChBc3NlcnQg KGVxdWFsIChmaWxlLXRydWVuYW1lIChmaWxlLXRydWVuYW1lIGZpbGUpKSAoZmlsZS10cnVlbmFt ZSBmaWxlKSkpKQogCis7OworOzsgR3Jvc3Mgc2FuaXR5IGNoZWNrIHdpdGggIydsb2FkIGFuZCBh IHplcm8tbGVuZ3RoIGZpbGVuYW1lOgorKENoZWNrLUVycm9yIGZpbGUtZXJyb3IgKGxvYWQgIiIp KQorKEFzc2VydCAoZXEgbmlsIChsb2FkICIiIHQpKSkKKyhDaGVjay1FcnJvciBmaWxlLWVycm9y IChsb2FkLWludGVybmFsICIiKSkKKyhBc3NlcnQgKGVxIG5pbCAobG9hZC1pbnRlcm5hbCAiIiB0 KSkpCiAKKzs7OyBlbmQgb2YgZmlsZS10ZXN0cy5lbAoKCi0tIArigJhUcmFtYWRvbCBpcyBmdXJ0 aGVyIGZlZCB0byBjYXR0bGUgW+KApl0gd2hlbiB3b3JraW5nIHRoZW0gW+KApl0gKGFzIGRyYWZ0 CmFuaW1hbHMpIHNvIHRoYXQgdGhlIGFuaW1hbHMgZG8gbm90IGdldCB0aXJlZCBxdWlja2x5LiDi gKbigJkKCeKAlCBBbmdld2FuZHRlIENoZW1pZSwgU2VwdCAyMDE0LCBkZXNjcmliaW5nIHRoZSBz b2NpYWwgY29udGV4dCBvZgoJKHN5bnRoZXRpYykgdHJhbWFkb2wgaGF2aW5nIGJlZW4gZm91bmQg aW4gQ2FtZXJvb24gdHJlZSByb290cy4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fClhFbWFjcy1QYXRjaGVzIG1haWxpbmcgbGlzdApYRW1hY3MtUGF0Y2hl c0B4ZW1hY3Mub3JnCmh0dHA6Ly9saXN0cy54ZW1hY3Mub3JnL21haWxtYW4vbGlzdGluZm8veGVt YWNzLXBhdGNoZXMK