From nobody Tue Feb 10 06:26:52 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1586195441; cv=none; d=zohomail.com; s=zohoarc; b=g/bl7aUwjf5LaeVYOGBZEH2SIGpRhdlvFg8ILbmj4ViYeqaz/6G607qnfEwuntaNJ/B7xL/h3cC9zqDvaBHjZNqB9K7lQlLj5NoqFPyLsH2ccr9Xh+oU60HQKc0QQASCwsGugcRxHhbvdNNv/03jHQKpFS4WNzw6A+Rx6X/1SJ4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1586195441; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=2rmRZ8EJBuNRGYmD7sOjQOcGn9wy27OJ72EAKJJ6t9Q=; b=fDuQILGREwJ8fWyr/QVko0rQRqRue1cZYOYKpU/zINvQetKkdoBmQkSBMgWWVqbdXVs0DivWoIYV8TVbv/+0QYB/plzUFkaF4CToLa12k1MJkPWTvSTnMxq9wc1m3WmYUlO/WNg7Kwv7VpTZcPX9NXyKp2+5+DIx6Y3KcDvJTok= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1586195441362840.601789097324; Mon, 6 Apr 2020 10:50:41 -0700 (PDT) Received: from localhost ([::1]:35870 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jLVtP-0004gl-Px for importer@patchew.org; Mon, 06 Apr 2020 13:50:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35756) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jLVqj-0001Sr-2q for qemu-devel@nongnu.org; Mon, 06 Apr 2020 13:47:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jLVqg-0001Og-0x for qemu-devel@nongnu.org; Mon, 06 Apr 2020 13:47:51 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:35007) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jLVqf-0001Iz-Pp; Mon, 06 Apr 2020 13:47:49 -0400 Received: by mail-wr1-x444.google.com with SMTP id g3so528283wrx.2; Mon, 06 Apr 2020 10:47:49 -0700 (PDT) Received: from x1w.redhat.com (116.red-83-42-57.dynamicip.rima-tde.net. [83.42.57.116]) by smtp.gmail.com with ESMTPSA id a67sm364880wmc.30.2020.04.06.10.47.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Apr 2020 10:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2rmRZ8EJBuNRGYmD7sOjQOcGn9wy27OJ72EAKJJ6t9Q=; b=a1HmjqTXwLEeQNBl+IjNTUAIoDur89BD8uzU7eqvS3PP6M1VlcsnV6GeRYQyaNNMnA h9U7ZGx0k8gOFtJXewZ64r19yXKMXRACLuOeQjQxO1RYW1QVC+SZPyv6J88aDTEtJccg JbriKJIUplt+/a8GqtpghvFk9A3qYeFDJbx6nz/EszmdH7/tUIAapdvx4/CPfogJ8uOW MIlstw/BLWe3+iazq2svu+ye+wLvJ6rqO3fVsgITZrAheZLyewvM+UDZlrBIFh/YnHKz ikaKOJ9JRXGj1Gg+ZpZlg7Wafdfux2IBBbX1EPZ0wqfP74YhQPY18Is4+SvwyBAeDFBW 0Luw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=2rmRZ8EJBuNRGYmD7sOjQOcGn9wy27OJ72EAKJJ6t9Q=; b=Z0wtJqRUuXbYfTL6NpufGiHjAF0klI0Fdm8QoIxADNb0Z6DT59aStQXDJ965DnOvvy 6pb11qEd+KAgftKsKMrrLjifOzQ4i+g4FFQUVfUsVH844ZUoF47Am3XDu7fE3MqjWM58 YgrI7KUdvtxFCpikd6Gv5Dv7zbge8Fc22Z2MQErInoSqu/jNTTo/KkPRCWGKB589I6th CvqDApWN2/6PwMT68jhYD5i3VAuFZ/Dete07sVLQkWen7V7js6EpSQmtyBKbn92BfxVC oB0+A+5GeGkFsKD8LZtgmKXIXRJK95d/FMS+gSa3Fsadw/mYXhwPiUXOYhRKZXOtH9Hg S9ng== X-Gm-Message-State: AGi0Pua7ugTGnMS+moBfOAmO9Bd2m1bxdLOfUufQWjiTol7g8MZj8xij TpI6bAYVdTfsM6ilUipDn/d6G7l2JAI= X-Google-Smtp-Source: APiQypJMS9g2sBloVFBfjNbgKNfiMBE2qlrq/9dgafK3kRU3B6Y/KGhGTngEk1PNxdZCNXoJw7aLbw== X-Received: by 2002:adf:e744:: with SMTP id c4mr327360wrn.133.1586195267687; Mon, 06 Apr 2020 10:47:47 -0700 (PDT) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org, Markus Armbruster Subject: [PATCH-for-5.1 v2 01/54] various: Remove suspicious '\' character outside of #define in C code Date: Mon, 6 Apr 2020 19:46:50 +0200 Message-Id: <20200406174743.16956-2-f4bug@amsat.org> X-Mailer: git-send-email 2.21.1 In-Reply-To: <20200406174743.16956-1-f4bug@amsat.org> References: <20200406174743.16956-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Fam Zheng , Peter Maydell , Sagar Karandikar , "Michael S. Tsirkin" , Jeff Cody , Jason Wang , Alistair Francis , "Edgar E. Iglesias" , "open list:Block layer core" , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Richard Henderson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Eduardo Habkost , Xie Changlong , "open list:PowerPC TCG CPUs" , David Gibson , Kevin Wolf , Vladimir Sementsov-Ogievskiy , "open list:RISC-V TCG CPUs" , Wen Congyang , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Max Reitz , Palmer Dabbelt , Bastian Koppelmann , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Fixes the following coccinelle warnings: $ spatch --sp-file --verbose-parsing ... \ scripts/coccinelle/remove_local_err.cocci ... SUSPICIOUS: a \ character appears outside of a #define at ./target/ppc/tr= anslate_init.inc.c:5213 SUSPICIOUS: a \ character appears outside of a #define at ./target/ppc/tr= anslate_init.inc.c:5261 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:166 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:167 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:169 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:170 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:171 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:172 SUSPICIOUS: a \ character appears outside of a #define at ./target/microb= laze/cpu.c:173 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5787 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5789 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5800 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5801 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5802 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5804 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5805 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:5806 SUSPICIOUS: a \ character appears outside of a #define at ./target/i386/c= pu.c:6329 SUSPICIOUS: a \ character appears outside of a #define at ./hw/sd/sdhci.c= :1133 SUSPICIOUS: a \ character appears outside of a #define at ./hw/scsi/scsi-= disk.c:3081 SUSPICIOUS: a \ character appears outside of a #define at ./hw/net/virtio= -net.c:1529 SUSPICIOUS: a \ character appears outside of a #define at ./hw/riscv/sifi= ve_u.c:468 SUSPICIOUS: a \ character appears outside of a #define at ./dump/dump.c:1= 895 SUSPICIOUS: a \ character appears outside of a #define at ./block/vhdx.c:= 2209 SUSPICIOUS: a \ character appears outside of a #define at ./block/vhdx.c:= 2215 SUSPICIOUS: a \ character appears outside of a #define at ./block/vhdx.c:= 2221 SUSPICIOUS: a \ character appears outside of a #define at ./block/vhdx.c:= 2222 SUSPICIOUS: a \ character appears outside of a #define at ./block/replica= tion.c:172 SUSPICIOUS: a \ character appears outside of a #define at ./block/replica= tion.c:173 Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Marc-Andr=C3=A9 Lureau --- block/replication.c | 4 ++-- block/vhdx.c | 8 ++++---- dump/dump.c | 2 +- hw/net/virtio-net.c | 2 +- hw/riscv/sifive_u.c | 2 +- hw/scsi/scsi-disk.c | 2 +- hw/sd/sdhci.c | 2 +- target/i386/cpu.c | 18 +++++++++--------- target/microblaze/cpu.c | 14 +++++++------- target/ppc/translate_init.inc.c | 4 ++-- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/block/replication.c b/block/replication.c index 413d95407d..5e09951c6b 100644 --- a/block/replication.c +++ b/block/replication.c @@ -169,8 +169,8 @@ static void replication_child_perm(BlockDriverState *bs= , BdrvChild *c, if ((bs->open_flags & (BDRV_O_INACTIVE | BDRV_O_RDWR)) =3D=3D BDRV_O_R= DWR) { *nperm |=3D BLK_PERM_WRITE; } - *nshared =3D BLK_PERM_CONSISTENT_READ \ - | BLK_PERM_WRITE \ + *nshared =3D BLK_PERM_CONSISTENT_READ + | BLK_PERM_WRITE | BLK_PERM_WRITE_UNCHANGED; return; } diff --git a/block/vhdx.c b/block/vhdx.c index 33e57cd656..e16fdc2f2d 100644 --- a/block/vhdx.c +++ b/block/vhdx.c @@ -2206,20 +2206,20 @@ static QemuOptsList vhdx_create_opts =3D { .name =3D VHDX_BLOCK_OPT_BLOCK_SIZE, .type =3D QEMU_OPT_SIZE, .def_value_str =3D stringify(0), - .help =3D "Block Size; min 1MB, max 256MB. " \ + .help =3D "Block Size; min 1MB, max 256MB. " "0 means auto-calculate based on image size." }, { .name =3D BLOCK_OPT_SUBFMT, .type =3D QEMU_OPT_STRING, - .help =3D "VHDX format type, can be either 'dynamic' or 'fixed'= . "\ + .help =3D "VHDX format type, can be either 'dynamic' or 'fixed'= . " "Default is 'dynamic'." }, { .name =3D VHDX_BLOCK_OPT_ZERO, .type =3D QEMU_OPT_BOOL, - .help =3D "Force use of payload blocks of type 'ZERO'. "\ - "Non-standard, but default. Do not set to 'off' when "\ + .help =3D "Force use of payload blocks of type 'ZERO'. " + "Non-standard, but default. Do not set to 'off' when " "using 'qemu-img convert' with subformat=3Ddynamic." }, { NULL } diff --git a/dump/dump.c b/dump/dump.c index 22ed1d3b0d..248ea06370 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -1892,7 +1892,7 @@ static void dump_process(DumpState *s, Error **errp) result =3D qmp_query_dump(NULL); /* should never fail */ assert(result); - qapi_event_send_dump_completed(result, !!local_err, (local_err ? \ + qapi_event_send_dump_completed(result, !!local_err, (local_err ? error_get_pretty(local_err) : NULL)); qapi_free_DumpQueryResult(result); =20 diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c index a46e3b37a7..eddfa7f923 100644 --- a/hw/net/virtio-net.c +++ b/hw/net/virtio-net.c @@ -1526,7 +1526,7 @@ static void virtio_net_rsc_extract_unit6(VirtioNetRsc= Chain *chain, + sizeof(struct eth_header)); unit->ip =3D ip6; unit->ip_plen =3D &(ip6->ip6_ctlun.ip6_un1.ip6_un1_plen); - unit->tcp =3D (struct tcp_header *)(((uint8_t *)unit->ip)\ + unit->tcp =3D (struct tcp_header *)(((uint8_t *)unit->ip) + sizeof(struct ip6_header)); unit->tcp_hdrlen =3D (htons(unit->tcp->th_offset_flags) & 0xF000) >> 1= 0; =20 diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 56351c4faa..998666c91f 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -465,7 +465,7 @@ static void riscv_sifive_u_machine_instance_init(Object= *obj) object_property_add_bool(obj, "start-in-flash", sifive_u_get_start_in_= flash, sifive_u_set_start_in_flash, NULL); object_property_set_description(obj, "start-in-flash", - "Set on to tell QEMU's ROM to jump to = " \ + "Set on to tell QEMU's ROM to jump to " "flash. Otherwise QEMU will jump to DR= AM", NULL); } diff --git a/hw/scsi/scsi-disk.c b/hw/scsi/scsi-disk.c index 1c0cb63a6f..e5bcd0baf8 100644 --- a/hw/scsi/scsi-disk.c +++ b/hw/scsi/scsi-disk.c @@ -3078,7 +3078,7 @@ static const TypeInfo scsi_cd_info =3D { =20 #ifdef __linux__ static Property scsi_block_properties[] =3D { - DEFINE_BLOCK_ERROR_PROPERTIES(SCSIDiskState, qdev.conf), \ + DEFINE_BLOCK_ERROR_PROPERTIES(SCSIDiskState, qdev.conf), DEFINE_PROP_DRIVE("drive", SCSIDiskState, qdev.conf.blk), DEFINE_PROP_BOOL("share-rw", SCSIDiskState, qdev.conf.share_rw, false), DEFINE_PROP_UINT16("rotation_rate", SCSIDiskState, rotation_rate, 0), diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c index de63ffb037..70531ad360 100644 --- a/hw/sd/sdhci.c +++ b/hw/sd/sdhci.c @@ -1130,7 +1130,7 @@ sdhci_write(void *opaque, hwaddr offset, uint64_t val= , unsigned size) =20 /* Limit block size to the maximum buffer size */ if (extract32(s->blksize, 0, 12) > s->buf_maxsz) { - qemu_log_mask(LOG_GUEST_ERROR, "%s: Size 0x%x is larger than "= \ + qemu_log_mask(LOG_GUEST_ERROR, "%s: Size 0x%x is larger than " "the maximum buffer 0x%x", __func__, s->blksize, s->buf_maxsz); =20 diff --git a/target/i386/cpu.c b/target/i386/cpu.c index 90ffc5f3b1..9c256ab159 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -5784,9 +5784,9 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index, = uint32_t count, host_cpuid(index, 0, eax, ebx, ecx, edx); break; } - *eax =3D (L1_DTLB_2M_ASSOC << 24) | (L1_DTLB_2M_ENTRIES << 16) | \ + *eax =3D (L1_DTLB_2M_ASSOC << 24) | (L1_DTLB_2M_ENTRIES << 16) | (L1_ITLB_2M_ASSOC << 8) | (L1_ITLB_2M_ENTRIES); - *ebx =3D (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | \ + *ebx =3D (L1_DTLB_4K_ASSOC << 24) | (L1_DTLB_4K_ENTRIES << 16) | (L1_ITLB_4K_ASSOC << 8) | (L1_ITLB_4K_ENTRIES); *ecx =3D encode_cache_cpuid80000005(env->cache_info_amd.l1d_cache); *edx =3D encode_cache_cpuid80000005(env->cache_info_amd.l1i_cache); @@ -5797,13 +5797,13 @@ void cpu_x86_cpuid(CPUX86State *env, uint32_t index= , uint32_t count, host_cpuid(index, 0, eax, ebx, ecx, edx); break; } - *eax =3D (AMD_ENC_ASSOC(L2_DTLB_2M_ASSOC) << 28) | \ - (L2_DTLB_2M_ENTRIES << 16) | \ - (AMD_ENC_ASSOC(L2_ITLB_2M_ASSOC) << 12) | \ + *eax =3D (AMD_ENC_ASSOC(L2_DTLB_2M_ASSOC) << 28) | + (L2_DTLB_2M_ENTRIES << 16) | + (AMD_ENC_ASSOC(L2_ITLB_2M_ASSOC) << 12) | (L2_ITLB_2M_ENTRIES); - *ebx =3D (AMD_ENC_ASSOC(L2_DTLB_4K_ASSOC) << 28) | \ - (L2_DTLB_4K_ENTRIES << 16) | \ - (AMD_ENC_ASSOC(L2_ITLB_4K_ASSOC) << 12) | \ + *ebx =3D (AMD_ENC_ASSOC(L2_DTLB_4K_ASSOC) << 28) | + (L2_DTLB_4K_ENTRIES << 16) | + (AMD_ENC_ASSOC(L2_ITLB_4K_ASSOC) << 12) | (L2_ITLB_4K_ENTRIES); encode_cache_cpuid80000006(env->cache_info_amd.l2_cache, cpu->enable_l3_cache ? @@ -6326,7 +6326,7 @@ static void x86_cpu_expand_features(X86CPU *cpu, Erro= r **errp) */ env->features[w] |=3D x86_cpu_get_supported_feature_word(w, cpu->migratable) & - ~env->user_features[w] & \ + ~env->user_features[w] & ~feature_word_info[w].no_autoenable_flags; } } diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c index a2c2f271df..c9cf2364ca 100644 --- a/target/microblaze/cpu.c +++ b/target/microblaze/cpu.c @@ -163,14 +163,14 @@ static void mb_cpu_realizefn(DeviceState *dev, Error = **errp) =20 qemu_init_vcpu(cs); =20 - env->pvr.regs[0] =3D PVR0_USE_EXC_MASK \ - | PVR0_USE_ICACHE_MASK \ + env->pvr.regs[0] =3D PVR0_USE_EXC_MASK + | PVR0_USE_ICACHE_MASK | PVR0_USE_DCACHE_MASK; - env->pvr.regs[2] =3D PVR2_D_OPB_MASK \ - | PVR2_D_LMB_MASK \ - | PVR2_I_OPB_MASK \ - | PVR2_I_LMB_MASK \ - | PVR2_FPU_EXC_MASK \ + env->pvr.regs[2] =3D PVR2_D_OPB_MASK + | PVR2_D_LMB_MASK + | PVR2_I_OPB_MASK + | PVR2_I_LMB_MASK + | PVR2_FPU_EXC_MASK | 0; =20 version =3D cpu->cfg.version ? cpu->cfg.version : DEFAULT_CPU_VERSION; diff --git a/target/ppc/translate_init.inc.c b/target/ppc/translate_init.in= c.c index e853164a86..fd763e588e 100644 --- a/target/ppc/translate_init.inc.c +++ b/target/ppc/translate_init.inc.c @@ -5210,7 +5210,7 @@ POWERPC_FAMILY(e5500)(ObjectClass *oc, void *data) PPC_FLOAT_STFIWX | PPC_WAIT | PPC_MEM_TLBSYNC | PPC_TLBIVAX | PPC_MEM_SYNC | PPC_64B | PPC_POPCNTB | PPC_POPCNTWD; - pcc->insns_flags2 =3D PPC2_BOOKE206 | PPC2_PRCNTL | PPC2_PERM_ISA206 |= \ + pcc->insns_flags2 =3D PPC2_BOOKE206 | PPC2_PRCNTL | PPC2_PERM_ISA206 | PPC2_FP_CVT_S64; pcc->msr_mask =3D (1ull << MSR_CM) | (1ull << MSR_GS) | @@ -5258,7 +5258,7 @@ POWERPC_FAMILY(e6500)(ObjectClass *oc, void *data) PPC_FLOAT_STFIWX | PPC_WAIT | PPC_MEM_TLBSYNC | PPC_TLBIVAX | PPC_MEM_SYNC | PPC_64B | PPC_POPCNTB | PPC_POPCNTWD | PPC_ALTIVEC; - pcc->insns_flags2 =3D PPC2_BOOKE206 | PPC2_PRCNTL | PPC2_PERM_ISA206 |= \ + pcc->insns_flags2 =3D PPC2_BOOKE206 | PPC2_PRCNTL | PPC2_PERM_ISA206 | PPC2_FP_CVT_S64 | PPC2_ATOMIC_ISA206; pcc->msr_mask =3D (1ull << MSR_CM) | (1ull << MSR_GS) | --=20 2.21.1