[ruby-core:119676] [Ruby master Feature#20860] Merge Optional Experimental Feature MMTk into Ruby
From:
"peterzhu2118 (Peter Zhu) via ruby-core" <ruby-core@...>
Date:
2024-11-01 16:10:40 UTC
List:
ruby-core #119676
SXNzdWUgIzIwODYwIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IHBldGVyemh1MjExOCAoUGV0ZXIgWmh1 KS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAj MjA4NjA6IE1lcmdlIE9wdGlvbmFsIEV4cGVyaW1lbnRhbCBGZWF0dXJlIE1NVGsgaW50byBSdWJ5 DQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjA4NjANCg0KKiBBdXRob3I6IHBl dGVyemh1MjExOCAoUGV0ZXIgWmh1KQ0KKiBTdGF0dXM6IE9wZW4NCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCkdpdEh1YiBQUjogaHR0cHM6Ly9naXRodWIuY29tL3J1 YnkvcnVieS9wdWxsLzExOTc5DQoNCiMjIFN1bW1hcnkNCg0KSW4gdGhpcyB0aWNrZXQsIHdlJ3Jl IHByb3Bvc2luZyB1cHN0cmVhbWluZyB0aGUgY3VycmVudCBNTVRrIGltcGxlbWVudGF0aW9uIGlu dG8gdGhlIGBydWJ5L21tdGtgIHJlcG9zaXRvcnkuIFRoaXMgcmVwb3NpdG9yeSB3aWxsIGJlIG1p cnJvcmVkIGludG8gYHJ1YnkvcnVieWAgYW5kIGFkZHMgdGhlIGZpbGVzIGluIGBnYy9tbXRrLmNg LCBgZ2MvbW10ay5oYCwgYW5kIHRoZSBSdXN0IGltcGxlbWVudGF0aW9uIGluIGBnYy9tbXRrYC4N Cg0KVGhlIGN1cnJlbnQgTU1UayBpbXBsZW1lbnRhdGlvbiB1c2VzIHRoZSBHQyBBUEkgYW5kIGlt cGxlbWVudHMgdGhlIE5vR0MgYW5kIG1hcmstc3dlZXAgYWxnb3JpdGhtcy4NCg0KVGhlIGN1cnJl bnQgaW1wbGVtZW50YXRpb24gaXMsIGluIG1hbnkgY2FzZXMsIHNsb3dlciB0aGFuIFJ1YnkncyBk ZWZhdWx0IEdDLCBidXQgd2UgaGF2ZSBjb25jcmV0ZSBzdGVwcyB0byBpbXByb3ZlIHBlcmZvcm1h bmNlLCB3aGljaCBpcyBkaXNjdXNzZWQgaW4gdGhlIFtOZXh0IFN0ZXBzXSgjTmV4dC1TdGVwcykg c2VjdGlvbi4NCg0KIyMgQmFja2dyb3VuZA0KDQpJbiBbW0ZlYXR1cmUgIzIwMzUxXV0oaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIwMzUxKSB3ZSBpbnRyb2R1Y2VkIGEgbWVjaGFu aXNtIHRvIHBsdWcgYW4gZXh0ZXJuYWwgZ2FyYmFnZSBjb2xsZWN0b3IgaW50byBSdWJ5IHVzaW5n IGEgZHluYW1pYyBzaGFyZWQgbGlicmFyeSBhbmQgaW4gW1tGZWF0dXJlICMyMDQ3MF1dKGh0dHBz Oi8vYnVncy5ydWJ5LWxhbmcub3JnL2lzc3Vlcy8yMDQ3MCkgd2UgaW50cm9kdWNlZCBhbiBBUEkg Zm9yIHRoaXJkLXBhcnR5IGdhcmJhZ2UgY29sbGVjdG9ycyB0byBwbHVnIGludG8gUnVieS4gVXNp bmcgdGhpcyBBUEksIHdlIHdlcmUgYWJsZSB0byBkZW1vbnN0cmF0ZSB0aGF0IHdlIGNhbiBwbHVn IE5vR0MgKGEgR0MgdGhhdCBhbGxvY2F0ZXMgYnV0IG5ldmVyIGNvbGxlY3RzKSBhbmQgYSBtb2Rp ZmllZCB2ZXJzaW9uIG9mIFJ1YnkncyBnYXJiYWdlIGNvbGxlY3RvciBpbnRvIFJ1YnkuDQoNCkZv ciB0aGUgcGFzdCBmZXcgbW9udGhzLCB3ZSd2ZSBiZWVuIGltcGxlbWVudGluZyBwbHVnZ2luZyBN TVRrIGludG8gUnVieSB1c2luZyB0aGlzIEFQSS4NCg0KIyMgV2hhdCdzIE1NVGs/DQoNCltNTVRr XShodHRwczovL3d3dy5tbXRrLmlvLykgaXMgYSBmcmFtZXdvcmsgdGhhdCBwcm92aWRlcyBhIHdp ZGUgdmFyaWV0eSBvZiBnYXJiYWdlIGNvbGxlY3RvciBpbXBsZW1lbnRhdGlvbnMuIE9uY2UgYSBs YW5ndWFnZSBpbnRlZ3JhdGVzIGludG8gdGhlaXIgQVBJLCB0aGUgbGFuZ3VhZ2UgY2FuIHVzZSBh IHdpZGUgdmFyaWV0eSBvZiBHQyBpbXBsZW1lbnRhdGlvbnMsIGZyb20gYmFzaWMgYWxnb3JpdGht cyBzdWNoIGFzIG1hcmstc3dlZXAgKHNpbWlsYXIgdG8gUnVieSdzIGN1cnJlbnQgR0MpLCB0byBt b3JlIGNvbXBsZXggYWxnb3JpdGhtcyBzdWNoIGFzIEltbWl4IGl0cyB2YXJpYW50cy4NCg0KS3Vu c2hhbiBXYW5nIGlzIGEgcmVzZWFyY2hlciBhdCBBdXN0cmFsaWFuIE5hdGlvbmFsIFVuaXZlcnNp dHkgYW5kIGhlIGhhcyBiZWVuIHdvcmtpbmcgb24gaW1wbGVtZW50aW5nIFJ1Ynkgd2l0aCBNTVRr LiBIaXMgd29yayBpcyBhdmFpbGFibGUgYXMgYSBmb3JrIG9mIFJ1YnkgYXQgW21tdGsvcnVieV0o aHR0cHM6Ly9naXRodWIuY29tL21tdGsvcnVieSkgd2l0aCBSdXN0IGJpbmRpbmdzIGF0IFttbXRr L21tdGstcnVieV0oaHR0cHM6Ly9naXRodWIuY29tL21tdGsvbW10ay1ydWJ5KS4NCg0KIyMgSW1w bGVtZW50YXRpb24NCg0KIyMjIE92ZXJ2aWV3DQoNCldlJ3ZlIHRha2VuIEt1bnNoYW4ncyBpbXBs ZW1lbnRhdGlvbiBhbmQgcmV3cml0dGVuIGl0IHVzaW5nIHRoZSBHQyBBUEkuIENvbXBhcmVkIHRv IEt1bnNoYW4ncyBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiwgdGhpcyBtYWtlcyB0aGUgY2hhbmdl cyBtaW5pbWFsbHkgaW52YXNpdmUgYXMgaXQgcmVtb3ZlcyB0aGUgbmVlZCBmb3IgTU1UayBzcGVj aWZpYyBjb2RlIGluc2lkZSBSdWJ5LiBJbnN0ZWFkLCBhbGwgb2YgdGhlIE1NVGsgY29kZSBsaXZl cyBpbnNpZGUgb2YgYGdjL21tdGsuY2AsIGBnYy9tbXRrLmhgLCBhbmQgdGhlIFJ1c3QgY29kZSBp bnNpZGUgb2YgdGhlIGBnYy9tbXRrYCBkaXJlY3RvcnkuDQoNCkhvd2V2ZXIsIGNvbXBhcmVkIHRv IEt1bnNoYW4ncyBpbXBsZW1lbnRhdGlvbiwgd2Ugb25seSBzdXBwb3J0IGEgc3Vic2V0IG9mIGZl YXR1cmVzIGFuZCBoYXZlIGluZmVyaW9yIHBlcmZvcm1hbmNlLiBNb3N0IG5vdGFibHksIHdlIGN1 cnJlbnRseSBvbmx5IHN1cHBvcnQgTm9HQyAoYSBHQyB0aGF0IG9ubHkgYWxsb2NhdGVzIGJ1dCBu ZXZlciBjb2xsZWN0cykgYW5kIG1hcmstc3dlZXAgKHdoaWNoIGlzIHNpbWlsYXIgdG8gUnVieSdz IGN1cnJlbnQgR0MpLiBXZSBkbyBub3Qgc3VwcG9ydCB0aGUgYWR2YW5jZWQgY29weWluZyBHQyB0 aGF0IEt1bnNoYW4ncyBpbXBsZW1lbnRhdGlvbiBzdXBwb3J0cywgc3VjaCBhcyBbSW1taXhdKGh0 dHBzOi8vd3d3LnN0ZXZlYmxhY2tidXJuLm9yZy9wdWJzL3BhcGVycy9pbW1peC1wbGRpLTIwMDgu cGRmKS4NCg0KIyMjIFVzaW5nIFRoaXMgRmVhdHVyZQ0KDQpUbyB1c2UgdGhpcyBmZWF0dXJlLCBm b2xsb3cgdGhlc2Ugc3RlcHM6DQoNCjEuIENvbmZpZ3VyZSBSdWJ5IHdpdGggYC0td2l0aC1zaGFy ZWQtZ2M9LmAgKHlvdSBjYW4gYWxzbyBjaGFuZ2UgdGhlIGRpcmVjdG9yeSB5b3Ugd2FudCB0byBw bGFjZSB0aGUgR0MgbGlicmFyaWVzKS4NCiAgIFlvdSBzaG91bGQgc2VlIGB3aXRoIHNoYXJlZCBH QzogeWVzYCBpbiB0aGUgY29uZmlndXJhdGlvbiBzdW1tYXJ5Lg0KMi4gQnVpbGQgTU1UayBhbmQg dGhlIFJ1c3QgYmluZGluZyBieSBydW5uaW5nIGBjYXJnbyBidWlsZGAgb3IgYGNhcmdvIGJ1aWxk IC0tcmVsZWFzZWAgaW4gdGhlIGBnYy9tbXRrYCBkaXJlY3RvcnkgdG8gYnVpbGQgdGhlIGRlYnVn IGFuZCByZWxlYXNlIHZlcnNpb25zLCByZXNwZWN0aXZlbHkuDQogICBUaGlzIHdpbGwgZ2VuZXJh dGUgdGhlIGBnYy9tbXRrL3RhcmdldC9kZWJ1Zy9saWJtbXRrX3J1YnkuYWAgb3IgYGdjL21tdGsv dGFyZ2V0L3JlbGVhc2UvbGlibW10a19ydWJ5LmFgIGZpbGUgZm9yIE1NVGsgYW5kIHRoZSBSdXN0 IGJpbmRpbmcuDQozLiBSdW4gYG1ha2Ugc2hhcmVkLWdjIFNIQVJFRF9HQz1tbXRrYCB0byBidWls ZCB0aGUgR0MgbGlicmFyeS4NCiAgICBUaGlzIHdpbGwgZ2VuZXJhdGUgdGhlIGBsaWJydWJ5Z2Mu bW10ay5zb2AgKG9uIExpbnV4KSBvciBgbGlicnVieWdjLm1tdGsuZHlsaWJgIChvbiBtYWNPUykg ZmlsZSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQgeW91IHNwZWNpZmllZCB3aXRoIGAtLXdpdGgtc2hh cmVkLWdjYC4NCjQuIFJ1biBSdWJ5IHdpdGggYFJVQllfR0NfTElCUkFSWT1tbXRrYCBlbnZpcm9u bWVudCB2YXJpYWJsZSB0byB1c2UgTU1Uay4NCiAgICBPbiBkZWJ1ZyBidWlsZHMgb2YgTU1Uaywg eW91IHNob3VsZCBzZWUgbG9nZ2luZyBvdXRwdXQsIHN1Y2ggYXMgYEluaXRpYWxpemVkIE1NVGsg d2l0aCBNYXJrU3dlZXBgLiBZb3UgY2FuIHR1cm4gdGhpcyBvdXRwdXQgb2ZmIGJ5IHNldHRpbmcg YFJVU1RfTE9HPWAgKGVtcHR5IHZhbHVlKSBlbnZpcm9ubWVudCB2YXJpYWJsZS4NCg0KWW91IGNh biBhbHNvIGN1c3RvbWl6ZSBNTVRrIGF0IHJ1bnRpbWUgd2l0aCB0aGUgZm9sbG93aW5nIGVudmly b25tZW50IHZhcmlhYmxlczoNCg0KLSBgTU1US19QTEFOPTxOb0dDfE1hcmtTd2VlcD5gOiBDb25m aWd1cmVzIHRoZSBHQyBhbGdvcml0aG0gdXNlZCBieSBNTVRrLiBEZWZhdWx0cyB0byBgTWFya1N3 ZWVwYC4NCi0gYE1NVEtfSEVBUF9NT0RFPTxmaXhlZHxkeW5hbWljPmA6IENvbmZpZ3VyZXMgdGhl IE1NVGsgaGVhcCB1c2VkLiBgZml4ZWRgIGlzIGEgZml4ZWQgc2l6ZSBoZWFwLCBgZHluYW1pY2Ag aXMgYSBkeW5hbWljIHNpemVkIGhlYXAgdGhhdCB3aWxsIGdyb3cgYW5kIHNocmluayBpbiBzaXpl IGJhc2VkIG9uIGhldXJpc3RpY3MgdXNpbmcgdGhlIFtNZW1CYWxhbmNlcl0oaHR0cHM6Ly9kbC5h Y20ub3JnL2RvaS9wZGYvMTAuMTE0NS8zNTYzMzIzKSBhbGdvcml0aG0uIERlZmF1bHRzIHRvIGBk eW5hbWljYC4NCi0gYE1NVEtfSEVBUF9NSU49PHNpemU+YDogQ29uZmlndXJlcyB0aGUgbG93ZXIg Ym91bmQgaW4gaGVhcCBtZW1vcnkgdXNhZ2UgYnkgTU1Uay4gT25seSB2YWxpZCB3aGVuIGBNTVRL X0hFQVBfTU9ERT1keW5hbWljYC4gYHNpemVgIGlzIGluIGJ5dGVzLCBidXQgeW91IGNhbiBhbHNv IGFwcGVuZCBgS2lCYCwgYE1pQmAsIGBHaUJgIGZvciBsYXJnZXIgc2l6ZXMuIERlZmF1bHRzIHRv IDFNaUIuDQotIGBNTVRLX0hFQVBfTUFYPTxzaXplPmA6IENvbmZpZ3VyZXMgdGhlIHVwcGVyIGJv dW5kIGluIGhlYXAgbWVtb3J5IHVzYWdlIGJ5IE1NVGsuIE9uY2UgdGhpcyBsaW1pdCBpcyByZWFj aGVkIGFuZCBubyBvYmplY3RzIGNhbiBiZSBnYXJiYWdlIGNvbGxlY3RlZCwgaXQgd2lsbCBjcmFz aCB3aXRoIGFuIG91dC1vZi1tZW1vcnkuIGBzaXplYCBpcyBpbiBieXRlcywgYnV0IHlvdSBjYW4g YWxzbyBhcHBlbmQgYEtpQmAsIGBNaUJgLCBgR2lCYCBmb3IgbGFyZ2VyIHNpemVzLiBEZWZhdWx0 cyB0byA4MCUgb2YgeW91ciBzeXN0ZW0gUkFNLg0KDQojIyMgQ29kZSBPcmdhbml6YXRpb24NCg0K VGhlIGNvZGUgaXMgb3JnYW5pemVkIGludG8gdHdvIHBhcnRzOiB0aGUgQyBiaW5kaW5nIGFuZCB0 aGUgUnVzdCBiaW5kaW5nLg0KDQpUaGUgQyBiaW5kaW5nIGxpdmVzIGluIGBnYy9tbXRrLmNgLiBJ dCBpbXBsZW1lbnRzIHRoZSBHQyBBUEkgdGhhdCBSdWJ5IGNvbW11bmljYXRlcyB3aXRoIGFuZCBw ZXJmb3JtcyBSdWJ5LWxldmVsIG9wZXJhdGlvbnMgc3VjaCBhcyBzdG9wcGluZyBhbmQgc3RhcnRp bmcgUmFjdG9ycyBiZWZvcmUgYW5kIGFmdGVyIGEgR0MsIG1hcmtpbmcgb2JqZWN0cywgYW5kIGZy ZWVpbmcgb2JqZWN0cy4NCg0KVGhlIFJ1c3QgYmluZGluZyBsaXZlcyBpbiB0aGUgYGdjL21tdGtg IGRpcmVjdG9yeS4gSXQgY2FsbHMgdGhlIEFQSXMgcHJvdmlkZWQgYnkgbW10ay1jb3JlIHRvIGFs bG9jYXRlIG9iamVjdHMsIGFuZCBhbHNvIGltcGxlbWVudHMgdHJhaXRzIChpbmNsdWRpbmcgY2Fs bGJhY2tzKSByZXF1aXJlZCBieSBtbXRrLWNvcmUgZm9yIHN0b3BwaW5nL3Jlc3VtaW5nIFJhY3Rv cnMsIHNjYW5uaW5nIHJvb3RzLCBhbmQgc2Nhbm5pbmcgb2JqZWN0IGZpZWxkcy4NCg0KW21tdGst Y29yZV0oaHR0cHM6Ly9naXRodWIuY29tL21tdGsvbW10ay1jb3JlKSBpcyBpbmNsdWRlZCBhcyBh IGRlcGVuZGVuY3kgb2YgdGhlIFJ1c3QgYmluZGluZyBhbmQgY29udGFpbnMgbGFuZ3VhZ2UgYWdu b3N0aWMgaW1wbGVtZW50YXRpb25zIG9mIHZhcmlvdXMgZ2FyYmFnZSBjb2xsZWN0b3JzLg0KDQpB dCBjb21waWxlIHRpbWUsIHRoZSBSdXN0IGJpbmRpbmcgaXMgc3RhdGljYWxseSBsaW5rZWQgdG8g dGhlIEMgYmluZGluZyB0byBmb3JtIGEgc2hhcmVkIG9iamVjdCB0aGF0IGNhbiBiZSBkeW5hbWlj YWxseSBsb2FkZWQgYnkgUnVieS4NCg0KIyMgV2h5IFdlIEFyZSBQcm9wb3NpbmcgdG8gVXBzdHJl YW0gVGhpcyBGZWF0dXJlDQoNCkF0IHRoaXMgcG9pbnQsIHdlIGhhdmUgZnVsbHkgZnVuY3Rpb25h bCBpbXBsZW1lbnRhdGlvbnMgb2YgTm9HQyBhbmQgbWFyay1zd2VlcCBhbGdvcml0aG1zLiBXaGls ZSB3ZSBzdGlsbCBoYXZlIGEgbG9uZyB3YXkgdG8gZ28gdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSBh bmQgaW1wbGVtZW50IG1vcmUgYWR2YW5jZWQgYWxnb3JpdGhtcyAoZGlzY3Vzc2VkIGluIHRoZSBb TmV4dCBTdGVwc10oI05leHQtU3RlcHMpIHNlY3Rpb24pLCB3ZSB3b3VsZCBsaWtlIHRvIHVwc3Ry ZWFtIHRoaXMgdG8gaW1wcm92ZSBjb2xsYWJvcmF0aW9uIHdpdGggdGhlIFJ1YnkgY29yZSB0ZWFt IGFuZCB0aGUgUnVieSBjb21tdW5pdHkuDQoNCioqVGhpcyBwcm9wb3NhbCBpcyBmb3IgYW4gZXhw ZXJpbWVudGFsIGZlYXR1cmUgYW5kIHdpbGwgbm90IGJlIGVuYWJsZWQgYnkgZGVmYXVsdC4qKiBG b3IgdXNlcnMgdGhhdCB3YW50IHRvIHRyeSBvdXQgdGhpcyBmZWF0dXJlLCB0aGV5IHdpbGwgaGF2 ZSB0byBjb21waWxlIFJ1Ynkgd2l0aCB0aGUgc2hhcmVkIEdDIGZlYXR1cmUgZW5hYmxlZCwgY29t cGlsZSB0aGUgUnVzdCBiaW5kaW5ncywgYW5kIGNvbXBpbGUgdGhlIE1NVGsgc2hhcmVkIEdDLg0K DQpBZGRpdGlvbmFsbHksIHdlIGRvIG5vdCBldmVyIGFudGljaXBhdGUgcmVwbGFjaW5nIFJ1Ynkn cyBkZWZhdWx0IEdDIHdpdGggTU1UayBidXQgaW5zdGVhZCBvZmZlciBpdCBhcyBhbiBhbHRlcm5h dGl2ZSBpbXBsZW1lbnRhdGlvbi4gUnVieSdzIGRlZmF1bHQgR0Mgd2lsbCBhbHdheXMgYmUgdGhl IGRlZmF1bHQgR0MgZHVlIHRvIGl0cyBsYWNrIG9mIGV4dGVybmFsIGRlcGVuZGVuY2llcywgdmVy c2F0aWxpdHksIGFuZCBlYXNlIG9mIHVzZS4gQXMgc3VjaCwgc2ltaWxhciB0byBZSklULCB3ZSB3 aWxsIG5vdCBiZSBpbnRyb2R1Y2luZyBhIGRlcGVuZGVuY3kgb24gUnVzdCBmb3Igbm9ybWFsIGJ1 aWxkcy4NCg0KIyMgQmVuY2htYXJrcyBhbmQgQW5hbHlzaXMNCg0KV2UgcmFuIFt5aml0LWJlbmNo XShodHRwczovL2dpdGh1Yi5jb20vU2hvcGlmeS95aml0LWJlbmNoKSAoY29tbWl0IFsxYjI5OGZh XShodHRwczovL2dpdGh1Yi5jb20vU2hvcGlmeS95aml0LWJlbmNoL2NvbW1pdC8xYjI5OGZhMzhk ZTZmMDM4YmVmNjQwYjI5YjM5MGY2NzMwYmIzYzkyKSkgb24gYSBVYnVudHUgMjQuMDQgbWFjaGlu ZSB3aXRoIGFuIEludGVsIENvcmUgVWx0cmEgNyAxNTVILiBIZXJlIGFyZSB0aGUgYmVuY2htYXJr IHJlc3VsdHM6DQoNCmBgYA0KLS0tLS0tLS0tLS0tLS0gIC0tLS0tLS0tLS0tICAtLS0tLS0tLS0t ICAtLS0tLS0tLS0gIC0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLS0t LS0gIC0tLS0tLS0tLS0tDQpiZW5jaCAgICAgICAgICAgbWFzdGVyIChtcykgIHN0ZGRldiAoJSkg IFJTUyAoTWlCKSAgbW10ayAobXMpICBzdGRkZXYgKCUpICBSU1MgKE1pQikgIG1tdGsgMXN0IGl0 ciAgbWFzdGVyL21tdGsNCmFjdGl2ZXJlY29yZCAgICA0NTEuNCAgICAgICAgMC4xICAgICAgICAg NjAuOCAgICAgICA0NjY3LjMgICAgIDAuOSAgICAgICAgIDY5LjYgICAgICAgMC4xMCAgICAgICAg ICAwLjEwICAgICAgIA0KY2h1bmt5LXBuZyAgICAgIDExNTEuMSAgICAgICAwLjMgICAgICAgICA0 MS40ICAgICAgIDE0MTYuMSAgICAgMC40ICAgICAgICAgMjkuNCAgICAgICAwLjgzICAgICAgICAg IDAuODEgICAgICAgDQplcnViaS1yYWlscyAgICAgMTk0MC43ICAgICAgIDAuMiAgICAgICAgIDEw NS42ICAgICAgMTU4OTIuOSAgICAzLjQgICAgICAgICAzMjYuMyAgICAgIDAuMTQgICAgICAgICAg MC4xMiAgICAgICANCmhleGFwZGYgICAgICAgICAzNTcwLjQgICAgICAgMS4xICAgICAgICAgMTE5 LjIgICAgICA3NTUyLjIgICAgIDMuNiAgICAgICAgIDE1OS43ICAgICAgMC4zNyAgICAgICAgICAw LjQ3ICAgICAgIA0KbGlxdWlkLWMgICAgICAgIDg3LjcgICAgICAgICAwLjcgICAgICAgICAyNi4x ICAgICAgIDI0Ny44ICAgICAgMi4zICAgICAgICAgMzMuOCAgICAgICAwLjM1ICAgICAgICAgIDAu MzUgICAgICAgDQpsaXF1aWQtY29tcGlsZSAgODYuMSAgICAgICAgIDMuMSAgICAgICAgIDI3LjAg ICAgICAgMTkyLjUgICAgICAxNC4yICAgICAgICAzNC42ICAgICAgIDAuMzEgICAgICAgICAgMC40 NSAgICAgICANCmxpcXVpZC1yZW5kZXIgICAyMTcuNSAgICAgICAgMC4zICAgICAgICAgMjUuOCAg ICAgICA0MjguNyAgICAgIDEuMyAgICAgICAgIDM0LjQgICAgICAgMC41MCAgICAgICAgICAwLjUx ICAgICAgIA0KbG9ic3RlcnMgICAgICAgIDE2NjIuMyAgICAgICAxLjEgICAgICAgICAyNjguMSAg ICAgIDI0NTUuNSAgICAgMi42ICAgICAgICAgMjgyLjMgICAgICAwLjI3ICAgICAgICAgIDAuNjgg ICAgICAgDQptYWlsICAgICAgICAgICAgMTk0LjIgICAgICAgIDAuNiAgICAgICAgIDQ4LjUgICAg ICAgNTg1LjggICAgICAyLjMgICAgICAgICA1OC43ICAgICAgIDAuMzcgICAgICAgICAgMC4zMyAg ICAgICANCnBzeWNoLWxvYWQgICAgICAyOTc2LjkgICAgICAgMC4wICAgICAgICAgMjQuOCAgICAg ICAxMjY0Ni4xICAgIDEuNyAgICAgICAgIDMzLjYgICAgICAgMC4yMyAgICAgICAgICAwLjI0ICAg ICAgIA0KcmFpbHNiZW5jaCAgICAgIDQxMjQuMyAgICAgICAwLjMgICAgICAgICA5Ni45ICAgICAg IDIwNjA2LjYgICAgMC41ICAgICAgICAgMTcxLjUgICAgICAwLjIyICAgICAgICAgIDAuMjANCnJ1 Ym9jb3AgICAgICAgICAyNDUuMyAgICAgICAgMS42ICAgICAgICAgODEuNyAgICAgICA0NzQuNyAg ICAgIDcuMSAgICAgICAgIDkyLjkgICAgICAgMC4yNyAgICAgICAgICAwLjUyICAgICAgIA0KcnVi eS1sc3AgICAgICAgIDIzNC41ICAgICAgICAwLjMgICAgICAgICA2MS41ICAgICAgIDEzMzcuOCAg ICAgMi4wICAgICAgICAgNjIuNyAgICAgICAwLjIwICAgICAgICAgIDAuMTggICAgICAgDQpzZXF1 ZWwgICAgICAgICAgOTguMyAgICAgICAgIDAuNiAgICAgICAgIDMwLjAgICAgICAgMzc2LjcgICAg ICAxLjcgICAgICAgICA0NC40ICAgICAgIDAuMjYgICAgICAgICAgMC4yNiAgICAgICANCi0tLS0t LS0tLS0tLS0tICAtLS0tLS0tLS0tLSAgLS0tLS0tLS0tLSAgLS0tLS0tLS0tICAtLS0tLS0tLS0g IC0tLS0tLS0tLS0gIC0tLS0tLS0tLSAgLS0tLS0tLS0tLS0tICAtLS0tLS0tLS0tLQ0KYGBgDQoN ClRoZSBwZXJmb3JtYW5jZSBnZW9tZXRyaWMgbWVhbiBpcyAwLjI4LCBzbyBpdCBpcyBhbG1vc3Qg NHggc2xvd2VyIHRoYW4gdGhlIGRlZmF1bHQgR0MuDQoNCldlIGFuYWx5emVkIHRoZSByYWlsc2Jl bmNoIGJlbmNobWFyaywgYW5kIHdlIGZvdW5kIGNsZWFyIHJlYXNvbnMgd2h5IGl0J3Mgc2xvd2Vy Og0KDQoxLiBUaGUgZGVmYXVsdCBHQyBydW5zIDgyMyBHQyB0aW1lcyBmb3IgdGhlIGJlbmNobWFy aywgd2hpbGUgTU1UayBydW5zIDEwMTExIHRpbWVzLCB3aGljaCBpcyBvdmVyIDEweCBhcyBtdWNo Lg0KMi4gVGhlIGRlZmF1bHQgR0MgcnVucyBvbmx5IDExIG1ham9yIEdDIHJ1bnMsIGFuZCB0aGUg cmVzdCAob3ZlciA4MDApIGFyZSBtaW5vciBHQy4gU2luY2UgdGhlIE1NVGsgaW1wbGVtZW50YXRp b24gaXMgbm90IGdlbmVyYXRpb25hbCwgZXZlcnkgR0MgcnVuIGlzIGEgbWFqb3IgR0MuDQozLiBB cyBhIHJlc3VsdCwgdGhlIGRlZmF1bHQgR0Mgc3BlbmRzIDMzOTdtcyBpbiBHQyB3aGlsZSBNTVRr IHNwZW5kcyAxNDEzODZtcyAod2hpY2ggaXMgNDF4IHRoZSB0aW1lIGNvbXBhcmVkIHRvIHRoZSBk ZWZhdWx0IEdDKS4NCjQuIFJ1bm5pbmcgYSBwcm9maWxlIChhdHRhY2hlZCBzY3JlZW5zaG90IGJl bG93KSwgd2UgY2FuIHNlZSB0aGF0IHRoZSBtb3N0IG9mIHRoZSB0aW1lIG9ubHkgYSBzaW5nbGUg d29ya2VyIHRocmVhZCBpcyBwZXJmb3JtaW5nIHdvcmsuIFNpbmNlIHBhcmFsbGVsaXNtIHdhc24n dCBhIHByaW9yaXR5IGluIHRoaXMgcGhhc2Ugb2YgdGhlIHByb2plY3QsIHRoZXJlJ3Mgc2lnbmlm aWNhbnQgaW1wcm92ZW1lbnQgb3Bwb3J0dW5pdGllcyB0aGVyZS4NCiAgIVtdKFNjcmVlbnNob3Ql MjAyMDI0LTEwLTI1JTIwYXQlMjAzLjA3LjAxJUUyJTgwJUFGUE0ucG5nKQ0KDQpUaGVzZSBhcmUg c29tZSBvZiB0aGUgcGVyZm9ybWFuY2UgYm90dGxlbmVja3MgdGhhdCB3ZSBoYXZlIGlkZW50aWZp ZWQgYW5kIHdlIGhhdmUgY29uY3JldGUgc3RlcHMgb24gaW1wcm92aW5nIHRoaXMgaW4gdGhlIHNl Y3Rpb24gYmVsb3cuDQoNCiMjIE5leHQgU3RlcHMNCg0KT3VyIGN1cnJlbnQgcm9hZG1hcCBsb29r cyBsaWtlIHRoZSBmb2xsb3dpbmc6DQoNCi0gU3VwcG9ydCBhIGZhc3RlciBub24tbW92aW5nIGNv bGxlY3RvciBzdWNoIGFzIG5vbi1tb3ZpbmcgSW1taXguDQotIEltcHJvdmUgcGFyYWxsZWxpc20g aW4gdGhlIEdDIGN5Y2xlIHNvIHRoYXQgaXQgaXMgZmFzdGVyLg0KLSBJbXBsZW1lbnQgY29weWlu ZyBHQyBzdWNoIGFzIEltbWl4Lg0KLSBJbXBsZW1lbnQgZ2VuZXJhdGlvbmFsIGdhcmJhZ2UgY29s bGVjdG9ycyBmb3IgYmV0dGVyIHBlcmZvcm1hbmNlLg0KLSBJbXByb3ZlIFJ1YnkncyBkYXRhIHN0 cnVjdHVyZXMgKHN1Y2ggYXMgb2JqZWN0IHNoYXBlcywgYXJyYXlzLCBhbmQgc3RyaW5ncykgdG8g dGFrZSBhZHZhbnRhZ2Ugb2YgTU1UaydzIGFiaWxpdHkgdG8gYWxsb2NhdGUgZHluYW1pYyBhbmQg bGFyZ2VyIG9iamVjdCBzaXplcy4NCg0KDQotLS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQpTY3JlZW5zaG90IDIwMjQtMTAtMjUgYXQgMy4wNy4wMeKAr1BNLnBuZyAoNTI4 IEtCKQ0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlz dCAtLSBydWJ5LWNvcmVAbWwucnVieS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBl bWFpbCB0byBydWJ5LWNvcmUtbGVhdmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8g LS0gaHR0cHM6Ly9tbC5ydWJ5LWxhbmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5y dWJ5LWxhbmcub3JnLw==