[#110300] [Ruby master Bug#19057] Hide implementation of `rb_io_t`. — "ioquatix (Samuel Williams)" <noreply@...>
SXNzdWUgIzE5MDU3IGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGlvcXVhdGl4IChTYW11ZWwgV2lsbGlh
53 messages
2022/10/15
[ruby-core:110179] [Ruby master Feature#19024] Proposal: Import Modules
From:
"shioyama (Chris Salzberg)" <noreply@...>
Date:
2022-10-04 13:22:22 UTC
List:
ruby-core #110179
SXNzdWUgIzE5MDI0IGhhcyBiZWVuIHVwZGF0ZWQgYnkgc2hpb3lhbWEgKENocmlzIFNhbHpiZXJn KS4KCgpUaGFua3MgQGZ4biwgbGV0IG1lIHN0YXJ0IHdpdGggKHdoYXQgSSBjb25zaWRlcikgdGhl IGVhc2llciBxdWVzdGlvbnMgZmlyc3Q6Cgo+IEluIFJ1YnksIFN0cmluZyBpcyBub3Qgc3BlY2lh bDogSXQgaXMgYSBjb25zdGFudCBpbiBgT2JqZWN0YCBzdG9yaW5nIGEgY2xhc3Mgb2JqZWN0LCBu byBkaWZmZXJlbnQgdGhhbiBgVXNlcmAuIFRoaXMgcHJvcG9zYWwgdHJlYXRzIGNlcnRhaW4gY29u c3RhbnRzIGFzIGRpc3Rpbmd1aXNoZWQsIGFuZCBJIGJlbGlldmUgdGhpcyBpcyBub3QgYWxpZ25l ZCB3aXRoIHRoZSBSdWJ5IG1vZGVsIGluIHdoaWNoIGNvbnN0YW50IG5hbWUgcmVzb2x1dGlvbiBk b2VzIG5vdCBkZXBlbmQgb24gdGhlIHZhbHVlIHN0b3JlZCBieSB0aGUgY29uc3RhbnQuCgpJIGFn cmVlLiBUaGUgcHJvcG9zYWwgYXMgZmFyIGFzIFJ1YnkgZ29lcyBkb2VzIG5vdCB0cmVhdCBhbnkg Y29uc3RhbnRzIGFzIGRpc3Rpbmd1aXNoZWQuIFRoZSBnZW0gY29kZSBvcmlnaW5hbGx5IGRpZCBo YXZlIGEgbGlzdCBvZiBjb25zdGFudHMsIGJ1dCBubyBsb25nZXIgZG9lcyAoaXQgaW5zdGVhZCBs b29rcyBhdCBgT2JqZWN0LmNvbnN0YW50c2AgYXQgdGhlIHRpbWUgdGhlIGdlbSBpcyBsb2FkZWQp LgoKV2hhdCB0aGUgUnVieSBwYXRjaCBkb2VzIGlzIHNldHVwIGFuIGlzb2xhdGVkIHNwYWNlOiBp dCBkb2VzIG5vdCByZXNvbHZlIF9hbnlfIGNvbnN0YW50IGZyb20gdW5kZXIgdGhlIHdyYXBwZXIg bmFtZXNwYWNlIHVubGVzcyB0aGF0IGNvbnN0YW50IGhhcyBiZWVuIHB1dCB0aGVyZS4gVGhpcyBp cyBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBgbG9hZGAgd2l0 aCB0aGUgd3JhcHBlciBvZiBjb3Vyc2UsIHNvIHRoYXQgaXMgb25lIGlzc3VlLiBCdXQgcHV0dGlu ZyB0aGF0IGFzaWRlLCBub3QgcmVzb2x2aW5nIGFueSBjb25zdGFudCBkb2VzIG5vdCBkaXN0aW5n dWlzaCBhbnl0aGluZywgYW5kIEkgZG9uJ3QgdGhpbmsgdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBw YXJ0aWN1bGFybHkgbWlzYWxpZ25lZCB3aXRoIFJ1YnkgKG1heWJlIGl0IHdvdWxkIHJlcXVpcmUg YSBuZXcgb3B0aW9uIG9yIGZsYWcsIGJ1dCB0aGF0J3MganVzdCBhIHF1ZXN0aW9uIG9mIGludGVy ZmFjZSkuCgpUaGUgX2dlbV8gdGhlbiB0YWtlcyBhZHZhbnRhZ2Ugb2YgdGhpcyBpc29sYXRlZCBu YW1lc3BhY2UgdG8gImhvaXN0cyIgY29uc3RhbnRzIGludG8gdGhlIHRvcGxldmVsIG1vZHVsZSBz byB0aGF0IHRoZXkgYXJlIGFjY2Vzc2libGUgdG8gdGhlIGltcG9ydGVkIGNvZGUuIFRoYXQgaXMg YW4gaW1wbGVtZW50YXRpb24gZGV0YWlsIG9mIHRoZSBnZW0gYW5kIG5vdCBzb21ldGhpbmcgSSB0 aGluayBSdWJ5IHNob3VsZCBkbyBpdHNlbGYuCgpOb3RlIHRoYXQgdGhlIGdlbSAiaG9pc3Rpbmci IHRoaW5ncyBsaWtlIGBIYXNoYCBpbnRvIGV2ZXJ5IGltcG9ydCBuYW1lc3BhY2UgaXMgd2hhdCBt YWtlcyBBY3RpdmVTdXBwb3J0IGNvcmUgZXh0ZW5zaW9ucyBwb3NzaWJsZS4gVGhpcyBpcyBhbHNv IHdoYXQgd291bGQgcmVzdWx0IGluIHByb2JsZW1zIGlmLCBmb3IgZXhhbXBsZSwgeW91IHdlcmUg dG8gbG9hZCBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBhIGdlbSB0aGF0IG1vbmtleXBhdGNoZWQgYEhh c2hgIG9yIGFueSBvdGhlciBjb25zdGFudCB0aGF0IHdhcyBwdXQgdGhlcmUuIEJ1dCBhZ2Fpbiwg SSBkb24ndCB0aGluayBSdWJ5IHNob3VsZCBkbyB0aGF0LCBJIG9ubHkgdGhpbmsgKGhvcGU/KSB0 aGF0IFJ1YnkgX2NhbiBtYWtlIHRoaXMgcG9zc2libGVfLiBXaGV0aGVyIGl0IGhhcHBlbnMgb3Ig bm90IHdvdWxkIGJlIGZ1bGx5IGluIHRoZSBoYW5kcyBvZiB0aGUgY29kZSBjb25zdW1lci4KCj4g R2VtIGEgZGVmaW5lcyBgQWAsIGFuZCBnZW0gYGJgIHdhbnRzIHRvIHJlb3BlbiBgQWAuIEhvdyB3 b3VsZCBgYmAgYWNjZXNzIGBBYCBpbiBhIHdheSB0aGF0IGRvZXMgbm90IGRlcGVuZCBvbiBob3cg d2FzIGBBYCBsb2FkZWQ/CgpMZXQncyBtYWtlIHRoaXMgcmVhbGx5IGNvbmNyZXRlLiBXaXRoIHRo ZSBjdXJyZW50IGdlbSBpbXBsZW1lbnRhdGlvbiwgeW91IGNhbiBoYXZlIHRoaXM6CgpgYGBydWJ5 CiMgZm9vLnJiCmlmIGRlZmluZWQ/KEJhcikKICBtb2R1bGUgRm9vMQogIGVuZAplbHNlCiAgbW9k dWxlIEZvbzIKICBlbmQKZW5kCmBgYAoKVGhlIHJlc3VsdCBvZiBsb2FkaW5nIGNvZGUgY2hhbmdl cyBkZXBlbmRpbmcgb24gdGhlIG9yZGVyIHRoZXNlIGZpbGVzIGFyZSBpbXBvcnRlZDoKCmBgYHJ1 YnkKbW9kID0gaW1wb3J0ICJmb28iCiM9PiBtb2Q6OkZvbzIgaXMgZGVmaW5lZApgYGAKCmBgYHJ1 YnkKbW9kdWxlIEJhcjsgZW5kCm1vZCA9IGltcG9ydCAiZm9vIgojPT4gbW9kOkZvbzEgaXMgZGVm aW5lZApgYGAKClRoaXMgaXMgdGhlIGJpZ2dlc3QgcHJvYmxlbTogaW5pdGlhbCBjb25kaXRpb25z IGNhbiBpbXBhY3QgaG93IGNvZGUgaXMgbG9hZGluZywgcmVzdWx0aW5nIGluIGRpZmZlcmVudCBj b25zdGFudHMgYmVpbmcgZGVmaW5lZCBmb3IgdGhlIHNhbWUgZmlsZS4gSSBmcmFua2x5IGRvbid0 IGhhdmUgYSBzb2x1dGlvbiBmb3IgdGhpcyBidXQgSSBjb25zaWRlciBpdCB0aGUgYmlnZ2VzdCBv YnN0YWNsZSB0byB0aGlzIGlkZWEsIGFuZCBpdCBjZXJ0YWlubHkgY291bGQgYW5kIHdvdWxkIGNh dXNlIGVkZ2UgY2FzZXMuCgpUaGF0IHNhaWQsIHRvIGJlIGNsZWFyLCB0aGUgUnVieSBwYXRjaCBk b2VzIG5vdCBhY3R1YWxseSBoaXQgdGhpcyBjb25mbGljdCwgaXQncyB0aGUgZ2VtIHRoYXQgZG9l cy4gVGhlIHBhdGNoIG9ubHkgcmVxdWlyZXMgYSBmaWxlIG9uY2UsIF9pbiB3aGF0ZXZlciBjb250 ZXh0IGl0IHdhcyByZXF1aXJlZCBpbl8uIElmIHlvdSByZXF1aXJlIGl0IGluIGEgd3JhcCBjb250 ZXh0LCB0aGF0J3Mgd2hlcmUgdGhlIGNvZGUgaXMgcmVxdWlyZWQsIHBlcmlvZC4gSWYgeW91IHRy eSB0byByZXF1aXJlIHRoZSBzYW1lIGZpbGUgYWdhaW4gZnJvbSB0b3BsZXZlbCwgb3IgZnJvbSBh IGRpZmZlcmVudCB3cmFwIGNvbnRleHQsIHlvdSBnZXQgYGZhbHNlYCBhbmQgbm90aGluZyBoYXBw ZW5zLgoKT24gaXRzIG93biwgdGhhdCdzIG5vdCB2ZXJ5IHVzZWZ1bCwgc28gdGhlIGdlbSBwYXRj aGVzIGByZXF1aXJlYCB0byB0cmFjayBkZWZpbmVkIGNsYXNzZXMsIHJlcXVpcmVzIGV0Yy4gYW5k IG1ha2UgdGhpbmdzIHdvcmsgc28gbXVsdGlwbGUgaW1wb3J0cyBjYW4gc2hhcmUgY29uc3RhbnRz LiBCdXQgdGhhdCdzIGFsc28gd2hlcmUgeW91IGVuZCB1cCB3aXRoIHRoZSBpc3N1ZSBvZiBkaWZm ZXJlbmNlcyBpbiBob3cgY29kZSBjYW4gYmUgbG9hZGVkLgoKPiBXb3VsZCB0aGVyZSBiZSB0aGlu Z3MgdGhhdCB3b3VsZCB3b3JrIGluIG9uZSBtb2RlIGFuZCBub3QgaW4gdGhlIG90aGVyIHdpdGhp biBOb2tvZ2lyaT8KCkknZCBuZWVkIHRvIGxvb2sgbW9yZSBjbG9zZWx5IGF0IE5va29naXJpIHRv IGFuc3dlciB0aGF0LCBzbyBmYXIgSSd2ZSBiZWVuIGZvY3VzaW5nIG9uIFJhaWxzLiBCdXQgSSdk IGJlIGdsYWQgdG8gZG8gdGhhdC4KCj4gSW4gb3JkZXIgdG8gdW5kZXJzdGFuZCB0aGUgZ29hbCBk ZXNjcmlwdGlvbiAiaXNvbGF0ZSBjb21wb25lbnRzIiwgaXQgd291bGQgaGVscCBtZSBpZiB5b3Ug Y291bGQgZGVzY3JpYmUgb25lIGNvbmNyZXRlIHdheSB0byB1c2UgdGhpcyBpZGVhIGluIGFuIGFw cGxpY2F0aW9uLCBhbmQgdGhhdCBkZXNjcmlwdGlvbiBzaG91bGQgY292ZXIgdGhlIGltcGxpY2F0 aW9ucyBmb3IgdW5yZWxhdGVkIDNyZC1wYXJ0eSBnZW1zLgoKU3VyZSwgZ29vZCBxdWVzdGlvbi4g TGV0IG1lIHRoaW5rIGFib3V0IHRoaXMgb25lIGEgYml0IGZpcnN0LgoKPiBpdCBicmVha3MgYSBm dW5kYW1lbnRhbCBhc3N1bXB0aW9uIGluIGFsbCBleGlzdGluZyBjb2RlOiBUaGF0IGJ5IGxvb2tp bmcgYXQgeW91ciBzb3VyY2UgY29kZSwgeW91IGtub3cgdGhlIG5lc3RpbmcuCgpUaGlzIGlzIGFu IGltcG9ydGFudCBwb2ludCBhbmQgb25lIHRoYXQgSSBoYXZlIHRob3VnaHQgYWJvdXQsIGFuZCB3 aGljaCBvZiBjb3Vyc2UgaXMgaW1wb3J0YW50IHRvIGRpc2N1c3MuIEJ1dCBJJ2QgbGlrZSB0byBz ZXBhcmF0ZSBpdCBmcm9tIHRoZSBxdWVzdGlvbiBvZiB3aGV0aGVyIHRoZSBpZGVhIGlzIGV2ZW4g cHJhY3RpY2FsbHkgcG9zc2libGUuCgpQdXR0aW5nIG15IGNhcmRzIG9uIHRoZSB0YWJsZSwgSSBw ZXJzb25hbGx5IGhhdmUgYWx3YXlzIGZvdW5kIHRoZSBhc3N1bXB0aW9uIHRoYXQgYWxsIFJ1Ynkg Y29kZSBpcyBsb2FkZWQgZnJvbSB0b3BsZXZlbCB0byBiZSBvbmUgb2YgUnVieSdzIGJpZ2dlc3Qg d2Vha25lc3Nlcy4gVGhhdCdzIG15IHZpZXcsIGFuZCBJJ20gaGFwcHkgdG8gZWxhYm9yYXRlIG9u IGl0LCBidXQgbXkgZm9jdXMgcmlnaHQgbm93IHdpbGwgYmUgb2JqZWN0aXZlbHkgb24gd2hldGhl ciB0aGlzIHRvcGxldmVsLWNlbnRyaWMgZGVzaWduIGlzIGluZXZpdGFibGUgb3Igbm90LgoKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxOTAyNDogUHJv cG9zYWw6IEltcG9ydCBNb2R1bGVzCmh0dHBzOi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8x OTAyNCNjaGFuZ2UtOTk0NTQKCiogQXV0aG9yOiBzaGlveWFtYSAoQ2hyaXMgU2FsemJlcmcpCiog U3RhdHVzOiBPcGVuCiogUHJpb3JpdHk6IE5vcm1hbAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tClRoZXJlIGlzIG5vIGdlbmVyYWwgd2F5IGluIFJ1YnkgdG8gbG9hZCBj b2RlIG91dHNpZGUgb2YgdGhlIGdsb2JhbGx5LXNoYXJlZCBuYW1lc3BhY2UuIFRoaXMgbWFrZXMg aXQgaGFyZCB0byBpc29sYXRlIGNvbXBvbmVudHMgb2YgYW4gYXBwbGljYXRpb24gZnJvbSBlYWNo IG90aGVyIGFuZCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBpdHNlbGYsIGxlYWRpbmcgdG8gY29tcGxp Y2F0ZWQgcmVsYXRpb25zaGlwcyB0aGF0IGNhbiBiZWNvbWUgaW50cmFjdGFibGUgYXMgYXBwbGlj YXRpb25zIGdyb3cgaW4gc2l6ZS4KClRoZSBncm93aW5nIHBvcHVsYXJpdHkgb2YgYSBnZW0gbGlr ZSBbUGFja3dlcmtdKGh0dHBzOi8vZ2l0aHViLmNvbS9zaG9waWZ5L3BhY2t3ZXJrKSwgd2hpY2gg cHJvdmlkZXMgYSBuZXcgY29uY2VwdCBvZiAicGFja2FnZSIgdG8gZW5mb2NlIGJvdW5kYXJpZXMg c3RhdGljYWxseSBpbiBDSSwgaXMgZXZpZGVuY2UgdGhhdCB0aGlzIGlzIGEgcmVhbCBwcm9ibGVt LiBCdXQgaW50cm9kdWNpbmcgYSBuZXcgcGFja2FnaW5nIGNvbmNlcHQgYW5kIENJIHN0ZXAgaXMg YXQgYmVzdCBvbmx5IGEgcGFydGlhbCBzb2x1dGlvbiwgd2l0aCBkb3duc2lkZXM6IGl0IGFkZHMg Y29tcGxleGl0eSBhbmQgY29nbml0aXZlIG92ZXJoZWFkIHRoYXQgd291bGRuJ3QgYmUgbmVjZXNz YXJ5IGlmIFJ1YnkgcHJvdmlkZWQgYmV0dGVyIHBhY2thZ2luZyBpdHNlbGYgKGFzIE1hdHogaGFz IHN1Z2dlc3RlZCBbaXQgc2hvdWxkXShodHRwczovL3lvdXR1LmJlL0RwMTJhM0tHTkZ3P3Q9Mjk1 NikpLgoKVGhlcmUgaXMgX29uZV8gbGltaXRlZCB3YXkgaW4gUnVieSBjdXJyZW50bHkgdG8gbG9h ZCBjb2RlIHdpdGhvdXQgcG9sbHV0aW5nIHRoZSBnbG9iYWwgbmFtZXNwYWNlOiBgbG9hZGAgd2l0 aCB0aGUgYHdyYXBgIHBhcmFtZXRlciwgd2hpY2ggYXMgb2YgaHR0cHM6Ly9idWdzLnJ1YnktbGFu Zy5vcmcvaXNzdWVzLzYyMTAgY2FuIG5vdyBiZSBhIG1vZHVsZS4gSG93ZXZlciwgdGhpcyBvcHRp b24gZG9lcyBub3QgYXBwbHkgdHJhbnNpdGl2ZWx5IHRvIGByZXF1aXJlYCBjYWxscyB3aXRoaW4g dGhlIGxvYWRlZCBmaWxlLCBzbyBpdHMgdXNlZnVsbmVzcyBpcyBsaW1pdGVkLgoKTXkgcHJvcG9z YWwgaGVyZSBpcyB0byBlbmFibGUgbW9kdWxlIGltcG9ydHMgYnkgZG9pbmcgdGhlIGZvbGxvd2lu ZzoKCjEuIGFwcGx5IHRoZSBgd3JhcGAgbW9kdWxlIG5hbWVzcGFjZSB0cmFuc2l0aXZlbHkgdG8g YHJlcXVpcmVgcyBpbnNpZGUgdGhlIGxvYWRlZCBjb2RlLCBpbmNsdWRpbmcgbmF0aXZlIGV4dGVu c2lvbnMgKG9yIHByb3ZpZGUgYSBuZXcgZmxhZyBvciBtZXRob2QgdGhhdCB3b3VsZCBkbyB0aGlz KSwKMi4gbWFrZSB0aGUgYHdyYXBgIG1vZHVsZSB0aGUgdG9wbGV2ZWwgY29udGV4dCBmb3IgY29k ZSBsb2FkZWQgdW5kZXIgaXQsIHNvIGA6OkZvb2AgcmVzb2x2ZXMgdG8gYDx0b3Bfd3JhcHBlcj46 OkZvb2AgaW4gbG9hZGVkIGNvZGUgKG9yLCBhZ2FpbiwgcHJvdmlkZSBhIG5ldyBmbGFnIG9yIG1l dGhvZCB0aGF0IHdvdWxkIGRvIHRoaXMpLiBfQWxzbyBtYWtlIHRoaXMgYXBwbHkgd2hlbiBjb2Rl IHVuZGVyIHRoZSB3cmFwcGVyIG1vZHVsZSBpcyBjYWxsZWQgb3V0c2lkZSBvZiB0aGUgbG9hZCBw cm9jZXNzICh3aGVuIGB0b3Bfd3JhcHBlcmAgaXMgbm8gbG9uZ2VyIHNldCkgJm1kYXNoOyB0aGlz IG1heSBiZSBxdWl0ZSBoYXJkIHRvIGRvXy4KMy4gcmVzb2x2ZSBgbmFtZWAgb24gYW5vbnltb3Vz IG1vZHVsZXMgdW5kZXIgdGhlIHdyYXBwZWQgbW9kdWxlIHRvIHRoZWlyIG5hbWVzIHdpdGhvdXQg dGhlIHRvcCB3cmFwcGVyIG1vZHVsZSwgc28gYDx0b3Bfd3JhcHBlcj46OkZvby5uYW1lYCBldmFs dWF0ZXMgdG8gYCJGb28iYC4gVGhlcmUgbWF5IGJlIG90aGVyIHdheXMgdG8gaGFuZGxlIHRoaXMg cHJvYmxlbSwgYnV0IGEgZ2VtIGxpa2UgUmFpbHMgdXNlcyBgbmFtZWAgdG8gcmVzb2x2ZSBmaWxl bmFtZXMgYW5kIGZhaWxzIHdoZW4gYW5vbnltb3VzIG1vZHVsZXMgcmV0dXJuIHNvbWV0aGluZyBs aWtlIGAjPE1vZHVsZTogLi4uPjo6QWN0aXZlUmVjb3JkYCBpbnN0ZWFkIG9mIGp1c3QgYEFjdGl2 ZVJlY29yZGAuCgpJIGhhdmUgcm91Z2hseSBpbXBsZW1lbnRlZCB0aGVzZSB0aHJlZSB0aGluZ3Mg aW4gW3RoaXMgcGF0Y2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9ydWJ5L3J1YnkvY29tcGFyZS9tYXN0 ZXIuLi5zaGlveWFtYTpydWJ5OmltcG9ydF9tb2R1bGVzKS4gVGhpcyBpbXBsZW1lbnRhdGlvbiBp cyBpbmNvbXBsZXRlIChpdCBkb2VzIG5vdCBjb3ZlciB0aGUgbGFzdCBoaWdobGlnaHRlZCBwYXJ0 IG9mIDIpIGJ1dCBwcm92aWRlcyBlbm91Z2ggb2YgYSBiYXNpcyB0byBpbXBsZW1lbnQgYW4gYGlt cG9ydGAgbWV0aG9kLCB3aGljaCBJIGhhdmUgZG9uZSBpbiBhIGdlbSBjYWxsZWQgW0ltXShodHRw czovL2dpdGh1Yi5jb20vc2hpb3lhbWEvaW0pLgoKSW0gcHJvdmlkZXMgYW4gYGltcG9ydGAgbWV0 aG9kIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGltcG9ydCBnZW0gY29kZSB1bmRlciBhIG5hbWVzcGFj ZToKCmBgYHJ1YnkKcmVxdWlyZSAiaW0iCmV4dGVuZCBJbQoKYWN0aXZlX21vZGVsID0gaW1wb3J0 ICJhY3RpdmVfbW9kZWwiCiM9PiA8I0ltOjpJbXBvcnQgcm9vdDogYWN0aXZlX21vZGVsPgoKQWN0 aXZlTW9kZWwKIz0+IE5hbWVFcnJvcgoKYWN0aXZlX21vZGVsOjpBY3RpdmVNb2RlbAojPT4gQWN0 aXZlTW9kZWwKCmFjdGl2ZV9yZWNvcmQgPSBpbXBvcnQgImFjdGl2ZV9yZWNvcmQiCiM9PiA8I0lt OjpJbXBvcnQgcm9vdDogYWN0aXZlX3JlY29yZD4KCiMgQ29uc3RhbnRzIGRlZmluZWQgaW4gdGhl IHNhbWUgZmlsZSB1bmRlciBkaWZmZXJlbnQgaW1wb3J0cyBwb2ludCB0byB0aGUgc2FtZSBvYmpl Y3RzCmFjdGl2ZV9yZWNvcmQ6OkFjdGl2ZU1vZGVsID09IGFjdGl2ZV9tb2RlbDo6QWN0aXZlTW9k ZWwKIz0+IHRydWUKYGBgCgpXaXRoIHRoZSBjb25zdGFudHMgYWxsIGxvYWRlZCB1bmRlciBhbiBh bm9ueW1vdXMgbmFtZXNwYWNlLCBhbnkgY29kZSBpbXBvcnRpbmcgdGhlIGdlbSBjYW4gbmFtZSBj b25zdGFudHMgaG93ZXZlciBpdCBsaWtlczoKCmBgYHJ1YnkKY2xhc3MgUG9zdCA8IGFjdGl2ZV9y ZWNvcmQ6OkFjdGl2ZVJlY29yZDo6QmFzZQplbmQKCkFSID0gYWN0aXZlX3JlY29yZDo6QWN0aXZl UmVjb3JkCgpQb3N0LnN1cGVyY2xhc3MKIz0+IEFSOjpCYXNlCmBgYAoKTm90ZSB0aGF0IHRoaXMg ZW5hYmxlcyB0aGUgaW1wb3J0ZXIgdG8gY29tcGxldGVseSBkZXRlcm1pbmUgdGhlIG5hbWluZyBm b3IgZXZlcnkgY29uc3RhbnQgaXQgaW1wb3J0cy4gU28gZ2VtcyBjYW4gb3B0IHRvIGhpZGUgdGhl aXIgZGVwZW5kZW5jaWVzIGJ5ICJhbmNob3JpbmciIHRoZW0gaW5zaWRlIHRoZWlyIG93biBuYW1l c3BhY2UsIGxpa2UgdGhpczoKCmBgYHJ1YnkKIyBpbiBsaWIvbXlfZ2VtLnJiCm1vZHVsZSBNeUdl bQogIGRlcCA9IGltcG9ydCAibXlfZ2VtX2RlcGVuZGVuY3kiCgogICMgbXlfZ2VtX2RlcGVuZGVu Y3kgaXMgImFuY2hvcmVkIiB1bmRlciB0aGUgTXlHZW0gbmFtZXNwYWNlLCBzbyBub3QgZXhwb3Nl ZCB0byB1c2VycwogICMgb2YgdGhlIGdlbSB1bmxlc3MgdGhleSBhbHNvIHJlcXVpcmUgaXQuCiAg TXlHZW1EZXBlbmRlbmN5ID0gZGVwCgogICMuLi4KZW5kCmBgYAoKVGhlcmUgYXJlIGEgY291cGxl IGltcG9ydGFudCBpbXBsZW1lbnRhdGlvbiBkZWNpc2lvbnMgaW4gdGhlIGdlbToKCjEuIF9Pbmx5 IGxvYWQgY29kZSBvbmNlLl8gV2hlbiB0aGUgc2FtZSBmaWxlIGlzIGltcG9ydGVkIGFnYWluIChl aXRoZXIgZGlyZWN0bHkgb3IgdHJhbnNpdGl2ZWx5KSwgImNvcHkiIGNvbnN0YW50cyBmcm9tIHBy ZXZpb3VzbHkgaW1wb3J0ZWQgbmFtZXNwYWNlIHRvIHRoZSBuZXcgbmFtZXNwYWNlIHVzaW5nIGEg cmVnaXN0cnkgd2hpY2ggbWFwcyB3aGljaCBuYW1lc3BhY2UgKGltcG9ydCkgd2FzIHVzZWQgdG8g bG9hZCB3aGljaCBmaWxlIChhcyBzaG93biBhYm92ZSB3aXRoIGFjdGl2ZXJlY29yZC9hY3RpdmVt b2RlbCkuIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGVuc3VyZSB0aGF0IGRpZmZlcmVudCBpbXBvcnRz IGNhbiAic2VlIiBzaGFyZWQgZmlsZXMuIEEgc2ltaWxhciByZWdpc3RyeSBpcyB1c2VkIHRvIHRy YWNrIGF1dG9sb2FkcyBzbyB0aGF0IHRoZXkgd29yayBjb3JyZWN0bHkgd2hlbiB1c2VkIGZyb20g aW1wb3J0ZWQgY29kZS4KMi4gVG9wbGV2ZWwgY29yZSB0eXBlcyAoYE5pbENsYXNzYCwgYFRydWVD bGFzc2AsIGBGYWxzZUNsYXNzYCwgYFN0cmluZ2AsIGV0YykgYXJlICJhbGlhc2VkIiB0byBjb25z dGFudHMgdW5kZXIgZWFjaCBpbXBvcnQgbW9kdWxlIHRvIG1ha2UgdGhlbSBhdmFpbGFibGUuIFRo dXMgdGhlcmUgY2FuIGJlIHNpZGUtZWZmZWN0cyBvZiBpbXBvcnRpbmcgY29kZSwgYnV0IHRoaXMg YWxsb3dzIGEgZ2VtIGxpa2UgUmFpbHMgdG8gbW9ua2V5cGF0Y2ggY29yZSBjbGFzc2VzIHdoaWNo IGl0IG5lZWRzIHRvIGRvIGZvciBpdCB0byB3b3JrLgozLiBgT2JqZWN0LmNvbnN0X21pc3Npbmdg IGlzIHBhdGNoZWQgdG8gY2hlY2sgdGhlIGNhbGxlciBsb2NhdGlvbiBhbmQgcmVzb2x2ZSB0byB0 aGUgY29uc3RhbnQgZGVmaW5lZCB1bmRlciBhbiBpbXBvcnQsIGlmIHRoZXJlIGlzIGFuIGltcG9y dCBkZWZpbmVkIGZvciB0aGF0IGZpbGUuCgpUbyBiZSBjbGVhcjogKipJIHRoaW5rIDEpIHNob3Vs ZCBiZSBpbXBsZW1lbnRlZCBpbiBSdWJ5LCBidXQgbm90IDIpIGFuZCAzKS4qKiBUaGUgbGFzdCBv bmUgKGBPYmplY3QuY29uc3RfbWlzc2luZ2ApIGlzIGEgaGFjayB0byBzdXBwb3J0IHRoZSBjYXNl IHdoZXJlIGEgdG9wbGV2ZWwgY29uc3RhbnQgaXMgcmVmZXJlbmNlZCBmcm9tIGEgbWV0aG9kIGNh bGxlZCBpbiBpbXBvcnRlZCBjb2RlIChhdCB3aGljaCBwb2ludCB0aGUgYHRvcF93cmFwcGVyYCBp cyBub3QgYWN0aXZlLikKCkkga25vdyB0aGlzIGlzIGEgYmlnIHByb3Bvc2FsLCBhbmQgdGhlcmUg YXJlIHN0cm9uZyBvcGluaW9ucyBoZWxkLiBJIHdvdWxkIHJlYWxseSBhcHByZWNpYXRlIGNvbnN0 cnVjdGl2ZSBmZWVkYmFjayBvbiB0aGlzIGdlbmVyYWwgaWRlYS4KClNlZSBhbHNvIHNpbWlsYXIg ZGlzY3Vzc2lvbiBpbjogaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzEwMzIwCgoK Ci0tIApodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8KClVuc3Vic2NyaWJlOiA8bWFpbHRvOnJ1 YnktY29yZS1yZXF1ZXN0QHJ1YnktbGFuZy5vcmc/c3ViamVjdD11bnN1YnNjcmliZT4KPGh0dHA6 Ly9saXN0cy5ydWJ5LWxhbmcub3JnL2NnaS1iaW4vbWFpbG1hbi9vcHRpb25zL3J1YnktY29yZT4K