华为云用户手册
-
CodeArts Check规则配置功能介绍 打开CodeArts Check窗口,选择“Setting”页签,查看配置。 “CodeArts Check配置”界面功能说明请参见图1和表1。 图1 CodeArts Check配置界面 表1 CodeArts Check配置界面功能说明 序号 功能项 功能描述 1 开启/关闭无感扫描和git提交自动扫描 配置无感扫描:即勾选“代码编辑后保存,是否自动触发代码检查”。扫描完成不影响用户当前作业窗口,修改保存自动扫描、结果自动刷新在CodeArts Check窗口“Defects”页签下区域;取消勾选“代码编辑后保存,是否自动触发代码检查”则关闭该功能。 配置git代码提交时自动扫描:即勾选“代码提交前,是否自动触发代码检查”;取消勾选“代码提交前,是否自动触发代码检查”则关闭该功能。 2 检查模式 无需配置,默认为本地扫描模式。 3 配置扫描排除目录 支持填写相对代码仓的相对目录,例如:一级目录写 目录名,二级目录写 目录1名/目录2名;多个指定目录扫描,可用;号隔开。 不填写目录默认扫描整个项目的所有内容(仅在项目检查时生效)。 4 分类检索 支持规则的搜索或过滤。 5 快速设置规则 支持规则的快速勾选/取消勾选。 6 导入/导出配置规则 将规则详情信息以xlsx格式的文件导出至本地。或将本地准备好的xlsx格式的规则文件导入至工具。
-
CodeArts Check一键格式化及自动修复功能介绍 一键格式化:支持对单文件/多文件/文件夹/整个项目进行一键格式化。一键格式化可帮助您自动解决项目里基础的代码规范问题,如:多余的空格或空行。操作方法如下: 在当前打开的文件代码编辑区或在项目的资源管理器界面里,单击鼠标右键,选择“CodeArts Check一键格式化”。 自动修复:针对插件扫描出来的单个问题,插件提供建议如何修复的预览界面及自动修复。
-
配置CodeArts Check插件 编辑器下方切换到“CodeArts Check”窗口,在底部工具栏单击“Setting”,弹出配置窗口。 单击配置窗口中“规则”左侧的图标可以查看规则详细信息。 根据实际需要确定勾选是否自动触发代码检查,然后输入检查的屏蔽目录和指定的扫描目录。 可以查看当前被激活/应用到的规则(包括状态、危险级别、编程语言、引擎标签、规则类型)或者根据规则集筛选规则(所有规则集/推荐规则集)。 配置后,单击“应用”。
-
修订记录 发布日期 修订记录 2022-06-08 第二十二次正式发布。 新增通过Nginx配置URL转发 新增是否支持动态解析DDNS? 新增怎样查看并修改 域名 的DNS服务器地址? 修改解析不生效怎么办? 修改什么是反向解析? 2022-05-12 第二十一次正式发布。 修改 怎样测试域名解析是否生效?,修改验证解析是否生效的操作步骤。 华为云提供的内网 DNS地址 是多少?,补充“华南-广州-友好用户环境”的内网DNS地址。 2021-11-30 第二十次正式发布。 修改 云解析服务最高支持几级域名?,修改域名级别的描述。 2021-03-12 第十九次正式发布。 新增 域名未备案可以配置解析吗? 2020-06-17 第十八次正式发布。 新增 修改DNS服务器后多久生效? 2020-06-12 第十七次正式发布。 新增 域名转移是否会影响DNS解析? 2020-06-10 第十六次正式发布。 新增 网站无法访问排查思路 修改 为什么域名解析成功但网站仍然无法访问?,补充说明仅部署在中国大陆区域的网站需要备案。 添加记录集时,为什么会提示“与已有解析记录冲突”?,补充冲突示例及解决方案。 是否支持将解析的域名从账号A转移到账号B?,优化内容,补充与域名账号间转移的区别。 2020-05-15 第十五次正式发布。 对常见问题进行分类。 新增 DNS解析线路的优先级顺序是什么? 常用邮箱的解析记录示例 是否支持 动态域名解析 ? 2020-04-20 第十四次正式发布。 修改 如何添加二级域名解析?,补充截图。 2020-02-21 第十三次正式发布。 修改 华为云DNS对用户提供域名服务的DNS服务器地址是什么?,新增NS地址。 2020-01-21 第十二次正式发布。 修改 添加记录集时,为什么会提示“与已有解析记录冲突”?,补充NS和CNAME记录集的冲突限制说明。 2019-10-10 第十一次正式发布。 修改 怎样测试域名解析是否生效?,补充解析生效和不生效的示例。 为什么域名解析成功但网站仍然无法访问?,补充配置步骤。 添加记录集时,为什么会提示“与已有解析记录冲突”?,增加MX和CNAME记录集冲突的处理办法。 2019-09-05 第十次正式发布。 修改 华为云提供的内网DNS地址是多少?,增加“华东-上海一”、“欧洲-巴黎”以及“北美-亚特兰大”区域的内网DNS地址。 增加 是否支持将解析的域名从账号A转移到账号B? 是否支持将域名解析到其他云服务商或者线下机房? 是否支持显性/隐性URL转发功能? 为什么域名解析成功但网站仍然无法访问? 公网解析与内网解析有什么区别? 如何设置内网域名既支持内网解析,也支持公网解析? 内网解析是同区域还是跨区域? 如何添加二级域名解析? 是否同时支持IPv4和IPv6解析? 2019-08-23 第九次正式发布。 修改 华为云提供的内网DNS地址是多少?,更新“亚太-新加坡”区域的内网DNS地址。 2019-04-30 第八次正式发布。 修改 常见问题内容优化更新,涉及页面: 怎样切换内网DNS? 什么是TTL值? 内网DNS并发有什么限制? 2019-03-05 第七次正式发布。 修改 更新界面截图。 华为云提供的内网DNS地址是多少?,增加不同区域内网DNS地址。 2018-11-15 第六次正式发布。 更新界面截图。 2018-09-15 第五次正式发布。 增加 内网DNS并发有什么限制? 修改 更新界面截图。 2018-08-15 第四次正式发布。 修改 更新界面截图。 修改添加记录集的参数“类型”。 华为云提供的内网DNS地址是多少?,增加中国香港区域的内网DNS地址。 2018-06-30 第三次正式发布。 修改 更新界面截图。 修改标签字符集范围。 2018-05-15 第二次正式发布。 修改 怎样通过弹性云服务器的主机名访问弹性云服务器?,修改添加记录集的参数“类型”。 2018-04-10 第一次正式发布。
-
功能总览 表1列出了云解析服务的常用功能。 在使用云解析服务之前,建议您先了解云解析服务的基本概念,以便更好地理解云解析服务提供的各项功能。 表1 云解析服务常用功能 功能分类 功能名称 功能描述 公网域名解析 公网域名 DNS支持为通过域名注册商注册的域名提供Internet网络的解析服务。DNS提供创建、修改、删除、暂停/启用、查看公网域名详情等基本操作。 详细内容,请参见公网域名管理简介。 域名级别 DNS支持创建的域名级别为主域名以及主域名的一级子域名。 如果域名后缀为一级(例如.com),支持创建主域名(例如example.com)、子域名(www.example.com) 如果域名后缀为两级(例如.com.cn),支持创建主域名(例如example.com.cn)、子域名(例如www.example.com.cn) 记录集 记录集是一组资源记录,用于定义域名的解析类型以及解析值。DNS支持为公网域名添加A、CNAME、MX、AAAA、TXT、SRV、NS以及CAA类型的记录集,还支持修改、删除、查看、暂停以及启用记录集。 详细内容,请参见解析管理简介。 找回域名 当域名已经被其他租户创建时,DNS支持域名所有者找回域名。 详细内容,请参见找回域名。 泛解析 DNS支持为主域名的所有子域名添加记录集,为所有子域名提供解析服务。 详细内容,请参见设置域名泛解析。 别名解析 DNS支持将解析记录与华为云服务资源实例(云速建站、 Web应用防火墙 )相关联,为云速建站以及Web应用防火墙实例提供解析服务。 详细内容,请参见设置别名解析。 TTL DNS支持设置解析记录在本地DNS服务器的缓存时间。TTL取值范围:1~2147483647。 权重 DNS支持通过权重比例返回解析记录。 当域名在同一解析线路中有多条同一类型的解析记录时,可以通过“权重”设置解析记录的响应比例。 详细内容,请参见配置权重解析。 批操作 DNS支持批量添加、修改、转移、删除域名列表中的公网域名。 内网域名解析 内网域名 DNS支持创建在关联VPC内生效的内网域名,并为域名提供内网DNS解析服务。DNS提供创建、修改、删除、查看内网域名等基本操作,还支持关联VPC、解关联VPC功能。 内网域名无需注册,可以自由创建。 内网域名在关联VPC内唯一。 详细内容,请参见内网域名管理简介。 关联/解关联VPC DNS支持为内网域名关联或者解关联VPC。 详细内容,请参见为内网域名关联VPC和为内网域名解关联VPC。 记录集 记录集是一组资源记录,用于定义域名的解析类型以及解析值。DNS支持为内网域名添加A、CNAME、MX、AAAA、TXT、PTR以及SRV类型的记录集,还支持修改、删除以及查看记录集。 详细内容,请参见解析管理简介。 泛解析 DNS支持为内网域名的所有子域名添加记录集,为所有子域名提供解析服务。 详细内容,请参见设置域名泛解析。 TTL DNS支持设置解析记录在本地DNS服务器的缓存时间。TTL取值范围:1~2147483647。 批操作 DNS支持批量添加、修改、转移、删除域名列表中的内网域名。 反向解析 反向解析 DNS支持通过弹性IP获取该IP地址指定域名的反向解析服务,常应用于自建邮件服务器场景。DNS提供创建、修改以及删除反向解析。 详细内容,请参见反向解析管理简介。 TTL DNS支持设置解析记录在本地DNS服务器的缓存时间。TTL取值范围:1~2147483647。 批操作 反向解析支持批量导出反向解析 智能线路解析 运营商线路解析 DNS支持根据访问用户所在运营商网络调度到最佳访问地址。 详细内容,请参见配置运营商线路解析。 地域解析 DNS支持根据访问用户所处地理位置调度到最佳访问地址。 详细内容,请参见配置地域解析。 自定义线路解析 DNS支持自定义解析线路,根据访问用户所在IP网段,返回不同的解析结果。 详细内容,请参见配置自定义线路解析。 解析记录 全局搜索记录集 DNS支持集中管理公网域名和内网域名记录集。主要包括: 支持根据记录集状态、记录集类型、域名、记录集的值、记录集ID以及标签等条件搜索公网域名或者内网域名记录集。 支持修改、删除、暂停或者启用公网域名的记录集。 支持修改、删除内网域名的记录集。 详细内容,请参见全局搜索记录集。 批操作 DNS支持对公网域名和内网域名记录集的批操作,包括批量添加、批量删除、批量导入以及批量导出。 详细内容,请参见: 批量添加记录集(仅支持对公网域名操作) 批量删除记录集(仅支持对公网域名操作) 批量导入域名解析记录 批量导出域名解析记录。 快速添加解析 DNS支持为域名快速添加网站解析和邮箱解析。 详细内容,请参见快速添加网站解析和快速添加邮箱解析。 审计 查看审计日志 通过 云审计 ,您可以记录与云解析服务相关的操作事件,便于日后的查询、审计和回溯。 华为云提供查看审计日志功能,支持在云审计服务管理控制台查看或导出最近7天的操作记录。 标签 资源标签 DNS支持为公网域名、内网域名、记录集以及反向解析等资源配置标签,也支持通过标签管理服务的预定义标签功能快速将标签与资源进行关联。 权限 权限管理 您可以使用 统一身份认证 服务 IAM 对您所拥有的云解析服务进行权限管理,以满足企业基于组织划分、职能划分设置不同的访问权限。 华为云支持为云解析服务提供权限管理功能:创建用户并授权使用DNS。 配额 配额调整 为防止资源滥用,云平台限定了各类资源的配额,对用户的资源数量和容量做了限制。如您最多可以创建多少公网域名、内网域名、记录集或者反向解析。 如果当前资源配额限制无法满足使用需要,您可以申请扩大配额。 详细内容,请参见配额调整。
-
创建DDM监控 登录MAS控制台,在“多活管理”页面单击实例(实例所属命名空间类型为同城多活),进入实例控制台。 在页面顶端导航栏选择“监控列表”,单击页面左上角的“新增监控”。 在新增监控页面配置监控基础配置,完成后单击“下一步:数据中心配置”。 图1 新增DDM监控-基础配置 表1 基础配置信息 参数 配置说明 监控 选择需要新增的监控类型,此处请选择“DDM监控”。 应用名称 选择应用列表中创建的应用。 监控器名称 自定义监控器名称。 异常通知设置 默认为“关”。 若设置为“开”: 当监控器或被监控的数据库异常时会及时给用户发送异常通知或告警通知。支持华为 云消息 通知服务,请先配置密钥。 默认将开启 云监控 ,请前往云监控确认是否已创建MAS事件监控告警规则,如已创建请忽略。 是否监控 默认“是”,选“否”则不会探测数据库异常情况。 是否自动切换 默认“是”,选“否”则不会自动切换数据库。 监控用户名 被监控的数据库的用户名。 监控用户密码 被监控的数据库的用户密码。 填写数据中心配置,完成后单击“下一步:数据库配置”。 图2 新增DDM监控-数据中心配置 表2 数据中心配置信息 参数 配置说明 云选择 被监控的DDM数据库部署的环境。 局点 被监控数据库所在区域。 连接地址 DDM数据库的访问地址和端口。 填写数据库配置,完成后单击“下一步:高级配置”。 图3 新增DDM监控-数据库配置 表3 数据库配置信息 参数 配置说明 监控数据库 填写监控数据库的名称。 连接数据库 填写连接数据库的名称。 注意: 建议“连接数据库”和“监控数据库”的名称保持一致,且是被监控数据源中存在的数据库名。 填写高级配置,完成后单击“下一步:确认配置”。 图4 新增DDM监控-高级配置 表4 高级配置信息 参数 配置说明 重试时间间隔 尝试重连时间间隔,以毫秒为单位,默认值3000ms。 输入值必须在1到300000之间,建议使用默认值。 监控超时时间 一个周期内监控器对数据库探测监控的超时时间,超过这个时间,则认为探测数据库失败,监控状态变为监控异常。 以毫秒为单位,默认值40000ms,输入值必须在1到600000之间,建议使用默认值。 说明: 如果您需要修改监控超时时间,监控超时时间建议大于故障时数据中心1的数据同步到数据中心2所需时间,否则切换数据中心后,数据中心2的数据可能存在不完整的情况。 数据库访问超时时间 访问数据库超时时间,超过这个时间认为一次访问数据库失效,以毫秒为单位,默认值3000ms。 输入值必须在3000到100000之间,建议使用默认值。 确认配置无误后单击“立即创建”,完成创建DDM监控。 DDM监控器创建完成后,数据中心的正常监控状态标识为绿色。如果是其他异常状态,可能是监控器信息配置错误或者是监控的数据库本身存在异常,请进行故障排除。
-
remove命令 remove 命令是对已经部署的资源进行移除的操作。 命令解析 参数解析 操作案例 remove function命令 参数解析 操作案例 remove trigger命令 参数解析 操作案例 remove version命令 参数解析 操作案例 remove alias命令 参数解析 操作案例 值得注意的是,资源一旦移除可能无法恢复,所以在使用移除功能时,请您慎重操作。 命令解析 remove function命令 remove trigger命令 remove version命令 remove alias命令 父主题: 删除remove
-
函数下载、推送代码比较流程 鉴于本地代码与远程代码可能存在不同,会存在新代码覆盖老代码的情况,所以当下载、推送时候,都会有弹框提示。 函数 node01 已经存在LOCAL FUNCTION,此时再下载,可能会覆盖本地函数,下载前有提示。 函数 node01 已经存在在REMOTE FUNCTION,不做修改直接推送,远程和本地的代码会比较,提示“代码已经最新”,不必推送。 函数 node01 做出修改,删除第二行的“// hello world”,推送提示如下。 是:直接推送,本地代码将会覆盖远程代码。 否,查看差异:弹出有差异的文件,单击“index.js”打开比较差异的页面,可以看出最新文件少了第二行。右侧图标依次为“继续推送”、“取消推送”、“刷新”、“打开文件”、“放弃修改”,鼠标指针放上均有提示。
-
CodeArts IDE Online本地创建函数 用户在CodeArts IDE Online本地创建函数并完成编辑,再将函数推送到FunctionGraph控制台。以下示例仅供参考,具体请以实际创建函数为准。 在CodeArts IDE Online编辑框的LOCAL FUNCTION打开创建函数。 选择模板,创建函数。 例如选择空模板创建,输入函数名称,比如“kong_new”,单击“创建函数”。 创建成功后,左侧编辑框即可看到刚创建的函数。 在EXPLORER可以看到完整的kong_new函数,其中函数代码只是 “index.js”,其余的都是配置文件,可以不关心。
-
执行结果 执行结果由3部分组成:函数返回、执行摘要和日志。 表21 执行结果说明 参数项 执行成功 执行失败 函数返回 返回函数中定义的返回信息。 返回包含错误信息和错误类型的JSON文件。格式如下: { "errorMessage": "", "errorType":"", } errorMessage:Runtime返回的错误信息 errorType:错误类型 执行摘要 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 显示请求ID、配置内存、执行时长、实际使用内存和收费时长。 日志 打印函数日志,最多显示4KB的日志。 打印报错信息,最多显示4KB的日志。
-
SDK接口 FunctionGraph函数GoSDK提供了Event事件接口、Context接口和日志记录接口。Go SDK下载(Go SDK下载.sha256)。 Event事件接口 Go SDK加入了触发器事件结构体定义,目前支持 CTS 、KAFKA、DIS、DDS、 SMN 、LTS、TIMER、APIG、八种。在需要使用触发器的场景时,编写相关代码更简单。 APIG触发器相关字段说明 APIGTriggerEvent相关字段说明 表1 APIGTriggerEvent相关字段说明 字段名 字段描述 IsBase64Encoded Event中的body是否是base64编码 HttpMethod Http请求方法 Path Http请求路径 Body Http请求body PathParameters 所有路径参数 RequestContext 相关的APIG配置(APIGRequestContext对象) Headers Http请求头 QueryStringParameters 查询参数 UserData APIG自定义认证中设置的userdata 表2 APIGRequestContext相关字段说明 字段名 字段描述 ApiId API的ID RequestId 此次API请求的requestId Stage 发布环境名称 APIGTriggerResponse相关字段说明 表3 APIGTriggerResponse相关字段说明 字段名 字段描述 Body 消息体 Headers 最终返回的Http响应头 StatusCode Http状态码,int类型 IsBase64Encoded body是否经过base64编码,bool类型 APIGTriggerEvent提供GetRawBody()方法获取base64解码后的body体,相应的APIGTriggerResponse提供SetBase64EncodedBody()方法来设置base64编码的body体。 DIS触发器相关字段说明 表4 DISTriggerEvent相关字段说明 字段名 字段描述 ShardID 分区ID Message DIS消息体(DISMessage结构) Tag 函数版本 StreamName 通道名称 表5 DISMessage相关字段说明 字段名 字段描述 NextPartitionCursor 下一个游标 Records 消息记录(DISRecord结构) MillisBehindLatest 保留字段 表6 DISRecord相关字段说明 字段名 字段描述 PartitionKey 数据分区 Data 数据 SequenceNumber 序列号(每个记录的唯一标识) KAFKA触发器相关字段说明 表7 KAFKATriggerEvent相关字段说明 字段名 字段描述 InstanceId 实例ID Records 消息记录(表8) TriggerType 触发器类型,返回KAFKA Region region EventTime 事件发生时间,秒数 EventVersion 事件版本 表8 KAFKARecord相关字段说明 字段名 字段描述 Messages DMS消息体 TopicId DMS的主题ID SMN触发器相关字段说明 表9 SMNTriggerEvent相关字段说明 字段名 字段描述 Record 消息记录集合(SMNRecord结构) 表10 SMNRecord相关字段说明 字段名 字段描述 EventVersion 事件版本(当前为1.0) EventSubscriptionUrn 订阅URN EventSource 事件源 Smn SMN事件消息体(SMNBody结构) 表11 SMNBody相关字段说明 字段名 字段描述 TopicUrn SMN主题URN TimeStamp 消息时间戳 MessageAtrributes 消息属性集合 Message 消息体 Type 消息类型 MessageId 消息ID Subject 消息主题 定时触发器相关字段说明 表12 TimerTriggerEvent相关字段说明 字段名 字段描述 Version 版本名称(当前为“v1.0”) Time 当前时间 TriggerType 触发器类型(“Timer”) TriggerName 触发器名称 UserEvent 触发器附加信息 LTS触发器相关字段说明 表13 LTSTriggerEvent相关字段说明 字段名 字段描述 Lts LTS消息(LTSBody结构) 表14 LTSBody相关字段说明 字段名 字段描述 Data LTS原始消息 LTSBody提供GetRawData()函数返回base64解码后的消息。 CTS触发器相关字段说明 表15 CTSTriggerEvent字段说明 字段名 字段说明 CTS CTS消息体(表16) 表16 CTS结构相关字段说明 字段名 字段描述 Time 事件产生时间 User 触发该事件的用户信息(表17) Request 事件请求内容 Response 事件响应内容 Code 响应码 ServiceType 事件触发的服务名称 ResourceType 事件触发的资源类型 ResourceName 事件触发的资源名称 ResourceId 事件触发资源的唯一标识 TraceName 事件名称 TraceType 事件触发的方式(如ConsoleAction:代表前台操作) RecordTime CTS服务接收事件时间 TraceId 当前事件的唯一标识 TraceStatus 事件状态 表17 User字段说明 字段名 字段描述 Name 用户名(同一账号可以创建多个子用户) Id 用户ID Domain 账号信息(表18) 表18 Domain字段说明 字段名 字段描述 Name 账号名称 Id 账号ID 例如使用APIG触发器时,只需要把入口函数(假如函数名为handler)的第一个参数按照如下方式设置:handler(APIGTriggerEvent event, Context context)。相关约束条件请参考Base64解码和返回结构体的说明。 关于所有TriggerEvent,上面提到的TriggerEvent方法均有与之对应的set方法,建议在本地调试时使用;DIS和LTS均有对应的getRawData()方法,但无与之相应的setRawData()方法。 Context接口 Context接口提供函数获取函数执行上下文,例如,用户委托的AccessKey/SecretKey、当前请求ID、函数执行分配的内存空间、CPU数等。 Context接口说明如表19所示。 表19 Context类上下文方法说明 方法名 方法说明 getRequestID( ) 获取请求ID。 getRemainingTimeInMilligetRunningTimeInSecondsSeconds ( ) 获取函数剩余运行时间。 getAccessKey( ) 获取用户委托的AccessKey(有效期24小时),使用该方法需要给函数配置委托。 说明: 当前 函数工作流 已停止维护Runtime SDK 中getAccessKey接口,您将无法使用getAccessKey获取临时AK。 getSecretKey( ) 获取用户委托的SecretKey(有效期24小时),使用该方法需要给函数配置委托。 说明: 当前函数工作流已停止维护Runtime SDK 中getSecretKey接口,您将无法使用getSecretKey获取临时SK。 getSecurityAccessKey() 获取用户委托的SecurityAccessKey(有效期24小时),使用该方法需要给函数配置委托。 getSecuritySecretKey() 获取用户委托的SecuritySecretKey(有效期24小时),使用该方法需要给函数配置委托。 getSecurityToken() 获取用户委托的SecurityToken(有效期24小时),使用该方法需要给函数配置委托。 getUserData(string key) 通过key获取用户通过环境变量传入的值。 getFunctionName( ) 获取函数名称。 getRunningTimeInSeconds ( ) 获取函数超时时间。 getVersion( ) 获取函数的版本。 getMemorySize( ) 分配的内存。 getCPUNumber( ) 获取函数占用的CPU资源。 getPackage( ) 获取函数组。 getToken( ) 获取用户委托的token(有效期24小时),使用该方法需要给函数配置委托。 getLogger( ) 获取context提供的logger方法(默认会输出时间、请求ID等信息)。 getAlias 获取函数的别名 GetToken()、GetAccessKey()和GetSecretKey()方法返回的内容包含敏感信息,请谨慎使用,避免造成用户敏感信息的泄露。
-
操作步骤 登录Linux云服务器,执行以下命令编辑云服务器SSH连接方式。 vi /etc/ssh/sshd_config 修改如下配置项: 把PasswordAuthentication yes改为PasswordAuthentication no 重启sshd使修改生效。 service sshd restart 重启云服务器。 通过SSH密码方式连接云服务器。 具体操作步骤,请参见SSH密码方式登录。 如果提示连接失败,说明已成功禁用SSH密码访问方式。
-
处理方法一:系统范围设置 以root用户登录云服务器。 执行以下命令,查看操作系统中当前打开的所有文件数和最大打开文件数设置(部分版本默认为366954)。 cat /proc/sys/fs/file-nr cat /proc/sys/fs/file-max 回显输出的第一列表示当前系统中所有打开的文件数。 执行以下命令,更改系统范围的最大打开文件数。 vim /etc/sysctl.conf 按i键进入编辑模式。 在文件末尾添加如下内容,具体的数值可以根据实际情况修改。 fs.file-max = 495000 按ESC键退出,并输入:wq保存配置。 执行以下命令,使修改生效。 sysctl -p
-
多表left join时建议lookup join在所有双流join后 多表left join时建议lookup join在所有双流join后,否则下游有left join LATERAL TABLE时会发生乱序。 图3 多表left join 虽然左表已经定义主键,但是经过lookup join后下游left join时无法推断左流主键,导致左流所有历史数据都存储在状态,右流数据到达后会从最新的状态开始依次回撤左流状态中的每一条数据,经过LATERAL TABLE每一条source数据又与lateral table自关联,数据乱序。 查看打印结果可以看到连续多条“-D”消息,并且最后一条数据错误,因此建议lookup join放在双流join后执行。 图4 连续多条“-D”消息 优化前SQL: select... from t1 left join t2 FOR SYSTEM_TIME AS OF t1.proctime AS t21 on t21.id = t1.id left join t3 on t3.id = t1.id left join LATERAL TABLE(udtf()) AS t4(res1,res2.res3,res4) on true 优化后SQL: select... from t1 left join t3 on t3.id = t1.id left join t2 FOR SYSTEM_TIME AS OF t1.proctime AS t21 on t21.id = t1.id left join LATERAL TABLE(udtf()) AS t4(res1,res2.res3,res4) on true
-
使用char数据类型时指定精度或者改用string类型 使用“cast(id as char)”数据类型转换时,结果只截取第一位,导致数据错误。如果转换字段正好是主键字段则会丢失大量数据。 配置“table.exec.legacy-cast-behaviour=ENABLED”也可以解决转换发生错误的问题,但是不建议使用。 在Flink 1.15之前,可以通过将“table.exec.legacy-cast-behaviour”设置为“enabled”来启用旧版本的类型转换行为。但在Flink 1.15及之后版本中,默认情况下该标志被禁用,将导致以下行为: 转换为CHAR/VARCHAR/BINARY/VARBINARY时禁用修剪/填充操作。 CAST操作永远不会失败,而是返回NULL,类似于TRY_CAST,但不会推断正确的类型。 对于某些转换为CHAR/VARCHAR/STRING的格式化操作,结果可能略有不同。 我们不建议使用此标志,并强烈建议新项目保持禁用该标志并使用新的类型转换行为。该标志将在未来的Flink版本中被移除。 优化前SQL: select cast(id as char) as id, ... from t1 优化后SQL: select cast(id as string) as id, ... from t1
-
多表left join场景下关联键发生改变使用雪花模型代替星型模型 多表left join关联键发生更新时会发生数据乱序,建议右表先关联成一个view,然后再与左表关联。 关联键group_id改变导致“-D”和“+I”乱序,下游根据user_id哈希时虽然进入同一并行度,但是“+I”消息先到,“-D”消息后到,最终写入宽表时记录就会被删除。 优化前SQL: select... from t1 left join t2 on t2.user_id = t1.user_id left join t10 on t10.user_id = t1.user_id left join t11 on t11.group_id = t10.group_id left join t12 on t12.user_id = t1.user_id 优化后SQL: create view tmp_view as( select .. from t10 left join t11 on t11.group_id = t10.group_id ); select... from t1 left join t2 on t2.user_id = t1.user_id left join tmp_view on tmp_view.user_id = t1.user_id left join t12 on t12.user_id = t1.user_id
-
多个Flink作业或者insert into语句写同一张Gauss for MySQL时建议过滤回撤数据 当有多个Flink作业写同一张MySQL表时,其中一个Flink作业发送回撤数据(-D、-U)到目标表删除整行数据,再插入本次更新的数据,导致其他作业写入的字段全部丢失。 优化前SQL: create table source-A( id, user_id )with( 'connector' = 'kafka' ); create table source-B( id, org_id )with( 'connector' = 'kafka' ); create table sink-A( id, user_id )with( 'connector' = 'jdbc' 'url' = 'jdbc:mysql://****', 'table-name' = 'sink-table' ); create table sink-B( id, org_id )with( 'connector' = 'jdbc' 'url' = 'jdbc:mysql://****', 'table-name' = 'sink-table' ); insert into sink-A select id,user_id from source-A; insert into sink-B select id,org_id from source-B; 优化后SQL: create table source-A( id, user_id )with( 'connector' = 'kafka' ); create table source-B( id, org_id )with( 'connector' = 'kafka' ); create table sink-A( id, user_id )with( 'connector' = 'jdbc' 'url' = 'jdbc:mysql://****', 'table-name' = 'sink-table', 'filter.record.enabled' = 'true' ); create table sink-B( id, org_id )with( 'connector' = 'jdbc' 'url' = 'jdbc:mysql://****', 'table-name' = 'sink-table', 'filter.record.enabled' = 'true' ); insert into sink-A select id,user_id from source-A; insert into sink-B select id,org_id from source-B;
-
拆分distinct聚合优化聚合中数据倾斜 通过两阶段聚合能消除常规的数据倾斜,但是处理distinct聚合时性能并不好。因为即使启动了两阶段聚合,distinct key也不能combine消除重复值,累加器中仍然包含所有的原始记录。 可以将不同的聚合(例如 COUNT(DISTINCT col))分为两个级别: 第一次聚合由group key和额外的bucket key进行shuffle。bucket key是使用HASH_CODE(distinct_key) % BUCKET_NUM计算的,BUCKET_NUM默认为1024,可以通过table.optimizer.distinct-agg.split.bucket-num选项进行配置。 第二次聚合是由原始group key进行shuffle,并使用SUM聚合来自不同buckets的COUNT DISTINCT值。由于相同的distinct key将仅在同一bucket中计算,因此转换是等效的。bucket key充当附加group key的角色,以分担group key中热点的负担。bucket key使Job具有可伸缩性来解决不同聚合中的数据倾斜/热点。 【示例】 资源文件配置: table.optimizer.distinct-agg.split.enabled: true table.optimizer.distinct-agg.split.bucket-num: 1024 查询今天有多少唯一用户登录: SELECT day, COUNT(DISTINCT user_id) FROM T GROUP BY day 自动改写查询: SELECT day, SUM(cnt) FROM( SELECT day, COUNT(DISTINCT user_id) as cnt FROM T GROUP BY day, MOD(HASH_CODE(user_id), 1024) ) GROUP BY day
-
多表join场景且join key是联合主键时select字段要显示添加联合主键所有字段 如果不显示select联合主键所有字段,join算子会丢弃部分主键,导致join spec为NoUniqueKey。 优化前SQL: create table table1( uuid varchar(20), name varchar(10), age int, ts timestamp, primary key (uuid) not enforced ) with ( 'connector' = 'datagen', 'rows-per-second' = '1' ); create table table2( uuid varchar(20), name varchar(10), age int, ts timestamp, primary key (uuid, name) not enforced ) with ( 'connector' = 'datagen', 'rows-per-second' = '1' ); create table print( uuid varchar(20), name varchar(10), age int, ts timestamp ) with ('connector' = 'print'); insert into print select t1.uuid, t1.name, t2.age, t2.ts from table1 t1 join table2 t2 on t1.uuid = t2.uuid; 图1 join spec为NoUniqueKey 优化后SQL: create table table1( uuid varchar(20), name varchar(10), age int, ts timestamp, primary key (uuid) not enforced ) with ( 'connector' = 'datagen', 'rows-per-second' = '1' ); create table table2( uuid varchar(20), name varchar(10), age int, ts timestamp, primary key (uuid, name) not enforced ) with ( 'connector' = 'datagen', 'rows-per-second' = '1' ); create table print( uuid varchar(20), name varchar(10), name1 varchar(10), age int, ts timestamp ) with ('connector' = 'print'); insert into print select t1.uuid, t1.name, t2.name as name1, t2.age, t2.ts from table1 t1 join table2 t2 on t1.uuid = t2.uuid; 图2 优化后
-
聚合函数中case when语法改写成filter语法 在聚合函数中,FILTER是更符合SQL标准用于过滤的语法,并且能获得更多的性能提升。FILTER是用于聚合函数的修饰符,用于限制聚合中使用的值。 【示例】在某些场景下需要从不同维度来统计UV,如Android中的UV,iPhone中的UV,Web中的UV和总UV,这时可能会使用如下CASE WHEN语法。 修改前: SELECT day, COUNT(DISTINCT user_id) AS total_uv, COUNT(DISTINCT CASE WHEN flag IN (android', "iphone'") THEN user_id ELSE NULL END) AS app_uv, COUNT(DISTINCT CASE WHEN flag IN(wap', 'other') THEN user_id ELSE NULL END) AS web_uv FROM T GROUP BY day 修改后: SELECT day, COUNT(DISTINCT user_id) AS total_uv, COUNT(DISTINCT user_id) FILTER (WHERE flag IN ('android', 'iphone')) AS app_uv, COUNT(DISTINCT user_id) FILTER(WHERE flag IN ('wap', 'other'))AS web_uv FROM T GROUP BY day Flink SQL优化器可以识别相同的distinct key上的不同过滤器参数。例如示例中三个COUNT DISTINCT都在user_id列上。Flink可以只使用一个共享状态实例,而不是三个状态实例,以减少状态访问和状态大小,在某些工作负载下可以获得显著的性能提升。
-
慎用正则表达式函数REGEXP 正则表达式是非常耗时的操作,对比加减乘除通常有百倍的性能开销,而且正则表达式在某些极端情况下可能会进入无限循环,导致作业阻塞。推荐首先使用LIKE。正则函数包括: REGEXP REGEXP_EXTRACT REGEXP_REPLACE 【示例】 使用正则表达式: SELECT * FROM table WHERE username NOT REGEXP "test|ceshi|tester' 使用like模糊查询: SELECT * FROM table WHERE username NOT LIKE '%test%' AND username NOT LIKE '%ceshi%' AND username NOT LIKE '%tester%'
-
UDF嵌套不可过长 多个UDF嵌套时表达式长度很长,Flink优化生成的代码超过64KB导致编译错误。建议UDF嵌套不超过6个。 【示例】UDF嵌套: SELECT SUM(get_order_total(order_id)) FROM orders WHERE customer_id = ( SELECT customer_id FROM customers WHERE customer_name = get_customer_name('John Doe') )
-
四方免费账号登录 在智慧屏PRO首页选择 WeLink 会议,开启会议欢迎页面,随后的隐私页面上单击“同意”,表示认同WeLink会议的协议及申明,单击蓝色字体可查看全文协议描述。 一般情况,用户已在智慧屏登录了华为账号,能直接进入会议主界面。 如果用户在智慧屏没有登录华为账号,则会弹出扫码登录华为账号的界面。通过手机扫码或是账号登录界面,即可登录华为账号。 若用户的华为账号没有绑定手机号,则会跳出确认弹窗。 单击“确认”后输入手机号码进行绑定,绑定成功后进入会议主界面。 父主题: 登录会议
-
会中共享 进入会中界面,单击会控栏中的“共享”可根据需要选择共享内容并发起共享。 共享投屏:根据会中界面的提示步骤使用华为云会议客户端投屏到SmartRooms后,可将投屏内容共享给其他与会者。 投屏步骤可参考: 打开华为云会议客户端,确保发起投屏的设备与SmartRooms保持在同一个网络。 单击PC端主界面右上角或移动端主界面右上角,输入投屏码。投屏码在SmartRooms首页、进入“投屏”应用、会中右上角处或单击“共享”时均可查看。 共享桌面:单击“桌面共享”,可在会议中共享本地程序或当前桌面内容。
-
投屏工具栏 投屏到SmartRooms时,可使用投屏工具栏进行截屏批注、停止投屏等操作,更加快捷方便。 打开华为云会议客户端,单击PC端主界面右上角或移动端主界面右上角,输入投屏码。 投屏码在SmartRooms首页、进入“投屏”应用、会中右上角处或单击“共享”时可查看。 请确保发起投屏的设备和SmartRooms保持在同一网络。 PC端投屏后,在SmartRooms的投屏界面单击底部小箭头,展开投屏工具栏。 单击“截屏批注”可截取当前屏幕到白板中进行批注。 单击“控制屏幕”可在SmartRooms控制PC端屏幕。 单击“停止投屏”可退出投屏。
-
邀请入会 扫码邀请:单击“邀请”按钮,使用微信或者浏览器扫码时,您可在浏览器上选择拉起华为云会议移动端入会或者通过浏览器分享入会链接。 使用华为云会议移动端扫码时,在弹框页面上显示会议详情,以及“加入会议”或“分享会议”按钮,您可根据需要进行选择。 通讯录邀请:单击“邀请”按钮,选择“通讯录邀请”,可从“组织架构”中添加与会者。 复制会议信息:单击会议ID显示会议详情,一键复制会议信息邀请他人入会。 与会者列表进行邀请:单击与会者列表“邀请”按钮,选择邀请方式—扫码邀请/通讯录邀请。
-
安装 预置华为云会议SmartRooms 当您购买了华为云会议SmartRooms智能协同大屏,发货之前我们将会预装好SmartRooms软件,您无需重新下载安装,打开激活即可使用。 目前预置华为云会议SmartRooms的设备有MAXHUB华为云会议SmartRooms专款、海信华为云会议SmartRooms专款。 下载安装华为云会议SmartRooms 若您的硬件设备为Windows系统,下载安装华为云会议SmartRooms Windows客户端,即可激活使用。 SmartRooms官方认证的硬件设备范围请参考华为云会议认证硬件设备。 在硬件设备上使用浏览器进入华为云会议SmartRooms下载页面,单击“立即下载”,下载“SmartRooms_Win”安装包。 双击“SmartRooms_Win”安装包,根据提示完成安装后,打开SmartRooms客户端激活即可使用。 非华为云会议认证硬件设备推荐配置如下: CPU:Intel® Core™ i5,6核或以上 内存:双通道,8G或以上 硬盘:128G或以上 操作系统:Windows10,1809版本或以上
-
请求示例 批量删除标签,标签键值对为key1和value1,key2和value3。 { "action": "delete", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value3" } ] }
-
请求示例 批量添加标签,标签键值对为key1和value1,key2和value3。 { "action": "create", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value3" } ] }
-
配置运行环境 obsfs的运行环境依赖openssl-devel、fuse、fuse-devel等软件包,运行obsfs之前,您需要通过命令配置其依赖环境。 obsfs支持使用的libfuse版本为2.9.7,2.9.8或2.9.9。如果当前您的libfuse是其他版本,请参考libfuse安装指导进行安装。 您可以通过操作系统自有的查看命令查看libfuse版本,也可以通过以下命令查找libfuse.so以获得当前已安装版本。 find / -name libfuse.so* CentOS 7 yum install -y openssl-devel fuse fuse-devel Ubuntu 16 apt-get install -y libfuse-dev libcurl4-openssl-dev
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- ...
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章