华为云用户手册
-
监控安全风险 FunctionGraph提供基于 云监控服务 CES的资源和操作监控能力,帮助用户监控账号下的函数,执行自动实时监控、告警和通知操作。用户可以掌握函数中的调用次数、错误次数、运行时间(包括最大运行时间、最小运行时间、平均运行时间)、被拒绝次数、资源统计等信息。 关于FunctionGraph支持的监控指标,请参见监控。关于如何创建监控告警规则等内容,请参见创建告警规则。 父主题: 安全
-
责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
-
企业项目授权后仍报权限不足的说明 IAM 项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。关于IAM项目与企业项目的区别,详情请参见:IAM和企业管理的区别。 FunctionGraph当前仅函数资源接口支持企业项目方式授权,除函数资源外的部分接口仅支持IAM项目方式授权,因此针对仅支持IAM项目方式授权时需注意: 授权时选择“IAM项目视图”。 图1 IAM项目视图 选择授权范围时,建议根据最小化授权原则,选择“指定区域项目资源”,具体请根据实际业务情况选择授权范围。
-
FunctionGraph权限 默认情况下,新建的IAM用户没有任何权限,您需要将其加入用户组,并给用户组授予策略,才能使得用户组中的用户获得策略定义的权限,这一过程称为授权。授权后,用户就可以基于策略对云服务进行操作。 FunctionGraph资源通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在各区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问FunctionGraph时,需要先切换至授权区域。 根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如表1所示,包括了FunctionGraph的所有系统权限。 表1 系统权限说明 系统角色/策略名称 描述 类别 依赖关系 FunctionGraph Administrator 函数工作流 (FunctionGraph)管理员,具有管理函数、工作流、触发器以及调用函数的权限(该权限后期会下线,建议您不使用) 系统角色 Tenant Guest FunctionGraph Invoker 函数工作流(FunctionGraph)调用者,具有查询函数、工作流、触发器以及调用函数的权限 系统角色 无 FunctionGraph FullAccess 函数工作流服务所有权限 系统策略 无 FunctionGraph ReadOnlyAccess 函数工作流服务只读权限 系统策略 无 FunctionGraph CommonOperations 函数工作流(FunctionGraph)调用者,具有查询函数和触发器,以及调用函数的权限 系统策略 无 表2 触发器及相关功能的权限 触发器/服务功能 权限 APIG apig:groups:get apig:groups:list apig:apis:create apig:apis:delete apig:apis:update apig:apis:publish apig:apis:list apig:apis:get apig:apis:offline apig:apps:list apig:envs:list APIG专享版 apig:instances:get apig:instances:create apig:instances:update apig:instances:list apig:sharedInstance:operate CTS cts:notification:create cts:notification:delete cts:notification:update cts:operation:list cts:tracker:list cts:trace:list DDS dds:instance:get dds:instance:list DIS dis:streams:list IoTDA iotda:routingrules:create iotda:routingrules:delete iotda:routingrules:queryList iotda:routingrules:query iotda:routingactions:create iotda:routingactions:delete iotda:routingactions:query iotda:routingactions:queryList iotda:subscriptions:queryList iotda:rules:modifyStatus iotda:apps:queryList LTS lts:groups:create lts:groups:get lts:groups:list lts:groups:put lts:logstreams:delete lts:logstreams:list lts:topics:get lts:subscriptions:create lts:subscriptions:delete lts:subscriptions:put lts:structConfig:create lts:structConfig:get OBS obs:bucket:GetBucketLocation obs:bucket:GetBucketNotification obs:bucket:PutBucketNotification obs:bucket:ListBucket SMN smn:topic:list smn:topic:update TMS tms:predefineTags:list tms:tagValues:list DNS dns:recordset:create, dns:recordset:list, dns:recordset:update, dns:zone:create, dns:zone:delete, dns:zone:get, dns:zone:list BSS bss:bill:view bss:renewal:view CES ces:alarms:get ces:alarms:list ces:alarms:create DMS dms:instance:get EG eg:subscriptions:get eg:subscriptions:list eg:sources:list eg:sources:get eg:agency:create eg:subscriptions:create eg:subscriptions:delete eg:subscriptions:operate 表3列出了FunctionGraph常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 常用操作与系统权限之间的关系 操作 FunctionGraph Invoker FunctionGraph Administrator FunctionGraph ReadOnlyAccess FunctionGraph CommonOperations FunctionGraph FullAccess 创建函数 × √ × × √ 查询函数 √ √ √ √ √ 修改函数 × √ × × √ 删除函数 × √ × × √ 调用函数 √ √ × √ √ 查看函数日志 √ √ √ √ √ 查看函数指标数据 √ √ √ √ √
-
约束与限制 当添加了FunctionGraph FullAccess权限的子账号在创建触发器或使用其他功能时仍没有操作权限,是因为该服务或功能不支持细粒度鉴权,因此需要您单独添加对应服务或功能的Admin权限。具体详情如下: CTS、APIG、DIS当前不支持细粒度鉴权,需要添加对应admin权限。 SMN目前部分局点已支持细粒度鉴权,如您遇到无法细粒度鉴权情况,则需要添加对应admin权限。 IoTDA是新增加的触发器,FullAccess中缺少对应权限。您在创建该触发器时会提示需要创建委托并添加相应权限,创建委托需要您先添加iam: agencies:list,iam:agencies:createAgency 权限; TMS、DNS、BSS、CES、EG、DMS是新增加功能,FullAccess中缺少对应权限,需单独添加; 更多触发器及相关功能需要的权限,请参见表2所示。
-
资产识别与管理 在函数的环境变量中,若有敏感信息例如账号和密码、Ak/Sk等,建议通过配置加密环境变量。不配置加密环境变量,则会在界面或API返回结果中明文展示。 在使用触发器、配置VPC访问、使用自定义镜像、挂载SFS等场景下,FunctionGraph需要与其他云服务协同工作,需要由您通过创建云服务委托,让FunctionGraph有权限代替您进行一些资源运维工作。具体请参见委托配置。 父主题: 安全
-
版本说明 发布日期 版本说明 2022-11-14 新增“安全”章节。 2022-08-19 新增“图解函数工作流服务”章节。 2022-07-15 优化“与其他服务的关系”章节。 2022-05-30 VSCode插件更新。 2022-04-30 支持创建快速函数流 VPC配置情况下支持 域名 解析 2022-03-30 函数工作流全新改版。 2022-02-25 支持Python 3.9和Node.js 14.18。 2021-12-09 新增函数调用链。 说明: 该特性当前仅“华南-广州、华北-北京四”区域支持。 2021-11-16 新增HTTP函数。 新增函数流服务节点。 新增动态内存配置。 新增自定义镜像。 计费粒度精确到1ms。 新增CodeArts IDE Online支持JAVA、Python函数开发。 新增CodeArts IDE Online支持推送代码文件对比。 2021-07-05 新增加密配置公测上线。 新增开通 云日志 服务(LTS),使用更丰富的函数日志管理功能。 新增CodeArts IDE Online在线编辑功能。 新增函数工作流功能。 新增延长函数执行超时时间。 新增单函数运行最大实例数和单实例并发数。 说明: 以上新增特性当前仅“华北-北京四”区域支持。 2021-06-30 依赖包列表展示ID。 2021-05-30 支持函数长时间(12h)运行。 2021-04-30 提供C#、python、Nodejs、Java语言SDK。 2021-03-30 新增 OMS 数据同步模板。 2020-12-30 新增APIC触发器。 新增APIG(专享版)触发器。 2020-10-30 新增GeminiDB Mongo触发器。 2020-09-30 DDS触发器支持并发。 2020-08-30 Kafka触发器支持并发,最大消息体为6MB。 2020-06-30 新增预留实例功能。 2020-05-30 新增支持Go 1.x Runtime。 2020-04-30 新增支持Node.js 10.16 Runtime。 新增支持Node.js 12.13 Runtime。 2020-03-30 删除工作流相关介绍。 新增支持C#(.NET Core 3.1)。 2020-02-25 支持配置企业项目。 2020-01-05 新增细粒度权限配置功能。 2019-12-31 新增Kafka触发器。 2019-11-26 函数模板分类优化。 新增筛选错误日志功能。 2019-10-16 总览界面新增月度统计功能。 2019-09-30 新增DDS触发器。 2019-08-16 支持测试事件持久化。 支持定制运行时。 支持挂载文件系统。 2019-5-27 函数服务代码在线编辑页面优化,新增函数在线测试及返回、快速创建多层级Python模块等。 函数模板支持与周边云服务集成。 函数新增PHP Runtime,支持PHP7.3,并支持在线编辑。 2019-3-15 函数新增版本分流功能。支持版本灰度发布,在创建别名时可以绑定多版本,并且可以设置主版本和灰度版本的权重。 函数新增支持配置VPC功能。用户支持创建虚拟私有云(VPC)并访问自己VPC内的资源,同时支持通过SNAT方式绑定EIP访问外网。 C#sdk增加json序列化和反序列接口。 2019-3-4 函数新增初始化功能。 函数工作流API2.0版上线。 2019-1-26 Sandbox AOS远程部署实现package、deploy命令合并。 函数内存配置新增了1792,2048,2560,3072,3584,4096 内存。 函数优化执行委托和配置委托功能。 函数支持分版本查看日志特性。 2018-12-25 Sandbox新增函数自动生成功能。 Sandbox新增支持Windows系统功能。 2018-11-30 函数新增函数应用导入导出功能。 新增函数执行委托与触发器委托可独立设置功能。 2018-11-16 函数实现与 云监控 服务的对接, 新增FunctionGraph监控说明。 函数新增依赖包管理模块,统一管理用户所有依赖包。 函数新增日志下载功能。 2018-11-2 新增支持C#Runtime,对于C#,FunctionGraph运行时目前支持C#(.NET Core 2.0)、C#(.NET Core 2.1)版本。 新增工具箱页面,提供sdk、cli、sandbox等工具的下载,以及在线费用计算器的使用。 2018-10-18 函数实现与云监控服务的对接,函数上报云监控服务的监控指标、指标的命名空间和维度,用户可以通过云监控服务提供的API接口来检索函数产生的监控指标和告警信息。 函数新增Node.js Runtime集成的三方件:smnsdk、express、fgs-express和request。 2018-09-29 增加函数应用分组功能。 增加函数多目录在线编辑功能。 2018-08-29 新增高危操作保护功能,在删除函数、工作流、触发器、版本、别名时进行确认。 新增函数禁用功能。 新增体验馆,指导使用FunctionGraph构建功能程序,并演示效果。 CLI工具能力增强,支持对话交互模式。 Sandbox工具能力增强,支持加载云端事件。 新增应用模板。 2018-07-28 新增支持Node.js 8.10 Runtime。 优化监控指标,平均延迟优化为最大运行时间、最小运行时间、平均运行时间三个指标。 APIG触发器增加超时配置。 Node.js Runtime集成常用三方件。 新增CTS触发器,实现与华为云 云审计 服务的对接,可以订阅对应云服务的资源操作事件,当对订阅的资源操作时,会触发函数执行,实现预期功能。 支持将函数代码及配置信息打包导出,支持通过导入的方式创建函数。 Java SDK加入了触发器事件结构体定义,目前支持DMS、DIS、SMN、LTS、TIMER、APIG等六种。在需要使用触发器的场景时,编写相关代码更简单。 2018-07-13 新增LTS触发器,实现了与华为云云日志服务的对接。可以使用FunctionGraph函数对使用云日志服务订阅的日志进行自定义分析。详情请参考使用LTS触发器。 修复已知问题。 2018-06-30 函数与工作流产品及资料合并,定名为FunctionGraph。 合并后的FunctionGraph正式转为商用。
-
功能简介 ①编写代码 用户编写业务代码,目前支持Node.js、Python、Java、Go、C#、PHP、Cangjie等语言,详情请参考开发指南。 ②上传代码 目前支持在线编辑、上传ZIP或JAR包,从OBS引用ZIP包等,详情请参考代码上传方式说明。 ③API和云产品事件源触发函数执行 通过RESTful API或者云产品事件源触发函数执行,生成函数实例,实现业务功能。 ④弹性执行 函数在执行过程中,会根据请求量弹性扩容,支持请求峰值的执行,此过程用户无需配置,由FunctionGraph完成,并发数限制请参考约束与限制。 ⑤查看日志 FunctionGraph函数实现了与云日志服务的对接,您无需配置,即可查看函数运行日志信息,请参考配置和查看函数的调用日志。 ⑥查看监控 FunctionGraph函数实现了与 应用运维管理 服务的对接,您无需配置,即可查看图形化监控信息。 ⑦计费方式 函数执行结束后,根据函数请求执行次数和执行时间计费。
-
场景一:事件驱动类应用 以事件驱动的方式执行服务,按需供给,开发者无需关注业务波峰波谷,节省闲时成本,最终降低运维成本。比如 视频直播 /转码、实时数据流处理、IoT规则/事件处理等。 实时文件处理 客户端上传文件到OBS,触发FunctionGraph函数,在上传数据后立即进行处理。可以使用FunctionGraph实时创建图像缩略图、转换视频编码、进行数据文件汇聚、筛选等。 其优势有: 灵活扩展,业务爆发时可以自动调度资源运行更多函数实例以满足处理需求。 事件触发,通过上传文件到OBS,触发FunctionGraph函数进行文件处理。 按需收费,只有对函数处理文件数据的时间进行计费,无需购买冗余的资源用于非峰值处理。 使用 对象存储服务 (OBS),创建两个桶,上传图片,通过构建和触发函数对图片进行压缩,参考使用函数压缩图片。 实时数据流处理 使用FunctionGraph和DIS处理实时流数据,跟踪应用程序活动、顺序事务处理、分析数据流、整理数据、生成指标、筛选日志、建立索引、分析社交媒体以及遥测和计量IoT设备数据。 其优势有: 事件触发,通过DIS流采集数据,批量数据通过事件触发处理函数进行处理。 灵活扩展,业务爆发时可以自动调度资源运行更多函数实例以满足处理需求。 按需收费,只有对函数处理文件数据的时间进行计费,无需购买冗余的资源用于非峰值处理。 如使用 数据接入服务 采集IOT实时数据流,通过构建函数,将采集到的数据进行处理(比如格式转换),然后存储到 表格存储服务 (CloudTable Service)中,参考使用函数处理DIS数据。
-
场景三:AI类应用 各行各业智能化深入带来更多的应用开发场景,通常需要集成各类服务快速上线。比如三方服务集成、AI推理、车牌识别。 其优势有: 快速搭建,用户上传图像后触发函数工作流执行调用 文字识别 /内容检测服务针对图像进程处理,并将结果以JSON结构化数据返回。按需使用函数与多个智能服务集成,形成丰富的应用处理场景。并随时根据业务改变对函数处理过程做调整,实现业务灵活变更。 简化运维,用户只需开通相关云服务并在函数服务中编写业务逻辑,无需配置或管理服务器,专注于业务创新。业务爆发时可以自动调度资源运行更多函数实例以满足处理需求。 按需计费,只有对函数执行的时间及各智能服务处理进行计费,无需购买冗余的资源用于非峰值处理。
-
审计 云审计服务(Cloud Trace Service,CTS),是华为云安全解决方案中专业的日志审计服务,提供对各种云资源操作记录的收集、存储和查询功能,可用于支撑安全分析、合规审计、资源跟踪和问题定位等常见应用场景。 用户开通云审计服务并创建和配置追踪器后,CTS可记录FunctionGraph的管理事件用于审计。 CTS的详细介绍和开通配置方法,请参见CTS快速入门。 通过云审计服务,您可以记录与FunctionGraph服务相关的操作事件,便于日后的查询、审计和回溯。相关内容请参见云审计服务支持的FunctionGraph操作列表。
-
代码签名 为了保障用户的代码安全,防止代码文件损坏或被篡改导致代码不一致问题,保证被执行的函数代码为正确版本,当函数创建或修改代码时,FunctionGraph对用户的函数代码签名加密,为其生成代码签名,并存储在函数元信息内。 FunctionGraph在函数执行时,为当前执行的代码生成签名,然后将其与函数元信息内的代码签名进行对比,仅允许运行通过一致性校验的代码,校验未通过则不允许执行并返回错误。 父主题: 安全
-
场景二:Web类应用 使用FunctionGraph和其他云服务或租户VM结合,用户可以快速构建高可用,自动伸缩的Web/移动应用后端。比如小程序、网页/App、聊天机器人、BFF等。 其优势有: 高可用,利用OBS,Cloud Table的高可用性实现网站数据的高可靠性,利用API Gateway和FunctionGraph的高可用性实现网站逻辑的高可用。 灵活扩展,业务爆发时可以自动调度资源运行更多函数实例以满足处理需求。 按需收费,只有对函数处理文件数据的时间进行计费,无需购买冗余的资源用于非峰值处理。
-
与其他服务的关系 FunctionGraph服务与以下云服务的对接,实现相关功能,如表1所示。 表1 对接服务 服务名称 实现功能 消息通知 服务(SMN) 构建FunctionGraph函数来处理SMN的通知,相关内容请参考消息通知服务用户指南。 API网关(API Gateway) 通过HTTPS调用FunctionGraph函数,使用API Gateway自定义REST API和终端节点来实现。相关内容请参考API网关用户指南。 对象存储服务(OBS) 构建FunctionGraph函数来处理OBS存储桶事件,例如对象事件或删除事件。当用户将一张照片上传到存储桶时,OBS存储桶调用FunctionGraph函数,实现读取图像和创建照片缩略图。相关内容请参考对象存储服务用户指南。 数据接入服务(DIS) 构建FunctionGraph函数定期轮询DIS数据流中的新记录,例如网站点击流、财务交易记录、社交媒体源、IT日志和位置跟踪事件等。相关内容请参考数据接入服务用户指南。 云日志服务(LTS) 构建FunctionGraph函数来处理云日志服务订阅的日志。当云日志服务采集到订阅的日志后,可以通过FunctionGraph函数对其进行自定义处理、分析或将其加载到其他系统。相关操作请参考云日志服务用户指南。 云审计服务(CTS) 构建FunctionGraph函数,根据CTS云审计服务类型和操作订阅所需要的事件通知,由函数对日志中的关键信息进行分析和处理。相关内容请参考云审计服务用户指南。 通过云审计服务,您可以记录与FunctionGraph服务相关的操作事件,便于日后的查询、审计和回溯。相关内容请参考云审计服务支持的FunctionGraph操作列表。 审计日志。开通云审计服务后,系统开始记录云服务资源的操作。云审计服务管理控制台保存最近7天的操作记录。操作步骤请参考查看追踪事件。 文档数据库服务(DDS) 使用DDS触发器,每次更新数据库中的表时,都可以触发Functiongraph函数以执行额外的工作,创建DDS文档数据库实例请参见购买文档数据库实例。 云监控服务(CES) FunctionGraph函数实现了与云监控服务对接,函数上报云监控服务的监控指标,用户可以通过云监控服务来查看函数产生的监控指标和告警信息。相关内容请参考云监控服务用户指南。 云监控支持的函数监控指标请参考监控配置。 虚拟私有云(VPC) 函数支持用户创建虚拟私有云(VPC)并访问自己VPC内的资源,同时支持通过SNAT方式绑定EIP访问外网。相关内容请参考虚拟私有云用户指南。
-
函数配置 表1 函数配置约束与限制 限制项 说明 单个函数下最大允许创建的版本个数 20(含latest版本) 单个函数下最大允许创建的别名个数 10 每个版本仅可以创建1个别名。 单个函数版本下最大允许创建的触发器总数 10 单个函数下所有环境变量的大小 总长度不能超过4096个字符。 单个账户下最大允许创建的函数个数 400 单个账户下最大允许部署包大小 10GB 单个账户下函数并发执行数 100 如果您的业务有更大的并发执行数需求,请提交工单申请。 单个账户下创建预留实例个数 90(单个租户下函数并发执行数*90%) 如果您的业务有更大的预留实例个数需求,请提交工单申请。 单个函数下最大允许创建的标签个数 20 使用标签功能前确保已开通TMS服务,未开通TMS服务时无法使用TMS预定义标签能力。 网络配置 开启“函数访问VPC内资源”时,函数将禁用默认网卡并使用VPC绑定的网卡,是否允许公网访问由配置的VPC决定,开关“函数访问公网”将不生效。 异步配置 当您在配置异步执行通知目标时,不要出现循环调用的情况。 日志配置 已关联的默认日志组更改为其他日志组或关闭日志记录时,将无法重新关联默认日志组。 单个函数最多可以添加10个标签。
-
函数流 函数流当前仅支持华北-北京四、华东-上海一、华东-上海二、华南-广州、亚太-新加坡。 表3 函数流约束与限制 限制项 说明 单个账户下最多创建的函数流个数 200 如果您的业务有更大的函数流个数需求,请提交工单申请。 单个函数流支持最多节点数 100 如果您的业务有更大的函数流节点数需求,请提交工单申请。 标准函数流 标准模式面向普通的业务场景,只支持异步调用。 快速函数流 快速模式面向业务执行时长较短,只支持流程执行时长低于5分钟的场景,不支持执行历史持久化,支持同步和异步调用。
-
函数代码 表2 函数代码约束与限制 限制项 说明 前端页面上传时,单个代码部署包大小(压缩为.zip/.jar文件) 40MB 调用函数接口时,在线编辑单个函数代码部署包大小(压缩为.zip/.jar文件) 50MB 函数导出资源包大小 50MB以内 调用函数接口时,单个代码部署包原始代码大小 ZIP格式:解压后原始代码大小为1500M。 OBS桶:最大可上传300M压缩后的代码包。 前端页面展示代码大小 20MB 私有依赖包 直接上传ZIP文件:上传的文件大小限制为10M,如超过10M,请通过OBS上传。 从OBS上传文件:格式为OBS URL链接,文件必须为ZIP格式。
-
函数运行资源 表4 函数运行资源约束与限制 限制项 说明 临时磁盘空间(“/tmp”空间) 512MB 文件描述符数 2048 进程和线程数(总和) 1024 单个请求最大执行时长 259200秒 若需要调用执行时间超过90秒的函数,请使用异步调用的方式。 如果您的业务有更大的最大执行时长需求,请提交工单申请。 函数同步调用请求正文有效负载大小 6MB 函数同步调用响应正文有效负载大小 6MB 返回的字符串或返回体序列化后的JSON字符串默认不大于6MB。具体数据大小会随FunctionGraph系统后台设置产生变化,因为系统后台判断的是序列化之后的数据大小,所以会存在字节级别的误差,误差范围为6MB±100bytes。 函数异步调用请求正文有效负载大小 256KB 单个自定义镜像函数最大允许镜像大小 10GB 租户级别实例数限制 1000 如果您的业务有更大的实例数需求,请提交工单申请。 函数最大申请内存 10G 带宽 无限制 单条日志大小 无限制 Initializer最大运行时间 259200秒 如果您的业务有更大的Initializer最大运行时间需求,请提交工单申请。
-
API全生命周期管理一体化协作平台 CodeArts API是华为云API全生命周期管理一体化协作平台,支持开发者高效实现API设计、API开发、API测试、API托管、API运维、API变现的一站式体验。通过以API契约为锚点,CodeArts API保证API各阶段数据高度一致,为开发者提供友好易用的API全流程端到端解决方案。借助CodeArts API,开发者可以高效、规范、准确地培育并呵护自己的API,便捷参与API经济。 图1 CodeArts API平台拓扑图
-
软件开发生产线 软件开发生产线(CodeArts)是面向开发者提供的一站式云端平台,即开即用,随时随地在云端交付软件全生命周期,覆盖需求下发、代码提交、代码检查、代码编译、验证、部署、发布,打通软件交付的完整路径,提供软件研发流程的端到端支持。CodeArts API属于软件开发生产线工具链的一部分,补齐了CodeArts的API设计能力。API全生命周期管理也是DevOps实践的一个关键组成部分,通过提供标准化、自动化的API创建、测试、部署和管理流程,支持DevOps中的快速迭代、高质量软件交付和持续改进的目标。了解更多软件开发生产线相关信息,请前往查看更多相关介绍。
-
API管理痛点 传统的API全生命周期管理方案,研发团队通常会使用多种工具管理API: Swagger:设计与管理API文档 Postman:API调试工具 Mockjs:Mock API数据 JMeter:API自动化测试工具 因此,在传统的研发流程中,开发者常常面对以下繁琐的协作场景: 一个项目可能有多个设计者,设计者通常根据以往的经验或者模仿已有的API样例做设计,往往在规范上存在差异。 架构师在Swagger中设计API文档后,后端工程师需要根据设计文档实现代码,如果设计修改则需要手工实现代码同步。 后端工程师在API调试时,需要将设计文件导入Postman,如果设计修改则需要重复导入过程。 前端工程师需要根据设计文档在Mockjs中定义Mock返回数据,如果设计修改则需要手工修改Mock数据。 测试工程师根据设计文档在JMeter写好的测试用例,如果设计修改则需要重新同步用例的接口参数。 API后端服务的代码实现、软件包构建、环境部署、测试脚本修改运行等一系列流程,需要手工部署。 从研发场景出发,API开发流程的痛点问题可以总结为: API研发流程体系难以管控,缺少API全生命周期规范。 API一致性差,维护不同工具之间数据一致性非常困难、低效。 API开发流程自动化程度低。 华为云CodeArts API是API全生命周期一站式管理平台,为API设计者、开发者、管理者提供一站式解决方案,能够有效的解决上述问题。
-
背景介绍 随着微服务系统及分布式架构的发展,多模块或子系统的依赖为软件系统的开发与测试带来了很多挑战。比如在测试某个模块时,依赖的第三方服务不能返回想要的结果,或第三方服务不稳定时,该模块的测试进度则会受到影响。 Mock服务能很好解决这些问题,使用场景如下: 并行开发:在被依赖模块未开发完成时,使用Mock服务替代真实业务服务场景,可进行并行开发。 依赖服务不稳定:当依赖服务不稳定时,会导致自动化测试用例失败,使用Mock服务替代真实服务,可以保证自动化测试稳定执行,提升流水线的健壮性。 构造异常场景:测试时需要构造某些异常数据或延迟响应等异常场景,真实服务通常无法满足需求,使用Mock服务替代可以快速构造异常场景,提升测试覆盖率。 前后端分离开发:前端开发往往依赖于后端数据接口,在后端接口就绪之前,前端往往很难推进,前端可以通过Mock功能制造场景数据接口来进行开发与调试。 父主题: API Mock
-
产品功能 表1 CodeArts API服务 功能概览 功能名称 功能描述 API设计 通过表单编辑和Swagger原生编辑器设计API,并利用API规范检查保证API设计质量。 API文档 自动生成API使用文档,支持API文档快速索引。 API开发 自动生成API前端SDK和后端框架代码。 API Mock 灵活模拟API调用响应。 API测试 灵活编排API测试用例,实时获取测试反馈。 项目&团队管理 管理API项目和项目成员。
-
检查点说明 测试检查点即请求结果的断言,通过检查接口响应是否符合预期,判定系统是否满足预期。 在接口自动化用例中,测试步骤的“检查点”页签中可以定义测试检查点。 检查点内容包括属性、比较符和目标值定义。 字段 说明 重试次数 如果检查点失败,重新执行该测试步骤的次数,重试次数范围:0~5的正整数。 重试间隔 如果检查点失败,每次重试的间隔时长,单位为ms,重试间隔范围:0~10,000的正整数。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码、变量。 属性 若来源是响应码,属性可为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 若来源是变量,属性为全局变量,局部变量,响应提取后的变量。详细介绍请参见变量检查。 高级提取类型 可选项,使用高级提取类型,辅助提取检查点信息,若选择不涉及,则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 类型值 高级提取类型中所需的参数。 比较符 支持数字、字符串、JSON对象比较、类型比较等多种比较符,详细介绍请参见比较符说明。 目标值 检查点期望值。目标值支持使用内置参数,请参考内置参数了解如何使用内置参数。 例如,检查响应体(JSON格式)中“item.name”字段的第零位(首位)到第四位之间是不是petty,参数配置如下: 字段 值 来源 响应体(JSON) 属性 item.name 高级提取类型 字符串提取 类型值 0、5 比较符 等于(字符串) 目标值 petty
-
响应体(JSON)检查 检查响应体(JSON)中对象字段的值。例如: 响应体结构如下: 检查响应体对象中字段名为“status”的值,检查点配置如下: 检查响应体(JSON)中某个数组的对象的字段值(数组条件采用下标确定对象,下标从0开始)。例如: 响应体结构如下: 检查响应体“result”数组的第1个元素对象字段名为“userId”的值,检查点配置如下: 检查响应体(JSON)中某个数组的对象的字段值(数组条件采用模糊匹配功能确定对象)。例如: 响应体结构如下: a.检查响应体“result”数组下“name”是“啤酒”的所有对象取第1个之后获取id的值,检查点配置如下: 当获取的数组下的对象只有一个,“[0]”可以省略,示例中的表达式可以写为“result[name==啤酒].id”。 b.检查响应体“result”数组下“name”是“啤酒”的并且“obj”对象下属性“a”的值是“2”的对象的id值,检查点配置如下:
-
比较符说明 支持以下比较类型: 比较类型 比较符 是否需要填入值 举例 数字比较 等于(数字) 不等于(数字) 大于等于(数字) 小于等于(数字) 大于(数字) 小于(数字) 是 响应码 等于 200 响应码 不等于 200 响应码 大于等于 200 响应码 小于等于 200 响应码 大于 200 响应码 小于 200 字符串比较 等于(字符串、区分大小写) 不等于(字符串、区分大小写) 等于(字符串、不区分大小写) 包含(字符串) 不包含(字符串) 是 响应体中的属性param1 等于 test 响应体中的属性param2 不等于 test 响应体中的属性param3 等于 TEST 响应体中的属性param4包含 tri 响应体中的属性param5不包含 tri 正则比较 正则表达式 是 响应体中的属性param1 正则表达式 ^[A-Za-z0-9]{1,32}$ 通用比较 是空(该字段是否为空,即是否没有该字段) 不是空(该字段是否不为空,即是否有该字段) 否 响应体中的属性param1 是空 响应体中的属性param2 不是空 Json数组比较 JSON数组为空数组(json数组是否为空数组) JSON数组为非空数组(json数组是否为非空数组) 否 响应体中的属性param1 JSON数组为空数组 响应体中的属性param2 JSON数组为非空数组 JSON数组的大小(json数组的大小是否为...) 是 响应体中的属性param1 JSON数组的大小 类型比较 是JSON类型(是否是json对象类型) 是JSON数组类型(是否是json数组类型) 否 响应体中的属性param1 是JSON类型 响应体中的属性param2 是JSON数组类型 Json对象比较 JSON等于(json等于) 是 响应体中的属性param1 JSON等于 {"name":"zhangsan"}
-
接口自动化用例系统关键字 接口自动化测试将常见的操作封装成关键字供用户使用,用于提升编写接口测试用例的效率。 表1 系统关键字一览表 分类 关键字集 认证类 认证类—GetIAMToken 认证类—OAuth2For OneAccess 数据库操作类 数据库类—MySQLQuery 数据库类—MySQLUpdate 数据库类—MySQLInsert 数据库类—MySQLDelete 数据库类—OpenGaussQuery 数据库类—OpenGaussUpdate 数据库类—OpenGaussInsert 数据库类—OpenGaussDelete 数据库类—PostgreSQLQuery 数据库类—PostgreSQLUpdate 数据库类—PostgreSQLInsert 数据库类—PostgreSQLDelete 数据库类—MongoDBQuery 数据库类—MongoDBInsert 数据库类—MongoDBUpdate 数据库类—MongoDBDelete 中间件类 中间件类—RedisGet 中间件类—RedisSet 中间件类—OBSWrite 中间件类—OBSDelete 中间件类—OBSQuery 中间件类—KafkaProducer 中间件类—KafkaConsumer 协议类 协议类—TCP 协议类—UDP 协议类—WSConnect 协议类—WSRequest 协议类—WSWriteOnly 协议类—WSReadOnly 协议类—WSDisConnect 协议类—MQTTConnect 协议类—MQTTDisconnect 协议类—MQTTPublish 协议类—MQ TTS ubscribe 协议类—DubboClient 具体请参考CodeArts Testplan的接口自动化用例系统关键字。
-
接口关键字 接口关键字中定义单个接口的请求,可以通过导入Swagger文件、保存自定义URL请求等方式生成。 导入Swagger文件生成数据 在右侧“关键字库”界面,单击“导入接口”。 在弹出的“导入接口”页面,单击“点击添加文件或拖拽上传”,选择配置好的Swagger接口文档,单击“确定”,完成Swagger文件导入。 文档导入成功后,系统自动解析生成脚本模板,脚本模板包含了接口的基本描述信息。可以从“关键字库”界面单击“+”或直接拖拽接口添加至测试步骤,只需要按模板输入接口参数就可以进行测试。 具体请参考CodeArts Testplan的接口关键字。
-
关键字库入口 在“脚本”页签,页面右侧展示“关键字库”。 通过Swagger文件导入的关键字放置在关键字库的“接口”页签中,详细操作请参考接口关键字。 关键字用例和组合关键字放置在关键字库的“组合”页签中,支持从0到1创建新的组合关键字,详细操作请参考组合关键字。 认证类、数据库操作类、中间件类、协议类等实用关键字放置在“系统”页签中,详细操作请参考接口自动化用例关键字。 单击关键字库中“名称”下拉列表,可以按照“名称”、“描述”,搜索对应的关键字。
-
从接口/接口用例导入 用户可以将API设计的数据导入测试步骤,主要有两个来源:“从【接口用例】导入(推荐)”和“从【接口】导入”。 从【接口用例】导入(推荐) 在弹出的“从【接口用例】导入(推荐)”对话框上,选择需要导入的接口,即“API设计”中接口的调试用例,参考保存为用例。 单击“导入”,完成测试步骤添加。 从【接口】导入 在弹出的“从【接口】导入”对话框上,选择需要导入的接口,即“API设计”的接口数据。 单击“导入”,完成测试步骤添加。
共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