Re: ENH: Add np.sinpi et al following CPython core, C23 & IEEE754-2019
Sebastian Berg <[email protected]> Sat, 13 Jun 2026 10:58:23 +0200
| Newsgroups | gmane.comp.python.numeric.general |
|---|---|
| Message-ID | <[email protected]> |
T24gRnJpLCAyMDI2LTA2LTEyIGF0IDIxOjMxICswMjAwLCBSYWxmIEdvbW1lcnMgdmlhIE51bVB5 LURpc2N1c3Npb24NCndyb3RlOg0KPiBPbiBGcmksIEp1biAxMiwgMjAyNiBhdCAyOjMz4oCvUE0g TmF0aGFuIHZpYSBOdW1QeS1EaXNjdXNzaW9uIDwNCj4gbnVtcHktZGlzY3Vzc2lvbkBweXRob24u b3JnPiB3cm90ZToNCj4gDQo+ID4gVGhlcmUgaXMgbm8gaGFyZC1hbmQtZmFzdCBydWxlLCBiZXNp ZGVzIHRoYXQgY2hhbmdpbmcgdGhlIE51bVB5IEFQSQ0KPiA+IHN1cmZhY2UgaGFzIGEgbXVjaCBs YXJnZXIgYmxhc3QgcmFkaXVzIHRoYW4gY2hhbmdpbmcgdGhlIFNjaVB5IEFQSQ0KPiA+IHN1cmZh Y2UuDQo+ID4gQWRkaW5nIHVmdW5jcyB0byB0aGUgTnVtUHkgQVBJIGZvcmNlcyBkb3duc3RyZWFt IHByb2plY3RzIHRoYXQNCj4gPiBhdHRlbXB0IHRvDQo+ID4gYmUgY29tcGF0aWJsZSB3aXRoIHRo ZSBmdWxsIE51bVB5IEFQSSB0byBhZGQgc3VwcG9ydC4NCj4gPiANCj4gPiBUaGVyZeKAmXMgdGhl IGFycmF5IEFQSSBzdGFuZGFyZCB0byBjb25zaWRlcjoNCj4gPiBodHRwczovL2RhdGEtYXBpcy5v cmcvYXJyYXktYXBpL2xhdGVzdC8NCj4gPiANCj4gPiBJ4oCZbSBub3Qgc2F5aW5nIHRvIGdvIHRv IHRoZW0gYW5kIGFzayB0aGVtIHRvIHN0YW5kYXJkaXplIGl0LiBUaGF04oCZcw0KPiA+IG5vdA0K PiA+IGhvdyBpdOKAmXMgc3VwcG9zZWQgdG8gd29yazogdGhpbmdzIGJlY29tZSBzdGFuZGFyZGl6 ZWQgYWZ0ZXIgZ2FpbmluZw0KPiA+IHdpZGVzcHJlYWQgYWRvcHRpb24uDQo+ID4gDQo+ID4gVGhh dCBzYWlkLCBoYXMgdGhpcyBjb21lIHVwIGluIGFueSBhcnJheSBBUEkgZGlzY3Vzc2lvbnM/DQo+ ID4gDQo+IA0KPiBJdCBoYXNuJ3QgLSBhbmQgc2luY2Ugbm8gb3RoZXIgYXJyYXkgbGlicmFyeSBp biBQeXRob24gc2VlbXMgdG8gaGF2ZQ0KPiBpdCwNCj4gdGhhdCdzIGZhaXJseSBwcmVtYXR1cmUg dG8gYnJpbmcgdXAgSSdkIHNheS4NCj4gDQo+IA0KPiA+IEFsc28sIGRvIG90aGVyIGFycmF5IG9y IHRlbnNvciBsaWJyYXJpZXMgaW1wbGVtZW50IGl0PyBJbmNyZWFzaW5nDQo+ID4gaW50ZXJvcGVy YWJpbGl0eSBhbmQgbWFraW5nIGl0IGVhc2llciBmb3IgdGhlc2FtZSBQeXRob24gZnVuY3Rpb24N Cj4gPiB0byBiZQ0KPiA+IHVzZWQgcmVnYXJkbGVzcyBvZiB0aGUgdW5kZXJseWluZyBhcnJheSB0 eXBlIGlzIGEgY29yZSBwcm9qZWN0DQo+ID4gZ29hbC4NCj4gPiANCj4gDQo+IEMyMywgRm9ydHJh biAyMDIzLCBJRUVFNzU0LTIwMTksIEp1bGlhLCBNYXRsYWIgYW5kIFIgYWxsIGhhdmUgaXQsDQo+ IHdoaWNoIGlzDQo+IHByZXR0eSBzb2xpZCBwcmlvciBhcnQuDQoNCg0KWWVhaCwgaXQgc2VlbXMg ZmluZSB0byBtZSB0byBpbXBsZW1lbnQgaW4gTnVtUHkgZ2l2ZW4gdGhhdCBldmVuIFB5dGhvbg0K aGFzIGl0IG5vdy4NCg0KVGhlIG9ubHkgdGhpbmcgd2Ugc2hvdWxkIGNvbnNpZGVyIGlzIHRvIHNl ZSB3aGVyZSB0aGUgYG1pbi9tYXhgIHNoYWtlcw0Kb3V0IG9uIG5hbWVzcGFjZXMuDQpOb3Qgc2F5 aW5nIHRoYXQgYHNpbnBpYCBzaG91bGRuJ3QgYmUgaW4gdGhlIG1haW4gbmFtZXNwYWNlLCBpdCBz ZWVtcyBPSw0KdG8gbWUuDQpCdXQgaWYgd2UgaGF2ZSBhIG5ldyBuYW1lc3BhY2UgZm9yIHRoaW5n cyB0aGF0IHlvdSByYXJlbHkgc3RyaWN0bHkgbmVlZA0KYnV0IHRoYXQgYXJlIGZhc3RlciwgbW9y ZSBwcmVjaXNlLCBvciBqdXN0IGNvbnZlbmllbnQgdGhlbiB3ZSBjb3VsZA0KY29uc2lkZXIgdXNp bmcgaXQuDQooVGhpcyB3b3VsZCByZWx5IG9uICJTZWUgQWxzbyIgZm9yIGRpc2NvdmVyYWJpbGl0 eS4pDQoNCi0gU2ViYXN0aWFuDQoNCg0KDQo+IA0KPiBJbiBhZGRpdGlvbiB0byB0aGUgUkZDIEx1 Y2FzIGxpbmtlZCwgdGhlcmUncyBhIHN0YWxsZWQgb3BlbiBQUiB0byBhZGQNCj4gaXQgdG8NCj4g c2NpcHkuc3BlY2lhbCB0aGF0IG1pZ2h0IGJlIHVzZWZ1bDoNCj4gaHR0cHM6Ly9naXRodWIuY29t L3NjaXB5L3NjaXB5L3B1bGwvMjEzOTguIEknbGwgbm90ZSB0aGF0IGl0IGFsc28NCj4gY292ZXJz DQo+IGNvbXBsZXggZHR5cGVzIChhcyBpdCBzaG91bGQpLCBhbmQgdGhhdCBDMjMgZXQgYWwuIGFy ZSByZWFsLXZhbHVlZA0KPiBvbmx5LiBTbw0KPiBOdW1QeSB3b3VsZG4ndCBiZSBhYmxlIHRvIGNv dW50IG9uIGBsaWJtYCBzdXBwb3J0IGZvciBtYW55IHllYXJzLA0KPiBwcm9iYWJseQ0KPiBuZXZl ciwgYW5kIGl0J2QgaGF2ZSB0byBoYW5kbGUgbW9yZSBkdHlwZXMgdGhhbiBgc2NpcHkuc3BlY2lh bGANCj4gKGUuZy4sDQo+IGZsb2F0MTYsIGxvbmdkb3VibGUpLiBUaGVyZSdzIGFsc28gdGhlIGFt b3VudCBvZiBmdW5jdGlvbnM6IGlzIGl0DQo+IHNpbnBpL2Nvc3BpL3RhbnBpLCBvciBhbHNvIHRo ZWlyIGludmVyc2VzPyBBbmQgdGhlIFNjaVB5IFBSIGhhcyBjb3RwaQ0KPiBhcw0KPiB3ZWxsIChu b3Qgc3VyZSBpZiB0aGF0IG1ha2VzIHNlbnNlIHRvIGFkZCB0aGVyZSwgYnV0IGFsbW9zdCBjZXJ0 YWlubHkNCj4gbm90DQo+IHRvIE51bVB5KS4gR2l2ZW4gYWxsIHRoYXQsIEknZCBiZSBpbmNsaW5l ZCB0byBwdXQgaXQgaW4gYHhzZmAgYW5kDQo+IGBzY2lweS5zcGVjaWFsYCwgc3VwcG9ydGluZyBv bmx5DQo+IGZsb2F0MzIvZmxvYXQ2NC9jb21wbGV4NjQvY29tcGxleDEyOC4gVGhlDQo+IHhzZiBp bXBsZW1lbnRhdGlvbiBjb3VsZCB0aGVuIGFsc28gc3VwcG9ydCBDdVB5Lg0KPiANCj4gQ2hlZXJz LA0KPiBSYWxmDQo+IA0KPiANCj4gDQo+ID4gDQo+ID4gT24gRnJpLCBKdW4gMTIsIDIwMjYgYXQg NjoyNeKAr0FNIEplZmYgRXBsZXIgPGplcGxlckB1bnB5dGhvbmljLm5ldD4NCj4gPiB3cm90ZToN Cj4gPiANCj4gPiA+IEhvdyBpcyBpdCB0eXBpY2FsbHkgZGVjaWRlZCB3aGV0aGVyIHNvbWUgYXJy YXkgZnVuY3Rpb24gZ29lcyBpbg0KPiA+ID4gbnVtcHkgb3INCj4gPiA+IHNjaXB5Pw0KPiA+ID4g DQo+ID4gPiBPbiBUdWUsIEp1biA5LCAyMDI2LCBhdCAxMTowOCBBTSwgTHVjYXMgQ29sbGV5IHZp YSBOdW1QeS0NCj4gPiA+IERpc2N1c3Npb24gd3JvdGU6DQo+ID4gPiANCj4gPiA+IFRoZXJlIHdh cyBhIHByb3Bvc2FsIHRvIGFkZCB0aGVzZSB0byBgc2NpcHkuc3BlY2lhbGA6DQo+ID4gPiBodHRw czovL2Rpc2N1c3Muc2NpZW50aWZpYy1weXRob24ub3JnL3QvcmZjLWFkZC1zaW5waS1jb3NwaS10 YW5waS1hbmQtY290cGktZnVuY3Rpb25zLXRvLXNwZWNpYWwvMTE5Mw0KPiA+ID4gLg0KPiA+ID4g VGhlcmUgYXJlIGV4aXN0aW5nIGltcGxlbWVudGF0aW9ucyBhdA0KPiA+ID4gaHR0cHM6Ly9naXRo dWIuY29tL3NjaXB5L3hzZi9ibG9iL21haW4vaW5jbHVkZS94c2YvdHJpZy5owqAsIHdpdGgNCj4g PiA+IGBzaW5waWANCj4gPiA+IGFuZCBgY29zcGlgIGV4cG9zZWQgdG8gU2NpUHkgKHByaXZhdGVs eSkgYXQNCj4gPiA+IGh0dHBzOi8vZ2l0aHViLmNvbS9zY2lweS9zY2lweS9ibG9iL21haW4vc2Np cHkvc3BlY2lhbC94c2Zfd3JhcHBlcnMuaCNMMzk0LUwzOTYNCj4gPiA+IC4NCj4gPiA+IA0KPiA+ ID4gV2Ugc2hvdWxkIHByb2JhYmx5IGRlY2lkZSB3aGV0aGVyIHRoZXNlIGJlc3QgYmVsb25nIGlu IGBudW1weWAgb3INCj4gPiA+IGBzY2lweS5zcGVjaWFsYCwgYW5kIG9ubHkgZXhwb3NlIHRoZW0g aW4gb25lIG9mIHRoZSB0d28uDQo+ID4gPiANCj4gPiA+IENoZWVycywNCj4gPiA+IEx1Y2FzDQo+ ID4gPiANCj4gPiA+IE9uIDkgSnVuIDIwMjYsIGF0IDE2OjIzLCBKZXJvbWUgS2llZmZlciA8SmVy b21lLktpZWZmZXJAZXNyZi5mcj4NCj4gPiA+IHdyb3RlOg0KPiA+ID4gDQo+ID4gPiBJIGxpa2Ug dGhlIGlkZWEgIQ0KPiA+ID4gDQo+ID4gPiBPbiBNb24sIDA4IEp1biAyMDI2IDA4OjU5OjI0IC0w NTAwDQo+ID4gPiAiSmVmZiBFcGxlciIgPGplcGxlckB1bnB5dGhvbmljLm5ldD4gd3JvdGU6DQo+ ID4gPiANCj4gPiA+IEluIGEgcmVjZW50bHkgbWVyZ2VkIFBSDQo+ID4gPiAoaHR0cHM6Ly9naXRo dWIuY29tL3B5dGhvbi9jcHl0aG9uL3B1bGwvMTUwNTU1KSwNCj4gPiA+IENQeXRob24gaGFzIGFk ZGVkIGEgZmFtaWx5IG9mICIqcGkiIGZ1bmN0aW9ucyB0byB0aGUgbWF0aCBtb2R1bGUsDQo+ID4g PiB3aGljaA0KPiA+ID4gdGFrZSBoYWxmLXR1cm4gYXJndW1lbnRzIGluc3RlYWQgb2YgcmFkaWFu cy4gT25lIHJlYXNvbiB0aGVzZQ0KPiA+ID4gZnVuY3Rpb25zIGFyZQ0KPiA+ID4gYWR2YW50YWdl b3VzIGlzIHRoYXQgaXQncyBlYXN5IHRvIHByb3ZpZGUgdGhlIHByb3BlcnR5IHRoYXQNCj4gPiA+ IGBzaW5waShuLzIpYCBpcw0KPiA+ID4gZXhhY3QgZm9yIGFsbCBpbnRlZ2VycyBuLCB3aGlsZSBg c2luKHBpKm4pYCBpcyBuZXZlciBleGFjdGx5DQo+ID4gPiBlcXVhbCB0byB0aGUNCj4gPiA+IG1h dGhlbWF0aWNhbCBpZGVhbCBleGNlcHQgZm9yIG49MC4NCj4gPiA+IA0KPiA+ID4gVGhlc2UgZnVu Y3Rpb25zIGFyZSByZWNvbW1lbmRlZCBieSBJRUVFNzU0LTIwMTkgYW5kIHN0YW5kYXJkaXplZA0K PiA+ID4gaW4gQzIzDQo+ID4gPiBBbm5leCBHLiAobm90ZTogSSdtIHJlYWRpbmcgQzIzIGRyYWZ0 IHJldmlzZWQgMjAyMy0wMS0yNCwgbm90IHRoZQ0KPiA+ID4gZmluYWwNCj4gPiA+IHN0YW5kYXJk IGRvY3VtZW50OyBhbmQgSSBkbyBub3QgaGF2ZSBJRUVFNzU0LTIwMTkpLg0KPiA+ID4gDQo+ID4g PiBDMjMgYW5kIENQeXRob24gb25seSBhZGRlZCB0aGUgcmVhbC12YWx1ZWQgdmVyc2lvbnMgb2Yg dGhlc2UNCj4gPiA+IGZ1bmN0aW9ucywNCj4gPiA+IGJ1dCBDMjMgImZ1dHVyZSBsaWJyYXJ5IGRp cmVjdGlvbnMiIG5vdGVzIHRoYXQgaWRlbnRpZmllcnMgbGlrZQ0KPiA+ID4gYGNzaW5waWANCj4g PiA+IGFyZSAicG90ZW50aWFsbHkgcmVzZXJ2ZWQgaWRlbnRpZmllcnMuIg0KPiA+ID4gDQo+ID4g PiBTaW5jZSBDUHl0aG9uIG9ubHkgcmVxdWlyZXMgQzExLCBDUHl0aG9uIGluY2x1ZGVzIGltcGxl bWVudGF0aW9ucw0KPiA+ID4gb2YNCj4gPiA+IHRoZXNlIGZ1bmN0aW9ucyBmb3Igd2hlbiB0aGUg dW5kZXJsaW5nIHBsYXRmb3JtIGxpYnJhcnkgZG9lcyBub3QNCj4gPiA+IHByb3ZpZGUNCj4gPiA+ IGl0LiBUaGVzZSBpbXBsZW1lbnRhdGlvbnMgd29yayBieSBwZXJmb3JtaW5nIHNwZWNpYWwgY2Fz ZQ0KPiA+ID4gaGFuZGxpbmcgJiByYW5nZQ0KPiA+ID4gcmVkdWN0aW9uLCBmb2xsb3dlZCBieSBh IGNhbGwgdG8gdGhlIHN0YW5kYXJkIHRyaWcgZnVuY3Rpb24gd2l0aA0KPiA+ID4gYSBzY2FsZWQN Cj4gPiA+IGFyZ3VtZW50IChpbiB0aGUgY2FzZSBvZiBmb3J3YXJkIGZ1bmN0aW9ucykgb3Igc2Nh bGluZyBvZiB0aGUNCj4gPiA+IHJlc3VsdCAoaW4NCj4gPiA+IHRoZSBjYXNlIG9mIGludmVyc2Uv YXJjIGZ1bmN0aW9ucykuDQo+ID4gPiANCj4gPiA+IEkgYW0gaW50ZXJlc3RlZCBpbiBkb2luZyB0 aGUgbnVtcHkgaW1wbGVtZW50YXRpb24sIGhvd2V2ZXIgSSBoYXZlDQo+ID4gPiBuZXZlcg0KPiA+ ID4gZG9uZSBjb3JlIG51bXB5IHdvcmsgYmVmb3JlLiBJZiB0aGVyZSBpcyBpbnRlcmVzdCBmcm9t IHRoZQ0KPiA+ID4gcHJvamVjdCwgSSB3b3VsZA0KPiA+ID4gbGlrZSB0byBpbml0aWFsbHkgb2Zm ZXIgYSBQUiBjb250YWluaW5nIGEgc2luZ2xlIGZ1bmN0aW9uIHN1Y2ggYXMNCj4gPiA+IGBzaW5w aWANCj4gPiA+IGFuZCB0aGVuIGNvbXBsZXRlIHRoZSBvdGhlcnMgZm9sbG93aW5nIG51bXB5IGNv cmUgZGV2ZWxvcGVyDQo+ID4gPiBmZWVkYmFjay4NCj4gPiA+IA0KPiA+ID4gVGhhbmtzLA0KPiA+ ID4gSmVmZg0KPiA+ID4gUFMgSSBub3RpY2UgdmlhIHRoZSBhcmNoaXZlcyB0aGF0IHRoZXJlIGFy ZSBvY2Nhc2lvbmFsICJOZXcNCj4gPiA+IENvbnRyaWJ1dG9ycycNCj4gPiA+IEhvdXIiIG1lZXRp bmdzLiBJcyB0aGUgbmV4dCBvbmUgc2NoZWR1bGVkIHlldD8NCj4gPiA+IA0KPiA+ID4gDQo+ID4g PiANCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiAtLQ0KPiA+ID4gSsOpcsO0bWUgS2llZmZlcg0KPiA+ ID4gdGVsICszMyA0NzYgODgyIDQ0NQ0KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCj4gPiA+IE51bVB5LURpc2N1c3Npb24gbWFpbGluZyBsaXN0 IC0tIG51bXB5LWRpc2N1c3Npb25AcHl0aG9uLm9yZw0KPiA+ID4gVG8gdW5zdWJzY3JpYmUgc2Vu ZCBhbiBlbWFpbCB0byBudW1weS1kaXNjdXNzaW9uLWxlYXZlQHB5dGhvbi5vcmcNCj4gPiA+IGh0 dHBzOi8vbWFpbC5weXRob24ub3JnL21haWxtYW4zLy9saXN0cy9udW1weS1kaXNjdXNzaW9uLnB5 dGhvbi5vcmcNCj4gPiA+IE1lbWJlciBhZGRyZXNzOiBsdWNhcy5jb2xsZXk4QGdtYWlsLmNvbQ0K PiA+ID4gDQo+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXw0KPiA+ID4gTnVtUHktRGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QgLS0gbnVtcHktZGlzY3Vz c2lvbkBweXRob24ub3JnDQo+ID4gPiBUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVtYWlsIHRvIG51 bXB5LWRpc2N1c3Npb24tbGVhdmVAcHl0aG9uLm9yZw0KPiA+ID4gaHR0cHM6Ly9tYWlsLnB5dGhv bi5vcmcvbWFpbG1hbjMvL2xpc3RzL251bXB5LWRpc2N1c3Npb24ucHl0aG9uLm9yZw0KPiA+ID4g DQo+ID4gPiBNZW1iZXIgYWRkcmVzczogamVwbGVyQHVucHl0aG9uaWMubmV0DQo+ID4gPiANCj4g PiA+IA0KPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4gPiA+IE51bVB5LURpc2N1c3Npb24gbWFpbGluZyBsaXN0IC0tIG51bXB5LWRpc2N1c3Np b25AcHl0aG9uLm9yZw0KPiA+ID4gVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBudW1w eS1kaXNjdXNzaW9uLWxlYXZlQHB5dGhvbi5vcmcNCj4gPiA+IGh0dHBzOi8vbWFpbC5weXRob24u b3JnL21haWxtYW4zLy9saXN0cy9udW1weS1kaXNjdXNzaW9uLnB5dGhvbi5vcmcNCj4gPiA+IE1l bWJlciBhZGRyZXNzOiBuYXRoYW4xMjM0M0BnbWFpbC5jb20NCj4gPiA+IA0KPiA+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gTnVtUHktRGlzY3Vz c2lvbiBtYWlsaW5nIGxpc3QgLS0gbnVtcHktZGlzY3Vzc2lvbkBweXRob24ub3JnDQo+ID4gVG8g dW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBudW1weS1kaXNjdXNzaW9uLWxlYXZlQHB5dGhv bi5vcmcNCj4gPiBodHRwczovL21haWwucHl0aG9uLm9yZy9tYWlsbWFuMy8vbGlzdHMvbnVtcHkt ZGlzY3Vzc2lvbi5weXRob24ub3JnDQo+ID4gTWVtYmVyIGFkZHJlc3M6IHJhbGYuZ29tbWVyc0Bn b29nbGVtYWlsLmNvbQ0KPiA+IA0KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXw0KPiBOdW1QeS1EaXNjdXNzaW9uIG1haWxpbmcgbGlzdCAtLSBudW1weS1k aXNjdXNzaW9uQHB5dGhvbi5vcmcNCj4gVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBu dW1weS1kaXNjdXNzaW9uLWxlYXZlQHB5dGhvbi5vcmcNCj4gaHR0cHM6Ly9tYWlsLnB5dGhvbi5v cmcvbWFpbG1hbjMvL2xpc3RzL251bXB5LWRpc2N1c3Npb24ucHl0aG9uLm9yZw0KPiBNZW1iZXIg YWRkcmVzczogc2ViYXN0aWFuQHNpcHNvbHV0aW9ucy5uZXQNCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCk51bVB5LURpc2N1c3Npb24gbWFpbGluZyBsaXN0 IC0tIG51bXB5LWRpc2N1c3Npb25AcHl0aG9uLm9yZwpUbyB1bnN1YnNjcmliZSBzZW5kIGFuIGVt YWlsIHRvIG51bXB5LWRpc2N1c3Npb24tbGVhdmVAcHl0aG9uLm9yZwpodHRwczovL21haWwucHl0 aG9uLm9yZy9tYWlsbWFuMy8vbGlzdHMvbnVtcHktZGlzY3Vzc2lvbi5weXRob24ub3JnCk1lbWJl ciBhZGRyZXNzOiBnY3BuZy1udW1weS1kaXNjdXNzaW9uQG0uZ21hbmUtbXgub3JnCg==