华为云用户手册
-
响应示例 状态码为 200 时: 请求成功。 { "roles": [ { "domain_id": null, "flag": "fine_grained", "description_cn": " 应用运维管理 服务只读权限", "catalog": " AOM ", "name": "system_all_30", "description": "AOM read only", "id": "75cfe22af2b3498d82b655fbb39de498", "display_name": "AOM Viewer", "type": "XA", "policy": { "Version": "1.1", "Statement": [ { "Action": [ "aom:*:list", "aom:*:get", "apm:*:list", "apm:*:get" ], "Effect": "Allow" } ] } } ] }
-
数值递减 需要先定义一个整数变量,可按填写的值进行递减。例如,先定义参数data为整数10,数值递减值为2,递减后可以得到data的值为8,如果放在循环内执行,可以得到递减次数为循环次数的数值data。 输入参数 用户配置数值递减执行动作,相关参数说明请参考数值递减输入参数说明。 表4 数值递减输入参数说明 参数 说明 变量名 选择参数类型(暂无数据)。 值 设定参数的预设值。 输出参数 该执行动作无输出参数。
-
变量赋值 使用变量赋值前需进行变量的定义,即在“初始化变量”动作定义完成后,变量赋值的侧边栏参数“变量名”的下拉列表中才能选取到参数。在变量名的最右侧会展示变量的类型。 输入参数 用户配置变量赋值执行动作,相关参数说明请参考变量赋值输入参数说明。 表6 变量赋值输入参数说明 参数 说明 变量名 选择参数类型(暂无数据)。 值 设定参数的预设值。通过填入值,实现对该参数值的改动。 输出参数 该执行动作无输出参数。
-
变量定义 输入参数 用户配置初始化变量执行动作,相关参数说明请参考初始化变量输入参数说明。 表5 变量定义参数说明 参数 是否必选 说明 示例 变量名 是 用于指定将要命名的变量的名称。 re 类型 是 变量的类型。目前包含字符串、整数、布尔、浮点数、数组、对象。 字符串 整数 布尔 浮点数 数组 对象 值 否 用于指定该变量的值。 这是一句话 12345 true 3.1415 [1,2,3,4,5] {"key":"value"} 输出参数 该执行动作无输出参数。
-
对象存储服务 Octopus服务使用对象存储服务(Object Storage Service, 简称OBS)存储原始Rosbag数据以及预处理后的视频、抽帧图片等数据,实现安全、高可靠和低成本的存储需求。OBS的更多信息请参见《对象存储服务控制台指南》。 表1 Octopus各环节与OBS的关系 功能 子任务 Octopus与OBS的关系 数据资产 地图管理 高精地图上传后存储在OBS中。 标定管理 传感器标定上传的标定文件存储在OBS中。 数据场景 场景挖掘后切出的rosbag片段存储在OBS中。 数据集 数据集存储在OBS中。 数据集的标注信息存储在OBS中。 模型管理 模型文件存储在OBS中。 通用存储 支持数据导出存储在OBS中。 数据处理 数据批导 支持导入OBS存储数据,支持实时扫描数据在OBS客户端操作。 数据处理 数据处理后的结果存储在OBS中。 标注服务 项目管理 标注的图片、点云数据存储在OBS中。 标注信息数据、标注规范存储在OBS中。 标注任务日志和审核报告存储在OBS中。 训练服务 算法管理 算法文件存储在OBS中。 训练任务 训练产物、训练任务日志存储在OBS中。 模型评测 评测脚本文件、评测产物、评测任务日志存储在OBS中。 编译管理 编译产物、编译任务日志存储在OBS中。 仿真服务 场景管理 场景文件存储在OBS中。 逻辑场景管理 逻辑场景的参数空间敏感性分析文件存储在OBS中。 并行仿真 仿真结果存储在OBS中。 智驾模型服务 2D图像生成 获取OBS访问授权,生成的2D图像存储在OBS中。 模型微调 获取OBS访问授权,模型微调使用的训练数据集从OBS中获取。
-
方式二:使用OBS Browser+校验下载对象的一致性 OBS Browser+默认关闭MD5校验,在OBS Browser+上启用MD5校验一致性并下载对象的步骤如下: 登录OBS Browser+。 单击客户端右上方的,并选择“高级设置”。 勾选“MD5校验”,如图4所示。 图4 配置MD5校验 单击“确定”。 选择待下载文件的桶,下载文件。 如果MD5校验成功,则文件下载成功。 如果MD5校验失败,则文件下载失败,且在任务管理中提示失败原因:校验文件MD5失败。
-
方式三:使用OBS SDK校验下载对象的一致性 OBS SDK对待下载对象的自定义元数据中的MD5值和下载到本地的对象的MD5值进行对比,通过对比结果判断下载对象的一致性。 该功能的前提是对象自定义元数据中必须有MD5值字段,并且该字段表示的意思是原始对象的MD5值,否则取值会为空或者校验失败。 上传过程中设置MD5值到自定义元数据中的示例代码请参考方式三:使用OBS SDK校验上传对象的一致性。 此处以使用OBS Java SDK下载mytestbucket桶中一个名为test.txt的文本文件为例,下载过程使用MD5值校验数据一致性的示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 String endPoint = "https://your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量AC CES S_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 final ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 获取对象的MD5值 ObjectMetadata metadata = obsClient.getObjectMetadata("mytestbucket", "test.txt"); String md5Origin = metadata.getUserMetadata("contentMd5"); // 计算下载后对象的MD5值 Obsobject obsobject = obsClient.getObject("mytestbucket", "test.txt"); String md5Download = obsClient.base64Md5(obsobject.getObjectContent()); // 对比MD5值 if(md5Origin.contentEquals(md5Download)) System.out.println("Object MD5 validation passes!\n"); else System.out.println("Object MD5 validation failed!\n");
-
方式一:使用obsutil校验下载对象的一致性 obsutil支持在下载对象时通过附加参数(vmd5)来校验下载数据的一致性。 以在Windows操作系统下载mytestbucket桶中的test.txt文件至本地为例,开启数据一致性校验的步骤如下: 执行以下命令,检查待下载对象是否具有MD5信息。 obsutil stat obs://test-bucket/test.txt 返回的对象基本信息中,包含MD5信息,如下图所示,执行步骤2。 不包含MD5信息,下载对象时无法进行一致性校验。 执行以下命令,下载对象。 obsutil cp obs://mytestbucket/test.txt D:\test.txt -vmd5 对象下载成功且通过一致性校验,回显信息如下: 如果桶中对象没有MD5值,对象能够下载成功,但不会校验一致性,回显信息如下:
-
方式二:使用OBS Browser+校验上传对象的一致性 OBS Browser+默认关闭MD5校验,在OBS Browser+上启用MD5校验一致性并上传对象的步骤如下: 登录OBS Browser+。 单击客户端右上方的,并选择“高级设置”。 勾选“MD5校验”,如图3所示。 图3 配置MD5校验 单击“确定”。 选择待上传文件的桶,上传文件。 如果MD5校验成功,则文件上传成功。 如果MD5校验失败,则文件上传失败,且在任务管理中提示失败原因:校验文件MD5失败。
-
方式三:使用OBS SDK校验上传对象的一致性 OBS提供Java、Python等多种语言的SDK,各SDK通过在上传对象时设置对象的Content-MD5值以开启一致性校验。如何计算并设置对象MD5值请前往OBS SDK参见各自开发指南的setObjectMetadata接口。 此处以使用OBS Java SDK上传Windows本地D盘一个名为text.txt的文本文件至mytestbucket为例,上传过程使用MD5值校验数据一致性的示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 String endPoint = "https://your-endpoint"; // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。 // 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html String ak = System.getenv("ACCESS_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 创建ObsClient实例 ObsClient obsClient = new ObsClient(ak, sk, endPoint); // 计算并设置MD5值 ObjectMetadata metadata = new ObjectMetadata(); File file = new File("D:\\text.txt"); FileInputStream fis = new FileInputStream(file); InputStream is = (InputStream)fis; String contentMd5 = obsClient.base64Md5(is); metadata.setContentMd5(contentMd5); // 带MD5值上传文件 obsClient.putObject("mytestbucket", "text.txt", file, metadata); 对象数据的MD5值必须经过Base64编码。 OBS服务端会将该MD5值与对象数据计算出的MD5值进行对比,如果不匹配则上传失败,返回HTTP 400错误。如果匹配,对象上传成功,返回HTTP 200状态码。
-
方案架构 OBS提供通过计算MD5值的方式对上传下载的数据进行一致性校验。默认情况下,OBS不会进行一致性校验,您可以通过以下方式在上传下载时主动启用校验。 各种方式的一致性校验结果互通,即无论您使用以下何种方式在上传时通过了一致性校验,都可以使用其他方式在下载时校验一致性。 下载对象时,只有当待下载对象具有MD5值时,MD5校验才会生效。 启用MD5进行数据一致性校验会影响上传下载性能。 表1 校验数据一致性的方式 方式 说明 操作指导 obsutil 命令行工具,可以通过简单的一行命令实现上传下载,并且在命令中选择是否采用MD5校验。 使用obsutil校验上传对象的一致性 使用obsutil校验下载对象的一致性 OBS Browser+ 图形化界面工具,可以一键开启或关闭MD5校验,同时提供任务管理,方便查看校验状态。 使用OBS Browser+校验上传对象的一致性 使用OBS Browser+校验下载对象的一致性 OBS SDK 开发者可以通过OBS SDK进行二次开发,自行判断MD5校验结果,并根据实际业务进行结果处理。 使用OBS SDK校验上传对象的一致性 使用OBS SDK校验下载对象的一致性 上传对象时,OBS会先在客户端计算出对象的MD5值然后携带上传至OBS,OBS服务端再根据上传的对象内容计算出MD5值,最终与携带上传的MD5值进行对比,如果对比结果一致,对象上传成功,否则上传失败。使用MD5值对上传数据进行一致性校验的示意图如图1所示。 图1 校验上传对象的一致性 下载对象时,OBS会将对象已有的MD5值与根据下载的对象内容计算出来的MD5值进行对比,如果对比结果一致,对象下载成功,否则下载失败。使用MD5值对下载数据进行一致性校验的示意图如图2所示。 图2 校验下载对象的一致性
-
方式一:使用obsutil校验上传对象的一致性 obsutil支持在上传对象时通过附加参数(vmd5)来校验数据的一致性。 以在Windows操作系统上传本地一个位于D盘的test.txt文件至mytestbucket桶为例,开启一致性校验的命令示例如下: obsutil cp D:\test.txt obs://mytestbucket/test.txt -vmd5 校验通过后,对象上传成功,系统显示Upload successfully的回显信息。
-
操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件配置”。 在“组件配置”页面上方的下拉框中选择需要操作的组件。 图1 选择组件 单击“ 云存储 配置”模块中的“编辑”,进入云存储配置页面。 单击选择“配置存储桶”。 图2 配置存储桶 从下拉框中选择已授权的存储桶名称。 如需新增授权,可以单击下拉框右侧“去授权云存储桶”进行添加,具体操作请参考授权存储桶。 参考表1配置容器挂载的路径和权限。 表1 参数说明 参数 说明 文件掩码 挂载文件的文件掩码(umask)。 输入取值范围为0-7的四位数字。 默认值:0027。 说明: umask即user file-creation mask,表示用户创建文件的掩码,用来控制创建文件的权限。 在CAE云存储配置中设置umask可以控制挂载目录和文件的权限,如0027,表示设置挂载目录权限为750,挂载文件权限为640。 挂载路径 数据存储挂载到组件上的路径。 例如:在OBS存储桶“test-nginx”的中存储了文件index.html,如需引用此文件,则子路径输入index.html。 说明: 数据存储挂载到容器上的路径,请不要挂载到系统目录下,如“/”、“/var/run”等,否则会导致容器异常。 云存储的挂载路径不能重复。 子路径 数据所引用的云存储内的子路径。 说明: 使用子路径挂载本地磁盘,实现在单一Pod中重复使用同一个Volume。 不填写时默认挂载根路径。 权限 挂载路径及挂载路径下文件,有“读写”、“只读”两种权限。 图3 存储桶配置 (可选)单击“添加挂载路径”,可配置多条挂载路径。 单击“确定”,完成存储桶配置。 在“云存储配置”页面中可查看配置好的存储桶。 使配置生效。 如已完成组件部署,单击页面上方“生效配置”。在右侧弹框中确认配置信息,并单击“确定”,使配置生效。 如未完成组件部署,单击页面上方“配置并部署组件”,在右侧弹框中单击“确定”,待部署执行完成后,配置生效。
-
操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件列表”。 选择待操作组件,在“操作”列“更多”下拉框单击“编辑”。 参考下表重新设置组件信息。 参数 类别 说明 组件名称 - 新建组件的名称。 版本号 - 组件的版本号。 格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 实例规格 - 选择实例规格,例如:0.5core、1GiB;1core、1GiB;1core、2GiB;2core、4GiB等。 实例数量 - 实例数量默认为2,最少为1,最大值为99。 代码源 源码仓库 选择源码来源。本服务支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 将代码信息补充完整。 授权信息:从下拉框中选择对应的源码授权信息。如果您是首次使用该功能,在下拉框右侧单击“新建授权”,填写“授权名称”和选择“授权方式”,单击“确认”完成授权。单击“授权列表”可查看当前已创建的授权信息,选中列表前方复选框,可对已授权源码进行“重新授权”或“删除”。 用户名/组织:选择源码对应的用户名称或组织,用于当前项目的代码管理。 仓库名称:用于当前项目下各个模块代码的管理。 分支:选择对应的分支,用于开发对代码的管理。 语言/运行时:从下拉框中选择源码对应的语言格式。 自定义构建:构建命令可根据业务需要选择“使用默认命令或脚本”或“使用自定义命令”。 说明: 不同源码来源新建授权时授权方式不同,请按照实际情况进行选择。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法构建,如Java:mvn clean package。 使用自定义命令:根据所选语言自定义构建命令;或修改build.sh文件后选择使用默认命令或脚本。 Dockerfile:组件来源是“源码仓库”时,根据业务需要设置。支持“自定义”和“系统默认”。 说明: 仅当“运行时”选择java时,可选择“系统默认”。 Dockerfile地址:当“Dockerfile”选择“自定义”时可设置。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 Docker程序通过读取Dockerfile文件生成定制的镜像。 dockerfile地址只能包含字母、数字及.-_/且字符长度在1~255范围内的内容。 如果文件名为Dockerfile,允许只填写目录地址,但目录地址必须以/结尾。 制品文件名:当“Dockerfile”选择“系统默认”时可设置。 maven构建生成多个jar包时,选取指定的jar包运行,以".jar"结尾,支持模糊匹配,如:demo-1.0.jar,demo*.jar 镜像 用户可以通过“客户端上传镜像”和“页面上传镜像”两种方式上传镜像包。 在“我的镜像”、“开源镜像”或者“共享镜像”中选择已上传的镜像包部署。可通过镜像名称搜索镜像。 我的镜像:用户自定义上传的镜像包 开源镜像: 容器镜像服务 SWR中提供的开源镜像 共享镜像:不同账号之间共享的镜像包 (可选)用户还可以通过单击“代码源”右侧链接,前往容器 镜像服务 SWR控制台对镜像进行更多管理操作。 说明: 选择“页面上传镜像”时,单次仅支持添加1个镜像压缩包,文件大小(含解压后)不得超过2GB,支持tar、tar.gz格式,仅支持上传1.11.2及以上容器引擎客户端版本制作的镜像压缩包,制作过程详见制作镜像压缩包。 如需上传大于 2GB的文件,请使用“客户端上传镜像”。 软件包 选择软件包位置“CodeArts件发布库”或“OBS对象存储选择”。 从“CodeArts软件发布库”选择对应软件包时,需要提前将软件包上传至软件发布库,相关操作请参考上传软件包。 从“OBS对象存储选择”中选择对应软件包时,需要先将软件包上传至OBS对象存储桶内,具体操作请参考上传对象。 语言/运行时:从下拉框中选择软件包对应的语言格式。 构建方式:根据业务需要选择“系统默认”或“自定义Dockerfile”。 使用“系统默认”:根据语言/运行时使用默认Dockerfile构建。 使用“自定义Dockerfile”:根据所选语言自定义Dockerfile内容构建。 单击“完成编辑”。
-
操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件配置”。 在“组件配置”页面上方的下拉框中选择需要操作的组件。 图1 选择组件 单击“云存储配置”模块中的“编辑”,进入云存储配置页面。 单击选择“配置并行文件系统”。 图2 配置并行文件系统 从下拉框中选择已授权的并行文件系统名称。 如需新增授权,可以单击下拉框右侧“去授权并行文件系统”进行添加,具体操作请参考授权并行文件系统。 参考表1配置容器挂载的路径和权限。 表1 参数说明 参数 说明 文件掩码 挂载文件的文件掩码(umask)。 输入取值范围为0-7的四位数字。 默认值:0027。 说明: umask即user file-creation mask,表示用户创建文件的掩码,用来控制创建文件的权限。 在CAE云存储配置中设置umask可以控制挂载目录和文件的权限,如0027,表示设置挂载目录权限为750,挂载文件权限为640。 挂载路径 数据存储挂载到组件上的路径。 本示例使用“nginx”默认路径“/usr/share/nignx/html”。 说明: 数据存储挂载到容器上的路径,请不要挂载到系统目录下,如“/”、“/var/run”等,否则会导致容器异常。 云存储的挂载路径不能重复。 子路径 数据所引用的云存储内的子路径。 例如:在OBS并行文件系统“test-nginx”的test文件夹中存储了文件index.html,如需引用此文件,则子路径输入test/index.html。 说明: 使用子路径挂载本地磁盘,实现在单一Pod中重复使用同一个Volume。 不填写时默认挂载根路径。 并行文件系统挂载不存在的子路径会异常,需要先在挂载的桶中创建对应文件或文件夹。请参考配置了云存储配置后,为什么实例异常了? 权限 挂载路径及挂载路径下文件,有“读写”、“只读”两种权限。 本示例选择“读写”权限。 图3 配置并行文件系统 (可选)单击“添加挂载路径”,可配置多条挂载路径。 单击“确定”,完成并行文件系统配置。 在“云存储配置”页面中可查看配置完成的并行文件系统。 使配置生效。 如已完成组件部署,单击页面上方“生效配置”。在右侧弹框中确认配置信息,并单击“确定”,使配置生效。 如未完成组件部署,单击页面上方“配置并部署组件”,在右侧弹框中单击“确定”,待部署执行完成后,配置生效。 可通过更新并行文件系统中的静态文件来实时更新Nginx访问页面。具体操作请参考使用CAE托管Nginx静态文件服务器。
-
控制台说明 CAE控制台说明如表1所示。 表1 CAE控制台说明 类别 说明 概览 提供CAE产品的整体看板信息,包含了应用健康度、CPU使用量、并发连接数、Memory使用量、流量、网络流入速率、并发连接数、引擎信息、环境基础信息和网络信息等。 组件列表 提供组件新增、部署、升级等能力,组件是可以部署的自有包或者公共的中间件,对外提供服务。 实例列表 提供实例信息查看、实例删除及通过CloudShell登录容器功能。 组件配置 提供基于组件的中间件配置和运维管理,包括RDS数据库、 微服务引擎CSE 、环境变量、访问方式、伸缩策略、云存储配置,性能管理、自定义监控指标等资源的管理运维。 组件事件 用户可基于组件事件查看组件部署及运行期间发生的事件信息。 组件监控 提供组件监控功能,主要涉及上下行BPS、上下行PPS、文件系统写入/读取速率、CPU和内存使用情况等可视化实时监控。 组件日志 提供实例级别的运行日志,帮助用户定位问题。 系统设置 系统设置当前提供了云存储授权、 域名 配置和证书配置的能力,可查看和解绑已授权的对象存储,进行域名配置和证书配置。还提供了设置启停策略,配置监控系统和事件通知规则等能力。
-
组件说明 CAE中组件支持的语言/运行时如表1所示。 表1 语言/运行时一览 支持的运行时 组件来源 Java8、Java11、Java17 源码仓库、Jar包 Tomcat8、Tomcat9 源码仓库、War包 Node.js8、Node.js14、Node.js16 源码仓库、Zip包 Php7 源码仓库、Zip包 Docker 镜像包 Python3 源码仓库、Zip包 .net core 源码仓库
-
组件来源说明 组件来源 说明 源码仓库 支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 镜像 容器应用需要基于镜像创建,若选择私有镜像,用户首先需要将镜像上传至镜像仓库。支持以下上传方式: 直接通过“客户端上传镜像”和“页面上传镜像”上传镜像包。 前往容器镜像服务SWR控制台将镜像上传至镜像仓库,相关操作请参考上传镜像。 软件包 支持以下上传方式: 从CodeArts软件发布库选择对应软件包。需要提前将软件包上传至软件发布库,相关操作请参考上传软件包。 从OBS对象存储选择对应的软件包。需要提前将软件包上传至OBS桶中,相关操作请参考上传对象。
-
操作步骤 登录CAE控制台。 在左侧导航栏中选择“组件列表”。 选择待操作组件,在“操作”列单击“升级”,进入升级组件页面。 参考下表设置组件升级后信息。 参数 类别 说明 组件名称 - 升级时不可修改。 版本号 - 组件的版本号。 格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 实例规格 - 选择实例规格,如:0.5core、1GiB;1core、1GiB;1core、2GiB;2core、4GiB等 代码源 说明: 组件升级时,代码源格式有限制,如:镜像部署只能使用镜像升级,jar包部署只能使用jar包升级,war包部署只能使用war包升级; 源码仓库 选择源码来源。本服务支持识别CodeArts、GitHub、GitCode、GitLab、Gitee和Bitbucket来源的代码。 升级时代码信息只支持修改分支。 分支:选择对应的分支,用于开发对代码的管理。 构建方式:构建命令可根据业务需要选择“使用默认命令或脚本”或“使用自定义命令”。 说明: 不同源码来源新建授权时授权方式不同,请按照实际情况进行选择。 使用默认命令或脚本:优先执行代码根目录下的build.sh,不存在则按照所选语言的通用方法构建,如Java:mvn clean package。 使用自定义命令:根据所选语言自定义构建命令;或修改build.sh文件后选择使用默认命令或脚本。 Dockerfile:组件来源是“源码仓库”时,根据业务需要设置。支持“自定义”和“系统默认”。 说明: 仅当“运行时”选择java时,可选择“系统默认”,进行制品文件配置。 Dockerfile地址:当“Dockerfile”选择“自定义”时可设置。 “Dockerfile地址”即Dockerfile文件相对于项目的根目录(./)所在的目录,Dockerfile文件用于镜像构建。 Docker程序通过读取Dockerfile文件生成定制的镜像。 dockerfile地址只能包含字母、数字及.-_/且字符长度在1~255范围内的内容。 如果文件名为Dockerfile,允许只填写目录地址,但目录地址必须以/结尾。 制品文件名:当“Dockerfile”选择“系统默认”时可设置。 maven构建生成多个jar包时,选取指定的jar包运行,以".jar"结尾,支持模糊匹配,如:demo-1.0.jar,demo*.jar 镜像 用户可以通过“客户端上传镜像”和“页面上传镜像”两种方式上传镜像包。 在“我的镜像”、“开源镜像”或者“共享镜像”中选择已上传的镜像包部署。可通过镜像名称搜索镜像。 我的镜像:用户自定义上传的镜像包 开源镜像:容器镜像服务SWR中提供的开源镜像 共享镜像:不同账号之间共享的镜像包 (可选)用户还可以通过单击“代码源”右侧链接,前往容器镜像服务SWR控制台对镜像进行更多管理操作。 说明: 选择“页面上传镜像”时,单次仅支持添加1个镜像压缩包,文件大小(含解压后)不得超过 2 GB,支持tar、tar.gz格式,仅支持上传1.11.2及以上容器引擎客户端版本制作的镜像压缩包,制作过程详见制作镜像压缩包。 如需上传大于 2GB的文件,请使用“客户端上传镜像”。 软件包 选择软件包位置“CodeArts件发布库”或“OBS对象存储选择”。 从“CodeArts软件发布库”选择对应软件包时,需要提前将软件包上传至软件发布库,相关操作请参考上传软件包。 从“OBS对象存储选择”中选择对应软件包时,需要先将软件包上传至OBS对象存储桶内,具体操作请参考上传对象。 构建方式:根据业务需要选择“系统默认”或“自定义Dockerfile”。 使用“系统默认”则根据语言/运行时使用默认Dockerfile构建。 使用自定义Dockerfile:根据所选语言自定义Dockerfile内容构建。 图1 升级组件 单击“立即升级”,完成组件升级。
-
ERP用户指南 SparkPack 企业ERP提供了三种登录模式,分别为标准客户端、WEB客户端以及移动端。其中标准客户端和WEB客户端通过IMC启动SparkPack 企业ERP应用卡片登录。移动端通过下载安装SAP Business One App登录。 标准客户端:拥有ERP完整的业务模块及管理功能,常规的ERP业务操作都使用该模式。 业务功能:请参考《产品介绍》1.2.1的标准客户端业务功能描述。 登录方式:在PC端使用Google Chrome浏览器,登录IMC,点击SparkPack 企业ERP应用卡片后启动标准客户端。首次使用标准客户端时,需要下载并安装SparkPack 企业ERP客户端。 SparkPack 企业ERP客户端版本:华为云RIS客户端7.0.5.195 WEB客户端:主要用来报表分析相关功能查看,有丰富的业务报表供企业决策分析。 业务功能:请参考《产品介绍》1.2.2的WEB客户端业务功能描述。 登录方式:在PC端使用Google Chrome浏览器,登录IMC,点击SparkPack 企业ERP应用卡片后启动WEB客户端。 支持的浏览器:Google Chrome 版本 108.0.5359.125。 移动端:主要用来做审批以及仪表盘相关功能。 业务功能:请参考《产品介绍》1.2.3的移动客户端业务功能描述。 支持的版本: 安卓:SAP Business One Mobile 1.2.17 IOS:SAP Business One Mobile 1.11.23 获取地址:通过如下下载渠道或者联系实施顾问。 安卓手机:请到Google Play上下载。Google Play: https://play.google.com/store/apps/details?id=b1.mobile.android (若无法访问,请联系项目经理获取帮助); 苹果手机:请打开苹果App Store,搜索SAP Business One,链接为SAP Business One on the App Store (apple.com),下载并安装。 登录IMC 默认登录项设置 标准客户端登录 WEB客户端登录 DTW登录 移动端登录 标准客户端hash值校验
-
创建成员 登录AppStage。 登录AppStage控制台,在应用平台控制台总览页,单击“开始使用”。 仅租户开通者可执行此步骤。 登录AppStage。 租户开通者(非华为云账号)、组织成员账号均可执行此步骤。如果一个用户是多个组织的组织成员,则需要选择使用的组织。 单击“创建成员”。 填写成员信息,参数说明如表1所示。如果在用户属性配置中添加了自定义属性,还需根据属性要求填入相关信息。填写完成后,单击“保存”或“保存并继续”。 保存:创建成员结束。 保存并继续:可以继续创建成员。 表1 创建成员参数说明 参数名称 参数说明 成员姓名 成员的姓名。最多可输入20个字符。 成员帐号 管理员为成员设置的账号。输入账号前半部分,并选择组织域名。 账号默认带组织域名后缀,如“zhangsan01@abc.orgid.top”。 手机号 成员的手机号码。非必填项,当邮箱地址未填写时手机号必须填写。 邮箱地址 成员的邮箱地址。非必填项,当手机号未填写时邮箱地址必须填写。 设置密码 管理员为成员设置的账号密码,支持选择“自动生成密码”或“手工输入密码”。 手工输入的密码长度必须超过8位,需要包含数字和英文字母,且不能出现三个连续相同的字符。 说明: 成员首次登录需修改密码。 部门 成员所属部门。 成员工号 成员的工号。 职位 成员所担任的职位。 用户组 选择成员所属的用户组。选择后在用户组列表下会展示该成员信息。 失效时间 设置成员账号的失效时间,到失效时间,系统将自动禁用账号。失效时间设置为空表示长期有效。
-
查看监控指标数据 以采集弹性云服务器的监控指标为例,查看弹性云服务器对应的命名空间、指标ID、维度的Key和Value。 在支持监控的服务列表页面查看对应的监控指标参考文档。 在参考文档中查看命名空间,弹性云服务器对应的命名空间为“SYS.E CS ”。 查看监控指标的指标ID和测量对象(维度),例如监控指标CPU使用率的指标ID为“cpu_util”,测量对象为“云服务器”。 查看维度的Key和Value,云服务器维度的Key和Value分别为instance_id和云服务器ID。
-
步骤四:创建日志配置组 在“容器日志接入”页面,选择左侧导航栏的“日志配置组”。 单击“创建日志配置组”。 设置日志配置组参数,参数说明如表5所示,配置完成后,单击“确定”。 表5 日志配置组参数说明 参数名称 参数说明 日志配置组名称 自定义日志配置组名称。 安装方式 选择安装方式,推荐使用“DAEMONSET”。 命名空间 当安装方式为“DAEMONSET”时,需要配置服务日志命名空间。 命名空间为hostpath的下一级目录名称,该目录下48小时内有日志文件更新,才会拉取日志采集配置,必须为英文名。 日志项目 选择已创建的日志项目。 配置类型 选择配置类型,即创建日志采集配置时选择的配置类型,根据配置类型会过滤采集配置列表中的数据。 采集配置列表 选择需要下发的配置。
-
步骤五:安装日志采集插件 在“容器日志接入”页面,选择左侧导航栏的“集群插件管理”。 在集群列表中单击待安装插件的集群所在行“操作”列的“安装插件”。 在“插件安装”页面配置安装参数,具体内容如下所示,配置完成后,单击“确定”。 输入日志挂载路径:挂载到容器指定挂载点中的容器所在宿主机的文件目录,通常为宿主机上日志文件的hostpath目录。需要设置为单独的文件路径,不能设置为类似于/root、/home等包含有其他文件的目录,并且一个集群只能设置一个挂载路径。 需要对日志挂载路径执行chmod o+rx命令,确保日志采集容器的启动用户拥有该路径的访问权限。 选择主机:选择待安装插件的主机,默认全部勾选进行安装,可以去掉勾选不需要安装插件的主机,且当主机状态为“Active”时才可以正常安装插件。 选择日志配置组:选择日志配置组,安装插件并下发配置。
-
步骤二:创建日志空间 在“容器日志接入”页面,选择左侧导航栏的“日志空间”。 单击“申请实时日志空间”。 根据界面提示填写日志空间参数。 配置实时日志空间信息,参数说明如表2所示,配置完成后,单击“下一步”。 表2 实时日志空间信息参数说明 参数名称 参数说明 空间名称 自定义日志空间名称,建议包含日志类型语义。 空间描述 输入日志空间描述,非必填项。 日志类型 选择需接入的日志类型,该日志空间中接入的日志数据“logType”字段会根据选择的日志类型生成。不同日志类型所对应的“logType”字段如下: 访问日志:ACCESS_ LOG 接口日志:INTERFACE_LOG 错误日志:ERROR_LOG 异常日志:EXCEPTION_LOG 安全日志:SAFE_LOG 资源日志:RESOURCE_LOG 运行日志:RUN_LOG 话单日志:CDR_LOG 指标日志:METRICS_LOG GC日志:GC_LOG HCW日志:HCW_LOG 日志大小 预计一天的日志量,默认为1GB。 开启日志检索 如果需要使用日志检索功能,可以打开该开关,并创建导流任务,创建导流任务后可以在“日志检索”页面查看日志。 检索空间类型 选择ClickHouse。 原索引名称(ClickHouse) 可选择现有的ClickHouse,如果不填会自动生成。 TTL 日志索引的生命周期,即可以检索的日志时间范围,当前默认支持7天。 配置实时日志字段信息,参数说明如表3所示,配置完成后,单击“下一步”。 表3 实时日志字段信息参数说明 参数名称 参数说明 自定义字段 必须接入的日志字段已默认勾选,可以勾选其他需要接入的日志字段,包括通用字段、容器字段和虚机字段。 新增自定义环境变量 如需添加自定义环境变量,请选择环境变量名,然后单击“添加”。虚机暂无可选自定义环境变量。 清洗规则 选择日志清洗规则。 请优先使用算子清洗模式采样,通过配置解析脚本将原始日志清洗为业务需要的日志字段,算子清洗功能及使用样例请参见算子清洗功能介绍。原始日志采样清洗只适用于单纯采样,不需要清洗的场景。 日志样例 输入日志样例。 解析脚本 配置解析脚本,将日志样例清洗为字段显示。 解析脚本中不支持使用中划线“-”,支持使用下划线“_”。 清洗字段 配置解析脚本后单击“配置解析脚本”,自动生成清洗字段,查看字段是否符合预期。 开启汇聚 选择是否开启日志汇集,如果日志量较大且不需要关注原始日志时可以进行日志汇集。 开启后会自动创建用于存储汇聚数据的Topic,同时需要配置汇集相关参数。 汇聚粒度 开启汇聚后,需要设置汇集粒度。支持分钟级和秒级数据汇聚。选择分钟级,每一分钟会生成一个统计点,选择秒级,每一秒会生成一个统计点。 汇聚时间戳 仅支持时间戳格式字段timestamp,获取当前计算的日志的时间。 时间戳格式 选择时间戳格式。支持秒、毫秒、纳秒级时间戳,获取当前计算的日志的时间格式。 汇聚维度 结合业务场景需要,选择日志是以哪些日志字段进行日志汇聚,支持多选。 汇聚度量 设置对日志字段以COUNT、SUM、MAX、MIN进行度量。 原始字段是日志中的字段,用来获取原始值;度量字段是用户自定义字段名,计算后,度量的值会赋值给该字段。 输出原始日志 选择是否需要输出原始日志。如果打开输出原始日志,原始日志也会上报。 日志字段确认,确认日志字段配置是否达到预期,已达到预期,单击“下一步”。 其中字段来源COMMON表示通用字段、CONTAINER表示容器字段、VM表示虚机字段。 申请日志空间共享,如果需要其他自有服务共用这个空间进行日志下发和日志检索,可以添加共享服务。配置完成后,单击“保存”。
-
步骤三:创建日志采集配置 在“容器日志接入”页面,选择左侧导航栏的“日志采集配置”。 单击“创建日志采集配置”。 配置日志采集参数,配置完成后,单击“确定”。 新创建的采集配置默认为草稿状态,展示在“草稿”页签下,当配置被微服务使用后,状态会更新为“已下发”,并展示到“已下发”页签下。 表4 日志采集配置参数说明 参数名称 参数说明 日志项目 选择已创建的日志项目,相同服务的不同日志使用同一个日志项目 日志空间 选择已创建的日志空间。选择日志空间时日志提取规则会展示日志空间定义的日志格式,采集的日志须满足对应格式。 配置名称 自定义日志采集配置名称。 配置类型 选择日志采集配置类型,建议选择“FILEBEAT”。 日志类型 输入采集日志类型。 日志路径 宿主机上的日志文件的绝对路径(业务容器通过hostpath挂载到宿主机上的路径)。 可使用通配符进行匹配。 说明: 注意避免同一台主机上下发的多个采集任务重复采集相同的日志文件,会导致filebeat进程异常。 日志TPS TPS表示单实例每秒日志条数,请准确填写,用于推荐资源自动计算。 日志模式 选择日志采集模式,是单行模式还是多行模式。 是否支持软连接 当填写的日志路径为链接路径时,需要开启支持软连接。 首行正则表达式 日志模式选择多行模式时,需要输入首行正则表达式。 日志提取规则 根据填写的配置参数会自动生成提取规则。
-
创建Next.js项目 本案例以Next.js框架的默认demo为例演示部署过程,需要在Linux环境中创建一个全新的Next.js项目,本案例采用本地运行Docker node:18.15.0镜像的方式,同样适用于其他Linux系统。关于Docker镜像和Linux操作系统的使用并非本案例主要内容,不做过多赘述。 启动Docker容器并进入code目录(原生Linux系统忽略)。 docker run -it --network=host -v D:/code/nextjs/:/code node:18.15.0 bash cd code 在控制台执行以下命令来创建一个Next.js框架demo工程: npx create-next-app@13.5.6 回车后等待出现该提示词“√ What is your project named? ...”后输入项目名称,如:nextjs-app。 后续提示可以保持默认,或根据您的实际业务情况修改即可。 等待项目创建完成。 图1 项目创建成功 进入项目目录。 cd nextjs-app 官方默认Demo代码需要修改项目中layout.tsx(该文件在nextjs-app下的app目录)文件的代码,不然会导致无法下载字体文件的错误,参见图2并删除红框标出的内容。 图2 删除相关代码 构建项目。 npm run build 图3 构建项目 构建完成后目录内容如下: 图4 项目构建成功后目录内容 创建启动脚本。 创建名为“bootstrap”的启动脚本,并修改bootstrap文件内容如下: export PATH=/opt/function/runtime/nodejs18.15/rtsp/nodejs/bin:$PATH && export npm_config_cache=/tmp/cache && cd /opt/function/code/ && PORT=8000 npm start 打包函数代码。 将目录中的“.next”、“public”、“package.json”和“bootstrap”打包成zip压缩包,本案例命名为“nextjs-func-code.zip”作为函数代码备用。 父主题: 通过FunctionGraph部署Next.js项目
-
前提条件 已拥有华为云账号且已实名认证。 华为云账号未欠费,且有足够金额购买本案例所涉及的资源。 已创建OBS桶,用于存放打包好的依赖包文件,更多详情请参见创建桶。 开始使用本案例前请在本地安装好18.15.0版本的Node.js运行环境。 当前华为云 函数工作流 服务支持的Node.js运行时最高版本为18.15.0、Next.js支持最高版本为13.5.6,本案例将以Next.js版本为13.5.6举例介绍。
-
创建功能函数 创建实现日志提取功能的函数,将示例代码包上传。创建过程请参考创建事件函数,运行时语言选择“Python3.9”,委托名称选择创建委托中的“LtsOperation”。 创建函数A,代码样例请参考write_log.py。函数A代码中host、log_group_id和log_stream_id使用对应接入点和创建好的日志组test-1206、日志流test-206的ID,如图2所示。 图2 write_log.py 创建函数B,代码样例请参考lts_cleanse.py。函数B代码中host、log_group_id和log_stream_id使用对应接入点和创建好的日志组test-1121、日志流test-1121的ID,并为函数B添加依赖huaweicloudsdklts,如图3和图4所示。 图3 lts_cleanse.py 图4 为函数B添加依赖包 函数实现的功能是:将收到的日志事件数据进行base64解码,然后提取出包含“WRN”、“WARN”、“ERR”或“ERROR”关键字的告警日志,将此级别的日志投递至创建好的LTS日志流中集中存储。可根据您的业务日志的具体内容配置相应的日志提取条件。
共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
推荐文章