Re: master: x86-64: TRUNCATE using the Lemire, Kaser, Kurz transform
Stas Boukarev <[email protected]> Sun, 19 Apr 2026 05:40:15 +0300
| Newsgroups | gmane.lisp.steel-bank.cvs,gmane.lisp.steel-bank.devel |
|---|---|
| Message-ID | <CAF63=11GV4rpyE4bm6fQ2s7gmkOcSz+pqgv6PnS0DhKRZ9QoEg@mail.gmail.com> |
VGhlIFZPUCBnZXRzIGRlZmVhdGVkIGJ5IG9uZSBvZiB0aGUgMjMgdHJhbnNmb3Jtcywgd2hlbiAo c3BlZWQgMyk6Cmh0dHBzOi8vZ2l0aHViLmNvbS9zYmNsL3NiY2wvYmxvYi9tYXN0ZXIvc3JjL2Nv bXBpbGVyL3NyY3RyYW4ubGlzcCNMNTEzNQoKT24gU3VuLCBBcHIgMTksIDIwMjYgYXQgNToxOOKA r0FNIHNudWdsYXMgdmlhIFNiY2wtY29tbWl0cwo8c2JjbC1jb21taXRzQGxpc3RzLnNvdXJjZWZv cmdlLm5ldD4gd3JvdGU6Cj4KPiBUaGUgYnJhbmNoICJtYXN0ZXIiIGhhcyBiZWVuIHVwZGF0ZWQg aW4gU0JDTDoKPiAgICAgICAgdmlhICBhZTg5ZDdiZTg0MDAyZTQ4YmVhN2NmZDhiZTg0YmQ2Yzc4 OTZhMmMwIChjb21taXQpCj4gICAgICAgZnJvbSAgYzQxMDExY2I1MmViMDg5YjNlZGYyMTlhODcx MjI0YWZjZmI4YTEyMiAoY29tbWl0KQo+Cj4gLSBMb2cgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiBjb21taXQgYWU4OWQ3 YmU4NDAwMmU0OGJlYTdjZmQ4YmU4NGJkNmM3ODk2YTJjMAo+IEF1dGhvcjogRG91Z2xhcyBLYXR6 bWFuIDxkb3Vna0Bnb29nbGUuY29tPgo+IERhdGU6ICAgU2F0IEFwciAxOCAyMjowMjozNCAyMDI2 IC0wNDAwCj4KPiAgICAgeDg2LTY0OiBUUlVOQ0FURSB1c2luZyB0aGUgTGVtaXJlLCBLYXNlciwg S3VyeiB0cmFuc2Zvcm0KPgo+ICAgICAyIE1VTHMgb3V0cGVyZm9ybXMgb25lIERJViBvciBJRElW IGJ5IGF0IGxlYXN0IDJ4IGJhc2VkIG9uIG15Cj4gICAgIHRlc3RpbmcgYW5kIGFsc28gQWduZXIg Rm9nJ3MgaW5zdHJ1Y3Rpb24gbGF0ZW5jeSB0YWJsZXMKPiAtLS0KPiAgc3JjL2NvZGUvdGFyZ2V0 LXBhY2thZ2UubGlzcCAgICB8ICAyICstCj4gIHNyYy9jb21waWxlci9nZW5lcmljL3V0aWxzLmxp c3AgfCAgOCArKysrKy0KPiAgc3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0aC5saXNwICB8IDU2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gIHRlc3RzL2ludGVnZXJk aXYucHVyZS5saXNwICAgICAgfCAxOCArKysrKysrKysrKysrCj4gIDQgZmlsZXMgY2hhbmdlZCwg NzMgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvc3JjL2Nv ZGUvdGFyZ2V0LXBhY2thZ2UubGlzcCBiL3NyYy9jb2RlL3RhcmdldC1wYWNrYWdlLmxpc3AKPiBp bmRleCAxZmM1NmVhMmYuLjk3MTM1YmVhNSAxMDA2NDQKPiAtLS0gYS9zcmMvY29kZS90YXJnZXQt cGFja2FnZS5saXNwCj4gKysrIGIvc3JjL2NvZGUvdGFyZ2V0LXBhY2thZ2UubGlzcAo+IEBAIC00 MzksNyArNDM5LDcgQEAgb2YgOklOSEVSSVRFRCA6RVhURVJOQUwgOklOVEVSTkFMLiIKPiAgICAg ICAgICAgKG4gbWluLW51bWVyYXRvci1iaXRzKSkKPiAgICAgIChsb29wCj4gICAgICAgKG11bHRp cGxlLXZhbHVlLWJpbmQgKGMgZnJhYy1iaXRzKQo+IC0gICAgICAgICAoc2ItYzpjb21wdXRlLWZh c3RyZW0tY29lZmZpY2llbnQgZGVub21pbmF0b3IgbiA6dmFyaWFibGUpCj4gKyAgICAgICAgIChz Yi1jOmNvbXB1dGUtZmFzdHJlbS1jb2VmZmljaWVudCBkZW5vbWluYXRvciBuIDptaW5pbXVtKQo+ ICAgICAgICAgKGNvbmQgKCg9IGZyYWMtYml0cyAzMikKPiAgICAgICAgICAgICAgICAocmV0dXJu ICh2YWx1ZXMgKGxkYiAoYnl0ZSBuIDApIC0xKSBjKSkpCj4gICAgICAgICAgICAgICAoKD4gZnJh Yy1iaXRzIDMyKQo+IGRpZmYgLS1naXQgYS9zcmMvY29tcGlsZXIvZ2VuZXJpYy91dGlscy5saXNw IGIvc3JjL2NvbXBpbGVyL2dlbmVyaWMvdXRpbHMubGlzcAo+IGluZGV4IDRhOGEzOWNjMS4uODVl NmY1NTMzIDEwMDY0NAo+IC0tLSBhL3NyYy9jb21waWxlci9nZW5lcmljL3V0aWxzLmxpc3AKPiAr KysgYi9zcmMvY29tcGlsZXIvZ2VuZXJpYy91dGlscy5saXNwCj4gQEAgLTU3Nyw3ICs1NzcsNyBA QAo+ICAgICAgICAgICAgICAgICAgICAgICAgICh3aGVuICg8PSBkICgrIChtb2QgMl5GIGQpIChl eHB0IDIgTCkpKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxldCAoKGMgKGNlaWxpbmcg KGV4cHQgMiBGKSBkKSkpCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXR1cm4gKHZh bHVlcyBGIGMpKSkpKSkpKQo+IC0gICAgKGNvbmQgKChlcSBmcmFjdGlvbi1iaXRzIDp2YXJpYWJs ZSkgOyByZXR1cm4gdGhlIHNtYWxsZXN0IEYKPiArICAgIChjb25kICgoZXEgZnJhY3Rpb24tYml0 cyA6bWluaW11bSkgOyByZXR1cm4gdGhlIHNtYWxsZXN0IEYKPiAgICAgICAgICAgICAodmFsdWVz IGMgc21hbGxlc3QtZikpCj4gICAgICAgICAgICAodAo+ICAgICAgICAgICAgIDs7IE90aGVyd2lz ZSBoYXJkd2lyZSBGIHRvIDMyIHNvIHRoZSBhbGdvcml0aG0gY2FuIHVzZSA6RFdPUkQKPiBAQCAt NTg5LDYgKzU4OSwxMiBAQAo+ICAgICAgICAgICAgICAgICAgICAgIHNtYWxsZXN0LWYgZCBuKSkK PiAgICAgICAgICAgICAodmFsdWVzIChjZWlsaW5nIChleHB0IDIgZnJhY3Rpb24tYml0cykgZCkg ZnJhY3Rpb24tYml0cykpKSkpCj4KPiArKGRlZnVuIHR5cGUtd2lkdGgtaW4tYml0cyAoY3R5cGUp Cj4gKyAgOzsgUmV0dXJuIChpbnRlZ2VyLWxlbmd0aCB1cHBlci1ib3VuZCkgb2YgbnVtZXJpYyB0 eXBlLiBUaGlzIGlzIE5PVCBhIHRoZW9yZXRpY2FsCj4gKyAgOzsgc21hbGxlc3QgTiBiaXRzIG5l ZWRlZCB0byBlbmNvZGUgYW4gZWxlbWVudCBvZiB0eXBlIGluIGEgcGFja2VkIHJlcHJlc2VudGF0 aW9uCj4gKyAgOzsgKGUuZy4gdGhlIGludGVydmFsIDUuLjggX2NvdWxkXyBiZSBzdG9yZWQgaW4g MiBiaXRzKSBidXQgd2UgZG9uJ3QgZG8gdGhhdC4KPiArICAoaW50ZWdlci1sZW5ndGggKHNiLWM6 OmludGVydmFsLWhpZ2ggKHNiLWM6Om51bWVyaWMtdHlwZS0+aW50ZXJ2YWwgY3R5cGUpKSkpCj4g Kwo+ICAoZGVmdW4gZW52LXN5c3RlbS10bGFiLXAgKGVudikKPiAgICAjLXN5c3RlbS10bGFicyAo ZGVjbGFyZSAoaWdub3JlIGVudikpCj4gICAgIytzeXN0ZW0tdGxhYnMKPiBkaWZmIC0tZ2l0IGEv c3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0aC5saXNwIGIvc3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0 aC5saXNwCj4gaW5kZXggMzFhYjk4N2E0Li4yYjViOWRlOTkgMTAwNjQ0Cj4gLS0tIGEvc3JjL2Nv bXBpbGVyL3g4Ni02NC9hcml0aC5saXNwCj4gKysrIGIvc3JjL2NvbXBpbGVyL3g4Ni02NC9hcml0 aC5saXNwCj4gQEAgLTIwNTYsMTMgKzIwNTYsMTMgQEAKPgo+ICAoZGVmaW5lLXZvcCAoZmFzdC10 cnVuY2F0ZS1jL2ZpeG51bT0+Zml4bnVtIGZhc3Qtc2FmZS1hcml0aC1vcCkKPiAgICAoOnRyYW5z bGF0ZSB0cnVuY2F0ZSkKPiAtICAoOmFyZ3MgKHggOnNjcyAoYW55LXJlZykgOnRhcmdldCBlYXgp KQo+ICsgICg6YXJncyAoeCA6c2NzIChhbnktcmVnKSA6dGFyZ2V0IHJheCkpCj4gICAgKDppbmZv IHkpCj4gICAgKDphcmctdHlwZXMgdGFnZ2VkLW51bSAoOmNvbnN0YW50IGZpeG51bSkpCj4gICAg KDp0ZW1wb3JhcnkgKDpzYyBzaWduZWQtcmVnIDpvZmZzZXQgcmF4LW9mZnNldCA6dGFyZ2V0IHF1 bwo+IC0gICAgICAgICAgICAgICAgICAgOmZyb20gOmFyZ3VtZW50IDp0byAoOnJlc3VsdCAwKSkg ZWF4KQo+ICsgICAgICAgICAgICAgICAgICAgOmZyb20gOmFyZ3VtZW50IDp0byAoOnJlc3VsdCAw KSkgcmF4KQo+ICAgICg6dGVtcG9yYXJ5ICg6c2MgYW55LXJlZyA6b2Zmc2V0IHJkeC1vZmZzZXQg OnRhcmdldCByZW0KPiAtICAgICAgICAgICAgICAgICAgIDpmcm9tIDpldmFsIDp0byAoOnJlc3Vs dCAxKSkgZWR4KQo+ICsgICAgICAgICAgICAgICAgICAgOmZyb20gOmV2YWwgOnRvICg6cmVzdWx0 IDEpKSByZHgpCj4gICAgKDp0ZW1wb3JhcnkgKDpzYyBhbnktcmVnIDpmcm9tIDpldmFsIDp0byA6 cmVzdWx0KSB5LWFyZykKPiAgICAoOnJlc3VsdHMgKHF1byA6c2NzIChhbnktcmVnKSkKPiAgICAg ICAgICAgICAgKHJlbSA6c2NzIChhbnktcmVnKSkpCj4gQEAgLTIwNzAsMTYgKzIwNzAsNTQgQEAK PiAgICAoOm5vdGUgImlubGluZSBmaXhudW0gYXJpdGhtZXRpYyIpCj4gICAgKDp2b3AtdmFyIHZv cCkKPiAgICAoOmdlbmVyYXRvciAzMAo+IC0gICAgKG1vdmUgZWF4IHgpCj4gKyAgIChibG9jayBu aWwKPiArICAgIDs7IFRoaXMgb3VnaHQgdG8gYmUgZG9uZSBtYWNoaW5lLWluZGVwZW5kZW50bHks IGJ1dCB0aGVyZSBhcmUgYWxyZWFkeSAyMyB0cmFuc2Zvcm1zCj4gKyAgICA7OyBvbiBUUlVOQ0FU RSBhbmQgSSBkb24ndCB1bmRlcnN0YW5kIGhvdyB0aGV5IGdldCB0cmllZCBpbiB0aGUgb3B0aW1h bCBvcmRlci4KPiArICAgIDs7IFRoZSBiZW5lZml0IG9mIHRoYXQgaXMgd2UgY291bGQganVzdCBp bnZva2UgdGhlIGZhc3RyZW0tMzIgb3IgZmFzdHJlbS02NCB2b3AKPiArICAgIDs7IHJhdGhlciB0 aGFuIGhhdmluZyB0byByZXBsaWNhdGUgdGhlbSBpbnNpZGUgaGVyZS4KPiArICAgICh3aGVuIChh bmQgKG5vdCAoc2ItYzo6dG4tcmVhZHMgcXVvKSkKPiArICAgICAgICAgICAgICAgKHR5cGVwIHkg Jyh1bnNpZ25lZC1ieXRlIDY0KSkKPiArICAgICAgICAgICAgICAgKGNzdWJ0eXBlcCAodG4tcmVm LXR5cGUgKHZvcC1hcmdzIHZvcCkpIChzcGVjaWZpZXItdHlwZSAnKHVuc2lnbmVkLWJ5dGUgNjQp KSkpCj4gKyAgICAgIDs7IFRoZSByZWFzb24gZm9yIHRoZSBjb25jZXJuIGFib3V0IGlucHV0cyBp cyB0aGF0IHRoZSBnZW5lcmFsIGFsZ29yaXRobSB0byBhY2NlcHQKPiArICAgICAgOzsgYW55IDY0 LWJpdCBpbnRlZ2VyICh3aGljaCBhcyBGSVhOVU0gd291bGQgbGltaXQgYmUgNjIgYml0cykgbmVl ZHMgNCBNVUwgaW5zdHJ1Y3Rpb25zCj4gKyAgICAgIDs7IChjb25maXJtZWQgYnkgbG9va2luZyBh dCBodHRwczovL2dpdGh1Yi5jb20vbGVtaXJlL2Zhc3Rtb2QpCj4gKyAgICAgIDs7IEJ1dCAyIE1V TCBpbnN0cnVjdGlvbnMgaXMgZW5vdWdoIGZvciByZWFzb25hYmxlIGlucHV0cy4gQm90aCB0aGUg ZGl2aXNvciBhbmQgdGhlCj4gKyAgICAgIDs7IG1heGltdW0gaW5wdXQgYWZmZWN0IGhvdyBtYW55 IGJpdHMgYXJlIG5lZWRlZCBpbiBpbnRlcm1lZGlhdGUgcmVzdWx0cy4KPiArICAgICAgKGJpbmRp bmcqICgobnVtZXJhdG9yLXByZWNpc2lvbgo+ICsgICAgICAgICAgICAgICAgICAodHlwZS13aWR0 aC1pbi1iaXRzICh0bi1yZWYtdHlwZSAodm9wLWFyZ3Mgdm9wKSkpIDpleGl0LWlmLW51bGwpCj4g KyAgICAgICAgICAgICAgICAgKChtYWdpYyBzbWFsbGVzdC1uYml0cykKPiArICAgICAgICAgICAg ICAgICAgKHNiLWM6Y29tcHV0ZS1mYXN0cmVtLWNvZWZmaWNpZW50IHkgbnVtZXJhdG9yLXByZWNp c2lvbiA6bWluaW11bSkpCj4gKyAgICAgICAgICAgICAgICAgKChmcmFjLWJpdHMgb3BlcmFuZC1z aXplKQo+ICsgICAgICAgICAgICAgICAgICA7OyAic21hbGxlc3QiIGlzIGhvdyBtYW55IGJpdHMg eW91IG5lZWQgZm9yIHRoZSBhbGdvcml0aG0gdG8gd29yaywgYXNzdW1pbmcKPiArICAgICAgICAg ICAgICAgICAgOzsgeW91IGNvdWxkIGFjdHVhbGx5IGNhbGN1bGF0ZSBvbiBiaXQgZmllbGRzIG9m IGFyYml0cmFyeSBzaXplLiBCdXQgdG8gbWFrZSBpdAo+ICsgICAgICAgICAgICAgICAgICA7OyBl ZmZpY2llbnQsIHlvdSBuZWVkIGEgZml4ZWQtYmluYXJ5LXBvaW50IHJlY2lwcm9jYWwgaW4gZXhh Y3RseSAzMiBiaXRzCj4gKyAgICAgICAgICAgICAgICAgIDs7IG9yIGV4YWN0bHkgNjQgYml0cyAo b3IgMTI4LCBpZiBmdWxseSBzdXBwb3J0aW5nIDY0LWJpdCBpbnRzKQo+ICsgICAgICAgICAgICAg ICAgICAoY29uZCAoKDw9IHNtYWxsZXN0LW5iaXRzIDMyKSAodmFsdWVzIDMyIDpkd29yZCkpCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICgoPD0gc21hbGxlc3QtbmJpdHMgNjQpICh2YWx1ZXMg NjQgOnF3b3JkKSkpKSkKPiArICAgICAgICAod2hlbiBvcGVyYW5kLXNpemUKPiArICAgICAgICAg ICh3aGVuICgvPSBzbWFsbGVzdC1uYml0cyBmcmFjLWJpdHMpIDsgcmVjb21wdXRlIE1BR0lDIHRv IHJlcXVpcmVkIG51bWJlciBvZiBiaXRzCj4gKyAgICAgICAgICAgIChzZXRxIG1hZ2ljIChzYi1j OmNvbXB1dGUtZmFzdHJlbS1jb2VmZmljaWVudCB5IG51bWVyYXRvci1wcmVjaXNpb24gZnJhYy1i aXRzKSkpCj4gKyAgICAgICAgICAobGV0ICgoYXJnLXNpemUgKGlmICg8PSBudW1lcmF0b3ItcHJl Y2lzaW9uIDMxKSA6ZHdvcmQgOnF3b3JkKSkpCj4gKyAgICAgICAgICAgIChtb3ZlIHJheCB4IGFy Zy1zaXplKQo+ICsgICAgICAgICAgICAoaW5zdCBzaHIgYXJnLXNpemUgcmF4IG4tZml4bnVtLXRh Zy1iaXRzKSkgOyB1bnRhZyBpdAo+ICsgICAgICAgICAgKGluc3QgbXVsIG9wZXJhbmQtc2l6ZSAo cmVnaXN0ZXItaW5saW5lLWNvbnN0YW50IG9wZXJhbmQtc2l6ZSBtYWdpYykpCj4gKyAgICAgICAg ICAoaW5zdCBtdWwgb3BlcmFuZC1zaXplIChyZWdpc3Rlci1pbmxpbmUtY29uc3RhbnQgb3BlcmFu ZC1zaXplIHkpKQo+ICsgICAgICAgICAgOzsgVGhlIHJlc3VsdCBtaWdodCBmaXQgaW50byBhIDpE V09SRCBkZXBlbmRpbmcgb24gdGhlIGRpdmlzb3IKPiArICAgICAgICAgIChsZXQgKChyZXMtc2l6 ZSAoaWYgKDw9IChpbnRlZ2VyLWxlbmd0aCAoMS0geSkpIDMxKSA6ZHdvcmQgOnF3b3JkKSkpIDsg KHRhZ2dlZCkKPiArICAgICAgICAgICAgKGlmIChsb2NhdGlvbj0gcmVtIHJkeCkKPiArICAgICAg ICAgICAgICAgIChpbnN0IHNobCByZXMtc2l6ZSByZW0gMSkKPiArICAgICAgICAgICAgICAgIChp bnN0IGxlYSByZXMtc2l6ZSByZW0gKGVhIHJkeCByZHgpKSkpCj4gKyAgICAgICAgICAocmV0dXJu KSkpKQo+ICsgICAgKG1vdmUgcmF4IHgpCj4gICAgICAoaW5zdCBjcW8pCj4gICAgICAoaW5zdCBt b3YgeS1hcmcgKGZpeG51bWl6ZSB5KSkKPiAgICAgIChpbnN0IGlkaXYgeS1hcmcpCj4gLSAgICAo aWYgKGxvY2F0aW9uPSBxdW8gZWF4KQo+IC0gICAgICAgIChpbnN0IHNobCBlYXggbi1maXhudW0t dGFnLWJpdHMpCj4gKyAgICAoaWYgKGxvY2F0aW9uPSBxdW8gcmF4KQo+ICsgICAgICAgIChpbnN0 IHNobCByYXggbi1maXhudW0tdGFnLWJpdHMpCj4gICAgICAgICAgKGlmICg9IG4tZml4bnVtLXRh Zy1iaXRzIDEpCj4gLSAgICAgICAgICAgIChpbnN0IGxlYSBxdW8gKGVhIGVheCBlYXgpKQo+IC0g ICAgICAgICAgICAoaW5zdCBsZWEgcXVvIChlYSBuaWwgZWF4IChhc2ggMSBuLWZpeG51bS10YWct Yml0cykpKSkpCj4gLSAgICAobW92ZSByZW0gZWR4KSkpCj4gKyAgICAgICAgICAgIChpbnN0IGxl YSBxdW8gKGVhIHJheCByYXgpKQo+ICsgICAgICAgICAgICAoaW5zdCBsZWEgcXVvIChlYSBuaWwg cmF4IChhc2ggMSBuLWZpeG51bS10YWctYml0cykpKSkpCj4gKyAgICAobW92ZSByZW0gcmR4KSkp KQo+Cj4gIChkZWZpbmUtdm9wIChmYXN0LXRydW5jYXRlL3Vuc2lnbmVkPT51bnNpZ25lZCBmYXN0 LXNhZmUtYXJpdGgtb3ApCj4gICAgKDp0cmFuc2xhdGUgdHJ1bmNhdGUpCj4gZGlmZiAtLWdpdCBh L3Rlc3RzL2ludGVnZXJkaXYucHVyZS5saXNwIGIvdGVzdHMvaW50ZWdlcmRpdi5wdXJlLmxpc3AK PiBpbmRleCBhOWNhMzg4NzMuLmUyODc2Mzc1NiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pbnRlZ2Vy ZGl2LnB1cmUubGlzcAo+ICsrKyBiL3Rlc3RzL2ludGVnZXJkaXYucHVyZS5saXNwCj4gQEAgLTE1 MCwzICsxNTAsMjEgQEAKPiAgICAobG9vcCBmb3IgZGl2aXNvciBmcm9tIDMgdG8gMTAwMDAKPiAg ICAgICAgICBkbyAoZm9ybWF0IHQgImRpdmlzb3I9fmR+JSIgZGl2aXNvcikKPiAgICAgICAgICAg ICAgKHRyeS1mYXN0cmVtIGRpdmlzb3IgMTgpKSkKPiArCj4gKyhkZWNsYWltIChmdHlwZSBmdW5j dGlvbiByZW1OKSkKPiArIyt4ODYtNjQgOyB0ZXN0IHRoZSBUUlVOQ0FURSAtPiBmYXN0cmVtIG9w dGltaXphdGlvbgo+ICsod2l0aC10ZXN0ICg6bmFtZSA6dGVzdC1yZW0tdHJhbnNmb3JtKQo+ICsg IChkb2xpc3QgKGRpdmlkZW5kLWJpdHMgJygyNCA1OCkpCj4gKyAgICA7OyBhIGRpdmlzb3Igb2Yg MTIzNSBuZWVkcyB0b28gbWFueSBpbnRlcm1lZGlhdGUgYml0cyBmb3IgZGl2aWRlbmQtYml0cz01 OAo+ICsgICAgKGRvbGlzdCAoZGl2aXNvciBgKDMgNyAxMzMgLChpZiAoPSBkaXZpZGVuZC1iaXRz IDI0KSAxMjM1IDE0OSkpKQo+ICsgICAgICAoY29tcGlsZSAncmVtTiBgKGxhbWJkYSAoeCkgKHJl bSAodGhlICh1bnNpZ25lZC1ieXRlICxkaXZpZGVuZC1iaXRzKSB4KSAsZGl2aXNvcikpKQo+ICsg ICAgICA7OyBzaG91bGQgbm90IHVzZSBESVYgb3IgSURJViBpbnN0cnVjdGlvbnMKPiArICAgICAg KGFzc2VydCAobm90IChzZWFyY2ggIkRJViIgKHdpdGgtb3V0cHV0LXRvLXN0cmluZyAocykgKGRp c2Fzc2VtYmxlICdyZW1OIDpzdHJlYW0gcykpKSkpCj4gKyAgICAgIChkb3RpbWVzIChpIDEwMDAw KQo+ICsgICAgICAgIChkZWNsYXJlIChub3RpbmxpbmUgZmxvb3IpKQo+ICsgICAgICAgIChhc3Nl cnQgKD0gKHJlbW4gaSkgKG50aC12YWx1ZSAxIChmbG9vciBpIGRpdmlzb3IpKSkpKQo+ICsgICAg ICAobGV0ICgobWF4IChhc2ggMSBkaXZpZGVuZC1iaXRzKSkpCj4gKyAgICAgICAgKGRvdGltZXMg KGkgMTAwMDApCj4gKyAgICAgICAgICAobGV0ICgoeCAocmFuZG9tIG1heCkpKQo+ICsgICAgICAg ICAgICAoZGVjbGFyZSAobm90aW5saW5lIGZsb29yKSkKPiArICAgICAgICAgICAgKGFzc2VydCAo PSAocmVtbiB4KSAobnRoLXZhbHVlIDEgKGZsb29yIHggZGl2aXNvcikpKSkpKSkpKSkKPgo+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCj4KPgo+IGhvb2tzL3Bvc3QtcmVjZWl2ZQo+IC0tCj4gU0JDTAo+Cj4KPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IFNiY2wtY29t bWl0cyBtYWlsaW5nIGxpc3QKPiBTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cj4g aHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vc2JjbC1jb21taXRz CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU2JjbC1j b21taXRzIG1haWxpbmcgbGlzdApTYmNsLWNvbW1pdHNAbGlzdHMuc291cmNlZm9yZ2UubmV0Cmh0 dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL3NiY2wtY29tbWl0cwo=