diff for duplicates of <df7472540cd546ed9ee0c2fb3e10c666b442a68e.camel@mediatek.com> diff --git a/N1/2.bin b/N1/2.bin new file mode 100644 index 0000000..76b9768 --- /dev/null +++ b/N1/2.bin @@ -0,0 +1,322 @@ +<html><body><p> +<pre> +Hi, Paul: + + +  + + +On Fri, 2025-01-10 at 20:34 +0800,paul-pl.chen wrote: +>  +> > From: "Nancy.Lin" <nancy.lin@mediatek.com> +>  +> >  +>  +> > EXDMA is a DMA engine for reading data from DRAM with +>  +> > various DRAM footprints and data formats. For input +>  +> > sources in certain color formats and color domains, +>  +> > EXDMA also includes a color transfer function to +>  +> > process pixels into a consistent color domain. +>  +> >  +>  +> > Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com> +>  +> > Signed-off-by: Paul-pl.Chen <paul-pl.chen@mediatek.com> +>  +> > --- +>  +>   +>  +> [snip] +>  +>   +>  +> > +#define DISP_REG_OVL_L0_CLRFMT                      0x050 +>  +> > +#define OVL_CON_FLD_CLRFMT                          GENMASK(3, 0) +>  +> > +#define OVL_CON_CLRFMT_MAN                          BIT(4) +>  +> > +#define OVL_CON_FLD_CLRFMT_NB                       GENMASK(9, 8) +>  +> > +#define OVL_CON_CLRFMT_NB_10_BIT                    BIT(8) +>  +> > +#define OVL_CON_BYTE_SWAP                           BIT(16) +>  +> > +#define OVL_CON_RGB_SWAP                            BIT(17) +>  +> > +#define OVL_CON_CLRFMT_RGB565                       0x000 +>  +> > +#define OVL_CON_CLRFMT_BGR888                       0x001 +>  +> > +#define OVL_CON_CLRFMT_BGRA8888                             0x002 +>  +> > +#define OVL_CON_CLRFMT_ABGRB8888                    0x003 +>  +> > +#define OVL_CON_CLRFMT_UYVY                         0x004 +>  +> > +#define OVL_CON_CLRFMT_YUYV                         0x005 +>  +> > +#define OVL_CON_CLRFMT_BGR565                       (0x000 | OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_RGB888                       (0x001 | OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_RGBA8888                             (0x002 | OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_ARGB8888                             (0x003 | OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_VYUY                         (0x004 | OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_YVYU                         (0x005 | OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_PBGRA8888                    (0x003 | OVL_CON_CLRFMT_MAN) +>  +> > +#define OVL_CON_CLRFMT_PARGB8888              (OVL_CON_CLRFMT_PBGRA8888 | \ +>  +> > +                                                    OVL_CON_BYTE_SWAP) +>  +> > +#define OVL_CON_CLRFMT_PRGBA8888              (OVL_CON_CLRFMT_PBGRA8888 | \ +>  +> > +                                                    OVL_CON_RGB_SWAP) +>  +> > +#define OVL_CON_CLRFMT_PABGR8888              (OVL_CON_CLRFMT_PBGRA8888 | \ +>  +> > +                                                    OVL_CON_RGB_SWAP | \ +>  +> > +                                                    OVL_CON_BYTE_SWAP) +>  +>   +>  +> The color format definition is identical with ovl driver. Try to merge them. +>  +>   +>  +> > +#define DISP_REG_OVL_RDMA0_CTRL                     0x100 +>  +> > +#define DISP_RDMA0_EN                               BIT(0) +>  +> > +#define DISP_REG_OVL_RDMA_BURST_CON1        0x1f4 +>  +> > +#define DISP_RDMA_BURST_CON1_BURST16_EN                     BIT(28) +>  +> > +#define DISP_RDMA_BURST_CON1_DDR_EN                 BIT(30) +>  +> > +#define DISP_RDMA_BURST_CON1_DDR_ACK_EN                     BIT(31) +>  +> > +#define DISP_REG_OVL_DUMMY_REG                      0x200 +>  +> > +#define DISP_OVL_EXT_DDR_EN_OPT                             BIT(2) +>  +> > +#define DISP_OVL_FORCE_EXT_DDR_EN                   BIT(3) +>  +> > +#define DISP_REG_OVL_GDRDY_PRD                      0x208 +>  +>   +>  +> [snip] +>  +>   +>  +> > + +>  +> > +static const u32 formats[] = { +>  +>   +>  +> This array is identical with mt8195_formats[], try to merge them. +>  +>   +>  +> > +      DRM_FORMAT_XRGB8888, +>  +> > +      DRM_FORMAT_ARGB8888, +>  +> > +      DRM_FORMAT_BGRX8888, +>  +> > +      DRM_FORMAT_BGRA8888, +>  +> > +      DRM_FORMAT_ABGR8888, +>  +> > +      DRM_FORMAT_XBGR8888, +>  +> > +      DRM_FORMAT_RGBX8888, +>  +> > +      DRM_FORMAT_RGBA8888, +>  +> > +      DRM_FORMAT_RGB888, +>  +> > +      DRM_FORMAT_BGR888, +>  +> > +      DRM_FORMAT_RGB565, +>  +> > +      DRM_FORMAT_UYVY, +>  +> > +      DRM_FORMAT_YUYV, +>  +> > +      DRM_FORMAT_XRGB2101010, +>  +> > +      DRM_FORMAT_ARGB2101010, +>  +> > +      DRM_FORMAT_RGBX1010102, +>  +> > +      DRM_FORMAT_RGBA1010102, +>  +> > +      DRM_FORMAT_XBGR2101010, +>  +> > +      DRM_FORMAT_ABGR2101010, +>  +> > +      DRM_FORMAT_BGRX1010102, +>  +> > +      DRM_FORMAT_BGRA1010102, +>  +> > +}; +>  +> > + +>  +>   +>  +> [snip] +>  +>   +>  +> > + +>  +> > +static unsigned int mtk_disp_exdma_fmt_convert(unsigned int fmt, unsigned int blend_mode) +>  +>   +>  +> This function is almost the same as mtk_ovl_fmt_convert(), try to merge them. +>  +>   +>  +> Regards, +>  +> CK +>  +>   +>  +> > +{ +>  +> > +      /* +>  +> > +       * DRM_FORMAT: bit 32->0, OVL_FMT: bit 0->32, +>  +> > +       * so DRM_FORMAT_RGB888 = OVL_CON_CLRFMT_BGR888 +>  +> > +       */ +>  +> > +      switch (fmt) { +>  +> > +      default: +>  +> > +      case DRM_FORMAT_BGR565: +>  +> > +              return OVL_CON_CLRFMT_RGB565; +>  +> > +      case DRM_FORMAT_RGB565: +>  +> > +              return OVL_CON_CLRFMT_BGR565; +>  +> > +      case DRM_FORMAT_RGB888: +>  +> > +              return OVL_CON_CLRFMT_BGR888; +>  +> > +      case DRM_FORMAT_BGR888: +>  +> > +              return OVL_CON_CLRFMT_RGB888; +>  +> > +      case DRM_FORMAT_RGBX8888: +>  +> > +      case DRM_FORMAT_RGBA8888: +>  +> > +      case DRM_FORMAT_RGBA1010102: +>  +> > +      case DRM_FORMAT_RGBX1010102: +>  +> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ? +>  +> > +                      OVL_CON_CLRFMT_PABGR8888 : OVL_CON_CLRFMT_ABGRB8888) | +>  +> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0); +>  +> > +      case DRM_FORMAT_BGRX8888: +>  +> > +      case DRM_FORMAT_BGRA8888: +>  +> > +      case DRM_FORMAT_BGRA1010102: +>  +> > +      case DRM_FORMAT_BGRX1010102: +>  +> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ? +>  +> > +                      OVL_CON_CLRFMT_PARGB8888 : OVL_CON_CLRFMT_ARGB8888) | +>  +> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0); +>  +> > +      case DRM_FORMAT_XRGB8888: +>  +> > +      case DRM_FORMAT_ARGB8888: +>  +> > +      case DRM_FORMAT_ARGB2101010: +>  +> > +      case DRM_FORMAT_XRGB2101010: +>  +> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ? +>  +> > +                      OVL_CON_CLRFMT_PBGRA8888 : OVL_CON_CLRFMT_BGRA8888) | +>  +> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0); +>  +> > +      case DRM_FORMAT_XBGR8888: +>  +> > +      case DRM_FORMAT_ABGR8888: +>  +> > +      case DRM_FORMAT_ABGR2101010: +>  +> > +      case DRM_FORMAT_XBGR2101010: +>  +> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ? +>  +> > +                      OVL_CON_CLRFMT_PRGBA8888 : OVL_CON_CLRFMT_RGBA8888) | +>  +> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0); +>  +> > +      case DRM_FORMAT_UYVY: +>  +> > +              return OVL_CON_CLRFMT_UYVY; +>  +> > +      case DRM_FORMAT_YUYV: +>  +> > +              return OVL_CON_CLRFMT_YUYV; +>  +> > +      } +>  +> > +} +>  +> > + +>  + + + + +  + +</pre> +</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ******************** +The information contained in this e-mail message (including any +attachments) may be confidential, proprietary, privileged, or otherwise +exempt from disclosure under applicable laws. It is intended to be +conveyed only to the designated recipient(s). Any use, dissemination, +distribution, printing, retaining or copying of this e-mail (including its +attachments) by unintended recipient(s) is strictly prohibited and may +be unlawful. If you are not an intended recipient of this e-mail, or believe +that you have received this e-mail in error, please notify the sender +immediately (by replying to this e-mail), delete any and all copies of +this e-mail (including any attachments) from your system, and do not +disclose the content of this e-mail to any other person. Thank you! +</pre><!--}--> diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..da1f671 --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,3 @@ +Content-Type: text/html; + charset="utf-8" +Content-Transfer-Encoding: base64 diff --git a/a/content_digest b/N1/content_digest index ba04d70..28c5d67 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -24,7 +24,7 @@ p.zabel@pengutronix.de <p.zabel@pengutronix.de> " Sirius Wang (\347\216\213\347\232\223\346\230\261) <Sirius.Wang@mediatek.com>" " linux-arm-kernel@lists.infradead.org <linux-arm-kernel@lists.infradead.org>\0" - "\00:1\0" + "\01:1\0" "b\0" "Hi, Paul:\n" "\n" @@ -326,5 +326,329 @@ "> \n" "> > +\n" > + "\01:2\0" + "b\0" + "<html><body><p>\r\n" + "<pre>\r\n" + "Hi, Paul:\n" + "\n" + "\n" + " \n" + "\n" + "\n" + "On Fri, 2025-01-10 at 20:34 +0800,paul-pl.chen wrote:\n" + "> \n" + "> > From: "Nancy.Lin" <nancy.lin@mediatek.com>\n" + "> \n" + "> > \n" + "> \n" + "> > EXDMA is a DMA engine for reading data from DRAM with\n" + "> \n" + "> > various DRAM footprints and data formats. For input\n" + "> \n" + "> > sources in certain color formats and color domains,\n" + "> \n" + "> > EXDMA also includes a color transfer function to\n" + "> \n" + "> > process pixels into a consistent color domain.\n" + "> \n" + "> > \n" + "> \n" + "> > Signed-off-by: Nancy.Lin <nancy.lin@mediatek.com>\n" + "> \n" + "> > Signed-off-by: Paul-pl.Chen <paul-pl.chen@mediatek.com>\n" + "> \n" + "> > ---\n" + "> \n" + ">  \n" + "> \n" + "> [snip]\n" + "> \n" + ">  \n" + "> \n" + "> > +#define DISP_REG_OVL_L0_CLRFMT                      0x050\n" + "> \n" + "> > +#define OVL_CON_FLD_CLRFMT                          GENMASK(3, 0)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_MAN                          BIT(4)\n" + "> \n" + "> > +#define OVL_CON_FLD_CLRFMT_NB                       GENMASK(9, 8)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_NB_10_BIT                    BIT(8)\n" + "> \n" + "> > +#define OVL_CON_BYTE_SWAP                           BIT(16)\n" + "> \n" + "> > +#define OVL_CON_RGB_SWAP                            BIT(17)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_RGB565                       0x000\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_BGR888                       0x001\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_BGRA8888                             0x002\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_ABGRB8888                    0x003\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_UYVY                         0x004\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_YUYV                         0x005\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_BGR565                       (0x000 | OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_RGB888                       (0x001 | OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_RGBA8888                             (0x002 | OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_ARGB8888                             (0x003 | OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_VYUY                         (0x004 | OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_YVYU                         (0x005 | OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_PBGRA8888                    (0x003 | OVL_CON_CLRFMT_MAN)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_PARGB8888              (OVL_CON_CLRFMT_PBGRA8888 | \\n" + "> \n" + "> > +                                                    OVL_CON_BYTE_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_PRGBA8888              (OVL_CON_CLRFMT_PBGRA8888 | \\n" + "> \n" + "> > +                                                    OVL_CON_RGB_SWAP)\n" + "> \n" + "> > +#define OVL_CON_CLRFMT_PABGR8888              (OVL_CON_CLRFMT_PBGRA8888 | \\n" + "> \n" + "> > +                                                    OVL_CON_RGB_SWAP | \\n" + "> \n" + "> > +                                                    OVL_CON_BYTE_SWAP)\n" + "> \n" + ">  \n" + "> \n" + "> The color format definition is identical with ovl driver. Try to merge them.\n" + "> \n" + ">  \n" + "> \n" + "> > +#define DISP_REG_OVL_RDMA0_CTRL                     0x100\n" + "> \n" + "> > +#define DISP_RDMA0_EN                               BIT(0)\n" + "> \n" + "> > +#define DISP_REG_OVL_RDMA_BURST_CON1        0x1f4\n" + "> \n" + "> > +#define DISP_RDMA_BURST_CON1_BURST16_EN                     BIT(28)\n" + "> \n" + "> > +#define DISP_RDMA_BURST_CON1_DDR_EN                 BIT(30)\n" + "> \n" + "> > +#define DISP_RDMA_BURST_CON1_DDR_ACK_EN                     BIT(31)\n" + "> \n" + "> > +#define DISP_REG_OVL_DUMMY_REG                      0x200\n" + "> \n" + "> > +#define DISP_OVL_EXT_DDR_EN_OPT                             BIT(2)\n" + "> \n" + "> > +#define DISP_OVL_FORCE_EXT_DDR_EN                   BIT(3)\n" + "> \n" + "> > +#define DISP_REG_OVL_GDRDY_PRD                      0x208\n" + "> \n" + ">  \n" + "> \n" + "> [snip]\n" + "> \n" + ">  \n" + "> \n" + "> > +\n" + "> \n" + "> > +static const u32 formats[] = {\n" + "> \n" + ">  \n" + "> \n" + "> This array is identical with mt8195_formats[], try to merge them.\n" + "> \n" + ">  \n" + "> \n" + "> > +      DRM_FORMAT_XRGB8888,\n" + "> \n" + "> > +      DRM_FORMAT_ARGB8888,\n" + "> \n" + "> > +      DRM_FORMAT_BGRX8888,\n" + "> \n" + "> > +      DRM_FORMAT_BGRA8888,\n" + "> \n" + "> > +      DRM_FORMAT_ABGR8888,\n" + "> \n" + "> > +      DRM_FORMAT_XBGR8888,\n" + "> \n" + "> > +      DRM_FORMAT_RGBX8888,\n" + "> \n" + "> > +      DRM_FORMAT_RGBA8888,\n" + "> \n" + "> > +      DRM_FORMAT_RGB888,\n" + "> \n" + "> > +      DRM_FORMAT_BGR888,\n" + "> \n" + "> > +      DRM_FORMAT_RGB565,\n" + "> \n" + "> > +      DRM_FORMAT_UYVY,\n" + "> \n" + "> > +      DRM_FORMAT_YUYV,\n" + "> \n" + "> > +      DRM_FORMAT_XRGB2101010,\n" + "> \n" + "> > +      DRM_FORMAT_ARGB2101010,\n" + "> \n" + "> > +      DRM_FORMAT_RGBX1010102,\n" + "> \n" + "> > +      DRM_FORMAT_RGBA1010102,\n" + "> \n" + "> > +      DRM_FORMAT_XBGR2101010,\n" + "> \n" + "> > +      DRM_FORMAT_ABGR2101010,\n" + "> \n" + "> > +      DRM_FORMAT_BGRX1010102,\n" + "> \n" + "> > +      DRM_FORMAT_BGRA1010102,\n" + "> \n" + "> > +};\n" + "> \n" + "> > +\n" + "> \n" + ">  \n" + "> \n" + "> [snip]\n" + "> \n" + ">  \n" + "> \n" + "> > +\n" + "> \n" + "> > +static unsigned int mtk_disp_exdma_fmt_convert(unsigned int fmt, unsigned int blend_mode)\n" + "> \n" + ">  \n" + "> \n" + "> This function is almost the same as mtk_ovl_fmt_convert(), try to merge them.\n" + "> \n" + ">  \n" + "> \n" + "> Regards,\n" + "> \n" + "> CK\n" + "> \n" + ">  \n" + "> \n" + "> > +{\n" + "> \n" + "> > +      /*\n" + "> \n" + "> > +       * DRM_FORMAT: bit 32->0, OVL_FMT: bit 0->32,\n" + "> \n" + "> > +       * so DRM_FORMAT_RGB888 = OVL_CON_CLRFMT_BGR888\n" + "> \n" + "> > +       */\n" + "> \n" + "> > +      switch (fmt) {\n" + "> \n" + "> > +      default:\n" + "> \n" + "> > +      case DRM_FORMAT_BGR565:\n" + "> \n" + "> > +              return OVL_CON_CLRFMT_RGB565;\n" + "> \n" + "> > +      case DRM_FORMAT_RGB565:\n" + "> \n" + "> > +              return OVL_CON_CLRFMT_BGR565;\n" + "> \n" + "> > +      case DRM_FORMAT_RGB888:\n" + "> \n" + "> > +              return OVL_CON_CLRFMT_BGR888;\n" + "> \n" + "> > +      case DRM_FORMAT_BGR888:\n" + "> \n" + "> > +              return OVL_CON_CLRFMT_RGB888;\n" + "> \n" + "> > +      case DRM_FORMAT_RGBX8888:\n" + "> \n" + "> > +      case DRM_FORMAT_RGBA8888:\n" + "> \n" + "> > +      case DRM_FORMAT_RGBA1010102:\n" + "> \n" + "> > +      case DRM_FORMAT_RGBX1010102:\n" + "> \n" + "> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ?\n" + "> \n" + "> > +                      OVL_CON_CLRFMT_PABGR8888 : OVL_CON_CLRFMT_ABGRB8888) |\n" + "> \n" + "> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0);\n" + "> \n" + "> > +      case DRM_FORMAT_BGRX8888:\n" + "> \n" + "> > +      case DRM_FORMAT_BGRA8888:\n" + "> \n" + "> > +      case DRM_FORMAT_BGRA1010102:\n" + "> \n" + "> > +      case DRM_FORMAT_BGRX1010102:\n" + "> \n" + "> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ?\n" + "> \n" + "> > +                      OVL_CON_CLRFMT_PARGB8888 : OVL_CON_CLRFMT_ARGB8888) |\n" + "> \n" + "> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0);\n" + "> \n" + "> > +      case DRM_FORMAT_XRGB8888:\n" + "> \n" + "> > +      case DRM_FORMAT_ARGB8888:\n" + "> \n" + "> > +      case DRM_FORMAT_ARGB2101010:\n" + "> \n" + "> > +      case DRM_FORMAT_XRGB2101010:\n" + "> \n" + "> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ?\n" + "> \n" + "> > +                      OVL_CON_CLRFMT_PBGRA8888 : OVL_CON_CLRFMT_BGRA8888) |\n" + "> \n" + "> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0);\n" + "> \n" + "> > +      case DRM_FORMAT_XBGR8888:\n" + "> \n" + "> > +      case DRM_FORMAT_ABGR8888:\n" + "> \n" + "> > +      case DRM_FORMAT_ABGR2101010:\n" + "> \n" + "> > +      case DRM_FORMAT_XBGR2101010:\n" + "> \n" + "> > +              return ((blend_mode == DRM_MODE_BLEND_PREMULTI) ?\n" + "> \n" + "> > +                      OVL_CON_CLRFMT_PRGBA8888 : OVL_CON_CLRFMT_RGBA8888) |\n" + "> \n" + "> > +                      (is_10bit_rgb(fmt) ? OVL_CON_CLRFMT_NB_10_BIT : 0);\n" + "> \n" + "> > +      case DRM_FORMAT_UYVY:\n" + "> \n" + "> > +              return OVL_CON_CLRFMT_UYVY;\n" + "> \n" + "> > +      case DRM_FORMAT_YUYV:\n" + "> \n" + "> > +              return OVL_CON_CLRFMT_YUYV;\n" + "> \n" + "> > +      }\n" + "> \n" + "> > +}\n" + "> \n" + "> > +\n" + "> \n" + "\n" + "\n" + "\n" + "\n" + " \n" + "\r\n" + "</pre>\r\n" + "</p></body></html><!--type:text--><!--{--><pre>************* MEDIATEK Confidentiality Notice ********************\r\n" + "The information contained in this e-mail message (including any \r\n" + "attachments) may be confidential, proprietary, privileged, or otherwise\r\n" + "exempt from disclosure under applicable laws. It is intended to be \r\n" + "conveyed only to the designated recipient(s). Any use, dissemination, \r\n" + "distribution, printing, retaining or copying of this e-mail (including its \r\n" + "attachments) by unintended recipient(s) is strictly prohibited and may \r\n" + "be unlawful. If you are not an intended recipient of this e-mail, or believe \r\n" + "that you have received this e-mail in error, please notify the sender \r\n" + "immediately (by replying to this e-mail), delete any and all copies of \r\n" + "this e-mail (including any attachments) from your system, and do not\r\n" + "disclose the content of this e-mail to any other person. Thank you!\r\n" + </pre><!--}--> -a133bf7c5c91725c8a76a0b734d83f4e6a233bc23101b92009d781ac175b7935 +1c60ebc983afec4940a47e1bd5c423a39e13387359b559bed89b8c9c63fe8cea
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.