[#113435] [Ruby master Feature#19634] Pattern matching dynamic key — "baweaver (Brandon Weaver) via ruby-core" <ruby-core@...>
Issue #19634 has been reported by baweaver (Brandon Weaver).
6 messages
2023/05/09
[#113489] [Ruby master Bug#19642] Remove vectored read/write from `io.c`. — "ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>
Issue #19642 has been reported by ioquatix (Samuel Williams).
10 messages
2023/05/15
[ruby-core:113592] [Ruby master Feature#19541] Proposal: Generate frame unwinding info for YJIT code
From:
"Eregon (Benoit Daloze) via ruby-core" <ruby-core@...>
Date:
2023-05-22 14:45:57 UTC
List:
ruby-core #113592
SXNzdWUgIzE5NTQxIGhhcyBiZWVuIHVwZGF0ZWQgYnkgRXJlZ29uIChCZW5vaXQgRGFsb3plKS4N DQoNDQoNDQpJIHRoaW5rIHN1cHBvcnRpbmcgdGhpcyBjb3VsZCBhbHNvIGhlbHAgYmV0dGVyIHBy b2ZpbGluZyB3aXRoIFlKSVQgZW5hYmxlZDogaHR0cHM6Ly9naXRodWIuY29tL3RtbTEvc3RhY2tw cm9mL3B1bGwvMTgwI2lzc3VlY29tbWVudC0xNTU2MTM5NTMzDQ0KDQ0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0NCkZlYXR1cmUgIzE5NTQxOiBQcm9wb3NhbDogR2Vu ZXJhdGUgZnJhbWUgdW53aW5kaW5nIGluZm8gZm9yIFlKSVQgY29kZQ0NCmh0dHBzOi8vYnVncy5y dWJ5LWxhbmcub3JnL2lzc3Vlcy8xOTU0MSNjaGFuZ2UtMTAzMjMxDQ0KDQ0KKiBBdXRob3I6IGtq dHNhbmFrdHNpZGlzIChLSiBUc2FuYWt0c2lkaXMpDQ0KKiBTdGF0dXM6IEFzc2lnbmVkDQ0KKiBQ cmlvcml0eTogTm9ybWFsDQ0KKiBBc3NpZ25lZTogeWppdA0NCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NDQojIyBXaGF0IGlzIGJlaW5nIHByb3BzZWQ/DQ0KDQ0KQ3Vy cmVudGx5LCB3aGVuIFJ1YnkgY3Jhc2hlcyB3aXRoIHlqaXQgZ2VuZXJhdGVkIGNvZGUgb24gdGhl IHN0YWNrLCBgcmJfcHJpbnRfYmFja3RyYWNlKClgIGlzIHVuYWJsZSB0byBhY3R1YWxseSBzaG93 IGFueSBmcmFtZXMgdW5kZXJuZWF0aCB0aGUgeWppdCBjb2RlLiBGb3IgZXhhbXBsZSwgaWYgeW91 IHNlbmQgU0lHU0VHViB0byBhIFJ1YnkgcHJvY2VzcyBydW5uaW5nIHlqaXQsIHRoaXMgaXMgd2hh dCB5b3Ugc2VlOg0NCg0NCmBgYA0NCi9ydWJ5L21pbmlydWJ5KHJiX3ByaW50X2JhY2t0cmFjZSsw eGMpIFsweGFhYWFkMDI3Njg4NF0gL3J1Ynkvdm1fZHVtcC5jOjc4NQ0NCi9ydWJ5L21pbmlydWJ5 KHJiX3ZtX2J1Z3JlcG9ydCkgL3J1Ynkvdm1fZHVtcC5jOjEwOTMNDQovcnVieS9taW5pcnVieShy Yl9idWdfZm9yX2ZhdGFsX3NpZ25hbCsweGQwKSBbMHhhYWFhZDAwNzU1ODBdIC9ydWJ5L2Vycm9y LmM6ODEzDQ0KL3J1YnkvbWluaXJ1Ynkoc2lnc2VndisweDVjKSBbMHhhYWFhZDAxYmVkYWNdIC9y dWJ5L3NpZ25hbC5jOjkxOQ0NCmxpbnV4LXZkc28uc28uMShfX2tlcm5lbF9ydF9zaWdyZXR1cm4r MHgwKSBbMHhmZmZmOTFhM2U4YmNdDQ0KL3J1YnkvbWluaXJ1YnkobWFwPCh1c2l6ZSwgeWppdDo6 YmFja2VuZDo6aXI6Okluc24pLCAodXNpemUsIHlqaXQ6OmJhY2tlbmQ6OmlyOjpJbnNuKSwgeWpp dDo6YmFja2VuZDo6aXI6OntpbXBsIzE3fTo6bmV4dF9tYXBwZWQ6OntjbG9zdXJlX2VudiMwfT4r MHg4YykgWzB4YWFhYWQwM2I4YjAwXSAvcnVzdGMvODk3ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2 Nzg4OWQxMWVjZDEyMC9saWJyYXJ5L2NvcmUvc3JjL29wdGlvbi5yczo5MjkNDQovcnVieS9taW5p cnVieShuZXh0X21hcHBlZCsweDNjKSBbMHhhYWFhZDAyOTFkYzBdIHNyYy9iYWNrZW5kL2lyLnJz OjEyMjUNDQovcnVieS9taW5pcnVieShhcm02NF9zcGxpdCsweDExNCkgWzB4YWFhYWQwMjg3NzQ0 XSBzcmMvYmFja2VuZC9hcm02NC9tb2QucnM6MzU5DQ0KL3J1YnkvbWluaXJ1YnkoY29tcGlsZV93 aXRoX3JlZ3MrMHg4MCkgWzB4YWFhYWQwMjhiZjg0XSBzcmMvYmFja2VuZC9hcm02NC9tb2QucnM6 MTEwNg0NCi9ydWJ5L21pbmlydWJ5KGNvbXBpbGUrMHhjNCkgWzB4YWFhYWQwMjkxYWUwXSBzcmMv YmFja2VuZC9pci5yczoxMTU4DQ0KL3J1YnkvbWluaXJ1YnkoZ2VuX3NpbmdsZV9ibG9jaysweGU0 NCkgWzB4YWFhYWQwMmIxZjg4XSBzcmMvY29kZWdlbi5yczo4NTQNDQovcnVieS9taW5pcnVieShn ZW5fYmxvY2tfc2VyaWVzX2JvZHkrMHg5YykgWzB4YWFhYWQwM2IwMjUwXSBzcmMvY29yZS5yczox Njk4DQ0KL3J1YnkvbWluaXJ1YnkoZ2VuX2Jsb2NrX3NlcmllcysweDUwKSBbMHhhYWFhZDAzYjAx MDBdIHNyYy9jb3JlLnJzOjE2NzYNDQovcnVieS9taW5pcnVieShicmFuY2hfc3R1Yl9oaXRfYm9k eSsweDgwYykgWzB4YWFhYWQwM2IxZjY4XSBzcmMvY29yZS5yczoyMDIxDQ0KL3J1YnkvbWluaXJ1 Ynkoe2Nsb3N1cmUjMH0rMHgyOCkgWzB4YWFhYWQwMmViODZjXSBzcmMvY29yZS5yczoxOTI0DQ0K L3J1YnkvbWluaXJ1YnkoZG9fY2FsbDx5aml0Ojpjb3JlOjpicmFuY2hfc3R1Yl9oaXQ6OntjbG9z dXJlX2VudiMwfSwgKmNvbnN0IHU4PisweDk4KSBbMHhhYWFhZDAzNWJhM2NdIC9ydXN0Yy84OTdl Mzc1NTNiYmE4YjQyNzUxYzY3NjU4OTY3ODg5ZDExZWNkMTIwL2xpYnJhcnkvc3RkL3NyYy9wYW5p Y2tpbmcucnM6NDkyDQ0KWzB4YWFhYWQwMzVjOWI0XQ0NCmBgYA0NCg0NCihuLmIuIC0gSSBjb21w aWxlZCBSdWJ5IHdpdGggYC1mYXN5bmNocm9ub3VzLXVud2luZC10YWJsZXMg4oCTcmR5bmFtaWMg 4oCTZ2AgaW4gY2ZsYWdzIHRvIG1ha2Ugc3VyZSBnY2MgZ2VuZXJhdGVzIGFwcHJvcHJpYXRlIHVu d2luZCBpbmZvICYga2VlcHMgdGhlIHN5bWJvbCB0YWJsZXMpLg0NCg0NCkxpa2V3aXNlLCBpZiB5 b3UgYXR0YWNoIGdkYiB0byBhIFJ1YnkgcHJvY2VzcyB3aXRoIHlqaXQgZW5hYmxlZCwgZ2RiIGNh bid0IHNob3cgdGhyZWFkIGJhY2t0cmFjZXMgdGhyb3VnaCB5aml0LWdlbmVyYXRlZCBjb2RlIGVp dGhlci4NDQoNDQpNeSBwcm9wb3NhbCBpcyB0aGF0IFlKSVQgZ2VuZXJhdGUgc3VmZmljaWVudCB1 bndpbmRpbmcgYW5kIGRlYnVnIGluZm9ybWF0aW9uIG9uIGFsbCBwbGF0Zm9ybXMgdG8gYWxsb3cg Ym90aCBgcmJfcHJpbnRfYmFja3RyYWNlKClgIGFuZCB0aGUgcGxhdGZvcm0ncyBkZWJ1Z2dlciAo Z2RiL2xsZGIvV2luRGJnKSB0byBzaG93Og0NCg0NCiogRnVsbCBzdGFjayB0cmFjZXMgYWxsIHRo ZSB3YXkgYmFjayB0byBgbWFpbmAuIFRoYXQgaXMsIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBz ZWUgZnJhbWVzIF91bmRlcm5lYXRoXyBgWzB4YWFhYWQwMzVjOWI0XWAgZnJvbSB0aGUgYmFja3Ry YWNlIGFib3ZlLg0NCiogTmFtZXMgZm9yIHRoZSBkeW5hbWljYWxseSBnZW5lcmF0ZWQgeWppdCBi bG9ja3MgKGUuZy4gaW5zdGVhZCBvZiBgWzB4YWFhYWQwMzVjOWI0XWAsIHdlIHNob3VsZCBzZWUg c29tZXRoaW5nIGxpa2UgYHlqaXQkJG5hbWVfb2ZfcnVieV9tZXRob2RgLCB3aGVyZSBgbmFtZV9v Zl9ydWJ5X21ldGhvZGAgaXMgdGhlIGBsYWJlbGAgZm9yIHRoZSBpc2VxIHRoaXMgaXMgSklUJ2Qg Y29kZSBmb3IpLg0NCg0NCiMjIE1vdGl2YXRpb24NDQoNDQpJIGhhdmUgYSBmZXcgbW90aXZhdGlv bnMgZm9yIHdhbnRpbmcgdGhpcy4gRmlyc3RseSwgSSBmZWVsIHRoaXMgZnVuY3Rpb25hbGl0eSBp cyBpbmRlcGVuZGVudGx5IHVzZWZ1bC4gV2hlbiBSdWJ5IGNyYXNoZXMsIHRoZSBtb3JlIGluZm9y bWF0aW9uIHdlIGNhbiBnZXQsIHRoZSBtb3JlIGxpa2VseSB3ZSBhcmUgdG8gZmluZCB0aGUgcm9v dCBjYXVzZS4gTGlrZXdpc2UsIHRoZSBzYW1lIHByaW5jaXBsZSBhcHBsaWVzIHRvIGRlYnVnZ2lu ZyB3aXRoIGdkYiAtIHlvdSBjYW4gZ2V0IGEgZnVsbGVyIHVuZGVyc3RhbmRpbmcgb2Ygd2hhdCB0 aGUgcHJvY2VzcyBpcyBkb2luZyBpZiB5b3Ugc2VlIHRoZSB3aG9sZSBzdGFjay4NDQoNDQpJIGhh dmUgb2Z0ZW4gZm91bmQgYXR0YWNoaW5nIGdkYiB0byB0aGUgUnVieSBpbnRlcnByZXRlciBoZWxw cyBpbiB1bmRlcnN0YW5kaW5nIHByb2JsZW1zIGluIFJ1YnkgY29kZSBvciBDIGV4dGVuc2lvbnMg YW5kIGlzIHNvbWV0aGluZyBJIGRvIHJlbGF0aXZlbHkgZnJlcXVlbnRseTsgeWppdCBicmVha2lu ZyB0aGF0IHdpbGwgZGVmaW5pdGVseSBiZSBpbmNvbnZlbmllbnQgZm9yIG1lIQ0NCg0NCiMjIElt cGxlbWVudGF0aW9uDQ0KDQ0KSSBoYXZlIGEgZHJhZnQgaW1wbGVtZW50YXRpb24gaGVyZSBvbiBo b3cgSSdkIGltcGxlbWVudCB0aGlzOiBodHRwczovL2dpdGh1Yi5jb20vcnVieS9ydWJ5L3B1bGwv NzU2Ny4gSXQncyBjdXJyZW50bHkgbWlzc2luZyB0ZXN0cyAmIHBsYXRmb3JtIHN1cHBvcnQgKGl0 IG9ubHkgd29ya3Mgb24gTGludXggYWFyY2g2NCkuIEFsc28sIGl0IGltcGxlbWVudHMgdW53aW5k IGluZm8gZ2VuZXJhdGlvbiwgc28gdW53aW5kaW5nIGNhbiB3b3JrIF90aHJvdWdoXyB5aml0IGNv ZGUsIGJ1dCBpdCBkb2VzIG5vdCBjdXJyZW50bHkgZW1pdCBzeW1ib2xzIHRvIGdpdmUgX25hbWVz XyB0byB0aG9zZSB5aml0IGZyYW1lcy4NDQoNDQpNeSBQUiBjb250YWlucyBhIGRvY3VtZW50IHdo aWNoIGV4cGxhaW5zIGhvdyB0aGUgTGludXggaW50ZXJmYWNlcyBmb3IgcmVnaXN0ZXJpbmcgdW53 aW5kIGluZm8gZm9yIEpJVCdkIGNvZGUgd29yaywgc28gSSB3b24ndCBkdXBsaWNhdGUgdGhhdCBp bmZvcm1hdGlvbiBoZXJlLg0NCg0NClRoZSBiaWdnZXN0IGltcGxlbWVudGF0aW9uIHF1ZXN0aW9u IEkgaGFkIGlzIGFyb3VuZCB0aGUgdXNlIG9mIFJ1c3QgY3JhdGVzLiBDdXJyZW50bHksIEkgcHJv dG90eXBlZCBteSBpbXBsZW1lbnRhdGlvbiB1c2luZyB0aGUgZ2ltbGkgJiBvYmplY3QgY3JhdGVz LCBmb3IgZ2VuZXJhdGluZyBEV0FSRiBpbmZvIGFuZCBFTEYgYmluYXJpZXMuIEhvd2V2ZXIsIHRo ZSB5aml0IGJ1aWxkIGRvZXMgcHVycG9zZWZ1bGx5IGRvZXMgbm90IHVzZSBjYXJnbyAmIGV4dGVy bmFsIGNyYXRlcyBmb3IgcmVsZWFzZSBidWlsZHMuIFRoZXJlIGFyZSBhIGZldyBkaWZmZXJlbnQg d2F5cyB3ZSBjb3VsZCBnbyBoZXJlOg0NCg0NCiogRG9uJ3QgdXNlIHRoZSBnaW1saSAmIG9iamVj dCBjcmF0ZXM7IGluc3RlYWQsIHJlLWltcGxlbWVudCBhbGwgZGVidWcgaW5mbyAmIG9iamVjdCBm aWxlIGdlbmVyYXRpb24gY29kZSBpbiB5aml0Lg0NCiogRG9uJ3QgdXNlIHRoZSBjcmF0ZXM7IGlu c3RlYWQsIGxpbmsgYWdhaW50IEMgbGlicmFyaWVzIHRvIHByb3ZpZGUgdGhpcyBmdW5jdGlvbmFs aXR5ICYgY2FsbCB0aGVtIGZyb20gUnVzdCAocGVyaGFwcyBzb21lIGNvbWJpbmF0aW9uIG9mIGxp YmVsZiwgbGliZHcsIGxpYmJmZCwgb3IgbGx2bSBtaWdodCBkbyB3aGF0IHdlIG5lZWQpDQ0KKiBV c2UgY2FyZ28gYWZ0ZXIgYWxsIGZvciB0aGUgcmVsZWFzZSBidWlsZCAmIGRvd25sb2FkIHRoZSBj cmF0ZXMgYXQgYnVpbGQtdGltZQ0NCiogVXNlIGNhcmdvIGZvciB0aGUgcmVsZWFzZSBidWlsZCwg YnV0IHZlbmRvciBldmVyeXRoaW5nLCBzbyB0aGUgYnVpbGQgZG9lc24ndCBuZWVkIHRvIGRvd25s b2FkIGFueXRoaW5nDQ0KKiBPbmx5IG1ha2UgdW53aW5kIGluZm8gZ2VuZXJhdGlvbiBhdmFpbGFi bGUgaW4gZGV2IG1vZGUgd2hlcmUgY2FyZ28gaXMgdXNlZCwgYW5kIHNvIG1hcmsgdGhlIGdpbWxp L29iamVjdCBkZXBlbmRlbmNpZXMgYXMgb3B0aW9uYWwgaW4gQ2FyZ28udG9tbC4NDQoNDQpXZSdk IG5lZWQgdG8gZGVjaWRlIG9uIG9uZSBvZiB0aGVzZSBhcHByb2FjaGVzIGZvciB0aGlzIHByb3Bv c2FsIHRvIHdvcmsuIEkgZG9uJ3QgcmVhbGx5IGhhdmUgYSBzdHJvbmcgc2Vuc2Ugb2YgdGhlIHBy b3MvY29ucyBvZiBlYWNoLg0NCg0NCihTaWRlIG5vdGUgLSBteSBQUiBhY3R1YWxseSBkZXBlbmRz IG9uIGEgX2ZvcmtfIG9mIGdpbWxpIC0gSSd2ZSBiZWVuIGRpc2N1c3NpbmcgYWRkaW5nIHRoZSBu ZWVkZWQgaW50ZXJmYWNlcyB1cHN0cmVhbSBoZXJlOiBodHRwczovL2dpdGh1Yi5jb20vZ2ltbGkt cnMvZ2ltbGkvaXNzdWVzLzY0OCkuDQ0KDQ0KIyMgQmVuY2htYXJrcw0NCg0NCkkgcmFuIHRoZSB5 aXQtYmVuY2ggc3VpdGUgb24gbXkgYnJhbmNoIGFuZCBjb21wYXJlZCBpdCB0byBSdWJ5IG1hc3Rl cjoNDQoNDQoqIE15IGJyYW5jaDogaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vS0pUc2FuYWt0c2lk aXMvNTc0MWE5ZjY0ZTVjZDc1Y2RmNWZlZGQ4NDYwOTFhNGYNDQoqIFJ1YnkgbWFzdGVyOiBodHRw czovL2dpc3QuZ2l0aHViLmNvbS9LSlRzYW5ha3RzaWRpcy81OTJkM2ViY2Y5OGY2NzQ1ZGZhM2Vm YmQzMGEyNWFjZg0NCg0NClRoaXMgaXMgYSAodmVyeSBzaW1wbGUpIGNvbXBhcmlzb246DQ0KDQ0K YGBgDQ0KLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLSAtLS0tLS0tLS0t LS0tLS0NDQpiZW5jaCAgICAgICAgICB5aml0IChtcykgICAgYnJhbmNoIChtcykgIGJyYW5jaC95 aml0ICglKQ0NCmFjdGl2ZXJlY29yZCAgIDk3LjUgICAgICAgICA5OC41ICAgICAgICAgMTAxLjAz JQ0NCmhleGFwZGYgICAgICAgIDI0MTUuMyAgICAgICAyNDU4LjIgICAgICAgMTAxLjc4JQ0NCmxp cXVpZC1jICAgICAgIDYxLjkgICAgICAgICA2My4xICAgICAgICAgMTAxLjk0JQ0NCmxpcXVpZC1y ZW5kZXIgIDEzNS4zICAgICAgICAxMzUuMCAgICAgICAgOTkuNzglDQ0KbWFpbCAgICAgICAgICAg MTA0LjYgICAgICAgIDEwNS41ICAgICAgICAxMDAuODYlDQ0KcHN5Y2gtbG9hZCAgICAgMTg4Ny4x ICAgICAgIDE5MjIuMCAgICAgICAxMDEuODUlDQ0KcmFpbHNiZW5jaCAgICAgMTU0NC40ICAgICAg IDE1NTYuMCAgICAgICAxMDAuNzUlDQ0KcnVieS1sc3AgICAgICAgODguNCAgICAgICAgIDg5LjUg ICAgICAgICAxMDEuMjQlDQ0Kc2VxdWVsICAgICAgICAgMTQ3LjUgICAgICAgIDE1MS4xICAgICAg ICAxMDIuNDQlDQ0KYmluYXJ5dHJlZXMgICAgMzAzICAgICAgICAgIDMwNS42ICAgICAgICAxMDAu ODYlDQ0KY2h1bmt5X3BuZyAgICAgMTA3NS44ICAgICAgIDEwNzkuNCAgICAgICAxMDAuMzMlDQ0K ZXJ1YmkgICAgICAgICAgMzkyLjkgICAgICAgIDM5Mi4zICAgICAgICA5OS44NSUNDQplcnViaV9y YWlscyAgICAxNC43ICAgICAgICAgMTQuNyAgICAgICAgIDEwMC4wMCUNDQpldGFubmkgICAgICAg ICA3OTIuMyAgICAgICAgNzkxLjQgICAgICAgIDk5Ljg5JQ0NCmZhbm5rdWNocmVkdXggIDM4MTUu OSAgICAgICAzODEzLjYgICAgICAgOTkuOTQlDQ0KbGVlICAgICAgICAgICAgMTAzMC4yICAgICAg IDEwMzkuMiAgICAgICAxMDAuODclDQ0KbmJvZHkgICAgICAgICAgNDkuMiAgICAgICAgIDQ5LjMg ICAgICAgICAxMDAuMjAlDQ0Kb3B0Y2Fycm90ICAgICAgNDE0MiAgICAgICAgIDQxNDMuMyAgICAg ICAxMDAuMDMlDQ0KcnVieS1qc29uICAgICAgMjg2MC43ICAgICAgIDI4NzQuMCAgICAgICAxMDAu NDYlDQ0KcnVieWtvbiAgICAgICAgNzkwNi42ICAgICAgIDc5MDQuMiAgICAgICA5OS45NyUNDQoz MGtfaWZlbHNlICAgICAzNDguNyAgICAgICAgMzQ1LjQgICAgICAgIDk5LjA1JQ0NCjMwa19tZXRo b2RzICAgIDgyOC42ICAgICAgICA4MzEuOCAgICAgICAgMTAwLjM5JQ0NCmNmdW5jX2l0c2VsZiAg IDI4LjggICAgICAgICAyOC45ICAgICAgICAgMTAwLjM1JQ0NCmZpYiAgICAgICAgICAgIDM0LjQg ICAgICAgICAzNC41ICAgICAgICAgMTAwLjI5JQ0NCmdldGl2YXIgICAgICAgIDExNS41ICAgICAg ICAxMDkuNyAgICAgICAgOTQuOTglDQ0Ka2V5d29yZF9hcmdzICAgMzcuNyAgICAgICAgIDM4LjAg ICAgICAgICAxMDAuODAlDQ0KcmVzcG9uZF90byAgICAgMjYgICAgICAgICAgIDI2LjEgICAgICAg ICAxMDAuMzglDQ0Kc2V0aXZhciAgICAgICAgMzMuOCAgICAgICAgIDMzLjUgICAgICAgICA5OS4x MSUNDQpzZXRpdmFyX29iamVjdCAyMDguNyAgICAgICAgMTk0LjMgICAgICAgIDkzLjEwJQ0NCnN0 cl9jb25jYXQgICAgIDUyLjYgICAgICAgICA1Mi4yICAgICAgICAgOTkuMjQlDQ0KdGhyb3cgICAg ICAgICAgMjMuOCAgICAgICAgIDI0LjEgICAgICAgICAxMDEuMjYlDQ0KLS0tLS0tLS0tLS0tLS0g LS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLSAtLS0tLS0tLS0tLS0tLS0NDQpgYGANDQoNDQpJdCBz ZWVtcyBsaWtlIHRoZSBwZXJmb3JtYW5jZSBpbXBhY3Qgb2YgZ2VuZXJhdGluZyBhbmQgcmVnaXN0 ZXJpbmcgdGhlIGRlYnVnIGluZm8gaXMgbWFyZ2luYWwuDQ0KDQ0KDQ0KDQ0KLS0gDQ0KaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQ0KIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KIHJ1YnktY29yZSBtYWlsaW5nIGxpc3QgLS0gcnVieS1jb3JlQG1sLnJ1 YnktbGFuZy5vcmcKIFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8gcnVieS1jb3JlLWxl YXZlQG1sLnJ1YnktbGFuZy5vcmcKIHJ1YnktY29yZSBpbmZvIC0tIGh0dHBzOi8vbWwucnVieS1s YW5nLm9yZy9tYWlsbWFuMy9wb3N0b3JpdXMvbGlzdHMvcnVieS1jb3JlLm1sLnJ1YnktbGFuZy5v cmcv