未找到

未发布 MailBee.NET Objects发送电子邮件(SMTP)教程二:SMTP认证
by Harriet666 keys 分享 1493360808088
 
大多数SMTP服务器都要求用户进行身份验证,才能将电子邮件发送到外部电子邮件地址(属于其他域的地址)。登录/密码通常与同一服务器上用户的POP3或IMAP帐户相同。
C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("smtp.company.com", "jdoe", "secret");    
mailer.SmtpServers.Add(server);
...
mailer.Send();                                                               
VB.NET:
Dim mailer As New Smtp() 
Dim server As New SmtpServer("smtp.company.com","jdoe","secret") 
mailer.SmtpServers.Add(server)
...
mailer.Send()
 
在这种情况下,如果要使用Connect方法手动建立连接,过程如下:
C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("mail.domain.com", "user@domain.com", "pass");
mailer.SmtpServers.Add(server);
mailer.Connect();
mailer.Hello();
mailer.Login();                                                            
VB.NET:
Dim mailer As New Smtp()
Dim server As New SmtpServer("mail.domain.com", "user@domain.com", "pass")
mailer.SmtpServers.Add(server)
mailer.Connect()
mailer.Hello()
mailer.Login()
 
如果启用SMTP认证(由于登录名和密码在SmtpServer函数中已经确定),那么Login方法将尝试使用服务器支持的最佳(最安全)的方法在SMTP服务器上进行身份验证。你也可以强制MailBee使用指定的身份验证方法,或尝试最简单而不是最安全的方法。
以下代码可以强制MailBee使用SASL LOGIN(不安全)、SASL PLAIN(不安全)或SASL NTLM(安全)的方法。只有SASL LOGIN或SASL PLAIN暂不支持SASL NTLM:
C#:
Smtp mailer = new Smtp();
SmtpServer server = new SmtpServer("smtp.company.com", "jdoe", "secret");
server.AuthMethods = AuthenticationMethods.SaslLogin | 
AuthenticationMethods.SaslPlain | AuthenticationMethods.SaslNtlm;
server.AuthOptions = AuthenticationOptions.PreferSimpleMethods;
mailer.SmtpServers.Add(server);
...
mailer.Send();                                                        
VB.NET:
Dim mailer As New Smtp() 
Dim server As New SmtpServer("smtp.company.com","jdoe","secret") 
server.AuthMethods = AuthenticationMethods.SaslLogin _ 
Or AuthenticationMethods.SaslPlain Or AuthenticationMethods.SaslNtlm
server.AuthOptions = AuthenticationOptions.PreferSimpleMethods
mailer.SmtpServers.Add(server)
...
mailer.Send()
 
一些较旧的服务器要求客户端自己进行身份验证,但不支持SMTP身份验证。这是因为SMTP身份验证是SMTP协议的可选扩展项(称为ESMTP身份验证更为正确)。在这种情况下,你可以使用与SMTP服务器共享用户帐户数据库的POP3服务器执行POP3认证。这被称为POP-before-SMTP认证。使用MailBee,你可以采用两种方式使用POP-before-SMTP。
如果POP3和SMTP服务器名称相同(例如,两个服务器都是mail.domain.com),并且POP3服务在默认端口110上运行:
C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("mail.domain.com", "jdoe@domain.com", "secret").AuthPopBeforeSmtp = true;
...
mailer.Send();                                                     
VB.NET:
Dim mailer As New Smtp() 
mailer.SmtpServers.Add("mail.domain.com", "jdoe@domain.com", "secret").AuthPopBeforeSmtp = True
...
mailer.Send()
 
如果服务器名称不同(例如POP3的POP.domain.com和SMTP的smtp.domain.com)或POP3端口是非标准的,请在连接到SMTP服务器之前使用AuthPopBeforeSmtp方法。
C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("smtp.domain.com");
mailer.AuthPopBeforeSmtp("pop.domain.com", 110, "jdoe@domain.com", "secret");
...
mailer.Send();                                                       
VB.NET:
Dim mailer As New Smtp() 
mailer.SmtpServers.Add("smtp.domain.com")
mailer.AuthPopBeforeSmtp("pop.domain.com", 110, "jdoe@domain.com", "secret")
...
mailer.Send()
 
注意:POP-before-SMTP验证完成后,你无需再调用Login方法。Login方法仅执行ESMTP认证。
MailBee还支持Windows集成身份验证(使用当前记录的Windows用户的凭据登录)。例如:
C#:
Smtp mailer = new Smtp();
mailer.SmtpServers.Add("smtp.domain.com", null, null, AuthenticationMethods.SaslNtlm);       
VB.NET:
Dim mailer As New Smtp() 
mailer.SmtpServers.Add("smtp.domain.com", Nothing, Nothing, AuthenticationMethods.SaslNtlm)
 
如果你开发的是在匿名IIS或ASP.NET用户文本中运行的ASP.NET应用程序(因为当前记录的用户是IIS用户而不是使用该应用程序的人员),那么你无法使用它。
未发布 网络安全工具FileAudit更新v5.5 Beta版本,新增访问事件
by Harriet666 keys 分享 1514279161521
FileAudit可用于对Windows服务器上文件和文件夹的所有访问进行主动跟踪、审核、报告和警告。
 
 
FileAudit v5.2新功能

新增:
  • 新视图 - 特定用户执行的访问事件。
  • 新视图 - 在特定路径/文件上执行的访问事件。
  • 新视图 - 通过双击事件中的细节。
  • 安装文件夹中提供的新工具(FileAuditReporter)来访问归档数据库。
  • 不通过邮件发送就能生成预定的报告。
  • 可以选择保存计划报告的文件夹。
  • 能够保存所有预定报告的历史记录。
  • 可以在更改远程连接设置时重新启动FileAudit服务。
  • 发送通知到Slack。
  • 在“设置”部分保存系统。
  • 在生成预定报告出现错误时时发出警告通知。
  • 根据用户权限,访问未被授权时,仪表板中的Tiles将变灰。
修复:
  • 如果FileAudit只有一个管理员,可能会拒绝任何人访问控制台。
  • 在用户过滤器中排除用户的语法与用于排除组过滤器中的组的语法不一致。
  • 文件访问查看器中的对象类型筛选器和法语版本中的预定报告不能正确筛选。
  • 安装.exe文件的详细信息有不正确的版权信息。
  • 程序和功能”窗口对话框中的字段是错误的。
  • 使用远程控制台访问“文件访问查看器”时没有“配置设置”权限会出现异常。

未发布 Xmanager Enterprise网络通讯工具更新合集
by Harriet666 keys 分享 1508924928131
Xmanager Enterprise是完整的网络连接套件,它带有一个高性能PC X服务器,支持OpenGL(GLX)、3d硬件加速、安全终端模拟器、文件传输客户端和LPD打印机服务器。Xmanager 
Enterprise 4使3d X应用程序运行得更快,通过SSH和TELNET来提供安全的远程终端访问,通过SFTP/FTP进行方便的文件传输,使用LPD在本地打印远程文件等。
 
Xmanager Enterprise v5.1243下载>>>
 
Xmanager Enterprise v5.1243更新:
  • 修复:[Xmanager]全屏启动时屏幕闪烁
  • 修复:[Xshell]自动更新会错误地显示用户正在使用最新版本
  • 修复:[Xshell]终端复位时,光标不复位
  • 修复:[Xshell]重命名选项卡有时将名称应用于其他选项卡
  • 修复:[Xshell]反向视频终端转义序列被忽略
  • 修复:[Xshell]当选择新窗口中打开时,将-newtab选项中的新选项卡名称应用于现有选项卡
  • 修复:[Xftp]从连接的会话中打开新终端时,系统将提示用户输入密码
  • 修复:[Xftp]从会话的上下文菜单中调用Xftp始终默认为TCP 22
  • 修复:[Xlpd]资源清理

Xmanager是市场领先的PC X服务器,它能够带来Windows平台下强力的虚拟应用技术。使用Xmanager,能够使安装在远程的基于UNIX系统的X应用程序与一般的Windows应用程序
完全一样。它提供了一个强大的会话管理控制台、易于使用的X应用程序启动器、X服务器概要文件管理工具、SSH模块和用于安全访问的远程高性能PC X服务器及虚拟化的UNIX/Linux
环境。

Xmanager v5.1056下载>>>

Xmanager v5.1056更新:
  • 修复:[Xmanager]全屏启动时屏幕闪烁

Xshell是一个功能强大的终端模拟器,支持SSH、SFTP、TELNET、RLOGIN和SERIAL。它提供业界领先无法替代的性能和特性集。它有许多对企业用户有用的特性,包括:分页式环境
、动态端口转发、自定义键映射、用户定义按钮、VB脚本以及显示2字节字符和支持国际语言的UNICODE终端。
 
Xshell v5.1333下载>>>

Xshell v5.1333更新:
  • 修复:[Xshell]自动更新会错误地显示用户正在使用最新版本
  • 修复:[Xshell]终端复位时,光标不复位
  • 修复:[Xshell]重命名选项卡有时将名称应用于其他选项卡
  • 修复:[Xshell]反向视频终端转义序列被忽略
  • 修复:[Xshell]当选择新窗口中打开时,将-newtab选项中的新选项卡名称应用于现有选项卡

Xftp是一个灵活和轻量级的SFTP / FTP客户端,它主要用于为用户提供通过网络安全的传输文件。它提供了许多强大的功能,比如直接编辑、多窗格、文件夹同步、支持FXP、服务器之
间传输以及集成第三方编辑器。在处理远程文件方面Xftp将为你节省时间和精力。 对于家庭和学校的用户来说,Xftp是免费的。具体情况可参阅家庭和学校用户免费使用许可协议条款和
条件。

Xftp v5.1229下载>>>
 
Xftp v5.1229更新:
  • 修复:[Xftp]从连接的会话中打开新终端时,系统将提示用户输入密码
  • 修复:[Xftp]从会话的上下文菜单中调用Xftp始终默认为TCP 22

Xlpd是一个用于Windows系统的简单的行式打印机后台程序(LDP)和打印作业管理工具。它通过LPD协议从远程服务器接收打印任务并把该打印任务发送至本地打印机。LPD是一个支
持多种操作系统的标准的打印协议,支持包括UNIX、Solaris和Linux等系统。
 
Xlpd v5.1231下载>>>
 
Xlpd v5.1231更新:
  • 修复:[Xlpd]资源清理
未发布 集成的HTTP嗅探器HttpWatch更新至v11.0.19丨附下载
by Harriet666 keys 分享 1506678451146
HttpWatch是一款集成的HTTP嗅探器,为IE和Firefox提供新的方法以查看您网站的负载和运行情况。你可以直接在浏览器中调试由web页面生成的网络流量,而无需切换到一个单独的工具。

【HttpWatch v11.0.19免费下载>>>】

HttpWatch v11.0.19更新内容
v11.0.19更新内容
  • 改进:为IE 11中的F12开发工具的HAR文件的不一致性添加了解决方法,以便在HttpWatch中加载和查看。
  • 修复:在Chrome中请求记录可能会出现计时错误。
v11.0.18更新内容
  • 修复:在Chrome 61中录制时可能会发生“未找到框架”的错误。
未发布 一流的报表产品Nevron Chart for SSRS更新v2016.1丨附下载
by Harriet666 keys 分享 1508311545788

Nevron Chart for SQL Server Reporting Services (SSRS)是一种先进的报表产品,它能为您的报表提供一整套的2D和3D图表类型,高度可自定义的坐标轴,严密的数据集成和无与伦比的视觉效果。其优美的可视化设计器,详尽和完善的设置以及良好的组织架构可以即刻改善您的报表制作体验。Nevron Chart for SSRS是一个不可或缺的图表工具,可广泛用于商务智能,记分卡,演示,科学或者普通报表。

【Nevron Chart for SSRS 2016.1最新版下载】


新热图系列
 
SSRS图表类型的独特功能可以将矩阵显示为高度值,作为从相关调色板中获取的颜色网格。 此外,热图系列可以显示一组交叉指定高程值的等高线(等值线)。
Nevron Vision for SSRS

Nevron Vision for SSRS

极地图的新亚型

极地图包含极地范围和极坐标矢量图子类型。 两个图表子类型允许您分别将一对极坐标可视化为范围或向量。

新表量表

表比例可以可视化特定类别中表示的系列的数据值。 表格行可以用一个系列名称注释,表格列可以用类别名称注释。 此功能对于堆叠和集群条形图非常有用。
Nevron Vision for SSRS

Nevron Vision for SSRS

价值调色板

柱形、面积、平滑区域、范围和高低级系列已被扩展,以支持称为值调色板的功能。 此功能允许您根据其值来对系列的数据点进行颜色编码,以使图表对用户更具视觉吸引力。

条形图

条形图类型支持直方图图子类型,具有用于控制直方图单元范围的许多选项。
Nevron Vision for SSRS
未发布 CAD绘图控件VectorDraw web library (javascript)发布v7.7014.0.5
by Harriet666 keys 分享 1517299853543
VectorDraw web library (javascript)是一个矢量图形库,它不仅能打开CAD图纸,而且能显示任何支持HTML5标准平台上的通用矢量对象,如Windows,安卓,iOS和Linux。无需任何安装,VectorDraw web library (javascript)就可以运行在任何支持canvas标签和Javascript的主流浏览器(Chrome, Firefox, Safari, Opera, Dolphin, Boat等等)中。这意味着可以用DXF,DWG,DGN,VDML等多种格式在任何台式、平板电脑,智能手机和便携式笔记本上展现出你的业务。
 
VectorDraw web library (javascript)免费下载>>>
 

WebJS

新增需求(7.7014.0.1)
  • 70001215 MergeDocument方法支持使用mergeFlags  
新增需求(7.7014.0.5)        
  • 70001249 处理AddBlockFromFile加载
漏洞(7.7014.0.1)
  • 70001204 线路对象捕捉无法运作
  • 70001206 导出到vds脚本时出现异常
  • 70001210 WebGl渲染中的实体影线问题  
漏洞(7.7014.0.5)
  • 70001250 vdConst CloneEntity出现意外
 

Converter

新增需求(7.7014.0.1)
  • 70001217 DGN中unsuported对象的类型
漏洞(7.7014.0.1)
  • 70001212 Textstyle未使用正确的TTF字体导入
漏洞(7.7014.0.5)
  • 70001248 折线的宽度问题
   

Engine

新增需求(7.7014.0.3)
  • 70001231 改进触摸控制
  • 70001234 使用Wrapper检查鼠标是否位于ViewCube内部
  • 70001239 是否可以在OnFilterOsnap事件中获取交集对象
  • 70001241 用webGl 3d模式绘制线条和文本
漏洞(7.7014.0.3)
  • 70001235 版本2000中的DXF导出问题
  • 70001236 在Wire2D模式下,线路抗锯齿功能无法正常工作
  • 70001237 鼠标没有正确渲染
  • 70001238 vdLayout调整大小将引发异常
  • 70001240 AlignToView对象在PDF输出中缩放
  • 70001242 导出多边形为dwg dxf文件格式时出错
漏洞(7.7014.0.4)
  • 70001243 不完整的纸张模型刷新
  • 70001245 当VectorDrawBaseControl WndProc被调用时,出现间歇性崩溃
未发布 格式转换工具PDF Extractor SDK更新至v8.6.0.2911,修复对比度预处理过滤器
by Harriet666 keys 分享 1501752886016
PDF Extractor SDK是一款可以转换PDF为文本,CSV,XML,从PDF文件中提取图像和信息的多功能工具包。
 
【PDF Extractor SDK点击下载>>>】
 
PDF Extractor SDK v8.6.0.2911更新内容:
  • XMLExtractor,JSONExtractor,HTMLExtractor:添加了KeepOriginalFontNames属性。
  • TextComparer:添加GetChanges()方法以获得比较结果,方便进行程序化分析。
  • DocumentRotator:现在可以指定要旋转的页面。
  • TextExractor.ExtractColumnByColumn属性现在影响Find()方法。
  • 修复SearchResult元素中的字体名称。
  • 修复对比度预处理过滤器。
  • 修复下标和上标文本对象与正常文本合并的问题。
  • 其他小修改和改进。
未发布 图形图像处理控件ImageGear for .NET v22.2发布,增加新的简化示例
by Harriet666 keys 分享 1493192003612
轻松地为程序添加扫描/压缩/条形码识别/PDF/文件查看与处理/图形编辑与处理等功能。
ImageGear for .NET是一款图形图像处理控件,具有扫描,压缩,浏览、添加注释,打印,图像编辑,OCR以及PDF和矢量图像支持,使开发人员可以快速地开发出图像处理程序,可用于.NET Framework2.0、3.0、3.5、4.0,ASP.NET,WPF,SilverLight,DirectX 10和Direct3D 10。支持超过100种图片格式,包含:TIFF, JPEG, CAD, Vector, 3D PDF, PDF/A, PS等。
 
 ImageGear for .NET v22.2最新版点击下载>>>
 
ImageGear for .NET v22.2更新内容

改进:
  • ImageGear .NET v22.2在以下功能领域添加了一组新的简化示例,支持Visual Studio 2010和Visual Studio 2015:
    ▪ 注解
    ▪ 转换
    ▪ 图像处理和清理
    ▪ 元数据
    ▪ 医疗/ DICOM
    ▪ OCR
    ▪ PDF Security(以及如何“PDF Security”的新部分)
    ▪ 扫描
    ▪ 查看
  • 所有原始示例仍然可用。
  • 进一步完善了“如何使用...”的内容,您可以更容易找到所需的内容。
修复:
  • 在ImageGear for .NET v22.2中为32位和64位版本添加的修复程序如下:
  • 001-00-014589:修复了打开DOCX文件时System.ArgumentOutOfRange出现异常的问题。
  • 001-00-014384:修复了PageView KeyDown事件在WPF中没有触发的问题。
  • 001-00-013726:PDF页面在SVG中可以正确地呈现。
  • 001-00-013973:修复了使用WPF缩略图/向量样本调整图像大小时出现的问题。
  • 001-00-013734:修复了矢量样本中的问题,其中FIT_TO_HEIGHT在调整大小时会导致空白屏幕。
  • 001-00-012898:添加文档用以阐明如何处理识别对象。
  • 001-00-012099:添加文档用以阐明如何将识别组件添加到Web项目中。
  • 001-00-012265:修复了阻止用户将ImGearARTRectangle边框设置为0的问题。
  • 001-00-014586:修复了光栅化绘图算法,在加载某些Word文档时不会出现NullReferenceException。
注意:ImageGear for .NET文档提供了有关所有平台和.NET框架版本的信息。但是,并不是所有功能都可用于所有ImageGear for .NET版本,TWAIN和FreqIP仅支持32位平台。

基于浏览器的客户端图像浏览器Prizm ActiveX Viewer在线订购专享8折!

未发布 安全预警:Xshell 5.0 Build 1322官方版本被植入后门,请尽快更新至最新版本
by Harriet666 keys 分享 1502703358521
知名服务器终端管理软件Xshell在7月18日发布的5.0 Build 1322官方版本被植入后门,用户下载、更新到该版本均会中招。危害正在评估中,或可能窃取用户设备信息。
 
Xshell是一款功能强大的服务器终端管理软件,支持SSH1、SSH2、TELNET等协议,由国外公司NetSarang开发,在运维、站长、安全等圈子里有极多受众。
 
NetSarang公司在8月7日发布安全公告,称其最近更新(7月18日)的Xmanager Enterprise、Xmanager、Xshell、Xftp、Xlpd五款软件存在安全漏洞,官方已于8月5日紧急修复,并发布更新版本。目前暂未发现有人利用过漏洞。
 
五款软件的受影响版本:
Xmanager Enterprise 5.0 Build 1232
Xmanager 5.0 Build 1045
Xshell 5.0 Build 1322
Xftp 5.0 Build 1218
Xlpd 5.0 Build 1220
 
8月5日五款软件发布新版本,更新日志基本一致,都提到修复SSH通道的追踪消息和问题文件nssock2.dll:
FIX: Unnecessary SSH channel trace messages
FIX: Patched an exploit related to nssock2.dll
 
NetSarang公司没有解释漏洞的成因,据了解,很可能是该公司遭遇了入侵,发布版本被植入后门。有国内用户更新到Xshell问题版本,抓包发现该版本的nssock2.dll会向陌生域名(*.nylalobghyhirgh.com)发送畸形DNS请求。问题版本的nssock2.dll带有官方签名,可能是攻击者窃取了NetSarang的签名,或者直接在源码层面进行了植入。


修复方案

NetSarang公司已经发布修复版本,建议该公司产品用户请尽快更新至最新版本,企业网络可将*.nylalobghyhirgh.com域名进行屏蔽。

目前五款软件的最新版本:
Xmanager Enterprise 5 Build 1236下载
Xmanager 5 Build 1049下载
Xshell 5 Build 1326下载
Xftp 5 Build 1222下载
Xlpd 5 Build 1224下载
【示例教程】如何用LEADTOOLS 实现一个简单的STORE SCU存储客户端
by Harriet666 keys 分享 1519722017492
leadtools提供了封装后的dicom插件,可以非常方便的开发出dicom通讯部分的组件,本篇教程讲解如何使用相关的接口进行代码编写,实现Dicom协议中的CStore存储操作。
 
1.用vs2015创建一个winform项目,引用下面的dll,并在代码里引用
using Leadtools;
using Leadtools.Dicom;
using Leadtools.Dicom.Scu.Common;
using Leadtools.Dicom.Scu;
using Leadtools.MedicalViewer;
using System.Net;
using System.IO;
 
2.创建下面的对象
// CStore highlevel 客户端和服务端对象
        private StoreScu _cstore;
        private DicomScp _server = new DicomScp();
 
3.初始化服务器和客户端参数,
本次用的服务器即是开发包中运行pacs服务器设置程序后,创建的L19_PACS_SCP64
private void initServer() {
            _server = new DicomScp();
            _server.AETitle = "L19_PACS_SCP64";
            _server.PeerAddress = IPAddress.Parse("10.32.1.75");
            _server.Port = 534;
            _server.Timeout = 30;
        }
private void initCstore() {
            _cstore = new StoreScu();
            _cstore.AETitle = "L19_CLIENT64";
            _cstore.HostPort = 1030;
            //存储成功后
            _cstore.AfterCStore += _cstore_AfterCStore;
        }
 
4.执行存储命令
private void 存储ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string filename ="D:\\Xa.dcm";
            _cstore.Store(_server, filename);

        }

保存成功后即可在服务器管理器中,或者使用客户端查询已经存储的图像。

 近期热门 - 点击最多
  1. ZOT 极简而强大的 Docker OCI 镜像仓库
  2. 用podman代替docker更轻量更安全的云原生容器:替换国内镜像源web窗口管理及开机自动重新启动
  3. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  4. Node.js 打印vite react+go项目目录树
  5. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  6. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  7. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  8. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  9. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  10. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别

  全端社区 - 最新回复
  1. 本地与云 MQTT通信:消息格式定义与配置
  2. MQTT 桥接(Bridging)介绍:解决弱网可靠传输、断网续传
  3. Mosquitto消息中间件简介与部署:本地MQTT服务器部署
  4. MediaMTX 摄像头部署与配置教程
  5. 在网页上播放摄像头RTSP视频流:实时摄像头在线播放的几种架构
  6. 让Docker在Gitea CI/CD流水线中登录http仓库:手写Docker认证信息
  7. ZOT 极简而强大的 Docker OCI 镜像仓库
  8. 用podman代替docker更轻量更安全的云原生容器:替换国内镜像源web窗口管理及开机自动重新启动
  9. 在无管理员权限的情况下,使用安装Python补全pip临时配置环境变量;即零权限使用node.js/npm
  10. Python鉴权方法:Depends 依赖注入;装饰器;与基于Proxy模式的Session状态管理自动计算脏属性;将用户数据存储在Redis中

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA