From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 3A4633858D3C; Mon, 22 Apr 2024 16:36:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3A4633858D3C Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3A4633858D3C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713803815; cv=none; b=oXlisT2HD/i01+j8gffUtQ6gqRPc0hRHvLGpdSUnLRaRH6nUH98wCmbOgpqYKcUd6FgAKKfSOp6TMxbLUi3XPuZL2hZ8f+xegGruvMRip7GF1je3Eh+EqkE6KKdQd9eknyolIVQSDMYY/BpxR+hBT0v3534VI0moMl9fHACYNts= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713803815; c=relaxed/simple; bh=8ePdDFTuUv+IHG70VqIKox9lkylEoUbRGnoD5B01KRQ=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=haI4UCBxlpa/q+52XJ5MRMh07VYSBUcacI7rTs2lhotJZzxG//Hkw3JtJyumC/4iQHBuVMHZI/EXWAEJTpirfMAp4jG3fAZRrd6J4G10PDRYHf+buWzCU7nwF0Dzz2k18iCIqUzrSrCZpBYj5VMZvNgk/IQJTwUQZbTYUZF6qeA= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rytfL-00048F-H5; Mon, 22 Apr 2024 09:25:06 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-41a55be31eeso7412235e9.0; Mon, 22 Apr 2024 06:25:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713792300; x=1714397100; darn=gcc.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yuu0sP/NW8O4v2O9WmFq4749vhu9YNSiwbkMBMh3x1I=; b=LzuztN2cbb1tUgAWZF6SfuiHNEsbdakMR0BMI0O/5Aw9Lx2COY/7ZXfVPTSqppbPC5 rUNtJvGUAZClthvYEFwq3VX5eJe8ET9Q7uwh6qDYDe1FIYeAQY5EsbK7PTM+e/uwNILn haU0HFiXPD3U3pZu0o9zm+koJY1U1PqpjfjuBPWStZ88tOaHHh3lerlg4bBdJzgEvluq w27pLOrpgCdaFik6cEoNPEL4QzEXDB9Ga+ELYhAv5SPW7rIR2bHRc+3Lrm/bur94+uNL i3rcphVaji8dcYlVlKH7AbHtZ41Q4rEuThzudeRt9mjcXivTUyG8WGSZkVvEsE0WYQeW i3wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713792300; x=1714397100; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yuu0sP/NW8O4v2O9WmFq4749vhu9YNSiwbkMBMh3x1I=; b=fEzB84MoTRxIy2wrOnBK6Q43elTwlgJQyoZm2CKhAQG1HusJu+JK8lgTHNmDxJ6NXm 88hweOIMhd5hbOFZqr09igVvhOJmjF8XD2kPBp6DZqdD/IpItwhl0M8KlZq/aZl0YAOF tysfbBxVogyAZMytTNGVzsErenSqToCGrxlmfvUac+5pOlitqWyzSi7VYf64JeSfAuWj EPb8wymkIHql1yMAYxm0f5D3jiJoH7A4b8bSo5CULRZJMU56kgQZglcmmWbRwLaRjl3L JcYQFvFIE1sSORRVVDTUP7NirFO+08H3qPOGbqxcnbSra4c1F6BR5W7k6rHeF26e/I1o wejw== X-Forwarded-Encrypted: i=1; AJvYcCVQlAkqrFi+cjBtOdCIcwKAE3z/WlgP7ntCAp71X+4mdkCY2a5+kBRlxnFOQCv38KGs7hmfbyrJdbowUJNFhZXIUNFaT22Elyz7X4p0fj+f7Pu6OOjy1GC9 X-Gm-Message-State: AOJu0YzIYnvc4w9RXV7VVINl6m1SLVPPOqXsdYoYi9GTHkBUiLTECmsE DHtUBq4O9hkENSOCertlGkbIVb7BlYx5qYdw4lquLxE1LF9fOA9Cfzv7iYqAcAgk4WWD0ocCW6T LQhZ3lpJZicP9c1nC+z1iRRHHXNY= X-Google-Smtp-Source: AGHT+IGhH4FujhZzLdEt3JiZCiZSJrsu+j2ZgshgTPOIRoZ6877JxeGsiJbm71DeG/P0Oa0BSywTzE53MyIrD5x2U8s= X-Received: by 2002:adf:ab03:0:b0:341:ddb5:badc with SMTP id q3-20020adfab03000000b00341ddb5badcmr7528456wrc.19.1713792294344; Mon, 22 Apr 2024 06:24:54 -0700 (PDT) MIME-Version: 1.0 References: <7346764f-bf4d-4075-8191-671201f6f8da@embecosm.com> <1b3d6423-0805-4ad1-bcd7-e1f6fc950aa7@zoho.com> In-Reply-To: <1b3d6423-0805-4ad1-bcd7-e1f6fc950aa7@zoho.com> From: Guillaume Gomez Date: Mon, 22 Apr 2024 15:24:42 +0200 Message-ID: Subject: Re: [PATCH] Add rvalue::get_name method (and its C equivalent) To: Antoni Boucher Cc: Arthur Cohen , gcc-patches@gcc.gnu.org, jit@gcc.gnu.org, David Malcolm Content-Type: multipart/mixed; boundary="000000000000ee953e0616af5c28" Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=guillaume1.gomez@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9,DKIM_SIGNED=0.1,DKIM_VALID=-0.1,DKIM_VALID_AU=-0.1,DKIM_VALID_EF=-0.1,FREEMAIL_FROM=0.001,HTML_MESSAGE=0.001,RCVD_IN_DNSWL_NONE=-0.0001,SPF_HELO_NONE=0.001,SPF_PASS=-0.001,T_FILL_THIS_FORM_SHORT=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,GIT_PATCH_0,HTML_MESSAGE,SPF_HELO_PASS,SPF_SOFTFAIL,TXREP,T_FILL_THIS_FORM_SHORT autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --000000000000ee953e0616af5c28 Content-Type: multipart/alternative; boundary="000000000000ee95360616af5c26" --000000000000ee95360616af5c26 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ... I most definitely forgot. Thanks! ^^' Le lun. 22 avr. 2024 =C3=A0 15:19, Antoni Boucher a =C3= =A9crit : > I believe you forgot to regenerate the ChangeLog. > > Le 2024-04-22 =C3=A0 09 h 16, Guillaume Gomez a =C3=A9crit : > > Good point! > > > > New patch attached. > > > > Le lun. 22 avr. 2024 =C3=A0 15:13, Antoni Boucher a = =C3=A9crit > : > >> > >> Please move the function to be on lvalue since there are no rvalue typ= es > >> that are not lvalues that have a name. > >> > >> Le 2024-04-22 =C3=A0 09 h 04, Guillaume Gomez a =C3=A9crit : > >>> Hey Arthur :) > >>> > >>>> Is there any reason for that getter to return a mutable pointer to t= he > >>>> name? Would something like this work instead if you're just looking = at > >>>> getting the name? > >>>> > >>>> + virtual string * get_name () const { return NULL; } > >>>> > >>>> With of course adequate modifications to the inheriting classes. > >>> > >>> Good catch, thanks! > >>> > >>> Updated the patch and attached the new version to this email. > >>> > >>> Cordially. > >>> > >>> Le lun. 22 avr. 2024 =C3=A0 11:51, Arthur Cohen > a =C3=A9crit : > >>>> > >>>> Hey Guillaume :) > >>>> > >>>> On 4/20/24 01:05, Guillaume Gomez wrote: > >>>>> Hi, > >>>>> > >>>>> I just encountered the need to retrieve the name of an `rvalue` (if > >>>>> there is one) while working on the Rust GCC backend. > >>>>> > >>>>> This patch adds a getter to retrieve the information. > >>>>> > >>>>> Cordially. > >>>> > >>>>> virtual bool get_wide_int (wide_int *) const { return false; } > >>>>> > >>>>> + virtual string * get_name () { return NULL; } > >>>>> + > >>>>> private: > >>>>> virtual enum precedence get_precedence () const =3D 0; > >>>> > >>>> Is there any reason for that getter to return a mutable pointer to t= he > >>>> name? Would something like this work instead if you're just looking = at > >>>> getting the name? > >>>> > >>>> + virtual string * get_name () const { return NULL; } > >>>> > >>>> With of course adequate modifications to the inheriting classes. > >>>> > >>>> Best, > >>>> > >>>> Arthur > --000000000000ee95360616af5c26-- --000000000000ee953e0616af5c28 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-PATCH-Add-rvalue-get_name-method.patch" Content-Disposition: attachment; filename="0001-PATCH-Add-rvalue-get_name-method.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lvazo94l0 RnJvbSA3OWE1YWY3MDc4NzUwOWYwZjIzZGMxMzFhMzllZDMyYTg4ZDhmOGZj IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgR29t ZXogPGd1aWxsYXVtZTEuZ29tZXpAZ21haWwuY29tPgpEYXRlOiBTYXQsIDIw IEFwciAyMDI0IDAxOjAyOjIwICswMjAwClN1YmplY3Q6IFtQQVRDSF0gW1BB VENIXSBBZGQgbHZhbHVlOjpnZXRfbmFtZSBtZXRob2QKCmdjYy9qaXQvQ2hh bmdlTG9nOgoKCSogaml0LXJlY29yZGluZy5oOiBBZGQgbHZhbHVlOjpnZXRf bmFtZSBtZXRob2QKCSogbGliZ2Njaml0LmNjIChnY2Nfaml0X2x2YWx1ZV9n ZXRfbmFtZSk6IExpa2V3aXNlCgkqIGxpYmdjY2ppdC5oIChnY2Nfaml0X2x2 YWx1ZV9nZXRfbmFtZSk6IExpa2V3aXNlCgkqIGxpYmdjY2ppdC5tYXA6IExp a2V3aXNlCgpnY2MvdGVzdHN1aXRlL0NoYW5nZUxvZzoKCgkqIGppdC5kZy90 ZXN0LXRscy5jOiBBZGQgdGVzdCBmb3IgZ2NjX2ppdF9sdmFsdWVfZ2V0X25h bWUKLS0tCiBnY2Mvaml0L2ppdC1yZWNvcmRpbmcuaCAgICAgICAgIHwgIDcg KysrKysrKwogZ2NjL2ppdC9saWJnY2NqaXQuY2MgICAgICAgICAgICB8IDE2 ICsrKysrKysrKysrKysrKysKIGdjYy9qaXQvbGliZ2Njaml0LmggICAgICAg ICAgICAgfCAgNCArKysrCiBnY2Mvaml0L2xpYmdjY2ppdC5tYXAgICAgICAg ICAgIHwgIDUgKysrKysKIGdjYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3QtdGxz LmMgfCAgMiArKwogNSBmaWxlcyBjaGFuZ2VkLCAzNCBpbnNlcnRpb25zKCsp CgpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9qaXQtcmVjb3JkaW5nLmggYi9nY2Mv aml0L2ppdC1yZWNvcmRpbmcuaAppbmRleCBkOGQxNmY0ZmUyOS4uYTgwMzI3 YjI2YmEgMTAwNjQ0Ci0tLSBhL2djYy9qaXQvaml0LXJlY29yZGluZy5oCisr KyBiL2djYy9qaXQvaml0LXJlY29yZGluZy5oCkBAIC0xMjY3LDYgKzEyNjcs NyBAQCBwdWJsaWM6CiAgIHZvaWQgc2V0X3JlZ2lzdGVyX25hbWUgKGNvbnN0 IGNoYXIgKnJlZ19uYW1lKTsKICAgdm9pZCBzZXRfYWxpZ25tZW50ICh1bnNp Z25lZCBieXRlcyk7CiAgIHVuc2lnbmVkIGdldF9hbGlnbm1lbnQgKCkgY29u c3QgeyByZXR1cm4gbV9hbGlnbm1lbnQ7IH0KKyAgdmlydHVhbCBzdHJpbmcg KiBnZXRfbmFtZSAoKSBjb25zdCB7IHJldHVybiBOVUxMOyB9CiAKIHByb3Rl Y3RlZDoKICAgc3RyaW5nICptX2xpbmtfc2VjdGlvbjsKQEAgLTEzMDUsNiAr MTMwNiw4IEBAIHB1YmxpYzoKICAgY29uc3QgY2hhciAqYWNjZXNzX2FzX3J2 YWx1ZSAocmVwcm9kdWNlciAmcikgZmluYWwgb3ZlcnJpZGU7CiAgIGNvbnN0 IGNoYXIgKmFjY2Vzc19hc19sdmFsdWUgKHJlcHJvZHVjZXIgJnIpIGZpbmFs IG92ZXJyaWRlOwogCisgIHN0cmluZyAqIGdldF9uYW1lICgpIGNvbnN0IGZp bmFsIG92ZXJyaWRlIHsgcmV0dXJuIG1fbmFtZTsgfQorCiBwcml2YXRlOgog ICBzdHJpbmcgKiBtYWtlX2RlYnVnX3N0cmluZyAoKSBmaW5hbCBvdmVycmlk ZSB7IHJldHVybiBtX25hbWU7IH0KICAgdm9pZCB3cml0ZV9yZXByb2R1Y2Vy IChyZXByb2R1Y2VyICZyKSBmaW5hbCBvdmVycmlkZTsKQEAgLTE1NTgsNiAr MTU2MSw4IEBAIHB1YmxpYzoKIAogICB2b2lkIHNldF9ydmFsdWVfaW5pdCAo cnZhbHVlICp2YWwpIHsgbV9ydmFsdWVfaW5pdCA9IHZhbDsgfQogCisgIHN0 cmluZyAqIGdldF9uYW1lICgpIGNvbnN0IGZpbmFsIG92ZXJyaWRlIHsgcmV0 dXJuIG1fbmFtZTsgfQorCiBwcml2YXRlOgogICBzdHJpbmcgKiBtYWtlX2Rl YnVnX3N0cmluZyAoKSBmaW5hbCBvdmVycmlkZSB7IHJldHVybiBtX25hbWU7 IH0KICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CkBAIC0yMTQ4LDYgKzIxNTMs OCBAQCBwdWJsaWM6CiAKICAgdm9pZCB3cml0ZV90b19kdW1wIChkdW1wICZk KSBmaW5hbCBvdmVycmlkZTsKIAorICBzdHJpbmcgKiBnZXRfbmFtZSAoKSBj b25zdCBmaW5hbCBvdmVycmlkZSB7IHJldHVybiBtX25hbWU7IH0KKwogcHJp dmF0ZToKICAgc3RyaW5nICogbWFrZV9kZWJ1Z19zdHJpbmcgKCkgZmluYWwg b3ZlcnJpZGUgeyByZXR1cm4gbV9uYW1lOyB9CiAgIHZvaWQgd3JpdGVfcmVw cm9kdWNlciAocmVwcm9kdWNlciAmcikgZmluYWwgb3ZlcnJpZGU7CmRpZmYg LS1naXQgYS9nY2Mvaml0L2xpYmdjY2ppdC5jYyBiL2djYy9qaXQvbGliZ2Nj aml0LmNjCmluZGV4IDQ0NWMwZDBlMGUzLi5lYTAzYWZjZDJjNSAxMDA2NDQK LS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQuY2MKKysrIGIvZ2NjL2ppdC9saWJn Y2NqaXQuY2MKQEAgLTQzNzcsMyArNDM3NywxOSBAQCBnY2Nfaml0X2NvbnRl eHRfYWRkX3RvcF9sZXZlbF9hc20gKGdjY19qaXRfY29udGV4dCAqY3R4dCwK ICAgUkVUVVJOX0lGX0ZBSUwgKGFzbV9zdG10cywgY3R4dCwgTlVMTCwgIk5V TEwgYXNtX3N0bXRzIik7CiAgIGN0eHQtPmFkZF90b3BfbGV2ZWxfYXNtIChs b2MsIGFzbV9zdG10cyk7CiB9CisKKy8qIFB1YmxpYyBlbnRyeXBvaW50LiAg U2VlIGRlc2NyaXB0aW9uIGluIGxpYmdjY2ppdC5oLgorCisgICBBZnRlciBl cnJvci1jaGVja2luZywgdGhpcyBjYWxscyB0aGUgdHJpdmlhbAorICAgZ2Nj OjpqaXQ6OnJlY29yZGluZzo6bHZhbHVlOjpnZXRfbmFtZSBtZXRob2QsIGlu IGppdC1yZWNvcmRpbmcuaC4gICovCisKK2V4dGVybiBjb25zdCBjaGFyICoK K2djY19qaXRfbHZhbHVlX2dldF9uYW1lIChnY2Nfaml0X2x2YWx1ZSAqbHZh bHVlKQoreworICBSRVRVUk5fTlVMTF9JRl9GQUlMIChsdmFsdWUsIE5VTEws IE5VTEwsICJOVUxMIGx2YWx1ZSIpOworICBhdXRvIG5hbWUgPSBsdmFsdWUt PmdldF9uYW1lICgpOworCisgIGlmICghbmFtZSkKKyAgICByZXR1cm4gTlVM TDsKKyAgcmV0dXJuIG5hbWUtPmNfc3RyICgpOworfQpkaWZmIC0tZ2l0IGEv Z2NjL2ppdC9saWJnY2NqaXQuaCBiL2djYy9qaXQvbGliZ2Njaml0LmgKaW5k ZXggNzRlODQ3YjJkZWMuLjJlYTg1ZjVhNGMzIDEwMDY0NAotLS0gYS9nY2Mv aml0L2xpYmdjY2ppdC5oCisrKyBiL2djYy9qaXQvbGliZ2Njaml0LmgKQEAg LTIwNjYsNiArMjA2NiwxMCBAQCBnY2Nfaml0X2x2YWx1ZV9hZGRfc3RyaW5n X2F0dHJpYnV0ZSAoZ2NjX2ppdF9sdmFsdWUgKnZhcmlhYmxlLAogCQkJCSAg ICAgZW51bSBnY2Nfaml0X3ZhcmlhYmxlX2F0dHJpYnV0ZSBhdHRyaWJ1dGUs CiAJCQkJICAgICBjb25zdCBjaGFyKiB2YWx1ZSk7CiAKKy8qIFJldHVybnMg dGhlIG5hbWUgb2YgdGhlIGBsdmFsdWVgLCBpZiBhbnkuIFJldHVybnMgTlVM TCBvdGhlcndpc2UuICAqLworZXh0ZXJuIGNvbnN0IGNoYXIgKgorZ2NjX2pp dF9sdmFsdWVfZ2V0X25hbWUgKGdjY19qaXRfbHZhbHVlICpsdmFsdWUpOwor CiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZiAvKiBfX2NwbHVzcGx1 cyAqLwpkaWZmIC0tZ2l0IGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwIGIvZ2Nj L2ppdC9saWJnY2NqaXQubWFwCmluZGV4IDk5YWE1OTcwYmUxLi4zZjk2ZjQ0 ZGMwMyAxMDA2NDQKLS0tIGEvZ2NjL2ppdC9saWJnY2NqaXQubWFwCisrKyBi L2djYy9qaXQvbGliZ2Njaml0Lm1hcApAQCAtMjg5LDMgKzI4OSw4IEBAIExJ QkdDQ0pJVF9BQklfMjcgewogICBnbG9iYWw6CiAgICAgZ2NjX2ppdF9jb250 ZXh0X25ld19zaXplb2Y7CiB9IExJQkdDQ0pJVF9BQklfMjY7CisKK0xJQkdD Q0pJVF9BQklfMjggeworICBnbG9iYWw6CisgICAgZ2NjX2ppdF9sdmFsdWVf Z2V0X25hbWU7Cit9IExJQkdDQ0pJVF9BQklfMjc7CmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2ppdC5kZy90ZXN0LXRscy5jIGIvZ2NjL3Rlc3RzdWl0 ZS9qaXQuZGcvdGVzdC10bHMuYwppbmRleCAzYjIwMTgyYWMxMC4uYTZhOTY3 ZWFjNTYgMTAwNjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvaml0LmRnL3Rlc3Qt dGxzLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9qaXQuZGcvdGVzdC10bHMuYwpA QCAtMjgsNiArMjgsOCBAQCBjcmVhdGVfY29kZSAoZ2NjX2ppdF9jb250ZXh0 ICpjdHh0LCB2b2lkICp1c2VyX2RhdGEpCiAgICAgICBjdHh0LCBOVUxMLCBH Q0NfSklUX0dMT0JBTF9FWFBPUlRFRCwgaW50X3R5cGUsICJmb28iKTsKICAg Z2NjX2ppdF9sdmFsdWVfc2V0X3Rsc19tb2RlbCAoZm9vLCBHQ0NfSklUX1RM U19NT0RFTF9HTE9CQUxfRFlOQU1JQyk7CiAKKyAgQ0hFQ0tfU1RSSU5HX1ZB TFVFIChnY2Nfaml0X2x2YWx1ZV9nZXRfbmFtZSAoZm9vKSwgImZvbyIpOwor CiAgIC8qIEJ1aWxkIHRoZSB0ZXN0X2ZuLiAgKi8KICAgZ2NjX2ppdF9mdW5j dGlvbiAqdGVzdF9mbiA9CiAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19mdW5j dGlvbiAoY3R4dCwgTlVMTCwKLS0gCjIuMjQuMS4yNzYyLmdmZTJlNDgxOWI4 Cgo= --000000000000ee953e0616af5c28--