Re: A 'makedep' feature for m4.
Eric Blake via M4-patches <[email protected]> Sat, 12 Apr 2025 21:07:49 -0500
| Newsgroups | gmane.comp.gnu.m4.patches |
|---|---|
| Message-ID | <v7vqivgoelcvqmkvxzktr3cchiolykscv333rm2yluxoc2gxc3@tw6iqvvakfak> |
T24gV2VkLCBBcHIgMDksIDIwMjUgYXQgMTA6MDM6MDZQTSAtMDQwMCwgRGF2aWQgTS4gV2FybWUg d3JvdGU6Cj4gUmUtc3VibWl0dGluZyB0aGlzIHBhdGNoIGZvciBhbiBtNCAnbWFrZWRlcCcgZmVh dHVyZS4KPiAKPiBUaGlzIHBhdGNoIGlzIGJhc2VkIG9uIGJyYW5jaC0xLjQgYXMgb2YgdG9kYXku CgpUaGFuayB5b3UgZm9yIHByb3ZpZGluZyB0aGF0IHVwZGF0ZS4gSSdtIGxlYW5pbmcgdG93YXJk cyBhcHBseWluZyBpdAp0byAxLjYgcmF0aGVyIHRoYW4gMS40LCBidXQgd2UnbGwgc2VlIGhvdyB0 aGluZ3MgZ28uICBJJ20gdHJ5aW5nIHRvCmdldCBiZXRhIDEuNC4xOWIgb3V0IHRoZSBkb29yIHRo aXMgd2Vla2VuZCB0byBtYWtlIHN1cmUgSSBkaWRuJ3QgYnJlYWsKYnVpbGRzIG9uIGFueSBwbGF0 Zm9ybXMsIHRoZW4gZm9sbG93IHRoYXQgc2hvcnRseSBieSBzdGFibGUgMS40LjIwOwphbmQgaW4g cGFyYWxsZWwgcHV0IG91dCBiZXRhIDEuNS45MCB3aXRoIHlvdXIgcGF0Y2ggaW5jbHVkZWQgYXMg YQpwcmV2aWV3IG9mIHdoYXQgSSBob3BlIHdpbGwgYmUgMS42IHNvb24gKEkgc3BlbnQgZXZlbmlu Z3MgdGhpcyB3ZWVrCmdldHRpbmcgb3ZlciAxMDAgcGF0Y2hlcyBmcm9tIDEuNC54IGZvcndhcmQg cG9ydGVkIG9uIHRvcCBvZiB0aGUgbGFzdAoxLjUuODlhIHJlbGVhc2Ugb24gYnJhbmNoLTEuNiku ICBCdXQgYSBsb3Qgb2YgdGhhdCBkZXBlbmRzIG9uIGhvdyBtdWNoCmFkZGl0aW9uYWwgZnJlZSB0 aW1lIEkgY2FuIG1ha2Ugb24gdGhlIG5leHQgZmV3IHdlZWtlbmRzLi4uCgpBZGRpdGlvbmFsIHJl dmlldyBjb21tZW50cyBiZWxvdy4uLgoKPiAKPiBEYXZpZAo+IAo+IAo+ICBDaGFuZ2VMb2ctMjAx NCB8ICAxNCArKysrKysKPiAgTkVXUyAgICAgICAgICAgfCAgIDIgKwo+ICBUSEFOS1MgICAgICAg ICB8ICAgMiArCj4gIGRvYy9tNC50ZXhpICAgIHwgMTE2ICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysKPiAgc3JjL2J1aWx0aW4uYyAgfCAgMTkgKysrKy0tLQo+ICBz cmMvbTQuYyAgICAgICB8IDE1MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0KPiAgc3JjL200LmggICAgICAgfCAgMTUgKysrKystCj4gIHNy Yy9wYXRoLmMgICAgIHwgIDc5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIDggZmls ZXMgY2hhbmdlZCwgMzkwIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQouLi4KPiArKysg Yi9kb2MvbTQudGV4aQo+IEBAIC0xNjEsNiArMTYxLDcgQEAKPiAgKiBQcmVwcm9jZXNzb3IgZmVh dHVyZXM6OiAgICAgICBDb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJlcHJvY2Vzc29yIGZlYXR1 cmVzCj4gICogTGltaXRzIGNvbnRyb2w6OiAgICAgICAgICAgICAgQ29tbWFuZCBsaW5lIG9wdGlv bnMgZm9yIGxpbWl0cyBjb250cm9sCj4gICogRnJvemVuIHN0YXRlOjogICAgICAgICAgICAgICAg Q29tbWFuZCBsaW5lIG9wdGlvbnMgZm9yIGZyb3plbiBzdGF0ZQo+ICsqIE1ha2UgZGVwZW5kZW5j eSBnZW5lcmF0aW9uOjogIEdlbmVyYXRpbmcgbWFrZSBkZXBlbmNlbmN5IHJ1bGVzCgpUaGlzIGZl ZWxzIGxpa2UgaXQgbWlnaHQgYmVsb25nIGNsb3NlciB0byB0aGUgUHJlcHJvY2Vzc29yIGZlYXR1 cmVzCnNlY3Rpb24gb2YgdGhlIG1hbnVhbCAoc2luY2UgaXQgaXMgbGlrZSBzeW5jbGluZXMsIF9f bGluZV9fLCBhbmQKX19maWxlKS4KCj4gQEAgLTg2NCw2ICs4NjYsMTIwIEBACj4gIGZpbGVzIGFy ZSByZWFkLgo+ICBAZW5kIHRhYmxlCj4gK0Bub2RlIE1ha2UgZGVwZW5kZW5jeSBnZW5lcmF0aW9u Cj4gK0BzZWN0aW9uIENvbW1hbmQgbGluZSBvcHRpb25zIGZvciBnZW5lcmF0aW5nIE1ha2VmaWxl IGRlcGVuZGVuY3kgcnVsZXMKPiArCj4gK01ha2VmaWxlIGRlcGVuZGVuY3kgcnVsZXMgY2FuIGJl IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IHNwZWNpZnlpbmcKPiArYm90aCB0aGUgQGNvZGV7 LS1tYWtlZGVwPX1AdmFye2ZpbGV9IGFuZAo+ICtAY29kZXstLW1ha2VkZXAtdGFyZ2V0PX1AdmFy e3RhcmdldH0gb3B0aW9ucy4KPiArCj4gK0B0YWJsZSBAY29kZQo+ICtAaXRlbSAtLW1ha2VkZXA9 QHZhcntmaWxlfQo+ICtDYXVzZXMgQGNvZGV7bTR9IHRvIGdlbmVyYXRlIGEgZGVwZW5kZW5jeSBy dWxlIGludG8gdGhlIHNwZWNpZmllZAo+ICtAdmFye2ZpbGV9LiAgTWFjcm8gZXhwYW5zaW9uIG91 dHB1dCBpcyBzdGlsbCB3cml0dGVuIHRvIHN0ZG91dCBhcwo+ICtub3JtYWwuICBUaGlzIG9wdGlv biBpcyBhbmFsb2dvdXMgdG8gdGhlIEBjb2Rley1NRn0gb3B0aW9uIG9mCj4gK0Bjb2Rle2djY30u Cj4gKwo+ICtAaXRlbSAtLW1ha2VkZXAtdGFyZ2V0PUB2YXJ7dGFyZ2V0fQo+ICtTcGVjaWZpZXMg QHZhcnt0YXJnZXR9IHRvIGJlIHRoZSB0YXJnZXQgb2YgdGhlIGdlbmVyYXRlZCBkZXBlbmRlbmN5 Cj4gK3J1bGUuICBUaGUgc3RyaW5nIEB2YXJ7dGFyZ2V0fSBpcyB1c2VkIHZlcmJhdGltLCBhbmQg Y2FuIGNvbnRhaW4gc2V2ZXJhbAo+ICtsb2dpY2FsIHRhcmdldHMgc2VwYXJhdGVkIGJ5IHNwYWNl cy4gIEl0IGlzIHRoZSB1c2VyJ3MgcmVzcG9uc2liaWxpdHkgdG8KPiArcHJvcGVybHkgZXhwcmVz cyBjaGFyYWN0ZXJzIHRoYXQgQGNvZGV7bWFrZX0gaGFuZGxlcyBzcGVjaWFsbHkgKHN1Y2ggYXMK PiArJ0Bjb2RleyR9Jywgb3Igc3BhY2VzIHdpdGhpbiBmaWxlIG5hbWVzKS4gIFNpbmNlIEBjb2Rl e200fSBzZW5kcyBpdHMKPiArbWFjcm8gZXhwYW5zaW9uIG91dHB1dCB0byBzdGRvdXQsIGl0IG5l dmVyIHJlYWxseSBrbm93cyB0aGUgbmFtZSBvZiB0aGUKPiArdGFyZ2V0IGZpbGUgYmVpbmcgZ2Vu ZXJhdGVkLCBzbyB0aGUgdGFyZ2V0IG11c3QgYWx3YXlzIGJlIHNwZWNpZmllZAo+ICtleHBsaWNp dGx5IGJ5IHRoZSB1c2VyIHdpdGggdGhpcyBvcHRpb24uICBUaGlzIG9wdGlvbiBpcyBhbmFsb2dv dXMgdG8KPiArdGhlIEBjb2Rley1NVH0gb3B0aW9uIG9mIEBjb2Rle2djY30gKGV4Y2VwdCB0aGF0 IEBjb2Rle2djY30gYWxsb3dzCj4gK0Bjb2Rley1NVH0gdG8gYmUgc3BlY2lmaWVkIG11bHRpcGxl IHRpbWVzKS4KPiArQGVuZCB0YWJsZQo+ICsKPiArTm90ZSB0aGF0IHRoZSBAY29kZXstLW1ha2Vk ZXA9fUB2YXJ7ZmlsZX0gYW5kCj4gK0Bjb2Rle21ha2VkZXAtdGFyZ2V0PX1AdmFye3RhcmdldH0g b3B0aW9ucyBtdXN0IGVpdGhlciAoYSkgYm90aCBiZQo+ICtzcGVjaWZpZWQsIG9yIChiKSBuZWl0 aGVyIGJlIHNwZWNpZmllZC4gIFRoZXkgY2Fubm90IGJlIHVzZWQKPiAraW5kZXBlbmRlbnRseSBv ZiBlYWNoIG90aGVyLgo+ICsKPiArVGhlIGZvbGxvd2luZyBhZGRpdGlvbmFsIG9wdGlvbnMgY2Fu IGFsc28gYmUgdXNlZCB3aGVuIGRlcGVuZGVuY3kgcnVsZXMKPiArYXJlIGJlaW5nIGdlbmVyYXRl ZCAodGhlc2Ugb3B0aW9ucyBhcmUgb25seSB2YWxpZCB3aGVuIGJvdGgKPiArQGNvZGV7bWFrZWRl cD19QHZhcntmaWxlfSBhbmQgQGNvZGV7bWFrZWRlcC10YXJnZXQ9fUB2YXJ7dGFyZ2V0fSBoYXZl Cj4gK2Fsc28gYmVlbiBzcGVjaWZpZWQpOgo+ICsKPiArQHRhYmxlIEBjb2RlCj4gK0BpdGVtIC0t bWFrZWRlcC1nZW4tbWlzc2luZy1hcmdmaWxlcwo+ICtDYXVzZXMgQGNvZGV7bTR9IHRvIGFzc3Vt ZSB0aGF0IGFueSBmaWxlIGxpc3RlZCBvbiB0aGUgY29tbWFuZCBsaW5lIHRoYXQKPiAraXMgbWlz c2luZyAoaS5lLiwgZG9lcyBub3QgZXhpc3QpIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVk IGZpbGUuCj4gK0Bjb2Rle000fSBpbmNsdWRlcyBzdWNoIG1pc3NpbmcgZmlsZXMgYXMgZGVwZW5k ZW5jaWVzIGluIHRoZSBnZW5lcmF0ZWQKPiArcnVsZSByZWdhcmRsZXNzLiAgSW4gdGhpcyBjYXNl IHRoZSBkZXBlbmRlbmN5IGFwcGVhcnMgZXhhY3RseSBhcwo+ICtzcGVjaWZpZWQgb24gdGhlIGNv bW1hbmQgbGluZSBhbmQgaXMgbm90IG1vZGlmaWVkIGJ5IGFueQo+ICtAY29kZXstSX1AdmFye3Nl YXJjaGRpcn0gcHJlZml4ZXMuICBOb3RlIHRoYXQgdGhlIG1hY3JvIGV4cGFuc2lvbiBvdXRwdXQK PiArZ2VuZXJhdGVkIHRvIHN0ZG91dCB3aWxsIGJlIGluY29ycmVjdCB3aGVuIHRoaXMgaGFwcGVu cyBiZWNhdXNlIHRoZQo+ICttaXNzaW5nIGZpbGUgaXMgYXNzdW1lZCB0byBiZSBhbiBlbXB0eSBm aWxlLiAgQSB3YXJuaW5nIGlzIHByb2R1Y2VkIG9uCj4gK3N0ZGVyciBmb3IgZWFjaCBtaXNzaW5n IGNvbW1hbmQgbGluZSBmaWxlIGhhbmRsZWQgaW4gdGhpcyBtYW5uZXIuCj4gKwo+ICtAaXRlbSAt LW1ha2VkZXAtZ2VuLW1pc3NpbmctaW5jbHVkZQo+ICtDYXVzZXMgQGNvZGV7bTR9IHRvIGFzc3Vt ZSB0aGF0IGFueSBmaWxlIGluY2x1ZGVkIHZpYSB0aGUKPiArQGNvZGV7aW5jbHVkZSgpfSBtYWNy byB0aGF0IGlzIG1pc3NpbmcgKGkuZS4sIGRvZXMgbm90IGV4aXN0KSBpcyBhbgo+ICthdXRvbWF0 aWNhbGx5IGdlbmVyYXRlZCBmaWxlLiAgQGNvZGV7TTR9IGluY2x1ZGVzIHN1Y2ggbWlzc2luZyBm aWxlcyBhcwo+ICtkZXBlbmRlbmNpZXMgaW4gdGhlIGdlbmVyYXRlZCBydWxlIHJlZ2FyZGxlc3Mu ICBJbiB0aGlzIGNhc2UgdGhlCj4gK2RlcGVuZGVuY3kgYXBwZWFycyBleGFjdGx5IGFzIHNwZWNp ZmllZCBpbiB0aGUgYXJndW1lbnQgdG8KPiArQGNvZGV7aW5jbHVkZSgpfSBhbmQgaXMgbm90IG1v ZGlmaWVkIGJ5IGFueSBAY29kZXstSX1AdmFye3NlYXJjaGRpcn0KPiArcHJlZml4ZXMuICBOb3Rl IHRoYXQgdGhlIG1hY3JvIGV4cGFuc2lvbiBvdXRwdXQgZ2VuZXJhdGVkIHRvIHN0ZG91dCB3aWxs Cj4gK2JlIGluY29ycmVjdCB3aGVuIHRoaXMgaGFwcGVucyBiZWNhdXNlIHRoZSBtaXNzaW5nIGZp bGUgaXMgYXNzdW1lZCB0byBiZQo+ICthbiBlbXB0eSBmaWxlLiAgVGhpcyBvcHRpb24gY2F1c2Vz IHRoZSBAY29kZXttNH0gQGNvZGV7aW5jbHVkZSgpfSBtYWNybwo+ICt0byBiZWhhdmUgbGlrZSBA Y29kZXtzaW5jbHVkZSgpfSwgZXhjZXB0IHRoYXQgYSB3YXJuaW5nIG1lc3NhZ2UgaXMKPiArcHJv ZHVjZWQgb24gc3RkZXJyIHRvIGluZGljYXRlIHRoYXQgdGhlIHJlcXVlc3RlZCBmaWxlIHdhcyBt aXNzaW5nLgo+ICtUaGlzIG9wdGlvbiBpcyBhbmFsb2dvdXMgdG8gdGhlIEBjb2Rley1NR30gb3B0 aW9uIG9mIEBjb2Rle2djY30uCj4gKwo+ICtAaXRlbSAtLW1ha2VkZXAtZ2VuLW1pc3Npbmctc2lu Y2x1ZGUKPiArQ2F1c2VzIEBjb2Rle200fSB0byBhc3N1bWUgdGhhdCBhbnkgZmlsZSBpbmNsdWRl ZCB2aWEgdGhlCj4gK0Bjb2Rle3NpbmNsdWRlKCl9IG1hY3JvIHRoYXQgaXMgbWlzc2luZyAoaS5l LiwgZG9lcyBub3QgZXhpc3QpIGlzIGFuCj4gK2F1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZpbGUu ICBAY29kZXtNNH0gaW5jbHVkZXMgc3VjaCBtaXNzaW5nIGZpbGVzIGFzCj4gK2RlcGVuZGVuY2ll cyBpbiB0aGUgZ2VuZXJhdGVkIHJ1bGUgcmVnYXJkbGVzcy4gIEluIHRoaXMgY2FzZSB0aGUKPiAr ZGVwZW5kZW5jeSBhcHBlYXJzIGV4YWN0bHkgYXMgc3BlY2lmaWVkIGluIHRoZSBhcmd1bWVudCB0 bwo+ICtAY29kZXtzaW5jbHVkZSgpfSBhbmQgaXMgbm90IG1vZGlmaWVkIGJ5IGFueSBAY29kZXst SX1AdmFye3NlYXJjaGRpcn0KPiArcHJlZml4ZXMuICBOb3RlIHRoYXQgdGhlIG1hY3JvIGV4cGFu c2lvbiBvdXRwdXQgZ2VuZXJhdGVkIHRvIHN0ZG91dCB3aWxsCj4gK2JlIGluY29ycmVjdCB3aGVu IHRoaXMgaGFwcGVucyBiZWNhdXNlIHRoZSBtaXNzaW5nIGZpbGUgaXMgYXNzdW1lZCB0byBiZQo+ ICthbiBlbXB0eSBmaWxlLiAgVGhpcyBvcHRpb24gZG9lcyBub3QgYWx0ZXIgQGNvZGV7c2luY2x1 ZGUoKX0ncyBiZWhhdmlvcgo+ICtvZiBzaWxlbnRseSBpZ25vcmluZyByZXF1ZXN0cyB0byBAY29k ZXtzaW5jbHVkZSgpfSBmaWxlcyB0aGF0IGRvIG5vdCBleGlzdC4KPiArCj4gK0BpdGVtIC0tbWFr ZWRlcC1nZW4tbWlzc2luZy1hbGwKPiArVGhpcyBvcHRpb24gaXMgZXF1aXZhbGVudCB0byBzcGVj aWZ5aW5nIGFsbCB0aHJlZSBvcHRpb25zCj4gK0Bjb2Rley0tbWFrZWRlcC1nZW4tbWlzc2luZy1h cmdmaWxlc30sCj4gK0Bjb2Rley0tbWFrZWRlcC1nZW4tbWlzc2luZy1pbmNsdWRlfSBhbmQKPiAr QGNvZGV7LS1tYWtlZGVwLWdlbi1taXNzaW5nLXNpbmNsdWRlfS4KPiArQGVuZCB0YWJsZQo+ICsK PiArTm90ZSB0aGF0IHRoZSBhYm92ZSBAY29kZXttYWtlZGVwLWdlbi1taXNzaW5nLSp9IG9wdGlv bnMgYXNzdW1lIHRoYXQgdGhlCj4gK21pc3NpbmcgZmlsZXMgd2lsbCB1bHRpbWF0ZWx5IG5vdCBA Y29kZXtpbmNsdWRlKCl9IG9yIEBjb2Rle3NpbmNsdWRlKCl9Cj4gK2FueSBhZGRpdGlvbmFsIGZp bGVzIC0tIGlmIHRoZXkgZG8sIHRoZW4gdGhlc2UgYWRkaXRpb25hbCBmaWxlcyB3aWxsIGJlCj4g K21pc3NpbmcgZnJvbSB0aGUgZ2VuZXJhdGVkIGRlcGVuZGVuY3kgcnVsZXMuCj4gKwo+ICtUaGUg Zm9sbG93aW5nIG9wdGlvbnMgY29udHJvbCB0aGUgZ2VuZXJhdGlvbiBvZiBgYHBob255JycgdGFy Z2V0cyBmb3IKPiArY2VydGFpbiBjbGFzc2VzIG9mIGRlcGVuZGVuY2llcy4gIFRoZXNlIGR1bW15 IHJ1bGVzIGFyZSB1c2VkIHRvIHdvcmsKPiArYXJvdW5kIGVycm9ycyBAY29kZXttYWtlfSBnaXZl cyBpZiB5b3UgcmVtb3ZlIGZpbGVzIHdpdGhvdXQgdXBkYXRpbmcgdGhlCj4gK0Bjb2Rle01ha2Vm aWxlfSB0byBtYXRjaC4gIERlcGVuZGVuY2llcyB0aGF0IG1hdGNoIG9uZSBvciBtb3JlIG9mIHRo ZXNlCj4gK2NsYXNzZXMgY2F1c2UgYSBzaW5nbGUgZHVtbXkgcnVsZSB0byBiZSBnZW5lcmF0ZWQg Zm9yIHRoZW06Cj4gKwo+ICtAdGFibGUgQGNvZGUKPiArQGl0ZW0gLS1tYWtlZGVwLXBob255LWFy Z2ZpbGVzCj4gK0NhdXNlcyBAY29kZXttNH0gdG8gZ2VuZXJhdGUgYSBgYHBob255JycgdGFyZ2V0 IGZvciBlYWNoIGZpbGUgdGhhdCBpcwo+ICtzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4K PiArCj4gK0BpdGVtIC0tbWFrZWRlcC1waG9ueS1pbmNsdWRlCj4gK0NhdXNlcyBAY29kZXttNH0g dG8gZ2VuZXJhdGUgYSBgYHBob255JycgdGFyZ2V0IGZvciBlYWNoIGZpbGUgdGhhdCBpcwo+ICt0 aGUgc3ViamVjdCBvZiBhbiBAY29kZXtpbmNsdWRlKCl9IG1hY3JvLiAgVGhpcyBvcHRpb24gaXMg YW5hbG9nb3VzIHRvCj4gK3RoZSBAY29kZXstTVB9IG9wdGlvbiBvZiBAY29kZXtnY2N9Lgo+ICsK PiArQGl0ZW0gLS1tYWtlZGVwLXBob255LXNpbmNsdWRlCj4gK0NhdXNlcyBAY29kZXttNH0gdG8g Z2VuZXJhdGUgYSBgYHBob255JycgdGFyZ2V0IGZvciBlYWNoIGZpbGUgdGhhdCBpcwo+ICt0aGUg c3ViamVjdCBvZiBhbiBAY29kZXtzaW5jbHVkZSgpfSBtYWNyby4KPiArCj4gK0BpdGVtIC0tbWFr ZWRlcC1waG9ueS1hbGwKPiAraXMgZXF1aXZhbGVudCB0byBzcGVjaWZ5aW5nIGFsbCB0aHJlZSBv cHRpb25zOgo+ICtAY29kZXstLW1ha2VkZXAtcGhvbnktYXJnZmlsZXN9Cj4gK0Bjb2Rley0tbWFr ZWRlcC1waG9ueS1pbmNsdWRlfQo+ICtAY29kZXstLW1ha2VkZXAtcGhvbnktc2luY2x1ZGV9Lgo+ ICtAZW5kIHRhYmxlCj4gKwoKSW4gYWRkaXRpb24gdG8gYWxsIHRoZSBjb21tYW5kIGxpbmUgb3B0 aW9ucyB0byBlbmFibGUgdGhpcyBmZWF0dXJlLAp3b3VsZCBpdCBiZSB3b3J0aCBhbiBleGFtcGxl IGRlbW9uc3RyYXRpb24gb2YgdGhlIGZlYXR1cmUgaW4Kb3BlcmF0aW9uPwoKT25lIG9mIHRoZSBu aWNlciB0aGluZ3MgYWJvdXQgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIHRyZWUgaXMgdGhhdApl eGFtcGxlcyB0aGF0IGFwcGVhciBpbiB0aGUgbTQgbWFudWFsIGFyZSBhbHNvIGV4ZWN1dGVkIGR1 cmluZyAnbWFrZQpjaGVjaycgdG8gZW5zdXJlIHdlIGRvbid0IHJlZ3Jlc3M7IGV2ZW4gaWYgaXQg aXMgYSBzaWxseSBleGFtcGxlIHRoYXQKdXNlcyBta3N0ZW1wKCkgb3IgaGFyZC1jb2RlcyBhIGRl cGVuZGVuY3kgbmFtZSwgYW5kIHRoZW4gcnVucyBhIHNlY29uZAptNCBpbnN0YW5jZSB0byBzZWUg d2hhdCB0aGUgZmlyc3Qgb25lIHByb2R1Y2VkIGFzIGl0cyBkZXBlbmRlbmN5Cm91dHB1dCwgdGhh dCB3b3VsZCBhZGQgc29tZSBjb25maWRlbmNlIHRoYXQgZnV0dXJlIHJlZmFjdG9yaW5nIHdvbid0 CmJyZWFrIHRoaXMuICBBbmQgZXZlbiBpZiB3ZSBjYW4ndCBnZXQgaXQgcnVubmluZyBhdXRvbWF0 aWNhbGx5IGZyb20KdGhlIG1hbnVhbCwgaGF2aW5nIGEgc2hlbGwgc2NyaXB0IG9yIG90aGVyIG1l YW5zIG9mIHRlc3RpbmcgZXhwZWN0ZWQKYmVoYXZpb3IgaW4gdGhlIGNoZWNrcy8gZGlyZWN0b3J5 IHdpbGwgYmUgd29ydGh3aGlsZS4KCj4gIEBub2RlIERlYnVnZ2luZyBvcHRpb25zCj4gIEBzZWN0 aW9uIENvbW1hbmQgbGluZSBvcHRpb25zIGZvciBkZWJ1Z2dpbmcKPiBkaWZmIC0tZ2l0IGEvc3Jj L2J1aWx0aW4uYyBiL3NyYy9idWlsdGluLmMKPiBpbmRleCAyODE5YmE0OS4uMGYyMzdjNWIgMTAw NjQ0Cj4gLS0tIGEvc3JjL2J1aWx0aW4uYwo+ICsrKyBiL3NyYy9idWlsdGluLmMKPiBAQCAtMTM4 OCwxMCArMTM4OCwxMSBAQCBtNF9jaGFuZ2V3b3JkIChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJF X1VOVVNFRCwgaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2KQo+ICBgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KPiAgc3Rh dGljIHZvaWQKPiAtaW5jbHVkZSAoaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2LCBib29sIHNp bGVudCkKPiAraW5jbHVkZSAoaW50IGFyZ2MsIHRva2VuX2RhdGEgKiphcmd2LCBib29sIHNpbGVu dCwgaW50IHJlZl9mcm9tKQo+ICB7Cj4gICAgRklMRSAqZnA7Cj4gICAgY2hhciAqbmFtZTsKPiAr ICBpbnQgZmFpbDsKPiAgICBpZiAoYmFkX2FyZ2MgKGFyZ3ZbMF0sIGFyZ2MsIDIsIDIpKQo+ICAg ICAgcmV0dXJuOwo+IEBAIC0xMzk5LDE0ICsxNDAwLDIwIEBAIGluY2x1ZGUgKGludCBhcmdjLCB0 b2tlbl9kYXRhICoqYXJndiwgYm9vbCBzaWxlbnQpCj4gICAgZnAgPSBtNF9wYXRoX3NlYXJjaCAo QVJHICgxKSwgZmFsc2UsICZuYW1lKTsKPiAgICBpZiAoZnAgPT0gTlVMTCkKPiAgICAgIHsKPiAt ICAgICAgaWYgKCFzaWxlbnQpCj4gKyAgICAgIGZhaWwgPSAhc2lsZW50Owo+ICsgICAgICBpZiAo KG1ha2VkZXBfZ2VuX21pc3NpbmcgJiByZWZfZnJvbSkgIT0gMCkKPiAgICAgICAgICB7Cj4gLSAg ICAgICAgICBNNEVSUk9SICgod2FybmluZ19zdGF0dXMsIGVycm5vLCBfKCJjYW5ub3Qgb3BlbiBg JXMnIiksIEFSRyAoMSkpKTsKPiAtICAgICAgICAgIHJldGNvZGUgPSBFWElUX0ZBSUxVUkU7Cj4g KyAgICAgICAgICByZWNvcmRfZGVwZW5kZW5jeSAoQVJHICgxKSwgcmVmX2Zyb20pOwoKTm90IHRo aXMgcGF0Y2gncyBmYXVsdCwgYnV0IHJlcGVhdGVkIHJlZmVyZW5jZXMgdG8gQVJHKDEpIGFyZSBz bGlnaHRseQpsZXNzIGVmZmljaWVudCB0aGFuIHN0b3JpbmcgQVJHKDEpIGludG8gYSB0ZW1wb3Jh cnkgdmFyaWFibGUgdXAKZnJvbnQuIEkgY2FuIGNsZWFuIHRoYXQgdXAuCgo+ICsrKyBiL3NyYy9t NC5jCgo+IEBAIC02MzIsNiArNzUxLDMyIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICpjb25zdCAq YXJndikKPiAgICBpZiAoZGVidWdmaWxlICYmICFkZWJ1Z19zZXRfb3V0cHV0IChkZWJ1Z2ZpbGUp KQo+ICAgICAgTTRFUlJPUiAoKHdhcm5pbmdfc3RhdHVzLCBlcnJubywgXygiY2Fubm90IHNldCBk ZWJ1ZyBmaWxlIGAlcyciKSwKPiAgICAgICAgICAgICAgICBkZWJ1Z2ZpbGUpKTsKPiArCj4gKyAg LyogVmVyaWZ5IG11dHVhbCBjb25zaXN0ZW5jeSBvZiBtYWtlZGVwIG9wdGlvbnMuICovCj4gKyNk ZWZpbmUgTUtERVBfT1BUUyAiLS1tYWtlZGVwIGFuZCAtLW1ha2VkZXAtdGFyZ2V0IgoKVGhpcyAj ZGVmaW5lIGlzIG5vdCBtYXJrZWQgZm9yIHRyYW5zbGF0aW9uOyBJJ20gbm90IHN1cmUgaG93IHRv IGJlc3QKcGhyYXNlIHRoaW5ncyBmb3Igd2hlbiB3ZSBkbyBhZGQgaTE4biB0cmFuc2xhdGlvbnMg b2YgZXJyb3IgbWVzc2FnZXMuCgo+ICsgIGlmICgobWFrZWRlcF9wYXRoID09IE5VTEwpICYmICht YWtlZGVwX3RhcmdldCA9PSBOVUxMKSkKPiArICAgIHsKPiArICAgICAgLyogTWFrZWRlcCBtb2Rl IGlzIE5PVCBhY3RpdmUuICovCj4gKyAgICAgIGlmIChtYWtlZGVwX2dlbl9taXNzaW5nICE9IDAp Cj4gKyAgICAgICAgTTRFUlJPUiAoKEVYSVRfRkFJTFVSRSwgMCwKPiArICAgICAgICAgICAgICAg ICAgIi0tbWFrZWRlcC1nZW4tbWlzc2luZy0qIHJlcXVpcmVzICIgTUtERVBfT1BUUykpOwo+ICsg ICAgICBpZiAobWFrZWRlcF9waG9ueSAhPSAwKQo+ICsgICAgICAgIE00RVJST1IgKChFWElUX0ZB SUxVUkUsIDAsCj4gKyAgICAgICAgICAgICAgICAgICItLW1ha2VkZXAtcGhvbnktKiByZXF1aXJl cyAiIE1LREVQX09QVFMpKTsKCk1vcmUgc3RyaW5ncyBtaXNzaW5nIF8oKSBtYXJraW5nLgoKPiAr ICAgICAgaWYgKChtYWtlZGVwX2dlbl9taXNzaW5nIHwgbWFrZWRlcF9waG9ueSkgIT0gMCkKPiAr ICAgICAgICBleGl0IChFWElUX0ZBSUxVUkUpOwo+ICsgICAgfQo+ICsgIGVsc2UgaWYgKChtYWtl ZGVwX3BhdGggIT0gTlVMTCkgJiYgKG1ha2VkZXBfdGFyZ2V0ICE9IE5VTEwpKQo+ICsgICAgewo+ ICsgICAgICAvKiBNYWtlZGVwIG1vZGUgaXMgYWN0aXZlLiAqLwo+ICsgICAgfQo+ICsgIGVsc2UK PiArICAgIHsKPiArICAgICAgTTRFUlJPUiAoKEVYSVRfRkFJTFVSRSwgMCwKPiArICAgICAgICAg ICAgICAgIE1LREVQX09QVFMgIiBjYW5ub3QgYmUgdXNlZCBpbmRlcGVuZGVudGx5LiIpKTsKCkVy cm9yIG1lc3NhZ2VzIHNob3VsZCBub3QgZW5kIGluICcuJwoKPiArICAgICAgZXhpdCAoRVhJVF9G QUlMVVJFKTsKPiArICAgIH0KPiArI3VuZGVmIE1LREVQX09QVFMKPiAgICBpbnB1dF9pbml0ICgp Owo+ICAgIG91dHB1dF9pbml0ICgpOwo+IEBAIC03MzgsNiArODgzLDggQEAgbWFpbiAoaW50IGFy Z2MsIGNoYXIgKmNvbnN0ICphcmd2KQo+ICAgICAgICB1bmRpdmVydF9hbGwgKCk7Cj4gICAgICB9 Cj4gICAgb3V0cHV0X2V4aXQgKCk7Cj4gKyAgaWYgKG1ha2VkZXBfcGF0aCAhPSBOVUxMKQo+ICsg ICAgZ2VuZXJhdGVfbWFrZV9kZXBlbmRlbmNpZXMgKG1ha2VkZXBfcGF0aCwgbWFrZWRlcF90YXJn ZXQsIG1ha2VkZXBfcGhvbnkpOwo+ICAgIGZyZWVfbWFjcm9fc2VxdWVuY2UgKCk7Cj4gICAgZXhp dCAocmV0Y29kZSk7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvc3JjL200LmggYi9zcmMvbTQuaAo+IGlu ZGV4IDhkMGQ5NmRkLi5mODczNWFiYyAxMDA2NDQKPiAtLS0gYS9zcmMvbTQuaAoKPiBAQCAtNDEy LDcgKzQyMCwxMCBAQCBleHRlcm4gdm9pZCBoYWNrX2FsbF9zeW1ib2xzIChoYWNrX3N5bWJvbCAq LCB2b2lkICopOwo+ICBleHRlcm4gaW50IGV4cGFuc2lvbl9sZXZlbDsKPiAgZXh0ZXJuIHZvaWQg ZXhwYW5kX2lucHV0ICh2b2lkKTsKPiAtZXh0ZXJuIHZvaWQgY2FsbF9tYWNybyAoc3ltYm9sICos IGludCwgdG9rZW5fZGF0YSAqKiwgc3RydWN0IG9ic3RhY2sgKik7Cj4gK2V4dGVybiB2b2lkIGNh bGxfbWFjcm8gKHN5bWJvbCAqLCBpbnQsIHRva2VuX2RhdGEgKiosIHN0cnVjdCBvYnN0YWNrICop Cj4gKyAgLyogVGhpcyBkb2Vzbid0IHNlZW0gcmlnaHQsIGJ1dCBnY2MtOC41LjAgaXMgc3VnZ2Vz dGluZyB0aGF0IHRoaXMgKi8KPiArICAvKiBmdW5jdGlvbiBtaWdodCBiZSBhIGNhbmRpZGF0ZSBm b3IgYXR0cmlidXRlICdjb2xkJywgc3RvcHBpbmcgdGhlIGJ1aWxkLiAqLwo+ICsgIEFUVFJJQlVU RV9DT0xEOwoKVW5yZWxhdGVkIHRvIHlvdXIgcGF0Y2gsIGJ1dCBzb21ldGhpbmcgdGhhdCBzaG91 bGQgYmUgZml4ZWQKaW5kZXBlbmRlbnRseSBpZiBpdCBpcyBzdGlsbCBhIHByb2JsZW0uCgo+ICsr KyBiL3NyYy9wYXRoLmMKPiBAQCAtMzYsNiArMzYsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgaW5jbHVk ZXMgaW5jbHVkZXM7Cj4gIHN0YXRpYyBpbmNsdWRlcyAqZGlyX2xpc3Q7ICAgICAgLyogdGhlIGxp c3Qgb2YgcGF0aCBkaXJlY3RvcmllcyAqLwo+ICBzdGF0aWMgaW5jbHVkZXMgKmRpcl9saXN0X2Vu ZDsgIC8qIHRoZSBlbmQgb2Ygc2FtZSAqLwo+ICBzdGF0aWMgaW50IGRpcl9tYXhfbGVuZ3RoOyAg ICAgIC8qIGxlbmd0aCBvZiBsb25nZXN0IGRpcmVjdG9yeSBuYW1lICovCj4gKwo+ICtzdHJ1Y3Qg ZGVwZW5kZW5jeQo+ICt7Cj4gKyAgc3RydWN0IGRlcGVuZGVuY3kgKm5leHQ7ICAgICAgLyogbmV4 dCBpbiBsaXN0IG9mIGRlcGVuZGVuY2llcyAqLwo+ICsgIGludCByZWZfZnJvbTsgICAgICAgICAg ICAgICAgIC8qIGJpdCBtYXNrOiBwbGFjZXMgZmlsZSByZWZlcmVuY2VkIGZyb20gKi8KPiArICBj aGFyIHBhdGggWzFdOyAgICAgICAgICAgICAgICAvKiBwYXRobmFtZSBvZiB0aGlzIGRlcGVuZGVu Y3kgKi8KCkhtbSAtIGFidXNpbmcgdGhpcyB0cmFpbGluZyBzdHJ1Y3QgbWVtYmVyIHRvIGJlIGFu IG92ZXJsYXkgd2l0aCBhbgpvdmVyYWxsb2NhdGVkIGFjdHVhbCBzdG9yYWdlLiAgSSdtIHRyeWlu ZyB0byBmaWd1cmUgb3V0IGlmIHRoZXJlIGlzIGEKcHJlZmVycmVkIEdOVSBzdHlsZSBmb3IgdGhp cyBzb3J0IG9mIEMgb3ZlcnVzZSAoSSBrbm93IHRoYXQgVkxBIHR5cGVzCmFyZSBub3Qgd2hhdCB3 ZSB3YW50LCBidXQgYW0gbm90IHN1cmUgdGhpcyBzcGVsbGluZyBpcyBpZGVhbCBlaXRoZXIpLgoK LS0gCkVyaWMgQmxha2UsIFByaW5jaXBhbCBTb2Z0d2FyZSBFbmdpbmVlcgpSZWQgSGF0LCBJbmMu ClZpcnR1YWxpemF0aW9uOiAgcWVtdS5vcmcgfCBsaWJndWVzdGZzLm9yZwoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBs aXN0Ck00LXBhdGNoZXNAZ251Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0 aW5mby9tNC1wYXRjaGVzCg==