[ruby-core:95750] [Ruby master Feature#16254] MRI internal: Define built-in classes in Ruby with `__intrinsic__` syntax

From: ko1@...
Date: 2019-11-07 21:35:47 UTC
List: ruby-core #95750
SXNzdWUgIzE2MjU0IGhhcyBiZWVuIHVwZGF0ZWQgYnkga28xIChLb2ljaGkgU2FzYWRhKS4NCg0K
DQpFcmVnb24gKEJlbm9pdCBEYWxvemUpIHdyb3RlOg0KPiBBIGNvbW1vbiBzeW50YXggZm9yIGlu
dHJpbnNpY3MvcHJpbWl0aXZlcyB3b3VsZCBhbGxvdyB0byBzaGFyZSBSdWJ5IGNvZGUgZm9yIGNv
cmUgY2xhc3NlcyB1c2luZyB0aGVzZSBpbnRyaW5zaWNzL3ByaW1pdGl2ZXMuDQo+IEl0IG1pZ2h0
IGxvb2sgbGlrZSBpdCdzIGxpdHRsZSBSdWJ5IGNvZGUsIGJ1dCBJJ20gY29uZmlkZW50IGl0IHdp
bGwgZ3Jvdy4NCj4gRm9yIGluc3RhbmNlLCBJIHdvdWxkbid0IGJlIHN1cnByaXNlZCB0byBzZWUg
c29tZSBvZiB0aGUgYXJndW1lbnQgcHJvY2Vzc2luZy92YWxpZGF0aW9uIG1vdmVkIHRvIFJ1Ynks
IGFzIGl0IG1pZ2h0IGp1c3QgYmUgZWFzaWVyLg0KPiBBdCB0aGUgdmVyeSBsZWFzdCwgbWV0aG9k
IGRlZmluaXRpb25zICh0aGUgYXJndW1lbnQgbmFtZXMgYW5kIHRoZWlyIGRlZmF1bHQgdmFsdWVz
KSBjb3VsZCBiZSBzaGFyZWQgYW5kIGF2b2lkIGR1cGxpY2F0aW9uLg0KPiANCj4gV2hhdCBkbyB5
b3UgdGhpbms/DQoNCkkgdW5kZXJzdGFuZCB5b3VyIGNvbmNlcm4uIEJ1dCBJJ20gbm90IHN1cmUg
d2UgY2FuIHNoYXJlIHRoZXNlIGNvZGUgYmVjYXVzZSB0aGV5IGFyZSAiaW1wbGVtZW50YXRpb24i
IGFuZCBkZXBlbmQgb24gYmFja2VuZCBpbnRlcnByZXRlci4NCg0KQW55d2F5LCBpdCBpcyB2ZXJ5
IGZpcnN0IHN0YWdlIGFuZCBpZiB0aGlzIGFwcHJvYWNoIGJlY29tZXMgbWF0dXJlLCB3ZSBjYW4g
ZGlzY3VzcyBtb3JlIGFnYWluLg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tDQpGZWF0dXJlICMxNjI1NDogTVJJIGludGVybmFsOiBEZWZpbmUgYnVpbHQtaW4gY2xh
c3NlcyBpbiBSdWJ5IHdpdGggYF9faW50cmluc2ljX19gIHN5bnRheA0KaHR0cHM6Ly9idWdzLnJ1
YnktbGFuZy5vcmcvaXNzdWVzLzE2MjU0I2NoYW5nZS04MjU2Nw0KDQoqIEF1dGhvcjoga28xIChL
b2ljaGkgU2FzYWRhKQ0KKiBTdGF0dXM6IE9wZW4NCiogUHJpb3JpdHk6IE5vcm1hbA0KKiBBc3Np
Z25lZToga28xIChLb2ljaGkgU2FzYWRhKQ0KKiBUYXJnZXQgdmVyc2lvbjogDQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFic3RyYWN0DQoNCk1SSSBkZWZpbmVz
IG1vc3Qgb2YgYnVpbHQtaW4gY2xhc3NlcyBpbiBDIHdpdGggQy1BUElzIGxpa2UgYHJiX2RlZmlu
ZV9tZXRob2QoKWAuDQpIb3dldmVyLCB0aGVyZSBhcmUgc2V2ZXJhbCBpc3N1ZXMgdXNpbmcgQy1B
UElzLg0KDQpBIGZldyBtZXRob2RzIGFyZSBkZWZpbmVkIGluIFJ1Ynkgd3JpdHRlbiBpbiBgcHJl
bHVkZS5yYmAuDQpIb3dldmVyLCB3ZSBjYW4gbm90IGRlZmluZSBhbGwgb2YgY2xhc3NlcyBiZWNh
dXNlIHdlIGNhbiBub3QgdG91Y2ggZGVlcCBkYXRhIHN0cnVjdHVyZSBpbiBSdWJ5Lg0KRnVydGhl
cm1vcmUsIHRoZXJlIGFyZSBwZXJmb3JtYW5jZSBpc3N1ZXMgaWYgd2Ugd3JpdGUgYWxsIG9mIHRo
ZW0gaW4gUnVieS4NCg0KVG8gc29sdmUgdGhpcyBzaXR1YXRpb24sIEkgd2FudCB0byBzdWdnZXN0
IHdyaXR0ZW4gaW4gUnVieSB3aXRoIEMgaW50cmluc2ljIGZ1bmN0aW9ucy4NClRoaXMgcHJvcG9z
YWwgaXMgc2FtZSBhcyBteSBSdWJ5S2FpZ2kgMjAxOSB0YWxrIDxodHRwczovL3J1YnlrYWlnaS5v
cmcvMjAxOS9wcmVzZW50YXRpb25zL2tvMS5odG1sPi4NCg0KIyBUZXJtaW5vbG9neQ0KDQoqIEMt
bWV0aG9kczogbWV0aG9kcyBkZWZpbmVkIGluIEMgKGRlZmluZWQgd2l0aCBgcmJfZGVmaW5lX21l
dGhvZCgpYCwgZXRjKS4NCiogUnVieS1tZXRob2RzOiBtZXRob2RzIGRlZmluZWQgaW4gUnVieS4N
CiogSVNlcTogVGhlIGJvZHkgb2YgYFJVYnlWTTo6SW5zdHJ1Y3Rpb25TZXF1ZW5jZWAgb2JqZWN0
IHdoaWNoIHJlcHJlc2VudHMgYnl0ZWNvZGUgZm9yIFZNLg0KDQojIEJhY2tncm91bmQgLyBQcm9i
bGVtIC8gSWRlYQ0KDQojIyBXcml0dGVuIGluIEMNCg0KQXMgeW91IE1SSSBkZXZlbG9wZXJzIGtu
b3csIG1vc3Qgb2YgbWV0aG9kcyBhcmUgd3JpdHRlbiBpbiBDIHdpdGggQy1BUElzLg0KSG93ZXZl
ciwgdGhlcmUgYXJlIHNldmVyYWwgaXNzdWVzLg0KDQojIyMgKDEpIEFubm90YXRpb24gaXNzdWVz
IChjb21wYXJlIHdpdGggUnVieSBtZXRob2RzKQ0KDQpGb3IgZXhhbXBsZSwgQy1tZXRob2RzIGRl
ZmluZWQgYnkgQy1BUElzIGRvZXNuJ3QgaGF2ZSBgcGFyYW1ldGVyc2AgaW5mb3JtYXRpb24gd2hp
Y2ggYXJlIHJldHVybmVkIGJ5IGBNZXRob2QjcGFyYW1ldGVyc2AsIGJlY2F1c2UgdGhlcmUgaXMg
d2F5IHRvIGRlZmluZSBwYXJhbWV0ZXJzIGZvciBDIG1ldGhvZHMuDQpUaGVyZSBhcmUgcHJvcG9z
YWxzIHRvIGFkZCBwYXJhbWV0ZXIgbmFtZSBpbmZvcm1hdGlvbiBmb3IgQy1tZXRob2RzLCBob3dl
dmVyLCBJIHRoaW5rIGl0IHdpbGwgaW50cm9kdWNlIG5ldyBjb21wbGV4IEMtQVBJcyBhbmQgaW50
cm9kdWNlIGFkZGl0aW9uYWwgb3ZlcmhlYWQgb24gYm9vdCB0aW1lLg0KDQotPiBJZGVhOyBXcml0
aW5nIG1ldGhvZHMgaW4gUnVieSB3aWxsIHNvbHZlIHRoaXMgaXNzdWUuDQoNCiMjIyAoMikgQW5u
b3RhdGlvbiBpc3N1ZXMgKGZvciBmdXJ0aGVyIG9wdGltaXphdGlvbikNCg0KSXQgaXMgdXNlZnVs
IHRvIGtub3cgdGhlIG1ldGhvZHMgYXR0cmlidXRlLCBmb3IgZXhhbXBsZSwgdGhlIG1ldGhvZCBj
YXVzZXMgbm8gc2lkZS1lZmZlY3QgKGEgcHVyZSBtZXRob2QpLg0KTGFiZWxpbmcgYWxsIG9mIG1l
dGhvZHMgaW5jbHVkaW5nIHVzZXIgcHJvZ3JhbSdzIG1ldGhvZHMgZG9lc24ndCBzZWVtIGdvb2Qg
aWRlYSAobm90IFJ1Ynktd2F5KS4gQnV0IEkgdGhpbmsgYW5ub3RhdGluZyBidWlsdC1pbiBtZXRo
b2RzIGlzIGdvb2Qgd2F5IGJlY2F1c2Ugd2UgY2FuIG1hbmFnZSAoYW5kIHdlIGNhbiByZW1vdmUg
dGhlbSB3aGVuIHdlIGNhbiBtYWtlIGdvb2QgYW5hbHl6ZXIpLg0KDQpUaGVyZSBhcmUgbm8gd2F5
IHRvIGFubm90YXRlIHRoaXMga2luZCBvZiBhdHRyaWJ1dGVzLg0KDQotPiBJZGVhOiBXcml0aW5n
IG1ldGhvZHMgaW4gUnVieSB3aWxsIG1ha2UgaXQgZWFzeSB0byBpbnRyb2R1Y2UgbmV3IGFubm90
YXRpb25zLg0KDQojIyMgKDMpIFBlcmZvcm1hbmNlIGlzc3VlDQoNClRoZXJlIGFyZSBzZXZlcmFs
IGZlYXR1cmVzIHdoaWNoIGFyZSBzbG93ZXIgaW4gQyB0aGFuIHdyaXR0ZW4gaW4gUnVieS4NCg0K
KiBleGNlcHRpb24gaGFuZGxpbmcgKGByYl9lbnN1cmUoKWAsIGV0YykgYmVjYXVzZSB3ZSBuZWVk
IHRvIGNhcHR1cmUgY29udGV4dCB3aXRoIGBzZXRqbXBgIG9uIEMtbWV0aG9kcy4gUnVieS1tZXRo
b2RzIGRvZXNuJ3QgbmVlZCB0byBjYXB0dXJlIGFueSBjb250ZXh0IGZvciBleGNlcHRpb24gaGFu
ZGxpbmcuDQoqIFBhc3Npbmcga2V5d29yZCBwYXJhbWV0ZXJzIGJlY2F1c2UgUnVieS1tZXRob2Rz
IGRvZXNuJ3QgbmVlZCB0byBtYWtlIGEgSGFzaCBvYmplY3QgdG8gcGFzcyB0aGUga2V5d29yZCBw
YXJhbWV0ZXJzIGlmIHRoZXkgYXJlIHBhc3NlZCB3aXRoIGV4cGxpY2l0IGtleXdvcmQgcGFyYW1l
dGVycyAoYGZvbyhrMTogdjEsIGsyOiB2MilgKS4NCg0KLT4gSWRlYTogV3JpdGluZyBtZXRob2Rz
IGluIFJ1YnkgbWFrZXMgdGhlbSBmYXN0ZXIuDQoNCiMjIyAoNCkgUHJvZHVjdGl2aXR5DQoNCkl0
IGlzIHRvdWdoIHRvIHdyaXRlIHNvbWUgZmVhdHVyZXMgaW4gQzoNCg0KRm9yIGV4YW1wbGUsIGl0
IGlzIGVhc3kgdG8gd3JpdGUgYHJlc2N1ZWAgc3ludGF4IGluIFJ1Ynk6DQoNCmBgYHJ1YnkNCiMg
aW4gUnVieQ0KZGVmIGR1bW15X2Z1bmNfcmVzY3VlDQogIG5pbA0KcmVzY3VlDQogIG5pbA0KZW5k
DQpgYGANCg0KQnV0IGl0IGlzIGRpZmZpY3VsdCB0byB3cml0ZS9yZWFkIGluIEM6DQoNCmBgYEMN
CnN0YXRpYyBWQUxVRQ0KZHVtbXlfYm9keShWQUxVRSBzZWxmKQ0Kew0KICAgIHJldHVybiBRbmls
Ow0KfQ0Kc3RhdGljIFZBTFVFDQpkdW1teV9yZXNjdWUoVkFMVUUgc2VsZikNCnsNCiAgICByZXR1
cm4gUW5pbDsNCn0NCnN0YXRpYyBWQUxVRQ0KdGR1bW15X2Z1bmNfcmVzY3VlKFZBTFVFIHNlbGYp
DQp7DQogICAgcmV0dXJuIHJiX3Jlc2N1ZShkdW1teV9ib2R5LCBzZWxmLCBkdW1teV9yZXNjdWUs
IHNlbGYpOw0KfQ0KYGBgDQoNCih0cmFpbmVkIE1SSSBkZXZlbG9wZXIgY2FuIHNheSBpdCBpcyBu
b3QgdG91Z2gsIHRob3VnaCA6cCkNCg0KLT4gSWRlYTogV3JpdGluZyBtZXRob2RzIGluIFJ1Ynkg
bWFrZXMgdGhlbSBlYXN5Lg0KDQojIyMgKDUpIEFQSSBjaGFuZ2UNCg0KVG8gaW50cm9kdWNlIGBH
dWlsZGAsIEkgd2FudCB0byBwYXNzIGEgImNvbnRleHQiIHBhcmFtZXRlciAoYXMgYSBmaXJzdCBw
YXJhbWV0ZXIpIGZvciBlYWNoIEMtZnVuY3Rpb25zIGxpa2UgYG1yYl9zdGF0ZWAgb24gbXJ1Ynku
DQpUaGlzIGlzIGJlY2F1c2UgZ2V0dGluZyBpdCBmcm9tIFRMUyAoVGhyZWFkLWxvY2FsLXN0b3Jh
Z2UpIGlzIGhpZ2gtY29zdCBvcGVyYXRpb24gb24gZHluYW1pYyBsaWJyYXJ5IChsaWJydWJ5KS4N
Cg0KTWF5YmUgbm9ib2R5IGFsbG93IG1lIHRvIGNoYW5nZSB0aGUgc3BlY2lmaWNhdGlvbiBvZiBm
dW5jdGlvbnMgdXNlZCBieSBgcmJfZGVmaW5lX21ldGhvZCgpYC4NCg0KLT4gSWRlYTogQnV0IGlu
dHJvZHVjZSBuZXcgbWV0aG9kIGRlZmluaXRpb24gZnJhbWV3b3JrLCB3ZSBjYW4gbW92ZSBhbmQg
Y2hhbmdlIHRoZSBzcGVjaWZpY2F0aW9uLCBJIGhvcGUuDQpPZiBjb3Vyc2UsIHdlIGNhbiByZW1h
aW4gY3VycmVudCBgcmJfZGVmaW5lX21ldGhvZCgpYCBBUElzICh3aXRoIGFkZGl0aW9uYWwgY29z
dCBvbiBgR3VpbGRgIGF2YWlsYWJsZSBNUkkpLg0KDQojIyBXcml0dGVuIGluIFJ1YnkgaW4gYHBy
ZWx1ZGUucmJgDQoNClRoZXJlIGlzIGEgZmlsZSBgcHJlbHVkZS5yYmAgd2hpY2ggYXJlIGxvYWRl
ZCBhdCBib290IHRpbWUuDQpUaGlzIGZpbGUgaXMgdXNlZCB0byBkZWZpbmUgc2V2ZXJhbCBtZXRo
b2RzLCB0byByZWR1Y2Uga2V5d29yZCBwYXJhbWV0ZXJzIG92ZXJoZWFkLCBmb3IgZXhhbXBsZSAo
YElPI3JlYWRfbm9uYmxvY2tgLCBgVHJhY2VQb2ludCNlbmFibGVgKS4NCg0KSG93ZXZlciwgd3Jp
dGluZyBhbGwgb2YgbWV0aG9kcyBpbiBSdWJ5IGlzIG5vdCBwb3NzaWJsZSBiZWNhdXNlOg0KDQoq
ICgxKSBmZWFzaWJpbGl0eSBpc3N1ZSAod2UgY2FuIG5vdCBhY2Nlc3MgaW50ZXJuYWwgZGF0YSBz
dHJ1Y3R1cmUpDQoqICgyKSBwZXJmb3JtYW5jZSBpc3N1ZSAoc2xvdyBpbiBnZW5lcmFsLCBvZiBj
b3Vyc2UpDQoqICgzKSBhdG9taWNpdHkgaXNzdWUgKEdWTC9HSUwpDQoNClRvIHNvbHZlICgxKSwg
d2UgY2FuIHByb3ZpZGUgbG93LWxldmVsIEMtbWV0aG9kcyB0byBpbXBsZW1lbnQgaGlnaC1sZXZl
bCAobm9ybWFsIGJ1aWx0LWluKSBtZXRob2RzLiBIb3dldmVyIGlzc3VlcyAoMikgYW5kICgzKSBh
cmUgbm90IHNvbHZlZC4NCihGcm9tIENTIHJlc2VhcmNoZXJzIHBlcnNwZWN0aXZlLCBtYWtpbmcg
Y2xldmVyIGNvbXBpbGVyIHdpbGwgc29sdmUgdGhlbSwgbGlrZSBKVk0sIGV0YywgQnV0IHdlIGRv
bid0IGhhdmUgaXQgeWV0KQ0KDQotPiBJZGVhOiBXcml0aW5nIG1ldGhvZCBib2R5IGluIEMgaXMg
ZmVhc2libGUuDQoNCiMgUHJvcG9zYWwNCg0KKDEpIEludHJvZHVjaW5nIGBpbnRyaW5zaWNgIG1l
Y2hhbmlzbSB0byBkZWZpbmUgYnVpbHQtaW4gbWV0aG9kcyBpbiBSdWJ5Lg0KKDIpIExvYWQgZnJv
bSBiaW5hcnkgZm9ybWF0IHRvIHJlZHVjZSBzdGFydHVwIHRpbWUuDQoNCiMjICgxKSBJbnRyaW5z
aWMgZnVuY3Rpb24NCg0KIyMjIENhbGxpbmcgaW50cmluc2ljIGZ1bmN0aW9uIHN5bnRheCBpbiBS
dWJ5DQoNClRvIGRlZmluZSBidWlsdC1pbiBtZXRob2RzLCBpbnRyb2R1Y2Ugc3BlY2lhbCBSdWJ5
IHN5bnRheCBgX19pbnRyaW5zaWNfXy5mdW5jKGFyZ3MpYC4NCkluIHRoaXMgY2FzZSwgcmVnaXN0
ZXJlZCBpbnRyaW5zaWMgZnVuY3Rpb24gYGZ1bmMoKWAgaXMgY2FsbGVkIHdpdGggYGFyZ3NgLg0K
DQpJbiBub3JtYWwgUnVieSBwcm9ncmFtLCBgX19pbnRyaW5zaWNfX2AgaXMgYSBsb2NhbCB2YXJp
YWJsZSBvciBhIG1ldGhvZC4NCkhvd2V2ZXIsIHJ1bm5pbmcgb24gc3BlY2lhbCBtb2RlLCB0aGV5
IGFyZSBwYXJzZWQgYXMgaW50cmluc2ljIGZ1bmN0aW9uIGNhbGwuDQoNCkludHJpbnNpYyBmdW5j
dGlvbnMgY2FuIG5vdCBiZSBjYWxsZWQgd2l0aDoNCg0KKiBibG9jayANCioga2V5d29yZCBhcmd1
bWVudHMNCiogc3BsYXQgYXJndW1lbnRzDQoNCiMjIyBEZXZlbG9wbWVudCBzdGVwIHdpdGggaW50
cmluc2ljIGZ1bmN0aW9ucw0KDQooMSkgV3JpdGUgYSBjbGFzcy9tb2R1bGUgaW4gUnVieSB3aXRo
IGludHJpbnNpYyBmdW5jdGlvbi4NCg0KYGBgcnVieQ0KIyBzdHJpbmcucmINCmNsYXNzIFN0cmlu
Zw0KICBkZWYgbGVuZ3RoDQogICAgX19pbnRyaW5zaWNfXy5zdHJfbGVuZ3RoDQogIGVuZA0KZW5k
DQpgYGANCg0KKDIpIEltcGxlbWVudCBpbnRyaW5zaWMgZnVuY3Rpb25zDQoNCkl0IGlzIGFsbW9z
dCBzYW1lIGFzIGZ1bmN0aW9ucyB1c2VkIGJ5IGByYl9kZWZpbmVfbWV0aG9kKClgLg0KSG93ZXZl
ciBpdCB3aWxsIGFjY2VwdCBjb250ZXh0IHBhcmFtZXRlciBhcyB0aGUgZmlyc3QgcGFyYW1ldGVy
Lg0KDQooYHJiX2V4ZWN1dGlvbl9jb250ZXh0X3RgIGlzIHRvbyBsb25nLCBzbyB3ZSBjYW4gcmVu
YW1lIGl0LCBgcmJfc3RhdGVgIGZvciBleGFtcGxlKQ0KDQpgYGBDDQpzdGF0aWMgVkFMVUUNCnN0
cl9sZW5ndGgocmJfZXhlY3V0aW9uX2NvbnRleHRfdCAqZWMsIFZBTFVFIHNlbGYpDQp7DQogIHJl
dHVybiBMT05HMk5VTShSU1RSSU5HX0xFTihzZWxmKSk7DQp9DQpgYGANCg0KKDMpIERlZmluZSBh
biBpbnRyaW5zaWMgZnVuY3Rpb24gdGFibGUgYW5kIGxvYWQgYC5yYmAgZmlsZSB3aXRoIHRoZSB0
YWJsZS4NCg0KYGBgQw0KSW5pdF9TdHJpbmcodm9pZCkNCnsNCiAgLi4uDQogIHN0YXRpYyBjb25z
dCByYl9leHBvcnRfaW50cmluc2ljX3QgdGFibGVbXSA9IHsNCiAgICBSQl9FWFBPUlRfSU5UUklO
U0lDKHN0cl9sZW5ndGgsIDApLCAvLyAwIGlzIGFyaXR5DQogICAgLi4uDQogIH07DQogIHJiX3Zt
X2J1aWx0aW5fbG9hZCgic3RyaW5nIiwgdGFibGUpOw0KfQ0KYGBgDQoNCiMjIyBFeGFtcGxlDQoN
ClRoZXJlIGFyZSB0d28gZXhhbXBsZXM6DQoNCigxKSBDb21wYXJhYmxlIG1vZHVsZTogaHR0cHM6
Ly9naXN0LmdpdGh1Yi5jb20va28xLzdmMThlNjZkMWFlMjViYjMwYzdlODIzYWE1N2YwZDMxDQoo
MikgVHJhY2VQb2ludCBjbGFzczogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20va28xLzk2OWU1Njkw
Y2RhNjE4MGVkOTg5ZWI3OTYxOWNhNjEyDQoNCiMjICgyKSBMb2FkIGZyb20gYmluYXJ5IGZpbGUg
d2l0aCBsYXp5IGxvYWRpbmcNCg0KTG9hZGluZyBtYW55ICIucmIiIGZpbGVzIHNsb3dzIGRvd24g
c3RhcnR1cCB0aW1lLg0KDQpXZSBoYXZlIGBJU2VxI3RvX2JpbmFyeWAgbWV0aG9kIHRvIGdlbmVy
YXRlIGNvbXBpbGVkIGJpbmFyeSBkYXRhIHNvIHRoYXQgd2UgY2FuIGVsaW1pbmF0ZSBwYXJzZS9j
b21waWxlIHRpbWUuDQpGb3J0dW5hdGVseSwgW0ZlYXR1cmUgIzE2MTYzXSBtYWtlcyBiaW5hcnkg
ZGF0YSBzbWFsbC4NCkZ1cnRoZXJtb3JlLCBlbmFibGluZyAibGF6eSBsb2FkaW5nIiBmZWF0dXJl
IGltcHJvdmVzIHN0YXJ0dXAgdGltZSBiZWNhdXNlIHdlIGRvbid0IG5lZWQgdG8gZ2VuZXJhdGUg
Y29tcGxldGUgSVNlcXMuIGBVU0VfTEFaWV9MT0FEYCBpbiB2bV9jb3JlLmggZW5hYmxlcyB0aGlz
IGZlYXR1cmUuDQoNCldlIG5lZWQgdG8gY29tYmluZSBiaW5hcnkuIFRoZXJlIGFyZSBzZXZlcmFs
IHdheSAoY29udmVydCBpbnRvIEMncyBhcnJheSwgY29uY2F0IHdpdGggb2JqY29weSBpZiBhdmFp
bGFibGUgYW5kIHNvIG9uKS4NCg0KIyBFdmFsdWF0aW9uDQoNCkV2YWx1YXRpb25zIGFyZSB3cml0
dGVuIGluIG15IFJ1YnlLYWlnaSAyMDE5IHByZXNlbnRhdGlvbjogPGh0dHBzOi8vcnVieWthaWdp
Lm9yZy8yMDE5L3ByZXNlbnRhdGlvbnMva28xLmh0bWw+DQoNClBvaW50czoNCg0KKiBDYWxsaW5n
IG92ZXJoZWFkIG9mIFJ1YnkgbWVodG9kcyB3aXRoIGludHJpbnNpYyBmdW5jdGlvbnMNCiAgKiBO
b3JtYWwgY2FzZSwgaXQgaXMgYWxtb3N0IHNhbWUgYXMgQy1tZXRob2RzIHVzaW5nIG9wdGltaXpl
ZCBWTSBpbnN0cnVjdGlvbnMuDQogICogV2l0aCBrZXl3b3JkIHBhcmFtZXRlcnMsIGl0IGlzIGZh
c3RlciB0aGFuIEMtbWV0aG9kcy4NCiAgKiBXaXRoIG9wdGlvbmFsIHBhcmFtZXRlcnMsIGl0IGlz
IHgyIHNsb3dlciBzbyBpdCBzaG91bGQgYmUgc29sdmVkICgqMSkuDQoNCiogTG9hZGluZyBvdmVy
aGVhZA0KICAqIFJlcXVpcmluZyAiLnJiIiBmaWxlcyBpcyBhYm91dCB4MTUgc2xvd2VyIHRoYW4g
ZGVmaW5pbmcgQyBtZXRob2RzLg0KICAqIExvYWRpbmcgYmluYXJ5IGRhdGEgd2l0aCBsYXp5IGxv
YWRpbmcgdGVjaG5pcXVlIGlzIGFib3V0IHgyIHNsb3dlciB0aGFuIEMgbWV0aG9kcy4gTm90IHNv
IGJhZCByZXN1bHQuDQogICogQXQgUnVieUthaWdpIDIwMTksIHRoZSBiaW5hcnkgZGF0YSB3YXMg
dmVyeSBodWdlLCBidXQgW0ZlYXR1cmUgIzE2MTYzXSByZWR1Y2VzIHRoZSBzaXplIG9mIGJpbmFy
eSBkYXRhLg0KDQpbKjFdIEludHJvZHVjaW5nIHNwZWNpYWwgIm92ZXJsb2FkaW5nIiBzcGVjaWZp
ZXIgY2FuIHNvbHZlIGl0IGJlY2F1c2Ugd2UgZG9uJ3QgbmVlZCB0byBhc3NpZ24gb3B0aW9uYWwg
cGFyYW1ldGVycy4gRmlyc3QgbWV0aG9kIGxvb2t1cCBjYW4gYmUgc2xvd2VkIGRvd24sIGJ1dCB3
ZSBjYW4gY2FjaGUgdGhlIG1ldGhvZCBsb29rdXAgcmVzdWx0cyAod2l0aCBhcml0eSkuDQoNCmBg
YHJ1YnkNCiMgZXhhbXBsZSBzeW50YXgNCm92ZXJsb2FkIGRlZiBmb28oYSkNCiAgX19pbnRyaW5z
aWNfXy5mb28xKGEpDQplbmQNCm92ZXJsb2FkIGRlZiBmb28oYSwgYikNCiAgX19pbnRyaW5zaWNf
Xy5mb28yKGEsIGIpDQplbmQNCmBgYA0KDQojIEltcGxlbWVudGF0aW9uDQoNCkRvbmU6DQoqIENv
bXBpbGUgY2FsbGluZyBpbnRyaW5zaWMgZnVuY3Rpb25zICgucmIpDQoqIEV4cG9ydGluZyBpbnRy
aW5zaWMgZnVuY3Rpb24gdGFibGUgKC5jKQ0KDQpOb3QgeWV0Og0KKiBMb2FkaW5nIGZyb20gYmlu
YXJ5IG1lY2hhbmlzbQ0KKiBBdHRyaWJ1dGUgc3ludGF4DQoqIG1vc3Qgb2YgYnVpbHQtaW4gY2xh
c3MgcmVwbGFjZW1lbnQNCg0KTm93LCBtaW5pcnVieSBhbmQgcnVieSAobGlicnVieSkgbG9hZCAn
Ki5yYicgZmlsZXMgZGlyZWN0bHkuIEhvd2V2ZXIsIHJ1YnkgKGxpYnJ1YnkpIHNob3VsZCBsb2Fk
IGNvbXBpbGVkIGJpbmFyeSBmaWxlLg0KDQojIERpc2N1c3Npb24NCg0KIyMgRG8gd2UgcmV3cml0
ZSBhbGwgb2YgYnVpbHQtaW4gY2xhc3NlcyBhdCBvbmNlPw0KDQpOby4gV2UgY2FuIHRyeSBhbmQg
bWlncmF0ZSB0aGVtLg0KDQojIyBEbyB3ZSBzdXBwb3J0IGludHJpbnNpYyBtZWNoYW5pc20gZm9y
IEMtZXh0ZW5zaW9uIGxpYnJhcmllcz8NCg0KTWF5YmUgaW4gZnV0dXJlLiBOb3cgd2UgY2FuIHRy
eSBpdCBvbiBNUkkgY29yZXMuDQoNCiMjIGBfX2ludHJpbnNpY19fYCBrZXl3b3JkDQoNCk9uIG15
IFJ1YnlLYWlnaSAyMDE5IHRhbGssIEkgcHJvcG9zZWQgYF9fQ19fYCwgYnV0IEkgdGhpbmsgYF9f
aW50cmluc2ljX19gIGlzIG1vcmUgZGVzY3JpcHRpdmUgKGJ1dCBhIGJpdCBsb25nKS4NCkFub3Ro
ZXIgaWRlYSBpcyBgUnVieVZNOjppbnRyaW5zaWMuZnVuYyguLi4pYC4NCg0KSSBoYXZlIG5vIHN0
cm9uZyBvcGluaW9uLiBXZSBjYW4gY2hhbmdlIHRoaXMgc3ludGF4IHVudGlsIHdlIGV4cG9zZSB0
aGlzIHN5bnRheCBmb3IgQy1leHRlbnNpb25zLg0KDQojIyBDYW4gd2Ugc3VwcG9ydCBgX19pbnRy
aW5zaWNfX2AgaW4gbm9ybWFsIFJ1Ynkgc2NyaXB0Pw0KDQpOby4gVGhpcyBmZWF0dXJlIGlzIG9u
bHkgZm9yIGJ1aWx0LWluIGZlYXR1cmVzLg0KQXMgSSBkZXNjcmliZWQs44CAY2FsbGluZyBpbnRy
aW5zaWMgZnVuY3Rpb24gc3ludGF4IGhhcyBzZXZlcmFsIHJlc3RyaWN0aW9uIGNvbXBhcmUgd2l0
aCBub3JtYWwgbWV0aG9kIGNhbGxzLCBzbyB0aGF0IEkgdGhpbmsgdGhleSBhcmUgbm90IGV4cG9z
ZWQgYXMgbm9ybWFsIFJ1YnkgcHJvZ3JhbXMsIElNTy4NCg0KIyMgU2hvdWxkIHdlIG1haW50YWlu
IGludHJpbnNpYyBmdW5jdGlvbiB0YWJsZT8NCg0KTm93LCB5ZXMuIEFuZCB3ZSBuZWVkIHRvIG1h
a2UgdGhpcyB0YWJsZSBhdXRvbWF0aWNhbGx5IGJlY2F1c2UgbWFudWFsIG9wZXJhdGlvbnMgY2Fu
IGludHJvZHVjZSBtaXN0YWtlIHZlcnkgZWFzaWx5Lg0KDQpDb3JyZXNwb25kaW5nICIucmIiIGZp
bGUgKGB0cmFjZV9wb2ludC5yYmAsIGZvciBleGFtcGxlKSBrbm93cyB3aGljaCBpbnRyaW5zaWMg
ZnVuY3Rpb25zIGFyZSBuZWVkZWQuDQpQYXJzaW5nICIucmIiIGZpbGUgY2FuIGdlbmVyYXRlIHRo
ZSB0YWJsZSBhdXRvbWF0aWNhbGx5Lg0KSG93ZXZlciwgd2UgbmVlZCBhIGxhdGVzdCB2ZXJzaW9u
IFJ1YnkgdG8gcGFyc2UgdGhlIHNjcmlwdHMgaWYgdGhleSB1c2VzIHN5bnRheCB3aGljaCBhcmUg
c3VwcG9ydGVkIGJ5IGxhdGVzdCB2ZXJzaW9uIG9mIFJ1YnkuDQoNCkZvciBleGFtcGxlLCB3ZSBu
ZWVkIFJ1YnkgMi43IG1hc3RlciB0byBwYXJzZSBhIHNjcmlwdCB3aGljaCB1c2VzIHBhdHRlcm4g
bWF0Y2hpbmcgc3ludGF4Lg0KSG93ZXZlciwgdGhlIHN5c3RlbSdzIHJ1YnkgKGBCQVNFX1JVQllg
KSBzaG91bGQgYmUgb2xkZXIgdmVyc2lvbi4gVGhpcyBpcyBvbmUgb2YgYm9vdHN0cmFwIHByb2Js
ZW0uDQpUaGlzIGlzICJjaGlja2VuLWFuZC1lZ2ciIHByb2JsZW0uDQoNClRoZXJlIGFyZSBzZXZl
cmFsIGlkZWFzLg0KDQooMSkgUGFyc2UgYSAiLmMiIGZpbGUgdG8gZ2VuZXJhdGUgYSB0YWJsZSB1
c2luZyBmdW5jdGlvbiBhdHRyaWJ1dGUuDQoNCmBgYEMNCklOVFJJTlNJQ19GVU5DVElPTiBzdGF0
aWMgVkFMVUUNCnN0cl9sZW5ndGgoLi4uKQ0KLi4uDQpgYGANCg0KKDIpIEJ1aWxkIGFub3RoZXIg
cnVieSBwYXJzZXIgd2l0aCBzb3VyY2UgY29kZSwgInBhcnNlLXJ1YnkiLg0KDQoqIDEuIGdlbmVy
YXRlIHBhcnNlLXJ1Ynkgd2l0aCBDIGNvZGUuDQoqIDIuIHJ1biBwYXJzZS1ydWJ5IHRvIGdlbmVy
YXRlIHRhYmxlcyBieSBwYXJzaW5nICIucmIiIGZpbGVzLiBUaGlzIHByb2Nlc3MgaXMgd3JpdHRl
biBpbiBDLg0KKiAzLiBidWlsZCBtaW5pcnVieSBhbmQgcnVieSB3aXRoIGdlbmVyYXRlZCB0YWJs
ZS4NCg0KV2UgY2FuIG1ha2UgaXQsIGJ1dCBpdCBpbnRyb2R1Y2VzIG5ldyBjb21wbGV4IGJ1aWxk
IHByb2Nlc3MuDQoNCigzKSBSZXN0cmljdCAiLnJiIiBzeW50YXgNCg0KUmVzdHJpY3Qgc3ludGF4
IHdoaWNoIGNhbiBiZSB1c2VkIGJ5IGBCQVNFX1JVQllgIGZvciBidWlsdC1pbiAiLnJiIiBmaWxl
cy4NCkl0IGlzIGVhc3kgdG8gbGlzdCB1cCBpbnRyaW5zaWMgZnVuY3Rpb25zIHVzaW5nIFJpcHBl
ciBvciBBU1Qgb3IgYElTZXEjdG9fYWAuDQoNCigzKSBpcyBtb3N0IGVhc3kgYnV0IG5vdCBzbyBj
b29sLg0KKDIpIGlzIGZsZXhpYmxlLCBidXQgaXQgbmVlZHMgaW1wbGVtZW50YXRpb24gY29zdCBh
bmQgaW5jcmVhc2VzIGJ1aWxkIGNvbXBsZXhpdHkuDQoNCg0KIyMgUGF0aCBvZiAnKi5yYicgZmls
ZXMgYW5kIGluc3RhbGwgb3Igbm90DQoNClRoZSBwYXRoIG9mIGBwcmVsdWRlLnJiYCBpcyBgPGlu
dGVybmFsOnByZWx1ZGU+YC4gV2UgaGF2ZSBzZXZlcmFsIG9wdGlvbnMuDQoNCiogKDEpIERvbid0
IGluc3RhbGwgIi5yYiIgZmlsZXMgYW5kIG1ha2UgdGhlc2UgcGF0aCBgPGludGVybmFsOnRyYWNl
X3BvaW50LnJiPmAsIGZvciBleGFtcGxlLg0KKiAoMikgSW5zdGFsbCAiLnJiIiBhbmQgbWFrZSB0
aGVzZSBwYXRocyBub24tZXhpc3RpbmcgcGF0aHMgc3VjaCBhcyBgPGludGVybmFsPi9pbnN0YWxs
ZGlyL2xpYi9idWlsdGluL3RyYWNlX3BvaW50LnJiYC4NCiogKDMpIEluc3RhbGwgIi5yYiIgYW5k
IG1ha2UgdGhlc2UgcGF0aHMgcmVhbCBwYXRocy4NCg0KV2Ugd2lsbCB0cmFuc2xhdGUgIi5yYiIg
ZmlsZXMgaW50byBiaW5hcnkgZGF0YSBhbmQgbGluayB0aGVtIGludG8gYHJ1YnlgIChgbGlicnVi
eWApLg0KU28gdGhlIG1vZGlmaWNhdGlvbiBvZiBpbnN0YWxsZWQgIi5yYiIgZmlsZXMgYXJlIG5v
dCBhZmZlY3QgdGhlIGJlaGF2aW9yLiBJdCBjYW4gaW50cm9kdWNlIGNvbmZ1c2lvbiBzbyB0aGF0
IEkgd3JvdGUgKDEpIGFuZCAoMikuDQoNCkZvciAoMyksIGl0IGlzIHBvc3NpYmxlIHRvIGxvYWQg
Ii5yYiIgZmlsZXMgaWYgdGhlcmUgaXMgbW9kaWZpY2F0aW9uIChtYXliZSBkZXRlY3QgYnkgbW9k
aWZpZWQgZGF0ZSkgYW5kIGxvYWQgZnJvbSB0aGVtLiBCdXQgaXQgd2lsbCBpbnRyb2R1Y2UgYW4g
b3ZlcmhlYWQgKGRpc2sgYWNjZXNzIG92ZXJoZWFkKS4NCg0KIyMgQ29tcGF0aWJpbGl0eSBpc3N1
ZT8NCg0KVGhlcmUgYXJlIHNldmVyYWwgY29tcGF0aWJpbGl0eSBpc3N1ZXMuIEZvciBleGFtcGxl
LCBgVHJhY2VQb2ludGAgYGMtY2FsbGAgZXZlbnRzIGFyZSBjaGFuZ2VkIHRvIGBjYWxsYCBldmVu
dHMuDQpBbmQgdGhlcmUgYXJlIG1vcmUgaW5jb21wYXRpYmxlcy4NCldlIG5lZWQgdG8gY2hlY2sg
dGhlbSBjYXJlZnVsbHkuDQoNCiMjIEJvb3RzdHJhcCBpc3N1ZT8NCg0KWWVzLCB0aGVyZSBhcmUu
DQoNCkxvYWRpbmcgYC5yYmAgZmlsZXMgYXQgYm9vdCB0aW1pbmcgb2YgYW4gaW50ZXJwcmV0ZXIg
Y2FuIGNhdXNlIHByb2JsZW0uDQpGb3IgZXhhbXBsZSwgYmVmb3JlIGluaXRpYWxpemluZyBTdHJp
bmcgY2xhc3MsIHRoZSBjbGFzcyBvZiBTdHJpbmcgbGl0ZXJhbCBpcyAwIChiZWNhdXNlIFN0cmlu
ZyBjbGFzcyBpcyBub3QgZ2VuZXJhdGVkKS4NCg0KSSBpbnRyb2R1Y2VzIHNldmVyYWwgd29ya2Fy
b3VuZHMgYnV0IHdlIG5lZWQgdG8gbW9kaWZ5IG1vcmUuDQoNCiMgQ29uY2x1c2lvbg0KDQpIb3cg
YWJvdXQgdG8gaW50cm9kdWNlIHRoaXMgbWVjaGFuaXNtIGFuZCB0cnkgaXQgb24gUnVieSAyLjc/
DQpXZSBjYW4gcmV2ZXJ0IHRoZXNlIGNoYW5nZXMgaWYgd2UgZm91bmQgYW55IHRyb3VibGVzLCBp
ZiB3ZSBkb24ndCBleHBvc2UgdGhpcyBtZWNoYW5pc20gYW5kIG9ubHkgaW50ZXJuYWwgY2hhbmdl
cy4NCg0KDQoNCg0KLS0gDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy8NCgpVbnN1YnNjcmli
ZTogPG1haWx0bzpydWJ5LWNvcmUtcmVxdWVzdEBydWJ5LWxhbmcub3JnP3N1YmplY3Q9dW5zdWJz
Y3JpYmU+CjxodHRwOi8vbGlzdHMucnVieS1sYW5nLm9yZy9jZ2ktYmluL21haWxtYW4vb3B0aW9u
cy9ydWJ5LWNvcmU+Cg==

In This Thread

Prev Next