From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on starla X-Spam-Level: X-Spam-Status: No, score=-1.1 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 Received: from nue.mailmanlists.eu (nue.mailmanlists.eu [94.130.110.93]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 62AAB1F4CC for ; Tue, 7 Jan 2025 09:44:52 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (1024-bit key; unprotected) header.d=ml.ruby-lang.org header.i=@ml.ruby-lang.org header.a=rsa-sha256 header.s=mail header.b=X2Kspym2; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=Oo6vW5yG; dkim-atps=neutral DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ml.ruby-lang.org; s=mail; t=1736243059; bh=sPODw+fRS85LvVu+I8sZMw1cxm7f6yAo/ERXcwGWaUg=; h=Date:References:To:Reply-To:Subject:List-Id:List-Archive: List-Help:List-Owner:List-Post:List-Subscribe:List-Unsubscribe: From:Cc:From; b=X2Kspym2kErH6vIKkndwGWyMmiYNesBHDPQH1aeW6UVX/wRl2upMBqvrph/pLmJel YamXcd8ikdinkghbgCALg5o6U+s85fq0EwmLGHjJhbOBq7ZDYgUxXU6B6QN0HaZ9kp lJfQZEjyd9Ak7BSd6vb2h+IPoFnweYmEinFRfQAQ= Received: from nue.mailmanlists.eu (localhost [IPv6:::1]) by nue.mailmanlists.eu (Postfix) with ESMTP id 690A846660 for ; Tue, 7 Jan 2025 09:44:19 +0000 (UTC) Authentication-Results: nue.mailmanlists.eu; dkim=pass (2048-bit key; unprotected) header.d=ruby-lang.org header.i=@ruby-lang.org header.a=rsa-sha256 header.s=s1 header.b=Oo6vW5yG; dkim-atps=neutral Received: from s.wfbtzhsw.outbound-mail.sendgrid.net (s.wfbtzhsw.outbound-mail.sendgrid.net [159.183.224.105]) by nue.mailmanlists.eu (Postfix) with ESMTPS id 31F8246657 for ; Tue, 7 Jan 2025 09:44:14 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ruby-lang.org; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to:cc:content-type:from:subject:to; s=s1; bh=oJ/YB7BzGLpAaeaJhOoODrX0utIO7e8LNVXX8V4UFH0=; b=Oo6vW5yGx0HcsjEhel0Nb/yp7QyvFFIt6BN6grpIhe/Re3RrkSpUhwWwPl94dJ8z8JA3 OTULJw8MacHUqH/WQTZ5a4s9ND0NinMeCk++0iD99Y0coQq6oKVkKnbMNcTnTN9wLofXcj kolMQmqx5Lcteek1uYuBR6JtQ+wMxGEB1PF6r+uNsRRQ2/pheXAYRkgTzniSK/hIr0g9vt Lik5U5DCNQbc1UorguSmr1xfwEecJ17IGdLBaGbHGWf/cBuj88/+GCttbE2aOTfX1J7yp8 ApINjMGyoy08iA+p9/bKy/mJZu6aYBs/HIgCpLnlHkUbdM+2Q7fK6ZdQ0EBJmp5A== Received: by recvd-69cbc48b94-7j96v with SMTP id recvd-69cbc48b94-7j96v-1-677CF76D-7 2025-01-07 09:44:13.190447738 +0000 UTC m=+4623720.135557620 Received: from herokuapp.com (unknown) by geopod-ismtpd-37 (SG) with ESMTP id 7fo6XNeSSBmwTqspobzJmQ for ; Tue, 07 Jan 2025 09:44:13.113 +0000 (UTC) Date: Tue, 07 Jan 2025 09:44:13 +0000 (UTC) Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 20878 X-Redmine-Issue-Author: byroot X-Redmine-Issue-Priority: Normal X-Redmine-Sender: byroot X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 97194 X-SG-EID: =?us-ascii?Q?u001=2EKmNZ1u3n1vIpO8NNTdp+Q9c0ai7potxbEDLMO7SOJO=2F4KkRUz0d23466m?= =?us-ascii?Q?naiq=2F5fmA4hb60MdRMUAwHZnjIWVFu=2FrqiBOz5c?= =?us-ascii?Q?nOvkBudsSTh9wERjAQ25UE=2FxmhhfebY+cpvhi=2FC?= =?us-ascii?Q?uha=2FSQgS4JPZzPI36At2k+az8j=2FgD=2FvaoPl6xCd?= =?us-ascii?Q?tDqCR6CM8ZDH=2FHAKtvplKtYBs+D0NaYgs9576AO?= =?us-ascii?Q?Nh9BNs9+XHyr8qwJ=2Fqwtw9hSWPYgPi1eCb1h9SY?= =?us-ascii?Q?rr0+km3=2FY9VmSM8oYNQ2+3N6BQ=3D=3D?= To: ruby-core@ml.ruby-lang.org X-Entity-ID: u001.I8uzylDtAfgbeCOeLBYDww== Message-ID-Hash: HJTDEE5IC625K2IAGOEVRKUKCFTF7UPX X-Message-ID-Hash: HJTDEE5IC625K2IAGOEVRKUKCFTF7UPX X-MailFrom: bounces+313651-b711-ruby-core=ml.ruby-lang.org@em5188.ruby-lang.org X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.9 Precedence: list Reply-To: Ruby developers Subject: [ruby-core:120518] [Ruby master Feature#20878] A new C API to create a String by adopting a pointer: `rb_enc_str_adopt(const char *ptr, long len, long capa, rb_encoding *enc)` List-Id: Ruby developers Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: "byroot (Jean Boussier) via ruby-core" Cc: "byroot (Jean Boussier)" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SXNzdWUgIzIwODc4IGhhcyBiZWVuIHVwZGF0ZWQgYnkgYnlyb290IChKZWFuIEJvdXNzaWVyKS4N Cg0KDQo+IEl0IG5lZWQgbm90IG9ubHkgZnJlZSBmdW5jdGlvbiBidXQgYWxzbyByZWFsbG9jIGZ1 bmN0aW9uDQoNCk1heWJlIEkgd2Fzbid0IGNsZWFyLCBidXQgSSBteSBzdWdnZXN0aW9uIGlzIHRv IG9ubHkgdXNlIHRoZSBgZnJlZWAgZnVuY3Rpb24gdG8gZGV0ZWN0IGlmIGl0J3MgY29tcGF0aWJs ZSB3aXRoIGBydWJ5X3hmcmVlYCwgd2hpY2ggd2UgcHJlc3VtYmFibHkgY2FuIGtub3cgYXQgY29t cGlsZSB0aW1lLCBzbyBzb21ldGhpbmcgbGlrZToNCg0KYGBgYw0KcmJfZW5jX3N0cl9hZG9wdChj b25zdCBjaGFyICpwdHIsIGxvbmcgbGVuLCBsb25nIGNhcGEsIHJiX2VuY29kaW5nICplbmMsIHZv aWQgKiBmcmVlZnVuYyh2b2lkICopKQ0Kew0KICBpZiAoZnJlZWZ1bmMgIT0gcnVieV94ZnJlZSAm JiAoQ0FMQ19FWEFDVF9NQUxMT0NfU0laRSB8fCBmcmVlZnVuYyAhPSBmcmVlKSkgew0KICAgIC8v IGNvcHkgYW5kIHJldHVybg0KICB9DQogIGVsc2Ugew0KICAgIC8vIGFkb3B0IHRoZSBwb2ludGVy DQogIH0NCn0NCmBgYA0KDQpXZSBjb3VsZCBhbHNvIHVzZSB0aGUgYG1hbGxvY2AgZnVuY3Rpb24g aW5zdGVhZCBmb3IgdGhlIHNhbWUgZWZmZWN0Lg0KDQo+IElzIHRoZXJlIGEgcmVhbC13b3JsZCB1 c2UgY2FzZSB0byBtYWtlIGEgU3RyaW5nIHdpdGggYSBwb2ludGVyIGFsbG9jYXRlZCBvdXRzaWRl IG9mIHhtYWxsb2M/DQoNCkkgZG9uJ3QgcGVyc29uYWxseSBoYXZlIG9uZSwgYGBzbnByaW50ZmAg d2FzIG1lbnRpb25lZCwgYW5kIGl0IHNlZW1zIHJlYWxpc3RpYz8gQnV0IGBzbnByaW50ZmAgYnVm ZmVyIGdlbmVyYWxseSBhcmVuJ3QgdGhhdCBiaWcsIHNvIG1heWJlIGl0IGRvZXNuJ3QgbWF0dGVy IGFzIG11Y2g/DQoNCkFsc28gcGVyaGFwcyBAbWRhbGVzc2lvIHdvdWxkIGhhdmUgc29tZSBpbiBu b2tvZ2lyaT8NCg0KDQo+IHN1Z2dlc3RlZCB0byBpbnRyb2R1Y2UgdGhpcyBBUEkgYXMgYSBoaWRk ZW4gQVBJIG9ubHkgZm9yIGpzb24gZ2VtLCBpbnN0ZWFkIG9mIGludHJvZHVjaW5nIGl0IGFzIGFu IG9mZmljaWFsIG9uZS4NCg0KSSBkb24ndCB0aGluayBpdCB3b3VsZCBiZSBhIGdvb2QgcHJlY2Vk ZW50LCBnaXZlbiBganNvbmAgaXMgb25seSBhIGRlZmF1bHQgZ2VtLiBBbHNvIGJvdGggbm9rb2dp cmkgYW5kIHByaXNtIG1haW50YWluZXJzIGV4cHJlc3NlZCB0aGVpciBpbnRlcmVzdC4NCg0KDQo+ IEkgdGhpbmsgaXQgd291bGQgYmUgZWFzeSB0byBqdXN0IHN0cmljdGx5IGtlZXAgdGhlIHByZXJl cXVpc2l0ZSDigJxwdHIgTVVTVCBoYXZlIGJlZW4gYWxsb2NhdGVkIHdpdGggcnVieV94bWFsbG9j LuKAnSBhcyBvcmlnaW5hbGx5IHByb3Bvc2VkLg0KDQpJJ20gYWxzbyBPSyB3aXRoIHRoYXQuDQoN Cg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KRmVhdHVyZSAjMjA4 Nzg6IEEgbmV3IEMgQVBJIHRvIGNyZWF0ZSBhIFN0cmluZyBieSBhZG9wdGluZyBhIHBvaW50ZXI6 IGByYl9lbmNfc3RyX2Fkb3B0KGNvbnN0IGNoYXIgKnB0ciwgbG9uZyBsZW4sIGxvbmcgY2FwYSwg cmJfZW5jb2RpbmcgKmVuYylgDQpodHRwczovL2J1Z3MucnVieS1sYW5nLm9yZy9pc3N1ZXMvMjA4 NzgjY2hhbmdlLTExMTMyMw0KDQoqIEF1dGhvcjogYnlyb290IChKZWFuIEJvdXNzaWVyKQ0KKiBT dGF0dXM6IE9wZW4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMj IyBDb250ZXh0DQoNCkEgY29tbW9uIHVzZSBjYXNlIHdoZW4gd3JpdGluZyBDIGV4dGVuc2lvbnMg aXMgdG8gZ2VuZXJhdGUgdGV4dCBvciBieXRlcyBpbnRvIGEgYnVmZmVyLCBhbmQgdG8gcmV0dXJu IGl0IGJhY2sNCndyYXBwZWQgaW50byBhIFJ1YnkgU3RyaW5nLiBFeGFtcGxlcyBhcmUgYEpTT04u Z2VuZXJhdGUob2JqKSAtPiBTdHJpbmdgLCBhbmQgYWxsIG90aGVyIGZvcm1hdCBzZXJpYWxpemVy cywNCmNvbXByZXNzaW9uIGxpYnJhcmllcyBzdWNoIGFzIGBaTGliLmRlZmxhdGVgLCBldGMsIGJ1 dCBhbHNvIG1ldGhvZHMgc3VjaCBhcyBgVGltZS5zdHJmdGltZWAsIA0KDQojIyMgQ3VycmVudCBT b2x1dGlvbg0KDQojIyMjIFdvcmsgaW4gYSBidWZmZXIgYW5kIGNvcHkgdGhlIHJlc3VsdA0KDQpU aGUgbW9zdCBvZnRlbiB1c2VkIHNvbHV0aW9uIGlzIHRvIHdvcmsgd2l0aCBhIG5hdGl2ZSBidWZm ZXIgYW5kIHRvIG1hbmFnZSBhIG5hdGl2ZSBhbGxvY2F0ZWQgYnVmZmVyLA0KYW5kIG9uY2UgdGhl IGdlbmVyYXRpb24gaXMgZG9uZSwgY2FsbCBgcmJfc3RyX25ldypgIHRvIGNvcHkgdGhlIHJlc3Vs dCBpbnNpZGUgbWVtb3J5IG1hbmFnZWQgYnkgUnVieS4NCg0KSXQgd29ya3MsIGJ1dCBpc24ndCB2 ZXJ5IGVmZmljaWVudCBiZWNhdXNlIGl0IGNhdXNlIGFuIGV4dHJhIGNvcHkgYW5kIGFuIGV4dHJh IGBmcmVlKClgLg0KDQpPbiBgcnVieS9qc29uYCBtYWNyby1iZW5jaG1hcmtzLCB0aGlzIHJlcHJl c2VudCBhcm91bmQgNSUgb2YgdGhlIHRpbWUgc3BlbnQgaW4gYEpTT04uZ2VuZXJhdGVgLg0KDQpg YGBjDQpzdGF0aWMgdm9pZCBmYnVmZmVyX2ZyZWUoRkJ1ZmZlciAqZmIpDQp7DQogICAgaWYgKGZi LT5wdHIgJiYgZmItPnR5cGUgPT0gRkJVRkZFUl9IRUFQX0FMTE9DQVRFRCkgew0KICAgICAgICBy dWJ5X3hmcmVlKGZiLT5wdHIpOw0KICAgIH0NCn0NCg0Kc3RhdGljIFZBTFVFIGZidWZmZXJfdG9f cyhGQnVmZmVyICpmYikNCnsNCiAgICBWQUxVRSByZXN1bHQgPSByYl91dGY4X3N0cl9uZXcoRkJV RkZFUl9QVFIoZmIpLCBGQlVGRkVSX0xFTihmYikpOw0KICAgIGZidWZmZXJfZnJlZShmYik7DQog ICAgcmV0dXJuIHJlc3VsdDsNCn0NCmBgYA0KDQojIyMjIFdvcmsgaW5zaWRlIFJTdHJpbmcgYWxs b2NhdGVkIG1lbW9yeQ0KDQpBbm90aGVyIHdheSB0aGlzIGlzIGN1cnJlbnRseSBkb25lLCBpcyB0 byBhbGxvY2F0ZSBhbiBgUlN0cmluZ2AgdXNpbmcgYHJiX3N0cl9idWZfbmV3YCwNCmFuZCB3cml0 ZSBpbnRvIGl0IHdpdGggdmFyaW91cyBmdW5jdGlvbnMgc3VjaCBhcyBgcmJfc3RyX2NhdGZgLA0K b3Igd3JpdGluZyBwYXN0IGBSU3RyaW5nLmxlbmAgdGhyb3VnaCBgUlNUUklOR19QVFJgIGFuZCB0 aGVuIHJlc2l6ZSBpdCB3aXRoIGByYl9zdHJfc2V0X2xlbmAuDQoNClRoZSBkb3duc2lkZSB3aXRo IHRoaXMgYXBwcm9hY2ggaXMgdGhhdCBpdCBjb250YWlucyBhIGxvdCBvZiBpbmVmZmljaWVuY2ll cywgYXMgYHJiX3N0cl9zZXRfbGVuYCB3aWxsIHBlcmZvcm0NCm51bWVyb3VzIHNhZmV0eSBjaGVj a3MsIGNvbXB1dGUgY29kZXJhbmdlLCBhbmQgd3JpdGUgdGhlIHN0cmluZyB0ZXJtaW5hdG9yIG9u IGV2ZXJ5IGludm9jYXRpb24uDQoNCkFub3RoZXIgbWFqb3IgaW5uZWZpY2llbmN5IGlzIHRoYXQg dGhpcyBBUEkgbWFrZSBpdCBoYXJkIHRvIGJlIGluIGNvbnRyb2wgb2YgdGhlIGJ1ZmZlcg0KZ3Jv d3RoLCBzbyBpdCBjYW4gcmVzdWx0IGluIGEgbG90IG1vcmUgYHJlYWxsb2MoKWAgY2FsbHMgdGhh biBtYW51YWxseSBtYW5hZ2luZyB0aGUgYnVmZmVyLg0KDQpUaGlzIG1ldGhvZCBpcyB1c2VkIGJ5 IGBLZXJuZWwjc3ByaW50ZmAsIGBUaW1lI3N0cmZ0aW1lYCBldGMsIGFuZCB3aGVuIEkgYXR0ZW1w dGVkIHRvIGltcHJvdmUgYFRpbWUjc3RyZnRpbWVgDQpwZXJmb3JtYW5jZSwgdGhpcyBwcm9ibGVt IHNob3dlZCB1cCBhcyB0aGUgYmlnZ2VzdCBib3R0bGVuZWNrOg0KDQogIC0gaHR0cHM6Ly9naXRo dWIuY29tL3J1YnkvcnVieS9wdWxsLzExNTQ3DQogIC0gaHR0cHM6Ly9naXRodWIuY29tL3J1Ynkv cnVieS9wdWxsLzExNTQ0DQogIC0gaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9wdWxsLzEx NTQyDQoNCiMjIyBQcm9wb3NlZCBBUEkNCg0KSSB0aGluayBhIG1vcmUgZWZmY2llbnQgd2F5IHRv IGRvIHRoaXMgd291bGQgYmUgdG8gd29yayB3aXRoIGEgbmF0aXZlIGJ1ZmZlciwgYW5kIHRoZW4g YnVpbGQgYSBSU3RyaW5nDQp0aGF0ICJhZG9wdCIgdGhlIG1lbW9yeSByZWdpb24uDQoNClRlY2hu aWNhbGx5LCB5b3UgY2FuIGN1cnJlbnRseSBkbyB0aGlzIGJ5IHJlYWNoaW5nIGRpcmVjdGx5IGlu dG8gYFJTdHJpbmdgIG1lbWJlcnMsIGJ1dCBJIGRvbid0IHRoaW5rIGl0J3MgY2xlYW4sDQphbmQg YSBkZWRpY2F0ZWQgQVBJIHdvdWxkIGJlIHByZWZlcmFibGU6DQoNCmBgYGMNCi8qKg0KICogU2lt aWxhciB0byByYl9zdHJfbmV3KCksIGJ1dCBpdCBhZG9wdHMgdGhlIHBvaW50ZXIgaW5zdGVhZCBv ZiBjb3B5aW5nLg0KICoNCiAqIEBwYXJhbVtpbl0gIHB0ciAgICAgICAgICAgICBBIG1lbW9yeSBy ZWdpb24gb2YgYGNhcGFgIGJ5dGVzIGxlbmd0aC4gTVVTVCBoYXZlIGJlZW4gYWxsb2NhdGVkIHdp dGggYHJ1YnlfeG1hbGxvY2ANCiAqIEBwYXJhbVtpbl0gIGxlbiAgICAgICAgICAgICBMZW5ndGgg IG9mIHRoZSBzdHJpbmcsICBpbiBieXRlcywgIG5vdCBpbmNsdWRpbmcgIHRoZQ0KICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRlcm1pbmF0aW5nIE5VTCBjaGFyYWN0ZXIsIG5vdCBpbmNs dWRpbmcgZXh0cmEgY2FwYWNpdHkuDQogKiBAcGFyYW1baW5dICBjYXBhICAgICAgICAgICAgVGhl IHVzYWJsZSBsZW5ndGggb2YgYHB0cmAsIGluIGJ5dGVzLCAgaW5jbHVkaW5nICB0aGUNCiAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXJtaW5hdGluZyBOVUwgY2hhcmFjdGVyLg0KICog QHBhcmFtW2luXSAgZW5jICAgICAgICAgICAgIEVuY29kaW5nIG9mIGBwdHJgLg0KICogQGV4Y2Vw dGlvbiAgcmJfZUFyZ0Vycm9yICAgIGBsZW5gIGlzIG5lZ2F0aXZlLg0KICogQHJldHVybiAgICAg QW4gaW5zdGFuY2UgIG9mIDo6cmJfY1N0cmluZywgIG9mIGBsZW5gICBieXRlcyBsZW5ndGgsIGBj YXBhIC0gMWAgYnl0ZXMgY2FwYWNpdHksDQogKiAgICAgICAgICAgICBhbmQgb2YgYGVuY2AgZW5j b2RpbmcuDQogKiBAcHJlICAgICAgICBBdCAgbGVhc3QgIGBjYXBhYCBieXRlcyAgb2YgIGNvbnRp bnVvdXMgIG1lbW9yeSByZWdpb24gIHNoYWxsICBiZQ0KICogICAgICAgICAgICAgYWNjZXNzaWJs ZSB2aWEgYHB0cmAuDQogKiBAcHJlICAgICAgICBgcHRyYCBNVVNUIGhhdmUgYmVlbiBhbGxvY2F0 ZWQgd2l0aCBgcnVieV94bWFsbG9jYC4NCiAqIEBwcmUgICAgICAgIGBwdHJgIE1VU1Qgbm90IGJl IG1hbnVhbGx5IGZyZWVkIGFmdGVyIGByYl9lbmNfc3RyX2Fkb3B0YCBoYXMgYmVlbiBjYWxsZWQu DQogKiBAbm90ZSAgICAgICBgZW5jYCBjYW4gYmUgYSAgbnVsbCBwb2ludGVyLiAgSXQgY2FuIGFs c28gYmUgIHNlZW4gYXMgYSByb3V0aW5lDQogKiAgICAgICAgICAgICBpZGVudGljYWwgdG8gcmJf dXNhc2NpaV9zdHJfbmV3KCkgdGhlbi4NCiAqLw0KcmJfZW5jX3N0cl9hZG9wdChjb25zdCBjaGFy ICpwdHIsIGxvbmcgbGVuLCBsb25nIGNhcGEsIHJiX2VuY29kaW5nICplbmMpOw0KYGBgDQoNCkFu IGFsdGVybmF0aXZlIHRvIHRoZSBgYWRvcHRgIHRlcm0sIGNvdWxkIGJlIGBtb3ZlYC4NCg0KDQot LS1GaWxlcy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpDYXB0dXJlIGTigJllzIFj cmFuIDIwMjQtMTItMTEgYcyAIDExLjAzLjA4LnBuZyAoMjUwIEtCKQ0KDQoNCi0tIA0KaHR0cHM6 Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQogX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwogcnVieS1jb3JlIG1haWxpbmcgbGlzdCAtLSBydWJ5LWNvcmVAbWwucnVi eS1sYW5nLm9yZwogVG8gdW5zdWJzY3JpYmUgc2VuZCBhbiBlbWFpbCB0byBydWJ5LWNvcmUtbGVh dmVAbWwucnVieS1sYW5nLm9yZwogcnVieS1jb3JlIGluZm8gLS0gaHR0cHM6Ly9tbC5ydWJ5LWxh bmcub3JnL21haWxtYW4zL2xpc3RzL3J1YnktY29yZS5tbC5ydWJ5LWxhbmcub3JnLw==