From ea592f8aa1385dc3558cf09e2682144d6a13afb3 Mon Sep 17 00:00:00 2001 From: NEEN Date: Mon, 28 Nov 2022 22:34:01 +0800 Subject: [PATCH 001/383] add license review guide Signed-off-by: NEEN --- ...04\345\256\241\346\214\207\345\257\274.md" | 173 ++++++++++++++++++ 1 file changed, 173 insertions(+) create mode 100644 "zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" diff --git "a/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" "b/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" new file mode 100644 index 0000000000..f36f637add --- /dev/null +++ "b/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" @@ -0,0 +1,173 @@ +# OpenHarmony项目代码许可证与特殊许可证评审指导 + +## 目的 + +本指导明确了OpenHarmony社区中的项目代码所采用的许可证,以及接纳的特殊许可证及相关评审流程和规范。 + +## 范围 + +本指导仅适用于OpenHarmony社区中分发的项目代码,不适用于将OpenHarmony项目应用于个人或企业以开发其它产品的场景,也不适用单独分发第三方开源软件的场景。 + +## 定义 + +OpenHarmony项目:OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。 + +OpenHarmony项目的社区托管地址:https://gitee.com/openharmony。 + +OpenHarmony项目贡献代码:贡献者向OpenHarmony项目贡献的其拥有版权的代码,并由OpenHarmony项目在项目的社区托管地址上分发。 + +OpenHarmony项目第三方依赖:OpenHarmony项目依赖的第三方开源代码,并由OpenHarmony项目在项目的社区托管地址上再分发。 + +## 贡献代码采用的许可证白名单 + +原则上,OpenHarmony项目贡献代码均应提供源代码,并采用开源促进会OSI批准的开源许可证进行分发。 + +由于开源许可证繁多,OpenHarmony项目建议OpenHarmony项目贡献代码优先采用如下许可证白名单中的许可证进行分发。 + +OpenHarmony项目贡献代码许可证白名单包括: + +- [Apache License 2.0 (Apache-2.0)](https://opensource.org/licenses/Apache-2.0)(适用于用户态代码) +- [3-clause BSD License (BSD-3-Clause)](https://opensource.org/licenses/BSD-3-Clause) (适用于LiteOS Kernel代码) +- [GNU General Public License version 2 (GPL-2.0)](https://opensource.org/licenses/GPL-2.0)(适用于Linux Kernel代码) + +## OpenHarmony项目第三方依赖可接纳和不可接纳的许可证名单 + +OpenHarmony项目还可能引入或依赖不同的第三方开源软件,这些第三方开源软件采用的许可证的种类和样式可能是多种多样的,为了确保项目的开源属性,要求依赖的第三方开源软件必须具有清晰定义的上游开源社区,且引入第三方开源软件不会引起许可证兼容性法律问题。 + +### 可接纳的第三方依赖的许可证白名单 + +与Apache-2.0许可证相兼容的许可证可以被接纳,OpenHarmony项目建议可优先接纳采用如下许可证的第三方依赖: + +- [Academic Free License 3.0 (AFL-3.0)](https://opensource.org/licenses/AFL-3.0) + +- [Apache License 2.0 (Apache-2.0)](https://opensource.org/licenses/Apache-2.0) + +- [Apache Software License 1.1](https://www.apache.org/licenses/LICENSE-1.1). Including variants: + + - [PHP License 3.01](http://www.php.net/license/3_01.txt) + - [MX4J License](http://mx4j.sourceforge.net/docs/ch01s06.html) + +- [Boost Software License (BSL-1.0)](https://opensource.org/licenses/BSL-1.0) + +- BSD License: + + - [3-clause BSD License](https://opensource.org/licenses/BSD-3-Clause) + - [2-clause BSD License](https://opensource.org/licenses/BSD-2-Clause) + - [DOM4J License](http://dom4j.sourceforge.net/dom4j-1.6.1/license.html) + - [PostgreSQL License](http://opensource.org/licenses/postgresql) + +- [ISC](https://opensource.org/licenses/ISC) + +- [ICU](http://source.icu-project.org/repos/icu/icu/trunk/LICENSE) + +- [MIT License (MIT)](https://opensource.org/licenses/MIT) / X11 + +- [MIT No Attribution License (MIT-0)](https://opensource.org/licenses/MIT-0) + +- [Mulan Permissive Software License v2 (MulanPSL-2.0)](https://opensource.org/licenses/MulanPSL-2.0) + +- [The Unlicense](https://opensource.org/licenses/unlicense) + +- [W3C License (W3C)](https://opensource.org/licenses/W3C) + +- [University of Illinois/NCSA](http://opensource.org/licenses/UoI-NCSA.php) + +- [X.Net](http://opensource.org/licenses/xnet.php) + +- [zlib/libpng](http://opensource.org/licenses/zlib-license.php) + +- FSF autoconf license + +- [DejaVu Fonts (Bitstream Vera/Arev licenses)](http://dejavu-fonts.org/wiki/index.php?title=License) + +- OOXML XSD ECMA License + +- [Microsoft Public License (MsPL)](http://www.opensource.org/licenses/ms-pl.html) + +- [Python Software Foundation License](http://www.opensource.org/licenses/PythonSoftFoundation.php) + +- [Python Imaging Library Software License](https://github.com/python-pillow/Pillow/blob/master/LICENSE) + +- [Adobe Postcript(R) AFM files](https://spdx.org/licenses/APAFML.html) + +- [Boost Software License Version 1.0](http://www.opensource.org/licenses/BSL-1.0) + +- [WTF Public License](http://www.wtfpl.net/) + +- [The Romantic WTF public license](https://github.com/pygy/gosub/blob/master/LICENSE) + +- [UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE](http://www.unicode.org/copyright.html#Exhibit1) + +- [Zope Public License 2.0](https://opensource.org/licenses/ZPL-2.0) + +- [ACE license](http://www.cs.wustl.edu/~schmidt/ACE-copying.html) + +- [Oracle Universal Permissive License (UPL) Version 1.0](https://oss.oracle.com/licenses/upl/) + +- [Open Grid Forum License](https://www.ogf.org/ogf/doku.php/about/copyright) + +- [Google "Additional IP Rights Grant (Patents)" file](https://chromium.googlesource.com/external/webrtc/+/master/PATENTS) + +- [Historical Permission Notice and Disclaimer](https://opensource.org/licenses/HPND) + +### 不建议接纳的第三方依赖的许可证名单 + +原则上,不支持商用的许可证,以及其它包含不合理限制或义务的许可证不建议被接纳,OpenHarmony项目不建议接纳采用如下许可证的第三方依赖: + +- [Intel Simplified Software License](https://software.intel.com/en-us/license/intel-simplified-software-license) +- [JSR-275 License](https://github.com/unitsofmeasurement/jsr-275/blob/0.9.3/LICENSE.txt) +- [Microsoft Limited Public License](https://www.openhub.net/licenses/mslpl) +- [Amazon Software License (ASL)](https://aws.amazon.com/asl/) +- Java SDK for Satori RTM license +- [Redis Source Available License (RSAL)](https://redislabs.com/community/licenses/) +- [Booz Allen Public License](http://boozallen.github.io/licenses/bapl) +- [Confluent Community License Version 1.0](https://www.confluent.io/confluent-community-license/) +- [Any license including the Commons Clause License Condition v1.0](https://commonsclause.com/) +- [Creative Commons Non-Commercial](https://en.wikipedia.org/wiki/Creative_Commons_license#Non-commercial_licenses) variants +- [Sun Community Source License 3.0](http://jcp.org/aboutJava/communityprocess/SCSL3.0.rtf) +- [GNU GPL 3](http://www.opensource.org/licenses/gpl-license.php) +- [GNU Affero GPL 3](http://www.opensource.org/licenses/agpl-v3.html) +- [BSD-4-Clause](https://spdx.org/licenses/BSD-4-Clause.html)/[BSD-4-Clause (University of California-Specific)](https://spdx.org/licenses/BSD-4-Clause-UC.html) +- [Facebook BSD+Patents license](https://code.facebook.com/pages/850928938376556) +- [NPL 1.0](https://spdx.org/licenses/NPL-1.0.html)/[NPL 1.1](https://spdx.org/licenses/NPL-1.1.html) +- The Solipsistic Eclipse Public License +- [The "Don't Be A Dick" Public License](https://dbad-license.org/) +- [JSON License](http://www.json.org/license.html) + +## 引入特殊许可证的规则 + +原则上,OpenHarmony项目需要根据上述第4章节规定的许可证白名单接纳OpenHarmony项目贡献代码,以及根据上述第5章节规定的许可证白名单引入的第三方依赖。如果需要接纳上述白名单之外的许可证(后称“特殊许可证”,非本指导定义的上述白名单许可证之内的许可证即为特殊许可证),必须经过OpenHarmony项目代码特殊许可证的评审并遵守相关规定。 + +### OpenHarmony项目的特殊许可证评审流程 + +#### 特殊许可证评审的组织 + +特殊许可证评审由OpenHarmony合规SIG组织,参与人员至少需要PMC代表、法务代表、合规SIG代表。 + +#### 特殊许可证评审的触发 + +拟采用特殊许可证的软件模块主动上报申请 + +代码开发过程中预备采用特殊许可证可主动向合规SIG申报进行特殊许可证评审,特殊许可证申请材料至少需包括以下材料: + +软件模块名称、业务场景描述、涉及的特殊许可证名称及相关信息(第三方依赖需包含直接依赖和间接依赖使用的许可证)、许可证合规扫描工具对代码的检查报告(如OAT扫描报告)。 + +合规SIG定期汇总门禁检查结果获取采用特殊许可证的软件模块情况并组织评审 + +合规SIG基于工具检查结果,发现代码或将采用特殊许可证(三方依赖采用非白名单许可证、贡献代码采用专有许可证或仅提供二进制码或目标码的情况等),即可组织特殊许可证评审。 + +#### 特殊许可证评审的结论 + +通过特殊许可证评审是采用特殊许可证的软件模块在OpenHarmony项目中代码合规检查的必要条件,未经过特殊许可证评审的软件模块不能被合入OpenHarmony主干,该软件模块的特殊许可证评审结论需作为其在OpenHarmony QA SIG准出评审/孵化毕业评审的必要条件。 + +### 特殊许可证评审规则 + +- **规则一**:用户态的贡献代码应优先选用Apache-2.0许可证以确保许可证的归一性,如用户态的贡献代码选用非Apache-2.0许可证需要有正当理由,用户态的贡献代码所选用的特殊许可证应避免有开放源代码义务的许可证。 + +- **规则二**:贡献代码或第三方依赖所采用的特殊许可证需满足开源许可证基本的可分发与兼容性原则,即特殊许可证必须支持下游用户再分发相关代码,且特殊许可证不应与已接纳的现有项目代码的许可证存在兼容性问题。 + +- **规则三**:贡献代码或第三方依赖所采用的特殊许可证不能包含不合理的限制,如:特殊许可证包含无法履行或不易履行的开源许可证义务不能被接纳,例如广告条款,啤酒条款;特殊许可证包含不合理的限制或约束条款不能被接纳,例如商用限制条款,使用领域限制条款、歧视特别技术域条款或针对特定产品的条款。 + +- **规则四**:第三方依赖所采用的特殊许可证,需确保该第三方依赖不会影响或改变相关代码的已有许可证。 + +- **规则五**:如涉及非源码形式(二进制码或目标码)贡献或引入第三方依赖,应确保该非源码形式的代码采用开源许可证且满足上述规则,如果非源码形式提供且采用自拟许可证,必须经PMC审批同意(原则上仅可接纳必要硬件的相关算法或其特别实现采用特殊许可证,如GPU、WIFI固件、硬件编解码算法等),若PMC审批同意,需进一步经OpenHarmony法务合规小组审核并同意相应的自拟许可证。 \ No newline at end of file -- GitLab From 88900ba88eed850495979ae22c217d308512d935 Mon Sep 17 00:00:00 2001 From: lanyill Date: Fri, 30 Dec 2022 18:02:07 +0800 Subject: [PATCH 002/383] =?UTF-8?q?Lottie=E6=96=87=E6=A1=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: lanyill --- .../reference/arkui-ts/ts-components-canvas-lottie.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md index 2dab45e852..a283a21f62 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md @@ -27,7 +27,7 @@ loadAnimation( path: string, container: object, render: string, loop: boolean, autoplay: boolean, name: string ): AnimationItem -加载动画,须提前声明Animator('__lottie_ets')对象,并在Canvas完成布局后调用。可配合Canvas组件生命周期接口使用,比如onAppear()与onPageShow()。 +加载动画,须提前声明Animator('__lottie_ets')对象,并在Canvas完成布局后调用。可配合Canvas组件生命周期接口onReady()使用。 **参数:** -- GitLab From f78b30dc6f7f7d0b1060f7dd7e6c76e451f33408 Mon Sep 17 00:00:00 2001 From: wangkailong Date: Tue, 3 Jan 2023 10:35:12 +0800 Subject: [PATCH 003/383] =?UTF-8?q?=E5=88=A0=E9=99=A4wantflag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangkailong Change-Id: I0cd0c7d5825bcf88b0d7bd2ba9c30becef087467 --- .../apis/js-apis-app-ability-wantConstant.md | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantConstant.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantConstant.md index 3eb59cab78..0c1312379b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantConstant.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantConstant.md @@ -79,17 +79,4 @@ Flags说明。 | ------------------------------------ | ---------- | ------------------------------------------------------------ | | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | 指示对URI执行读取操作的授权。 | | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | 指示对URI执行写入操作的授权。 | -| FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | 将结果返回给元能力。 | -| FLAG_ABILITY_CONTINUATION | 0x00000008 | 确定是否可以将本地设备上的功能迁移到远程设备。 | -| FLAG_NOT_OHOS_COMPONENT | 0x00000010 | 指定组件是否属于OHOS。 | -| FLAG_ABILITY_FORM_ENABLED | 0x00000020 | 指定是否启动某个能力。 | -| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | 指示URI上可能持久化的授权。
**系统API**: 此接口为系统接口,三方应用不支持调用。 | -| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | 按照前缀匹配的方式验证URI权限。
**系统API**: 此接口为系统接口,三方应用不支持调用。 | -| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | 支持分布式调度系统中的多设备启动。 | -| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | 指示无论主机应用程序是否已启动,都将启动使用服务模板的功能。 | -| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | 表示迁移是可拉回的。
**系统API**: 此接口为系统接口,三方应用不支持调用。 | -| FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能。 | -| FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | 如果未安装,使用后台模式安装该功能。 | -| FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | 指示清除其他任务的操作。可以为传递给 **[ohos.app.Context](js-apis-ability-context.md)** 中**startAbility**方法的**Want**设置此标志,并且必须与**flag_ABILITY_NEW_MISSION**一起使用。 | -| FLAG_ABILITY_NEW_MISSION | 0x10000000 | 指示在历史任务堆栈上创建任务的操作。 | -| FLAG_ABILITY_MISSION_TOP | 0x20000000 | 指示如果启动能力的现有实例已位于任务堆栈的顶部,则将重用该实例。否则,将创建一个新的能力实例。 | \ No newline at end of file +| FLAG_INSTALL_ON_DEMAND | 0x00000800 | 如果未安装指定的功能,请安装该功能。 | \ No newline at end of file -- GitLab From e0c4985f326d7e6f2b22e038fb64a6d25f15ca62 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 3 Jan 2023 18:31:41 +0800 Subject: [PATCH 004/383] update docs Signed-off-by: Annie_wang --- en/device-dev/kernel/kernel-mini-overview.md | 111 +++--- en/device-dev/subsystems/subsys-build-all.md | 369 +++++++++---------- 2 files changed, 238 insertions(+), 242 deletions(-) diff --git a/en/device-dev/kernel/kernel-mini-overview.md b/en/device-dev/kernel/kernel-mini-overview.md index 0a53889536..5ae0dae4f1 100644 --- a/en/device-dev/kernel/kernel-mini-overview.md +++ b/en/device-dev/kernel/kernel-mini-overview.md @@ -24,92 +24,95 @@ The CPU architecture includes two layers: general architecture definition layer | Header file name| los_<function>.h | los_arch_<function>.h | | Function name| Halxxxx | Halxxxx | -LiteOS-M supports mainstream architectures, such as ARM Cortex-M3, ARM Cortex-M4, ARM Cortex-M7, ARM Cortex-M33, and RISC-V. +LiteOS-M supports mainstream architectures, such as RISC-V and ARM Cortex-M3, Cortex-M4, Cortex-M7, and Cortex-M33. ## Working Principles -In the **target\_config.h** file of the development board, configure the system clock and number of ticks per second, and configure the task, memory, inter-process communication (IPC), and exception handling modules based on service requirements. When the system boots, the modules are initialized based on the configuration. The kernel startup process includes peripheral initialization, system clock configuration, kernel initialization, and OS boot, as shown in the figure below. +In the **target_config.h** file of the development board, configure the system clock and number of ticks per second, and configure the task, memory, inter-process communication (IPC), and exception handling modules based on service requirements. When the system boots, the modules are initialized based on the configuration. The kernel startup process includes peripheral initialization, system clock configuration, kernel initialization, and OS boot, as shown in the figure below. + + **Figure 2** Kernel startup process - **Figure 2** Kernel startup process
![](figures/kernel-startup-process.png "kernel-startup-process") -## Directory Structure -The directory structure is as follows. +## Directory Structure + +The directory structure is as follows: ```text /kernel/liteos_m -├── arch # Code of the kernel instruction architecture layer -│ ├── arm # Code of the ARM32 architecture -│ │ ├── arm9 # Code of the ARM9 architecture -│ │ ├── cortex-m3 # Code of the cortex-m3 architecture -│ │ ├── cortex-m33 # Code of the cortex-m33 architecture -│ │ ├── cortex-m4 # Code of the cortex-m4 architecture -│ │ ├── cortex-m7 # Code of the cortex-m7 architecture -│ │ └── include # Arm architecture public header file directory -│ ├── csky # Code of the csky architecture -│ │ └── v2 # Code of the csky v2 architecture +├── arch # Kernel instruction architecture layer directory +│ └── arm # Code of the ARM architectures +│ │ ├── arm9 # Code of ARM9 +│ │ ├── cortex-m3 # Code of ARM Cortex-M3 +│ │ ├── cortex-m33 # Code of ARM Cortex-M33 +│ │ ├── cortex-m4 # Code of ARM Cortex-M4 +│ │ ├── cortex-m55 # Code of ARM Cortex-M55 +│ │ ├── cortex-m7 # code of ARM Cortex-M7 +│ │ └── include # Directory of the common header files of the ARM architectures +│ ├── csky # Code of the C-SKY architecture +│ │ └── v2 # code of C-SKY v2 │ ├── include # APIs exposed externally -│ ├── risc-v # Code of the risc-v architecture -│ │ ├── nuclei # Code of the nuclei system technology risc-v architecture -│ │ └── riscv32 # Code of the risc-v architecture -│ └── xtensa # Code of the xtensa architecture -│ └── lx6 # Code of the lx6 xtensa architecture +│ ├── risc-v # Code of the RISC-V architecture +│ │ ├── nuclei # Code of RISC-V for Nuclei +│ │ └── riscv32 # Code of the official RISC-V architecture +│ └── xtensa # Code of the Xtensa architecture +│ └── lx6 # Code of Xtensa LX6 ├── components # Optional components -│ ├── backtrace # Backtrace support +│ ├── backtrace # Backtrace │ ├── cppsupport # C++ support -│ ├── cpup # CPU percent (CPUP) +│ └── cpup # CPU percent (CPUP) │ ├── dynlink # Dynamic loading and linking │ ├── exchook # Exception hooks │ ├── fs # File systems -│ ├── lmk # Low memory killer functions -│ ├── lms # Lite memory sanitizer functions -│ ├── net # Networking functions -│ ├── power # Power management -│ ├── shell # Shell function -│ ├── fs # File systems +│ ├── lmk # Low memory killer mechanism +│ ├── lms # Lite memory sanitizer mechanism +│ └── net # Networking functions +│ ├── power # Power consumption management +│ ├── shell # Shell │ └── trace # Trace tool -├── drivers # driver Kconfig +├── drivers # Driver framework Kconfig ├── kal # Kernel abstraction layer │ ├── cmsis # CMSIS API support │ └── posix # POSIX API support ├── kernel # Minimum kernel function set │ ├── include # APIs exposed externally │ └── src # Source code of the minimum kernel function set -├── testsuites # Kernel testsuites +├── testsuites # Kernel test cases ├── tools # Kernel tools -├── utils # Common directory +├── utils # Common code ``` -## Constraints +## Constraints OpenHarmony LiteOS-M supports only C and C++. -Applicable architecture: See the directory structure for the arch layer. +OpenHarmony LiteOS-M applies only to the architectures in **arch**. -As for dynamic loading module, the shared library to be loaded needs signature verification or source restriction to ensure security. +For the shared library to be dynamically loaded, signature verification must be performed or the library source must be strictly controlled for security purposes. -## Usage +## Usage -The OpenHarmony LiteOS-M kernel build system is a modular build system based on Generate Ninja (GN) and Ninja. It supports module-based configuration, tailoring, and assembling, and helps you build custom products. This document describes how to build a LiteOS-M project based on GN and Ninja. For details about the methods such as GCC+gn, IAR, and Keil MDK, visit the community websites. +OpenHarmony +The OpenHarmony LiteOS-M kernel build system is a modular build system based on Generate Ninja (GN) and Ninja. It supports modular configuration, tailoring, and assembling, and helps you build custom products. This document describes how to build a LiteOS-M project based on GN and Ninja. For details about other building methods, such as GCC+gn, IAR, and Keil MDK, visit the related community websites. ### Setting Up the Environment -Before setting up the environment for a development board, you must set up the basic system environment for OpenHarmony first. The basic system environment includes the OpenHarmony build environment and development environment. For details, see [Quick Start Overview](../quick-start/quickstart-overview.md). +Before setting up the environment for a development board, you must set up the basic system environment for OpenHarmony first. The basic system environment refers to the OpenHarmony build environment and development environment. For details, see [Quick Start Overview](../quick-start/quickstart-overview.md). -### Obtaining the OpenHarmony Source Code +### Obtaining OpenHarmony Source Code -For details about how to obtain the source code, see [Source Code Acquisition](../get-code/sourcecode-acquire.md). This document assumes that the clone directory is `~/openHarmony` after the complete OpenHarmony repository code is obtained. +For details about how to obtain the source code, see [Obtaining Source Code](../get-code/sourcecode-acquire.md). The directory to clone is **~/openHarmony** after the OpenHarmony repository code is obtained. -### Example projects +### Supported Sample Projects -Qemu simulator: `arm_mps2_an386、esp32、riscv32_virt、SmartL_E802`. For details about how to compile and run, see [qemu guide](https://gitee.com/openharmony/device_qemu). +QEMU: **arm_mps2_an386**, **esp32**, **riscv32_virt**, and **SmartL_E802**. For details, see [QEMU](https://gitee.com/openharmony/device_qemu). -Bestechnic: `bes2600`. For details about how to compile and run, see [Bestechnic developer guide](https://gitee.com/openharmony/device_soc_bestechnic). +bestechnic: **bes2600**. For details, see [device_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic). -### Community Porting Project Links +### Community Porting Project -The LiteOS-M kernel porting projects for specific development boards are provided by community developers. The following provides the links to these projects. If you have porting projects for more development boards, you can provide your links to share your projects. +The LiteOS-M kernel porting projects for specific development boards are provided by community developers. The following provides the links to these projects. You are also welcomed to share your porting projects. - Cortex-M3: @@ -123,22 +126,22 @@ The LiteOS-M kernel porting projects for specific development boards are provide This repository provides the project code for porting the OpenHarmony LiteOS-M kernel to support the STM32F429IGTb development board. The code supports build in Ninja, GCC, and IAR modes. -## Contribution +## Contribution -[How to involve](../../contribute/contribution-process.md) +[How To Contribute](../../contribute/how-to-contribute.md) -[Commit message spec](https://gitee.com/openharmony/kernel_liteos_m/wikis/Commit%20message%E8%A7%84%E8%8C%83) +[Commit Message Specifications]((https://gitee.com/openharmony/kernel_liteos_m/wikis/Commit%20message%E8%A7%84%E8%8C%83)) -[Liteos-M kernel coding style guide](https://gitee.com/openharmony/kernel_liteos_m/wikis/OpenHarmony%E8%BD%BB%E5%86%85%E6%A0%B8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83) +[LiteOS-M Kernel Coding Specifications](https://gitee.com/openharmony/kernel_liteos_m/wikis/OpenHarmony%E8%BD%BB%E5%86%85%E6%A0%B8%E7%BC%96%E7%A0%81%E8%A7%84%E8%8C%83) -How to contribute a chip based on Liteos-M kernel: +Contribute a chip based on LiteOS-M: -[Mini System SoC Porting Guide](../porting/porting-minichip-overview.md) +[Mini-System Chip Porting Guide](../porting/porting-minichip-overview.md) -[Mini System SoC Porting Cases](../porting/porting-bes2600w-on-minisystem-display-demo.md) +[Mini-System Devices with Screens – Bestechnic SoC Porting Case](../porting/porting-bes2600w-on-minisystem-display-demo.md) -## Repositories Involved +## Repositories Involved -[Kernel Subsystem](../../readme/kernel.md) +[Kernel](../../readme/kernel.md) -[kernel\_liteos\_m](https://gitee.com/openharmony/kernel_liteos_m/blob/master/README.md) +[kernel\_liteos\_m](https://gitee.com/openharmony/kernel_liteos_m) diff --git a/en/device-dev/subsystems/subsys-build-all.md b/en/device-dev/subsystems/subsys-build-all.md index 16adb9777c..229277ec31 100644 --- a/en/device-dev/subsystems/subsys-build-all.md +++ b/en/device-dev/subsystems/subsys-build-all.md @@ -122,7 +122,7 @@ You must install the software packages required for build. The command is as fol # export PATH=~/.local/bin:$PATH ``` - ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
The hb tool will be installed during the installation of ohos-build. If the hb installation fails, see [Installing hb](../../device-dev/quick-start/quickstart-pkg-install-tool.md). + ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
The hb tool will be installed during the installation of **ohos-build**. If hb tool fails to be installed, [install hb](../../device-dev/quick-start/quickstart-pkg-install-tool.md#hb-installation) again. ## Configuration Rules @@ -143,28 +143,28 @@ To ensure that chipset and product solutions are decoupled from OpenHarmony, you ```shell -/build # Directory for build +/build # Directory for build ├── __pycache__ -├── build_scripts/ # Python scripts for build +├── build_scripts/ # Python scripts for build ├── common/ -├── config/ # Build-related configuration +├── config/ # Build-related configuration ├── core -│ └── gn/ # BUILD.gn configuration +│ └── gn/ # BUILD.gn configuration └── build_scripts/ ├── docs gn_helpers.py* -lite/ # hb and preloader entry +lite/ # hb and preloader entry misc/ -├── ohos # Configuration of OpenHarmony building and packaging -│ ├── kits # Kits build and packaging templates and processing -│ ├── ndk # NDK templates and processing -│ ├── notice # Notice templates and processing -│ ├── packages # Distribution packaging templates and processing -│ ├── sa_profile # SA profiles and processing -│ ├── sdk # SDK templates and processing, which contains the module configuration in the SDK -│ └── testfwk # Testing-related processing -├── ohos.gni* # Common .gni files (facilitating one-time import of each module) +├── ohos # Configuration of OpenHarmony build and packaging +│ ├── kits # Kits build and packaging templates and processing +│ ├── ndk # NDK templates and processing +│ ├── notice # Notice templates and processing +│ ├── packages # Distribution packaging templates and processing +│ ├── sa_profile # SA profiles and processing +│ ├── sdk # SDK templates and processing, which contains the module configuration in the SDK +│ └── testfwk # Testing-related processing +├── ohos.gni* # Common .gni files (facilitating one-time import of each module) ├── ohos_system.prop ├── ohos_var.gni* ├── prebuilts_download.sh* @@ -195,179 +195,171 @@ Then, run the build commands in command line (CLI) mode or hb mode. 1. Using the CLI - - Run the following command in the root directory of the source code to build a full distribution: - - Release version: - - ```shell - ./build.sh --product-name {product_name} - ``` - - Debug version: - - ```shell - ./build.sh --product-name {product_name} --gn-args is_debug=true - ``` - - >![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**
- >Due to the limitation of the image size, the full build for the debug version may fail to be burnt. You are advised to build the binary file for each module separately. Run the following command to build a module separately: - > - >``` - >./build.sh --product-name {product_name} --gn-args is_debug=true --build-target {target_name} - >``` - > - > - - **{product_name}** specifies the product platform supported by the current distribution, for example, **hispark_taurus_standard**. - - The image generated is stored in the **out/{device_name}/packages/phone/images/** directory. - - - The **./build.sh** command supports the following options: - - ```shell - -h, --help # Display help information and exit. - --source-root-dir=SOURCE_ROOT_DIR # Specify the path. - --product-name=PRODUCT_NAME # Specify the product name. - --device-name=DEVICE_NAME # Specify the device name. - --target-cpu=TARGET_CPU # Specify the CPU. - --target-os=TARGET_OS # Specify the operating system. - -T BUILD_TARGET, --build-target=BUILD_TARGET # Specify one or more targets to build. - --gn-args=GN_ARGS # Specify GN parameters. - --ninja-args=NINJA_ARGS # Specify Ninja parameters. - -v, --verbose # Display all commands used. - --keep-ninja-going # Keep Ninja going until 1,000,000 jobs fail. - --jobs=JOBS - --export-para=EXPORT_PARA - --build-only-gn # Perform GN parsing and do not run Ninja. - --ccache # (Optional) Use ccache for build. You need to install ccache locally. - --fast-rebuild # Specify whether to allow fast rebuild. The default value is False. - --log-level=LOG_LEVEL # Specify the log level used in the build process. The options are debug, info, and error. The default value is info. - --device-type=DEVICE_TYPE # Specify the device type. The default value is default. - --build-variant=BUILD_VARIANT #Specify the device operation mode. The default value is user. - ``` - - - - - 2. Using the hb tool - - **hb** is an OpenHarmony command line tool for executing build commands. Common hb commands are described as follows: - - **hb set** - - Sets the product to build. - - ```shell - hb set -h - usage: hb set [-h] [-root [ROOT_PATH]] [-p] - - optional arguments: - -h, --help show this help message and exit - -root [ROOT_PATH], --root_path [ROOT_PATH] - Set OHOS root path - -p, --product Set OHOS board and kernel - ``` - - - If you run **hb set** with no argument, the default setting process starts. - - You can run **hb set -root** *dir* to set the root directory of the source code. - - - You can run **hb set -p** to set the product to build. - - - - **hb env** - - Displays current settings. - - ```shell - hb env - [OHOS INFO] root path: xxx - [OHOS INFO] board: hispark_taurus - [OHOS INFO] kernel: liteos - [OHOS INFO] product: ipcamera - [OHOS INFO] product path: xxx/vendor/hisilicon/ipcamera - [OHOS INFO] device path: xxx/device/hisilicon/hispark_taurus/sdk_linux_4.19 - ``` - - - - **hb build** - - Builds a product, component, module, or chipset solution. - - ```shell - hb build -h - usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] [-cpu TARGET_CPU] [--dmverity] [--tee] - [-p PRODUCT] [-f] [-n] [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch] [--compact-mode] - [--gn-args GN_ARGS] [--keep-ninja-going] [--build-only-gn] [--log-level LOG_LEVEL] [--fast-rebuild] - [--device-type DEVICE_TYPE] [--build-variant BUILD_VARIANT] - [component [component ...]] - - positional arguments: - component name of the component, mini/small only - - optional arguments: - -h, --help show this help message and exit - -b BUILD_TYPE, --build_type BUILD_TYPE - release or debug version, mini/small only - -c COMPILER, --compiler COMPILER - specify compiler, mini/small only - -t [TEST [TEST ...]], --test [TEST [TEST ...]] - compile test suit - -cpu TARGET_CPU, --target-cpu TARGET_CPU - select cpu - --dmverity enable dmverity - --tee Enable tee - -p PRODUCT, --product PRODUCT - build a specified product with {product_name}@{company} - -f, --full full code compilation - -n, --ndk compile ndk - -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]] - compile single target - -v, --verbose show all command lines while building - -shs, --sign_haps_by_server - sign haps by server - --patch apply product patch before compiling - --compact-mode compatible with standard build system set to false if we use build.sh as build entrance - --gn-args GN_ARGS specifies gn build arguments, eg: --gn-args="foo="bar" enable=true blah=7" - --keep-ninja-going keeps ninja going until 1000000 jobs fail - --build-only-gn only do gn parse, do not run ninja - --log-level LOG_LEVEL - specifies the log level during compilationyou can select three levels: debug, info and error - --fast-rebuild it will skip prepare, preloader, gn_gen steps so we can enable it only when there is no change - for gn related script - --device-type DEVICE_TYPE - specifies device type - --build-variant BUILD_VARIANT - specifies device operating mode - ``` - - - If you run **hb build** with no argument, the previously configured code directory, product, and options are used for the build. The **-f** option deletes all products to be built. It is equivalent to running **hb clean** and **hb build**. - - You can run **hb build** *{component_name}* to build product components separately based on the development board and kernel set for the product, for example, **hb build kv_store**. - - You can run **hb build -p ipcamera@hisilicon** to skip the setting step and build the product directly. - - - You can run **hb build** in **device/board/device_company** to select the kernel and build an image that contains the kernel and drivers only based on the current development board and the selected kernel. - - - - **hb clean** - - Deletes all the files except **args.gn** and **build.log** in the **out** directory (default). To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean out/board/product**. - - ```shell - hb clean - usage: hb clean [-h] [out_path] - - positional arguments: - out_path clean a specified path. - - optional arguments: - -h, --help show this help message and exit - ``` - -> ![icon-note.gif](public_sys-resources/icon-note.gif) **NOTE**
-> - For details about how to set up the build environment and perform the build, see the related topics in [Getting Started](../quick-start/Readme-EN.md). -> - OpenHarmony also provides the Docker environment, which spares the installation of the build tool. For details, see [Docker Environment](../get-code/gettools-acquire.md). +- Run the following command in the root directory of the source code to build a full distribution: + + Release version: + ```shell + ./build.sh --product-name {product_name} + ``` + Debug version: + ```shell + ./build.sh --product-name {product_name} --gn-args is_debug=true + ``` + > ![icon-caution.gif](../public_sys-resources/icon-caution.gif) **CAUTION**
+ > Due to the limitation of the image size, the full build for the debug version may fail to be burnt. You are advised to build the binary file for each module separately. Run the following command to build a module separately: + > + > + > ``` + > ./build.sh --product-name {product_name} --gn-args is_debug=true --build-target {target_name} + > ``` + > + **{product_name}** specifies the product platform supported by the current distribution, for example, **hispark_taurus_standard**. + + The image generated is stored in the **out/{device_name}/packages/phone/images/** directory. + + + +- The **./build.sh** command supports the following options: + + ```shell + -h, --help # Display help information and exit. + --source-root-dir=SOURCE_ROOT_DIR # Specify the path. + --product-name=PRODUCT_NAME # Specify the product name. + --device-name=DEVICE_NAME # Specify the device name. + --target-cpu=TARGET_CPU # Specify the CPU. + --target-os=TARGET_OS # Specify the operating system. + -T BUILD_TARGET, --build-target=BUILD_TARGET # Specify one or more targets to build. + --gn-args=GN_ARGS # Specify GN parameters. + --ninja-args=NINJA_ARGS # Specify Ninja parameters. + -v, --verbose # Display all commands used. + --keep-ninja-going # Keep Ninja going until 1,000,000 jobs fail. + --jobs=JOBS + --export-para=EXPORT_PARA + --build-only-gn # Perform GN parsing and do not run Ninja. + --ccache # (Optional) Use ccache for build. You need to install ccache locally. + --fast-rebuild # Specify whether to allow fast rebuild. The default value is False. + --log-level=LOG_LEVEL # Specify the log level used in the build process. The options are debug, info, and error. The default value is info. + --device-type=DEVICE_TYPE # Specify the device type. The default value is default. + --build-variant=BUILD_VARIANT # Specify the device operation mode. The default value is user. + ``` + +2. Using the hb tool + +**hb** is an OpenHarmony command line tool for executing build commands. Common hb commands are described as follows: + +**hb set** + +Sets the product to build. + +```shell +hb set -h +usage: hb set [-h] [-root [ROOT_PATH]] [-p] + +optional arguments: + -h, --help show this help message and exit + -root [ROOT_PATH], --root_path [ROOT_PATH] + Set OHOS root path + -p, --product Set OHOS board and kernel +``` + +- If you run **hb set** with no argument, the default setting process starts. + +- You can run **hb set -root** *dir* to set the root directory of the source code. + +- You can run **hb set -p** to set the product to build. + +**hb env** + +Displays current settings. + +```shell +hb env +[OHOS INFO] root path: xxx +[OHOS INFO] board: hispark_taurus +[OHOS INFO] kernel: liteos +[OHOS INFO] product: ipcamera +[OHOS INFO] product path: xxx/vendor/hisilicon/ipcamera +[OHOS INFO] device path: xxx/device/hisilicon/hispark_taurus/sdk_linux_4.19 +``` + +**hb build** + +Builds a product, component, module, or chipset solution. + +```shell +hb build -h +usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]] [-cpu TARGET_CPU] [--dmverity] [--tee] + [-p PRODUCT] [-f] [-n] [-T [TARGET [TARGET ...]]] [-v] [-shs] [--patch] [--compact-mode] + [--gn-args GN_ARGS] [--keep-ninja-going] [--build-only-gn] [--log-level LOG_LEVEL] [--fast-rebuild] + [--device-type DEVICE_TYPE] [--build-variant BUILD_VARIANT] + [component [component ...]] + +positional arguments: + component name of the component, mini/small only + +optional arguments: + -h, --help show this help message and exit + -b BUILD_TYPE, --build_type BUILD_TYPE + release or debug version, mini/small only + -c COMPILER, --compiler COMPILER + specify compiler, mini/small only + -t [TEST [TEST ...]], --test [TEST [TEST ...]] + compile test suit + -cpu TARGET_CPU, --target-cpu TARGET_CPU + select cpu + --dmverity enable dmverity + --tee Enable tee + -p PRODUCT, --product PRODUCT + build a specified product with {product_name}@{company} + -f, --full full code compilation + -n, --ndk compile ndk + -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]] + compile single target + -v, --verbose show all command lines while building + -shs, --sign_haps_by_server + sign haps by server + --patch apply product patch before compiling + --compact-mode compatible with standard build system set to false if we use build.sh as build entrance + --gn-args GN_ARGS specifies gn build arguments, eg: --gn-args="foo="bar" enable=true blah=7" + --keep-ninja-going keeps ninja going until 1000000 jobs fail + --build-only-gn only do gn parse, do not run ninja + --log-level LOG_LEVEL + specifies the log level during compilationyou can select three levels: debug, info and error + --fast-rebuild it will skip prepare, preloader, gn_gen steps so we can enable it only when there is no change + for gn related script + --device-type DEVICE_TYPE + specifies device type + --build-variant BUILD_VARIANT + specifies device operating mode +``` + +- If you run **hb build** with no argument, the previously configured code directory, product, and options are used for the build. The **-f** option deletes all products to be built. It is equivalent to running **hb clean** and **hb build**. + +- You can run **hb build** *{component_name}* to build product components separately based on the development board and kernel set for the product, for example, **hb build kv_store**. + +- You can run **hb build -p ipcamera@hisilicon** to skip the setting step and build the product directly. + +- You can run **hb build** in **device/board/device_company** to select the kernel and build an image that contains the kernel and drivers only based on the current development board and the selected kernel. + +**hb clean** + +Deletes all the files except **args.gn** and **build.log** in the **out** directory (default). To clear files in a specified directory, add the directory parameter to the command, for example, **hb clean out/board/product**. + +```shell +hb clean +usage: hb clean [-h] [out_path] + +positional arguments: + out_path clean a specified path. + +optional arguments: + -h, --help show this help message and exit +``` + +> **NOTE** +> +> - For details about how to set up the build environment and perform the build, see the related topics in [Getting Started](../quick-start/quickstart-overview.md) +> - OpenHarmony also provides the Docker environment, which spares the installation of the build tool. For details, see [Docker Environment](../get-code/gettools-acquire.md) ### Building Procedures @@ -389,3 +381,4 @@ You can add and build a product, component, chipset solution, and module. For de - [Information Collected by the Open Source Software Notice](subsys-build-reference.md#information-collected-by-the-open-source-software-notice) - [Parameters for Accelerating Local Build](subsys-build-reference.md#parameters-for-accelerating-local-build) - [Viewing Ninja Build Information](subsys-build-reference.md#viewing-ninja-build-information) + -- GitLab From 46303909912c8dc7401e80ea1728d2828287289f Mon Sep 17 00:00:00 2001 From: wangtiantian Date: Wed, 4 Jan 2023 15:43:13 +0800 Subject: [PATCH 005/383] IssueNo:#I68R38 Description:modify distributedBundleManager Sig:SIG_ApplicaitonFramework Feature or Bugfix:Bugfix Binary Source:No Signed-off-by: wangtiantian --- .../application-dev/reference/apis/Readme-CN.md | 2 +- .../apis/js-apis-Bundle-distributedBundle.md | 8 ++++---- ...e.md => js-apis-distributedBundleManager.md} | 4 ++-- zh-cn/application-dev/website.md | 2 +- .../changelogs-bundlemanager.md | 17 +++++++++++++++++ 5 files changed, 25 insertions(+), 8 deletions(-) rename zh-cn/application-dev/reference/apis/{js-apis-distributedBundle.md => js-apis-distributedBundleManager.md} (96%) create mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md diff --git a/zh-cn/application-dev/reference/apis/Readme-CN.md b/zh-cn/application-dev/reference/apis/Readme-CN.md index 7abedf85ba..8109833707 100755 --- a/zh-cn/application-dev/reference/apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/apis/Readme-CN.md @@ -139,7 +139,7 @@ - [@ohos.bundle.bundleManager (bundleManager模块)](js-apis-bundleManager.md) - [@ohos.bundle.bundleMonitor (bundleMonitor模块)](js-apis-bundleMonitor.md) - [@ohos.bundle.defaultAppManager (默认应用管理)](js-apis-defaultAppManager.md) - - [@ohos.bundle.distributedBundle (distributedBundle模块)](js-apis-distributedBundle.md) + - [@ohos.bundle.distributedBundleManager (distributedBundleManager模块)](js-apis-distributedBundleManager.md) - [@ohos.bundle.freeInstall (freeInstall模块)](js-apis-freeInstall.md) - [@ohos.bundle.installer (installer模块)](js-apis-installer.md) - [@ohos.bundle.launcherBundleManager (launcherBundleManager模块)](js-apis-launcherBundleManager.md) diff --git a/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md b/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md index 26cfaf2144..49db882be3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md +++ b/zh-cn/application-dev/reference/apis/js-apis-Bundle-distributedBundle.md @@ -26,7 +26,7 @@ SystemCapability.BundleManager.DistributedBundleFramework ## distributedBundle.getRemoteAbilityInfodeprecated -> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundle)](js-apis-distributedBundle.md)替代。 +> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundleManager)](js-apis-distributedBundleManager.md)替代。 getRemoteAbilityInfo(elementName: ElementName, callback: AsyncCallback<RemoteAbilityInfo>): void; @@ -55,7 +55,7 @@ SystemCapability.BundleManager.DistributedBundleFramework ## distributedBundle.getRemoteAbilityInfodeprecated -> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundle)](js-apis-distributedBundle.md)替代。 +> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundleManager)](js-apis-distributedBundleManager.md)替代。 getRemoteAbilityInfo(elementName: ElementName): Promise<RemoteAbilityInfo> @@ -87,7 +87,7 @@ SystemCapability.BundleManager.DistributedBundleFramework ## distributedBundle.getRemoteAbilityInfosdeprecated -> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundle)](js-apis-distributedBundle.md)替代。 +> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundleManager)](js-apis-distributedBundleManager.md)替代。 getRemoteAbilityInfos(elementNames: Array<ElementName>, callback: AsyncCallback<Array<RemoteAbilityInfo>>): void; @@ -116,7 +116,7 @@ SystemCapability.BundleManager.DistributedBundleFramework ## distributedBundle.getRemoteAbilityInfosdeprecated -> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundle)](js-apis-distributedBundle.md)替代。 +> 从API version 9开始不再维护,建议使用[getRemoteAbilityInfo(@ohos.bundle.distributedBundleManager)](js-apis-distributedBundleManager.md)替代。 getRemoteAbilityInfos(elementNames: Array<ElementName>): Promise<Array<RemoteAbilityInfo>> diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedBundle.md b/zh-cn/application-dev/reference/apis/js-apis-distributedBundleManager.md similarity index 96% rename from zh-cn/application-dev/reference/apis/js-apis-distributedBundle.md rename to zh-cn/application-dev/reference/apis/js-apis-distributedBundleManager.md index 8cc6ff1dc4..71d1902ba1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedBundle.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedBundleManager.md @@ -1,4 +1,4 @@ -# @ohos.bundle.distributedBundle (distributedBundle模块) +# @ohos.bundle.distributedBundleManager (distributedBundleManager模块) 本模块提供分布式应用的管理能力 @@ -11,7 +11,7 @@ ## 导入模块 ``` -import distributedBundle from '@ohos.bundle.distributedBundle'; +import distributedBundle from '@ohos.bundle.distributedBundleManager'; ``` ## 系统能力 diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md index 696b37cdbe..97f104ba46 100644 --- a/zh-cn/application-dev/website.md +++ b/zh-cn/application-dev/website.md @@ -928,7 +928,7 @@ - [@ohos.bundle.bundleManager (bundleManager模块)](reference/apis/js-apis-bundleManager.md) - [@ohos.bundle.bundleMonitor (bundleMonitor模块)](reference/apis/js-apis-bundleMonitor.md) - [@ohos.bundle.defaultAppManager (默认应用管理)](reference/apis/js-apis-defaultAppManager.md) - - [@ohos.bundle.distributedBundle (distributedBundle模块)](reference/apis/js-apis-distributedBundle.md) + - [@ohos.bundle.distributedBundleManager (distributedBundleManager模块)](reference/apis/js-apis-distributedBundleManager.md) - [@ohos.bundle.freeInstall (freeInstall模块)](reference/apis/js-apis-freeInstall.md) - [@ohos.bundle.installer (installer模块)](reference/apis/js-apis-installer.md) - [@ohos.bundle.launcherBundleManager (launcherBundleManager模块)](reference/apis/js-apis-launcherBundleManager.md) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md new file mode 100644 index 0000000000..13e8296b97 --- /dev/null +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-bundlemanager.md @@ -0,0 +1,17 @@ +# 包管理子系统ChangeLog + +## cl.bundlemanager.1 包管理分布式查询模块名称变更,由ohos.bundle.distributedBundle变更为ohos.bundle.distributedBundleManager,接口未发生变更。 + +API9的包管理分布式查询模块名称变更,由ohos.bundle.distributedBundle变更为[ohos.bundle.distributedBundleManager](https://gitee.com/openharmony/interface_sdk-js/blob/master/api/@ohos.bundle.distributedBundleManager.d.ts),接口未发生变更。 + +**变更影响**
+对原有使用API version 9之前的应用无影响,使用API version 9的应用需要适配新模块。 + +**关键的接口/组件变更**
+包管理分布式查询模块名称由ohos.bundle.distributedBundle修改为ohos.bundle.distributedBundleManager,接口未发生变更。 + +**适配指导**
+原有导入模块@ohos.bundle.distributedBundle代码需要修改为@ohos.bundle.distributedBundleManager。 +```ts +import distributedBundle form '@ohos.bundle.distributedBundleManager'; +``` -- GitLab From 568f8e1b24bf96954cca18bdbac33926b47d99cd Mon Sep 17 00:00:00 2001 From: fangJinliang1 Date: Wed, 4 Jan 2023 17:07:43 +0800 Subject: [PATCH 006/383] add a permission Signed-off-by: fangJinliang1 Change-Id: Ife7cf4032f3f9e1a68c32a13f12e6f6d7b73fc9b --- zh-cn/application-dev/security/permission-list.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/zh-cn/application-dev/security/permission-list.md b/zh-cn/application-dev/security/permission-list.md index 4396e14cb1..1283ebfadc 100644 --- a/zh-cn/application-dev/security/permission-list.md +++ b/zh-cn/application-dev/security/permission-list.md @@ -1592,4 +1592,14 @@ **授权方式**:system_grant +**ACL使能**:TRUE + +## ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT + +允许应用发布系统公共事件。 + +**权限级别**:system_basic + +**授权方式**:system_grant + **ACL使能**:TRUE \ No newline at end of file -- GitLab From 7f75659af4f2c9b50d09f4c41596aa396012ddab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Wed, 4 Jan 2023 09:32:34 +0000 Subject: [PATCH 007/383] =?UTF-8?q?=E5=BB=B6=E8=BF=9F=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BC=80=E5=8F=91=E6=8C=87=E5=8D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../workscheduler-extensionability.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zh-cn/application-dev/application-models/workscheduler-extensionability.md diff --git a/zh-cn/application-dev/application-models/workscheduler-extensionability.md b/zh-cn/application-dev/application-models/workscheduler-extensionability.md new file mode 100644 index 0000000000..b2d6352789 --- /dev/null +++ b/zh-cn/application-dev/application-models/workscheduler-extensionability.md @@ -0,0 +1,80 @@ +# WorkSchedulerExtensionAbility(延迟任务调度回调) + +## 延迟任务概述 + +对于实时性要求不高的任务或持久性任务,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间。 + +WorkSchedulerExtensionAbility提供了延迟任务回调能力,在延迟任务开始和结束时,系统会通过接口回调应用,开发者可在回调接口里面处理自己的任务逻辑。 + +## 运作机制 + +延迟任务调度运作机制如图1所示。 + + **图1** 延迟任务调度运作机制  +![form-extension](figures/form-extension.png) + +应用通过[延迟任务API](../reference/apis/js-apis-resourceschedule-workScheduler.md)注册、删除、查询任务。 +应用服务侧进行条件检测和判断,若满足条件,则回调WorkSchedulerExtensionAbility拉起应用,执行onWorkStart、onWorkStop回调接口。 + +## 接口说明 + +WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-app-form-formExtensionAbility.md)。 + +| 接口名 | 描述 | +| -------- | -------- | +| onWorkStart(work: workScheduler.WorkInfo): void | 延迟任务调度开始回调。 | +| onWorkStop(work: workScheduler.WorkInfo): void | 延迟任务调度结束回调。 | + +## 开发步骤 + +在DevEco Studio工程中手动新建一个WorkSchedulerExtensionAbility工程,具体步骤如下。 + +1. 在工程Module对应的ets目录下,右键选择“New > Directory”,新建一个目录并命名为WorkSchedulerExtension。 + +2. 在WorkSchedulerExtension目录,右键选择“New > TypeScript File”,新建一个TypeScript文件并命名为WorkSchedulerExtension.ts。 + +3. 打开WorkSchedulerExtension.ts文件,导入模块。 + +```ts +import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility' +``` + +4. 在WorkSchedulerExtension.ts中,实现WorkSchedulerExtension生命周期接口。 + + ```ts + export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { + onWorkStart(workInfo) { + console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo)); + } + onWorkStop(workInfo) { + console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo)); + } + } + ``` + +5. 在工程Module对应的[module.json5配置文件](../quick-start/module-configuration-file.md)中注册WorkSchedulerExtensionAbility,type标签需要设置为“workScheduler”,srcEntrance标签表示当前ExtensionAbility组件所对应的代码路径。 + + ```json + { + "module": { + // ... + "extensionAbilities": [ + { + "name": "ServiceExtAbility", + "description": "workScheduler", + "type": "workScheduler", + "srcEntrance": "./ets/WorkSchedulerExtension/WorkSchedulerExtension.ts" + } + ] + } + } + ``` + +6. 在工程中实现延迟任务注册、删除等功能,延迟任务接口说明见[延迟任务API](../reference/apis/js-apis-resourceschedule-workScheduler.md)。 + +## 相关实例 + +针对WorkSchedulerExtensionAbility开发,有以下相关示例可供参考: + +[WorkSchedulerExtensionAbility的创建与使用(ArkTS)(API9)(Full SDK)](https://gitee.com/openharmony/applications_app_samples/tree/master/ability/WorkSchedExtAbility) + -- GitLab From c0f1d270dd7e8e341cd15499b6f6831e1f84fea2 Mon Sep 17 00:00:00 2001 From: donglin Date: Wed, 4 Jan 2023 10:57:47 +0000 Subject: [PATCH 008/383] modify describe Signed-off-by: donglin Change-Id: Id70d902abae76876843ce284afffb2e4bebd3c25 --- .../reference/apis/js-apis-ability-context.md | 84 ++++-- .../js-apis-app-ability-abilityConstant.md | 20 +- ...is-app-ability-abilityDelegatorRegistry.md | 6 +- ...is-app-ability-abilityLifecycleCallback.md | 103 ++++++- .../js-apis-app-ability-abilityManager.md | 130 +++++--- .../apis/js-apis-app-ability-appManager.md | 277 ++++++++++++++---- .../apis/js-apis-app-ability-appRecovery.md | 10 +- .../apis/js-apis-app-ability-uiAbility.md | 15 +- .../apis/js-apis-app-ability-wantAgent.md | 42 ++- .../apis/js-apis-inner-application-context.md | 9 +- 10 files changed, 530 insertions(+), 166 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md index 63847106c3..e3420b6481 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-ability-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-ability-context.md @@ -59,7 +59,8 @@ startAbility(want: Want, callback: AsyncCallback<void>): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -114,7 +115,8 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void& | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -177,7 +179,8 @@ startAbility(want: Want, options?: StartOptions): Promise<void>; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -234,7 +237,8 @@ startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -290,7 +294,8 @@ startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -356,7 +361,8 @@ startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityRes | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -417,7 +423,8 @@ startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncC | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -480,7 +487,8 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOp | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -551,7 +559,8 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartO | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -606,7 +615,8 @@ startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -656,7 +666,8 @@ startServiceExtensionAbility(want: Want): Promise\; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -710,7 +721,8 @@ startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -764,7 +776,8 @@ startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\ | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -815,7 +828,8 @@ stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -871,7 +885,8 @@ stopServiceExtensionAbility(want: Want): Promise\; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -931,7 +946,8 @@ stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -991,7 +1007,8 @@ stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\< | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1046,7 +1063,8 @@ terminateSelf(callback: AsyncCallback<void>): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1083,7 +1101,8 @@ terminateSelf(): Promise<void>; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1119,7 +1138,8 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<voi | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1180,7 +1200,8 @@ terminateSelfWithResult(parameter: AbilityResult): Promise<void>; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1243,7 +1264,8 @@ connectServiceExtensionAbility(want: Want, options: ConnectOptions): number; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1301,7 +1323,8 @@ connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1353,7 +1376,8 @@ disconnectServiceExtensionAbility(connection: number): Promise\; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1399,7 +1423,8 @@ disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback\{ - if (err.code != 0) { +abilityDelegator.startAbility(want, (err) => { + if (err.code !== 0) { console.log("Success start ability."); } else { console.log("Failed start ability, error: " + JSON.stringify(err)); @@ -81,7 +81,7 @@ getArguments(): AbilityDelegatorArgs ```ts import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; -var args = AbilityDelegatorRegistry.getArguments(); +let args = AbilityDelegatorRegistry.getArguments(); console.info("getArguments bundleName:" + args.bundleName); console.info("getArguments parameters:" + JSON.stringify(args.parameters)); console.info("getArguments testCaseNames:" + args.testCaseNames); diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md index 6002c48b7f..24b621cc32 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md @@ -29,6 +29,14 @@ onAbilityCreate(ability: UIAbility): void; | -------- | -------- | -------- | -------- | | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onAbilityCreate(ability){ + console.log("AbilityLifecycleCallback onAbilityCreate."); + } +} +``` ## AbilityLifecycleCallback.onWindowStageCreate @@ -45,6 +53,14 @@ onWindowStageCreate(ability: UIAbility, windowStage: window.WindowStage): void; | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onWindowStageCreate(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageCreate."); + } +} +``` ## AbilityLifecycleCallback.onWindowStageActive @@ -61,6 +77,14 @@ onWindowStageActive(ability: UIAbility, windowStage: window.WindowStage): void; | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onWindowStageActive(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageActive."); + } +} +``` ## AbilityLifecycleCallback.onWindowStageInactive @@ -77,6 +101,14 @@ onWindowStageInactive(ability: UIAbility, windowStage: window.WindowStage): void | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onWindowStageInactive(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageInactive."); + } +} +``` ## AbilityLifecycleCallback.onWindowStageDestroy @@ -93,6 +125,14 @@ onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void; | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | 是 | 当前WindowStage对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onWindowStageDestroy(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageDestroy."); + } +} +``` ## AbilityLifecycleCallback.onAbilityDestroy @@ -108,6 +148,14 @@ onAbilityDestroy(ability: UIAbility): void; | -------- | -------- | -------- | -------- | | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onAbilityDestroy(ability){ + console.log("AbilityLifecycleCallback onAbilityDestroy."); + } +} +``` ## AbilityLifecycleCallback.onAbilityForeground @@ -123,6 +171,14 @@ onAbilityForeground(ability: UIAbility): void; | -------- | -------- | -------- | -------- | | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onAbilityForeground(ability){ + console.log("AbilityLifecycleCallback onAbilityForeground."); + } +} +``` ## AbilityLifecycleCallback.onAbilityBackground @@ -138,6 +194,14 @@ onAbilityBackground(ability: UIAbility): void; | -------- | -------- | -------- | -------- | | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onAbilityBackground(ability){ + console.log("AbilityLifecycleCallback onAbilityBackground."); + } +} +``` ## AbilityLifecycleCallback.onAbilityContinue @@ -153,45 +217,56 @@ onAbilityContinue(ability: UIAbility): void; | -------- | -------- | -------- | -------- | | ability | [UIAbility](js-apis-app-ability-uiAbility.md) | 是 | 当前Ability对象 | +**示例:** +```ts +let abilityLifecycleCallback = { + onAbilityContinue(ability){ + console.log("AbilityLifecycleCallback onAbilityContinue."); + } +} +``` +## AbilityLifecycleCallback使用 + **示例:** -MyAbilityStage.ts +MyFirstAbility.ts ```ts import AbilityLifecycleCallback from "@ohos.app.ability.AbilityLifecycleCallback"; -import AbilityStage from "@ohos.app.ability.AbilityStage" +import AbilityStage from "@ohos.app.ability.AbilityStage"; +import UIAbility from '@ohos.app.ability.UIAbility'; -// 声明ability生命周期回调 -let abilityLifecycleCallback = { +// 声明ability生命周期回调,需配置所有回调后才可以在applicationContext注册 +let abilityLifecycleCallback = { onAbilityCreate(ability){ - console.log("AbilityLifecycleCallback onAbilityCreate."); + console.log("AbilityLifecycleCallback onAbilityCreate."); }, onWindowStageCreate(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageCreate."); + console.log("AbilityLifecycleCallback onWindowStageCreate."); }, onWindowStageActive(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageActive."); + console.log("AbilityLifecycleCallback onWindowStageActive."); }, onWindowStageInactive(ability, windowStage){ console.log("AbilityLifecycleCallback onWindowStageInactive."); }, onWindowStageDestroy(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageDestroy."); + console.log("AbilityLifecycleCallback onWindowStageDestroy."); }, onAbilityDestroy(ability){ - console.log("AbilityLifecycleCallback onAbilityDestroy."); + console.log("AbilityLifecycleCallback onAbilityDestroy."); }, onAbilityForeground(ability){ - console.log("AbilityLifecycleCallback onAbilityForeground."); + console.log("AbilityLifecycleCallback onAbilityForeground."); }, onAbilityBackground(ability){ - console.log("AbilityLifecycleCallback onAbilityBackground."); + console.log("AbilityLifecycleCallback onAbilityBackground."); }, onAbilityContinue(ability){ console.log("AbilityLifecycleCallback onAbilityContinue."); } } -export default class MyAbilityStage extends AbilityStage { +export default class MyFirstAbility extends UIAbility { onCreate() { console.log("MyAbilityStage onCreate"); // 1.通过context属性获取applicationContext @@ -207,11 +282,11 @@ export default class MyAbilityStage extends AbilityStage { } ``` -MyAbility.ts +MySecondAbility.ts ```ts import UIAbility from "ohos.app.ability.UIAbility" -export default class MyAbility extends UIAbility { +export default class MySecondAbility extends UIAbility { onDestroy() { let applicationContext = this.context.getApplicationContext(); // 3.通过applicationContext注销监听应用内生命周期 diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityManager.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityManager.md index 0c25a4ba3f..f90cab2fb3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-abilityManager.md @@ -46,29 +46,37 @@ updateConfiguration(config: Configuration, callback: AsyncCallback\): void | config | [Configuration](js-apis-app-ability-configuration.md) | 是 | 新的配置项,仅需配置需要更新的项。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts -var config = { - language: 'Zh-Hans', - colorMode: COLOR_MODE_LIGHT, - direction: DIRECTION_VERTICAL, - screenDensity: SCREEN_DENSITY_SDPI, - displayId: 1, - hasPointerDevice: true, +const config = { + language: 'Zh-Hans', // 简体中文 + colorMode: COLOR_MODE_LIGHT, // 浅色模式 + direction: DIRECTION_VERTICAL, // 垂直方向 + screenDensity: SCREEN_DENSITY_SDPI, // 屏幕分辨率为"sdpi" + displayId: 1, // 应用在Id为1的物理屏上显示 + hasPointerDevice: true, // 指针类型设备已连接 } try { abilityManager.updateConfiguration(config, (err) => { - if (err.code != 0) { + if (err.code !== 0) { console.log("updateConfiguration fail, err: " + JSON.stringify(err)); } else { console.log("updateConfiguration success."); } }) } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -94,16 +102,24 @@ updateConfiguration(config: Configuration): Promise\ | ---------------------------------------- | ------- | | Promise\ | 以Promise方式返回接口运行结果息,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts -var config = { - language: 'Zh-Hans', - colorMode: COLOR_MODE_LIGHT, - direction: DIRECTION_VERTICAL, - screenDensity: SCREEN_DENSITY_SDPI, - displayId: 1, - hasPointerDevice: true, +const config = { + language: 'Zh-Hans', // 简体中文 + colorMode: COLOR_MODE_LIGHT, // 浅色模式 + direction: DIRECTION_VERTICAL, // 垂直方向 + screenDensity: SCREEN_DENSITY_SDPI, // 屏幕分辨率为"sdpi" + displayId: 1, // 应用在Id为1的物理屏上显示 + hasPointerDevice: true, // 指针类型设备已连接 } try { @@ -113,8 +129,8 @@ try { console.log('updateConfiguration fail, err: ' + JSON.stringify(err)); }) } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -138,16 +154,16 @@ getAbilityRunningInfos(callback: AsyncCallback\>): vo ```ts try { - abilityManager.getAbilityRunningInfos((err,data) => { - if (err.code != 0) { + abilityManager.getAbilityRunningInfos((err, data) => { + if (err.code !== 0) { console.log("getAbilityRunningInfos fail, error: " + JSON.stringify(err)); } else { console.log("getAbilityRunningInfos success, data: " + JSON.stringify(data)); } }); } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -167,6 +183,14 @@ getAbilityRunningInfos(): Promise\> | ---------------------------------------- | ------- | | Promise\> | 以Promise方式返回接口运行结果及运行中的ability信息,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts @@ -177,8 +201,8 @@ try { console.log("getAbilityRunningInfos fail, err: " + JSON.stringify(err)); }); } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -196,25 +220,33 @@ getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\31
-1。 | | callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts -var upperLimit = 0; +let upperLimit = 10; try { - abilityManager.getExtensionRunningInfos(upperLimit, (err,data) => { - if (err.code != 0) { + abilityManager.getExtensionRunningInfos(upperLimit, (err, data) => { + if (err.code !== 0) { console.log("getExtensionRunningInfos fail, err: " + JSON.stringify(err)); } else { console.log("getExtensionRunningInfos success, data: " + JSON.stringify(data)); } }); } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -232,7 +264,7 @@ getExtensionRunningInfos(upperLimit: number): Promise\31
-1。 | **返回值:** @@ -240,10 +272,18 @@ getExtensionRunningInfos(upperLimit: number): Promise\> | 以Promise方式返回接口运行结果及运行中的extension信息,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts -var upperLimit = 0; +let upperLimit = 10; try { abilityManager.getExtensionRunningInfos(upperLimit).then((data) => { @@ -252,8 +292,8 @@ try { console.log("getExtensionRunningInfos fail, err: " + JSON.stringify(err)); }) } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -271,11 +311,19 @@ getTopAbility(callback: AsyncCallback\): void; | --------- | ---------------------------------------- | ---- | -------------- | | callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | 是 | 以回调方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts -abilityManager.getTopAbility((err,data) => { - if (err.code != 0) { +abilityManager.getTopAbility((err, data) => { + if (err.code !== 0) { console.log("getTopAbility fail, err: " + JSON.stringify(err)); } else { console.log("getTopAbility success, data: " + JSON.stringify(data)); @@ -297,6 +345,14 @@ getTopAbility(): Promise\; | ---------------------------------------- | ------- | | Promise\<[ElementName](js-apis-bundleManager-elementName.md)>| 以Promise方式返回接口运行结果及应用名,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例**: ```ts diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md index 3d243123ac..5a8e00916e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-appManager.md @@ -26,12 +26,20 @@ static isRunningInStabilityTest(callback: AsyncCallback<boolean>): void | -------- | -------- | |AsyncCallback<boolean> |以回调方式返回接口运行结果及当前是否处于稳定性测试场景,可进行错误处理或其他自定义处理。true: 处于稳定性测试场景,false:处于非稳定性测试场景。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts appManager.isRunningInStabilityTest((err, flag) => { if (err.code !== 0) { - conseole.log("isRunningInStabilityTest faile, err: " + JSON.stringify(err)); + console.log("isRunningInStabilityTest faile, err: " + JSON.stringify(err)); } else { console.log("The result of isRunningInStabilityTest is:" + JSON.stringify(flag)); } @@ -53,6 +61,14 @@ static isRunningInStabilityTest(): Promise<boolean> | -------- | -------- | | Promise<boolean> | 以Promise方式返回接口运行结果及当前是否处于稳定性测试场景,可进行错误处理或其他自定义处理。true: 处于稳定性测试场景,false:处于非稳定性测试场景。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -78,6 +94,14 @@ isRamConstrainedDevice(): Promise\; | -------- | -------- | | Promise<boolean> | 以Promise方式返回接口运行结果及当前设备是否为ram受限设备,可进行错误处理或其他自定义处理。true:当前设备为ram受限设备,false:当前设备为非ram受限设备。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -102,6 +126,14 @@ isRamConstrainedDevice(callback: AsyncCallback\): void; | -------- | -------- | | AsyncCallback<boolean> |以回调方式返回接口运行结果及当前设备是否为ram受限设备,可进行错误处理或其他自定义处理。true:当前设备为ram受限设备,false:当前设备为非ram受限设备。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -128,6 +160,14 @@ getAppMemorySize(): Promise\; | -------- | -------- | | Promise<number> | 以Promise方式返回接口运行结果及应用程序内存大小,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -152,6 +192,14 @@ getAppMemorySize(callback: AsyncCallback\): void; | -------- | -------- | |AsyncCallback<number> |以回调方式返回接口运行结果及应用程序内存大小,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -164,7 +212,7 @@ appManager.getAppMemorySize((err, data) => { }) ``` -## appManager.getProcessRunningInformation9+ +## appManager.getProcessRunningInformation getProcessRunningInformation(): Promise\>; @@ -182,6 +230,14 @@ getProcessRunningInformation(): Promise\>; | -------- | -------- | | Promise\> | 以Promise方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -210,6 +266,14 @@ getProcessRunningInformation(callback: AsyncCallback\> | 以回调方式返回接口运行结果及有关运行进程的信息,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -247,9 +311,17 @@ on(type: "applicationState", observer: ApplicationStateObserver): number; | --- | --- | | number | 已注册观测器的数字代码,可用于off接口取消注册观测器。| +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** -```js +```ts let applicationStateObserver = { onForegroundApplicationChanged(appStateData) { console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); @@ -268,8 +340,8 @@ let applicationStateObserver = { } } try { - const observerCode = appManager.on('applicationState', applicationStateObserver); - console.log(`[appManager] observerCode: ${observerCode}`); + const observerId = appManager.on('applicationState', applicationStateObserver); + console.log(`[appManager] observerCode: ${observerId}`); } catch (paramError) { console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); } @@ -301,9 +373,17 @@ on(type: "applicationState", observer: ApplicationStateObserver, bundleNameList: | --- | --- | | number | 已注册观测器的数字代码,可用于off接口注销观测器。| +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** -```js +```ts let applicationStateObserver = { onForegroundApplicationChanged(appStateData) { console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); @@ -323,8 +403,8 @@ let applicationStateObserver = { } let bundleNameList = ['bundleName1', 'bundleName2']; try { - const observerCode = appManager.on("applicationState", applicationStateObserver, bundleNameList); - console.log(`[appManager] observerCode: ${observerCode}`); + const observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); } catch (paramError) { console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); } @@ -350,11 +430,46 @@ off(type: "applicationState", observerId: number, callback: AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts -let observerId = 100; +let observeId: int = 0; +// 1.注册应用状态监听器 +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); + } +} +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} + +// 2.注销应用状态监听器 function unregisterApplicationStateObserverCallback(err) { if (err.code !== 0) { console.log("unregisterApplicationStateObserverCallback faile, err: " + JSON.stringify(err)); @@ -363,7 +478,7 @@ function unregisterApplicationStateObserverCallback(err) { } } try { - appManager.off(observerId, unregisterApplicationStateObserverCallback); + appManager.off("applicationState", observerId, unregisterApplicationStateObserverCallback); } catch (paramError) { console.log('error: ' + paramError.code + ', ' + paramError.message); } @@ -394,13 +509,48 @@ off(type: "applicationState", observerId: number): Promise\; | -------- | -------- | | Promise\ | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts -let observerId = 100; +let observeId: int = 0; + +// 1.注册应用状态监听器 +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); + } +} +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} +// 2.注销应用状态监听器 try { - appManager.off(observerId).then((data) => { + appManager.off("applicationState", observerId).then((data) => { console.log("unregisterApplicationStateObserver success, data: " + JSON.stringify(data)); }).catch((err) => { console.log("unregisterApplicationStateObserver faile, err: " + JSON.stringify(err)); @@ -414,7 +564,7 @@ try { getForegroundApplications(callback: AsyncCallback\>): void; -获取所有当前处于前台的应用信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 +获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 **需要权限**:ohos.permission.GET_RUNNING_INFO @@ -422,40 +572,13 @@ getForegroundApplications(callback: AsyncCallback\>): void; **系统API**:该接口为系统接口,三方应用不支持调用。 -**参数:** +**错误码**: -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | -------- | -------- | -| callback | AsyncCallback\> | 是 | 以回调方式返回接口运行结果及应用状态数据数组,可进行错误处理或其他自定义处理。 | +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | -**示例:** - -```ts -function getForegroundApplicationsCallback(err, data) { - if (err.code !== 0) { - console.log("getForegroundApplicationsCallback fail, err: " + JSON.stringify(err)); - } else { - console.log("getForegroundApplicationsCallback success, data: " + JSON.stringify(data)); - } -} -try { - appManager.getForegroundApplications(getForegroundApplicationsCallback); -} catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); -} -``` - -## appManager.getForegroundApplications - -getForegroundApplications(callback: AsyncCallback\>): void; - -获取所有当前处于前台的应用信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 - -**需要权限**:ohos.permission.GET_RUNNING_INFO - -**系统能力**:SystemCapability.Ability.AbilityRuntime.Core - -**系统API**:该接口为系统接口,三方应用不支持调用。 +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **参数:** @@ -484,7 +607,7 @@ try { getForegroundApplications(): Promise\>; -获取所有当前处于前台的应用信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 +获取当前所有前台应用的信息。该应用信息由[AppStateData](js-apis-inner-application-appStateData.md)定义。 **需要权限**:ohos.permission.GET_RUNNING_INFO @@ -498,6 +621,14 @@ getForegroundApplications(): Promise\>; | -------- | -------- | | Promise\> | 返回前台进程应用程序的数组。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -527,6 +658,14 @@ killProcessWithAccount(bundleName: string, accountId: number): Promise\ | bundleName | string | 是 | 应用Bundle名称。 | | accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -564,11 +703,19 @@ killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCal | accountId | number | 是 | 系统帐号的帐号ID,详情参考[getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess)。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts -var bundleName = 'bundleName'; -var accountId = 0; +let bundleName = 'bundleName'; +let accountId = 0; function killProcessWithAccountCallback(err, data) { if (err.code !== 0) { console.log("killProcessWithAccountCallback fail, err: " + JSON.stringify(err)); @@ -598,10 +745,18 @@ killProcessesByBundleName(bundleName: string, callback: AsyncCallback\); | bundleName | string | 是 | 表示Bundle名称。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts -var bundleName = 'bundleName'; +let bundleName = 'bundleName'; function killProcessesByBundleNameCallback(err, data) { if (err.code !== 0) { console.log("killProcessesByBundleNameCallback fail, err: " + JSON.stringify(err)); @@ -640,6 +795,14 @@ killProcessesByBundleName(bundleName: string): Promise\; | -------- | -------- | | Promise\ | 返回执行结果。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -674,6 +837,14 @@ clearUpApplicationData(bundleName: string, callback: AsyncCallback\); | bundleName | string | 是 | 表示Bundle名称。 | | callback | AsyncCallback\ | 是 | 以回调方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts @@ -716,6 +887,14 @@ clearUpApplicationData(bundleName: string): Promise\; | -------- | -------- | | Promise\ | 以Promise方式返回接口运行结果,可进行错误处理或其他自定义处理。 | +**错误码**: + +| 错误码ID | 错误信息 | +| ------- | -------- | +| 16000050 | Internal error. | + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 + **示例:** ```ts diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-appRecovery.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-appRecovery.md index c755796888..8701d22ee3 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-appRecovery.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-appRecovery.md @@ -68,7 +68,9 @@ enableAppRecovery(restart?: [RestartFlag](#apprecoveryrestartflag), saveOccasion ```ts import AbilityStage from '@ohos.app.ability.AbilityStage'; -export default class MyAbilityStage extends AbilityStage { +import UIAbility from '@ohos.app.ability.UIAbility'; + +export default class MyAbility extends UIAbility { onCreate() { appRecovery.enableAppRecovery(RestartFlag::ALWAYS_RESTART, SaveOccasionFlag::SAVE_WHEN_ERROR, SaveModeFlag::SAVE_WITH_FILE); } @@ -88,7 +90,8 @@ restartApp(): void; ```ts import errorManager from '@ohos.app.ability.errorManager'; -var observer = { + +let observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg) appRecovery.restartApp(); @@ -114,7 +117,8 @@ saveAppState(): boolean; ```ts import errorManager from '@ohos.app.ability.errorManager'; -var observer = { + +let observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg) appRecovery.saveAppState(); diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md index 690658a9b7..35c5597515 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md @@ -332,7 +332,8 @@ call(method: string, data: rpc.Sequenceable): Promise<void>; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -412,7 +413,8 @@ callWithResult(method: string, data: rpc.Sequenceable): Promise<rpc.MessagePa | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -573,7 +575,8 @@ release(): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -628,7 +631,8 @@ on(method: string, callback: CalleeCallback): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -693,7 +697,8 @@ off(method: string): void; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantAgent.md b/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantAgent.md index c8121dfc31..cfe7cc925e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantAgent.md +++ b/zh-cn/application-dev/reference/apis/js-apis-app-ability-wantAgent.md @@ -52,7 +52,8 @@ getWantAgent(info: WantAgentInfo, callback: AsyncCallback\): void | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -150,7 +151,8 @@ getWantAgent(info: WantAgentInfo): Promise\ | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -345,7 +347,8 @@ getBundleName(agent: WantAgent): Promise\ | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -446,7 +449,8 @@ getUid(agent: WantAgent, callback: AsyncCallback\): void | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -557,7 +561,8 @@ getUid(agent: WantAgent): Promise\ | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -660,7 +665,8 @@ getWant(agent: WantAgent, callback: AsyncCallback\): void | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -772,7 +778,8 @@ getWant(agent: WantAgent): Promise\ | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -873,7 +880,8 @@ cancel(agent: WantAgent, callback: AsyncCallback\): void | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -983,7 +991,8 @@ cancel(agent: WantAgent): Promise\ | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1083,7 +1092,8 @@ trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: AsyncCallback\ | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1407,7 +1419,8 @@ getOperationType(agent: WantAgent, callback: AsyncCallback\): void; | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -1515,7 +1528,8 @@ getOperationType(agent: WantAgent): Promise\; | 16000151 | Invalid wantagent object.| | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| -以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-inner-application-context.md b/zh-cn/application-dev/reference/apis/js-apis-inner-application-context.md index eadb6087fe..7ee6b8b37b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-inner-application-context.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inner-application-context.md @@ -52,7 +52,8 @@ createBundleContext(bundleName: string): Context; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -91,7 +92,8 @@ createModuleContext(moduleName: string): Context; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** @@ -129,7 +131,8 @@ createModuleContext(bundleName: string, moduleName: string): Context; | 错误码ID | 错误信息 | | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -其他ID见[元能力子系统错误码](../errorcodes/errorcode-ability.md) + +以上错误码详细介绍请参考[errcode-ability](../errorcodes/errorcode-ability.md)。 **示例:** -- GitLab From 473b450911f693f60bca2893ed19475e56b12a12 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 5 Jan 2023 14:37:11 +0800 Subject: [PATCH 009/383] update docs Signed-off-by: Annie_wang --- en/application-dev/security/Readme-EN.md | 3 +- .../security/accesstoken-guidelines.md | 235 ++++++++++++------ .../security/accesstoken-overview.md | 38 +-- .../app-provision-structure.md | 72 +++--- .../figures/permission-read_calendar.png | Bin 0 -> 23640 bytes 5 files changed, 221 insertions(+), 127 deletions(-) rename en/application-dev/{quick-start => security}/app-provision-structure.md (61%) create mode 100644 en/application-dev/security/figures/permission-read_calendar.png diff --git a/en/application-dev/security/Readme-EN.md b/en/application-dev/security/Readme-EN.md index ce9f1dd695..05d2d2864d 100644 --- a/en/application-dev/security/Readme-EN.md +++ b/en/application-dev/security/Readme-EN.md @@ -8,7 +8,7 @@ - User Authentication - [User Authentication Overview](userauth-overview.md) - [User Authentication Development](userauth-guidelines.md) -- Key Management +- HUKS - [HUKS Overview](huks-overview.md) - [HUKS Development](huks-guidelines.md) - Crypto Framework @@ -20,3 +20,4 @@ - hapsigner - [hapsigner Overview](hapsigntool-overview.md) - [hapsigner Guide](hapsigntool-guidelines.md) + - [HarmonyAppProvision Configuration File](app-provision-structure.md) \ No newline at end of file diff --git a/en/application-dev/security/accesstoken-guidelines.md b/en/application-dev/security/accesstoken-guidelines.md index c46c8fc828..0e45400d14 100644 --- a/en/application-dev/security/accesstoken-guidelines.md +++ b/en/application-dev/security/accesstoken-guidelines.md @@ -2,58 +2,46 @@ ## When to Use -In this example, the app requires the **ohos.permission.PERMISSION1** and **ohos.permission.PERMISSION2** permissions to implement core functions. +The [Ability Privilege Level (APL)](accesstoken-overview.md#app-apls) of an application can be **normal**, **system_basic**, or **system_core**. The default APL is **normal**. The [permission types](accesstoken-overview.md#permission-types) include **system_grant** and **user_grant**. For details about the permissions for apps, see the [App Permission List](permission-list.md). -- The ability privilege level (APL) of the app is **normal**. -- The level of **ohos.permission.PERMISSION1** is **normal**, and the authorization mode is **system_grant**. -- The level of **ohos.permission.PERMISSION2** is **system_basic**, and the authorization mode is **user_grant**. +This document describes the following operations: -> **CAUTION** -> -> In this scenario, the required permissions include a **user_grant** permission. You can check whether the caller has the required permission through permission verification. -> -> If the permission verification result indicates that the app has not obtained that permission, dynamic user authorization is required. +- [Declaring Permissions in the Configuration File](#declaring-permissions-in-the-configuration-file) +- [Declaring Permissions in the ACL](#declaring-permissions-in-the-acl) +- [Requesting User Authorization](#requesting-user-authorization) +- [Pre-Authorizing user_grant Permissions](#pre-authorizing-user_grant-permissions) -## Available APIs +## Declaring Permissions in the Configuration File -The table below lists only the API used in this guide. For more information, see [Ability Access control](../reference/apis/js-apis-ability-context.md). +During the development, you need to declare the permissions required by your application one by one in the project configuration file. The application cannot obtain the permissions that are not declared in the configuration file. OpenHarmony provides two application models: FA model and stage model. For more information, see Application Models. The application bundle and configuration file vary with the application model. -| API | Description | -| ------------------------------------------------------------ | --------------------------------------------------- | -| requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>) : void; | Requests permissions from the user by displaying a dialog box. This API uses an asynchronous callback to return the result.| +> **NOTE**
The default APL of an application is **normal**. When an application needs the **system_basic** or **system_core** APL, you must declare the permission in the configuration file and the [Access Control List (ACL)](#declaring-permissions-in-the-acl). -## Declaring Permissions +The following table describes the fields in the configuration file. -Declare the permissions required by the app one by one in the project configuration file. The app cannot obtain the permissions that are not declared in the configuration file. The ability framework provides two models: Feature Ability (FA) model and stage model. For more information, see [Ability Framework Overview](../ability/ability-brief.md). +| Field | Mandatory| Description | +| --------- | -------- | ------------------------------------------------------------ | +| name | Yes | Name of the permission. | +| reason | No | Reason for requesting the permission.
This field is mandatory when the requested permission needs user authorization (user_grant).| +| usedScene | No | Application scenario of the permission.
This field is mandatory when the requested permission needs user authorization (user_grant).| +| abilities | No | Abilities that require the permission. The value is an array.
**Applicable model**: stage| +| ability | No | Abilities that require the permission. The value is an array.
**Applicable model**: FA| +| when | No | Time when the permission is used.
Value:
- **inuse**: The permission applies only to a foreground application.
- **always**: The permission applies to both the foreground and background applications.| -Note that the app bundle structure and configuration file vary with the ability framework model. - -The following table describes the tags in the configuration file. - -| Field | Description | -| --------- | ------------------------------------------------------------ | -| name | Name of the permission. | -| reason | Reason for requesting the permission. This field is mandatory for a user_grant permission.| -| usedScene | Scenario of the permission. This field is mandatory for a user_grant permission.| -| ability | Abilities that use the permission. The value is an array.
**Applicable model**: FA | -| abilities | Abilities that use the permission. The value is an array.
**Applicable model**: stage | -| when | Time when the permission is used. The value can be **inuse** (the permission can be used only in the foreground) or **always** (the permission can be used in foreground and background).| - -### FA Model - -For the apps based on the FA model, declare the required permissions in the **config.json** file. +### Stage Model -**Example** +If the application is based on the stage model, declare the permissions in [**module.json5**](../quick-start/module-configuration-file.md). ```json { "module" : { - "reqPermissions":[ + // ... + "requestPermissions":[ { "name" : "ohos.permission.PERMISSION1", "reason": "$string:reason", "usedScene": { - "ability": [ + "abilities": [ "FormAbility" ], "when":"inuse" @@ -63,7 +51,7 @@ For the apps based on the FA model, declare the required permissions in the **co "name" : "ohos.permission.PERMISSION2", "reason": "$string:reason", "usedScene": { - "ability": [ + "abilities": [ "FormAbility" ], "when":"always" @@ -74,21 +62,20 @@ For the apps based on the FA model, declare the required permissions in the **co } ``` -### Stage Model - -For the apps based on the stage model, declare the required permissions in the **module.json5** file. +### FA Model -**Example** +If the application is based on the FA model, declare the required permissions in **config.json**. ```json { "module" : { - "requestPermissions":[ + // ... + "reqPermissions":[ { "name" : "ohos.permission.PERMISSION1", "reason": "$string:reason", "usedScene": { - "abilities": [ + "ability": [ "FormAbility" ], "when":"inuse" @@ -98,7 +85,7 @@ For the apps based on the stage model, declare the required permissions in the * "name" : "ohos.permission.PERMISSION2", "reason": "$string:reason", "usedScene": { - "abilities": [ + "ability": [ "FormAbility" ], "when":"always" @@ -109,60 +96,152 @@ For the apps based on the stage model, declare the required permissions in the * } ``` -## Declaring the ACL - -The permission level of **ohos.permission.PERMISSION2** is **system_basic**, which is higher than the app's APL. In this case, use the ACL. +## Declaring Permissions in the ACL -In addition to declaring all the permissions in the configuration file, you must declare the permissions whose levels are higher that the app's APL in the app's profile. For details about the fields in the profile, see [HarmonyAppProvision Configuration File](../quick-start/app-provision-structure.md). +If an application of the **normal** level requires permissions corresponding to the **system_basic** or **system_core** level, you need to declare the required permissions in the ACL. -For example, declare the required permission in the **acls** field: +For example, if an application needs to access audio files of a user and capture screenshots, it requires the **ohos.permission.WRITE_AUDIO** permission (of the **system_basic** level) and the **ohos.permission.CAPTURE_SCREEN** permission (of the **system_core** level). In this case, you need to add the related permissions to the **acl** field in the [HarmonyAppProvision configuration file](app-provision-structure.md). ```json { - "acls": { - "allowed-acls": [ - "ohos.permission.PERMISSION2" - ] - } + // ... + "acls":{ + "allowed-acls":[ + "ohos.permission.WRITE_AUDIO", + "ohos.permission.CAPTURE_SCREEN" + ] + } } ``` -## Applying for the user_grant Permission - -After the permissions are declared, the system grants the system_grant permission during the installation of the app. The user_grant permission must be authorized by the user. +## Requesting User Authorization -Therefore, before allowing the app to call the API protected by the **ohos.permission.PERMISSION2** permission, the system needs to verify whether the app has the permission to do so. +If an application needs to access user privacy information or use system abilities, for example, accessing location or calendar information or using the camera to take photos or record videos, it must request the permission from users. A permission verification is performed first to determine whether the current invoker has the corresponding permission. If the application has not obtained that permission, a dialog box will be displayed to request user authorization. The following figure shows an example. + -If the verification result indicates that the app has the permission, the app can access the target API. Otherwise, the app needs to request user authorization and then proceeds based on the authorization result. For details, see [Access Control Overview](accesstoken-overview.md). +> **NOTE**
Each time before an API protected by a permission is accessed, the **requestPermissionsFromUser()** API will be called to request user authorization. After a permission is dynamically granted, the user may revoke the permission. Therefore, the previously granted authorization status cannot be persistent. -> **CAUTION** -> -> The permission authorized by a user is not permanent, because the user may revoke the authorization at any time. Each time before the API protected by the permission is called, call **requestPermissionsFromUser()** to request the permission. +### Stage Model -## Example +Example: Request the permission to read calendar information for an app. + +1. Apply for the **ohos.permission.READ_CALENDAR** permission. For details, see [Declaring Permissions in the Configuration File](#declaring-permissions-in-the-configuration-file). + +2. Call **requestPermissionsFromUser()** in the **onWindowStageCreate()** callback of the UIAbility to dynamically apply for the permission, or request user authorization on the UI based on service requirements. The return value of **requestPermissionsFromUser()** indicates whether the application has the target permission. If yes, the target API can be called normally. + + Request user authorization in UIAbility. + + ```typescript + import UIAbility from '@ohos.app.ability.UIAbility'; + import Window from '@ohos.window'; + import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; + import { Permissions } from '@ohos.abilityAccessCtrl'; + + export default class EntryAbility extends UIAbility { + // ... + + onWindowStageCreate(windowStage: Window.WindowStage) { + // Main window is created, set main page for this ability + let context = this.context; + let AtManager = abilityAccessCtrl.createAtManager(); + // The return value of requestPermissionsFromUser determines whether to display a dialog box to request user authorization. + const permissions: Array = ['ohos.permission.READ_CALENDAR']; + AtManager.requestPermissionsFromUser(context, permissions).then((data) => { + console.info(`[requestPermissions] data: ${JSON.stringify(data)}`); + let grantStatus: Array = data.authResults; + if (grantStatus[0] === -1) { + // The authorization fails. + } else { + // The authorization is successful. + } + }).catch((err) => { + console.error(`[requestPermissions] Failed to start request permissions. Error: ${JSON.stringify(err)}`); + }) + + // ... + } + } + ``` + + Request user authorization on the UI. + ```typescript + import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; + import { Permissions } from '@ohos.abilityAccessCtrl'; + import common from '@ohos.app.ability.common'; + + @Entry + @Component + struct Index { + reqPermissions() { + let context = getContext(this) as common.UIAbilityContext; + let AtManager = abilityAccessCtrl.createAtManager(); + // The return value of requestPermissionsFromUser determines whether to display a dialog box to request user authorization. + const permissions: Array = ['ohos.permission.READ_CALENDAR']; + AtManager.requestPermissionsFromUser(context, permissions).then((data) => { + console.info(`[requestPermissions] data: ${JSON.stringify(data)}`); + let grantStatus: Array = data.authResults; + if (grantStatus[0] === -1) { + // The authorization fails. + } else { + // The authorization is successful. + } + }).catch((err) => { + console.error(`[requestPermissions] Failed to start request permissions. Error: ${JSON.stringify(err)}`); + }) + } + + // Page display. + build() { + // ... + } + } + ``` -The procedure for requesting user authorization is as follows: +### FA Model -1. Obtain the ability context. -2. Call **requestPermissionsFromUser()** to request user authorization. The API determines whether to display a dialog box to request user authorization based on whether the app has the permission. -3. Check whether the app has the permission based on the return value. If the app has the permission, the API can be invoked. +Call [requestPermissionsFromUser()](../reference/apis/js-apis-inner-app-context.md#contextrequestpermissionsfromuser7) to request user authorization. ```js - // OnWindowStageCreate of the ability - onWindowStageCreate() { - var context = this.context +// onWindowStageCreate() of Ability +onWindowStageCreate() { + let context = this.context; let array:Array = ["ohos.permission.PERMISSION2"]; - // requestPermissionsFromUser determines whether to display a dialog box based on the permission authorization status. + // The return value of requestPermissionsFromUser determines whether to display a dialog box to request user authorization. context.requestPermissionsFromUser(array).then(function(data) { - console.log("data type:" + typeof(data)); - console.log("data:" + data); - console.log("data permissions:" + data.permissions); - console.log("data result:" + data.authResults); + console.log("data:" + JSON.stringify(data)); + console.log("data permissions:" + JSON.stringify(data.permissions)); + console.log("data result:" + JSON.stringify(data.authResults)); }, (err) => { - console.error('Failed to start ability', err.code); + console.error('Failed to start ability', err.code); }); - } +} +``` +## Pre-Authorizing user_grant Permissions +By default, the **user_grant** permissions must be dynamically authorized by the user through a dialog box. However, for pre-installed apps, you can pre-authroize the permissions, for example, the **ohos.permission.MICROPHONE** permission, in the [**install_list_permission.json**](https://gitee.com/openharmony/vendor_hihope/blob/master/rk3568/preinstall-config/install_list_permissions.json) file to prevent the user authorization dialog box from being displayed. The **install_list_permissions.json** file is in the **/system/etc/app/** directory on a device. When the device is started, the **install_list_permissions.json** file is loaded. When the application is installed, the **user_grant** permissions in the file are granted. The **install_list_permissions.json** file contains the following fields: +- **bundleName**: bundle name of the application. +- `app_signature`: fingerprint information of the application. For details, see [Application Privilege Configuration Guide](../../device-dev/subsystems/subsys-app-privilege-config-guide.md#configuration-in-install-list-capabilityjson). +- **permissions**: **name** specifies the name of the **user_grant** permission to pre-authorize. **userCancellable** specifies whether the user can revoke the pre-authorization. The value **true** means the user can revoke the pre-authorization; the vaue **false** means the opposite. + +> **NOTE**
This file is available only for preinstalled applications. + +```json +[ + // ... + { + "bundleName": "com.example.myapplication", // Bundle Name. + "app_signature": ["****"], // Fingerprint information. + "permissions":[ + { + "name": "ohos.permission.PERMISSION_X", // Permission to pre-authorize. + "userCancellable": false // The user cannot revoke the authorization. + }, + { + "name": "ohos.permission.PERMISSION_X", // Permission to pre-authorize. + "userCancellable": true // The user can revoke the authorization. + } + ] + } +] ``` -> **NOTE**
-> For details about the APIs, see [AbilityContext](../reference/apis/js-apis-ability-context.md). + \ No newline at end of file diff --git a/en/application-dev/security/accesstoken-overview.md b/en/application-dev/security/accesstoken-overview.md index 9e8aa2a655..e42543a356 100644 --- a/en/application-dev/security/accesstoken-overview.md +++ b/en/application-dev/security/accesstoken-overview.md @@ -2,14 +2,14 @@ OpenHarmony AccessTokenManager (ATM) implements unified app permission management based on access tokens. -By default, apps can access limited system resources. However, in some cases, an app needs to access excess data (including personal data) and functions of the system or another app to implement extended functions. The system or apps must also explicitly share their data or functions through APIs. OpenHarmony uses app permissions to perform access control and prevent improper or malicious use of these data or functions. +By default, apps can access limited system resources. However, to provide extended features, an app may need to access excess data (including personal data) and functions of the system or another app. The system or apps must also explicitly share their data or functions through APIs. OpenHarmony uses app permissions to perform access control and prevent improper or malicious use of these data or functions. App permissions are used to protect the following objects: - Data: personal data (such as photos, contacts, calendar, and location), device data (such as device ID, camera, and microphone), and app data. - Functions: device functions (such as making calls, sending SMS messages, and connecting to the Internet) and app functions (such as displaying windows and creating shortcuts). -Without the required permissions, an app cannot access or perform operations on the target object. Permissions must be clearly defined for apps. With well-defined app permissions, the system can standardize the behavior of apps and protect user privacy. Before an app accesses the target object, the target object verifies the app's permissions and denies the access if the app does not have required permissions. +Without the required permissions, an app cannot access or perform operations on the target object. Permissions must be clearly defined for apps. With well-defined app permissions, the system can standardize app behavior and protect user privacy. Before an app accesses the target object, the target object verifies the app's permissions and denies the access if the app does not have required permissions. Currently, ATM verifies app permissions based on the token identity (token ID). A token ID identifies an app. ATM manages app permissions based on the app's token ID. @@ -17,13 +17,13 @@ Currently, ATM verifies app permissions based on the token identity (token ID). Observe the following principles for permission management: -- Provide clear description about the app functions and scenarios for each permission required by the app so that users can clearly know why and when these permissions are required. Do not induce or mislead users' authorization. The permissions on an app must comply with the description provided in the app. +- Provide clear description about the functions and scenarios for each permission required by the app so that users can clearly know why and when these permissions are needed. Do not induce or mislead users' authorization. The permissions on an app must comply with the description provided in the app. - Use the principle of least authority for user permissions. Allow only necessary permissions for service functions. - When an app is started for the first time, avoid frequently displaying dialog boxes to request multiple permissions. Allow the app to apply for the permission only when it needs to use the corresponding service function. - If a user rejects to grant a permission, the user can still use functions irrelevant to this permission and can register and access the app. - Provide no more message if a user rejects the authorization required by a function. Provide onscreen instructions to direct the user to grant the permission in **Settings** if the user triggers this function again or needs to use this function. -- All the permissions granted to apps must come from the [App Permission List](permission-list.md). Custom permissions are not allowed for apps currently. +- All the permissions granted to apps must come from the [App Permission List](permission-list.md). Custom permissions are not allowed currently. ## Permission Workflows @@ -50,7 +50,9 @@ The figure below illustrates the process. 3. A low-APL app can have a high-level permission by using the Access Control List (ACL). For details, see [ACL](#acl). ### Permission Verification -To protect sensitive data and eliminate security threads on core abilities, you can use the permissions in the [App Permission List](permission-list.md) to protect the related API from unauthorized calling. Each time before the API is called, a permission verification is performed to check whether the caller has the required permission. The API can be called only after the permission verification is successful. +To protect sensitive data and eliminate security threads on core abilities, you can use the permissions in the [App Permission List](permission-list.md) to protect an API from unauthorized calling. Each time before the API is called, a permission verification is performed to check whether the caller has the required permission. + +The API can be called only after the permission verification is successful. The figure below shows the permission verification process. @@ -58,7 +60,7 @@ The figure below shows the permission verification process. 1: An app permission can be used to control the access to an API that has sensitive data involved or security threats on the core abilities. -2: Select the permission from the [App Permission List](permission-list.md). For example, if contact information is involved in an API provided by an app, you can use the contact-related permissions to protect the API. +2: The API can be protected by a permission in the [ACL](#acl). For example, if contact information is involved in an API provided by an app, you can use the contact-related permissions to protect the API. 3: Use **verifyAccessToken()** to check whether the caller has the required permission. For details, see [Permission Verification Guide](permission-verify-guidelines.md). @@ -88,7 +90,7 @@ Then, use the [hapsigner](hapsigntool-overview.md) tool to generate a certificat The following is an example. -This example shows only the modification of the **apl** field. Set other fields based on your requirements. For details about the fields in the profile, see [HarmonyAppProvision Configuration File](../quick-start/app-provision-structure.md). +This example shows only the modification of the **apl** field. Set other fields based on your requirements. For details about the fields in the profile, see [HarmonyAppProvision Configuration File](app-provision-structure.md). ```json { @@ -123,7 +125,7 @@ The permissions open to apps vary with the permission level. The permission leve The system_core permission allows access to core resources of the OS. These resources are underlying core services of the system. If these resources are corrupted, the OS cannot run properly. - The system_core permissions are not open to third-party apps currently. + The system_core permissions are not open to third-party apps. ## Permission Types @@ -131,19 +133,19 @@ Permissions can be classified into the following types based on the authorizatio - **system_grant** - The app permissions are authorized by the system. This type of apps cannot access user or device sensitive information. The allowed operations have minor impact on the system or other apps. + The app permissions are authorized by the system. Apps granted with this type of permission cannot access user or device sensitive information, and the operations allowed for them have minor impact on the system or other apps. - For a system_grant app, the system automatically grants the required permissions to the app when the app is installed. The system_grant permission list must be presented to users on the details page of the app in the app store. + For a system_grant app, the system automatically grants the required permissions to the app when the app is installed. The system_grant permission list must be presented to users on the details page of the app in the app market. - **user_grant** - The app permissions must be authorized by users. This type of apps may access user or device sensitive information. The allowed operations may have a critical impact on the system or other apps. + The app permissions must be authorized by users. Apps granted with this type of permissions may access user or device sensitive information, and the operations allowed for them may have a critical impact on the system or other apps. This type of permissions must be declared in the app installation package and authorized by users dynamically during the running of the app. The app has the permission only after user authorization. - For example, in the [App Permission List](permission-list.md), the permissions for microphones and cameras are user_grant. The list provides reasons for using the permissions. + For example, as described in the [App Permission List](permission-list.md), the permissions for microphones and cameras are user_grant. The list provides reasons for using the permissions. - The user_grant permission list must also be presented on the details page of the app in the app store. + The user_grant permission list must also be presented on the details page of the app in the app market. ### Authorization Processes @@ -173,7 +175,7 @@ The procedure is as follows: **Precautions** - Check the app's permission each time before the operation requiring the permission is performed. -- To check whether a user has granted specific permissions to an app, use the [verifyAccessToken](../reference/apis/js-apis-abilityAccessCtrl.md) method. This method returns [PERMISSION_GRANTED](../reference/apis/js-apis-abilityAccessCtrl.md) or [PERMISSION_DENIED](../reference/apis/js-apis-abilityAccessCtrl.md). For details about the sample code, see [Access Control Development](accesstoken-guidelines.md). +- To check whether a user has granted specific permissions to an app, use the [verifyAccessToken](../reference/apis/js-apis-abilityAccessCtrl.md) API. This API returns [PERMISSION_GRANTED](../reference/apis/js-apis-abilityAccessCtrl.md) or [PERMISSION_DENIED](../reference/apis/js-apis-abilityAccessCtrl.md). For details about the sample code, see [Access Control Development](accesstoken-guidelines.md). - Users must be able to understand and control the authorization of user_grant permissions. During the running process, the app requiring user authorization must proactively call an API to dynamically request the authorization. Then, the system displays a dialog box asking the user to grant the permission. The user will determine whether to grant the permission based on the running context of the app. - The permission authorized is not permanent, because the user may revoke the authorization at any time. Therefore, even if the user has granted the requested permission to the app, the app must check for the permission before calling the API controlled by this permission. @@ -190,15 +192,15 @@ The APL of app A is **normal**. App A needs to have permission B (system_basic l In this case, you can use the ACL to grant permission B to app A. For details, see [Using the ACL](#using-the-acl). -For details about whether a permission can be enabled through the ACL, see the [App Permission List](permission-list.md). +For details about whether a permission can be enabled through the ACL, see [App Permission List](permission-list.md). ### Using the ACL -If the permission required by an app has higher level than the app's APL, you can use the ACL to grant the permission required. +If the permission required by an app has a higher level than the app's APL, you can use the ACL to grant the permission required. In addition to the preceding [authorization processes](#authorization-processes), you must declare the ACL. -That is, you need to declare the required permissions in the app's configuration file, and [declare the ACL](accesstoken-guidelines.md#declaring-the-acl) in the app's profile. The subsequent steps of authorization are the same. +That is, you need to declare the required permissions in the app's configuration file, and [declare the ACL](accesstoken-guidelines.md#declaring-permissions-in-the-acl) in the app's profile. The subsequent steps of authorization are the same. **NOTICE** @@ -216,4 +218,4 @@ When developing an app installation package, you must declare the ACL in the **a } ``` -For details about the fields in the profile, see [HarmonyAppProvision Configuration File](../quick-start/app-provision-structure.md). +For details about the fields in the profile, see [HarmonyAppProvision Configuration File](app-provision-structure.md). diff --git a/en/application-dev/quick-start/app-provision-structure.md b/en/application-dev/security/app-provision-structure.md similarity index 61% rename from en/application-dev/quick-start/app-provision-structure.md rename to en/application-dev/security/app-provision-structure.md index df74f5fc03..d31cd6c690 100644 --- a/en/application-dev/quick-start/app-provision-structure.md +++ b/en/application-dev/security/app-provision-structure.md @@ -4,19 +4,19 @@ The **HarmonyAppProvision** configuration file (also called profile) is the file ## Configuration File Internal Structure The **HarmonyAppProvision** file consists of several parts, which are described in the table below. -**Table 1** Internal structure of the HarmonyAppProvision file -| Name | Description | Data Type| Mandatory| Initial Value Allowed| +| Name | Description | Data Type| Yes | Initial Value Allowed| | ----------- | ---------------------------------------------------------------------------------------- | -------- | -------- | -------- | | version-code | Version number of the **HarmonyAppProvision** file format. The value is a positive integer containing 32 or less digits.| Number | Yes| No | | version-name | Description of the version number. It is recommended that the value consist of three segments, for example, **A.B.C**. | String | Yes| No| -| uuid | Unique ID of the **HarmonyAppProvision** file. | String | Yes| No| +| uuid | Unique ID of the **HarmonyAppProvision** file. | String | Yes | No| | type | Type of the **HarmonyAppProvision** file. The value can be **debug** (for application debugging) or **release** (for application release). The recommended value is **debug**.| String | Yes| No| -| issuer | Issuer of the **HarmonyAppProvision** file. | String | Yes| No| +| issuer | Issuer of the **HarmonyAppProvision** file. | String | Yes | No| | validity | Validity period of the **HarmonyAppProvision** file. For details, see [Internal Structure of the validity Object](#internal-structure-of-the-validity-object). | Object | Yes | No | -| bundle-info | Information about the application bundle and developer. For details, see [Internal Structure of the bundle-info Object](#internal-structure-of-the-bundle-info-object). | Object | Yes| No | -| acls | Information about the Access Control Lists (ACLs). For details, see [Internal Structure of the acls Object](#internal-structure-of-the-acls-object). | Object | No| No | -| permissions | Permissions required for your application. For details, see [Internal Structure of the permissions Object](#internal-structure-of-the-permissions-object). | Object | No| No | -| debug-info | Additional information for application debugging. For details, see [Internal Structure of the debug-info Object](#internal-structure-of-the-debug-info-object). | Object | No| No | +| bundle-info | Information about the application bundle and developer. For details, see [Internal Structure of the bundle-info Object](#internal-structure-of-the-bundle-info-object). | Object | Yes | No | +| acls | Information about the Access Control Lists (ACLs). For details, see [Internal Structure of the acls Object](#internal-structure-of-the-acls-object). | Object | No | Yes | +| permissions | Permissions required for your application. For details, see [Internal Structure of the permissions Object](#internal-structure-of-the-permissions-object). | Object | No | Yes | +| debug-info | Additional information for application debugging. For details, see [Internal Structure of the debug-info Object](#internal-structure-of-the-debug-info-object). | Object | No | Yes | +| app-privilege-capabilities | Privilege information required by the application bundle. For details, see the [Application Privilege Configuration Guide](../../device-dev/subsystems/subsys-app-privilege-config-guide.md). | String array| No | Yes | An example of the **HarmonyAppProvision** file is as follows: ```json @@ -47,6 +47,7 @@ An example of the **HarmonyAppProvision** file is as follows: "device-id-type": "udid", "device-ids": ["string"] }, + "app-privilege-capabilities":["AllowAppUsePrivilegeExtension"], "issuer": "OpenHarmony" } @@ -54,46 +55,57 @@ An example of the **HarmonyAppProvision** file is as follows: ### Internal Structure of the validity Object -| Name | Description | Data Type| Mandatory| Initial Value Allowed| + +| Name | Description | Data Type| Mandatory | Initial Value Allowed| | ---------- | ------------------------------- | ------- | ------- | --------- | | not-before | Start time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes| No | | not-after | End time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes| No | ### Internal Structure of the bundle-info Object -| Name | Description | Data Type| Mandatory| Initial Value Allowed| + +| Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | -------- | --------- | -| developer-id | Unique ID of the developer.| String | Yes| No | -| development-certificate | Information about the [debug certificate](../security/hapsigntool-guidelines.md).| Number | Yes if **type** is set to **debug** and no otherwise | No | -| distribution-certificate | Information about the [release certificate](../security/hapsigntool-guidelines.md).| Number | Yes if **type** is set to **release** and no otherwise| No | -| bundle-name | Bundle name of the application.| String | Yes| No | -| apl | [Ability privilege level (APL)](../security/accesstoken-overview.md) of your application. The value can be **normal**, **system_basic**, or **system_core**.| String | Yes| No | -| app-feature | Type of your application. The value can be **hos_system_app** (system application) or **hos_normal_app** (non-system application).| String | Yes| No | +| developer-id | Unique ID of the developer.| String | Yes | No | +| development-certificate | Information about the [debug certificate](hapsigntool-guidelines.md).| Number | Yes if **type** is set to **debug** and no otherwise | No | +| distribution-certificate | Information about the [release certificate](hapsigntool-guidelines.md).| Number | Yes if **type** is set to **release** and no otherwise| No | +| bundle-name | Bundle name of the application.| String | Yes | No | +| apl | [Ability privilege level (APL)](accesstoken-overview.md) of your application. The value can be **normal**, **system_basic**, or **system_core**.| String | Yes | No | +| app-feature | Type of your application. The value can be **hos_system_app** (system application) or **hos_normal_app** (normal application). Only system applications are allowed to call system APIs. If a normal application calls a system API, the call cannot be successful or the application may run abnormally.| String | Yes | No | ### Internal Structure of the acls Object -The **acls** object contains the [ACLs](../security/accesstoken-overview.md) configured for your application. It should be noted that you still need to fill the ACL information in the **reqPermissions** attribute in the [config.json](package-structure.md) file. - -**Table 4** Internal structure of the acls object +The **acls** object contains the [ACL](accesstoken-overview.md) configured for your application. It should be noted that you still need to add the ACL information to the **requestPermissions** attribute in the application configuration file. -| Name | Description | Data Type| Mandatory| Initial Value Allowed| +| Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | | allowed-acls | [ACLs](../security/accesstoken-overview.md) configured for your application.| String array | No| No | ### Internal Structure of the permissions Object -The **permissions** object contains restricted permissions required for your application. Different from the ACLs set in the **acls** object, these permissions need user authorization during the running of your application. It should be noted that you still need to fill the permission information in the **reqPermissions** attribute in the [config.json](package-structure.md) file. +The **permissions** object contains restricted permissions required for your application. Different from the ACLs set in the **acls** object, these permissions need user authorization during the running of your application. It should be noted that you still need to add the ACL information to the **requestPermissions** attribute in the application configuration file. -**Table 5** Internal structure of the permissions object - -| Name | Description | Data Type| Mandatory| Initial Value Allowed| +| Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | -| restricted-permissions | [Restricted permissions](../security/accesstoken-overview.md) required for your application.| String array | No| No | +| restricted-permissions | [Restricted permissions](accesstoken-overview.md) required for your application.| String array | No | No | ### Internal Structure of the debug-info Object The **debug-info** object contains debugging information of your application, mainly device management and control information. -**Table 6** Internal structure of the debug-info object - -| Name | Description | Data Type| Mandatory| Initial Value Allowed| +| Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | -| device-id-type | Type of the device ID. Currently, only the udid type is supported.| String | No| No | -| device-ids | IDs of devices on which your application can be debugged.| String array | No| No | +| device-id-type | Type of the device ID. Currently, only the udid type is supported.| String | No | No | +| device-ids | IDs of devices on which your application can be debugged.| String array | Optional| No | + +## Modifying the HarmonyAppProvision Configuration File + +When a development project is created, the default application type is **hos_normal_app** and the default APL level is **normal**. + +To enable the application to use system APIs, you need to change the **app-feature** field to **hos_system_app** (system application). To apply for high-level permissions, you need to modify fields such as **apl** and **acl**. For details, see [Access Control Overview](accesstoken-overview.md). + + +To modify the HarmonyAppProvision configuration file, perform the following steps: + +1. Open the directory where the OpenHarmony SDK is located. (You can choose **File** > **Settings** > **OpenHarmony SDK** on the menu bar of DevEco Studio to query the directory.) +2. In the SDK directory, go to the **Toolchains** > {Version} > **lib** directory and open the **UnsgnedReleasedProfileTemplate.json** file. +3. Modify the related fields as required. + +After modifying the configuration file, [sign the application](hapsigntool-guidelines.md). diff --git a/en/application-dev/security/figures/permission-read_calendar.png b/en/application-dev/security/figures/permission-read_calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..8236bcf2f28531c88362f1210cf70101740394bf GIT binary patch literal 23640 zcmeFZ2{=@L-#C0E2}xPYHial_SyHx1vL#uvlWDO}OtP<23PlK^2xSS`l6}c!Pso~` zF^25Ska09)<~@G*Z|VNM_wzje|8w2f^f+cQ15y5cE5+_b>zd@iXfCIE-#G3b}L2K8Ss@U-)841DA0xK}7D>y$~j5 zZk{7Yc~6LnojfHjuW(lJ+<7I9OPX5RI=YvynV6cHTUc7%wzGF|baHm_@bvQb@%8h6 z_$V|i{PB~BxcKJ@iAgVBCTC=3WxvhI&3pHuw5+_MvZ}hKv8lPGwe55Jm%jdiZ-Ya_ zBcr%!{LJk4x%q`f;`+vqP0|*){d1QtI)MHkWc^9m-{?9F(X|JX!CuB)y6E=!K!g79 zUWVgm_OYuQG2V3N5R!ecpYvkuo00}5VL4+0*R6ZK%-kaKxD&)((te}t|BSGZ{}p9_ z680Beqrd@rI!Ji*hXFVM=2MwfX}~E~aDxWe^EAVL-m5A;QtU_rLSoQgG=f!Vz=$T1 zk@~7gqE(_^8P@IFjqm!M=GP77`ZXU*c#o|iC$xyGZko9M)*># z9*c2(^JQxsMLgM*c;V&h!pc0!civ4XS?6hpvq|8y`}-R_K8ZaTASMrkFao0)I6M8= z_0G`pPya4XAD@D(>?%jY3(Iz+mLabkooCETuD;Xa#Ge|G8kxg-r#->+6)q{6le8*> z9BVttCz_w3S`}SyRkziPm&Bwe-4)ziG%P5%Qr6>iIay@)&1$&sgW`AliikAH-J|H#wptjIB{``_i*Gb{=YCNav zTYU{judwNgn@=2L?iL>Y{w;T^v)ARDB)cxl!SaA*%pB(tIg0!dvfW_T-OmN$P8DgC zxd?;O+e7QwdN(F~-}Xk9O15!RH^txfTCO+uuq7lv-elrf3mkZwDoT>y-y&G&a_$Wo36aYibbhqkzQOfj$xqnd(UNGi^s|8!p$Kk zhAnii;>reL77yk%n2ae!6G~g=+K-y@&YoVX-5%(C;{Ec-S5(G{c+JMD$6`&9VvaH4gfq>B<~& zdH&_KxVT4y#g2<6Iu?PAh3fDN{zG|A*wVL2`7RO)>5q%v_L?crI6GEWmZh#r*@wyT zGC5k1FlkQ<`skmA$e#Z$M39bmoF0o(G#^lqV3Kl7n^?Zx-#Pj$R>16BXTYO?@k;0Y zd(iMGoBs9q2UJ=4L`Fr-8&Lzpw#6mAG z@prmj5?@V&S1lv?gT1bd!Hkg^DcbRF%xCzC4;M_t`exOeU1M(ceSCWM6x?$=P>Z`z z(a+|~`jL&Fg5^TReMKx<6C2v1s(bL9{Wr$ym(#b}i*H3CmHF$MCHREqIHxoO)z;qR z>p6?6;e$=0a%wo%F~t)KW6Y^nY{E=pHL5l)ot9%uKCf2mGH~cLT>K0TxSzZbrBixp zf;Eiw)nHHw1)b{vIHOsnX^%$m3L<>?AXl=+o8jJw4}ml5u#Nu2$vdkYs^ zMFSklZjLWJE8I2}kIYx8d2TQ8M9C^az#fs-7P`M+rvUwokP&Rre?=XUg4B*X=W_>x&fB1nNs>Vp|uL zn+DW7i${=C4;TD=qp-$nPy}kI_u7XYS@}VC?|7`-cilPN?`M}^-Ss`v##MzCR1g6l zC_XV8{HkhHHq*Z{zE8r=ctk4Eb1w}j-2Za#%)UDhKDC|kdaL5NV;yX2h13$BHEVk- z?&tjR;QX{G4Pa}!J+O%wZ8IUB&3}(Vq8%>NpFTj*9(MSW*aZ|y^noa?a;X%{b^sT1ly%S zX?az%(e**Cu<5TRX*{+iHSg_(=P$^E(hSop_IGGNt$w`z-K*d3plhwO`7FMey693j zJbjdk+iHssV;hH(c|unuaU7MT0E_qK&JJFF4y`-WT6VUk_W@TxT0Qsy`NC4NVvGZk zzh}Y!ZKklzmvonkcJ?loaHz7=gs&FJqS(<0~-ypJo{=h1*9 z==UEOoHofG!Zpbnwfp6o(S>_O&G3;#%*K){1U(6Y-n9!0iT>l~4A}A*YMTUkIE)^Z zllANXx}&gi=O==Ym;3s>5gWxbAY{VOa`v=y) z;CQXq;ALcj_b%SB^*?U>E0Vh>#QgmP>X+ZC+(o=sTaHJ3S$!u70#D=B2_e-M)# zVbfhzZGH>3y!03OXh&;wclqz+=X8?8MFI{%zGe*l=N-DSdeGjo5`5VijoBYKw=q8=#g@?n*vP0A$SM+aJiIJ}VbwXN1AOu3Ygz?vdh~*B% z9}?kG;PlX|+WxyBTrqQlW7HiPNDxL{($lloAEQg5W24yJV@5lvkg(MTX}~Vq-eyEQ z`yA9E9jA6fLjIiz!)@IjJAT{KXDCv6$~Spl2RxCtq9c zph<=HONurPhzl=94{PCRfL8gf!J%gK_DTP(okwo)A4oGPU3E=PL%M(0ujvheI9+}rt;{%!G(hleo|E9|UW)m5wB6#U zZQcyNlPoaqBWUXpHOAC>*FCLD;X8t0cqV;V0}tPMqJ*Kwb|7BD3C?1tDc(>9Ek?x} zGA=*g$Sz|OiH>dKP4e*`&CQI{RRI|NyL;*!GkxD$3ioYBiJ8P5;?*pzi}pC8%Cx@? zAP>oq4WanBB=9l~C^0al0e$E5iBNdWDhVU{2Fs&|S*}9IUY?{UEk=B&o}%0$q<_LP z*H_~WIGoftd-1Me8)o&Is&rjKswT zzqV{e+nua>7-&7!g=xO7*J>+JLJ$}?(r0@t`cbogR@XxE$_a9o@*&1Ng>4KCV7!TL z&!K^))|$Sb5=6KYEJVpm+d4i z|a-h88E(%9NlL&hv48%!fSipmO-ap;v|dN99EXQ9^N90gsU9rHnID#!#{#<75cV{n zK@j7FBO60IO2J3Ki0^Y>zsc{&J6UCx1~z{0+&<8?`Z<>ZYFq;@@5|vdw zP$WzkOm`QebU(G3c(1zN<;Fw(J}!N^AB7TYh6#e#8Zbz{*ZSs0(UX>K z@3gLx1g8#P5ZL5u4dmI$pwN@G=Hp##>4@oJb+_%^E_R8==W2V+aP%nUjlZM;PRvQu zZEb6NDElftq_hdj5sDwa8F<;(yIE+=$53MjRB1>^PrrHo%8@U;5b*joM+5lbE^A@v zQk7(vz>CDW&^qp)jh_c43J}?OwTD+GueonmtX;vs#aX6vLE$y*A$m`Fs`6EcJ8blz z8x1fEQ%+G1Sg|@elYDBQv5n)So1eWKV?Qfw8$s%9w^;ELQov7qV-hI=9ef?Ew*vg8 zp6PNDODz(->_udssqek3&Phks$V7723-vBAp=3e&zeVX1TM zCvT~Z*m4z?7)b+IM{3ZGr?TS=P(RM)C&CFvGWRp5_Y;aK(lX(2LaZOwk<3Gy;j0_R zcTCheEE6leJs^7>3m%3Nm$hK|%BIJ`LcUrCFsTm9bT;XXa3cNqF2aF2P` z5RUBuAB^DT)usaD!=~p_zb0dRa)FG9lYfqXN_TAK{wYqmuhKmYr#x2;pf)PPek$a1 zSJeM4fp_{74g{0_GkWSZV*M8UC=FQF{RWi`qphg^keMW^0XzA1u53{T%k8;~gDh@$ z+8zft-b*GYouuk?9PxYg!Td(>@P($Irfq?x2g3?X{9_rA5fxo-&JV3Oz0cbEwI9J8`RB`>%vWk0pmK4_mmU)T-G7b;Th!LOLfo*%t5 zAYRsdX=~-8JNe8no))>zNM$`4lzvoAPVst;U@}yoK*<_1enpgvt!U!V;7JsPOWUjp zT)-DvL#Y`fMLBO`VenSpC^F|mNrkrsF63k{sZ05!%<*ec&96d@Y=%~_G~fW1px8FK zpO~{8Nfc{|%3l}~)$2f3N#oM>l2r>?JLS4K?ZT83;-z}LMa(_O>Vf?I=&9#ug4y+J z#$XAdZ)jSqF*U&WV|{5Qrc}3ZQ&nx@<)97=CEcmg0mwTxyZ_ul)`0M4G*J||Y_6g=EUJ@53V&;Oje z2M(UVuBf_`q0(|gZJHDqb(`PAB@H&Pss1+Wp(h%d>~!qW`_*^r5{Jj7m508j6Le%i zk=b+#SK?3`?1-AYZ*7bDU}1q;+S|SbGqUN&^+C(GiOyW445r(3rhXz%?^nS!(GAj2 z)j}d>Oqj|#PDC}O92E{XCGN|4m#UEETC!7g^mQ80_Mt5HUHtG_t+R55e z?pQ3_yVz%FajHK=5>!qg-1VVw316TAj})8y6O*PUL|Lw%&#p4;%62xo(%0p6uj9F; zKvulVo_m*1ip&iCka2YtNGLFDti2Vw*GZN009%hCV;pr7Tlxx7p1zDC^5Mu@A8f#I z&6kpj2bSxe`c-s+S7L{z=P2xaRAx4@E&UqeD`FWz=5e6`?2!9;o5lr76gEkm zji26@QmE2VHfA|>bahMsaGJWo7Fb*k1kY02c{$MpJq#%HH9i0Ou!Kt*2f?c?Vw1)3 z$i^niBSp1qKDe1^IV{Tx;sus)83T%y4^g2TLSdQD| zcQ}I{bKDSx9qN#B`9Tac0NWuU`n1L{f)UuO1FIQvi^}JWisi>XE51%RJYwc_LJKBa zdE6*WU7jwL>_hGPxkWj|Ls}xhBkQ?*GtFyy6l%Q(B#nQnfA8iu7N2n5vffkB``*6E zmH*t7?DzUm$g5`6A(2EelF!a7itep~3bkX%m8%ohYmy$LBbQ&3?>E-_?9|c#XV@Wh zLomh-Lk}9@3_{BTt}|*@Dg{N_zTP+%ZK*MVn7DJ|c+>@3ML}Wy#5?9aSb}HzL)TzF z>Q_u@PWT4X1>7Nu7{QA8GDd}2G}MKQN!&o z2tqty__R|Dm0d@+s7%)hdJVRG^;P}SR52%Sv(c!|gT{zuasZ2WBG=8&8@v|ZO1^2x zXel&N8xRCn^aC{&YU?B)F(;<(`g8}3%NKt|-|UOj$xjtESLCGU>GLz?zZ&K%c4mJ6 zv=BdmZh+#8+dF8|BdFJH9>_t=30rnk(CZH46-fB{#(B@t6K8q2xtAp0WhSnVo*c$! zlnUM-f{`IhY4}V74%Y7rZdE%%KsC#-f;IS-G{$}o-7;74BX;HAaG~CxEGIQjSA2Rm zVg{4O4FUACkb=S*ucN1AC_EbtR3@TUwrEL_uR-(HPt%r-+Vi!ChR3t+?P-1`e{=ud zxP6Q+)F_GVeh9I^KrNzTD*`;n(GV<042yw>Z(@)7hOJ$XH%L6IRUR>Ckmkg>4_H~Z zRbk(!#pX|q{40{!jVk_)(Zrsj+SkKi&ZWA31wG~Kdin#$1CaT8FA^=>ZrwGF?R{{d zfNAgH5LOQ~GYxR00dy1=vJd6B8Z#mNVQWt5%0tb*8}G?xU1KWUr_8-4x}N?R4?-4Y z+&?~0HWuWlUsYOH8MgR!T{Og3^a8PqZ%@I~oRBQ`{VIptZDJaWN7`^}pYrqDDI8M> zMo`W5qC&)?K96?gd*pND%lR*2^#I*tg8PtV8TZd)pJ4Y>B#6b0eNMr$gu#c?g@PJY zBa4G)CK~z34K|1P#yxDp8)Akdr`DF2iYoG^5MgRegreL}F%=6xO^n8KRWE*4_hRfh zY@4YG+(YxI?EztUQoQp`eDQwJqm}zCdrG8}LX?{F=am^@XHWCJ5?ms7-fx!>fC|er zJoL0LhamwSwpPc1r3pilEo{wHGvRqO$i@qL9}`8M%!b=ebI+3T>PVB8NSUXwry~HN$C0Dde6dDc<+qI z^-xZLBi<$~hOFkx*o5Vfu5-=-#TvcUPSO=+g(z)S47x9=EjAhpAi5)m^Jt-m2M~1 zQ`ZvTOaH@TC)lAaVg z8zKtx&(TFNnN}nM^iLi4)OQD--1&(Y4yy-aiZ( zf+Q}N_xwl+U{Us!x^o9-?R)IWp0)!nZ%nzg=`P*}_-~lUrGsMWpS;0GDrUh4Dd*LM zID#@)FvEtZ4Ucp=w~3U}uPfDE0bHDPP2FT!%K2)rCjF2ILF^H>%_zZ+NY{s>_FXL5 zzI=)7Lxg=kPpR z@TJCJPvFVH;NxePPVV)7jVp54z74y&0-9$zV?WqeJqjwdc$u|&{E>J}XEH!kl9+(w z;>$2USzKUSjp$Gqp?wsw!%)sf#=#r!t4K#|8Gv>xGSraK@Et-rPMad@okRoFT{Wnn z0pT?pOUB23>QQAq8t}T}4Gjns1EJ!_fz)go&|?jiC+j&VC+QpKi#=&T*j1F-8l#)RoEP4tl1`*IS>#5cgdV1$yui(Pk*I9FIW zf5vx-W!)fes$s2Kz!(~Eg3T71V-nRyjdI!Q9@$XW=fDL;hBhaS71^DeNjwJw=Q-(y zM=UjRtlIV-ZaZ)~*W}U>Q~K9?vNIxplmG2_hx|EP940R@arvixWl8^3K*|#fer?`U z4!5Iyfn=akGcacgJ~lKx)Dq?DRwqZ61?x8&{1aoH3+6{B)}EAga1Xq$a`txM@t7@% zx*Zf6nVaAv9!Iwfcf^j#*@6%7L2Qlbhp0SYI1crMqKA4n;q1Lt`3zw_ksXQ)xy0Ul zPvmqN54|{794g^O-fOnNU!CT^+Al&*qneQL$D=IPo%sR-H&T%I)tpjjz!TLL&oV>C zHvgg|wa7dJXAeGYcen57IY~kv1Adt#aFaTq#O$1=8n&)5s=#-*yUkn!sskfEemUiD z^9aoQU`+6tmrjVyS=f4U3iY4MeD%*jT^bkk#SXUY(uDF4CkhKu zarq6Q$+#Z$%O1CN5oGTxa(q5M{!k>wkwea1^t?#gDQUPJR3<=|I#M_lr(D}YRL(f! z$WhihL=|&`1AWym+4+QCuX)ews+b2rUaLVdPzvX&CID}us(}5tLiVn}d;zg5#0kn- zD^HEpCT1RGVWY;^=L~@(0P~XCL27F-52y;wL1yn>LGk%kHpg1F=UBN2o+7e-Ef!5h z2@7`!R3${Te3y4m5`U9&E9CB(3xehU2R$st$JD_(mr>Y`J0!`AmrH(`z5)2_)uEy>Mi^~OW zS|107l63>`g5_k*z$*k)gMcC~sywCv^L`X52e!yKBsE*5etYU4GCUTPtkaT(bai*J zT2xoFy_dl*EOI}{R5K8k0ZH_>OyG4wiV4vn33px9yamhRi58^Dy{}1)b9FTQSWWGU zzg%Au4kdis~K9HfyX|= zR3aYEKt`41L<0nmgHc)6$0!!W!mUP@;)6x6j~3Ly59n5&1?;=giOV8u-1S*g z(g5R9C>IeEjdsC|@H$!@jdyucq;fz( zO7W_`)u_6CwnYP1v&XZHuXxY(PBQ1EvzI%E0WviLq$jOGynP*bc_%ik#GO4={>yLf$mHO3@9zamOW^e$t z9Z~KWqY^}Loa%1GKCtBhQB$dATc6g!TBGVAJZ8WX#kR1NtNMz&g4BLDiHE&QsMANa zu|V&zn4i7X0yH^pDl45+#Rpd$Hpxf8hEkXuiRR5%b_HxG^;nEiO?CREzO}M^zNPl! z8&0GyNh#JBFNJOtO*%bEJ!lWW+q$;{N=v~ysa2T{8b&LJ5nhs1Y33YHM$8*r;r z7&>1=8fo4 zYuwO%s-h)Drlt~XIG9nx)%Gy+V~9SRVQD$}_V9S*OA#KO!G-hIxs+FB=T4uztCd6H z=QQ#-K6dQtE;u28SJaTW4CqYnAgEDL7X_H8NoC`J30#`M$M@!OxD-IV>{ zcOPKO&Mgk1GC=ldpe7PLZp#8{XHi6ZDU7du$Jzu12PqoGi<80;8-~4}PGzYk&g_v$ zrz~jwk0Q^5&YLrl9Z&SmJ2VQCo8e{QD|FMvQA#om*aO3X!UP)793|Y)lRkp2x;;@!AM#_yL6}pW1 zN%|g&5n-;$-}cS4J0w(g-;6fvLFtuATv-QG*}VC3uaKnniaGPj%K;Ye{hbKB0VrPC z+<`gjdsfF2y@zrX!r^hucqw5D;cnbrql=QP1{UHqqwnmK18I`e5o? zU7v$V!g;JS-6z?E_6gc~e|^O1$Vs=ET{xrIv;C}tzcM$e2C8de< zaQT$Tor|l3jjg>0O2=(3muN5_Ea+@zpdWZ;-bEGKNl}BEiVbI}d=yPEm5|>w$pE?# zK+nij=^))Y<*5<-N8cqDlto;tYKO@ghCWKr49wMMn$-_`^mbWAA_v4$Fq%Do*gRyPjMZuyT|Xc2J*b4?9M`5|N*U^bS5&LN*PZDBP@kLG-IwFNj^!KDkt_d(_;_ zSP6>4)Qh77ImrHjCOf4ndN@_ZDet5y7+afS6XGC6Z)lC;$T0ika`N<7l9GL$cVA=2 zacjNAxY>?(Y?Ax!L_&$M5k*oxG3gTx0L8SMy!tocVQLIS^Jo=6BHb#E$W@;+t-F#P z)8bzir+)kG!V=flH{~;<>rakbJd;RpZMeX=uxXbr=!Bfc;Wi2ugl(Pbh;Mg_;1x%p z+0L_$!PvlC5XYe>4}&I{K)xCX19`D*o^W6o?3k|qIBmeY-+s?N5WfJiPK}RBtdRY+aK-}bu+2Q^6BfQaIThxkY$4{G* z{~fZu|1!e6Ai(8U{Aq3E8q^ruLuGOiq^~5SAA1(w+b|hWNQrXJOk1+98Ypt8u8W(= z5IPe(_w3N&3pOVKI@<&b|CnZdF+JjBDz3W7dx;_c;rh zMUT2~?As`qy4Qx3@I;rkEkB%s8a3gqaCWb5mbP4}trnTX9n(P;*RP61vpnHMMT|2D z+KAp(ZEdRB9`a#*b&h3G-jI=v@sofcmh`*^%&JsMr-<+b9}RCTcC#}miL@xnt}$mR zMJL;u?OhuyqbuW&@1l5sbhs|k~U+$$xCLSuzi6+#{5rC_j3c9voAs{0z*== zf?^-AXSUME#%a?JX2sspaoi=0LW~Fo2>Q zhSUtkK!M?~57Ukke8M-;OsX#{Pr2qH9bC^f1Tb{6&04oRd|Ban$vt}#@A;s9D%Xo| zreB^M`BL%73f|e;X^vUeecO;R%$JYK)C)biaOK@imA&>vu2*Q*K*eGZX`uDdk~*F| zFzCaxTz8mKf9Br*Prc3{SRD2Uc9fS140Dv4Tp@w zNyRnCGSCcc!NssruJx>x!37q)m9i7?zSUAce)MNnrLB?%p~!G_@Ekq?_flmlvW}yw zG61T%aplaX3s89QYX`uMHd~GX6**iNypcCMJJLcQIo&1N=qy%VS;sM^^V!TYM^x|j zfl$X-AHbyeqtOMJbR~towkepKV9-Q1paW^Zv|>{+SD<2Fkvywhi@yqqebL9?wRzHW z(8qn;svYTm_?bk}yrS0pQRcX@nwW3|;c78mpmYolMY=xpB)FGQ++0%}xl&YwGM>iU zep66ZCR>lCUetP8R(Nc{O=SCkultcBQGumvCWeemgj!NSZ!mkH5tuZ+a(2li#Td*h zutNHm`N#^ZqZI02I=;>L#Ko0x;H=S^gJ1PZpIta^-dT#i4r^4LKjDJQ&B0KO3{YSQUZe@pPHmBQXz6JetGYhw?CkNSQ|% zt}?_?-;`>Q17W-1rRrU^~6WP1Wl_|b0iQ@|{vj#}A{Tt^yPFaCU#9J-l` z9hI`HtgUpOurzbBeBQ(nwn4A#DG1F~3AtmrsE3m>haTzN^)kMC(`=!hmMZ5JqgKi# zR5h%K2h&AbosVP4t_7rxTV`=OFD`~n%%H?NE*kEf(gXtAr_rFOeTr{{0I~tYLzN9w zCNg{vy^X`LyNsIUI|l_#FIg+Z-bh^6zc@O#bLP?qI2_hFo|BR);&a-aLlP==^q;GAT2HuGS42GU9aJG_ZtTRgOS`1)v9 z7>iJT&9g6`7lbqOGiB4YAhuf%z^4-ZwVM(2zD@dI0`c1PT=R-`%V46JUcq8bRO<6l zW=mV`04LH}l39Zc|r-TD`F zgM>Vc(Fwyg4Wfw>(>_hAh)?zV`|J5T3Y|QhKOlS~HA*fd5++$v&cE4+-+CI~#A&S6 z-%)mdObZRot9xe40cuXc0cXrXH6e;2Vc$mrmh6qyB}!#agk|Qn+ZVcM8(~VTcn0Ge z(jWHyTav>(A z&zLk9^d{kvqwJmG$n||4g313VL@LI66TWKX+n!F-9c0#TDz1A1+6){G4kvZ(-{@K{0v6h)4nTO-Dp7Q&q_T5)ACj|EEW$U}6@cF80({mctK{lf{2n1GQ`vy~y@U2V6ZN~-9 z^7FLOM;>xXcAX3L5|EZc>h<4Q+0;9mIIA#Lo62}i>cH|1vX;--9NjCPn;&oU&v9+; zQRg>S78fsj#B<}c#e)aww&&jNM8H0jsa*-y3*l9Lh@^it<2fg$R{feyhM?C)WFuLB zlk%)W9Zy?tGAt?Om{b_F*v<_*KTI!T+1d(kin&})n8T-sBASBvdoycHzKz`IkA7B? zSXY|BDZwPvI%Cq%@t)`40X4rx@L2dzZ|N^zQ}E-S9_JFI!`~F&g?tvlBV3d zTCj$*R8bdvTNCggBP;zLg7hzxzxWpC~L@~-gscr#nw-F*gA0Oe%j z{?$EC4%)srXOrT;?W3>6B@U;-Wg&0)!=&?V!bVr~OIythc*QR4mvY>3JX@cDpR($P}P8 z`qMa>DEYMDOF?hy7aelWUc2DEF|GI242bXu9Gq4DoE1qxdg~&=E!Ev_E4i5zBVTyO z((22RlJ7cMKxa!ea}~YlN9C#SiS=+WzX)knHk4#;6;z+3`Y!10r4XhQC0enMTrSQ& zS>0cJ%gJ=YGQl!)R+qon?bHBZq{;b@p?=5c0t4r-!!!tCUQVFKd!f-@sN1)1bBx>A z*ysp{P0BO8oOp5n-8&|cR{+x+(TQiS`I1H!!6(3^*PwO-j1cF-o1LX}aM;dz7A4DL z`I24K%x2Zh@xuPk$`2N$0`P9wJ$+Kg)Sfr;oMIU3rxWkLP9j$Tn^CG)N_fgpC zLe;3Nw!!9Zr2d@k;*T6F!ok*yF1?yuFV%l3t?!o5|BFI-G1-a+e74r00Y!3X`Fz+1 zMM@`(v;s{qbE5D3ANm=A*uUjxh=%;~I`C%3hoEoeCTcDBayB{X`g{N2+paUF0ZmN7 z(t&P+YN9Sy+AWHG)=h%417-RWIyF6#Zt|pv@i$Q?yrSGr`>aTcj04@GH8OjslS=5v z!5qHACP_{H)RJi|kM(#pVJjRLz51QI>}BCA2MTB)kl#3-4w{UVw+6yI)RWyCJ;ykpy4OJNk#xfDKG>;Vtr zn|@w>h@Yn%&+N{`ItPnX2N#wf_I6|Rnv^-NMp<|Edwf^FG0!4qm+@fQd!gDDwc zlQo8Dmozx&uNj?On5*I8u$XjqqxEaXsY4}V9t?E46H!@M0^3R|4gp)VJz5&w-OLMx zl;wOoM{fW;> zPm^=IDs92`+s#K>4SG5&FJ6gGao@e?Ve^CF=jsv>$~SqneR6fxIHK3tuG(&;1`{N0 z@ybSM@#>)U!iXq!%WE-6g0M8*nnKhtCW`Rdn1{)*EPikr;*rfLkQ;B!?JKaj)p@Au zqK;A3>7xxrX;tWvCY&xPMKD(kS)|SPH@_=ALy+E!Yt$NQ2anYtvF96degVxxV&G|uC6Bja=CrlhMg0Oz$eYa zc;Kq;lz9(VxLA`bH|oh@uzI-?3==qC_F{F^TdD&T8tB{++JNT#^fNHG^WA2d-gl`smFbprv+>WmvF7sIm1>O z??&34eLbtaB>e6O>dXLn>rbBEWn4Xn-%H|#@-45mJ+_n!{VEE6$gD-GA~;abA9Jm$ zl85E3WR3o-;?q%&&4b=2n7Xkj%?U^R7NBhH`)YQEf<4R(V2U)8r%@L66Px_)aSS$97DS_ieesIcQihOS$g z&EUe@D2bn?4S{~d{%P}1AJHvTSQSwm9I0b*%=T@ara0f#@N&;q?R+*l{54iAF>e2~ zbKE6O*N^wa(~8M=z%K}{zze1C$$TTe={qdA(7uZwv_0Ip7M+t0@Ev*Ox1oKm{g@UL zxo)Tj%L)ZpY)ljx0<}D6czApg#{Lwk=$|?>8v4C(opXoMFQ*(;@ae$RzH{`VsoB9@ z!Hm6 z58mdl%!an?Ps|_&h(Y4kUslGkOCw=(0geDpr-CsRK5zjMhS^+-0vanw!s z*I&tYQBO%D@F0UpqaP|%(YnfiT7x2Ub-=Mt=1om`0 z^uh*#in5NJNkY9F+(V`w{fI26y3|)tzF*ooE$7J0+s-y#ssZgwB4tIBm9%5Fb>G4kM~FMpnZ#MOx0_LfN@XVoJ{nq0zv zzS8E8SKItg|Lt3vy`QPX$+q#|D3#-9pwClyISuD`R^zB}mRVaVBs~q4NkU~r8%#+w zQDp-CQrZsHr@k#ntg(ho%DJEDF8P6Q+nJ|N0rT-^@ECquglKSgELRnLqsy0(I73yK zPydU*$X4VC=C8_R599yq4F*FqJS&jbV7Lkr2^*vlu;sNARV}$&w};|h=u9%hUnxZk z?Ju5-mhZS^fipP}r`sl4_a5DVz&Itr){PvYnvi}Bv{0h>T~6b<>K6UWO8KiaV4DN) z;@-N4KQAFSUi=5j;twxr*g|GkB7A~^33}qlPhQc|FCPtta-Q>12w=mR8 zeJaQhv;+DcG$|ow61Bn?vkgLkF@;olw9`1cyQOVs2SqGyK!bsZ6@CNC^OWBqJcVe! z4Q0#IZB%LfPi;FF@4&$p_@)FOrI!q?^bs=uIr}g`3-J%Q-TxKbPeV}J_=VahZa}g5 z12T%Dh9Es_fD=9xsilvcg;8$B`~}u(nj%b=B||f`M1p_*fguG&%p_~!sln3lwIy^^ zFhdT7`!?yB1N4@P1Zd$>ND3SEj6R%T88fO~*_;m%U;(k9d*^B^4UiAsMz2FzzxDg{ z4w-87OY+K2CUgm$2e!3|X^r^>Zv~J;jKZx)dVVSae0dkXdU%(!;x!N(9O2G4Ksfs< z+fJiAv_AEW_RsXERHq%t24^m+Tz`aiK!k6nW3Z!&uni&v8*NQ-f}{su|NRS+AdRK6 zNRV~aOzThBxIr-*`)>$CVhHI7?lTfpI{{5yf7?U@o*GsuAN`%bGMlwb0rxsq5#NK! zfA9g4)SrC7Lwwj114_=Vh-g!u?-IQ$_gMJU2TWP)mCEMYXn%C`Z$Qn`7i|?GW$2&* zv3%3ZLVvLLUxM9bFCEldZ-AKVta$|SBy@TpRCSt5KU+eUGxaTf$soeb%s z_91>47yY5lG$0qM;LU|kLMFzJ9vqih|BVe4NE`pu*i7=pnHcbQRaO9*(Nm?cve)qS zYmiMC{bmyoxePCMvSKI$wdrW^`L0U92LgR8HP#^Ig4B295!EuNgVK%tRSEty3P|OO zKViVY;+13V31EU3gk|Kemca;?s8K!my74OdANLW54-~jSJlM4fgP#+B0R5Y#*+4I? z*)=sd9`WEdmE{y!hX(Xsu7>!m2~}i|_5dd46Ia z?qUilJLDwF+~9N5cq+9L?EO`dG4y;?7BRA}BlWUr8!l^?SVjuB0qGeH$Vl+`9r@q& zc8wBBt-3)268~YmSokkS@F)GdPT>=jS~A4$WTEG?ZGKnKYvB}b4bn5=-P=%^cU=N( zF-&GV6Oz|6wKEMgK(ZcEhISa#`}sxgyXNqxGebOpYM0w=qn8x_Qro)_hHb%pd(rKe zp%WYQcX^T*C>)7!fyZpK?705|`0r-+7u*mrDvJPF8?vvzyuwukDCx5Ti`hP<$hefX zYaxim=v{mxckcZHH2qg(m7*G8#NTX}kAfszK{wdJou<$;S%2`r}Q~S_=o!=nwJKD#%`QOk5y8?6@SOUr%K>u?!R0mv5BCvKHn)( z6Q&Nr3AJ$C4c|C}L+Bgmn?Vn~vY^P*aRXCU*S)DzJu$02bZ)Fw7MUW@6W;z zrM2s(b8wC=eZ=Xix=VL|;H8}ro`o5x+Ld8S2qcbY=V1gRwirJ2dK4aiZBAZi7gFCIZmHT4E-&-hkh4=a490kX~q_09e6I$wF^ zlY1h*NaFQZ&KBqTvi1{SHsPt-&#@T zhy{~7nf9+oVE<1O*B%XJ8pfwOmP)F%v4c|Bt(0a{jB=UWNyiKmvtdmUxfJ5;sAYY+ zsBKD9Bjbd|anE(SkcnzSLrBt$h8bao?j7ilr<0?UYjLB0JG)QEw%Y%edvkcgc4TmF9dTW6W^$uXV| zp`8iBkxzPqB;AriOycX^6V|V5twx#=GhM`}u7s`^aVz&s zc$UOrw`j_EM?%m#mpLA0Tdoe|(4&m^*+;euTB0M;T_kn~CbQ3YHPh;!lmQYdk|SN& z)FwR;W=YftsqAKJ$9sOdqLJK!yL<&f)k4y(Chg}_r8bg@fPr7f^YyLk{5h+u7$?jw znEC1;<15!YRTg__Yi-UWCu>$DhjVH+hc-P)G#DW%?CEzCL&NPl?(K;_N7GxkL9Tkb zMqaU11DpNwUSrxxmH)M5iy`7#S#VNCQdOuYZEjlTX!(Zr-B6Pr?+ld53-G=ezYs;rjjK z$(D(_q;79QJ2xi6t@;>et=_iuYO|xk$NoYjWlubFo?H)awD(suA+) z%+AfUOx>ZQnIra9GtNta-|OT(56^YoO7- zGEGQF;tpEU*7RR`m+DxVD{6@4n>3x#WoK{6i>uf?nkTH9|(2lYlBjNOP=2@KkPaf+x*%dM8 z&01?c7|gT1N5dXO9zD)&&j}})ePo+!XGb9Si%8u+QW26UbrE3xIk85C(0Cw_ysS;J zcydU};G<;wjXuK$hVUnrx`RM@)eWe(?F+tzJ!32eo&5DK%9nj!E9Jc02v7#g!{${ z)qp-)YP`74(Q^*%1H9#hg0We04lRf`*Xe33=BaI#@hl(|0Phl@J)If!ePXdso2ec{ z@`y~43gBGO*A1%gFCco1|Fbg*G%a>||G-LJ@8h?{rcMRQ)IZK;troywjC+KoeyDOj zpA%fN?ou|~KURg|btynAm;ucdd!+#eW)@41Qt8UBS)Sx}w-E(tn~381Z-9KDa%gsb z8S@cJ>8C@jQLtb~p*ltU6*C$gQ7&(;+Z7{~LtPXVxJJ}&S7Sj4 zz!rw$G8OqKFJ?A4=F=s`C%^&-M6ITs>m?!exaK5 zZ$42{G@J)5M#ZOWw4`r>$glkYsvevLZRF1&$(~sngD`Q)!0)EU!GkdOemR)p)mOG7J||K+8Ff z{lJRE484n$Gh>xBAd+W6thqzbiDXA3(`bf$@iT$J(O)_Ij=BWaE+Mf@RCsOfS$`de NCMc5@6{st^?$CUs8 literal 0 HcmV?d00001 -- GitLab From 2ee1b7e8f758a169b7a1d28a7e47947a24e1e31e Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 06:42:31 +0000 Subject: [PATCH 010/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-win.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- .../quick-start/quickstart-ide-env-win.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md index e408e6d3b3..38e69ecc94 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md @@ -8,22 +8,24 @@ ## 系统要求 -- Windows 10 64位系统。 +- Windows 10 64位系统,建议内存8GB及以上,建议硬盘100GB及以上。 -- Windows系统上安装的DevEco Device Tool为3.1 Beta1版本。 +- Windows和Ubuntu系统上安装的DevEco Device Tool为最新版本,且版本号需相同。 ## 操作步骤 -1. 下载[DevEco Device Tool 3.1 Beta1](https://device.harmonyos.com/cn/ide#download) Windows版。 +1. 下载[DevEco Device Tool](https://device.harmonyos.com/cn/ide#download) 最新Windows版本软件包。 -2. 解压DevEco Device Tool压缩包,双击安装包程序,单击**Next**进行安装。 +2. 解压DevEco Device Tool压缩包,双击安装包程序,单击**下一步**进行安装。 -3. 设置DevEco Device Tool的安装路径,请注意安装路径不能包含中文字符,**不建议安装到C盘目录**,单击**Next**。 +3. 请详细阅读以下界面的用户协议和隐私声明,需勾选“我接受许可证协议中的条款”后,才能继续下一步的安装。 + +4. 设置DevEco Device Tool的安装路径,请注意安装路径不能包含中文字符,**不建议安装到C盘目录**,单击**下一步**。 ![zh-cn_image_0000001326386753](figures/zh-cn_image_0000001326386753.png) -4. 根据安装向导提示,勾选要自动安装的软件。 +5. 根据安装向导提示,安装依赖的工具。 1. 在弹出**VSCode installation confirm**页面,勾选“Install VS Code 1.62.2 automatically”,单击**Next**。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** -- GitLab From b8f815ffa3140de8aa175ab2104ac84068785895 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 06:47:35 +0000 Subject: [PATCH 011/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-win.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- .../quick-start/quickstart-ide-env-win.md | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md index 38e69ecc94..326a537ff2 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md @@ -15,7 +15,7 @@ ## 操作步骤 -1. 下载[DevEco Device Tool](https://device.harmonyos.com/cn/ide#download) 最新Windows版本软件包。 +1. 下载[DevEco Device Tool](https://device.harmonyos.com/cn/ide#download)最新Windows版本软件包。 2. 解压DevEco Device Tool压缩包,双击安装包程序,单击**下一步**进行安装。 @@ -27,31 +27,24 @@ 5. 根据安装向导提示,安装依赖的工具。 - 1. 在弹出**VSCode installation confirm**页面,勾选“Install VS Code 1.62.2 automatically”,单击**Next**。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 如果检测到Visual Studio Code已安装,且版本为1.62及以上,则会跳过该步骤。 + ![zh-cn_image_0000001285965546](figures/zh-cn_image_0000001285965546.png) - ![zh-cn_image_0000001285965546](figures/zh-cn_image_0000001285965546.png) + 其中, - 2. 选择Visual Studio Code的安装路径,单击**Next**。 + - 安装:按照默认路径及参数直接安装。 + + - 自定义安装:安装前可以自行修改安装路径及其他设置参数。 - ![select-vscode-path](figures/select-vscode-path.png) + 安装完成后,各软件状态显示为OK。 - 2. 在弹出的**Python select page**选择“Download from Huawei mirror”,单击**Next**。 - > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** - > 如果系统已安装可兼容的Python版本(Python 3.8~3.9版本),可选择“Use one of compatible on your PC”。 + ![zh-cn_image_0000001285965778](figures/zh-cn_image_0000001285965778.png) - ![zh-cn_image_0000001285965778](figures/zh-cn_image_0000001285965778.png) -5. 在以下界面单击**Next**。 +6. 依赖的工具安装完成后,单击**安装**,开始安装DevEco Device Tool。 ![zh-cn_image_0000001285806330](figures/zh-cn_image_0000001285806330.png) -6. 请详细阅读以下界面的用户协议和隐私声明,需勾选“I accept the licenses”后,才能继续下一步的安装。 - - ![zh-cn_image_0000001275586896](figures/zh-cn_image_0000001275586896.png) - -7. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,单击**Finish**,关闭DevEco Device Tool安装向导。 +7. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,单击**完成**,关闭DevEco Device Tool安装向导。 ![zh-cn_image_0000001275267040](figures/zh-cn_image_0000001275267040.png) -- GitLab From 1aaaa25174d2d8bad4dbaff72359ec107389f3e3 Mon Sep 17 00:00:00 2001 From: esterzhou Date: Thu, 5 Jan 2023 14:49:16 +0800 Subject: [PATCH 012/383] update docs (11398) Signed-off-by: esterzhou --- .../quick-start/arkts-rendering-control.md | 4 +- .../reference/arkui-js/Readme-EN.md | 7 +- ...4.gif => en-us_image_0000001127125126.gif} | Bin .../en-us_image_0000001127284938.gif | Bin .../en-us_image_0000001167662852.gif | Bin .../en-us_image_0000001173324703.gif | Bin .../arkui-js/js-components-create-elements.md | 145 ++++++++++++++++++ .../js-components-custom-event-parameter.md | 51 ------ .../arkui-js/js-components-custom-events.md | 76 --------- .../arkui-js/js-components-svg-animate.md | 8 +- 10 files changed, 154 insertions(+), 137 deletions(-) rename en/application-dev/reference/arkui-js/figures/{animate-4.gif => en-us_image_0000001127125126.gif} (100%) rename en/application-dev/reference/arkui-js/{ => figures}/en-us_image_0000001127284938.gif (100%) rename en/application-dev/reference/arkui-js/{ => figures}/en-us_image_0000001167662852.gif (100%) rename en/application-dev/reference/arkui-js/{ => figures}/en-us_image_0000001173324703.gif (100%) create mode 100644 en/application-dev/reference/arkui-js/js-components-create-elements.md delete mode 100644 en/application-dev/reference/arkui-js/js-components-custom-event-parameter.md delete mode 100644 en/application-dev/reference/arkui-js/js-components-custom-events.md diff --git a/en/application-dev/quick-start/arkts-rendering-control.md b/en/application-dev/quick-start/arkts-rendering-control.md index dff2cda50c..d0ff5a8c18 100644 --- a/en/application-dev/quick-start/arkts-rendering-control.md +++ b/en/application-dev/quick-start/arkts-rendering-control.md @@ -34,7 +34,7 @@ Column() { You can use **ForEach** to obtain data from arrays and create components for each data item. -``` +```ts ForEach( arr: any[], itemGenerator: (item: any, index?: number) => void, @@ -275,7 +275,7 @@ struct MyComponent { > > ```ts > LazyForEach(dataSource, -> item => Text(`${item.i}. item.data.label`)), +> item => Text(`${item.i}. item.data.label`), > item => item.data.id.toString()) > ``` diff --git a/en/application-dev/reference/arkui-js/Readme-EN.md b/en/application-dev/reference/arkui-js/Readme-EN.md index d14e06d8a3..c46abd3bd9 100644 --- a/en/application-dev/reference/arkui-js/Readme-EN.md +++ b/en/application-dev/reference/arkui-js/Readme-EN.md @@ -96,10 +96,9 @@ - Custom Components - [Basic Usage](js-components-custom-basic-usage.md) - - [Style Inheritance](js-components-custom-style.md) - - [Custom Events](js-components-custom-events.md) - [props](js-components-custom-props.md) - - [Event Parameter](js-components-custom-event-parameter.md) + - [Style Inheritance](js-components-custom-style.md) - [slot](js-components-custom-slot.md) - [Lifecycle Definition](js-components-custom-lifecycle.md) -- [Data Type Attributes](js-appendix-types.md) +- [Dynamic Component Creation](js-components-create-elements.md) +- [Data Type Attributes](js-appendix-types.md) diff --git a/en/application-dev/reference/arkui-js/figures/animate-4.gif b/en/application-dev/reference/arkui-js/figures/en-us_image_0000001127125126.gif similarity index 100% rename from en/application-dev/reference/arkui-js/figures/animate-4.gif rename to en/application-dev/reference/arkui-js/figures/en-us_image_0000001127125126.gif diff --git a/en/application-dev/reference/arkui-js/en-us_image_0000001127284938.gif b/en/application-dev/reference/arkui-js/figures/en-us_image_0000001127284938.gif similarity index 100% rename from en/application-dev/reference/arkui-js/en-us_image_0000001127284938.gif rename to en/application-dev/reference/arkui-js/figures/en-us_image_0000001127284938.gif diff --git a/en/application-dev/reference/arkui-js/en-us_image_0000001167662852.gif b/en/application-dev/reference/arkui-js/figures/en-us_image_0000001167662852.gif similarity index 100% rename from en/application-dev/reference/arkui-js/en-us_image_0000001167662852.gif rename to en/application-dev/reference/arkui-js/figures/en-us_image_0000001167662852.gif diff --git a/en/application-dev/reference/arkui-js/en-us_image_0000001173324703.gif b/en/application-dev/reference/arkui-js/figures/en-us_image_0000001173324703.gif similarity index 100% rename from en/application-dev/reference/arkui-js/en-us_image_0000001173324703.gif rename to en/application-dev/reference/arkui-js/figures/en-us_image_0000001173324703.gif diff --git a/en/application-dev/reference/arkui-js/js-components-create-elements.md b/en/application-dev/reference/arkui-js/js-components-create-elements.md new file mode 100644 index 0000000000..b0afebfa68 --- /dev/null +++ b/en/application-dev/reference/arkui-js/js-components-create-elements.md @@ -0,0 +1,145 @@ +# Dynamic Component Creation + +You can dynamically add components with specified attributes and styles to pages. + +> **NOTE** +> +> This API is supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version. + + +## createElement + +createElement(tag: string): Element + +Creates a component object. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ------- | ------------ | ---- | ------- | +| tag | string | Yes | Component name.| + +**Return value** + +| Type | Description | +| ----------- | ------------- | +| Element | Component object corresponding to the value of **tag**.| + +```js +let newImage = dom.createElement('image') +``` + + +## setAttribute + +setAttribute(name: string, value: string): void + +Dynamically sets the attributes of this component. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ------- | ------------ | ---- | ------- | +| name | string | Yes | Attribute name.| +| value | string | Yes | Attribute value.| + +```js +newImage.setAttribute('src', 'common/testImage.jpg') +``` + + +## setStyle + +setStyle(name: string, value: string): boolean + +Dynamically sets the style of this component. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ------- | ------------ | ---- | ------- | +| name | string | Yes | Style name.| +| value | string | Yes | Style value.| + +**Return value** + +| Type | Description | +| ----------- | ------------- | +| boolean | Returns **true** if the setting is successful; returns **false** otherwise.| + +```js +newImage.setStyle('width', '120px') +``` + + +## addChild + +addChild(child: Element): void + +Adds a dynamically created component to the parent component. + +**Parameters** + +| Name | Type | Mandatory | Description | +| ------- | ------------ | ---- | ------- | +| child | Element | Yes | Component object.| + +```js +newDiv.addChild(newImage) +``` + + +## Example + +```html + +
+
+ + +
+``` + +```css +/* xxx.css */ +.container { + flex-direction: column; + align-items: center; + width: 100%; +} + +.parent { + flex-direction: column; +} + +.btn { + width: 70%; + height: 60px; + margin: 15px; +} +``` + +```js +// xxx.js +let newDiv = null +let newImage = null + +export default { + appendDiv() { + let parent = this.$element('parentDiv') + newDiv = dom.createElement('div') + newDiv.setStyle('width', '150px') + newDiv.setStyle('height', '150px') + newDiv.setStyle('backgroundColor', '#AEEEEE') + newDiv.setStyle('marginTop', '15px') + parent.addChild(newDiv) + }, + appendImage() { + newImage = dom.createElement('image') + newImage.setAttribute('src', 'common/testImage.jpg') + newImage.setStyle('width', '120px') + newImage.setStyle('height', '120px') + newDiv.addChild(newImage) + } +} +``` diff --git a/en/application-dev/reference/arkui-js/js-components-custom-event-parameter.md b/en/application-dev/reference/arkui-js/js-components-custom-event-parameter.md deleted file mode 100644 index 55131eddc7..0000000000 --- a/en/application-dev/reference/arkui-js/js-components-custom-event-parameter.md +++ /dev/null @@ -1,51 +0,0 @@ -# Event Parameter - -A child component can also pass parameters to an upper-layer component through the bound event. The following example describes how to pass parameters through the custom event: - - -```html - -
- Click to View Hidden Text - hello world -
-``` - - -```js -// comp.js -export default { - childClicked () { - this.$emit('eventType1', {text: 'Received parameters from the child component.'}); - this.showObj = !this.showObj; - }, -} -``` - - -In the following example, the child component passes the **text** parameter to the parent component, and the parent component obtains the parameter through **e.detail**: - - -```html - - -
- Parent component: {{text}} - -
-``` - - -```js -// xxx.js -export default { - data: { - text: 'Start' - }, - textClicked (e) { - this.text = e.detail.text; - }, -} -``` - -![EventParameters](figures/EventParameters.gif) diff --git a/en/application-dev/reference/arkui-js/js-components-custom-events.md b/en/application-dev/reference/arkui-js/js-components-custom-events.md deleted file mode 100644 index cf2f81a31d..0000000000 --- a/en/application-dev/reference/arkui-js/js-components-custom-events.md +++ /dev/null @@ -1,76 +0,0 @@ -# Custom Events - -The following example describes how to define a child component **comp**: - - -```html - -
- Click here to view the hidden text. - hello world -
-``` - - -```css -/* comp.css */ -.item { - width: 700px; - flex-direction: column; - height: 300px; - align-items: center; - margin-top: 100px; -} -.text-style { - font-weight: 500; - font-family: Courier; - font-size: 40px; -} -``` - - -```js -// comp.js -export default { - data: { - showObj: false, - }, - childClicked () { - this.$emit('eventType1'); - this.showObj = !this.showObj; - }, -} -``` - - -The following example describes how to introduce the child component: - - -```html - - -
- -
-``` - - -```css -/* xxx.css */ -.container { - background-color: #f8f8ff; - flex: 1; - flex-direction: column; - align-content: center; -} -``` - - -```js -// xxx.js -export default { - textClicked () {}, -} -``` - -For more information, see [Basic Usage](./js-components-custom-basic-usage.md). diff --git a/en/application-dev/reference/arkui-js/js-components-svg-animate.md b/en/application-dev/reference/arkui-js/js-components-svg-animate.md index 0d298e588c..e90d520cb3 100644 --- a/en/application-dev/reference/arkui-js/js-components-svg-animate.md +++ b/en/application-dev/reference/arkui-js/js-components-svg-animate.md @@ -52,7 +52,7 @@ Not supported ``` -![zh-cn_image_0000001173324703](figures/en-us_image_0000001173324703.gif) +![en-us_image_0000001173324703](figures/en-us_image_0000001173324703.gif) ```html @@ -68,7 +68,7 @@ Not supported ``` -![zh-cn_image_0000001167662852](figures/en-us_image_0000001167662852.gif) +![en-us_image_0000001167662852](figures/en-us_image_0000001167662852.gif) ```html @@ -83,7 +83,7 @@ Not supported ``` -![zh-cn_image_0000001127284938](figures/en-us_image_0000001127284938.gif) +![en-us_image_0000001127284938](figures/en-us_image_0000001127284938.gif) ```html @@ -117,4 +117,4 @@ Not supported ``` -![animate-4](figures/animate-4.gif) +![en-us_image_0000001127125126](figures/en-us_image_0000001127125126.gif) -- GitLab From 76b5f2bdee61e1075ed96971758c806ba467814c Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 06:52:13 +0000 Subject: [PATCH 013/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-win.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- zh-cn/device-dev/quick-start/quickstart-ide-env-win.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md index 326a537ff2..d831f3acd8 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md @@ -42,8 +42,6 @@ 6. 依赖的工具安装完成后,单击**安装**,开始安装DevEco Device Tool。 - ![zh-cn_image_0000001285806330](figures/zh-cn_image_0000001285806330.png) - 7. 继续等待DevEco Device Tool安装向导自动安装DevEco Device Tool插件,直至安装完成,单击**完成**,关闭DevEco Device Tool安装向导。 ![zh-cn_image_0000001275267040](figures/zh-cn_image_0000001275267040.png) -- GitLab From 4a98ba10a288660158585f6ab321eab66f1e0a60 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 06:58:13 +0000 Subject: [PATCH 014/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- .../quick-start/quickstart-ide-env-ubuntu.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md index f79c4b7b14..b2c0c2a746 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md @@ -12,10 +12,12 @@ ## 系统要求 -- Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16 GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16 GB及以上,硬盘100GB及以上。 - Ubuntu系统的用户名不能包含中文字符。 +- Ubuntu和Windows系统上安装的DevEco Device Tool为最新版本,且版本号需相同。 + ## 操作步骤 @@ -27,6 +29,7 @@ ``` ![zh-cn_image_0000001226764302](figures/zh-cn_image_0000001226764302.png) + 2. 打开终端工具,执行如下命令,输入密码,然后选择**No**,将Ubuntu shell由dash修改为bash。 ```shell @@ -35,24 +38,24 @@ ![ubuntu-dash-to-bash](figures/ubuntu-dash-to-bash.png) -2. 下载[DevEco Device Tool 3.1 Beta1](https://device.harmonyos.com/cn/ide#download) Linux版本。 +2. 下载[DevEco Device Tool](https://device.harmonyos.com/cn/ide#download)最新Linux版本软件包。 3. 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。 - 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-3.1.0.300.zip为软件包名称,请根据实际进行修改。 + 1. 进入DevEco Device Tool软件包目录,执行如下命令解压软件包,其中devicetool-linux-tool-{Version}.zip为软件包名称,请根据实际进行修改。 ```shell - unzip devicetool-linux-tool-3.1.0.300.zip + unzip devicetool-linux-tool-{Version}.zip ``` - 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-3.1.0.300.sh请根据实际进行修改。 + 2. 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-{Version}.sh请根据实际进行修改。 ```shell - chmod u+x devicetool-linux-tool-3.1.0.300.sh + chmod u+x devicetool-linux-tool-{Version}.sh ``` -4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-3.1.0.300.sh请根据实际进行修改。 +4. 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-{Version}.sh请根据实际进行修改。 ```shell - sudo ./devicetool-linux-tool-3.1.0.300.sh + sudo ./devicetool-linux-tool-{Version}.sh ``` 5. 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装,可通过键盘的上下按键进行选择。 -- GitLab From 705f96906ae0f7f100649aaf79653a000a0b9747 Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 07:06:49 +0000 Subject: [PATCH 015/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md index b2c0c2a746..d15edf24a1 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md @@ -12,7 +12,7 @@ ## 系统要求 -- Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16 GB及以上,硬盘100GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16 GB及以上,硬盘100 GB及以上。 - Ubuntu系统的用户名不能包含中文字符。 -- GitLab From 5be7384059a561dba48c460a8a4bfc27d1215a1c Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 07:07:38 +0000 Subject: [PATCH 016/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md index d15edf24a1..fa1a84c47d 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-ubuntu.md @@ -12,7 +12,7 @@ ## 系统要求 -- Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16 GB及以上,硬盘100 GB及以上。 +- Ubuntu系统要求:Ubuntu18.04~21.10版本。推荐使用20.04版本,内存16GB及以上,硬盘100GB及以上。 - Ubuntu系统的用户名不能包含中文字符。 -- GitLab From d3004663f2732838dbd41d0ae7552f49ca36722f Mon Sep 17 00:00:00 2001 From: liyan Date: Thu, 5 Jan 2023 07:08:12 +0000 Subject: [PATCH 017/383] update zh-cn/device-dev/quick-start/quickstart-ide-env-win.md. Signed-off-by: li-yan339 Signed-off-by: liyan --- zh-cn/device-dev/quick-start/quickstart-ide-env-win.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md index d831f3acd8..d400f34b6b 100644 --- a/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md +++ b/zh-cn/device-dev/quick-start/quickstart-ide-env-win.md @@ -8,7 +8,7 @@ ## 系统要求 -- Windows 10 64位系统,建议内存8GB及以上,建议硬盘100GB及以上。 +- Windows 10 64位系统,推荐内存8GB及以上,硬盘100GB及以上。 - Windows和Ubuntu系统上安装的DevEco Device Tool为最新版本,且版本号需相同。 -- GitLab From fe16c3f3f2197108ac1c36922e16378349ed18f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Thu, 5 Jan 2023 07:41:47 +0000 Subject: [PATCH 018/383] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../workscheduler-extensionability.md | 162 +++++++++++++++--- 1 file changed, 136 insertions(+), 26 deletions(-) diff --git a/zh-cn/application-dev/application-models/workscheduler-extensionability.md b/zh-cn/application-dev/application-models/workscheduler-extensionability.md index b2d6352789..e762e68bfb 100644 --- a/zh-cn/application-dev/application-models/workscheduler-extensionability.md +++ b/zh-cn/application-dev/application-models/workscheduler-extensionability.md @@ -27,54 +27,164 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 ## 开发步骤 -在DevEco Studio工程中手动新建一个WorkSchedulerExtensionAbility工程,具体步骤如下。 +在DevEco Studio工程中手动新建一个WorkScheduler工程,具体步骤如下。 -1. 在工程Module对应的ets目录下,右键选择“New > Directory”,新建一个目录并命名为WorkSchedulerExtension。 +1. 在工程根目录新建Module,模板选择为Ohos Library,命名为library。在library对应的ets目录下,新建eTS文件并命名为workAbility.ets,用于实现延迟任务回调接口;新建ts文件并命名为DelayWork.ts,用于实现延迟任务API。 -2. 在WorkSchedulerExtension目录,右键选择“New > TypeScript File”,新建一个TypeScript文件并命名为WorkSchedulerExtension.ts。 +2. 在library对应的ets目录(./library/src/main/ets)下,新建eTS文件并命名为workAbility.ets,用于实现延迟任务回调接口。 -3. 打开WorkSchedulerExtension.ts文件,导入模块。 +导入模块。 ```ts import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility' +import { notification, Logger } from '@ohos/notification' ``` -4. 在WorkSchedulerExtension.ts中,实现WorkSchedulerExtension生命周期接口。 +实现WorkSchedulerExtension生命周期接口。 - ```ts - export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { - onWorkStart(workInfo) { - console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo)); - } - onWorkStop(workInfo) { - console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo)); - } +```ts +export default class workAbility extends WorkSchedulerExtensionAbility { + // 延迟任务开始回调 + onWorkStart(workInfo) { + Logger.info(TAG, `onWorkStart CommonEvent publish start ${JSON.stringify(workInfo)}`) + // 发送升级通知 + let notificationRequest = notification.getNotificationContentBasic('upgrade', upgradeMessage, '') + notification.publish(notificationRequest, (err) => { + if (err) { + Logger.info(TAG, `onWorkStart notification publish err ${JSON.stringify(err)}`) + } + Logger.info(TAG, `onWorkStart notification publish success`) + }) + } + + // 延迟任务结束回调 + onWorkStop(workInfo) { + // 发送升级完成通知 + let notificationRequest = notification.getNotificationContentBasic('upgrade', 'upgrade success', '') + notification.publish(notificationRequest, (err) => { + if (err) { + Logger.info(TAG, `onWorkStop notification publish err ${JSON.stringify(err)}`) + } + Logger.info(TAG, `onWorkStop notification publish success`) + }) + } +} +``` + +3. 在library对应的ets目录(./library/src/main/ets)下,新建ts文件并命名为DelayWork.ts,用于实现延迟任务API。 + +导入模块。 + +```ts +import workScheduler from '@ohos.resourceschedule.workScheduler' +import prompt from '@ohos.prompt' +import { Logger } from '@ohos/notification' +``` + +实现延迟任务注册、停止接口。 + +```ts +export default class DelayWork { + private workInfo = { + workId: 1, + networkType: workScheduler.NetworkType.NETWORK_TYPE_WIFI, + bundleName: '', + abilityName: '' + } + // 注册延迟调度任务 + startWork(bundleName: string, abilityName: string) { + this.workInfo.bundleName = bundleName + this.workInfo.abilityName = abilityName + try { + workScheduler.startWork(this.workInfo) + Logger.info(TAG, `startWork success`) + } catch (error) { + Logger.error(TAG, `startWork startwork failed. code is ${error.code} message is ${error.message}`) + prompt.showToast({ + message: `${error.message}` + }) } - ``` + } + + // 停止延迟调度任务 + stopWork(bundleName: string, abilityName: string) { + this.workInfo.bundleName = bundleName + this.workInfo.abilityName = abilityName + workScheduler.stopWork(this.workInfo, false) + Logger.info(TAG, `stopWork`) + } +} +``` + +4. 在工程entry Module对应的ets目录(./entry/src/main/ets)下,右键选择“New > Directory”,新建一个目录并命名为workAbility。 +在workAbility目录,右键选择“New > eTS File”,新建一个eTS文件并命名为WorkTest.ets,实现WorkSchedulerExtension生命周期接口。 + +导入模块。 + +```ts +import { workAbility } from '@ohos/library' +import { Logger } from '@ohos/notification' +``` + +继承workAbility,实现WorkSchedulerExtension生命周期接口。 + +```ts +export default class WorkTest extends workAbility { + onWorkStart(workInfo) { + Logger.info(TAG, `onWorkStartTest start ${JSON.stringify(workInfo)}`) + super.onWorkStart(workInfo) + } + + onWorkStopTest(workInfo) { + super.onWorkStop(workInfo) + Logger.info(TAG, `onWorkStop value`) + } +} +``` + +5. 在工程entry Module对应的index页面(./entry/src/main/ets/pages/index.ets)下,增加“升级”按钮,调用library封装的延迟任务注册API。 -5. 在工程Module对应的[module.json5配置文件](../quick-start/module-configuration-file.md)中注册WorkSchedulerExtensionAbility,type标签需要设置为“workScheduler”,srcEntrance标签表示当前ExtensionAbility组件所对应的代码路径。 +导入模块。 + +```ts +import { workAbility } from '@ohos/library' +import { Logger } from '@ohos/notification' +``` + +增加“升级”按钮,调用library封装的延迟任务注册API。 + +```ts +Button($r('app.string.upgrade')) + .width('60%') + .height(40) + .fontSize(30) + .onClick(() => { + this.work.startWork('ohos.samples.workscheduler', 'WorkTest') + }) +``` + +6. 在工程entry Module对应的[module.json5配置文件](../quick-start/module-configuration-file.md)中注册WorkSchedulerExtensionAbility,type标签需要设置为“workScheduler”,srcEntrance标签表示当前ExtensionAbility组件所对应的代码路径。 ```json { "module": { // ... - "extensionAbilities": [ - { - "name": "ServiceExtAbility", - "description": "workScheduler", - "type": "workScheduler", - "srcEntrance": "./ets/WorkSchedulerExtension/WorkSchedulerExtension.ts" - } - ] + "extensionAbilities": [ + { + "name": "WorkTest", + "srcEntrance": "./ets/workAbility/WorkTest.ets", + "label": "$string:WorkSchedulerExtensionAbility_label", + "description": "$string:WorkSchedulerExtensionAbility_desc", + "type": "workScheduler" + } + ] } } ``` -6. 在工程中实现延迟任务注册、删除等功能,延迟任务接口说明见[延迟任务API](../reference/apis/js-apis-resourceschedule-workScheduler.md)。 - ## 相关实例 针对WorkSchedulerExtensionAbility开发,有以下相关示例可供参考: -[WorkSchedulerExtensionAbility的创建与使用(ArkTS)(API9)(Full SDK)](https://gitee.com/openharmony/applications_app_samples/tree/master/ability/WorkSchedExtAbility) +[WorkScheduler的创建与使用(ArkTS)(API9)(Full SDK)](https://gitee.com/openharmony/applications_app_samples/tree/master/ResourcesSchedule/WorkScheduler) -- GitLab From b18903b4ed13c74067eb9c6cdf191a9836c37676 Mon Sep 17 00:00:00 2001 From: zhutianyi Date: Thu, 5 Jan 2023 15:44:10 +0800 Subject: [PATCH 019/383] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhutianyi --- .../figures/WorkSchedulerExtensionAbility.png | Bin 0 -> 40480 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 zh-cn/application-dev/application-models/figures/WorkSchedulerExtensionAbility.png diff --git a/zh-cn/application-dev/application-models/figures/WorkSchedulerExtensionAbility.png b/zh-cn/application-dev/application-models/figures/WorkSchedulerExtensionAbility.png new file mode 100644 index 0000000000000000000000000000000000000000..59f86592bfe396b7f1a9b1c7457442c3aaf50af1 GIT binary patch literal 40480 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 LNm`K0faT&rjB~_iif> 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 VP5EOntAKyZj#wQoG;t33{{T#$63qYr literal 0 HcmV?d00001 -- GitLab From d39798a9bb9b679cc9ee9dd50d1fa55947234df4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Thu, 5 Jan 2023 07:44:48 +0000 Subject: [PATCH 020/383] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../application-models/workscheduler-extensionability.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/application-models/workscheduler-extensionability.md b/zh-cn/application-dev/application-models/workscheduler-extensionability.md index e762e68bfb..160ccca5cf 100644 --- a/zh-cn/application-dev/application-models/workscheduler-extensionability.md +++ b/zh-cn/application-dev/application-models/workscheduler-extensionability.md @@ -11,7 +11,8 @@ WorkSchedulerExtensionAbility提供了延迟任务回调能力,在延迟任务 延迟任务调度运作机制如图1所示。 **图1** 延迟任务调度运作机制  -![form-extension](figures/form-extension.png) + +![WorkSchedulerExtensionAbility](figures/WorkSchedulerExtensionAbility.png) 应用通过[延迟任务API](../reference/apis/js-apis-resourceschedule-workScheduler.md)注册、删除、查询任务。 应用服务侧进行条件检测和判断,若满足条件,则回调WorkSchedulerExtensionAbility拉起应用,执行onWorkStart、onWorkStop回调接口。 -- GitLab From 98c1286c1300c3c331ef3ba136b30f6032feab6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Thu, 5 Jan 2023 08:02:18 +0000 Subject: [PATCH 021/383] modify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../workscheduler-extensionability.md | 98 +++++++++++-------- 1 file changed, 59 insertions(+), 39 deletions(-) diff --git a/zh-cn/application-dev/application-models/workscheduler-extensionability.md b/zh-cn/application-dev/application-models/workscheduler-extensionability.md index 160ccca5cf..7e27ca94dc 100644 --- a/zh-cn/application-dev/application-models/workscheduler-extensionability.md +++ b/zh-cn/application-dev/application-models/workscheduler-extensionability.md @@ -28,20 +28,28 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 ## 开发步骤 -在DevEco Studio工程中手动新建一个WorkScheduler工程,具体步骤如下。 +在DevEco Studio工程中新建一个WorkScheduler工程,主要涉及如下关键步骤: -1. 在工程根目录新建Module,模板选择为Ohos Library,命名为library。在library对应的ets目录下,新建eTS文件并命名为workAbility.ets,用于实现延迟任务回调接口;新建ts文件并命名为DelayWork.ts,用于实现延迟任务API。 +- [开发延迟任务回调接口](#开发延迟任务回调接口):开发延迟任务生命周期回调接口WorkSchedulerExtensionAbility。 + +- [开发延迟任务API](#开发延迟任务API):开发延迟任务API,实现延迟任务注册、停止等功能。 + +- [配置文件](#配置文件):配置应用配置文件module.json5。 + +### 开发延迟任务回调接口 + +1. 在工程根目录新建Module,模板选择为Ohos Library,命名为library。 2. 在library对应的ets目录(./library/src/main/ets)下,新建eTS文件并命名为workAbility.ets,用于实现延迟任务回调接口。 -导入模块。 +> 导入模块。 ```ts import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility' import { notification, Logger } from '@ohos/notification' ``` -实现WorkSchedulerExtension生命周期接口。 +> 实现WorkSchedulerExtension生命周期接口。 ```ts export default class workAbility extends WorkSchedulerExtensionAbility { @@ -72,9 +80,37 @@ export default class workAbility extends WorkSchedulerExtensionAbility { } ``` -3. 在library对应的ets目录(./library/src/main/ets)下,新建ts文件并命名为DelayWork.ts,用于实现延迟任务API。 +3. 在工程entry Module对应的ets目录(./entry/src/main/ets)下,新建一个目录并命名为workAbility。 +在workAbility目录下,新建一个eTS文件并命名为WorkTest.ets,实现延迟任务回调接口。 + +> 导入模块。 + +```ts +import { workAbility } from '@ohos/library' +import { Logger } from '@ohos/notification' +``` + +> 继承workAbility,实现WorkSchedulerExtension生命周期接口。 + +```ts +export default class WorkTest extends workAbility { + onWorkStart(workInfo) { + Logger.info(TAG, `onWorkStartTest start ${JSON.stringify(workInfo)}`) + super.onWorkStart(workInfo) + } + + onWorkStopTest(workInfo) { + super.onWorkStop(workInfo) + Logger.info(TAG, `onWorkStop value`) + } +} +``` + +### 开发延迟任务API -导入模块。 +1. 在library对应的ets目录(./library/src/main/ets)下,新建ts文件并命名为DelayWork.ts,用于实现延迟任务API。 + +> 导入模块。 ```ts import workScheduler from '@ohos.resourceschedule.workScheduler' @@ -82,7 +118,7 @@ import prompt from '@ohos.prompt' import { Logger } from '@ohos/notification' ``` -实现延迟任务注册、停止接口。 +> 封装延迟任务注册、停止接口。 ```ts export default class DelayWork { @@ -117,54 +153,38 @@ export default class DelayWork { } ``` -4. 在工程entry Module对应的ets目录(./entry/src/main/ets)下,右键选择“New > Directory”,新建一个目录并命名为workAbility。 -在workAbility目录,右键选择“New > eTS File”,新建一个eTS文件并命名为WorkTest.ets,实现WorkSchedulerExtension生命周期接口。 +3. 在工程entry Module对应的index页面(./entry/src/main/ets/pages/index.ets)下,增加“升级”按钮,调用library封装的延迟任务注册接口。 -导入模块。 +> 导入模块。 ```ts import { workAbility } from '@ohos/library' import { Logger } from '@ohos/notification' ``` -继承workAbility,实现WorkSchedulerExtension生命周期接口。 +> 增加“升级”按钮,调用library封装的延迟任务注册接口,传入bundleName和abilityName,其中bilityName为WorkTest。 ```ts -export default class WorkTest extends workAbility { - onWorkStart(workInfo) { - Logger.info(TAG, `onWorkStartTest start ${JSON.stringify(workInfo)}`) - super.onWorkStart(workInfo) - } - - onWorkStopTest(workInfo) { - super.onWorkStop(workInfo) - Logger.info(TAG, `onWorkStop value`) - } -} + Button($r('app.string.upgrade')) + .width('60%') + .height(40) + .fontSize(30) + .onClick(() => { + this.work.startWork('ohos.samples.workscheduler', 'WorkTest') + }) ``` -5. 在工程entry Module对应的index页面(./entry/src/main/ets/pages/index.ets)下,增加“升级”按钮,调用library封装的延迟任务注册API。 - -导入模块。 +> 在组件析构时,调用延迟任务停止接口。 ```ts -import { workAbility } from '@ohos/library' -import { Logger } from '@ohos/notification' + aboutToDisappear() { + this.work.stopWork('ohos.samples.workscheduler', 'WorkTest') + } ``` -增加“升级”按钮,调用library封装的延迟任务注册API。 - -```ts -Button($r('app.string.upgrade')) - .width('60%') - .height(40) - .fontSize(30) - .onClick(() => { - this.work.startWork('ohos.samples.workscheduler', 'WorkTest') - }) -``` +### 配置文件 -6. 在工程entry Module对应的[module.json5配置文件](../quick-start/module-configuration-file.md)中注册WorkSchedulerExtensionAbility,type标签需要设置为“workScheduler”,srcEntrance标签表示当前ExtensionAbility组件所对应的代码路径。 +1. 在工程entry Module对应的[module.json5配置文件](../quick-start/module-configuration-file.md)中注册WorkSchedulerExtensionAbility,type标签需要设置为“workScheduler”,srcEntrance标签表示当前ExtensionAbility组件所对应的代码路径。 ```json { -- GitLab From 8aab746df537d19209f242a2f4ef7481fc8e888e Mon Sep 17 00:00:00 2001 From: esterzhou Date: Thu, 5 Jan 2023 16:55:32 +0800 Subject: [PATCH 022/383] update docs (11461) Signed-off-by: esterzhou --- .../js-components-custom-basic-usage.md | 151 ++++++++++++++++-- .../arkui-js/js-components-custom-props.md | 56 ++++--- .../arkui-js/js-components-custom-slot.md | 35 ++-- .../arkui-js/js-components-custom-style.md | 21 ++- 4 files changed, 199 insertions(+), 64 deletions(-) diff --git a/en/application-dev/reference/arkui-js/js-components-custom-basic-usage.md b/en/application-dev/reference/arkui-js/js-components-custom-basic-usage.md index 8ae629cba3..b6f659f069 100644 --- a/en/application-dev/reference/arkui-js/js-components-custom-basic-usage.md +++ b/en/application-dev/reference/arkui-js/js-components-custom-basic-usage.md @@ -1,6 +1,7 @@ -# Basic Usage +# Basic Usage of Custom Components + +Custom components are existing components encapsulated based on service requirements. A custom component can be invoked multiple times in a project to improve the code readability. You can import a custom component to the host page through **element** as shown in the following code snippet: -Custom components are existing components encapsulated based on service requirements. A custom component can be invoked multiple times in a project to improve the code readability. You can introduce a custom component to the host page through **element** as shown in the following code snippet: ```html
@@ -8,8 +9,8 @@ Custom components are existing components encapsulated based on service requirem
``` +The following is an example of using a custom component with **if-else**, which displays **comp1** when **showComp1** is set to **true** and displays **comp2** otherwise. -The following is an example of using a custom component with **if-else**: ```html @@ -19,18 +20,142 @@ The following is an example of using a custom component with **if-else**: ``` +The **name** attribute indicates the custom component name (optional), which is case-insensitive and is in lowercase by default. The **src** attribute indicates the **.hml** file path (mandatory) of the custom component. If **name** is not set, the **.hml** file name is used as the component name by default. + + +## Custom Events + +To bind an event to a custom child component, use the **(on|@)event-name="bindParentVmMethod"** syntax. **this.$emit('eventName', { params: 'passedParameters' })** is used in the child component to trigger the event and pass parameters to the parent component. The parent component then calls the **bindParentVmMethod** API and receives parameters passed by the child component. + +> **NOTE** +> +> For child component events that are named in camel case, convert the names to kebab case when binding the events to the parent component. For example, use **\@children-event** in the parent component instead of **childrenEvent** used in the child component. + +**Example 1 with parameters passed** + +The following example describes how to define a child component **comp**: + +```html + +
+ Click here to view the hidden text. + hello world +
+``` + +```css +/* comp.css */ +.item { + width: 700px; + flex-direction: column; + height: 300px; + align-items: center; + margin-top: 100px; +} +.text-style { + font-weight: 500; + font-family: Courier; + font-size: 40px; +} +``` + +```js +// comp.js +export default { + data: { + showObj: false, + }, + childClicked () { + this.$emit('eventType1'); + this.showObj = !this.showObj; + }, +} +``` + +The following example describes how to import **comp** to the parent component: + +```html + + +
+ +
+``` + +```css +/* xxx.css */ +.container { + background-color: #f8f8ff; + flex: 1; + flex-direction: column; + align-content: center; +} +``` + +```js +// xxx.js +export default { + textClicked () {} +} +``` + +**Example 2 with no parameters passed** + +The following example describes how to define a child component **comp**: + +```html + +
+ Click here to view the hidden text. + hello world +
+``` + +```js +// comp.js +export default { + childClicked () { + this.$emit('eventType1', { text: 'Receive the parameters from the child component.' }); + this.showObj = !this.showObj; + }, +} +``` + +In the following example, the child component passes the **text** parameter to the parent component, and the parent component obtains the parameter through **e.detail**: + +```html + + +
+ Parent component: {{text}} + +
+``` + +```js +// xxx.js +export default { + data: { + text: 'Start' + }, + textClicked (e) { + this.text = e.detail.text; + }, +} +``` + +![EventParameters](figures/EventParameters.gif) + + +## Custom Component Data -- The **name** attribute indicates the custom component name (optional), which is case-insensitive and is in lowercase by default. The **src** attribute indicates the **.hml** file path (mandatory) of the custom component. If **name** is not set, the **.hml** file name is used as the component name by default. -- Event binding: Use **(on|@)***child1* syntax to bind a child component event to a custom component. In the child component, use **this.$emit('***child1***', {params:'***parameter to pass***'})** for event triggering and value transferring. In the parent component, call **bindParentVmMethod** method and receive the parameters passed from the child component. - > **NOTE** - > - > For child component events that are named in camel case, convert the names to kebab case when binding the events to the parent component. For example, use **\@children-event** instead of **childrenEvent**: **\@children-event="bindParentVmMethod"**. +In the JS file of a custom component, you can define, pass, and process data by declaring fields such as **data**, **props**, and **computed**. For details about how to use **props** and **computed**, see [Data Transfer and Processing](js-components-custom-props.md). -**Table 1** Objects +**Table 1** Custom component data -| Name | Type | Description | +| Name | Type | Description | | -------- | --------------- | ---------------------------------------- | -| data | Object/Function | Data model of the page. If the attribute is of the function type, the return value must be of the object type. The attribute name cannot start with a dollar sign ($) or underscore (_). Do not use reserved words (**for**, **if**, **show**, and **tid**).
Do not use this attribute and **private** or **public** at the same time.(Rich) | -| props | Array/Object | Used for communication between components. This attribute can be transferred to components via **\**. A **props** name must be in lowercase and cannot start with a dollar sign ($) or underscore (\_). Do not use reserved words (**for**, **if**, **show**, and **tid**). Currently, **props** does not support functions.| -| computed | Object | Used for pre-processing an object for reading and setting. The result is cached. The name cannot start with a dollar sign ($) or underscore (\_). Do not use reserved words.| +| data | Object \| Function | Data model of the page. If the attribute is of the function type, the return value must be of the object type. The name cannot start with a dollar sign ($) or underscore (\_). Do not use reserved words (**for**, **if**, **show**, and **tid**).
Do not use this attribute and **private** or **public** at the same time.| +| props | Array \| Object | Used for communication between components. This attribute can be passed to components through **\**. A **props** name must be in lowercase and cannot start with a dollar sign ($) or underscore (_). Do not use reserved words (**for**, **if**, **show**, and **tid**) in the name. Currently, **props** does not support functions.| +| computed | Object | Used for pre-processing for reading and setting parameters. The result is cached. The name cannot start with a dollar sign ($) or underscore (\_). Do not use reserved words.| diff --git a/en/application-dev/reference/arkui-js/js-components-custom-props.md b/en/application-dev/reference/arkui-js/js-components-custom-props.md index f2a3a4c4fa..c9c496b578 100644 --- a/en/application-dev/reference/arkui-js/js-components-custom-props.md +++ b/en/application-dev/reference/arkui-js/js-components-custom-props.md @@ -1,22 +1,25 @@ -# props +# Data Transfer and Processing -You can use **props** to declare attributes of a custom component and pass the attributes to the child component. The supported types of **props** include String, Number, Boolean, Array, Object, and Function. Note that a camel case attribute name \(**compProp**\) should be converted to the kebab case format \(**comp-prop**\) when you reference the attribute in an external parent component. You can add **props** to a custom component, and pass the attribute to the child component. -``` +## props + +You can use **props** to declare attributes of a custom component and pass the attributes to the child component. The supported types of **props** include String, Number, Boolean, Array, Object, and Function. Note that a camel case attribute name (**compProp**) should be converted to the kebab case format (**comp-prop**) when you reference the attribute in an external parent component. The following is sample for adding **props** to a custom component and passing the attribute to the child component. + +```html
{{compProp}}
``` -``` +```js // comp.js export default { props: ['compProp'], } ``` -``` +```html
@@ -24,21 +27,22 @@ export default {
``` ->![](../../public_sys-resources/icon-note.gif) **NOTE:** ->The name of a custom attribute cannot start with reserved keywords such as **on**, **@**, **on:**, and **grab:**. +> **NOTE** +> +> The name of a custom attribute cannot start with reserved keywords such as **on**, **@**, **on:**, and **grab:**. -## Default Value +### Default Value -You can set the default value for a child component attribute via **default**. The default value is used if the parent component does not have **default** set. In this case, the **props** attribute must be in object format instead of an array. +You can set the default value for a child component attribute via **default**. The default value is used if the parent component does not have **default** set. In this case, the **props** attribute must be in object format instead of an array. -``` +```html
{{title}}
``` -``` +```js // comp.js export default { props: { @@ -49,21 +53,21 @@ export default { } ``` -In this example, a **** component is added to display the title. The title content is a custom attribute, which displays the text specified by a user. If the user has not set a title, the default text will be displayed. Add the attribute when referencing the custom component. +In this example, a **\** component is added to display the title. The title content is a custom attribute, which displays the text specified by a user. If the user has not set a title, the default text will be displayed. Add the attribute when referencing the custom component. -``` +```html
- +
``` -## Unidirectional Value Transfer +### Unidirectional Value Transfer -Data can be transferred only from the parent component to child components. You are not allowed to change the value passed to the child component. However, you can receive the value passed by **props** as a default value in **data**, and then change the **data** value. +Data can be transferred only from the parent component to child components. You are not allowed to change the value passed to the child component. However, you can receive the value passed by **props** as a default value in **data**, and then change the **data** value. -``` +```js // comp.js export default { props: ['defaultCount'], @@ -78,11 +82,11 @@ export default { } ``` -## Monitoring Data Changes by **$watch** +### Monitoring Data Changes by **$watch** -To listen for attribute changes in a component, you can use the **$watch** method to add a callback. The following code snippet shows how to use **$watch**: +To listen for attribute changes in a component, you can use the **$watch** method to add a callback. The following code snippet shows how to use **$watch**: -``` +```js // comp.js export default { props: ['title'], @@ -90,16 +94,17 @@ export default { this.$watch('title', 'onPropertyChange'); }, onPropertyChange(newV, oldV) { - console.info('title attribute changed'+ newV + ' ' + oldV) + console.info('title attribute changed'+ newV + ' ' + oldV) }, } ``` -## Computed Property -To improve the development efficiency, you can use a computed property to pre-process an attribute in a custom component before reading or setting the attribute. In the **computed** field, you can set a getter or setter to be triggered when the attribute is read or written, respectively. The following is an example: +## computed -``` +To improve the development efficiency, you can use a computed property to pre-process an attribute in a custom component before reading or setting the attribute. In the **computed** field, you can set a getter or setter to be triggered when the attribute is read or written, respectively. The following is an example: + +```js // comp.js export default { props: ['title'], @@ -129,5 +134,4 @@ export default { } ``` -The first computed property **message** has only a getter. The value of **message** changes depending on the **objTitle** value. The getter can only read but cannot set the value. You need a setter \(such as **notice** in the sample code\) to set the value of the computed property. - +The first computed property **message** has only a getter. The value of **message** changes depending on the **objTitle** value. The getter can only read but cannot set the value (such as **time** defined during initialization in **data**). You need a setter (such as **notice** in the sample code) to set the value of the computed property. diff --git a/en/application-dev/reference/arkui-js/js-components-custom-slot.md b/en/application-dev/reference/arkui-js/js-components-custom-slot.md index b65cfd01d2..50c5b9ed0d 100644 --- a/en/application-dev/reference/arkui-js/js-components-custom-slot.md +++ b/en/application-dev/reference/arkui-js/js-components-custom-slot.md @@ -1,13 +1,15 @@ -# slot +# slot ->![](../../public_sys-resources/icon-note.gif) **NOTE:** ->The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. +> **NOTE** +> +> The APIs of this module are supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. -## Default Slot -You can use the **** tag to create a slot inside a custom component to fill the content defined in the parent component. The sample code is as follows: +## Default Slot -``` +You can use the **\** tag to create a slot inside a custom component to fill the content defined in the parent component. The sample code is as follows: + +```html
The following uses the content defined in the parent component. @@ -16,22 +18,22 @@ You can use the **** tag to create a slot inside a custom component to ``` The following references the custom component: - -``` +```html
- Content defined in the parent component + Content defined in the parent component
``` -## Named Slot -When multiple slots are need inside a custom component, you can name them, so that you can specify the slot in which you want to fill content by setting the **** attribute. +## Named Slot -``` +When multiple slots are need inside a custom component, you can name them, so that you can specify the slot in which you want to fill content by setting the **** attribute. + +```html
The following uses the content defined in the parent component. @@ -41,8 +43,7 @@ When multiple slots are need inside a custom component, you can name them, so th ``` The following references the custom component: - -``` +```html
@@ -53,6 +54,6 @@ The following references the custom component:
``` ->![](../../public_sys-resources/icon-note.gif) **NOTE:** ->**** and **** do not support dynamic data binding. - +> **NOTE** +> +> **\** and **\** do not support dynamic data binding. diff --git a/en/application-dev/reference/arkui-js/js-components-custom-style.md b/en/application-dev/reference/arkui-js/js-components-custom-style.md index 37e0770cde..ba8644e3e3 100644 --- a/en/application-dev/reference/arkui-js/js-components-custom-style.md +++ b/en/application-dev/reference/arkui-js/js-components-custom-style.md @@ -1,16 +1,19 @@ # Style Inheritance + > **NOTE**
-> The APIs of this module are supported since API 9. Updates will be marked with a superscript to indicate their earliest API version. +> +> The APIs of this module are supported since API version 9. Updates will be marked with a superscript to indicate their earliest API version. A custom component has the **inherit-class** attribute, which is defined in the following table. -| Name | Type | Default Value| Mandatory| Description | -| ------------ | ------ | ------ | ---- | ------------------------------------------------------ | -| inherit-class | string | - | No | Class styles inherited from the parent component, seperated by spaces.| +| Name | Type | Default Value | Mandatory | Description | +| ------------- | ------ | ---- | ---- | -------------------------------- | +| inherit-class | string | - | No | Class styles inherited from the parent component, separated by spaces.| To enable a custom component to inherit the styles of its parent component, set the **inherit-calss** attribute for the custom component. -The example below is a code snippet in the HML file of the parent page that references a custom component named **comp**. This component uses the **inherit-class** attribute to inherit the styles of its parent component: **parent-class1** and **parent-class2**. +The example below is a code snippet in the HML file of the parent component that references a custom component named **comp**. This component uses the **inherit-class** attribute to inherit the styles of its parent component: **parent-class1** and **parent-class2**. + ```html @@ -20,9 +23,10 @@ The example below is a code snippet in the HML file of the parent page that refe
``` -Code snippet in the CSS file of the parent page: -```html -// xxx.css +Code snippet in the CSS file of the parent component: + +```css +/* xxx.css */ .parent-class1 { background-color:red; border:2px; @@ -34,6 +38,7 @@ Code snippet in the CSS file of the parent page: ``` Code snippet in the HML file of the custom component, where **parent-class1** and **parent-class2** are styles inherited from the parent component: + ```html
-- GitLab From e7acf0dfccf9802497c7ce73cda074f1aba31533 Mon Sep 17 00:00:00 2001 From: esterzhou Date: Thu, 5 Jan 2023 15:50:05 +0800 Subject: [PATCH 023/383] update doc (11401) Signed-off-by: esterzhou --- en/device-dev/dev-board-on-the-master.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/en/device-dev/dev-board-on-the-master.md b/en/device-dev/dev-board-on-the-master.md index 92f664523a..d06cbadbb9 100644 --- a/en/device-dev/dev-board-on-the-master.md +++ b/en/device-dev/dev-board-on-the-master.md @@ -1,24 +1,25 @@ # OpenHarmony Development Boards List -Currently, the OpenHarmony community supports 17 types of development boards, as listed in the table below. +Currently, OpenHarmony supports 22 development board models, as listed in the table below. ## Standard-System Development Boards | Board Model| Chip Model| Function Description and Use Case| Application Scenario| Code Repository and Daily Build| | ---------- | -------- | -------- | ------------ | -------------------------------------- | -|HiHope HH-SCDAYU200| RK3568 |Function description:
Bolstered by the Rockchip RK3568, the HH-SCDAYU200 development board integrates the dual-core GPU and efficient NPU. Its quad-core 64-bit Cortex-A55 processor uses the advanced 22 nm fabrication process and is clocked at up to 2.0 GHz. The board is packed with Bluetooth, Wi-Fi, audio, video, and camera features, with a wide range of expansion ports to accommodate various video input and outputs. It comes with dual GE auto-sensing RJ45 ports, so it can be used in multi-connectivity products, such as network video recorders (NVRs) and industrial gateways.
Use case:
DAYU200 Adaptation Case|Entertainment, easy travel, and smart home, such as kitchen hoods, ovens, and treadmills.|Code repositories:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|HiHope HH-SCDAYU200| RK3568 |Function description:
Bolstered by the Rockchip RK3568, the HH-SCDAYU200 development board integrates the dual-core GPU and efficient NPU. Its quad-core 64-bit Cortex-A55 processor uses the advanced 22 nm fabrication process and is clocked at up to 2.0 GHz. The board is packed with Bluetooth, Wi-Fi, audio, video, and camera features, with a wide range of expansion ports to accommodate various video input and outputs. It comes with dual GE auto-sensing RJ45 ports, so it can be used in multi-connectivity products, such as network video recorders (NVRs) and industrial gateways.
Use case:
[DAYU200 Adaptation Case](porting/porting-dayu200-on_standard-demo.md)|Entertainment, easy travel, and smart home, such as kitchen hoods, ovens, and treadmills.|Code repositories:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | |Hispark_Phoenix|Hi3751V351|Function description:
Hi3751 V351 is a main processor designed for FHD smart televisions, conforming to a wide range of global television standards. It supports NTSC/PAL/SECAM demodulation, DTMB/DVB-C/ATSC/ISDB-T demodulation, and DVB-T/T2/S/S2 extension. The SoC running AOSP has a built-in multi-core Arm Cortex-A53 CPU, multi-core Arm Mali-T450 GPU, and 1 GB DDR SDRAM. It can handle USB playback, video formats such as MPEG2, H.264, H.265, RMVB, and AVS+, as well as audio decoding and sound processing [including in-house super wide sound (SWS) processing]. It also supports CVBS/YPbPr/VGA/HDMI 1.4/USB inputs, LVDS/mini-LVDS interfaces, and mainstream TCONLESS panels.|Smart TVs, smart home central control screens, smart displays, commercial display advertising screens, interactive whiteboards, industrial control screens, printer screens, white good screens, and fitness device display screens.|Code repositories:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| |Unionpi Tiger|Amlogic A311D|Function description:
Unionpi Tiger is a piece of intelligent hardware used in scenarios such as image processing, audio and video processing, and deep learning. Its main processor Amlogic A311D supports the GPU and neural network acceleration subsystem, 4K video codec engine, industry-leading HDR image processing, and all standards-based audio/video input/output interfaces. The CPU of the active system uses the big-core and small-core design with a clock speed of up to 2.2 GHz. It integrates four Cortex-A73 cores, two Cortex-A53 cores, and a standalone 5.0T NPU.|Smart home, AI facial recognition, industrial control, smart vehicle-mounted devices, multimedia processing, and AI edge computing.|Code repositories:
[device_soc_amlogic](https://gitee.com/openharmony/device_soc_amlogic)
[device_board_unionman](https://gitee.com/openharmony/device_board_unionman)
[vendor_unionman](https://gitee.com/openharmony/vendor_unionman)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| |MILOS_Standard0|NXP i.MX8M Mini|Function description:
MILOS_Standard0 is powered by the NXP i.MX8M Mini processor and clocked at up to 1.8 GHz. It integrates a wide range of peripheral input and output ports, including LVDS, MIPI-DSI output, and MIPI-CSI camera ports, as well as GE, multi-channel USB, and multi-serial communications ports.|High-performance instruments and meters (industry and medical care), industrial control and human-machine interaction devices, intelligent transportation, smart fire fighting, and smart buildings.|Code repositories:
[device_soc_nxp](https://gitee.com/openharmony/device_soc_nxp)
[device_board_osware](https://gitee.com/openharmony/device_board_osware)
[vendor_osware](https://gitee.com/openharmony/vendor_osware)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| |Yangfan development board|RK3399|Function description:
The Yangfan development board is built based on the RK3399 chip. The RK3399 CPU uses the big.LITTLE core architecture, with two Cortex-A72 big cores and four Cortex-A53 small cores. It provides significant improvements over its predecessor in terms of integers, floating point numbers, memory, overall performance, power consumption, and core area. The RK3399 GPU leverages the next-generation quad-core Arm Mali-T860 processor. The various bandwidth compression technologies (such as intelligent overlay, ASTC, and local pixel storage) and a wide array of graphics and computing interfaces make it more capable of complex graphics use cases.|Interactive advertising machines, interactive digital signage, intelligent self-service terminals, intelligent retail terminals, industrial control hosts, and robot devices.|Code repositories:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)
[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| |ZLG development board|T507|Function description:
The ZLG development board is equipped with the Quanzhi industrial-grade T507 chip, which integrates the quad-core CortexTM A53 CPU, G31 MP2 GPU, multi-channel video outputs (RGB/2 x LVDS/HDMI/CVBS OUT), and multi-channel video inputs (MIPI CSI/BT.656/BT.1120). It allows for 4K@60 fps H.265 decoding, 4K@25 fps H.264 decoding, DI, and 3D noise reduction. All these features, combined with its automatic color tuning system and trapezoid correction module, contribute to a smooth user experience and professional visual effects.|Industrial control, smart cockpits, smart home, smart electricity, and online education.|Code repositories:
[device_soc_allwinner](https://gitee.com/openharmony/device_soc_allwinner)
[device_board_isoftstone](https://gitee.com/openharmony/device_board_isoftstone)
[vendor_isoftstone](https://gitee.com/openharmony/vendor_isoftstone)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| +|Venus series smart TV khdvk_3566b development board|RK3566|Function description:
The khdvk_3566b development board comes with the Rockchip RK3566 Cortex-A55 quad-core processor. Thanks to a wide range of universal display ports and port types, it can be connected to a myriad of peripherals to meet the requirements of various man-machine interaction scenarios.|Tablets, learning machines, and facial recognition devices, including turnstiles, devices for facial recognition payment, industrial robots, medical devices, license plate recognition devices, advertising machines, digital signage, smart self-service terminals, and smart retail terminals.|Code repositories:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_kaihong](https://gitee.com/openharmony/device_board_kaihong)
[vendor_kaihong](https://gitee.com/openharmony/vendor_kaihong)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| ## Small-System Development Boards | Board Model| Chip Model| Function Description and Use Case| Application Scenario| Code Repository and Daily Build| | ---------- | -------- | -------- | ------------ | -------------------------------------- | -|Hispark_Taurus|Hi3516DV300|Function description:
Hi3516D V300 is the next-generation system on chip (SoC) for smart HD IP cameras. It integrates the next-generation image signal processor (ISP), H.265 video compression encoder, and high-performance NNIE engine, and delivers high performance in terms of low bit rate, high image quality, intelligent processing and analysis, and low power consumption.|Smart devices with screens, such as refrigerators with screens and head units.|Code repositories:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| -|BearPi-HM Micro|STM32MP157A|Function description:
The BearPi-HM Micro development board is equipped with the STM32MP157 chip, works with a 4.3-inch LCD capacitive touchscreen, and comes with Wi-Fi circuits and standards-based E53 interfaces. The E53 interfaces can be used to connect to smart humidifiers, smart desk lamps, smart security facilities, and intelligent smoke detectors.
Use case:
BearPi-HM Mircro Adaptation Case|Smart home, smart hardware, and central control screens.|Code repositories:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|Hispark_Taurus|Hi3516DV300|Function description:
Hi3516DV300 is the next-generation system on chip (SoC) for smart HD IP cameras. It integrates the next-generation image signal processor (ISP), H.265 video compression encoder, and high-performance NNIE engine, and delivers high performance in terms of low bit rate, high image quality, intelligent processing and analysis, and low power consumption.|Smart devices with screens, such as refrigerators with screens and head units.|Code repositories:
[device_soc_hisilicon](https://gitee.com/openharmony/device_soc_hisilicon)
[device_board_hisilicon](https://gitee.com/openharmony/device_board_hisilicon)
[vendor_hisilicon](https://gitee.com/openharmony/vendor_hisilicon)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| +|BearPi-HM Micro|STM32MP157A|Function description:
The BearPi-HM Micro development board is equipped with the STM32MP157 chip, works with a 4.3-inch LCD capacitive touchscreen, and comes with Wi-Fi circuits and standards-based E53 interfaces. The E53 interfaces can be used to connect to smart humidifiers, smart desk lamps, smart security facilities, and intelligent smoke detectors.
Use case:
[BearPi-HM Mircro Adaptation Case](porting/porting-stm32mp15xx-on-smallsystem.md)|Smart home, smart hardware, and central control screens.|Code repositories:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_bearpi](https://gitee.com/openharmony/device_board_bearpi)
[vendor_bearpi](https://gitee.com/openharmony/vendor_bearpi)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | ## Mini-System Development Boards @@ -28,8 +29,11 @@ Currently, the OpenHarmony community supports 17 types of development boards, as |Multi-modal V200Z-R|BES2600|Function description:
The multi-modal V200Z-R development board is a high-performance, multi-functional, and cost-effective AIoT SoC powered by the BES2600WM chip of Bestechnic. It integrates a quad-core Arm processor with a frequency of up to 1 GHz as well as dual-mode Wi-Fi and dual-mode Bluetooth. The board supports the 802.11 a/b/g/n/ and BT/BLE 5.2 standards. It is able to accommodate RAM of up to 42 MB and flash memory of up to 32 MB, and supports the MIPI display serial interface (DSI) and camera serial interface (CSI). It is applicable to various AIoT multi-modal VUI and GUI interaction scenarios.
Use case:
[Multi-modal V200Z-R Adaptation Case](porting/porting-bes2600w-on-minisystem-display-demo.md)|Smart hardware, and smart devices with screens, such as speakers and watches.|Code repositories:
[device_soc_bestechnic](https://gitee.com/openharmony/device_soc_bestechnic)
[device_board_fnlink](https://gitee.com/openharmony/device_board_fnlink)
[vendor_bestechnic](https://gitee.com/openharmony/vendor_bestechnic)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | |Langguo LANGO200|ASR582X|Function description:
The LANGO200 IoT development board integrates the high-performance WiFi-BLE dual-mode chip ASR5822, external storage chip, voice playing chip, and analog-to-digital converter. It supports common peripheral interfaces like SPI, and can be connected to an external OLED display and infrared remote control.
Use case:
[LANGO200 Adaptation Case](porting/porting-asr582x-combo-demo.md)|Connection modules for smart home products.|Code repositories:
[device_soc_asrmicro](https://gitee.com/openharmony/device_soc_asrmicro)
[device_board_lango](https://gitee.com/openharmony/device_board_lango)
[vendor_asrmicro](https://gitee.com/openharmony/vendor_asrmicro)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | |Goodix GR5515-STARTER-KIT|GR5515|Function description:
The GR5515-STARTER-KIT development board is a Bluetooth 5.1-capable single-mode Bluetooth low energy (BLE) SoC and comes with multifunctional keys and LED indicators.|Smart hardware, such as watches, wristbands, and price tags.|Code repositories:
[device_soc_goodix](https://gitee.com/openharmony/device_soc_goodix)
[device_board_goodix](https://gitee.com/openharmony/device_board_goodix)
[vendor_goodix](https://gitee.com/openharmony/vendor_goodix)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| -|Niobe407|STM32F407IGT6|Function description:
The Niobe407 development board is powered by the STM32F407 chip, which integrates the Arm Cortex-M4 CPU with the FPU and adaptive real-time accelerator and is cloced at up to 168 MHz.
Use case:
Niobe407 Adaptation Case|Smart transportation and industrial control.|Code repositories:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)
[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|Niobe407|STM32F407IGT6|Function description:
The Niobe407 development board is powered by the STM32F407 chip, which integrates the Arm Cortex-M4 CPU with the FPU and adaptive real-time accelerator and is clocked at up to 168 MHz.
Use case:
[Niobe407 Adaptation Case](porting/porting-stm32f407-on-minisystem-eth.md)|Smart transportation and industrial control.|Code repositories:
[device_soc_st](https://gitee.com/openharmony/device_soc_st)
[device_board_talkweb](https://gitee.com/openharmony/device_board_talkweb)
[vendor_talkweb](https://gitee.com/openharmony/vendor_talkweb)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | |B91 Generic Starter Kit|TLSR9x|Function description:
The B91 Generic Starter Kit developed by Telink is a hardware platform that can be used to evaluate TLSR9 chipsets. You can leverage it to develop applications that comply with the 2.4 GHz interface standards, such as BLE, BLE Mesh, Zigbee 3.0, Thread, and 2.4 GHz proprietary protocols.|Connection modules for smart home products.|Code repositories:
[device_soc_telink](https://gitee.com/openharmony/device_soc_telink)
[device_board_telink](https://gitee.com/openharmony/device_board_telink)
[vendor_telink](https://gitee.com/openharmony/vendor_telink)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds| -|cst85_wblink|cst85f01|Function description:
The cst85_wblink development board is a high-performance, multi-functional, and cost-effective AIoT SoC development board developed by CHIPSEA based on the cst85f01 chip. The cst85_wblink development board integrates dual-band Wi-Fi and dual-mode Bluetooth and supports standard 802.11 a/b/g/n protocols and Bluetooth/BLE 5.0 protocols. It comes in multiple memory flavors, with up to 992 KB of RAM and up to 16 MB of flash memory. In addition, it supports MIPI DSI and CSI, which makes it a great choice for developing Wi-Fi and Bluetooth applications for IoT and smart devices.
Use case:
cst85_wblink Adaptation Case|IoT and smart home.|Code repositories:
[device_soc_chipsea](https://gitee.com/openharmony/device_soc_chipsea)
[device_board_chipsea](https://gitee.com/openharmony/device_board_chipsea)
[vendor_chipsea](https://gitee.com/openharmony/vendor_chipsea)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | -|Neptune100| W800 |Function description:
Based on the WinnerMicro W800 chip, the Neptune 100 development board is a Wi-Fi & Bluetooth dual-mode SoC development board. It supports the standard 802.11 b/g/n protocols and has a complete built-in TCP/IP protocol stack. Its built-in Bluetooth baseband processor supports the Bluetooth/BLE4.2 protocols. It provides various digital interfaces, including the built-in QFlash, SPI, UART, GPIO, I2C, I2S and 7816 interfaces. The development board provides reliable security with support for a wide array of security features: hardware encryption and decryption algorithms, built-in DSP, floating-point arithmetic unit, security engine, code security permission configuration, built-in 2 MB flash memory, firmware encryption storage, firmware signature, secure debugging, and secure upgrade.
Use case:
Neptune 100 Adaptation Case|IoT, smart home, and connection products.|Code repositories:
[device_soc_winnermicro](https://gitee.com/openharmony/device_soc_winnermicro)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|cst85_wblink|cst85f01|Function description:
The cst85_wblink development board is a high-performance, multi-functional, and cost-effective AIoT SoC development board developed by CHIPSEA based on the cst85f01 chip. The cst85_wblink development board integrates dual-band Wi-Fi and dual-mode Bluetooth and supports standard 802.11 a/b/g/n protocols and Bluetooth/BLE 5.0 protocols. It comes in multiple memory flavors, with up to 992 KB of RAM and up to 16 MB of flash memory. In addition, it supports MIPI DSI and CSI, which makes it a great choice for developing Wi-Fi and Bluetooth applications for IoT and smart devices.
Use case:
[cst85_wblink Adaptation Case](porting/porting-cst85f01-combo-demo.md)|IoT and smart home.|Code repositories:
[device_soc_chipsea](https://gitee.com/openharmony/device_soc_chipsea)
[device_board_chipsea](https://gitee.com/openharmony/device_board_chipsea)
[vendor_chipsea](https://gitee.com/openharmony/vendor_chipsea)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|Neptune100| W800 |Function description:
Based on the WinnerMicro W800 chip, the Neptune 100 development board is a Wi-Fi & Bluetooth dual-mode SoC development board. It supports the standard 802.11 b/g/n protocols and has a complete built-in TCP/IP protocol stack. Its built-in Bluetooth baseband processor supports the Bluetooth/BLE4.2 protocols. It provides various digital interfaces, including the built-in QFlash, SPI, UART, GPIO, I2C, I2S and 7816 interfaces. The development board provides reliable security with support for a wide array of security features: hardware encryption and decryption algorithms, built-in DSP, floating-point arithmetic unit, security engine, code security permission configuration, built-in 2 MB flash memory, firmware encryption storage, firmware signature, secure debugging, and secure upgrade.
Use case:
[Neptune 100 Adaptation Case](porting/porting-w800-combo-demo.md)|IoT, smart home, and connection products.|Code repositories:
[device_soc_winnermicro](https://gitee.com/openharmony/device_soc_winnermicro)
[device_board_hihope](https://gitee.com/openharmony/device_board_hihope)
[vendor_hihope](https://gitee.com/openharmony/vendor_hihope)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | |RK2206| RK2206 |Function description:
The RK2206 development board uses the high-performance and cost-effective RK2206 chip as its main control board. It runs the OpenHarmony mini system and provides built-in Wi-Fi/AP and NFC features as well as LCD and E53 interfaces. The E53 interfaces are compatible with various sensor modules, facilitating diversified IoT applications. The RK2006 development board has been deployed in more than 20 mature use cases and demonstrated in comprehensive courseware.|Smart city, smart home, smart teaching, smart vehicle-mounted devices, and smart healthcare.|Code repositories:
[device_soc_rockchip](https://gitee.com/openharmony/device_soc_rockchip)
[device_board_lockzhiner](https://gitee.com/openharmony/device_board_lockzhiner)
[vendor_lockzhiner](https://gitee.com/openharmony/vendor-lockzhiner)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|HPM6750EVK2 development board| HPM6700 |Function description:
The HPM6700/6400 series MCU is a high-performance real-time RISC-V microcontroller from Shanghai Xianji Semiconductor Technology Co., Ltd.. It provides high computing power, efficient control, and various multimedia functions for industrial automation and edge computing applications.|Industrial control and edge computing.|Code repositories:
[device_soc_hpmicro](https://gitee.com/openharmony/device_soc_hpmicro)
[device_board_hpmicro](https://gitee.com/openharmony/device_board_hpmicro)
[vendor_hpmicro](https://gitee.com/openharmony/vendor_hpmicro)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|NiobeU4| ESP32U4WDH |Function description:
NiobeU4 is an IoT device development suite developed based on ESP32U4WDH. It integrates 2.4 GHz Wi-Fi and dual-mode Bluetooth and features ultra-high RF performance, stability, universality, reliability, and ultra-low power consumption. It works at 13.56 MHz and supports NFC contactless communication.|Contactless reader/writer applications that require low power consumption, voltage, and cost; lithium battery power supply and charge/discharge management; out-of-the-box intelligent hardware solution for developers to verify and develop their own software and functions.|Code repositories:
[device_soc_esp](https://gitee.com/openharmony/device_soc_esp)
[device_board_openvalley ](https://gitee.com/openharmony/device_board_openvalley)
[vendor_openvalley](https://gitee.com/openharmony/vendor_openvalley)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | +|BK7235 development board| BK7235 |Function description:
BK7235 is a highly integrated Wi-Fi 6+BLE 5.2 combo SoC developed by Beken for IoT applications. It features diverse array of resources, powerful performance, and high security.|IoT, smart home, and connection products.|Code repositories:
[device_soc_beken](https://gitee.com/openharmony/device_soc_beken)
[device_board_beken](https://gitee.com/openharmony/device_board_beken)
[vendor_beken](https://gitee.com/openharmony/vendor_beken)
Daily build:
http://ci.openharmony.cn/dailys/dailybuilds | -- GitLab From d8a34d314f8906a84655bee17e8e644f3fa205e1 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 5 Jan 2023 09:25:57 +0000 Subject: [PATCH 024/383] update zh-cn/application-dev/reference/apis/js-apis-router.md. Signed-off-by: LiAn Signed-off-by: LiAn --- .../reference/apis/js-apis-router.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-router.md b/zh-cn/application-dev/reference/apis/js-apis-router.md index 8318a21c28..c53ab60fd9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-router.md +++ b/zh-cn/application-dev/reference/apis/js-apis-router.md @@ -32,7 +32,7 @@ pushUrl(options: RouterOptions): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -81,7 +81,7 @@ pushUrl(options: RouterOptions, callback: AsyncCallback<void>): void | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | --------- | | options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -185,7 +185,7 @@ pushUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback<voi | ------- | ------------------------------- | ---- | ---------- | | options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | | mode | [RouterMode](#routermode9) | 是 | 跳转页面使用的模式。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -239,7 +239,7 @@ replaceUrl(options: RouterOptions): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -284,7 +284,7 @@ replaceUrl(options: RouterOptions, callback: AsyncCallback<void>): void | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | ------------------ | | options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -336,7 +336,7 @@ replaceUrl(options: RouterOptions, mode: RouterMode): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -382,7 +382,7 @@ replaceUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback< | ------- | ------------------------------- | ---- | ---------- | | options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | | mode | [RouterMode](#routermode9) | 是 | 跳转页面使用的模式。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -636,7 +636,7 @@ export default { ### 基于TS扩展的声明式开发范式 ```ts -//通过router.push跳转至目标页携带params参数 +// 通过router.push跳转至目标页携带params参数 import router from '@ohos.router' @Entry @@ -682,7 +682,7 @@ struct Index { ``` ```ts -//在second页面中接收传递过来的参数 +// 在second页面中接收传递过来的参数 import router from '@ohos.router' @Entry @@ -804,7 +804,7 @@ router.replace({ }); ``` - ## router.replace(deprecated) +## router.replace(deprecated) replace(options: RouterOptions, mode: RouterMode): void -- GitLab From 0ff3064acf4b21d0d8f9115e9bcb13bffe3ef75d Mon Sep 17 00:00:00 2001 From: esterzhou Date: Thu, 5 Jan 2023 17:40:58 +0800 Subject: [PATCH 025/383] update docs (11437) Signed-off-by: esterzhou --- .../reference/arkui-ts/ts-container-gridcol.md | 12 ++++++------ .../arkui-ts/ts-universal-events-show-hide.md | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/en/application-dev/reference/arkui-ts/ts-container-gridcol.md b/en/application-dev/reference/arkui-ts/ts-container-gridcol.md index e808617b90..33870e0f04 100644 --- a/en/application-dev/reference/arkui-ts/ts-container-gridcol.md +++ b/en/application-dev/reference/arkui-ts/ts-container-gridcol.md @@ -1,6 +1,6 @@ # GridCol -The **\** component must be used as a child component of the [GridRow](ts-container-gridrow.md) container. +The **\** component must be used as a child component of the **[\](ts-container-gridrow.md)** container. > **NOTE** > @@ -15,11 +15,11 @@ GridCol(option?:{span?: number | GridColColumnOption, offset?: number | GridColC **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ----------------------------- | ---- | ------------------------------------------------------------ | -| span | number \| GridColColumnOption | No | Number of occupied columns. If it is set to **0**, the element is not involved in layout calculation, that is, the element is not rendered.
Default value: **1**| -| offset | number \| GridColColumnOption | No | Number of offset columns relative to the previous child component of the grid
Default value: **0** | -| order | number \| GridColColumnOption | No | Sequence number of the element. Child components of the grid are sorted in ascending order based on their sequence numbers.
Default value: **0**| +| Name| Type | Mandatory| Description | +| ------ | ----------------------------------------------------- | ---- | ------------------------------------------------------------ | +| span | number \| [GridColColumnOption](#gridcolcolumnoption) | No | Number of occupied columns. If it is set to **0**, the element is not involved in layout calculation, that is, the element is not rendered.
Default value: **1**| +| offset | number \| [GridColColumnOption](#gridcolcolumnoption) | No | Number of offset columns relative to the previous child component of the grid
Default value: **0** | +| order | number \| [GridColColumnOption](#gridcolcolumnoption) | No | Sequence number of the element. Child components of the grid are sorted in ascending order based on their sequence numbers.
Default value: **0**| ## Attributes diff --git a/en/application-dev/reference/arkui-ts/ts-universal-events-show-hide.md b/en/application-dev/reference/arkui-ts/ts-universal-events-show-hide.md index 6230df0000..7b1db0758f 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-events-show-hide.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-events-show-hide.md @@ -12,14 +12,14 @@ The show/hide event is triggered when a component is mounted or unmounted from t | Name | Bubbling Supported| Description | | ------------------------------------------------ | -------- | -------------------------- | | onAppear(event: () => void) | No | Triggered when the component is displayed.| -| onDisappear(event: () => void) | No | Triggered when the component is hidden. | +| onDisAppear(event: () => void) | No | Triggered when the component is hidden.| ## Example ```ts // xxx.ets -import prompt from '@ohos.prompt' +import promptAction from '@ohos.promptAction' @Entry @Component @@ -38,14 +38,14 @@ struct AppearExample { Text(this.myText).fontSize(26).fontWeight(FontWeight.Bold) .onAppear(() => { this.changeAppear = 'Hide Text' - prompt.showToast({ + promptAction.showToast({ message: 'The text is shown', duration: 2000 }) }) .onDisAppear(() => { this.changeAppear = 'Show Text' - prompt.showToast({ + promptAction.showToast({ message: 'The text is hidden', duration: 2000 }) -- GitLab From 73009c1be316c506cc242eedd8cb9335433eb8b5 Mon Sep 17 00:00:00 2001 From: youliang_1314 Date: Thu, 5 Jan 2023 09:59:37 +0000 Subject: [PATCH 026/383] update iam doc Signed-off-by: youliang_1314 Change-Id: I57ea0bbaa6dfd7213231d1f65cddfe2723fa7976 --- .../reference/apis/js-apis-useriam-userauth.md | 6 +++--- .../reference/errorcodes/errorcode-useriam.md | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-useriam-userauth.md b/zh-cn/application-dev/reference/apis/js-apis-useriam-userauth.md index 40aa943c1b..af820beb26 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-useriam-userauth.md +++ b/zh-cn/application-dev/reference/apis/js-apis-useriam-userauth.md @@ -277,7 +277,7 @@ start : () => void | -------- | ------- | | 201 | Permission verification failed. | | 401 | Incorrect parameters. | -| 12500001 | Execution failed. | +| 12500001 | Authentication failed. | | 12500002 | General operation error. | | 12500003 | The operation is canceled. | | 12500004 | The operation is time-out. | @@ -489,7 +489,7 @@ try { | 名称 | 值 | 说明 | | ----------------------- | ------ | -------------------- | | SUCCESS | 12500000 | 执行成功。 | -| FAIL | 12500001 | 执行失败。 | +| FAIL | 12500001 | 认证失败。 | | GENERAL_ERROR | 12500002 | 操作通用错误。 | | CANCELED | 12500003 | 操作取消。 | | TIMEOUT | 12500004 | 操作超时。 | @@ -811,7 +811,7 @@ auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLe | 名称 | 值 | 说明 | | ----------------------- | ------ | -------------------- | | SUCCESS | 0 | 执行成功。 | -| FAIL | 1 | 执行失败。 | +| FAIL | 1 | 认证失败。 | | GENERAL_ERROR | 2 | 操作通用错误。 | | CANCELED | 3 | 操作取消。 | | TIMEOUT | 4 | 操作超时。 | diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-useriam.md b/zh-cn/application-dev/reference/errorcodes/errorcode-useriam.md index d8a1feb371..c7bb873862 100644 --- a/zh-cn/application-dev/reference/errorcodes/errorcode-useriam.md +++ b/zh-cn/application-dev/reference/errorcodes/errorcode-useriam.md @@ -12,7 +12,7 @@ 具体参见[通用错误码](./errorcode-universal.md) -## 12500001 执行认证失败 +## 12500001 认证失败 **错误信息** @@ -20,11 +20,11 @@ Authentication failed. **可能原因** -出现该错误码一般是系统内部错误,例如内存申请失败、内存拷贝出错等。 +当前凭据与设备里已经录入的凭据比对失败。 **处理步骤** -重启设备,重新调用接口。 +重新发起认证。 ## 12500002 一般的操作错误 -- GitLab From f0e9c8fb3e7953eef9310a22497d7a4c12abdbe5 Mon Sep 17 00:00:00 2001 From: esterzhou Date: Thu, 5 Jan 2023 18:33:57 +0800 Subject: [PATCH 027/383] update docs (11477) Signed-off-by: esterzhou --- .../ui/js-framework-resource-restriction.md | 12 +++++------ .../ui/js-framework-syntax-js.md | 2 +- en/application-dev/ui/ui-js-animate-svg.md | 2 +- en/application-dev/ui/ui-js-component-tabs.md | 12 +++++++---- .../ui/ui-js-components-button.md | 8 +++---- .../ui/ui-js-components-canvas.md | 2 ++ ...-js-components-canvasrenderingcontext2d.md | 21 ++++++++++++------- .../ui/ui-js-components-dialog.md | 8 +++---- .../ui/ui-js-components-form.md | 14 +++++++------ .../ui/ui-js-components-grid.md | 10 ++++++--- .../ui/ui-js-components-image-animator.md | 10 ++++----- .../ui/ui-js-components-images.md | 10 ++++----- .../ui/ui-js-components-input.md | 16 +++++++------- .../ui/ui-js-components-list.md | 6 +++--- .../ui/ui-js-components-menu.md | 8 +++---- .../ui/ui-js-components-offscreencanvas.md | 8 +++++-- .../ui/ui-js-components-path2d.md | 4 ++-- .../ui/ui-js-components-picker.md | 12 +++++------ .../ui/ui-js-components-rating.md | 4 ++-- .../ui/ui-js-components-stepper.md | 12 +++++------ .../ui/ui-js-components-swiper.md | 8 +++---- .../ui/ui-js-components-toolbar.md | 6 +++--- .../ui/ui-ts-animation-feature.md | 8 +++---- ...i-ts-page-redirection-data-transmission.md | 4 ++-- 24 files changed, 115 insertions(+), 92 deletions(-) diff --git a/en/application-dev/ui/js-framework-resource-restriction.md b/en/application-dev/ui/js-framework-resource-restriction.md index 6e171b3b42..7af4d2d06d 100644 --- a/en/application-dev/ui/js-framework-resource-restriction.md +++ b/en/application-dev/ui/js-framework-resource-restriction.md @@ -45,10 +45,10 @@ You can use the $r syntax in the application development files .hml and .js to f Example of res-defaults.json:
-``` +```json { - strings: { - hello: 'hello world' + "strings": { + "hello": "hello world" } } ``` @@ -57,7 +57,7 @@ Example of res-defaults.json:
resources/res-dark.json: -``` +```json { "image": { "clockFace": "common/dark_face.png" @@ -70,7 +70,7 @@ resources/res-dark.json: resources/res-defaults.json: -``` +```json { "image": { "clockFace": "common/face.png" @@ -81,7 +81,7 @@ resources/res-defaults.json: } ``` -``` +```html
diff --git a/en/application-dev/ui/js-framework-syntax-js.md b/en/application-dev/ui/js-framework-syntax-js.md index 89d85d5814..0450f69914 100644 --- a/en/application-dev/ui/js-framework-syntax-js.md +++ b/en/application-dev/ui/js-framework-syntax-js.md @@ -13,7 +13,7 @@ The ES6 syntax is supported. Import functionality modules. ```js - import router from '@system.router'; + import router from '@ohos.router'; ``` - Code reference diff --git a/en/application-dev/ui/ui-js-animate-svg.md b/en/application-dev/ui/ui-js-animate-svg.md index 815e0b619b..ad811ea02b 100644 --- a/en/application-dev/ui/ui-js-animate-svg.md +++ b/en/application-dev/ui/ui-js-animate-svg.md @@ -62,7 +62,7 @@ In the [animateMotion](../reference/arkui-js/js-components-svg-animatemotion.md) ## animateTransform Animation -In the [animateMotion](../reference/arkui-js/js-components-svg-animatetransform.md) child component of the **\** component, set attributeName to bind the corresponding attribute to the **transform** attribute, and set **type** to the animation type, **from** to the start value, and **to** to the end value. +In the [animateTransform](../reference/arkui-js/js-components-svg-animatetransform.md) child component of the **\** component, set attributeName to bind the corresponding attribute to the **transform** attribute, and set **type** to the animation type, **from** to the start value, and **to** to the end value. ```html diff --git a/en/application-dev/ui/ui-js-component-tabs.md b/en/application-dev/ui/ui-js-component-tabs.md index 8fe90f809b..1099ff21b8 100644 --- a/en/application-dev/ui/ui-js-component-tabs.md +++ b/en/application-dev/ui/ui-js-component-tabs.md @@ -16,7 +16,7 @@ Create a **<tabs>** component in the .hml file under **pages/index**. item1 item2 - +
content1
@@ -36,6 +36,10 @@ Create a **<tabs>** component in the .hml file under **pages/index**. align-items: center; background-color: #F1F3F5; } +.tabContent{ + width: 100%; + height: 100%; +} .text{ width: 100%; height: 100%; @@ -179,10 +183,10 @@ Add the **change** event for the **<tabs>** component to display the index ```js // xxx.js -import prompt from '@system.prompt'; +import promptAction from '@ohos.promptAction'; export default { tabChange(e){ - prompt.showToast({ + promptAction.showToast({ message: "Tab index: " + e.index }) } @@ -269,7 +273,7 @@ background-color:#F1F3F5; ```js // xxx.js -import prompt from '@system.prompt'; +import promptAction from '@ohos.promptAction'; export default { data() { return { diff --git a/en/application-dev/ui/ui-js-components-button.md b/en/application-dev/ui/ui-js-components-button.md index b543a415b8..b06939fc09 100644 --- a/en/application-dev/ui/ui-js-components-button.md +++ b/en/application-dev/ui/ui-js-components-button.md @@ -121,7 +121,7 @@ Add the **progress** method to the **\ -
- ``` diff --git a/en/application-dev/notification/background-agent-scheduled-reminder-overview.md b/en/application-dev/notification/background-agent-scheduled-reminder-overview.md deleted file mode 100644 index a9eccc77a9..0000000000 --- a/en/application-dev/notification/background-agent-scheduled-reminder-overview.md +++ /dev/null @@ -1,4 +0,0 @@ -# Agent-Powered Scheduled Reminder Overview - -Your application can call the **ReminderRequest** class to create scheduled reminders for countdown timers, calendar events, and alarm clocks. When the created reminders are published, the timing and pop-up notification functions of your application will be taken over by the reminder agent in the background, even when your application is frozen or exits. - diff --git a/en/application-dev/task-management/Readme-EN.md b/en/application-dev/task-management/Readme-EN.md index efc153e1b2..f4b1d6d548 100644 --- a/en/application-dev/task-management/Readme-EN.md +++ b/en/application-dev/task-management/Readme-EN.md @@ -8,6 +8,6 @@ - [Efficiency Resource Request Development](efficiency-resources-apply-dev-guide.md) - Agent-Powered Scheduled Reminder - - [Agent-Powered Scheduled Reminder Overview](background-agent-scheduled-reminder-overview.md) - - [Agent-Powered Scheduled Reminder Development](background-agent-scheduled-reminder-guide.md) + - [Agent-Powered Reminder Overview](reminder-agent-overview.md) + - [Agent-Powered Reminder Development](reminder-agent-development.md) diff --git a/en/application-dev/task-management/background-agent-scheduled-reminder-guide.md b/en/application-dev/task-management/background-agent-scheduled-reminder-guide.md deleted file mode 100644 index ed220944dd..0000000000 --- a/en/application-dev/task-management/background-agent-scheduled-reminder-guide.md +++ /dev/null @@ -1,180 +0,0 @@ -# Agent-Powered Scheduled Reminder Development - -## When to Use - -You can set your application to call the **ReminderRequest** class to create scheduled reminders for countdown timers, calendar events, and alarm clocks. When the created reminders are published, the timing and pop-up notification functions of your application will be taken over by the reminder agent in the background, even when your application is frozen or exits. - - -## Available APIs - -**reminderAgentManager** encapsulates the APIs for publishing and canceling reminders. - -For details about the APIs, see [reminderAgentManager](../reference/apis/js-apis-reminderAgentManager.md). - -**Table 1** Major APIs in reminderAgentManager - -| Name| Description| -| -------- | -------- | -| publishReminder(reminderReq: ReminderRequest, callback: AsyncCallback<number>): void
publishReminder(reminderReq: ReminderRequest): Promise<number> | Publishes a scheduled reminder.
The maximum number of valid notifications (excluding expired ones that will not pop up again) is 30 for one application and 2000 for the entire system. | -| cancelReminder(reminderId: number, callback: AsyncCallback<void>): void
cancelReminder(reminderId: number): Promise<void> | Cancels a specified reminder. (The value of **reminderId** is obtained from the return value of **publishReminder**.)| -| getValidReminders(callback: AsyncCallback<Array<ReminderRequest>>): void
getValidReminders(): Promise<Array<ReminderRequest>> | Obtains all valid reminders set by the current application.| -| cancelAllReminders(callback: AsyncCallback<void>): void
cancelAllReminders(): Promise<void> | Cancels all reminders set by the current application.| -| addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback<void>): void
addNotificationSlot(slot: NotificationSlot): Promise<void> | Registers a **NotificationSlot** instance to be used by the reminder.| -| removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback<void>): void
removeNotificationSlot(slotType: notification.SlotType): Promise<void> | Removes a **NotificationSlot** instance of a specified type.| - -## How to Develop - -> **NOTE** -> -> 1. To publish a reminder through the reminder agent, your application must apply for the **ohos.permission.PUBLISH_AGENT_REMINDER** permission. ->2. Your application must have notification enabled. For details, see [Notification.requestEnableNotification](../reference/apis/js-apis-notification.md#notificationrequestenablenotification8). -> 3. The reminder agent can be used only after being authorized by the user. - -1. Define a reminder agent. - -2. Publish the reminder agent. - -```ts -import reminderAgentManager from '@ohos.reminderAgentManager'; -import notification from '@ohos.notification'; - -// Sample code for defining a reminder agent for a countdown timer: -let timer : reminderAgentManager.ReminderRequestTimer = { - reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER, - triggerTimeInSeconds: 10, - actionButton: [ - { - title: "close", - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE - } - ], - wantAgent: { - pkgName: "com.example.device", - abilityName: "com.example.device.MainAbility" - }, - maxScreenWantAgent: { - pkgName: "com.example.device", - abilityName: "com.example.device.MainAbility" - }, - title: "this is title", - content: "this is content", - expiredContent: "this reminder has expired", - notificationId: 100, - slotType: notification.SlotType.SOCIAL_COMMUNICATION -} - -// Sample code for defining a reminder agent for a calendar event: -let calendar : reminderAgentManager.ReminderRequestCalendar = { - reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR, - dateTime: { - year: 2050, - month: 7, - day: 30, - hour: 11, - minute: 14, - second: 30 - }, - repeatMonths: [1], - repeatDays: [1], - actionButton: [ - { - title: "close", - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE - }, - { - title: "snooze", - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE - }, - ], - wantAgent: { - pkgName: "com.example.device", - abilityName: "com.example.device.MainAbility" - }, - maxScreenWantAgent: { - pkgName: "com.example.device", - abilityName: "com.example.device.MainAbility" - }, - ringDuration: 5, - snoozeTimes: 2, - timeInterval: 5, - title: "this is title", - content: "this is content", - expiredContent: "this reminder has expired", - snoozeContent: "remind later", - notificationId: 100, - slotType: notification.SlotType.SOCIAL_COMMUNICATION -} - -// Sample code for defining a reminder agent for an alarm: -let alarm : reminderAgentManager.ReminderRequestAlarm = { - reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, - hour: 11, - minute: 14, - daysOfWeek: [0], - actionButton: [ - { - title: "close", - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE - }, - { - title: "snooze", - type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE - }, - ], - wantAgent: { - pkgName: "com.example.device", - abilityName: "com.example.device.MainAbility" - }, - maxScreenWantAgent: { - pkgName: "com.example.device", - abilityName: "com.example.device.MainAbility" - }, - ringDuration: 5, - snoozeTimes: 2, - timeInterval: 5, - title: "this is title", - content: "this is content", - expiredContent: "this reminder has expired", - snoozeContent: "remind later", - notificationId: 100, - slotType: notification.SlotType.SOCIAL_COMMUNICATION -} - -@Entry -@Component -struct Index { - @State message: string = 'test' - - publishReminder() { - try { - reminderAgentManager.publishReminder(timer).then(res => { - console.log("publishReminder promise reminderId:" + res); - }).catch(err => { - console.log("publishReminder err code:" + err.code + " message:" + err.message); - }) - } catch (error) { - console.log("publishReminder code:" + error.code + " message:" + error.message); - }; - } - - build() { - Row() { - Column() { - Text("Index") - .fontSize(50) - .fontWeight(FontWeight.Bold) - - Button() { Text('Countdown reminder agent').fontSize(25).fontWeight(FontWeight.Bold) }.type(ButtonType.Capsule) - .margin({ top: 10 }).backgroundColor('#0D9FFB').width(250).height(40) - .onClick(() => { - // Sample code for publishing the reminder agent. - this.publishReminder(); - }) - - } - .width('100%') - } - .height('100%') - } -} -``` diff --git a/en/application-dev/task-management/background-agent-scheduled-reminder-overview.md b/en/application-dev/task-management/background-agent-scheduled-reminder-overview.md deleted file mode 100644 index 22c530571a..0000000000 --- a/en/application-dev/task-management/background-agent-scheduled-reminder-overview.md +++ /dev/null @@ -1,12 +0,0 @@ -# Agent-Powered Scheduled Reminder Overview - -According to the OpenHarmony background activity specifications, a third-party application will be suspended if it does not execute background tasks after switching to the background. In practice, an application may need to process certain work at specified moments, no matter what state it is in. For example, a shopping application needs to remind users of flash sale activities at some time points. Generally, a timer is used to achieve the preceding scenario. When the timer expires, the system starts the application to execute the task. However, some applications abuse the timer mechanism so they can be frequently waken up when running in the background. To avoid malicious background activities and meet service requirements of applications, OpenHarmony introduces the agent-powered scheduled reminder. -With the agent-powered scheduled reminder, the timing and pop-up notification functions of an application will be taken over by the reminder agent in the background, even when the application is suspended or exits. This prevents an application from being frequently woken up and helps reduce power consumption. - -## Notification Instance Types - -- **Countdown timers**: Applications can use this type to implement short-time timing notification services. - -- **Calendar events**: Applications can use this type to implement long-time notification services. - -- **Alarm clocks**: Applications can use this type to implement alarm-related services. diff --git a/en/application-dev/task-management/efficiency-resources-apply-dev-guide.md b/en/application-dev/task-management/efficiency-resources-apply-dev-guide.md index 0b8ea31ca8..61f1431ea4 100644 --- a/en/application-dev/task-management/efficiency-resources-apply-dev-guide.md +++ b/en/application-dev/task-management/efficiency-resources-apply-dev-guide.md @@ -1,22 +1,22 @@ -## Efficiency Resource Request Development +# Efficiency Resource Request Development -### When to Use +## When to Use To further balance power consumption overhead of the system, privileged system applications can be suspended in the background as other applications. To ensure normal provisioning of important functions, efficiency resource APIs are provided for these applications so that they can execute special tasks and use specific system resources in the background. For example, if they want to receive common events when suspended, they can use the APIs to request the common event resources. To upgrade your application as a privileged application, you must evaluate your service requirements and submit a request to the application center. The application center will determine whether to accept the request based on the conditions. -### Available APIs +## Available APIs **Table 1** Main APIs for efficiency resources -| API | Description | -| ---------------------------------------- | ---------------------------------------- | -| applyEfficiencyResources(request: [EfficiencyResourcesRequest](../reference/apis/js-apis-backgroundTaskManager.md#efficiencyresourcesrequest9)): boolean | Requests efficiency resources.| -| resetAllEfficiencyResources():void | Releases efficiency resources. | +| API | Description | +| ---------------------------------------- | ---------- | +| applyEfficiencyResources(request: [EfficiencyResourcesRequest](../reference/apis/js-apis-resourceschedule-backgroundTaskManager.md#efficiencyresourcesrequest)): boolean | Requests efficiency resources. | +| resetAllEfficiencyResources():void | Releases efficiency resources.| -### How to Develop +## How to Develop 1. When a privileged application in the background needs to use special resources, request the target resources from the system. @@ -51,5 +51,3 @@ console.info("the result of request is: " + res); // Release all efficiency resources. backgroundTaskManager.resetAllEfficiencyResources(); ``` - - \ No newline at end of file diff --git a/en/application-dev/task-management/figures/en-us_image_0000001416585578.png b/en/application-dev/task-management/figures/en-us_image_0000001416585578.png new file mode 100644 index 0000000000000000000000000000000000000000..7603dfb263fe088c0a71a99be541838566b53268 GIT binary patch literal 249557 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 z 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⪻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: ReminderRequest): Promise<number> | Publishes a scheduled reminder.
The maximum number of valid notifications (excluding expired ones that will not pop up again) is 30 for one application and 2000 for the entire system. | +| cancelReminder(reminderId: number, callback: AsyncCallback<void>): void
cancelReminder(reminderId: number): Promise<void> | Cancels a specified reminder. (The value of **reminderId** is obtained from the return value of **publishReminder**.) | +| getValidReminders(callback: AsyncCallback<Array<ReminderRequest>>): void
getValidReminders(): Promise<Array<ReminderRequest>> | Obtains all valid reminders set by the current application. | +| cancelAllReminders(callback: AsyncCallback<void>): void
cancelAllReminders(): Promise<void> | Cancels all reminders set by the current application. | +| addNotificationSlot(slot: NotificationSlot, callback: AsyncCallback<void>): void
addNotificationSlot(slot: NotificationSlot): Promise<void> | Registers a **NotificationSlot** instance to be used by the reminder. | +| removeNotificationSlot(slotType: notification.SlotType, callback: AsyncCallback<void>): void
removeNotificationSlot(slotType: notification.SlotType): Promise<void> | Removes a **NotificationSlot** instance of a specified type. | + + +## How to Develop + +1. Request the **ohos.permission.PUBLISH_AGENT_REMINDER** permission. For details, see [Permission Application Guide](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file). + +2. [Enable the notification feature](../notification/notification-enable.md). + +3. Import the modules. + + ```js + import reminderAgentManager from '@ohos.reminderAgentManager'; + import notificationManager from '@ohos.notificationManager'; + ``` + +4. Define a reminder agent. You can define the following types of reminder agents based on project requirements. + - Countdown timer + + ```js + let targetReminderAgent: reminderAgentManager.ReminderRequestTimer = { + reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_TIMER, // The reminder type is countdown timer. + triggerTimeInSeconds: 10, + actionButton: [ // Set the button type and title displayed in the reminder notification. The Close and Snooze types are supported, and the Snooze type must be used together with the snoozeTimes and timeInterval parameters. + { + title: 'close', + type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE + } + ], + wantAgent: {// Information about the target UIAbility that is displayed after the reminder notification is touched. + pkgName: 'com.example.myapplication', + abilityName: 'EntryAbility' + }, + maxScreenWantAgent: {// Information about the target ability that is automatically started when the specified reminder time arrives is displayed in full screen. + pkgName: 'com.example.myapplication', + abilityName: 'EntryAbility' + }, + title:'this is title', // Reminder title. + content:'this is content', // Reminder content. + expiredContent:'This reminder has expired', // Content to be displayed after the reminder expires. + notificationId: 100, // Notification ID used by the reminder. If there are reminders with the same notification ID, the later one will overwrite the earlier one. + slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // Type of the slot used by the reminder. + } + ``` + - Calendar event + + ```js + let targetReminderAgent: reminderAgentManager.ReminderRequestCalendar = { + reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_CALENDAR, // The reminder type is calendar event. + dateTime: { // Reminder time. + year: 2023, + month: 7, + day: 30, + hour: 11, + minute: 14, + second: 30 + }, + repeatMonths: [1], // Month in which the reminder repeats. + repeatDays: [1], // Date on which the reminder repeats. + actionButton: [ // Set the button type and title displayed in the reminder notification. The Close and Snooze types are supported, and the Snooze type must be used together with the snoozeTimes and timeInterval parameters. + { + title: 'close', + type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE + }, + { + title: 'snooze', + type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE + }, + ], + wantAgent: {// Information about the target UIAbility that is displayed after the reminder notification is touched. + pkgName: 'com.example.myapplication', + abilityName: 'EntryAbility' + }, + maxScreenWantAgent: { // Information about the target UIAbility that is displayed after the reminder notification is touched. + pkgName: 'com.example.myapplication', + abilityName: 'EntryAbility' + }, + ringDuration: 5, // Ringing duration, in seconds. + snoozeTimes: 2, // Number of reminder snooze times. + timeInterval: 5, // Reminder snooze interval, in seconds. + title:'this is title', // Reminder title. + content:'this is content', // Reminder content. + expiredContent:'This reminder has expired', // Content to be displayed after the reminder expires. + snoozeContent:'remind later', // Content to be displayed when the reminder is snoozed. + notificationId: 100, // Notification ID used by the reminder. If there are reminders with the same notification ID, the later one will overwrite the earlier one. + slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // Type of the slot used by the reminder. + } + ``` + - Alarm clock + + ```js + let targetReminderAgent: reminderAgentManager.ReminderRequestAlarm = { + reminderType: reminderAgentManager.ReminderType.REMINDER_TYPE_ALARM, // The reminder type is alarm clock. + hour: 23, // Hour portion of the reminder time. + minute: 9, // Minute portion of the reminder time. + daysOfWeek: [2], // Days of a week when the reminder repeats.. + actionButton: [ // Set the button type and title displayed in the reminder notification. The Close and Snooze types are supported, and the Snooze type must be used together with the snoozeTimes and timeInterval parameters. + { + title: 'close', + type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_CLOSE + }, + { + title: 'snooze', + type: reminderAgentManager.ActionButtonType.ACTION_BUTTON_TYPE_SNOOZE + }, + ], + wantAgent: {// Information about the target UIAbility that is displayed after the reminder notification is touched. + pkgName: 'com.example.myapplication', + abilityName: 'EntryAbility' + }, + maxScreenWantAgent: { // Information about the target UIAbility that is displayed after the reminder notification is touched. + pkgName: 'com.example.myapplication', + abilityName: 'EntryAbility' + }, + ringDuration: 5, // Ringing duration, in seconds. + snoozeTimes: 2, // Number of reminder snooze times. + timeInterval: 5, // Reminder snooze interval, in seconds. + title:'this is title', // Reminder title. + content:'this is content', // Reminder content. + expiredContent:'This reminder has expired', // Content to be displayed after the reminder expires. + snoozeContent:'remind later', // Content to be displayed when the reminder is snoozed. + notificationId: 99, // Notification ID used by the reminder. If there are reminders with the same notification ID, the later one will overwrite the earlier one. + slotType: notificationManager.SlotType.SOCIAL_COMMUNICATION // Type of the slot used by the reminder. + } + ``` + +5. Publish the reminder agent. After the agent is published, your application can use the agent-powered reminder feature. + + ```js + try { + reminderAgentManager.publishReminder(targetReminderAgent).then(res => { + console.info('publishReminder promise reminderId: ' + res); + let reminderId: number = res; + // ... + }).catch(err => { + console.info('publishReminder err code: ' + err.code + ' message:' + err.message); + }) + } catch (error) { + console.info('publishReminder code: ' + error.code + ' message:' + error.message); + } + ``` + + The following figure shows the running effect of an alarm clock. + + ![en-us_image_0000001416585578](figures/en-us_image_0000001416585578.png) + +6. To delete a reminder task, call [reminderAgentManager.cancelReminder()](../reference/apis/js-apis-reminderAgentManager.md#reminderagentmanagercancelreminder). + + ```js + let reminderId = 0; // The reminderId is obtained from the callback after the agent is published. + + try { + reminderAgentManager.cancelReminder(reminderId).then(() => { + console.log("cancelReminder promise"); + }).catch(err => { + console.log("promise err code: " + err.code + ", message:" + err.message); + }); + } catch (error) { + console.log("cancelReminder code: " + error.code + ", message: " + error.message); + }; + ``` + + + + \ No newline at end of file diff --git a/en/application-dev/task-management/reminder-agent-overview.md b/en/application-dev/task-management/reminder-agent-overview.md new file mode 100644 index 0000000000..6f0f4c5f99 --- /dev/null +++ b/en/application-dev/task-management/reminder-agent-overview.md @@ -0,0 +1,14 @@ +# Agent-Powered Reminder Overview + + +To deliver a better user experience, OpenHarmony manages background application processes in a more orderly manner. Applications cannot reside in the background randomly, and their background behavior is strictly managed to minimize malicious behavior. However, for some applications that are running in the background or have exited, notifications may need to be sent at a specified time. For example, a shopping application wants to remind users of flash sale activities at some time points. To meet these service requirements, OpenHarmony provides the agent-powered redminder feature. After an application switches to the background or exits, their timing and pop-up notification functions are taken over by the background agent. + + +OpenHarmony provides the following types of background agents: + + +- Countdown timers: Applications can use this type to implement short-time timing notification services. + +- Calendar events: Applications can use this type to implement long-time notification services. + +- Alarm clocks: Applications can use this type to implement alarm-related services. diff --git a/en/application-dev/tools/Readme-EN.md b/en/application-dev/tools/Readme-EN.md new file mode 100644 index 0000000000..5dfe93a6a9 --- /dev/null +++ b/en/application-dev/tools/Readme-EN.md @@ -0,0 +1,9 @@ +# Debugging Tools + +- [Ability Assistant](aa-tool.md) +- [Bundle Manager](bm-tool.md) +- Packing and Unpacking Tools + - [Packaging Tool](packing-tool.md) + - [Unpacking Tool](unpacking-tool.md) +- [Common Event Manager](cem-tool.md) +- [Advanced Notification Manager](anm-tool.md) diff --git a/en/application-dev/tools/aa-tool.md b/en/application-dev/tools/aa-tool.md new file mode 100644 index 0000000000..e03cdd52c6 --- /dev/null +++ b/en/application-dev/tools/aa-tool.md @@ -0,0 +1,119 @@ +# Ability Assistant + + +The Ability Assistant provides the application debugging and testing capabilities that enable you to start applications and test cases. With this tool, you can send commands (started with **aa**) in the hdc shell to perform various system operations, such as starting application components, forcibly stopping processes, and printing application component information. + + +- help + +Displays help information for the Ability Assistant. + +**Return value** + +Returns the help information. + +**Method** + + + ```bash + aa help + ``` + + +- start + +Starts an application component. The target component can be the PageAbility and ServiceAbility components of the FA model or the UIAbility and ServiceExtensionAbility components of the Stage model. The **visible** tag in the configuration file of the target component cannot be set to **false**. + + | Name| Description| + | -------- | -------- | + | -h/--help | Help information.| + | -d | Device ID. Optional.| + | -a | Ability name. Mandatory.| + | -b | Bundle name. Mandatory.| +| -D | Debugging mode. Optional.| + +**Return value** + +Returns "start ability successfully." if the ability is started; returns "error: failed to start ability." and the corresponding error information otherwise. + +**Method** + + + ```bash + aa start [-d ] -a -b [-D] +``` + +- stop-service + +Stops a ServiceAbility. + + | Name| Description| + | -------- | -------- | + | -h/--help | Help information.| + | -d | Device ID. Optional.| + | -a | Ability name. Mandatory.| +| -b | Bundle name. Mandatory.| + +**Return value** + +Returns "stop service ability successfully." if the ServiceAbility is stopped; returns "error: failed to stop service ability." otherwise. + +**Method** + + + ```bash + aa stop-service [-d ] -a -b +``` + +- dump + + Prints information about an application component. + + | Name| Level-2 Parameter| Description| + | -------- | -------- | -------- | + | -h/--help | - | Help information.| + | -a/--all | - | Application component information in all missions.| + | -l/--mission-list | type (All logs are printed if this parameter is left unspecified.)| Mission stack information.
The following values are available for **type**:
- NORMAL
- DEFAULT_STANDARD
- DEFAULT_SINGLE
- LAUNCHER | + | -e/--extension | elementName | Extended component information.| + | -u/--userId | UserId | Mission stack information of a specified user ID. This parameter must be used together with other parameters. Example commands: **aa dump -a -u 100** and **aa dump -d -u 100**.| + | -d/--data | - | DataAbility information.| +| -i/--ability | AbilityRecord ID | Detailed information about an application component.| + | -c/--client | - | Detailed information about an application component. This parameter must be used together with other parameters. Example commands: **aa dump -a -c** and **aa dump -i 21 -c**.| + + **Method** + + + ```bash +aa dump -a + ``` + + ![aa-dump-a](figures/aa-dump-a.png) + + + ```bash +aa dump -l + ``` + + ![aa-dump-l](figures/aa-dump-l.png) + + + ```bash +aa dump -i 12 + ``` + + ![aa-dump-i](figures/aa-dump-i.png) + +- force-stop + +Forcibly stops a process based on the bundle name. + +**Return value** + +Returns "force stop process successfully." if the process is forcibly stopped; returns "error: failed to force stop process." otherwise. + +**Method** + + + ```bash + aa force-stop + ``` diff --git a/en/application-dev/tools/anm-tool.md b/en/application-dev/tools/anm-tool.md new file mode 100644 index 0000000000..5a738bc22f --- /dev/null +++ b/en/application-dev/tools/anm-tool.md @@ -0,0 +1,71 @@ +# Advanced Notification Manager + +The Advanced Notification Manager provides the notification debugging and testing capabilities that enable you to print notifications and set notification parameters. With this tool, you can send commands (started with **anm**) in the hdc shell to perform various system operations, such as printing notification details, setting the number of cached notifications, and enabling the notification capability. + +### help + +* **Function** + + Prints help information. + +* **Method** + + ```bash + anm help + ``` + +### dump + +* **Function** + + Prints information about notifications. + +* **Method** + + ```bash + anm dump [] + ``` + + The table below describes the available options. + + | Name | Description | + | ---------------- | ---------------------------------- | + | -A/--active | Information about all active notifications. | + | -R/--recent | Information about recent notifications. | + | -D/--distributed | Information about distributed notifications from other devices. | + | -b/--bundle | Bundle name. Optional.| + | -u/--user-id | User ID. Optional. | + | -h/--help | Help information. | + +* **Example**: Print information about active notifications. + + ```bash + anm dump -A + ``` + ![anm-dump-A](figures/anm-dump-A.png) + +### Setting + +* **Function** + + Sets notification parameters. + +* **Method** + + ```bash + anm setting [] + ``` + + The table below describes the available options. + + | Name | Description | + | ------------------------ | ------------------------------------ | + | -c/--recent-count | Maximum number of recent notifications stored in the memory.| + | -e/--enable-notification | Whether to enable the notification capability. | + | -h/--help | Help information. | + +* **Example**: Set the maximum number of recent notifications stored in the memory to 100. + + ```bash + anm setting -c 100 + ``` diff --git a/en/application-dev/tools/bm-tool.md b/en/application-dev/tools/bm-tool.md new file mode 100644 index 0000000000..5bd5e7b009 --- /dev/null +++ b/en/application-dev/tools/bm-tool.md @@ -0,0 +1,275 @@ +# Bundle Manager + + +The Bundle Manager provides the bundle debugging and testing capabilities that enable you to install, uninstall, update, and query a bundle (application). With this tool, you can send commands (started with **bm**) in the hdc shell to perform various system operations, such as installing and uninstalling a bundle and querying bundle information. + +**Table 1** bm commands + +| Name| Description| +| -------- | -------- | +| help | Displays the commands supported by the Bundle Manager tool.| +| install | Installs a bundle.| +| uninstall | Uninstalls a bundle.| +| dump | Queries bundle information.| +| clean | Clears the cache and data of a bundle.| +| enable | Enables a bundle. A bundle can be used after being enabled.| +| disable | Disables a bundle. A bundle cannot be used after being disabled.| +| get | Obtains the UDID of a device.| +| quickfix | Performs patch-related operations, such as installing or querying a patch.| + + +## Help Command + +**Table 2** Help command + +| Name| Description| +| -------- | -------- | +| bm help | Displays the commands supported by the bm tool.| + +Example + + +```bash +# Display the help information. +bm help +``` + + +## Installation Command + +```bash +bm install [-h] [-p path] [-u userId] [-r] [-w waitting-time] +``` + +**Table 3** Installation command parameters + +| Name| Mandatory| Description| +| -------- | -------- | -------- | +| -h | No| Used to display the parameters supported by the **install** command. By default, the help information is displayed.| +| -p | Yes| Path of the HAP to install. You can specify a path to install one or more HAPs at the same time.| +| -u | No| User whose HAP is to be installed. By default, the current user's HAP is installed.| +| -r | No| Whether to install the HAP in overwrite mode. By default, the HAP is installed in overwrite mode.| +| -w | No| Time that the Bundle Manager tool waits before installing the HAP. The minimum waiting time is 5s, and the maximum waiting time is 600s. The default waiting time is 5s.| + + +Example + +```bash +bm install -p /data/app/ohosapp.hap -u 100 -w 5s -r +// The execution result is as follows: +install bundle successfully. +``` + + +## Uninstall Command + +```bash +bm uninstall [-h help] [-n bundleName] [-m moduleName] [-u userId] [-k] +``` + +**Table 4** Uninstall command parameters + +| Name| Mandatory| Description| +| -------- | -------- | -------- | +| -h | No| Used to display the parameters supported by the **uninstall** command. By default, the help information is displayed.| +| -n | Yes| Name of the bundle to uninstall.| +| -m | No| Module of the bundle to uninstall. By default, all modules are uninstalled.| +| -u | No| User whose bundle is to be uninstalled. By default, the current user's bundle is uninstalled.| +| -k | No| Whether the application data is retained when the bundle is uninstalled. By default, the application data is deleted along the uninstall.| + + +Example + +```bash +bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility -u 100 -k +// The execution result is as follows: +uninstall bundle successfully. +``` + + +## Dump Command + +```bash +bm dump [-h help] [-a] [-n bundleName] [-s shortcutInfo] [-u userId] [-d deviceId] +``` + + +If **-u** is not specified, the command applies to all users. + +**Table 5** Dump command parameters + +| Name| Mandatory| Description| +| -------- | -------- | -------- | +| -h | No| Used to display the parameters supported by the **dump** command. By default, the help information is displayed.| +| -a | Yes| Used to display all bundles installed in the system.| +| -n | Yes| Used to display the details of a bundle.| +| -s | Yes| Used to display the shortcut information of a bundle.| +| -d | No| Used to display the bundle information on a given device. By default, the bundle information on the current device is queried.| +| -u | No| Used to display the bundle information for a given user. By default, the bundle information of the current user is queried.| + + +Example + +```bash +# Display the names of all bundles installed in the system. +bm dump -a +# Display the details of a bundle. +bm dump -n com.ohos.app -u 100 +# Display the shortcut information of a bundle. +bm dump -s com.ohos.app -u 100 +# Display cross-device bundle information. +bm dump -n com.ohos.app -d xxxxx +``` + + +## Clean Command + +```bash +bm clean [-h] [-c] [-n bundleName] [-d] [-u userId] +``` + + +If **-u** is not specified, the command applies to all active users. + +**Table 6** Clean command parameters + +| Name| Description| +| -------- | -------- | +| -h | Used to display the parameters supported by the **clean** command.| +| -c -n | Used to clear the cache data of a bundle.| +| -d -n | Used to clear the data directory of a bundle.| +| -u | Used to clear the cache data of a bundle for a given user.| + + +Example + +```bash +# Clear the cache data of a bundle. +bm clean -c -n com.ohos.app -u 100 +// The execution result is as follows: +clean bundle cache files successfully. +# Clear the user data of a bundle. +bm clean -d -n com.ohos.app -u 100 +// The execution result is as follows: +clean bundle data files successfully. +``` + + +## Enable Command + +```bash +bm enable [-h] [-n bundleName] [-a abilityName] [-u userId] +``` + + +If **-u** is not specified, the command applies to all active users. + +**Table 7** Enable command parameters + +| Name| Description| +| -------- | -------- | +| -h | Used to display the parameters supported by the **enable** command.| +| -n | Used to enable a bundle.| +| -a | Used to enable an ability with a specified bundle name.| +| -u | Used to enable a bundle for a given user.| + + +Example + +```bash +# Enable a bundle. +bm enable -n com.ohos.app -a com.ohos.app.MainAbility -u 100 +// The execution result is as follows: +enable bundle successfully. +``` + + +## Disable Command + +```bash +bm disable [-h] [-n bundleName] [-a abilityName] [-u userId] +``` + + +If **-u** is not specified, the command applies to all active users. + +**Table 8** Disabled command parameters + +| Name| Description| +| -------- | -------- | +| -h | Used to display the parameters supported by the **disable** command.| +| -n | Used to disable a bundle.| +| -a | Used to disable an ability with a specified bundle name.| +| -u | Used to disable a bundle for a given user.| + +Example + +```bash +# Disable a bundle. +bm disable -n com.ohos.app -a com.ohos.app.MainAbility -u 100 +// The execution result is as follows: +disable bundle successfully. +``` + + +## Obtaining UDID + +```bash +bm get [-h] [-u] +``` + +**Table 9** Parameters used in the command for obtaining the UDID + +| Name| Description| +| -------- | -------- | +| -h | Used to display the parameters supported by the **get** command.| +| -u | Used to obtain the UDID of a device.| + + +Example + +```bash +# Obtain the UDID of a device. +bm get -u +// The execution result is as follows: +udid of current device is : +23CADE0C +``` + + +## Quick Fix + +```bash +bm quickfix [-h] [-a -f filePath] [-q -b bundleName] +``` + +**Table 10** Parameters used in the command for quick fix + +| Name| Description| +| -------- | -------- | +| -h | Used to display the commands supported by **quickfix**.| +| -a -f | Used to run the quick fix patch installation command. **file-path** corresponds to the hqf file. You can pass in one or more hqf files or the directory where the hqf file is located.| +| -q -b | Used to display the patch information based on the bundle name. **bundle-name** indicates the bundle name.| + + +Example + +```bash +# Display patch package information by the bundle name. +bm quickfix -q -b com.ohos.app +// The execution result is as follows: +// Information as follows: +// ApplicationQuickFixInfo: +// bundle name: com.ohos.app +// bundle version code: xxx +// bundle version name: xxx +// patch version code: x +// patch version name: +// cpu abi: +// native library path: +// type: +# Patch installation in the quick fix: +bm quickfix -a -f /data/app/ +// The execution result is as follows: +apply quickfix succeed. +``` diff --git a/en/application-dev/tools/cem-tool.md b/en/application-dev/tools/cem-tool.md new file mode 100644 index 0000000000..beaf1a86e3 --- /dev/null +++ b/en/application-dev/tools/cem-tool.md @@ -0,0 +1,85 @@ +# Common Event Manager + +The Common Event Manager provides the common event debugging and testing capabilities that enable you to print common event information and publish common events. With this tool, you can send commands (started with **cem**) in the hdc shell to perform various system operations, such as printing all common event subscribers, sent common events, and recipients, as well as publishing common events. + +## Commands + +### help + +* Function + + Prints help information. + +* Method + + ``` + cem help + ``` + +### publish + +* Function + + Publishes a common event. + +* Method + + ``` + cem publish [] + ``` + + The table below describes the available options. + + | Name | Description | + | ------------ | ------------------------------------------ | + | -e/--event | Name of the common event to publish. Mandatory. | + | -s/--sticky | Indicates that the common event to publish is sticky. Optional. By default, non-sticky events are published.| + | -o/--ordered | Indicates that the common event to publish is ordered. Optional. By default, non-ordered events are published. | + | -c/--code | Result code of the common event. Optional. | + | -d/--data | Data carried in the common event. Optional. | + | -h/--help | Help information. | + +* Example + + ```bash + # Publish a common event named testevent. + cem publish --event "testevent" + ``` + + ![cem-publish-event](figures/cem-publish-event.png) + + ```bash + # Publish a sticky, ordered common event named testevent. The result code of the event is 100 and the data carried is this is data. + cem publish -e "testevent" -s -o -c 100 -d "this is data" + ``` + + ![cem-publish-all](figures/cem-publish-all.png) + +### dump + +* Function + + Displays information about common events. + +* Method + + ``` + cem dump [] + ``` + + The table below describes the available options. + + | Name | Description | + | ---------- | -------------------------------------------- | + | -a/--all | Information about all common events that have been sent since system startup.| + | -e/--event | Information about a specific event. | + | -h/--help | Help information. | + +* Example + + ```bash + # Display details of a common event named testevent. + cem dump -e "testevent" + ``` + + ![cem-dump-e](figures/cem-dump-e.png) diff --git a/en/application-dev/tools/figures/aa-dump-a.png b/en/application-dev/tools/figures/aa-dump-a.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8d41f65f68d73895be5bbbb539c0d220b2a9a5 GIT binary patch literal 41040 zcmbrmdtBP*`TtMSrrnwz)@6yGEQ{{bY%z;Q*AQbB!5vIUTa9yy1Qp5JC@MyqAW{(| z*`aGv~?V>wV!j$C1xG^~0wi5XdtxA4~cz1hV-G1oGIO?>qs1^JkJZ06sPme~bJT zq(}avMexJp_+O^{5(4>%vDNpxE#T+xzHtmggg~DCB=~RBjnd9j5C~`f<)mL`yqRm6 zB~X3>tNG9jJ=e0{NjXk?7j*&4`^&Y-sHj-G?S}X5Pd67>FMj7j*K}Y#pjdY&u0IEk z_~uhl;1VEjUS21i_eu(XjkGHcERyGgj?g}Y}K+fq`Z*fM>o(Jb&O95MnI0Y1m zyNT*GKL&w}zyt2@cISSFk@KwOW|OSE0%>&o20QYZE5sB z+bvHLVsl63)v7dpHrb9oVMHl{=YCrHtJ_70!QUsE$Ap_8kSf`H$Ssl6j@4a|+wsTk z1y~2}V-C&X2Ir98>(!rERx^7#DsJTWLVFW_xawF_qw)sJ4#PU)rIl5U;F8{V;S$fk z6NS>hIXRYFCkUfi;zQVleLWR@HAR}8;P?x}E1R2?@$p0_MvKt|udMUTd4HpF*C>Td zmbW^2{mIPWZaK@5>@GvN;D1fb z7BFkrF|f3mu>Pmvi=HZ_mQz={){IuHzoiC`M)&2rTZ_wH{IYjNs->MD^!hHs2PpxZ z1Ob8EkIFf@C8V2Z4fvLg;OjR`h1`n8?!We9w%rnPD@MV25j;(@cgtb%p#qr-={jm= zEh5Hf@Ue)=?hBN%%)->^?D;g=RH$W&cG>p1VXv`>VdMAiflHo+Kw9SaB%YT=ZL1Q9 z*mEuqi{q$3HQiTSR82~_Xyej!uQ*ZfI)z7xnUM_BR92>fvI#O`rzy8&x^nBuMl#s? z^OkwVxZKtCJev)^mF+%jYjG0MqVGyMrC2edjDlo~K?UU#_~RX7 z=6)P=jMC~k$P8}zhG+9&Qpgj0QbnJO>-&7E@9~0_9rMg$Ij5GrQ^_Ni7h(LLyV)gs$2%12tgF_dwA~O$ z!uU@^ZhaQ@q-M*H3h_Jg%x&hB(Sa1@hn~$90a(7!Vk?gxq>=?ZHO= zp;`TRQ;8PFiPY&?WviyM;R2;q=%e&M0T~gz`RNu_k))?D+{9n$G!!zNV8rlyDx;gy zXYN+=ijjvx*j+KQGD~5pDt&TiVq%(x3M`44tt|`5(wd^QXTjB1 ze72<=!<>=v@mcDb+JxUa_{n+jG}^u)CRlLHkDIUuV7!~M?u5!76)pAfT|zz7h+_+Ajp#}otO-0^Lcq6qQ1bk2 z?Cbtc{rjf{k=~@>0PBuTcVr(PMK$8v@n}bpu9w@<3aw%WZ($aE83z zVvhBNo_6?3-=u-SFV&ts54Xz#HPydoS2zarCb{Bwm$6@3?Ger;lbi1LfT6u!KAU=y zK^3Z*u&AwCCK>k|D*{Jb!IUnyC(?sAju3r?ydbAfZ86j-DAlEF-W!}<5Xdl?AWj(? zRZ;Jrb0s-?@<}+MIK+YCLb;Kq3nmmp(c5zD5WY2(jhfl!$gIe)_aVJyVe_!wfzg5B zXiG+cdA1e?7S6U(F__HU9m+xf@f1>pVaZN|&!FLm@gn9@B>iZ4euhA<>B=L~CALvH zw+xC2Rd#?;f5rBE$O#dJsz-rmlOG?um<^Xiv!=2d$-P3~P7PBl6wfU+3q(;IQ+_Yi z)4fOVT?oY2!N8u}GgC^F18K)1C74pYn8cg7lX`;SMJ4b0J zZA7;8`G|B(Y6b{cl>xAp*Dl5eN~G!OSjp=~w?t>5J>01cf3!8BX^}z>UL_2l>tKQV zOBc^?9&~0kRY4g=5{XI@J>z95X(@#|2X|4}YxmD6Ji~$`{>kLMu!wlH3pE^%?`Tjm zn)QpptETevDuU--pA7~wiF+pY4Qtb|>0BJ86*)U0wIg z*k~M8Pnp_XUP5+a6}APly)_{HKrpKEP~LHzavzkTG8p-N?PWb?Y-=F-aF{Zs>}ZCa z#LMeLA7OH0P(Ajby4s$2URj!~iS6pHs)s2!&6O_i_ySbu=zmY5DzOo;xyoJ&Su*P3 z?u<5xX5{WPnF+y@bLC7Gqxm_=+HS_c2tw1LQ)rA-uMvyGU9BlXRu0#b>}mY?^c3&V z9>LFgSBm9o5=WLKV(SX9N)V&|uyyH4s>$C>llNEYEVe&(3^=_rleu}05(GC7Pnkm4 zF4_-NQ(7al@uG#NIeDVRry;k=33oOVVsPkhjo3`}aHH&JmgQm8)jh0g`7|qE?Cgs* zcP(7vFywasE8e{Wj)fch#)~veU0?J;CZ7`d=(w^3jv2w*1gW~wR<(IBU7gj47Ij+{ zE;vFRS?4(7C_H^*(kKw=XX9t^qA{kOhrv~!#kt@}#cDf^8G~cLD5K&oqx@-nlO7(i zaiISkKuJclP_kn_6OEVxBdg-njCxewCC4#Wm^ft2cJ^PXJNRS*creQsw=VS_6g6cl z`g%lrDn2k}Z!F9iF#@Ko+CZfzc_Sv5TETtGy3ErK&3d!Q5~eeyOwh$eS7sw)Q1f^f z<{8L+ST6Cr1FYBjiXK(Xz1l+kO}PE-lB)SBV-X)lZjHBnZXe9i(!jnIT02-V)GUQs zG6rI-&G}$=Z^Yxl`QM-<%Wc7r!L0Jk51TL*&K$nCrTDsfKM1}cpr0k3stOkrZNn>U z6q>||&9yv?)6#iG^c8bcE$!Dg8J?6e=U8v*y|mN}1qF(d=GEnpD)K4iD1qSskFr1h zuDT@;BS{*Nqbkrm(-?)yQH2A6yJx&rth&q@r_eY8LP{R7#R;C-6x#Rr4#i)vq1Q5i zvP-?QxjNHP7d?LMQ{Ar=-L-WI7m(i$ufi|OY_@G2>G6jF*>^EJ z>Iz=M)Sr3&3RHj~-(V}~UT=0_#jg?ajO+6tDOBJ{ zoJGl4jY_C{+nH}Jz&+4fT8^!<7pSx32Bf3#nP6Z==A2ZTmT73VexA9Qqf!rNa%|0Y z%7?q@l_`x)Y`aJ`pAPm(<&f^hYyx5kQGWiN0;$8zn%t?6g-39^q6FQTdPlNZl5fn% zM`GHA`%Ui@lwPfI7UdPi_O}#b30QxY!@%h1 z5D<*M-5SEO(VEZ!*8Jjjvo;Q_+e^(AO2THy?GUgmVk`M6QVcQ%ha>1iEHs%((tgNB zQLbV%%sQP2%_>y%wK$IU#bzVD++4OWecXhU+rZj`ph;A{3EbdXA2l!%<&-HUAA3r# zvIy`oY7e~1V(&yk`ABg>tMRBEh3G15hX1|40))8;pfN+4j zQnCYb4tGYgWryoR)PWq3?T!fUZ1#T7ITgFj0V1?-^S4s7uQIem>4-;fUai!3h$6Hk z344}JQ`=!4&rs)j^dg~GB*}dpj*%o2w=3Ir@_)uQQyM!H(`Bg#XT5>W1|`4!5IQXy z0!a_*41aqA?GNK7^nl$rIzX06FCn1W^y)=|#VJwEqYm)M#-?roYq?cd2%_>7t^P=5 z^w=O+x%dC)s648swR`thJ99}pAQ0pm=l$nWhdDxpTcsHEv+o~LSK(kYyl$NgDOyS{ zoiVcEdJ_vNN>*=UZ-tEPWLz7`lBw&RNyDg6WrAfAp+ycTNwz%VE5Y$g0T3D31`TJcw0{p{5^$jMO0gkC%7!h@u2V znBe%O_F(p!t4&igHEjwULE2C1QxpM3w-G%h*2gKibx+E0AoE1_AZhusqg9z=cc0UEVraU?n3rS zzb}ho5u}1612eM0VFAh5RH#pKv3kXPKXRUs#xMarT|R8s4DyOJi9LtEdvwo~|!HY)G2XhRj(A;j#R`x2KmLjNcyYyH*N;a=nLMH zVP0M^<*Uallw#XxK9%1~tm=1(_Mwpm@(TCx87CEotK=W45V=HAPeM+rflyG#9`xq7 zhdFjNTk7*TpSQJiwm9;+RpWaHOe+(sOWa&pcBUhv?79Fx-b=l3md#t~$yC-m))4&E zh2pZK^~e~Wm!@j$Itw!VbJ&N%clq|OHa`-+G9Y{_pY!{Uwt`WotNEw$_vY3}X&re^ zE1g<&tal`lf*gV2-o9Bz zJus%!xbtq-je@*=uHvYA*SscKJxByAttQUSRX+~0YvbJ@U!qOw6a}G5E-h9+KUsxz zb}vF(DJ1#v1H7;}>6Gl0d)1vazS6lt5#HU}jeR;pbytmW!6l)NOvfG(w@33wPPM9b z=@M+EGn|VSU34Oecp_?E3lbObNa!01bncyh_8=c-HNo}ViF<37zT4`Oq!Q3#GZoek z^Y$3YtB#7ab=*z$DKlHW%aLTyvTLlD^!VXiH6fTSFGN&r=IJjBOTWPQ_mf)^<6Kr( z<0L-cTzbYS%BQ70nDk76mK}`Wp~UmF-UlJcsTh<bat~XI0&61r zALCZwZAa2D_5kahB4%fJ{I~#!DTwbPSpN71^S74QITK(GaUa4Z{bS`x#7Sn>RI<9o znGfI2UbffSyTeVEqRHZn@g#U4@?7!w+cw60T7NoE`|pmfiWgV9D9e7J_7%G>o34XR>zo|*X%DsLwT3Dv}*1WG@` zY$x&axD|ZDGvKt#AQ|}#dMadZ6oAvW>#mKoqWpb|gHa!WpVF_5fUt8r?b{#6aVH(* zAETzdGAl*viAxKvoDfQ*@A1RpzrZc;mK#4?Ddccqi6P+Ecx=^qIB~hc{Nc|iIDH^j z@4*8$*unt0NRrJwt2fuG`}1`k{C6M_$&I{_6R3GH<18l+4i=k87Y%6Ehe@&|bUuxt zprzIqS_xHQj@_f88)|T%p4E>yBUWb_iQZxZ0|WLjm0+k~qM}4L;AL(QmLY2&Fal3~ zJSL`YP?C2YyWtfowd z&2NbHcjjm6WCf+u>3J-#IDgDInYGy6br1+|Ue3z4V7B^?&*v%s?$oNrZ4ezp;2nXU zIlmo-8(RC7Yj(~4r0&mj^$2mu0BFqpX8#>1+gLrPUqIOKfgDvNJ)pN_2Yh=D3tAECqH+Q3lLm;lZntA^ zReH7%9HWbEN4dI3#XzoPz}~gpV&aA|bh2DN*H`|>MEpv(Ni(I>iZ84zFacN8cXh#t zvUVCovMc1oqzvz_jpL`N>e=?Ttj5{gLKSn>Jn(Su_HsE|E8J@y15AQHep+zIoa}MT zbxUD*d`TAU6-Ac$m@4d}A=7y8sOEVYjV}7uvD0K>vW9)?nNwIzTq2iL@xi##iovW; zs(%3R74cBE82{C2k>VUnOT8nEmXb!xYFd!9nr9s+avgb^)urUiLCnhXBvm<|hUo7` zL|>TvvJw9C(hZHw+GSFwOb+I(^e{rRnS^l zih|c70BUFlU(_&4VNCah=3#n7#|{gaICC!M@Fovy}o4!r)MkE5zYWR~OfX2Bj{QU{AyAM-%Y?%6OV*j5&FvDVe9+)!>DGoN#}N|WPeOD(CS3q<+xzEX`)4QB8e)xH?{2Z4 zz30e-;`QsMcanx*t@nQ@6qtKld7M;*YXKA}7AV4@%697@-uK}kZdPNLx{3X#1kqfA z#hUQ$y!J=;U#&829z^6Hq-{498yxR+Pi!D$6~5;|8R3D-ADLBotBrDigH!r?3$!lj*@0T(O4;# z3DPh^?Y|d?QcOO*76a~vM`Ym*@tOu#I(tOL!|6Qdl)E_pU}CK-=ZwUO77iM7f9DDG zstx8T2^S<9eNvdfEGrvE<-&zyi2tP+`gSOV7(N~@x!TsGSXm-z;#uQzZZcjhiNrZZ zq4J4T`IA+jf#?4y5KwXTDMe{Ld-0k0WJ7o_GeWKou#MEetq#;lltOQy)pHN?idSgA ztP%-sIx+|H(ikc+e(rakiI?@J3!Zi%C_pqR&hnAwf+!g8Aajw@n`2h)#N$3W6}q+^ zBzYeCw6?0F-8vCtr`6GZVs^F8skzX-_HCL8jU8S36O&z(x|rJpssu-j<;K&hYRaA< zb+ajYUr}ezHynY(1Ybs(V>&@{7#$A)yDnR8qMX;bL^&EzvsyC!(w7a1r(LGe506~ zSl9AOEN4E8q0$bdE911#ay-qlL`6SYHL1us3B>1qUQ>jio z$z>92cv-%uIrT!ztddJQM8Nd-6xExCtiG2)BthCcb!^gyi*`{ae^8TLZpet`u$eLq z#n}DI;VJgI+Wo<^zSbKcnM^FGQ?9o0>y^rSz(zVt{0MuDWlGFFD?8*O$u28+xv6-6 zPQB%efu&1rcut<})g!c58whZ7*Fhe>0*Uv{aN_t~`_+-=k0hNtmTBafiYoButO&M! zFTB1$SG0eujKddQjcBstn+ii68O$!qp>)&}K9<^t%qblS35Q(!bME&zt0HHYVAr)> zA-AGOLiPd;688whto=El&+sMv&znyMu#dgDC+f=Dllr-H@D?`{l2t> z&iDE_ZhM^9HETdklN(bL>=W)fHG00z9YMXb6LSB%IVaaG>H1$tG~4v+y8?4d@Kd(7 z@o@PBNR@KOpU3B}XE+hz3ce?jCtqCQeYMXrqoaygIUYN2rTLWJOD*08#Xy#AQSPER znpln+pfggsP@ZIgw&*@fD1}eko4g~$no3GnmqzKT%>q2ABa(oXZ8ggG9N0A#iUH{_q8Ps$~4qaBMoYfB_Bm{}yU zDT>%d*YRRoOCkonccXY{07&mkFV8L%4&tp7DFm3xH;H#^ig#NEJ-=l?FSD!)X!T?g z5gn=|Q#RecP<3ZBFY|!+1xdPsvIl18S)p1aLC;afYm&*CF5mxE2i!lENIZ`v%o4Dc zX`$}(Q&krJjy&aq$pwbz_W7))?g*F>DT?YJzS#|3R1<{(YcqSG(6SFs;P1iEKV9KQ zkMG4J54rrx2Q$6NxoMm;i!Vj8{O;b*v3+UCJ`&2Cwc|tW7PEnjD~{+?h{p_gdXr3T;{(k~bM=G9{SO z5H7n|E*~@H$2Y>;Sc={cVZ8A++6U&Y6;s9JT#3$sCK2;O9X&G|JY*z2A+VW%>$7aN zTeDpI$GBO0P5dH_c#O(XmXnA|H&By=$t(i1+jT6(oYpX(RecJ;DUr24uWrt@pu=am zgjwnFjgI^Q0l|>R)NG&{<1G=fqdWiEM)Ca)Rk*bH-_9NgRB@#m*`cqerRCG$G6() z1_fSr+~9_RT<4DP2<~wTy{XcgQv0XC;gc9!`JBePuySG1$HYS*KX(Ad8u%<$ zw!oAIWZo{@`T=^0*1Ptp*XN)E?4-E8x$-xw6S#GQf7-R)kl1gfQSZgOmN&^CkM=;wH%LZU7A(yE@kQ{*adL@GFyJaUh7Qc43Br zMF?eZP0qORqT?}lp<1$n(;ZP~r!f>Uc2K&!?^n7t8ZDG;Xpbqq2^c13qb99ogNzyQ z>2l8ee;)jX6bc0LQuWsEY%qoeMVXAG;o45MdUawS4>*-R^|bdgt=(S_%mGV%KKo^9 zOOu0aTmsWk_ra5pbHZyQVp0aE(qt+-#CZ464485BjPm2;s>_6jnp~W4bH2#c-Mzj* zxM-SU#cq6Uj&Jv^9=%#z!S@DTBzv?&IB$TfR#UIGv6h+EK_l7hNHgbNK4R?T0d(%3 zQ<&pn5xl0w9OosgFYm!O_I$V4`3@SYH=EN+V{A}9FG`UFMIFdSGi}0|o`(_ZKo;RZ zog=iX5I)wML#Qpzg-TV!y~Xc(L$%&yb8WD`u^%kQcVNlUac_nM<~Bh%K~)HWF#h)F zBh1cQN81IGQV7HfejE15{5uMeccX)Wy^d3Za-RyQQxNq1ylCaz_vbMwt}HYt3*&r4 z!9?}vcF)#g@?U?B;^ZmgurR01+zOewD_e`^sC-7oHL9{h4Cj*QEd_|IM*mRL!IP)B(T2kFPa%_yaCXtV-2 znw+eyOXB}|Z{JkQKE=WMdF_xvQkumpkaEmLti_orU3W*ijKnmpbcbj0N}`06jOo|+ z8UfUtiHN!q`0e*Bq6X{>z2boghDnR5ZF^LKJRU1tv0{*Cah%nRn9{RXnazMF6bZcB ze^2`5{l-5o-26E|m^_Jz2ayVffg9*nG39F#w)$Q8Cnk)f43F>YFmt}zXLB~l3}G=O zd=G|v+_2!DY_>59)<2bBa+VVj3=cn(jgq1E!t*--Ir+58fc{PyD5-NkA8Z+$v=0J$ zol!2YHKHq~OC6Ef+ySm?zAktZE45q7`Tn1Ntfqn_vA$w@ut>YJzRl=;0Icg|Wk!yS z#~M3}1Jy-7DASx9PzRnmpZkMeu|XFU6-6bc&)u1}eAM(5vxQGfyP7nh?6VTYYBAbz ziu56zI|gbn6Xw94p725M**f-m*Q-iO%|(iC0j-Y(pySKU-Yr(itqfy!xzQeEGM_#g zJ>MQn>tE>qAQA;?x_c28#z8)>u*H!_Y7FERCI)||}GVs?%LGf-S6}Sk3 z6;Vm~XVjSVJU}}rIVTermOe9BtJBJVHV(KS7kJQgj^lvfAH)d^r!AG`1`wb`*G8(o z(7Y!Ifui445_Ii4 z?AqKT8hM3AgH3IirQk!sO*G@H{`3nMs8%7DnioN0&?EV^;yp=A-U>@>Zv~PcElh)( zx>iK`py5nS(QZ-UqFQH4bQe5>S)!W!17;P9|68`2t#lymS+l`Xi}pqRym(_{i{N_; zKYf9hYOj%Xb(W5v1*rup-w|nBxP(iUPk8n^-gbHdY>GN$erB7p+e&N;x^5@}FXP$^ z+7EyKDmVs!P=U>}{!`uKV6fcBRsr)D7$8?H5kA2&D2sK5p2tG zT?E#^pHXIyEG{-C(k!Lkpa+!m*%oK@kmEI1Ln5ef+}{mk9Bt~z!mJ*Yu93N~AF{V6 zf>C-O10;=Tym6VN2U-r-;BD#F&1a!!+Gv0`>SGs|9mmTX1mJMVzE8JY9sC7fWYfrE zs*AJ;9?19PSp@xEqO5l&jm&utc(%5NoanD9BHyd+i5_PpNXG@!aB%LEPj39WF5&x* zOpsoINMfg*21^J2h!N`t-0(guC^5xbZ{qH8$7Pd5P+$+P5U`pAu=9`YV_S;>NglM1 z>eL|ja$^(p!pIdKPEfHcLm%#G80SxI(Zp>f4T3ei{PJIr&*x;APyW zJ!?bFd4ex@C6>~c#gb+FUjU?wt$aqmR^e?|FmSe);yYU1ivtf9fvWn{gvWw5UO)qz z0S#Qr&b0wM3c@d5^Aew?(_b^Yoj)w|7ixq83LLK(xI@ZuxL^-<5xwGmmHjj))G{s2o%rW}LYVvxsq8`+&eb+^B3U%KS&YzZcg3cV(|_lT;P) zP}Az-KN3Ox+6EE)&06%ne@O)Mph2J1X+BwTi|N8-*zw8v8D#+X06O+H7tA<(*R0j4 zRTS4Hb_M514E^Y#x=9SZM#=SmAR*>o2A+*r@_ZVtBVJNJ{4)0i#6dWfY&yt)zK(i@gjn!R8$}{>p%YTyi+F3a$vrRSwtBPsKJz4c)C6s?M|$7lnK*% z9-iKOb~ZxR&W(esftwLjb$O%IpP2P|!a!S=XuqCMkQpDM0FWT8W#^m(U-3|OYYyST z)v4xdqZpv_0d5pHx?CQOZ24WyMA0|oRV{GCfcUg~^g$`_BR~_4n!qtE0dMEFBWgMD z$3~3Qc~AxV)j{{)&N!=IjnT8Q!@7dQ<82O4Cnw8D2f9Vs+AZ)d}v8I58cH%Qp8&xethd z91%PQamvm$62L$^Lg451>h{F&k(dTT3UG(;9Gy3cBsbJ; zI&RemnaY@{P+WBxKIy;M(hjO6Q2&CL#xYz)r)4^#HJ84fahy}E0d*96CA#FOdFIKb z;FS0G(mR~~kt8?-0hV0IZTy)Rx3mCXC5XKnPRiSkRW+n#b(^|FQgXW_Xy_KW-Wm@J zIdPi~^naxx%yo~h%>?T2J1})Mg~O%LQCDBZw-Mzn>*l>291iLnKx4FJLIlqPH-8o* z`O+R=Q8oR#K-*-HDAXy9(b#8w@2YVp!*M@o_*cA;3uS<#i50(dR`4l8D3AHFe*yDS zJ`J(%A!fn#xwz>m7#QELB*E zV&I4_NXe@pXI>2)CQGjhjdZ)QggGRMpim{VIL+b~opl2o?)E<>HHG>A5giuv`1PhG z^N^V~W1OyN-uhb_wh;j~up+{H!= zwzQtGWB7>=H63f}_XTZZtu0(o3pNNZlpuKC37+Rr6KjG5N1o;J8TsMp4T6I`>7V(k zbN~$Cx-OJ=k$M=)1Sjly3Fq}M%^+j6`kzr$01|f4P;j%XfKJX;1HUG3h>~AV`_<}1 z;Q=mQn5CdlPa^>b)0lfnhZ@-^=0q7Bxq`BjwB!v^g~pz&R|Lf>*#Nv6`}htm{EB-+E=+O40>%6otzvN8olb<86AsoW#ODEi)} z3v#vpkMbltI^k~TsCijbv|E;?;`6dTj2FP@H*reYWCE9r#})!xEXrJRxQ-pCl;QFD z#H+eEfL?>Qj;+zsg1quBs1=9xjTU((RbwX8SPrTpqrZydW;qM7sDbsX zpLOw|7Ejb?NUQ(%)}gk}gke zmAKiT8EuIgX@qxf%|Bhc(>CF|=SCrz(!Yg+_7(j(uo=y?Ya+Jtj(3B604d`BS5gEb z+4O)8`Xuuty4h$G;M5e!@Do^imUD@ht9T?S*2=-P0N7~vHmLo4j#OHOeIQj{_V^-U z=A}6FPz_JF6+#^hV%w0VWL1ZwQ02&Lw`1B#0@GA6w}~fL{}%$ppLB@h_>pWc&GX`T zZ^Aeza@bj3Nnr{U_t?2u%4ex3{UKzj6E`i4UO~|)M?Yw?$>o&O7Oya?;{iWNRn>o8 zcl-yHkp$hzb{J3aXHrct{87v|DB?R`QAFv#r-*;AC#0X``)_Cr(Zu99~IBgzfiql&GUmEn&J{5u^%Zv;A|NXe!4_r!35 zRz@*YT|Dz7r1ZMrdq3*N57(CHj7mh7H_+Bg1g#4HQZm%FTmlC|D4a-B7OV*!v`uaaD&5eZ>(|gB)>}M*8x@IkV|@HCWEit$&?}H%_kas^k36?=DJX zfvGI#-8HIqnAhKe1oMOEF1EPM zdMd{gkUp4Pbpo?`{h3XW{9Mv`Y?wcGq-O^o6p?ups;o@7(;_eklg+ux4oyZZnjNgB z_LND|WivpTA0BOMIUZBT2K_rC%Wz~rDAj|hWUq|oJqCFnm~E7$)Iih8)s#sW8mgs& zwiHb1DTk*@i)QK{fba*;mEPNvEDu`EC)8r`83TSJFlu|fk(|ZgFzZ&0=7XZJ5lk;o8K0^3y*(PoyYW!f3XMqbMBj6e`?FtB z!Fr(nSCxO@R%0qW#o!J zMY0#ziY%x^@N|Tw=NjC(I0l7R!70R&D)zFv{w)d*a_=Iz=_8hH*#U-oSQm;UdjSi& zlvXZojg)*MKeFZLzTr)fr8|FT5U*yqmFv8Kf@05-G!(bOAU>cOC- zOsofaS;>W!V6w{#R{pAV89M>}s_=t!{WlM5&d92YYE#xA3^+GI=Nk&NyG{5%O+6_P zA8Ljht>feUxSC#dh*H$R?-1>QV&Skv*eAiB#f3BHwQo3^2cx6)RdHjvIF~qvK^bHz z+5!M6bHUnoF98DiO{Hv0Iriz~%Y~_z@yxN6l3b!bmXGSwD@YGJ#HP9o;$%{VY8xLF z+lYbhH@#Q~=+7@K+e1#!fA+RBYdq?CjCQUb>9BTxKKZCGtOFSPUEO;I1gR7*D>iO6 zSq^#|MQZ<3AB%sy_Uf<73g1%&6EJNYv(1PMc7&Oe@l?H>Fxv7vMgp|I zC}6;!?U>s)MaxiQf}LNk=Mx1`aV8dwtcUvrv2-uM(%|}913-nRdbt!;(_~d5Ox8<@ zu@L|-9^PYDUJ@KJvnw`OW^ll~v^M^0^2ZA+@;>r6w6=fg(6~uCBycCpGFYYaRZ&tP|{kFAOw>WB>tfH9<~{0y`Y|6thCy1F{fkvRMPn&59i1Hus< z<)g~+ApKi=mLVOHEWWU6vE>a*_6S~NRZIo@|JJ%W10yr@<7;9YSh}LeX{njEv;2q$ zK7Cu$>KY{+Hm(L2uonoeS?v3&8P}45bwpIcQ3jnXfH(pNBgWD>r~r^u`lpTJ6l~>~ zx^W)aqMt{bf*sgb{;=`umqRa5BCt5nXkv9st~y^43R~?xRl(-@-Qe1yv|ARV&no8) z3vs~|2CNmkk-?q+QZc{fD)3-y-KT7XIw;R0$6$Lzorp;|_~S`a(9;x!*32IxS{93n z@YhY;@y31Xfqe{0DkK@W9*Pg`TmP6JmU6F!;ksj%r`1O?(qx;nW%^I*v@Ayhj*~WEEdffaH(<7F* zIQa6Rj#1+WW8rpuib9R3#Ae#Pyk>YhPOTA2luXwlcXI{+4^MI4e4^(Qzy*z*)kfb% z#d!Y(-4xSRC{$8`^)B^&+m{zz+t_Cea|PA~j6SlGQ|HQZU^3ZL^XT_lY~EGTqNj7= z64ZEh$N=pBpqiUDY=WIVTCb5b+0M#>vTlsm zJvO*e+Jgt7 zhkF%s-Q!1c@WI3DOp6{WB2JxT1jP|p6SA^&{*iU6Rf0-K^aC)H=t0!c1iZXh8%$y;>&Wu;r7W$@N>Xc7vA2&xG+U$WP`biM72Ud+jy10PPotnoq<{ua)v>4cytd&ss`rAsbHcs;Uakpwe;x((5z^i zzSM$o?6feQ_~0cs-K*`^n<;IY!f#v!*WIT1{@1n+M%lnvOP+a;f~5jY?21`t6N1QG z&9vt`l06Ac%VD&Z3oBqv0xRdZJcit?pU+hi@A(Q-XaJAw6`6|1ec)!bQnRW}Ah7om zWxGMo4chUeIC>T+XDV9G+g9pBZY@O5+>2Ieq*Nu9T$=yX!#OOo*>%EHP$&~wWiD9$%nWbpyq}aJh|F*Pa?N#J@VA-{U^A|rn zo3!0=8wO0Cp*7J%Yp?qJpTyp^87sjrKv`+yB@Vs>@5|b$s@Gi8>Svli12O%+UH69j z?&fOT3U})glRi|p?#Kc@tvyRQ(Iy(#QE6xH^cs;J(bxI~YR6cs;J zfVCIAGhijYGovP2Mj;frpK@enVJAFSYwsq}_Ncvb^?+_KD|tr!D* zciRE>ZFzuw|M8GQ8{KiVSJx(zmOEp#juzFx^ZK?h8m-kVTd^{MXKT69T6G$)ST`uN zy>?GuEQ?oEXDl<~%PHqOyrAvX^WHqBy?3ZdJ?BaR=6n#)_{6;x<{f3=dP7D7+luLd-rH;xp+JwB4v3jtr926~jp>vtzXQV6r@2 z76lsiYIEFFP;1O>e5`auytNxQD|s06vc|t^hS+deZU;RlF)*6SYFE7EWl?D}XwZ*( z$w@YnhMB;h%EM=B!jlxus#eNjo}>GQx*VLRWjHDuNz`EKOY-MYsr7_m(}jb$aYN(& z$8-i%$O&M$c~B#g2*&n;-Z&sF9=JKbajySI_{&~wG1^OPB=@_H69$YS%+klw9=oju)vCj z$pm0~uD26!jG49fk&tOVeFA213d6bjSGF8{<9)z=Z|01qu1O%^2{6twENiFL9hqq*u=!23K(cxlB4 zZ8ehqPXPE`;Qg>6^!P!et@)WD%?1JP{%;9z*;_58y`ea1lce1m^DPnXX9jy1WWAy0 z>Z0fM$ zr-}0z{VR#<-z+?j48jAT!RE`nUeL}d?1_f56$e3Wo|B)hX>MV%OC5zh@HCm3!o{Ss zYxATjBy{oS`q(wnktL*XZiY{@I0%Rj>YQPY{$%o zH}0^|XI@ab1_SWiBK`S~pPyZ8gkc{E0 zlzX6}%3!-F+`-8#_!!uoQ<{hU+6Zi;w)9kiWQ@z;-#CYcA>l zM!UUsLaFGHUv4MQ%U~f70jD@?63Rog!KVUCzJgprUBbJLN^I#N*oI9CKq|sBtNoeNCmGfqi6c!|lViRDh<{aqIZ>zNn#zAVz`IA?Wa$&PUj}Xx|ED246p2$#PStL` z;eu`b9eT-RWxO46`YKDYQeyq?Dm-Vo3Rr%ccgc3c%}seW;z}+LG0r85eNWZdZB@^V z)C~du4SksrPcaDSXDUoy`d!ZKZrkDlGj-k9qb{}m63hs9+~3WJ*CepJT-Q@Wn?i2= zp%owSgfwo)}Pb`d2W3^YU6bbZGMot6>5W}Op}4TA-U@1 zWG-eFKcLtPUJ`J@kPJGoE)zggU^^T$%o0(iUysqh?(L4|1-a8Ccm|G%(8?_Pq8N@UjC1a-(|?jO$E+O--wJ)B2o# z3_o4Amh95n!_8y&s6hu1b>qD@SFORX|!W4Ahcr+wBgNJM6Ea2!r7S% znhe{_xRpLu*i!h4E=3&DAZw-?y>Iqt9QhSU8;W5)KebGT2osQ93*3mwBl0>CqECQyKh#O!$SHClSm zEB>{0bq-L48Yhwfo2mvW(NV>OhwIM6%Yij1TX8QT)!w7FD;#!07ID=z-;-Lm^D8~BU_0!SRD5T*DM&qUtMY*~{M zx@a%HPG7CqJJuoU1ZI!}F!kJ-s>Vu`qSoF4Dmn=!rivSXzq)FLd~&b~XEune1Yi#R zW~6xFu-AX9>8p+n5Z~dZk7yt*5Msa!Pr3|;sy$qxf5|%3mCvi#NMl5uQZV-?m+o~J z+0@!@0bABK%xbo|u4ZDiIZWg*XhjMaaY4HV8oWw@)*bkg&{N4r4l9R%>=!3&lVymC zv3U|j5y(JIRM52{D&UKfRh1vKJNAvA<+~?VO87DJ!UBHTVY7?bTg)PG6bZngb~Q7; zqqmzim7M6Q;vHcsNWkSA!S{yFMvQ0F1F15rQ)d8Jh`~ZR_!xfyA&*4L>jCc&%$DY- z1#5*>Nt|7R@>gr%V$>erSV*St^8{o#@81983T z`^$vH+BK!?8OR70Sc6}`HnbcEc-m8-JLB}q)JLEtbX`1ZOwDtA$jWX7;V{>{-+aMT z&51<;`jj7}Zc#sIf6(|@i_-yzn^g{aUlY$(p}-3N|Fw7SQBB_Yx~F#R&2e@+9?LLR z?5-_XFHlX94G}VJRoYQxGa6D*h%*(U2Ehs;1_;s4bd8F_wg?z7$qXo90>ly!36L<; zi$WkNg%ANr9F+tTNPv)pTshxgK)keGy4S3;)>*56*(ynZym{a6`+T40^Q3?fcb(_A z5H6|qiHXs|Qg>i0Ubk=b+E#)L0+8>(zQ6-)o`Ltt^@`@Cj#6c{+E{_(k(#;b1%W{z zLUqH^C)V@XMe%)$?#2B7`~G8Nv+wSbL&T!XOI2@-sUdwFA}Q35oHVC8=N_}0eE0IHleWGVf-5pQUm4|Ghxsx| zs)-cKxdLuO+xe>_lk+@|T$edsI*L}Oi)f1NLFripos`uk4VrMQ1YioT7@k=G?@vEq~4Q!3OLst0vdjMv|b0^MLggR-m#!ydG`BJ ziW`mY3_|$QAeDBY@)XJkM&reuKWY z%`YAhh+(D*U&w8@#*rh{I(btST_!~m`>TNZ3(mOMp!-9u^weJOs?r&G+p<{@N6A{x zH|>v8^llA=W2V}KJmT-1tu(bEH$WkifRoWpYZ-lyYSk{cD-- zWHnx~2zU@Pk2|rTQoMR&1_;%x3I;kk&1CIVvTcIOxDGokin0vXG6QatJ7*2J?gQpm zu8Hqr-w`%pMp=_p?8@ZwP+GzF_X+rBABf9Q+$)B9llw>M(Pe$!(t{vX6zkVox060K ziKgTQK5Aw%0>RJ!&oRQa^?O@7PDuj+>EDW9Ar;t;Jyt)*Et#R9_ zaWM5-_pb-1G+tz$^&&&4P_k)9e+M>_LE!atR>ltqxp?6H34|`Vax@~I0T#wc3w-Wl zP`09Z;~vvK<(EN=O>3g7O_k+smF&T#tZ`i{Gg@`tyE9HD-fpm!pbM{@o&-x!k6i{> zH4@4wqIr)?knvQsv1TcL9r{Ho_9AxBG;Ml&#W<08p`ybFQ?cc~;b!LmJ^q zUDZztfbc*xc@%=#(NS2f9vtm0$^V+C>xmrA+3>w7-U|E}YrYV@_Q*~2*9X3UE9vh+ zrH^dR5b>*;zaOa_YT|(l01#*Jy=|esXUpD2X$VT+h8#a(!py6u(S!HI(T)O9D2*E0 zYwx?$&K0FZ6_R1ilZrUEXVZ~yP=Zej`hHi2u&9surBFNZRvX2y4dG(Gd7Bj&rdYTjZ$r@n|2TENUU%oVO}XG&S+Ltr5tnncmZSk4&`w&@IsP`m@3B z`ynIHmC3&9a&jvSew@Qo2cF zPNwgz+XBcyr|Eq&H~o#ybId#PpdzZ!HIn$a7{7;p3?h20%>SGuzT=B&6k1nWnEKKN z2>ZS<7d|rVA@!#FTA~SPnNGbw!B2zTP7k(0mR89ejuxpOmEJ#s-JqSvvtNVXIw%gy zm|e43_@%8>_fzxt&<8T-hA_zV*9a1u^MGmW$-)h<{jtpcL0`X1C6Mf0p7KB_uhiKo zlpLt4tWMMU+_McNWn733vzJl|`(vV=723o+Q`l<0ttRmhz*tno(K+MJjpGX{E7Z9O zTjstMWK>7PS>uLV0#=;=y{GgZK9nCK>528exXxe83cZ>dQb3?buMfd48bk=Y84s>U zwOjCAFnDLdZTQh2E%=(Y=>>@fymR2e6yI9V=9R7V1YO0|t!i-P%dKTU9^k{f)mzUn z`@D)Lskd(aYTcpR7G|Q7RAi5-?TPWxh5Vr_{Y-pAPbN5jfw5X0l~hvneM4oSgdU6W zmpB~f`EBoVy6**Yk^TzP(QFjIA4TzFr;N|&3!PX2ztBhf%n=?^TF+lOJ8x?9+|3}E zY0JgxvGbf2I1}YrDnjNRZVue#f(z;NZM^4o%=8uCY29V`{Doa_i0iiRklT4RvB5g9 z!#jusdX}K*OGub&%Zg3WaznI#_4q=LLTfeKN)*GGJk#C*5?9*^Fwv(7sVTr#?V})pj94y1IUsxP*eTv+! zU?#@OU46ZZR7*xt<~D(?v#4!CUzzAUFsF)s(JZQnYxd;O4~c?3A<_;zQrrm3|G7rk zbEUeZmej)KeE;GgyNi(Qc5X6|cB>1iN?9%n!`W;b6~%)C7>X+7w*P>$5A4MqoW^*K z3Ev!=olXVMjBL-VQ;TuPP9&H!%YB4mXtDYXF7gQ3EBxCa#SZ9f5oB#vNpa*5S@E98 zi2U%3Ol2n%BG94zv?vIc7j5Fdx6k~xD_}@hQBzUQwKwyviSW_Vh8nq{9c5)Hc;cCG zGCp=RblDXCNy&VB?_P0+%d1lW`?1hb9;hyx?TtpEax1)$9K#z~R03AY$dF=rde3b# z7PLWGTwzsd!${@tA#nCl1c3+oI$yoD@LBPlCn>CH?ACPsI(pCf2-OE?!gYD1w_zi+ zJw_p#P0PpV*q{D&7~@Ol`D%-$n@tyIz^LfO+ERUB!9++%TxObzIj=2dKjZieWt(tX z1aozpd0Rt4z=_n8)<|D*p+J|Ac~-FAf$k7y4~EjDyB zitgaX>yiv`8f34%YfttCxBF9T+Fojw86%iKPYnU=7g zqyzMJZ~LS}%Pbn*;L9_>FY6~q^f4OFA7%JR)ffLOSFMkRVB8YWn94knUf@;`Ad?q( zGkcN8jSu{ffu3pyJryuwBc3-GEP}!OwK={aP?EN(JoG2 zgd=DVs7W{O?aaaV2#$d1!`eU@ak^|-^K@X=ww?^3v6+1r(u3%r*^CXQVhx|sHT}6I z`3E8VG_WsJ`%f_|BXnJrI>}be;|zfSQ}&@za@4G99JXJPW{F<&2h+ZS!5{i&0mTVs z#U4h=7)*ZMExZx8!Z$QA5!cTj$q44a;>Yau= zp#lnoYmH!S(Pnm;cF;^sdy@hUHs0Kl72wUI^K887LGS zd9z08?4B42EOYk9Z=}XY8%)S z*(!X{a6vu93D?2mqZJwT$W+bDBL_&J7(V*&rKUmY!Bo^;f2tt;O~ld>m4T1^QLgT} z12qE#qL%Fkk5Y6MaBNj^BPgPMQ)>-P3;&h?{*i}9O z_%J&vuCD@~;hTKhizBv=>9@f}67$qXRwHw;Gnl)nA%=DylFx@vzy)!9X<6Zl%vWa* zl3BCi>>qCb>MHxs{?(uTt3Uf!fA+6}+4X1t>i?hq)%)G76B?LL{JVgIw~ZP?kjZnY z8&>^EHc=7>lA$k3cW?IOV*R5#-}2+eej_z4!@ZTREGK@IW9k!GO@I{oPAZgprWu401M+$Qk~vSeN*90gq46{BEa)w8PxgIC6yHe z&IW`lu#|&6jz?GI$usG}8nQeqm;(a>+OK3u6s})Hv6^qDqW%`SwNtrYn6r`A4MiEY z(*kho-D%gJOcE7=K}@WHvYlhlVkx0Mo zSgpv7OdzYepsE6}AHt^oWlTaOzo(?P@>LWiXhfYteoF_w`M_Rl*}Eo&m*~d@hJ0tJ zwoYiCsv8v)$s9^c6g`H3uSSs}<^-)aDwvEm2u)YfP&Qn$Ws&FG@V;dnJlcHBIVpqC zGthrf?D>baG2bs3St_;aJR8xh0_ebdKTU)lRV)o4I= z{acE4zBwm5JXKxn_umnjjAWYwemoK?xAH8)`mK*>x;c9ImK{4`>uE1`-GKL3b;UW4 zSNLjdL`u~v&L(GXpE<9I3tmuIMXc71-wOpVZ!k{*+@&Q);(saYfL%Z<2;UE)blLn(Bffr<7=S*{=P5{MQ{ydEKRXQE>*)kN6--L`pO3>x4TB6U5n}! zeCQbf?Hf=?zCaF)ic>vnbY`%HLemCMdRDrs1Aa5rsS-fvRZC$l!|H$?oIr~0YR!2yw+Q;d^=c9Z)xh&JWDqmUzlp>F_!V%mp zZfapcJ#l}DoHRmoM4`fX? z>vmDpooEdZAkxpvxH|ZHura*we|$w^q+2y;ow}`;tM|jpW59+<_WTU%_gu30$cAy} zQiQJTwTRP~7m*oJ@MCbs!30^SNDNd6C!)JKP)*ay6DGjtyS%N&n`39M1dpjBRGU3< zJkf`1V9&&+;dLqSx;n*WTrsKl{N)}I2`WFL_-bCefxf(=?!qWmlkU`h_q)t9^61nksGJH25(Iy87a)lQG4#`0fviIPQcOQ0%bG-_*dz&%~Vt8omDV*`HNI&trl$EU8 zSDiu3w()KtAY(j*xHAKsgK*SPAHpX36d3^fG#13jIvQK}jGKRm&)*5RHgtd^7px)4 zxau`s-u8;-B67IBwwk*Ox!y5@fNbxI#u4JNseaho?N)e4f{DgupW=mEzUud1+-bj! zx}&n>u#8e{>UgbH^}b5euUZB9tie}s$PMf9OV5upe~H`l?JFp!b{MAqwYx$OzRLKk zhX?RpGJjc^n=<7<+i*u9Y}U{E#)bBfT{^{q2V;@m@TKkB{g=(8At7tzF}BbBRJ&#W znkPa3t3nhQ)psMsMb&h$1urvMQ7GsmeTHyDX|p`>F%FoniwQL;jWM;Cn+pdo%MNi6 z3)>J+fdv%}<$?p7hKhH|^Gp$z0Y`6>Af3*jxN0Aza9Do?EwUZXx8lJ7&+FAu^xHbf z@C@cymjc9QfFuN59|$D~i}q-8NGN9XS&t?_L^6iqvGIeaxnY8jpv2MmQ)0j3b@xBX z1<7&(+sm}S<0+%QC_s6*o?~13F%gsJf>0x;1B(Timw}&72RH4E(34gFSf~dHMJcHn z@`&Avt3yjl%V|B}Ct}Lzmx~D{Om0CHuiX-TfH0d-eE{T(sJ;B2Qg5Es8|5Z#r(^Jn z)!z?7RAvlT@GX|kEiW+=&fYSBxgx_czaTjg4m$B5Y@Lu7+wfprBJ$e#W<^BFWb6Ri zLVN_J`b4^Z^0-E8bw!&qOPPk_H5Vj>7-N{MK1gPP;+R!eTAs^^dl}eO{mg-e=!gJZ z)xg^s2Trr%E?|0td83o0hH>|uZF~c`cTu+u;24iDFMN*Gs%}gn#F;ks)|$g}nnGEv zuxYN8+Ffl@-OlD$fPD{k`&g$xoI!3Dx_yrg z{eg#Lp=2uosAs44G6IU@NgDZi(tg&U%oxyb54{i)o4nEPD~O%mrj+A86-~gWNvuX> zOx1Nk@&rnWV`#2*w1r{n!hF0nvXco-iz+&+Pt{>-g1$|vDT2cRTKm{4uz!TaNVJWG zzX0B@udI({@d?5D@Ppv0GN7n%%10)n2WY(**Dc32*hn7_^Avn&rul4zW|CiFNLZpuPb##lf}mN;Y{eWF@mLlOM{-Kym%_x zK$e4BL40#2T)W^1!8D|_#Dig6VC>!&k-w=SfiOl2BVQ0eW2eZ!v^h&Eoq&S4%z+&Z z@hf%XlP}AWc;%tR0v7-P69W=f|$=8EZ&4_2G>NbL|@gEIc zYx)nMx|Tcwx<&`=amJGqkzf`|y7EK^h7z4zD1RJ(TGHB>AMgpc`M=Y9;akNlphV1J zC4l!29PnXI$?Bub!13D>JL}g`5-;IG8fMcP+^Z32c$xId= zyF0!h@^%^k1rms!@b>}!ius?&-XS15P@CNhOi7magY3BAi zS;D>GLSqIPL#`-icr%Y2cHLoshFdczZucu71JD0S%^D&%~}-0!;93y+FH*M#v+CuN+iH~b@d?a z83sHN;5IlvG&ODYPf)chKQM<1GyfFKP0g{|MgU zpB93KM54-WFpGPdfV%6!0;FJLjOmo1n4eIHRZ~-C7U*&NF|B}0NI=TJsNAXyrgm_FwzEGi2IObmkC7_A7^^fY!w4756%t2;GevJ zUe_;o7cHTi7r-GP|9x(obXb~uj|uTW?EwI~Jv>sgwA9`7j;%HxJ&>{9Fmg`Z^VGCs zECYH1JiepBBvYDP8MVELM30Sta#B(w?X4%k93JKx=OWg^c4P+2T-JPZjAX`6r9AJk z3vF>kYvD%tQ5T>=aA9$#LZU-(8Bsgx73z4pNFSbFy`Fx6H1yCQLpmhk!fy&S_qKFy z`3yXHSWIvrm)5u4M3Pm{Xg<&)J^l#L@`3 z4A-6ZYIlzhs6*AsLwU(#bMs78eJ*;W?Cb{I?0_;*DFf24`(aWhTILXqU{36WX{UJw z3{KdPdMqD0%g$=qfJL_H$=$Qn-XmVrbGRUZ4vk#!18K2^e?d*+rNVN0=SdkRIAuqw zv=(|JHCxluK;L=77#fjB~ zXHca$cWLj`((8ZI%Zk5q?O)%PS*3%nOkpNr(pEy+BV$PkwYXrg(Nz^e5n5n05YJZ5 zybtbe%UQa>!Ue#v=%jgbN*cTE5O7|rOGL{ZOjKWE=xjDf_VPIb0qUz zTq{&jLVA5MI>O*Y)zk&fImZq-cipT2VV=)bx5 z!fJ5;0g%tp8 zSEoPM;`FFFBQgkOF+XXEZj; zOx?}9uf?FU8U>n@(8V#w>ZgDc6}<4S-OW!;gr&zp$0@w6hrzyv{+R7?eDIGmZsmsf zKlbVO2kyyn_v}zWAaPqg;fnWGu%)Z;f3W_c4@oz7r5U8$d~uhe7u~KqC=*3Pp7&i37!ImlZcE*QQM%d8(g3E zL>S9&76WYq8bp%Y2QmX1Z>$xUg30)?9+R0R{i?eIM}8RByTga}7PP=VuEgQ4UsR9W z|0+b6@CVLsfkuR*7j zsnGPJw`3z3V<68TE&|Jj^;1j*;ldfwt>8KCx~8V)xfvHrk?)B@)X1XoP7UoKdC%kUc8-j=5u(A~NEP*XVFM)DU)TW`@Y7 zc7bcP5tFu&->OJ7*dG{8W*^I+0y9KHwdy-TvVLwd>CrbuN9QkF%nGVP%E?9N-N9sf z(n{vQg=%cUU8%(rNiF3Xy{K&1n0r=KFw%f+24-7AxlAjSu*W?$I|r^SAvA!LC?6AR z!9P(JJ8~e~mL@$HO8Qf}E0&*Z+FTL}WU`pXiOLEX9PZO*{9k~dWE&>{zKu%DvE;+_ zK5<5zLY$(kwX_+R1AW*-c}#V5q1M&(BD`j4yQ0Pl=)R1NleRQ=5R1Q;k;>MW#sC;8 zGO1>S50d`P!X~ZnCEX{J9RphM!=kw(`CXC*G!&t>rqwIVDuBpxw5l{iRoEGaBavvp z0v9E5Z$L@tl0WA;mzgufq;CX!^ zHTDGH2s%nBwYl2JhyuHEZx2r@Q`g0H=z?J{1lNZ~RQKn%TKTj|7vI~8o54VIRrCC7I zK3Ii1z81U(F`|Jcz)kheE_+HT65)@veFdPUwBDExkln^$)c3I7y*wsbn|_3|3vWR1 zPm^0(X<7@RvW(lwc+uP$%obF$O@a=|bZ>P0sgUX~y|Q!Z$;p!`?8qyZy9d%_Lpq zY=$Fbhxg32rsW_AEMwdEKthd380Vo$Wa`#S9+rQRS7*J5h7{s1v0^c<`J$TtU(-u^ z?KKv)g%FfcCaM;Y=sb*J-$c+w@Zd(zZq{<(fG5p{m*Bj;>GA&*-$Moe`&zh%+m zAM`M<3gx;t{9}eO;ks>}K2oLrNz1K&f4sXG-8%N-((tA|&MvonQW>WrvT&o1>fC}% zSPg}Wx_7~|Z{!Abl!&-jEgY6?zgNgkMUf7Ty+Enr8m@Wa6YNPM2}Ds`Cs*)mRst5W zdIQ&9q~~d%2ys2!3#Qc#FeYPoPg0t~UlcCM4@$mS~Tsvwlnby zLXFX(+#eZLrMP;`6dn($@_Vxz!t(!{KvNm`_?CWfkr#qzBv!cL&>$1s8;`=4y2CMwT($(vRtJED@<|J+XZJ=f?dISW*+q9L8UwXLoCy$t=y@}tN2ewAZ64qpE z%Zj>IYk5+$pwU=XRHa^H1d^4!#Fga33lroCxXnbW08T%-=KY66_anJE-4HI{?3Oo% zrk~jv4#hQ;5WG5tGpf$tTlQG8ZwIM>O0IgFvk4YE(PG(|_^w^{O!Yp!y#{zG`SJ2| z32;T&`SjF@$N?K1bVb(Rjz!I=an65AI9{TK4Bzp>9GA0;f6=k@TYnlXh8R~oq&IcX zyME1>KJv+9$KR8aF#gKPLvf$vLpA-4;UA8_x$NW=wqd6Gd*N%%uMeGs_fC+)i-y)3 z#q^6hS{F$_x$;4EZjB`TO!$77pkB)Q{Pj=oeD*g?uj91jLo_gpVf>9ZG-OO8)y-mc z*J%abo>zRm;Z4}Z^UwKZ>r_F>eHnwZ zU+nl*;(uE-;qKKc{ClIaGHu6X6N|J>v#M_ytK41@)nSi0Q@py-?zrH7cK1R18+u;7 zkei-ru&?V|($P!fYR8#sKupj{Qz=gvg1c{%;Vmq=ZwS7w^^HP`4dOrlymI_`<@m#u zBQHgYl%R8#*_Gp#AFLdCY|12<3l5%w7@hLdpkva^uD9+SHyEzzBnj2&)4|(AbnYEl zFa#^>w)|sh;h%@v17qL6J0_3Vk(w2OgW**CQ$1A!v_=xhuVgy3UhyGOF01+I0FVT> z#mOPbPhhG*b-`w+`$!mf+zmWTVo=IwrdnakN+f-yO;iVR-8)3Sly8QMDx^}7W%8a0 zs}V%3sY;lFy&K-y3tNiWnRY!>Tc-$^Og4Oen_HA{mFS$~(k6A9k3D~g$&W678~8|@r7Jl)Rm8OLu$`e!We zJ!5v@5#qOs-`#|z*!bGaaaSC{ky=r7KM8h-*`)w@wYbb+;H$p6)61~h-02)N02{=v zvcrG<@d23C95+m~% z6T2-iuMc_t$MpPvLX(dbXg^V~NLN>Rs{)xjYeW@UYA-}Ur5mI)UR-=+Y`if_b_jX_ z&38x7C~v4PF20jLvO!!Q^KXF~P15D(+HBCxgNaIV<5%g1J56=6$CA_Y1>W00 zaH%eD%hU@7ntuK71sjFwj&V+{lhnybY+z^aT*cZRsV0?rj~dDTl3MSo104Cg#sH72 zO^~e^qfaitG7=Ef$dMG`Gy!_?Gh@N3KE1E=a#eR1bkh zFrL>V9NzhCP6#i3VV>e}nhSszm)QnRyezQD%3iTkm>Gm&SgdGr^}BSm)N?*-+?bY- zmJ~p)!x*W&xZ?UBk$REj3xi@dL@vKRz2%>GzIa7WWe2cSK}LV5un*3wDg_;cH~kHI z+I4=Hj=p zF(rD#f_Uui3i@@lf~H4736OQUG}L%PQ9kFW6OF@#Bx|APb?Bda@8jmvmEg(e8QPb9 zYG#s%ss|=q#7>zCxaXrA7Sv#*QuLMRiIp1 zo~x%5H)lA{u?F|$nyq(r-Lked+wr+FG=BfQadsC2{Je2?uc6OOQ;y1~KP#Rt0-(Q# z>evHr%0V#@b83D&j?xh=M7zfKQu-eUCtiYcOfteI--p6CxR(QwQ|>r|yHD?4(qxe1 te$ugDJnUzH0T9_5&>yc)Yo?vky8c&Aypg;C89F^a+O%zB_4~U&`@b~!H?;r& literal 0 HcmV?d00001 diff --git a/en/application-dev/tools/figures/aa-dump-i.png b/en/application-dev/tools/figures/aa-dump-i.png new file mode 100644 index 0000000000000000000000000000000000000000..12998c5ba3e7d667d1147b6e825f8d110d5c5c5e GIT binary patch literal 6730 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/tools/figures/aa-dump-l.png b/en/application-dev/tools/figures/aa-dump-l.png new file mode 100644 index 0000000000000000000000000000000000000000..a6797eef284990e3fa25e71562ac8afbddf0821d GIT binary patch literal 5357 zcma)AeK?zE-@d7JwQlXItI-zge63XsofZvS*N19oM%xfpNf9ZLsrvqiu=QD|ilM%$ zWY17VB7}q?iMB+2W@r-Ml%hnWK9VTHd(pke`##69=Qy4}lIyxsyLHnAwKT4TK`;I`+CqFu#|K>`hmv{tU@yc@F&oA{jF)pZR^~n?xR?(WOv$e7P(7=gQ^p-NX@LUa2UKgTCiu!dq ztl~)lxc9wJgJEUXo`w4#E~uMAP}3X}j@jB+=Ak2EDkCG3G$9CsCA~g)u0S0O#)R3C z{@Ij{Bwc(gXPuhuT4T<6(u)SUi?_5cchKWZWIS$tda@lp5Q5@OtrQ285uF=%9ev8# z`m)-NSysm!gFLogXFqdB4IQoomP_eVr5Gj{z=u7gMt^EJWVqwW*Fcy#lQTF>vZ7qB z+Zc2_7|-7Y?y)xC6uFX*rszE=$jMr(nFG_~4`grN%hE6Zin^w4G5x1)ID-BW1XWhR zL5yp&EIhw9QYRzXrOd4gjqfbK?+vCjnb{reN6X2+ss^h1pli!qhkx(3R8lx_8JrVD znO#O;z_7|}gk1tSil(>=JKfB&t<7}_S?AarQ}fxGZ`@XIT^4(8FzQ__vr_VsFP}KA z-O&>b=C8bctAflp!9nZy(9fJQNH)qEno69=4D1}NL%QX0uI>jx$I;gJJh`XWlfk=Z zSYpyWR`x!4P7aT>TafOE_(G};mch?m#K5Zh;F)vYs92UV$vR+b4hHTEUN~Wl2UcEP z$~c?NkNI(qmdxDVniT7m13&6IK9(Iz+>Y6$OGS|G91~sU_M!}(+ge^FVFD1uo6bfn z;~gnpW>1o&;o_%0{JMy{IuJCDueaT0GuLLAV=2#9ecV+nN?xwr-rX;!8YQg46&K|EpOPZ*&+Qy2pTR`5s=yTxQs*N0cVfzhQ?u+h`X8ho2(HUHOX22 z=Yn4``fg2zdD->~ZxEdY!WIoD|6$~Zj5XcKR<^7j_wcZYEVWT1Cz_R=>AsNX3YNs^ zTt4WY!AQiK{h?8sN^qu}4sP@y9|*3PAHC1zwc{sqM$P*y*gclTRRJEvi&9inP_Cx` zUI-e!p37?rc$%iKLtT3?lAeofbfe)I3acZ$A0($CNMre~Y4E_o)2wjsHl*<;QnAoo zArY^G1KS(}Z;^55^@85hiC=`5yyt_rJfsaa4eV-#64c~nLQ=-J{iJ_DKSJ+Q+)SN? zQb1Q2?j+(2-B#Q;G&aa0nkqr7cRRM!+_DNPPh-E zMW1Wg;UloDL_(ui2Oj$sZW7No3W_Nr2|k6O`Pp<8b+F5I9Y*YC0GW8nXFF&|zC-&V zHFxl1;8c%k@a*a5;-Qy|j6B6hOQ^|g!ND#sbRzfD5iNL9%beL;qGa>1SVG_Qn64SS zKpthflvBC8pr%h@Ybwmpk2zEEvM@@cc9Qet_f~=nleV9WXxKQi{_h?$1jVg5^ob;S z+}qe~0I>s-Qa@gO0_&Jx^sLC)y5M^G!Ezfb$6wlPYES_|pS9vJRj1%{XRG?w4+v(Q zTyGGoqu`V2@ygJb!X-c<#wg{NHO>MilAQUELHnUu5ryr5up=BCniIK4WTlq)1mp^4 ziA4lB;o@1%8j^I=*<=0p7~H3-=Fqq(3xWA6xNS9|B0GSO!=4ZYVY%xqmR@7e*6-hI zCiBVvnye2rNj9s1C6Rnd6`_6$7DOu9D@_7V6bJ{Epf`u$dX?c{3_XeCzZ^b1Gp9Gc zP&Co~HqgYmo-TJpx5~;Za|-Tu$j$?Hz1b}zCrEEQn)1ugBMXap7K<@4VjJ_H8PevS zicH4D@)kIj)q1zsMEJq`^S=i1X$!Nf#7hnHare0kZl*!y3i~w&f&BGm3%j@~B}LLL zdmkDXGZ7fiJBqt)O&6RTCO9!&*5r{|wa$UX5mp?(defp?ZybUeThvI29s9AchcMOW z`|!>m`w8><4U&wF%1aqK$-Jl`SE3^`<@um*n3q?cXX|N)iDlbG_IV$36uI{dgUM~5 z#0yWPhG3(oPkZc!nzGM6X!6#{I)zoeTzVAbkh+@t6@Gy%v*2Tp^quFGL3+ef8z*+C z;EmQh4rs@zxhonCxc#GD!<>Oh`Qt9mxmZ9zBohRNcT{Gf_D@Zpig~;UmZVUIFm{*O z%~;hZuWNf5ytGYYsu`}c)Gw8`@K9tty0WJW5b`r+d^%3)ph)3+`)8^w5p`Y)@2a@@%edhBRc9V@bnzq08;e!i0Uf?i= zQgjM=wD6Q4((6d;N>*;cVlwl1^3}e%%VoUwm=3_iW*u7}BxtW?smx>aTxL;YKO`cI zM$3iOgPZfRI3=hu&r{7E-nnvkN`Z9x@T9@DylaJxV=0LUyuxjs*FMU&g&<@oTp52S zwlNxY?#scMAL>mS?9+3!1j66(wMG@3tDJ^f+I}dW@AOuyKdbQljm|3ma}9@SBk3PD zGNYR52AhHgEfiYN3Knw%wSH;|ee6%e@4|y7p3F}f*wipaUq=Q97Wy<>!X_I6=d+Bs zya|5HBr&=@^xgvxJ8DwsFl8iDYQS8KHl}6rA12eT(i#a!bU9$LEz7C>Kpj9(^~o(G z70||i{vS!CPCO*sArbN4k%&5nd(DHKlF=rpShf+9LOatbL`TaMsgCB@pdZ%01Ml;| zb(pcJ8 zMkR2)rEw^damO6Kkw8F5M=M5I7ATUIZn=)84)n&$Gxm1Vej3Uzb?jElhQmHt??c2w z3rao4-_+at6R7}=m2IY`kXqIP=LMT&mm^?`R_tzdc(rfKL3I`57S+-J>7ts#^; zCmPzyXrrk&x?=PyuJ(J)A8uGy$nh(R_n=rF;57piO}jTMuGBS(6IMa(jO6rlMKO`& z^t9FLHH*;iv%8ATxD4E4>OAjI>}WcY74x}FTU$8LA0TS*78jdQhD|u{L%(4YRRsH) z<@;!YGj2NR5jyn|-MA3{-ZU0s&6-Kt>)F>Xq7&_^<<-L4wM`{RMpxi4ia!N##++Mi z%*M3S#;DhNO3KSXQ#?I7ucKYzk>7HLZdWZlZO-QF5QCJUu_aLHW|eZaex$DPVOkuX zfA&afZ@*%0ioh7Vu+^EXsQ$xkO)@j*z7trvSO>x&h72pI&u+FnyQTL?cX5p6m(N@9 zRGsczjh-eAj!1a<-3uh6CnGPxR&>@jqbHWWh3_}DE22Mh+Fv;U0NLi<(H;;Wc9;wq zWnMw2Q+4TN1y8TD0E=g`-XxyLh&@@a=0oGl$dy2c^B?pn#J zh15TI_t3wKA!tl`Lpg~U*{hb>4rGttv4nqQ+I?iCPfO90MKcW3eue?a9eSrfgH2xi=%9INfigk zOI&+)-F%ad;^!KfRWGObtLb}IlA4%}@;nx&kp$$U=aR0<(N|3z)Q@;jrt4m-28LG# zs2vvJ!wd{62Mt6+CoGWK9ZtLrV}@CcNm8486v8GGNEZ{CDI7EOJ+Dgp^*pCqFgsy$z#&~`MrL%cSfVVJbpRYG}?2!(I-Im!|bh`vE)Y(zjMp#55kbQ)9NfYxZtO=Jw zwddA(vkxO8SFG{jon>DM^Q+Fje7;7vMapC>W#~8I6bKEGGe6q=ld!`%{0ls*XK|w6 zzV#PEG&f?P-K73&JLH1 z_CTD9A?hDShen(j_@a1Uo!A)=$6!M^_aowGW~%wj7abN?qV_A$9Ky5 z=Z0PU|7nh* zz23dP7jo}=M{zb9EFj&kk~2#w93AecDRXg6d$hz?Z)2XdUxE(_3UH$s<{->eecw8N_uq&z+uo|`=nN^(yM4|R`{+tV zC>we7tAV4%RoB$f^L+==mdxt#;%Kd1P`s|TGo~sv=S7{X72vFsdXYjLN9ukQOx`qNdI(kR&dfq$237@d-X{h1m2)e2`8flrMuzb4Z+ zfx99%kSk@u#IAXHf?N}riE)d{RTcP6G02DYhAB|S_6>47;Mf6H+jMDH&m1j`EAk-^ zYUG}&IMJ2X#_eJLojn^o>);IxB|f*Hi3@nD5E~w3&()aKS$`0C_Oj@*>jR@a-6Ix8 zv}B)XK!~gML-)C5{?g-o+!PDs=y?7k((SJ^K7gC2Jk~crP4q?+Z>I#eMB-|uIo9kF z;Ss7j@ZxnsV{!sRFJ#KlSDTDBs)Cib2+PJshJ@h3TxSHv_+_P@FaH%kGB%p3$5qd$ z114@qm3=uaKp%VUc-B56&`yru2(b zgi`}AEUoQlRr6|73D=NuMVfr7XfliGDQN`N^b(l;Rd| zY0d^af|M+a0758aFsKL-H1wE{oK%9wleCG-p4PvN-THdn8tIkV@+i3CD849ICrv6e z=kU~AsLRYaD~@SqOAIHLjf4T_W9%?U!T&Ny>G5p_>8y#K`1Byqm%mQ#utr!x|Eyw< zD8%4+4SS%mIN0%PB`62~7I@yQlLoaikBDzS%Eour}(y$S0utb9=CyYaOUD3faQOlht8q{90MP4bd> z(SCwA$NMw*nq@XuLs-yaN4Imcwvgwt1qj-6dGUD>9+dgjyZUPGHuuFC&fLu(l0(AO zZbrBU&%|108(bS$FQWOZUv+mvv|wX?2bK2>Zk^W@{j>-;LfQ}V)vnxC7E7k3`D`$H z;)bx@WAQBs7@XJ<;GTJDAIyFkVF4#Qwiwa7Uzqa`bo|6(weJJU!gW$Sr5_!8*W zrnD~VWS;I~6gd+8yIC#;;s4OX(`RatfzNFH!yLAJ#CR7p4&SDL{qP6$+of0bf&X;& zs-7$hK&)Rx?Aew&{~`G~s+70_7YP^Ko{^>rNFRCfnk*b!zyKGSnqwd4aOij=PEtcd;j=_snW1BCs(8v@^`nFy#iN%rghNC_+lIl-)xRz&+kPL&n7)xVq&sHcIC!PYG zYl-<=jrp!9=iIK{s@Uva`7cN~hxqHxKX_|RhaMfz>}GfHDceb%ic2TSc%SyAoH>P3 zIrQ1m{~Y-}`f#buPp>T0V;Rigp%j&wCrNS#%Nc;jDg_>^6c|=1O9-L36^}kJoIRvW zmCL=DPZ7YF-&dYdNXWu>(R!p=?CK7k&{ER66z3$e zDS!{lu(_C({#J`^x#~raaj_uy4B3jMOH!cDuoxTTBfM@5B41F{fI-J|na9>XF6$k$ zR&I;^p1zQF_1H-10F+XixZ0_>Rx9P`&?@_hpt_@!sS*@`4-Bgm7*;7TtWw_ODDxi0 SM(%L{0000DUi77&z<6a^GQm0lw%O_UA+>4Z*@DlG{}m)@H+1rbFclF(E-k`Rg@ zAoU>#p%;PB3FXA+ec$Jt`M&e(+%wngnLV>-R=L(%*WP!Wfu0tCmXnr(f&!qU{m_Vl zf|8$%2I>ps9shg&%;bf}Tie2qf`Z}OA5dli8Mw%sO#T|?{>EO;{(<(sP87z^+`R4m z{GF`XzE4w7a6Qm@sBRKeuu*83U0K0!Pt|LBfG6`oAcgAt1H*DvIew;8*S2O*i0K4- z1Tzi4d00zJOSaQQy{GjU;R?laM{!CL<%?_Qu&0zSaP1fhcsr(Pyk6``Qr^qMOL07x z&MSexxvJUp1T9tcfP&{CFSg#3>-*x&zCoBJ%p>j@uB9!-`7t3Pe_>>l=*f@vi0D+;%s$W2kO;YeRy%K+D#Ib454rCZ?1e^`2nH0Z*w(q&=eW#k%vw_|)mP*%a6kWj(?!@X z%VVmG-Mky&(^V%lnxhJYotRtSZ2eTt?2f2scH4h$`S5o39&69Ud6|wvw*Iq^J~GFcl*_k9?-rH44aZbO-&}Q7Hl1%x~ZqkRIk9wT_g+$nnirxcr`JJL})1e_KH_~F# zJFz+}`&f@qLX<+C) zr;i?kATemB5*Zxo;7m}CNeWBeckj( zFhDQHhv^Yfqjv2BK&xB?7m`G(UdiwTE3||jp8fqPy+){Jt7J>*$*Z|&;E?@$J;r*# zFL@7Z5<(`&svbgj_C`33jC3Q_0=~{|4S*|sdk$P;e0sKz{NWhaYgOq>20G0c;ehbC zm2nJ_R2B@l!7+y~gUO&nA^aYvq2)Fv(_L5g;9NtcF#fOu*ZozOxG99?K~>eVu&Srf zT7r-GIyw{cI|CM0P+#=rlE*|ST0}OH6euzyzNKyD^Gr|T@JWcuw_+p`*5e!kgYnuJa>hpIL#1X_>^VRi1SoJDMge1=PISdLanr88P+896>T{$aeRutqa zQ~F)Ls_oeva6~+PYARyN;yg1Mi#df@$oUoLa*L$=oaSz8Gy?F2})VP zozLI9g9lC_R0zxbx}TMc)~nXo2`?elyg=qvC4W5VT@48}X)yZwUfg8!WLD#zRKIAY zgZ#A(C6oE!0yXAQG{PZtAS->gp?=jd9(oz;>9l&P%>p70A~58by2{Nc1};5mp@wy+Fzrw zr+-lxRzoVy!wC{5sg>oZw$%4nL+sOg1VF5+)WIR7H$FFHA@ zf6$w;xwCvfKwTm(0ndwuqnWgX7BOh$WGQAmMum6-$LLjVS$GTF!o4!IqddfT?Bzxnf0(QZ&0$h< zg6p1{TS@=6-ax#{>sg@E&;n+R>Qv3RkTgBHwkM=td*9H)Rwnajze=*~V2uYpEXC>Z z+?ig0OS543Ftr_|b@`{_oXSJ5*I)>;n?}}K@E5Q`AO%A_%ql4#LHVL8exLW4g@`Qe8jbI{oBXsiQu{dY zK}bhO*qamw$Ex4eI#Q}D#N?i0=MH`EMf zOHPQ5_W%iF%+^uD>cPu4ox!0p2-a!6+GV)TRo;l509&7=T1MJ;^BZzPZoRq`gY0-P zeRstsVTj0%!gBC0*)emiv2!gCq3c9>Jb8kYK#q6i#52atYtM3SU~2~xn9_CLw!f6* zUDI~}v$+Jak1yLn4&HF&+efjFUuv4hppqv5K3(a-Ijj=lHSD2Y2{nZGVgse_SVLS( zO$?D7q#CIgpPHt@m$s<5E^b}^H=GWwDt?pN6XPF6-L}^x)LCpXJHG@5 z{KXiM`FVaHFaQb`cF(#gsUvI!dp}A|8F((M}X)-MIeXtYq01 zxMZ#X^TA{2gL(2>C?AtTRGbw36FP=dt}Luf#$mQg`=HF(BQx*iElWpQ%?79xHU03N z0t9mwY(4^E_OiF%*F}g3m!+T77cH3;Q{>09kLiAuH)7@9p`>uer=2k9 zO7!BTA|;%`cc_m>=RvO~wH}@AZD56Z=z-KmO#M_HXu;{PzAY(6j`~M)lrSAdW7{a0 z@P+|r)s6Ss^P&!qwdXyUWfV1E%$xXaWF}xeRnfLNGYxLf$bD?>7hO0IeH32@FM228 z^Yj-JJC*_-Od@j)KyHw|^lK17$}b7!O}DA3rt{h{D2o89>d$=Uw*-Cx-?@4`igxzP zf6hdA<1$pVCwHf)DYii>66u;+7>FC0ed|59iQ|r5w}@#og_fe6CLQ-iR(t9N^S?07 zTS)WnRHo>l({{ua0ll0t&bk4!{eQJQKdxgXNEyD@v_;$_XtX#Cg{v7?0)JZ!347An zJ`_h8$KtyjB-L{#z*cno>TaO~4b41@q>`n8X2_B zj|d65tJgy`ZE^Lps#z5+m4v*yCjCtX)!rFHh->R0YPLyosmM5pSUAz6e7cMU>(K1O z1-b1QOvKjoR4!bNHQqp4suA#Kyf`NZQ#_;~*OODs(YRZ|phENnQ;_rkyi&y`=gD1B zq|}xvm$P7^?`r4FHRX<toFt#<~ovl zi^`xaXS3~+xx+$~w_4*=@;~6{<2$dE#HX-MC_UX64yAYtgUk=FsxlHwb=LT zZ_7qwKNF$**)xSy<$7O>-c0^XAV<`OvFpC#(;A?ACOx{2m_eMXzx>(2vujTJK_3K2 zZIs15bMB$+jKcQ5(LcUVN+THLZD^Js7xd)V%Bt2yS|qNe*53KSFB~SK#l!oG16nCD z9EIki&KST}+zBhWnAu6L#NIwB#uwzdOwmGaV6f%jbLA&}Y>Re5Tp9ed5v*6^XFV&G z=_3c(pq1B~3|t|^J*m9ke14*iXOwhKgK2r5(B2J?WAmJSq{hHb+x+V!9eCG<3uE{8 z>ukOTJ4x?b(&OVl>>N9QN3mO?UfV2`MGi4O>zVaIuV>VNK`dmI!Hm})Qde_IM-oL} zB>WNHy?q4sdzb#`t$$E+$KQh8E}Wn5@2O|bR}sUvF`cL{wzkI!D&~wmUG2i$zv_+S zYCy9|F9E-+AF0V(7|~iVSO&2=@mix}d}j(P!94mVBAI?BQ;iRG)nUyCfb=D%h^k-m zjfr7S8g5$Y^LL+w`dxdpD$6+}R6c)yVq?!wkR4mXcLP0N4cmP|&9GXiq%vd!T@Oxo z*~+Nc)uiilRdb9ikUiN%+e2!)_j7%Ia2l<>{b`eGz?RzRV3oeqyblcsahAuj=boE2#+TBOw(S{{S2NZ`1IqYZ!h zsiq;abQ!P)*^EwG<@wX$|53m@HCGE_F4 zrAms;FQ8fqe7Y@d*xEjN^P-;nNY8^nbKZmwx02z2edVW^;fkeySsmA9mby@qGj4hgF}X+A$HRd}EX+6j$~Hca5LnF#d;52frluKf-Jr zdKH{V1+%>GeXJ%-5G-FO(K7sLZvU?)oi|cVOhj`b3CR>bz2tDlO5v4xz4LTo4QlMa zfK)d*ZmM~;h3OS$mRbvLI$yd7UEfG$n*+2sP`{eVuWB|?I6@Y3UZ}Q%@V|fc!t*n) zAn-)gqaEMW4(4X`^si98@jKi{^y)&hEy?g@C8OJUz@?zbq@-9@dHK1Oi8{*0EAX!H zH0h5UFU%g(3hyeW5cp%BGQcc(FhRJH6;{;Vmaap>QU2Pi0u9j~7Lmm8tjMJPNN32F z==iwF)hTM~KR!t@{;OKed11NGzY0E#JeEvW9cYOaoOEVgzCh;a(0fTVt__2~K>Ah` zab#|gev$&694Qg-q8s<0-1}N z`GFh@sz1Y7w^(A|I`V?=zGDKzX)!fd;UTTgk`uBriY?oE;ko1>xPFSg@6lv***|<7 zVYSX833a~yr;of0rZ|isC;omP!TuRcI>6rD^e&C#ao~+b$N*%X+a~SvOZeP<+)$t7 zC*UvOcOBHTm^2l#Zye9GWkdDxG-NJo2Z}38D7_1GRBfBIvCL;HS;r8J#}&a@{N)WpuomYG*NB%DRM ziyljW1w5SUXhHZk<#sUrldOT!kJb5t-4oM}rQCn0`I6uX@+z_j1syu2zTODBDXG{Z z?Db1A{z--T1UUO5SELG))u^JK8kO))lEA>pkI23%5Ci+rf!lT}|J9)6@ZIxHGEwY_D)#v|a3-dLMmc?&_!( z)mPko)_b+AERp?#fHzs8ir>w5oAIuTpE-M)$rp9KF0PnPSv9nb$Q{}LQ!B-iVkZ5}`N;b#=KQmmN4%x|}QuGE-9Kd5AdJvG1eHDsUoBVBem zwq{3Q9bu+v|G>o5%5ZA8?hZez+rHyAgggj-0WbVb=|8mogS)t6^FHgx6I)+cU2dJp z0m-8`>qM!%$g@)2bb+>me8~j+uMSQitaQ$PKZ~98$&H-#e5`g@*cSu8>{qZ^= zEHe#EIf&_#Gy4j91U#qAh?I*tV4;kV-ccB(kQQJ5PQC&L23ygD5w6}3blzd{0Q9jp zriWRl0JFcXS@7nk=;T_UYO?V1!SQ>gL;x5w#V#ogl`HarS%WlpLo!*;<`Q6>|b*(JV8Kw3kpsHCaa=>~RCGU^vmi5?SMVy@JWSTlS^w)Bf?B|tgOHZkJcNd#!LHa$TUO}k#}v6UsvK1iKMJJzfI(89b?8F#3$_$OXqt8kjO80JQXy@ zK)vVt;Ob5PU@n`TDQXX&p>sKuSIpPX8Pfr1d|VDPcQ;*sGqAz~yC~m3_wyG{Io6S;3fR5K_5U$2d!z}2?sPm1>!Z)7x^xV71Nw%lj5+tB0TdRb)6lXDPq08 z?vRvSE;r_B{R8$`iHhdOV{AyNI(uWVmEC#s-s{79CVu$2Y9ng2%IR>$+Nux4XF)FQFyS~tzn8=llu&sxJOtTMb_ zDrJM3)h&)NdufwG7d9A;X4BUu0$L-kZXaMPp!9qSOrFpW@X(77h2AGoKEC+b+FAuKA8gT9~Hrq2CBEdo3DvYXifEx6_=@i_26Cl z$g1?iU(>z_T81BVQ@_V<4ZMRs2OMK#k8;^eBOgS~2DW^^aS3SqBbRGj__D7`&Dcua zKs`f@S`6Hh_v@$WYGXkz*WR5}P8&Dy?5UE2zC>LJ9cgOilop#a4hry@F~Oc{zqyc4qg4O2Zj5qyr*7>pxKDzvgwnpOxrhiA< ztSFXMMj7zVwCe*szo5Q)aO_)4bDr{{7M=l-CWdH&x7=SjRV7vS1qFIQzyXtvKI5$@74^XU literal 0 HcmV?d00001 diff --git a/en/application-dev/tools/figures/cem-publish-all.png b/en/application-dev/tools/figures/cem-publish-all.png new file mode 100644 index 0000000000000000000000000000000000000000..99526e1f7245d101914354e2a89d5e97d710c27f GIT binary patch literal 1450 zcmV;b1y%ZqP) zOLnU;3_!^{9kM8v&H}QhzClk?;@XyE`3KxPY5~hamcKI2V_nzpeczXD+ZF(TQP2(n z{P1`_pWm;4s1yLun|=n0001b@NcvNa2{SWoA7VYf&IV({xdf< z%ZH8`R2<`f!~*SLKk$J6%uVg``RJG#k>$zRWZ!pe1~3>;9ldiMZvF0ewrvStqZJs9 zX5&d~hn4al4Wo4**sncO9hJ(UXBk=Ryhpb)v@f;k{mw0X=k`n48Y6DoCO)TmrZoT2 z9CaKufaxLMOG-bj{h*v&{Riu)iSagtww7PZKV$OF6pL?NJ`x)L)B3L_ZSGk~zZUYP^pbB` z+m{}`S*2r+DcZYI#bQJyooi`&D>dzPmIlniZ0|HupOU;weZK{g{2AI04`S-&9Dd zS9&W|W6U}3-cYn$N-oL2H=2;d5zmT838U@fWwd|6wQ22NE#-SXXk%2l=cRmd>0^Z<#T~TwQ=6P(ay;}}>eSlM zVn46^<1>=nFuk>Wv_4xCi~VZl(R!0xjZlWQY+9CGuKj6|kHvqz?VDDoR`Np`G5c!! z6{&q`S$0P*@#|77+W`Q;RXF|0U$KpA0001I&+%slP1>UxE{GM@- z??GW4bP#!7pB-9{9hB;BY2606E5w)q;16`90OR0vqjMx2}$BF%hqr|;xW%!%nIVLkb+rheM;wdfz_X{jHn{5}3v>-4$YiAkwvJoGyG z4&Y2Y)^+`kRmQL)<_;N`(&yx8?pyQM2J&Zl>FTLTi;E3Kd=93 z(pa$SU-C}1%D+^<)U_JvYsm+=3-6`uVGGvH9a(fUiI;`IP`vS^xk507*qoM6N<$ Ef}@4z%>V!Z literal 0 HcmV?d00001 diff --git a/en/application-dev/tools/figures/cem-publish-event.png b/en/application-dev/tools/figures/cem-publish-event.png new file mode 100644 index 0000000000000000000000000000000000000000..f0ca7e73093f1be72c743bd7c08467f11e2a0e05 GIT binary patch literal 1319 zcmV+?1=#wDP)Bj00009a7bBm000ie z000ie0hKEb8vpeh4bY)!^&fNe21iVQ^K~#90?VYi4 zc!h1^m>ZqaU~hkE07T$6#1s5l900z2HVd{AF2KSP=3(Jsywm z@9(d#uh-Ytx3{-tS**3j82DaD|j!IaW4*k$s5F3>WlY6f!}uaZle0i z-aE_KQ;S#~cQgfHF8-daKu=aD6vxXh{+W?~RVJE_KC}#>vd^3_g*z-2Dl!f_Znk11P{*D{rtZFJAv_UGex*aH3(Vrw_-|_ z=E0*lL*`fQWbEclu|(C6^XD@+t^zW0VtwNDC90Z6&VY6}m#6mcd;M&w-^S_6Qheiz z1;z5k{Nk@N=^FV(<(H_-F6n_xX}8R^UQcDq7OApZMuBZ|#<9a$wC-93_20u5PNwnV zf{yvCbXY3un96)Wry03l9;w^Nc4$Oi_xf?g=E}#@%S0G2+**$90ixa9NF+{Ehv=mx zqrZRKB4-La96+CSugL6U-dQ15Z9${iSrcwl#ZZmqUYOQ5M!}ex8vk0x#bO{32)|O` z5X@H_mf3pwEfm{bS&*jxjBJO4>9A|H)bBYPZyPz-SBNF2@}#7R`Ge;1w=wkTK{dr% zx08u5#TLoiIllFO)vkHo)I~ej%5jfIv%@I}-a8aWhO7W{(Hc4Lisdik0i+rFoHMg7 zK!%~`UI55|_X5nyzTPV?S*^7!W#LNf@uE~i)4Dga+ulX*{oZN-$ed5g zOqlvpO)h8gc$QeMvbAc@mieScbn#e{FULsVscMvr^$|r?m7BM7QJ+Q8&6ae#SG8lR zUy12ry^4A&(VYFN&z$0{C~l8(H8GTE=SKUd@*ief-$!ioDd17gTA9JVr@a7~xZNE7 zee414t68U{W}34`#zsc*-esQeX=kC=ywr=m+gCHM`sJS3-!`wD1BA%AII{6mZdrgo(cCDCo0d}RYi*ZsCU{>&6fLW2fx47XB z0H?#;3ot8qFTkwu|MvpSN;vnfJKDw=cX6~v0HA}&8DLiMUVvE%z1JO< --json-path +``` + +```css +/* xxx.css */ +#container { + flex-direction: column; + width: 100%; + margin-top: 10px; +} +.text { + font-size: 50px; + font-weight: 500; + margin-left: 12px; +} +.listItem { + width: 100%; + height: 100px; + line-height: 60px; + border-bottom: 1px solid #DEDEDE; + font-size: 20px; +} +.btn{ + width: 280px; + font-size: 26px; + margin: 10px 0; +} +``` + +```js +// xxx.js +export default { + data: { + visible: true, + display: true, + title: "", + i: 4, + array: [ + {"value": "Item 0"}, + {"value": "Item 1"}, + {"value": "Item 2"}, + {"value": "Item 3"}, + ], + }, + toggleShow: function() { + this.array.push ({"value": "Item" + this.i }) + this.i++ + }, + toggleDisplay: function() { + this.display = !this.display + }, +} +``` + +![en-us-attributes](figures/en-us-attributes.gif) + +### Example 2 + +```html + +
+
+ hello world +
+
+ hello world +
+
+``` + +```css +/* xxx.css */ +.container { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + width: 100%; + height: 100%; +} +.text1{ + width: 90%; + height: 100px; + background-color: aqua; +} +.text2{ + width: 90%; + height: 100px; + background-color: blue; +} +``` + +![en-us_image1](figures/en-us_image1.png) -- GitLab From 93fedf040039cc546cd909e6d831aaceb74a5b66 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 12 Jan 2023 09:05:16 +0800 Subject: [PATCH 170/383] update doc Signed-off-by: shawn_he --- en/application-dev/connectivity/ipc-rpc-overview.md | 4 ++-- en/application-dev/connectivity/subscribe-remote-state.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/en/application-dev/connectivity/ipc-rpc-overview.md b/en/application-dev/connectivity/ipc-rpc-overview.md index 4da87ae638..2c1c7388a8 100755 --- a/en/application-dev/connectivity/ipc-rpc-overview.md +++ b/en/application-dev/connectivity/ipc-rpc-overview.md @@ -5,7 +5,7 @@ The inter-process communication (IPC) and remote procedure call (RPC) mechanisms are used to implement cross-process communication. The difference between them lies in that IPC uses the Binder driver to implement cross-process communication within a device, whereas RPC uses the DSoftBus driver to implement cross-process communication across devices. The reason why cross-process communication is needed is that each process has its own independent resources and memory space and one process is not allowed to access the resources and memory space of other processes. IPC and RPC usually use the client-server model, where the client (service requester, that is, the process that requests a service) obtains the proxy of the server (service provider, that is, the process that provides the service) and uses the proxy to read and write data to implement data communication across processes. More specifically, the client constructs a proxy object of the server. The proxy object has the same functions as the server. To access a certain API of the server, you only need to access the corresponding API in the proxy object. The proxy object sends the request to the server, and the server processes the received request and returns the processing result to the proxy object through the driver. Then, the proxy object forwards the processing result to the client. The server registers system abilities (SAs) with the system ability manager (SAMgr), which manages the SAs and provides APIs for clients. To communicate with a specific SA, the client must obtain the proxy of the SA from SAMgr. In the following sections, proxy represents the service requester, and stub represents the service provider. -![IPC&RPC communication mechanisms] (figures/IPC_RPC_communication.PNG) +![IPC&RPC communication mechanisms](figures/IPC_RPC_communication.PNG) ## Constraints @@ -14,7 +14,7 @@ The inter-process communication (IPC) and remote procedure call (RPC) mechanisms - Subscription to death notifications of anonymous stub objects (not registered with SAMgr) is prohibited in RPC. - During cross-process communication across processes, a proxy object cannot be passed back to the device that hosts the stub object pointed by the proxy object. That is, the proxy object pointing to the stub object of the remote device cannot be passed across processes twice on the local device. -## **Suggestion** +## **Recommendations** First, compile an API class and define message codes in the API class for both communication parties to identify operations. Unimplemented APIs are allowed in the API class because it must be inherited by both communication parties and its inheritance classes cannot be abstract classes. When inheriting the API class, both communication parties must implement the unimplemented APIs, so as to make sure that the inheritance classes are not abstract classes. diff --git a/en/application-dev/connectivity/subscribe-remote-state.md b/en/application-dev/connectivity/subscribe-remote-state.md index 8d23c1dd43..4168d4645a 100755 --- a/en/application-dev/connectivity/subscribe-remote-state.md +++ b/en/application-dev/connectivity/subscribe-remote-state.md @@ -7,7 +7,7 @@ IPC/RPC allows you to subscribe to the state changes of a remote stub object. Wh This subscription mechanism is applicable when the local proxy object needs to detect death of the process hosting the remote stub object or network detach of the device hosting the remote stub object. When the proxy detects death of the remote stub object, the proxy can clear local resources. Currently, IPC supports death notification for anonymous objects, but RPC does not. That is, you can only subscribe to death notifications of services that have been registered with SAMgr. -## **Development Using Native APIs** +## **Using Native APIs** | API| Return Value Type| Feature Description| | -------- | -------- | -------- | @@ -84,7 +84,7 @@ bool result = object->AddDeathRecipient(deathRecipient); // Add a recipient for result = object->RemoveDeathRecipient(deathRecipient); // Remove the recipient for death notifications. ``` -## **Development Using JS APIs** +## **Using JS APIs** | API | Return Value Type| Feature Description | | -------------------- | ---------- | ------------------------------------------------------------ | -- GitLab From 8cac15a5cc17b9d4a39ac96b9910d5f5733428b8 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Thu, 12 Jan 2023 09:11:22 +0800 Subject: [PATCH 171/383] update doc Signed-off-by: shawn_he --- en/application-dev/connectivity/ipc-rpc-overview.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/application-dev/connectivity/ipc-rpc-overview.md b/en/application-dev/connectivity/ipc-rpc-overview.md index 2c1c7388a8..29fdec791c 100755 --- a/en/application-dev/connectivity/ipc-rpc-overview.md +++ b/en/application-dev/connectivity/ipc-rpc-overview.md @@ -3,7 +3,11 @@ ## Basic Concepts -The inter-process communication (IPC) and remote procedure call (RPC) mechanisms are used to implement cross-process communication. The difference between them lies in that IPC uses the Binder driver to implement cross-process communication within a device, whereas RPC uses the DSoftBus driver to implement cross-process communication across devices. The reason why cross-process communication is needed is that each process has its own independent resources and memory space and one process is not allowed to access the resources and memory space of other processes. IPC and RPC usually use the client-server model, where the client (service requester, that is, the process that requests a service) obtains the proxy of the server (service provider, that is, the process that provides the service) and uses the proxy to read and write data to implement data communication across processes. More specifically, the client constructs a proxy object of the server. The proxy object has the same functions as the server. To access a certain API of the server, you only need to access the corresponding API in the proxy object. The proxy object sends the request to the server, and the server processes the received request and returns the processing result to the proxy object through the driver. Then, the proxy object forwards the processing result to the client. The server registers system abilities (SAs) with the system ability manager (SAMgr), which manages the SAs and provides APIs for clients. To communicate with a specific SA, the client must obtain the proxy of the SA from SAMgr. In the following sections, proxy represents the service requester, and stub represents the service provider. +The inter-process communication (IPC) and remote procedure call (RPC) mechanisms are used to implement cross-process communication. The difference between them lies in that IPC uses the Binder driver to implement cross-process communication within a device, whereas RPC uses the DSoftBus driver to implement cross-process communication across devices. + +The reason why cross-process communication is needed is that each process has its own independent resources and memory space and one process is not allowed to access the resources and memory space of other processes. IPC and RPC usually use the client-server model, where the client (service requester, that is, the process that requests a service) obtains the proxy of the server (service provider, that is, the process that provides the service) and uses the proxy to read and write data to implement data communication across processes. More specifically, the client constructs a proxy object of the server. The proxy object has the same functions as the server. To access a certain API of the server, you only need to access the corresponding API in the proxy object. The proxy object sends the request to the server, and the server processes the received request and returns the processing result to the proxy object through the driver. Then, the proxy object forwards the processing result to the client. The server registers system abilities (SAs) with the system ability manager (SAMgr), which manages the SAs and provides APIs for clients. To communicate with a specific SA, the client must obtain the proxy of the SA from SAMgr. + +In the following sections, proxy represents the service requester, and stub represents the service provider. ![IPC&RPC communication mechanisms](figures/IPC_RPC_communication.PNG) -- GitLab From 6da609876fb5b3f1f4df4388ee48fb80380811dc Mon Sep 17 00:00:00 2001 From: NEEN Date: Thu, 12 Jan 2023 01:45:27 +0000 Subject: [PATCH 172/383] =?UTF-8?q?update=20zh-cn/contribute/=E8=AE=B8?= =?UTF-8?q?=E5=8F=AF=E8=AF=81=E4=B8=8E=E7=89=B9=E6=AE=8A=E8=AE=B8=E5=8F=AF?= =?UTF-8?q?=E8=AF=81=E8=AF=84=E5=AE=A1=E6=8C=87=E5=AF=BC.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: NEEN --- ...57\201\350\257\204\345\256\241\346\214\207\345\257\274.md" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" "b/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" index 72c3d9231e..d37f6a6a83 100644 --- "a/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" +++ "b/zh-cn/contribute/\350\256\270\345\217\257\350\257\201\344\270\216\347\211\271\346\256\212\350\256\270\345\217\257\350\257\201\350\257\204\345\256\241\346\214\207\345\257\274.md" @@ -58,7 +58,7 @@ OpenHarmony项目还可能引入或依赖不同的第三方开源软件,这些 - [ISC](https://opensource.org/licenses/ISC) -- [ICU](http://source.icu-project.org/repos/icu/icu/trunk/LICENSE) +- ICU - [MIT License (MIT)](https://opensource.org/licenses/MIT) / X11 @@ -120,7 +120,7 @@ OpenHarmony项目还可能引入或依赖不同的第三方开源软件,这些 - [Amazon Software License (ASL)](https://aws.amazon.com/asl/) - Java SDK for Satori RTM license - [Redis Source Available License (RSAL)](https://redislabs.com/community/licenses/) -- [Booz Allen Public License](http://boozallen.github.io/licenses/bapl) +- Booz Allen Public License - [Confluent Community License Version 1.0](https://www.confluent.io/confluent-community-license/) - [Any license including the Commons Clause License Condition v1.0](https://commonsclause.com/) - Creative Commons Non-Commercial variants -- GitLab From 4d0b00679170886305fe0a3b20d0ac4d4e410751 Mon Sep 17 00:00:00 2001 From: onexiaomin Date: Mon, 9 Jan 2023 14:10:45 +0800 Subject: [PATCH 173/383] adapt to some changes Signed-off-by: onexiaomin --- .../reference/apis/js-apis-fileAccess.md | 405 ++++++++++++++++-- .../apis/js-apis-fileExtensionInfo.md | 2 +- 2 files changed, 381 insertions(+), 26 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md b/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md index 75d3376f37..a7dbee35c1 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md @@ -10,7 +10,7 @@ fileAccess模块是基于extension机制实现的一个对公共文件访问和 ## 导入模块 ```js -import fileAccess from '@ohos.data.fileAccess'; +import fileAccess from '@ohos.file.fileAccess'; ``` ## fileAccess.getFileAccessAbilityInfo @@ -38,7 +38,41 @@ getFileAccessAbilityInfo( ) : Promise<Array<Want>> wantInfos = await fileAccess.getFileAccessAbilityInfo(); console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos)); } catch (error) { - console.error("getFileAccessAbilityInfo failed, error " + error); + console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message); + } + } + ``` + +## fileAccess.getFileAccessAbilityInfo + +getFileAccessAbilityInfo(callback: AsyncCallback<Array<Want>>): void; + +以异步方法获取系统内extension配置为fileAcesss类型的所有Want信息。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER 和 ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | callback | AsyncCallback<Array<Want>> | 是 | 表示当前系统配置fileAccess的所有文件管理类服务 | + +**示例:** + + ```js + async getFileAccessAbilityInfo() { + try { + fileAccess.getFileAccessAbilityInfo(function (err, wantInfos) { + if (err) { + console.error("Failed to getFileAccessAbilityInfo in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("getFileAccessAbilityInfo data " + JSON.stringify(wantInfos)); + }); + } catch (error) { + console.error("getFileAccessAbilityInfo failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -85,7 +119,7 @@ createFileAccessHelper(context: Context, wants: Array<Want>) : FileAccessH if (!fileAccessHelper) console.error("createFileAccessHelper interface returns an undefined object"); } catch (error) { - console.error("createFileAccessHelper failed, error " + error); + console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -124,7 +158,7 @@ createFileAccessHelper(context: Context) : FileAccessHelper if (!fileAccesssHelperAllServer) console.error("createFileAccessHelper interface returns an undefined object"); } catch (error) { - console.error("createFileAccessHelper failed, error " + error); + console.error("createFileAccessHelper failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -168,7 +202,51 @@ getRoots( ) : Promise<RootIterator> rootinfos.push(result.value); } } catch (error) { - console.error("getRoots failed, error " + error); + console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); + } + } + ``` + +## FileAccessHelper.getRoots + +getRoots(callback:AsyncCallback<RootIterator>) : void; + +以异步方法获取helper对象连接的文件管理服务类的设备根节点信息。使用callback异步回调。 +callback带回迭代器对象RootIterator,然后通过[next](#rootiteratornext)方法返回[RootInfo](#rootinfo)。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | callback | AsyncCallback<RootIterator> | 是 | 根设备目录信息组成迭代器对象 | + +**示例:** + + ```js + async getRoots() { + let rootinfos = []; + let isDone = false; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.getRoots(function (err, rootIterator) { + if (err) { + console.error("Failed to getRoots in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + while (!isDone) { + let result = rootIterator.next(); + console.log("next result = " + JSON.stringify(result)); + isDone = result.done; + if (!isDone) + rootinfos.push(result.value); + } + }); + } catch (error) { + console.error("getRoots failed, errCode:" + error.code + ", errMessage:" + error.message); } } ``` @@ -200,7 +278,7 @@ listFile(filter?: Filter) : FileIterator ```js // rootinfos 从getRoots()获取 - // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; + // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; let rootInfo = rootinfos[0]; let fileInfos = []; let isDone = false; @@ -220,7 +298,7 @@ listFile(filter?: Filter) : FileIterator fileInfos.push(result.value); } } catch (error) { - console.log("listFile failed, error " + error); + console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -250,7 +328,7 @@ scanFile(filter?: Filter) : FileIterator ```js // rootInfos 从 getRoots()获取 - // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; + // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; let rootInfo = rootInfos[0]; let fileInfos = []; let isDone = false; @@ -270,7 +348,7 @@ scanFile(filter?: Filter) : FileIterator fileInfos.push(result.value); } } catch (error) { - console.error("scanFile failed, error " + error); + console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -300,7 +378,7 @@ listFile(filter?: Filter) : FileIterator ```js // fileInfoDir 表示某个目录信息 - // let filter = { suffix : [".txt", ".jpg", ".xlsx"] }; + // let filter = { suffix : [".txt", ".jpg", ".xlsx"] }; let fileInfoDir = fileInfos[0]; let subfileInfos = []; let isDone = false; @@ -320,7 +398,7 @@ listFile(filter?: Filter) : FileIterator subfileInfos.push(result.value); } } catch (error) { - console.error("listFile failed, error " + error); + console.error("listFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -351,7 +429,7 @@ scanFile(filter?: Filter) : FileIterator; ```js // fileInfoDir 表示某个目录信息 - // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; + // let filter = {suffix : [".txt", ".jpg", ".xlsx"]}; let fileInfoDir = fileInfos[0]; let subfileInfos = []; let isDone = false; @@ -371,7 +449,7 @@ scanFile(filter?: Filter) : FileIterator; subfileInfos.push(result.value); } } catch (error) { - console.error("scanFile-filter failed, error " + error); + console.error("scanFile failed, errCode:" + error.code + ", errMessage:" + error.message); } ``` @@ -390,7 +468,7 @@ createFile(uri: string, displayName: string) : Promise<string> | 参数名 | 类型 | 必填 | 说明 | | --- | --- | --- | -- | | uri | string | 是 | 表示需要创建文件的父目录的Uri | - | displayName | string | 是 | 待创建文件的名称,本地文件需要添加后缀,共享盘不要求| + | displayName | string | 是 | 待创建文件的名称,默认本地文件需要添加后缀 | **返回值:** @@ -414,9 +492,49 @@ createFile(uri: string, displayName: string) : Promise<string> console.error("createFile return undefined object"); return; } - console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + } catch (error) { + console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.createFile + +createFile(uri: string, displayName: string, callback: AsyncCallback<string>) : void; + +以异步方法创建文件到指定目录,返回新文件uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 表示需要创建文件的父目录的Uri | + | displayName | string | 是 | 待创建文件的名称,默认本地文件需要添加后缀 | + | callback | AsyncCallback<string> | 是 | 新创建的文件的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceUri表示Download目录,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceUri = "datashare:///media/file/6"; + let displayName = "file1" + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.createFile(sourceUri, displayName, function (err, fileUri) { + if (err) { + console.error("Failed to createFile in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("createFile sucess, fileUri: " + JSON.stringify(fileUri)); + }); } catch (error) { - console.error("createFile failed, error " + error); + console.error("createFile failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -459,9 +577,49 @@ mkDir(parentUri: string, displayName: string) : Promise<string> console.error("mkDir return undefined object"); return; } - console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); + console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); } catch (error) { - console.error("mkDir failed, error " + error); + console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.mkDir + +mkDir(parentUri: string, displayName: string, callback: AsyncCallback<string>) : void; + +以异步方法创建文件夹到指定目录,返回文件夹uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | parentUri | string | 是 | 表示需要创建文件夹的父目录的Uri | + | displayName | string | 是 | 待创建文件夹的名称| + | callback | AsyncCallback<string> | 是 | 新创建的文件夹的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceUri表示Download目录,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceUri = "datashare:///media/file/6"; + let dirName = "dirTest" + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.mkDir(sourceUri, dirName, function (err, dirUri) { + if (err) { + console.error("Failed to mkDir in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("mkDir sucess, dirUri: " + JSON.stringify(dirUri)); + }); + } catch (error) { + console.error("mkDir failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -499,7 +657,46 @@ openFile(uri: string, flags: OPENFLAGS) : Promise<number> // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let fd = await fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ); } catch (error) { - console.error("openFile failed, error " + error); + console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.openFile + +openFile(uri: string, flags: OPENFLAGS, callback: AsyncCallback<number>) : void; + +以异步方法打开文件,返回文件句柄。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 待打开文件的uri | + | flags | [OPENFLAGS](#openflags) | 是 | 文件打开的标志 | + | callback | AsyncCallback<number> | 是 | 文件句柄 | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码targetUri表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let targetUri = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.openFile(targetUri, fileAccess.OPENFLAGS.READ, function (err, fd) { + if (err) { + console.error("Failed to openFile in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("openFile sucess, fd: " + fd); + }); + } catch (error) { + console.error("openFile failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -538,7 +735,45 @@ delete(uri: string) : Promise<number> if (code != 0) console.error("delete failed, code " + code); } catch (error) { - console.error("delete failed, error " + error); + console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.delete + +delete(uri: string, callback: AsyncCallback<number>) : void; + +以异步方法删除文件(夹),返回错误码。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 待删除文件(夹)的uri | + | callback | AsyncCallback<number> | 是 | 删除操作的错误码 | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码targetUri表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let targetUri = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.delete(targetUri, function (err, code) { + if (err) { + console.error("Failed to delete in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("delete sucess, code: " + code); + }); + } catch (error) { + console.error("delete failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -576,9 +811,49 @@ move(sourceFile: string, destFile: string) : Promise<string> try { // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let fileUri = await fileAccessHelper.move(sourceFile, destFile); - console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); + console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); } catch (error) { - console.error("move failed, error " + error); + console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.move + +move(sourceFile: string, destFile: string, callback: AsyncCallback<string>) : void; + +以异步方法移动文件(夹),返回移动后文件(夹)的uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | sourceFile | string | 是 | 待移动的源文件(夹)的uri | + | destFile | string | 是 | 目标文件夹的uri | + | callback | AsyncCallback<string> | 是 | 新路径下的文件(夹)的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceFile destFile表示Download目录下文件或文件夹,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceFile = "datashare:///media/file/102"; + let destFile = "datashare:///media/file/101"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.move(sourceFile, destFile, function (err, fileUri) { + if (err) { + console.error("Failed to move in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("move sucess, fileUri: " + JSON.stringify(fileUri)); + }); + } catch (error) { + console.error("move failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -615,9 +890,48 @@ rename(uri: string, displayName: string) : Promise<string> try { // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 let DestDir = await fileAccessHelper.rename(sourceDir, "testDir"); - console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); + console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); + } catch (error) { + console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.rename + +rename(uri: string, displayName: string, callback: AsyncCallback<string>) : void; + +以异步方法重命名文件(夹),返回重命名后的文件(夹)的Uri。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | uri | string | 是 | 源文件(夹)的uri | + | displayName | string | 是 | 文件(夹)名,支持带后缀 | + | callback | AsyncCallback<string> | 是 | 重命名后的文件(夹)的uri | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceDir表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceDir = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.rename(sourceDir, "testDir", function (err, DestDir) { + if (err) { + console.error("Failed to rename in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + console.log("rename sucess, DestDir: " + JSON.stringify(DestDir)); + }); } catch (error) { - console.error("rename failed, error " + error); + console.error("rename failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` @@ -658,7 +972,48 @@ access(sourceFileUri: string) : Promise<boolean> else console.log("sourceDir does not exist"); } catch (error) { - console.error("rename failed, error " + error); + console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message); + }; + ``` + +## FileAccessHelper.access + +access(sourceFileUri: string, callback: AsyncCallback<boolean>) : void; + +以异步方法判断文件(夹)是否存在。使用callback异步回调。 + +**系统能力**:SystemCapability.FileManagement.UserFileService。 + +**需要权限**:ohos.permission.FILE_ACCESS_MANAGER + +**参数:** + + | 参数名 | 类型 | 必填 | 说明 | + | --- | --- | --- | -- | + | sourceFileUri | string | 是 | 文件(夹)的uri | + | callback | AsyncCallback<boolean> | 是 | 文件(夹)是否存在 | + +**示例:** + + ```js + // 以媒体库uri为例 + // 示例代码sourceDir表示Download目录下文件,该uri是对应的fileInfo中uri + // 开发者应根据自己实际获取的uri进行开发 + let sourceDir = "datashare:///media/file/100"; + try { + // fileAccessHelper 参考 fileAccess.createFileAccessHelper 示例代码获取 + fileAccessHelper.access(sourceDir, function (err, existJudgment) { + if (err) { + console.error("Failed to access in async, errCode:" + err.code + ", errMessage:" + err.message); + return; + } + if (existJudgment) + console.log("sourceDir exists"); + else + console.log("sourceDir does not exist"); + }); + } catch (error) { + console.error("access failed, errCode:" + error.code + ", errMessage:" + error.message); }; ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md b/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md index b8f4a30ab4..bc1e98d8d6 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md @@ -10,7 +10,7 @@ ## 导入模块 ```js -import fileExtensionInfo from '@ohos.fileExtensionInfo'; +import fileExtensionInfo from '@ohos.file.fileExtensionInfo'; ``` ## fileExtensionInfo.DeviceType -- GitLab From cf1fd361bd2d7f191509f7c6c5729b52e7f21677 Mon Sep 17 00:00:00 2001 From: Austin Date: Thu, 12 Jan 2023 02:19:24 +0000 Subject: [PATCH 174/383] update en/device-dev/subsystems/subsys-app-privilege-config-guide.md. Signed-off-by: Austin --- en/device-dev/subsystems/subsys-app-privilege-config-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/device-dev/subsystems/subsys-app-privilege-config-guide.md b/en/device-dev/subsystems/subsys-app-privilege-config-guide.md index c795eb7d77..665652b23e 100644 --- a/en/device-dev/subsystems/subsys-app-privilege-config-guide.md +++ b/en/device-dev/subsystems/subsys-app-privilege-config-guide.md @@ -24,7 +24,7 @@ General application privileges are privileges available to applications on all t ### Configuration -1. In the [HarmonyAppProvision file](https://gitee.com/openharmony/docs/blob/master/en/application-dev/quick-start/app-provision-structure.md), configure the general privileges in the **app-privilege-capabilities** field. +1. In the [HarmonyAppProvision file](../../application-dev/security/app-provision-structure.md), configure the general privileges in the **app-privilege-capabilities** field. 2. Use the signing tool hapsigner to sign the HarmonyAppProvision file and generate a **.p7b** file. 3. Use the **.p7b** file to sign the HAP. -- GitLab From e42eb246ee4612e4642359a46cfad7e9de04fe69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Thu, 12 Jan 2023 02:19:26 +0000 Subject: [PATCH 175/383] modify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../task-management/workscheduler-extensionability.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/task-management/workscheduler-extensionability.md b/zh-cn/application-dev/task-management/workscheduler-extensionability.md index c6420e2bd6..97367f1b99 100644 --- a/zh-cn/application-dev/task-management/workscheduler-extensionability.md +++ b/zh-cn/application-dev/task-management/workscheduler-extensionability.md @@ -38,7 +38,7 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 1. 在工程根目录新建Module,模板选择为Ohos Library,命名为library。 -2. 在library对应的ets目录(./library/src/main/ets)下,新建eTS文件并命名为workAbility.ets,用于实现延迟任务回调接口。 +2. 在library对应的ets目录(./library/src/main/ets)下,新建ArkTS文件并命名为workAbility.ets,用于实现延迟任务回调接口。 导入模块。 @@ -78,7 +78,7 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 ``` 3. 在工程entry Module对应的ets目录(./entry/src/main/ets)下,新建一个目录并命名为workAbility。 -在workAbility目录下,新建一个eTS文件并命名为WorkTest.ets,实现延迟任务回调接口。 +在workAbility目录下,新建一个ArkTS文件并命名为WorkTest.ets,实现延迟任务回调接口。 导入模块。 @@ -104,7 +104,7 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 ### 实现延迟任务调度能力 -1. 在library对应的ets目录(./library/src/main/ets)下,新建ts文件并命名为DelayWork.ts,用于实现延迟任务API。 +1. 在library对应的ets目录(./library/src/main/ets)下,新建TypeScript文件并命名为DelayWork.ts,用于实现延迟任务API。 导入模块。 -- GitLab From 6f611cb8a7601e17f8678f283a49a2f39bee85ee Mon Sep 17 00:00:00 2001 From: x30034819 Date: Thu, 12 Jan 2023 10:50:42 +0800 Subject: [PATCH 176/383] avplayer avrecorder Signed-off-by: x30034819 Signed-off-by: x30034819 Change-Id: I390237a81e20ddd1e6d977ea24e0d17fe977fa78 --- .../reference/apis/js-apis-media.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index ea5d322851..d35a9dd3f9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -2490,18 +2490,18 @@ AVRecorder.off('error'); **系统能力:** SystemCapability.Multimedia.Media.AVRecorder -| 名称 | 类型 | 必填 | 说明 | -| ---------------- | -------------------------------------------- | ---- | -------------------------------------- | -| audioBitrate | number | 否 | 音频编码比特率,选择音频录制时必填。 | -| audioChannels | number | 否 | 音频采集声道数,选择音频录制时必填。 | -| audioCodec | [CodecMimeType](#codecmimetype8) | 否 | 音频编码格式,选择音频录制时必填。 | -| audioSampleRate | number | 否 | 音频采样率,选择音频录制时必填。 | -| fileFormat | [ContainerFormatType](#containerformattype8) | 是 | 文件的容器格式,必要参数 | -| videoBitrate | number | 否 | 音视频编码比特率,选择视频录制时必填。 | -| videoCodec | [CodecMimeType](#codecmimetype8) | 否 | 音视频编码格式,选择视频录制时必填。 | -| videoFrameWidth | number | 否 | 录制视频帧的宽,选择视频录制时必填。 | -| videoFrameHeight | number | 否 | 录制视频帧的高,选择视频录制时必填。 | -| videoFrameRate | number | 否 | 录制视频帧率,选择视频录制时必填。 | +| 名称 | 类型 | 必填 | 说明 | +| ---------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | +| audioBitrate | number | 否 | 音频编码比特率,选择音频录制时必填。 | +| audioChannels | number | 否 | 音频采集声道数,选择音频录制时必填。 | +| audioCodec | [CodecMimeType](#codecmimetype8) | 否 | 音频编码格式,选择音频录制时必填。当前仅支持AUDIO_AAC。 | +| audioSampleRate | number | 否 | 音频采样率,选择音频录制时必填。 | +| fileFormat | [ContainerFormatType](#containerformattype8) | 是 | 文件的容器格式,必要参数。 | +| videoBitrate | number | 否 | 视频编码比特率,选择视频录制时必填。 | +| videoCodec | [CodecMimeType](#codecmimetype8) | 否 | 视频编码格式,选择视频录制时必填。当前仅支持VIDEO_AVC和VIDEO_MPEG4。 | +| videoFrameWidth | number | 否 | 视频帧的宽,选择视频录制时必填。 | +| videoFrameHeight | number | 否 | 视频帧的高,选择视频录制时必填。 | +| videoFrameRate | number | 否 | 视频帧率,选择视频录制时必填。 | ## AudioSourceType9+ -- GitLab From 2d3135d4a7d7d3ce6437cde3b57e4dee33c105a2 Mon Sep 17 00:00:00 2001 From: TonyWang222 Date: Thu, 12 Jan 2023 11:03:05 +0800 Subject: [PATCH 177/383] change converter link Change-Id: Icb3ea4627429623a8803bb4dafef90fbd0e63397 Signed-off-by: TonyWang222 --- en/application-dev/napi/mindspore-lite-guidelines.md | 2 +- zh-cn/application-dev/napi/mindspore-lite-guidelines.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/en/application-dev/napi/mindspore-lite-guidelines.md b/en/application-dev/napi/mindspore-lite-guidelines.md index 47ede47557..591e3a4419 100644 --- a/en/application-dev/napi/mindspore-lite-guidelines.md +++ b/en/application-dev/napi/mindspore-lite-guidelines.md @@ -61,7 +61,7 @@ The development process consists of the following main steps: The required model can be downloaded directly or obtained using the model conversion tool. - If the downloaded model is in the `.ms` format, you can use it directly for inference. The following uses the **mobilenetv2.ms** model as an example. - - If the downloaded model uses a third-party framework, such as TensorFlow, TensorFlow Lite, Caffe, or ONNX, you can use the [model conversion tool](https://www.mindspore.cn/lite/docs/en/r1.5/use/benchmark_tool.html) to convert it to the `.ms` format. + - If the downloaded model uses a third-party framework, such as TensorFlow, TensorFlow Lite, Caffe, or ONNX, you can use the [model conversion tool](https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/downloads.html#id1) to convert it to the `.ms` format. 2. Create a context, and set parameters such as the number of runtime threads and device type. diff --git a/zh-cn/application-dev/napi/mindspore-lite-guidelines.md b/zh-cn/application-dev/napi/mindspore-lite-guidelines.md index 378b05c811..f2ad48c284 100644 --- a/zh-cn/application-dev/napi/mindspore-lite-guidelines.md +++ b/zh-cn/application-dev/napi/mindspore-lite-guidelines.md @@ -85,7 +85,7 @@ int GenerateInputDataWithRandom(OH_AI_TensorHandleArray inputs) { 需要的模型可以直接下载,也可以通过模型转换工具获得。 - 下载模型的格式若为`.ms`,则可以直接使用。本文以mobilenetv2.ms为例。 - - 如果是第三方框架的模型,比如 TensorFlow、TensorFlow Lite、Caffe、ONNX等,可以使用[模型转换工具](https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/benchmark_tool.html)转换为`.ms`格式的模型文件。 + - 如果是第三方框架的模型,比如 TensorFlow、TensorFlow Lite、Caffe、ONNX等,可以使用[模型转换工具](https://www.mindspore.cn/lite/docs/zh-CN/r1.5/use/downloads.html#id1)转换为`.ms`格式的模型文件。 2. 创建上下文,设置线程数、设备类型等参数。 -- GitLab From bb87a4767b4b66cfe62d6d7c0a2499aba2b7e5f2 Mon Sep 17 00:00:00 2001 From: LiAn Date: Thu, 12 Jan 2023 03:41:14 +0000 Subject: [PATCH 178/383] update zh-cn/application-dev/reference/native-apis/image.md. Signed-off-by: LiAn Signed-off-by: LiAn --- zh-cn/application-dev/reference/native-apis/image.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/zh-cn/application-dev/reference/native-apis/image.md b/zh-cn/application-dev/reference/native-apis/image.md index 2405cfdd8b..f455a9da6b 100644 --- a/zh-cn/application-dev/reference/native-apis/image.md +++ b/zh-cn/application-dev/reference/native-apis/image.md @@ -66,9 +66,6 @@ anonymous enum | 枚举值 | 描述 | | -------- | -------- | -| OH_NATIVEXCOMPONENT_RESULT_SUCCESS | 成功结果。 | -| OH_NATIVEXCOMPONENT_RESULT_FAILED | 失败结果。 | -| OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER | 无效参数。 | | OHOS_IMAGE_RESULT_SUCCESS | 成功的结果。 | | OHOS_IMAGE_RESULT_BAD_PARAMETER | 无效值。 | -- GitLab From f2a43b770b9a6561a0b6577761d516725156bbe4 Mon Sep 17 00:00:00 2001 From: mali Date: Thu, 12 Jan 2023 11:41:41 +0800 Subject: [PATCH 179/383] Camera development and interface document update Signed-off-by: mali --- zh-cn/application-dev/media/camera.md | 196 +- .../reference/apis/js-apis-camera.md | 2309 ++++------------- 2 files changed, 578 insertions(+), 1927 deletions(-) diff --git a/zh-cn/application-dev/media/camera.md b/zh-cn/application-dev/media/camera.md index 0fde66eabe..5925dcefa3 100644 --- a/zh-cn/application-dev/media/camera.md +++ b/zh-cn/application-dev/media/camera.md @@ -8,7 +8,7 @@ OpenHarmony相机模块支持相机业务的开发,开发者可以通过已开 - **相机静态能力**:用于描述相机的固有能力的一系列参数,比如朝向、支持的分辨率等信息。 - **物理相机**:物理相机就是独立的实体摄像头设备。物理相机ID是用于标志每个物理摄像头的唯一字串。 -- **异步操作**:为保证UI线程不被阻塞,大部分Camera调用都是异步的。对于每个API均提供了callback函数和Promise函数。 +- **异步操作**:为保证UI线程不被阻塞,部分Camera接口采用异步调用方式。异步方式API均提供了callback函数和Promise函数。 ## 开发步骤 @@ -60,36 +60,46 @@ import media from '@ohos.multimedia.media' // 创建CameraManager对象 context: any = getContext(this) -let cameraManager = await camera.getCameraManager(this.context) -if (!cameraManager) { +let cameraManager +try { + cameraManager = camera.getCameraManager(this.context); +} catch (error) { console.error('Failed to get the CameraManager instance'); } // 获取相机列表 -let cameraArray = await cameraManager.getSupportedCameras() -if (!cameraArray) { - console.error('Failed to get the cameras'); +let cameraArray +try { + cameraArray = cameraManager.getSupportedCameras(); +} catch (error) { + console.error('Failed to get the cameras errorCode = ' + error.code); } for (let index = 0; index < cameraArray.length; index++) { - console.log('cameraId : ' + cameraArray[index].cameraId) // 获取相机ID - console.log('cameraPosition : ' + cameraArray[index].cameraPosition) // 获取相机位置 - console.log('cameraType : ' + cameraArray[index].cameraType) // 获取相机类型 - console.log('connectionType : ' + cameraArray[index].connectionType) // 获取相机连接类型 + console.log('cameraId : ' + cameraArray[index].cameraId); // 获取相机ID + console.log('cameraPosition : ' + cameraArray[index].cameraPosition); // 获取相机位置 + console.log('cameraType : ' + cameraArray[index].cameraType); // 获取相机类型 + console.log('connectionType : ' + cameraArray[index].connectionType); // 获取相机连接类型 } // 创建相机输入流 -let cameraInput = await cameraManager.createCameraInput(cameraArray[0]) +let cameraInput +try { + cameraInput = cameraManager.createCameraInput(cameraArray[0]); +} catch () { + console.error('Failed to createCameraInput errorCode = ' + error.code); +} // 打开相机 await cameraInput.open(); // 获取相机设备支持的输出流能力 -let cameraOutputCap = await cameraManager.getSupportedOutputCapability(cameraArray[0]); -if (!cameraOutputCap) { - console.error("outputCapability outputCapability == null || undefined") -} else { +let cameraOutputCap +try { + cameraOutputCap = cameraManager.getSupportedOutputCapability(cameraArray[0]); console.info("outputCapability: " + JSON.stringify(cameraOutputCap)); +} catch (error) { + console.error("outputCapability outputCapability == null || undefined") } let previewProfilesArray = cameraOutputCap.GetPreviewProfiles(); @@ -113,8 +123,10 @@ if (!metadataObjectTypesArray) { } // 创建预览输出流,其中参数 surfaceId 参考下面 XComponent 组件,预览流为XComponent组件提供的surface -let previewOutput = await cameraManager.createPreviewOutput(previewProfilesArray[0], surfaceId) -if (!previewOutput) { +let previewOutput +try { + previewOutput = cameraManager.createPreviewOutput(previewProfilesArray[0], surfaceId) +} catch (error) { console.error("Failed to create the PreviewOutput instance.") } @@ -123,10 +135,11 @@ let imageReceiver = await image.createImageReceiver(1920, 1080, 4, 8) // 获取照片显示SurfaceId let photoSurfaceId = await imageReceiver.getReceivingSurfaceId() // 创建拍照输出流 -let photoOutput = await cameraManager.createPhotoOutput(photoProfilesArray[0], photoSurfaceId) -if (!photoOutput) { - console.error('Failed to create the PhotoOutput instance.'); - return; +let photoOutput +try { + photoOutput = cameraManager.createPhotoOutput(photoProfilesArray[0], photoSurfaceId) +} catch (error) { + console.error('Failed to createPhotoOutput errorCode = ' + error.code); } // 创建视频录制的参数 @@ -169,10 +182,11 @@ videoRecorder.getInputSurface().then((id) => { }) // 创建VideoOutput对象 -let videoOutput = await cameraManager.createVideoOutput(videoProfilesArray[0], videoSurfaceId) -if (!videoOutput) { - console.error('Failed to create the videoOutput instance.'); - return; +let videoOutput +try { + videoOutput = cameraManager.createVideoOutput(videoProfilesArray[0], videoSurfaceId) +} catch (error) { + console.error('Failed to create the videoOutput instance. errorCode = ' + error.code); } ``` 预览流、拍照流和录像流的输入均需要提前创建surface,其中预览流为XComponent组件提供的surface,拍照流为ImageReceiver提供的surface,录像流为VideoRecorder的surface。 @@ -247,24 +261,40 @@ function getVideoRecorderSurface() { ```typescript //创建会话 -let captureSession = await camera.createCaptureSession() -if (!captureSession) { - console.error('Failed to create the CaptureSession instance.'); - return; +let captureSession +try { + captureSession = cameraManager.createCaptureSession() +} catch (error) { + console.error('Failed to create the CaptureSession instance. errorCode = ' + error.code); } -console.log('Callback returned with the CaptureSession instance.' + session); // 开始配置会话 -await captureSession.beginConfig() +try { + captureSession.beginConfig() +} catch (error) { + console.error('Failed to beginConfig. errorCode = ' + error.code); +} // 向会话中添加相机输入流 -await captureSession.addInput(cameraInput) +try { + captureSession.addInput(cameraInput) +} catch (error) { + console.error('Failed to addInput. errorCode = ' + error.code); +} // 向会话中添加预览输入流 -await captureSession.addOutput(previewOutput) +try { + captureSession.addOutput(previewOutput) +} catch (error) { + console.error('Failed to addOutput(previewOutput). errorCode = ' + error.code); +} // 向会话中添加拍照输出流 -await captureSession.addOutput(photoOutput) +try { + captureSession.addOutput(photoOutput) +} catch (error) { + console.error('Failed to addOutput(photoOutput). errorCode = ' + error.code); +} // 提交会话配置 await captureSession.commitConfig() @@ -282,13 +312,25 @@ await captureSession.start().then(() => { await captureSession.stop() // 开始配置会话 -await captureSession.beginConfig() +try { + captureSession.beginConfig() +} catch (error) { + console.error('Failed to beginConfig. errorCode = ' + error.code); +} // 从会话中移除拍照输出流 -await captureSession.removeOutput(photoOutput) +try { + captureSession.removeOutput(photoOutput) +} catch (error) { + console.error('Failed to removeOutput(photoOutput). errorCode = ' + error.code); +} // 向会话中添加录像输出流 -await captureSession.addOutput(videoOutput) +try { + captureSession.addOutput(videoOutput) +} catch (error) { + console.error('Failed to addOutput(videoOutput). errorCode = ' + error.code); +} // 提交会话配置 await captureSession.commitConfig() @@ -303,71 +345,65 @@ await captureSession.start().then(() => { ```typescript // 判断设备是否支持闪光灯 -let flashStatus = await captureSession.hasFlash() -if (!flashStatus) { - console.error('Failed to check whether the device has the flash mode.'); +let flashStatus +try { + flashStatus = captureSession.hasFlash() +} catch (error) { + console.error('Failed to hasFlash. errorCode = ' + error.code); } console.log('Promise returned with the flash light support status:' + flashStatus); if (flashStatus) { // 判断是否支持自动闪光灯模式 let flashModeStatus - captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO, async (err, status) => { - if (err) { - console.error('Failed to check whether the flash mode is supported. ${err.message}'); - return; - } - console.log('Callback returned with the flash mode support status: ' + status); + try { + let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO) flashModeStatus = status - }) + } catch (error) { + console.error('Failed to check whether the flash mode is supported. errorCode = ' + error.code); + } if(flashModeStatus) { // 设置自动闪光灯模式 - captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO, async (err) => { - if (err) { - console.error('Failed to set the flash mode ${err.message}'); - return; - } - console.log('Callback returned with the successful execution of setFlashMode.'); - }) + try { + captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO) + } catch (error) { + console.error('Failed to set the flash mode. errorCode = ' + error.code); + } } } // 判断是否支持连续自动变焦模式 let focusModeStatus -captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_CONTINUOUS_AUTO, async (err, status) => { - if (err) { - console.error('Failed to check whether the focus mode is supported. ${err.message}'); - return; - } - console.log('Callback returned with the focus mode support status: ' + status); +try { + let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_CONTINUOUS_AUTO) focusModeStatus = status -}) +} catch (error) { + console.error('Failed to check whether the focus mode is supported. errorCode = ' + error.code); +} + if (focusModeStatus) { // 设置连续自动变焦模式 - captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_CONTINUOUS_AUTO, async (err) => { - if (err) { - console.error('Failed to set the focus mode ${err.message}'); - return; - } - console.log('Callback returned with the successful execution of setFocusMode.'); - }) + try { + captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_CONTINUOUS_AUTO) + } catch (error) { + console.error('Failed to set the focus mode. errorCode = ' + error.code); + } } // 获取相机支持的可变焦距比范围 -let zoomRatioRange = await captureSession.getZoomRatioRange() -if (!zoomRatioRange) { - console.error('Failed to get the zoom ratio range.'); - return; +let zoomRatioRange +try { + zoomRatioRange = captureSession.getZoomRatioRange() +} catch (error) { + console.error('Failed to get the zoom ratio range. errorCode = ' + error.code); } // 设置可变焦距比 -captureSession.setZoomRatio(zoomRatioRange[0], async (err) => { - if (err) { - console.error('Failed to set the zoom ratio value ${err.message}'); - return; - } - console.log('Callback returned with the successful execution of setZoomRatio.'); -}) +try { + captureSession.setZoomRatio(zoomRatioRange[0]) +} catch (error) { + console.error('Failed to set the zoom ratio value. errorCode = ' + error.code); +} ``` #### 拍照 @@ -428,7 +464,7 @@ videoOutput.stop((err) => { captureSession.stop() // 释放相机输入流 -cameraInput.release() +cameraInput.close() // 释放预览输出流 previewOutput.release() diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md index a00eae2fba..155e2077a5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-camera.md +++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md @@ -12,9 +12,9 @@ import camera from '@ohos.multimedia.camera'; ## camera.getCameraManager -getCameraManager(context: Context, callback: AsyncCallback): void +getCameraManager(context: Context): CameraManager -获取相机管理器实例,通过注册回调函数获取结果。 +获取相机管理器实例,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -23,46 +23,17 @@ getCameraManager(context: Context, callback: AsyncCallback): voi | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------- | ---- | ---------------------------- | | context | [Context](js-apis-inner-app-context.md) | 是 | 应用上下文。 | -| callback | AsyncCallback<[CameraManager](#cameramanager)\> | 是 | 回调函数,用于获取相机管理器实例。 | - -**示例:** - -```js -camera.getCameraManager(context, (err, cameraManager) => { - if (err) { - console.error(`Failed to get the CameraManager instance ${err.message}`); - return; - } - console.log('Callback returned with the CameraManager instance'); -}); -``` - -## camera.getCameraManager - -getCameraManager(context: Context): Promise - -获取相机管理器实例,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------- | ------- | ---- | ------------ | -| context | [Context](js-apis-inner-app-context.md) | 是 | 应用上下文。 | **返回值:** -| 类型 | 说明 | -| ----------------------------------------- | ----------------------------------- | -| Promise<[CameraManager](#cameramanager)\> | 使用Promise的方式获取一个相机管理器实例。 | +| 类型 | 说明 | +| ----------------------------------------------- | ---------------------------- | +| [CameraManager](#cameramanager) | 相机管理器。 | **示例:** ```js -camera.getCameraManager(context).then((cameraManager) => { - console.log('Promise returned with the CameraManager instance.'); -}) +let cameraManager = camera.getCameraManager(context); ``` ## CameraStatus @@ -71,12 +42,12 @@ camera.getCameraManager(context).then((cameraManager) => { **系统能力:** SystemCapability.Multimedia.Camera.Core -| 名称 | 值 | 说明 | -| ------------------------- | ---- | ------------ | +| 名称 | 值 | 说明 | +| ------------------------- | ---- | ------------ | | CAMERA_STATUS_APPEAR | 0 | 新的相机出现。 | -| CAMERA_STATUS_DISAPPEAR | 1 | 相机被移除。 | -| CAMERA_STATUS_AVAILABLE | 2 | 相机可用。 | -| CAMERA_STATUS_UNAVAILABLE | 3 | 相机不可用。 | +| CAMERA_STATUS_DISAPPEAR | 1 | 相机被移除。 | +| CAMERA_STATUS_AVAILABLE | 2 | 相机可用。 | +| CAMERA_STATUS_UNAVAILABLE | 3 | 相机不可用。 | ## Profile @@ -123,64 +94,58 @@ camera.getCameraManager(context).then((cameraManager) => { | videoProfiles | Array<[VideoProfile](#videoprofile)\> | 是 | 支持的录像配置信息。 | | supportedMetadataObjectTypes | Array<[MetadataObjectType](#metadataobjecttype)\> | 是 | 支持的metadata流类型信息。| -## CameraManager - -相机管理器类,使用前需要通过getCameraManager获取相机管理实例。 - -### getSupportedCameras - -getSupportedCameras(callback: AsyncCallback\>): void +## CameraErrorCode -获取支持指定的相机设备对象,通过注册回调函数获取结果。 +相机错误码。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------- | ---- | ------------------------------- | -| callback | AsyncCallback\> | 是 | 使用callback方式获取支持的相机列表。 | +| 名称 | 值 | 说明 | +| ------------------------- | ---- | ------------ | +| INVALID_ARGUMENT | 7400101 | 参数缺失或者参数类型不对。 | +| OPERATION_NOT_ALLOWED | 7400102 | 操作流程不对,不允许。 | +| SESSION_NOT_CONFIG | 7400103 | session 未配置返回。 | +| SESSION_NOT_RUNNING | 7400104 | session 未运行返回。 | +| SESSION_CONFIG_LOCKED | 7400105 | session 配置已锁定返回。 | +| DEVICE_SETTING_LOCKED | 7400106 | 设备设置已锁定返回。 | +| CONFILICT_CAMERA | 7400107 | 设备重复打开返回。 | +| DEVICE_DISABLED | 7400108 | 安全原因摄像头被禁用。 | +| SERVICE_FATAL_ERROR | 7400201 | 相机服务错误返回。 | -**示例:** +## CameraManager -```js -cameraManager.getSupportedCameras((err, cameras) => { - if (err) { - console.error(`Failed to get the cameras. ${err.message}`); - return; - } - console.log(`Callback returned with an array of supported cameras: ${cameras.length}`); -}) -``` +相机管理器类,使用前需要通过getCameraManager获取相机管理实例。 ### getSupportedCameras -getSupportedCameras(): Promise\> +getSupportedCameras(): Array -获取支持指定的相机设备对象,通过Promise获取结果。 +获取支持指定的相机设备对象,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 类型 | 说明 | -| ----------------------------------------------- | ------------------------- | -| Promise\> | 使用promise获取支持相机列表。 | - +| 类型 | 说明 | +| ----------------------------------------------- | ---------------------------- | +| Array<[CameraDevice](#cameradevice)> | 相机设备列表。 | **示例:** ```js -cameraManager.getSupportedCameras().then((cameras) => { - console.log(`Promise returned with an array of supported cameras: ${cameras.length}`); -}) +let cameras; +try{ + cameras = cameraManager.getSupportedCameras(); +} catch (error) { + console.log(error.code); +} ``` ### getSupportedOutputCapability -getSupportedOutputCapability(camera:CameraDevice, callback: AsyncCallback): void +getSupportedOutputCapability(cameraDevice:CameraDevice): CameraOutputCapability -查询相机设备在模式下支持的输出能力,通过注册回调函数获取结果。 +查询相机设备在模式下支持的输出能力,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -189,52 +154,23 @@ getSupportedOutputCapability(camera:CameraDevice, callback: AsyncCallback | 是 | 使用callback方式获取相机输出能力。 | - -**示例:** - -```js -cameraManager.getSupportedCameras().then((cameras) => { - let cameraDevice = cameras[0]; - cameraManager.getSupportedOutputCapability(cameraDevice, (err, CameraOutputCapability) => { - if (err) { - console.error(`Failed to get the outputCapability. ${err.message}`); - return; - } - console.log('Callback returned with an array of supported outputCapability'); - }) -}) -``` - -### getSupportedOutputCapability - -getSupportedOutputCapability(camera:CameraDevice): Promise - -查询相机设备在模式下支持的输出能力,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------- | ---- | ---------- | -| cameradevice | [CameraDevice](#cameradevice) | 是 | 相机设备,通过 getSupportedCameras 接口获取 | **返回值:** -| 类型 | 说明 | -| -------------------------------------------------------------- | ----------------------------- | -| Promise<[CameraOutputCapability](#cameraoutputcapability)\> | 使用Promise的方式获取结果,返回相机输出能力。 | +| 类型 | 说明 | +| ----------------------------------------------- | ---------------------------- | +| [CameraOutputCapability](#cameraoutputcapability) | 相机输出能力。 | **示例:** ```js -cameraManager.getSupportedCameras().then((cameras) => { - let cameraDevice = cameras[0]; - cameraManager.getSupportedOutputCapability(cameraDevice).then((cameraoutputcapability) => { - console.log('Promise returned with an array of supported outputCapability'); - }) -}) +let cameraDevice = cameras[0]; +let cameraOutputCapability; +try{ + cameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice); +} catch (error) { + console.log(error.code); +} ``` ### isCameraMuted @@ -306,9 +242,9 @@ cameraManager.muteCamera(mute); ### createCameraInput -createCameraInput(camera: CameraDevice, callback: AsyncCallback): void +createCameraInput(camera: CameraDevice): CameraInput -使用CameraDevice对象异步创建CameraInput实例,通过注册回调函数获取结果。 +使用CameraDevice对象创建CameraInput实例,同步返回结果。 **需要权限:** ohos.permission.CAMERA @@ -319,57 +255,30 @@ createCameraInput(camera: CameraDevice, callback: AsyncCallback): | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------- | ---- | --------------------------------- | | cameraDevice | [CameraDevice](#cameradevice) | 是 | CameraDevice对象,通过 getSupportedCameras 接口获取 | -| callback | AsyncCallback<[CameraInput](#camerainput)\> | 是 | 回调函数,用于获取CameraInput实例。 | - -**示例:** - -```js -let cameraDevice = cameras[0]; -cameraManager.createCameraInput(cameraDevice, (err, cameraInput) => { - if (err) { - console.error(`Failed to create the CameraInput instance. ${err.message}`); - return; - } - console.log('Callback returned with the CameraInput instance.'); -}) -``` - -### createCameraInput - -createCameraInput(cameraDevice: CameraDevice): Promise - -使用CameraDevice对象异步创建CameraInput实例,通过Promise获取结果。 - -**需要权限:** ohos.permission.CAMERA - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------- | ---- | ---------- | -| cameraDevice | [CameraDevice](#cameradevice) | 是 | CameraDevice对象,通过 getSupportedCameras 接口获取 | **返回值:** -| 类型 | 说明 | -| ------------------------------------- | ------------------------------------ | -| Promise<[CameraInput](#camerainput)\> | 使用Promise的方式获取CameraInput的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraInput](#camerainput) | CameraInput实例。 | **示例:** ```js let cameraDevice = cameras[0]; -cameraManager.createCameraInput(cameraDevice).then((cameraInput) => { - console.log('Promise returned with the CameraInput instance'); -}) +let cameraInput; +try { + cameraInput = cameraManager.createCameraInput(cameraDevice); +} catch (error) { + console.log(error.code); +} ``` ### createCameraInput -createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCallback): void +createCameraInput(position: CameraPosition, type: CameraType): CameraInput -根据相机位置和类型创建CameraInput实例,通过注册回调函数获取结果。 +根据相机位置和类型创建CameraInput实例,同步返回结果。 **需要权限:** ohos.permission.CAMERA @@ -381,45 +290,12 @@ createCameraInput(position: CameraPosition, type: CameraType, callback: AsyncCal | -------- | ------------------------------------------- | ---- | --------------------------------- | | position | [CameraPosition](#cameraposition) | 是 | 相机位置,通过 getSupportedCameras 接口获取设备,然后获取设备位置信息 | | type | [CameraType](#cameratype) | 是 | 相机类型,通过 getSupportedCameras 接口获取设备,然后获取设备类型信息 | -| callback | AsyncCallback<[CameraInput](#camerainput)\> | 是 | 回调函数,用于获取CameraInput实例。 | - -**示例:** - -```js -let cameraDevice = cameras[0]; -let position = cameraDevice.cameraPosition; -let type = cameraDevice.cameraType; -cameraManager.createCameraInput(position, type, (err, cameraInput) => { - if (err) { - console.error(`Failed to create the CameraInput instance. ${err.message}`); - return; - } - console.log('Callback returned with the CameraInput instance'); -}) -``` - -### createCameraInput - -createCameraInput(position: CameraPosition, type:CameraType ): Promise - -根据相机位置和类型创建CameraInput实例,通过Promise获取结果。 - -**需要权限:** ohos.permission.CAMERA - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------- | ---- | ------------ | -| position | [CameraPosition](#cameraposition) | 是 | 相机位置,通过 getSupportedCameras 接口获取设备,然后获取设备位置信息 | -| type | [CameraType](#cameratype) | 是 | 相机类型,通过 getSupportedCameras 接口获取设备,然后获取设备类型信息 | **返回值:** -| 类型 | 说明 | -| ------------------------------------- | ------------------------------------ | -| Promise<[CameraInput](#camerainput)\> | 使用Promise的方式获取CameraInput的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraInput](#camerainput) | CameraInput实例。 | **示例:** @@ -427,16 +303,19 @@ createCameraInput(position: CameraPosition, type:CameraType ): Promise { - console.log('Promise returned with the CameraInput instance'); -}) +let cameraInput; +try { + cameraInput = cameraManager.createCameraInput(position, type); +} catch (error) { + console.log(error.code); +} ``` ### createPreviewOutput -createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void +createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput -创建预览输出对象,通过注册回调函数获取结果。 +创建预览输出对象,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -446,56 +325,30 @@ createPreviewOutput(profile: Profile, surfaceId: string, callback: AsyncCallback | -------- | ----------------------------------------------- | ---- | ------------------------------- | | profile | [Profile](#profile) | 是 | 支持的预览配置信息,通过getSupportedOutputCapability接口获取。| | surfaceId| string | 是 | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](js-apis-image.md#imagereceiver9)组件获取的surfaceId。| -| callback | AsyncCallback<[PreviewOutput](#previewoutput)\> | 是 | 回调函数,用于获取PreviewOutput实例。| - -**示例:** - -```js -let profile = cameraoutputcapability.previewProfiles[0]; -cameraManager.createPreviewOutput(profile, surfaceId, (err, previewOutput) => { - if (err) { - console.error(`Failed to gcreate previewOutput. ${err.message}`); - return; - } - console.log('Callback returned with previewOutput created.'); -}) -``` - -### createPreviewOutput - -createPreviewOutput(profile: Profile, surfaceId: string): Promise - -创建预览输出对象,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------| ---- | ----------------- | -| profile | [Profile](#profile) | 是 | 支持的预览配置信息,通过getSupportedOutputCapability接口获取。| -| surfaceId| string | 是 | 从[XComponent](../arkui-ts/ts-basic-components-xcomponent.md)或者[ImageReceiver](js-apis-image.md#imagereceiver9)组件获取的surfaceId。 | **返回值:** -| 类型 | 说明 | -| ---------------------------------------- | ---------------------------------------- | -| Promise<[PreviewOutput](#previewoutput)\> | 使用Promise的方式获取PreviewOutput的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [PreviewOutput](#previewoutput) | PreviewOutput实例。 | **示例:** ```js let profile = cameraoutputcapability.previewProfiles[0]; -cameraManager.createPreviewOutput(profile, surfaceId).then((previewOutput) => { - console.log('Promise returned with previewOutput created.'); -}) +let previewOutput; +try { + previewOutput = cameraManager.createPreviewOutput(profile, surfaceId); +} catch (error) { + console.log(error.code); +} ``` ### createPhotoOutput -createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback): void +createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput -创建拍照输出对象,通过注册回调函数获取结果。 +创建拍照输出对象,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -505,56 +358,25 @@ createPhotoOutput(profile: Profile, surfaceId: string, callback: AsyncCallback

| 是 | 回调函数,用于获取PhotoOutput实例。 | - -**示例:** - -```js -let profile = cameraoutputcapability.photoProfiles[0]; -cameraManager.createPhotoOutput(profile, surfaceId, (err, photoOutput) => { - if (err) { - console.error(`Failed to create photoOutput. ${err.message}`); - return; - } - console.log('Callback returned with photoOutput created.'); -}) -``` - -### createPhotoOutput - -createPhotoOutput(profile: Profile, surfaceId: string): Promise - -创建拍照输出对象,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------| ---- | ----------- | -| profile | [Profile](#profile) | 是 | 支持的拍照配置信息,通过getSupportedOutputCapability接口获取。 | -| surfaceId| string | 是 | 从[ImageReceiver](js-apis-image.md#imagereceiver9)获取的surfaceId。| **返回值:** -| 类型 | 说明 | -| ------------------------------------- | -------------------------------------- | -| Promise<[PhotoOutput](#photooutput)\> | 使用Promise的方式获取PhotoOutput的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [PhotoOutput](#photooutput) | PhotoOutput实例。 | **示例:** ```js let profile = cameraoutputcapability.photoProfiles[0]; -cameraManager.createPhotoOutput(profile, surfaceId).then((photoOutput) => { - console.log('Promise returned with photoOutput created.'); -}) +let photoOutput = cameraManager.createPhotoOutput(profile, surfaceId); ``` ### createVideoOutput -createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallback): void +createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput -创建录像输出对象,通过注册回调函数获取结果。 +创建录像输出对象,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -564,56 +386,30 @@ createVideoOutput(profile: VideoProfile, surfaceId: string, callback: AsyncCallb | -------- | ------------------------------------------- | ---- | ------------------------------ | | profile | [VideoProfile](#videoprofile) | 是 | 支持的录像配置信息,通过getSupportedOutputCapability接口获取。 | | surfaceId| string | 是 | 从[VideoRecorder](js-apis-media.md#videorecorder9)获取的surfaceId。| -| callback | AsyncCallback<[VideoOutput](#videooutput)\> | 是 | 回调函数,用于获取VideoOutput实例。 | - -**示例:** - -```js -let profile = cameraoutputcapability.videoProfiles[0]; -cameraManager.createVideoOutput(profile, surfaceId, (err, videoOutput) => { - if (err) { - console.error(`Failed to create videoOutput. ${err.message}`); - return; - } - console.log('Callback returned with an array of supported outputCapability' ); -}) -``` - -### createVideoOutput - -createVideoOutput(profile: VideoProfile, surfaceId: string): Promise - -创建录像输出对象,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------| ---- | ---------- | -| profile | [VideoProfile](#videoprofile) | 是 | 支持的录像配置信息,通过getSupportedOutputCapability接口获取。 | -| surfaceId| string | 是 | 从[VideoRecorder](js-apis-media.md#videorecorder9)获取的surfaceId。| **返回值:** -| 类型 | 说明 | -| ------------------------------------- | -------------------------------------- | -| Promise<[VideoOutput](#videooutput)\> | 使用Promise的方式获取videoOutput的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [VideoOutput](#videooutput) | VideoOutput实例。 | **示例:** ```js let profile = cameraoutputcapability.videoProfiles[0]; -cameraManager.createVideoOutput(profile, surfaceId).then((videoOutput) => { - console.log('Promise returned with videoOutput created.'); -}) +let videoOutput; +try { + videoOutput = cameraManager.createVideoOutput(profile, surfaceId); +} catch (error) { + console.log(error.code); +} ``` ### createMetadataOutput -createMetadataOutput(metadataObjectTypes:Array, callback: AsyncCallback): void +createMetadataOutput(metadataObjectTypes:Array): MetadataOutput -创建metadata流输出对象,通过注册回调函数获取结果。 +创建metadata流输出对象,同步返回结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -622,96 +418,48 @@ createMetadataOutput(metadataObjectTypes:Array, callback: A | 参数名 | 类型 | 必填 | 说明 | | -------------------- | -------------------------------------------------- | --- | ---------------------------- | | metadataObjectTypes | Array<[MetadataObjectType](#metadataobjecttype)\> | 是 | metadata流类型信息,通过getSupportedOutputCapability接口获取。 | -| callback | AsyncCallback<[MetadataOutput](#metadataoutput)\> | 是 | 回调函数,用于获取MetadataOutput实例。 | - -**示例:** - -```js -let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes; -cameraManager.createMetadataOutput(metadataObjectTypes, (err, metadataOutput) => { - if (err) { - console.error(`Failed to create metadataOutput. ${err.message}`); - return; - } - console.log('Callback returned with metadataOutput created.'); -}) -``` - -### createMetadataOutput - -createMetadataOutput(metadataObjectTypes:Array): Promise - -创建metadata流输出对象,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------------------- | -------------------------------------------------- | --- | -------------------- | -| metadataObjectTypes | Array<[MetadataObjectType](#metadataobjecttype)\> | 是 | metadata流类型信息,通过getSupportedOutputCapability接口获取。 | **返回值:** -| 类型 | 说明 | -| ------------------------------------------ | ----------------------------------------- | -| Promise<[MetadataOutput](#metadataoutput)\> | 使用Promise的方式获取MetadataOutput的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [MetadataOutput](#metadataoutput) | MetadataOutput实例。 | **示例:** ```js let metadataObjectTypes = cameraoutputcapability.supportedMetadataObjectTypes; -cameraManager.createMetadataOutput(metadataObjectTypes).then((metadataOutput) => { - console.log('Promise returned with metadataOutput created.'); -}) +let metadataOutput; +try { + metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes); +} catch (error) { + console.log(error.code); +} ``` ### createCaptureSession -createCaptureSession(callback: AsyncCallback): void +createCaptureSession(): CaptureSession 创建CaptureSession实例,通过注册回调函数获取结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------------------- | ----------------------------------------- | ----------- | ---------------------------- | -| callback | AsyncCallback<[CaptureSession](#capturesession)\> | 是 | 回调函数,用于获取拍照会话实例。 | - -**示例:** - -```js -cameraManager.createCaptureSession((err, captureSession) => { - if (err) { - console.error(`Failed to create captureSession. ${err.message}`); - return; - } - console.log('Callback returned with captureSession created.'); -}) -``` - -### createCaptureSession - -createCaptureSession(): Promise - -创建CaptureSession实例,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - **返回值:** -| 类型 | 说明 | -| ------------------------------------------- | ---------------------------------------- | -| Promise<[CaptureSession](#capturesession)\> | 使用Promise的方式获取CaptureSession的实例。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CaptureSession](#capturesession) | CaptureSession实例。 | **示例:** ```js -cameraManager.createCaptureSession().then((captureSession) => { - console.log('Promise returned with captureSession created.'); -}) +let captureSession; +try { + captureSession = cameraManager.createCaptureSession(); +} catch (error) { + console.log(error.code); +} ``` ### on('cameraStatus') @@ -801,7 +549,7 @@ cameraManager.on('cameraMute', (err, curMuetd) => { | 名称 | 值 | 说明 | | ----------------------- | ---- | -------------- | -| CAMERA_TYPE_UNSPECIFIED | 0 | 相机类型未指定。 | +| CAMERA_TYPE_DEFAULT | 0 | 相机类型未指定。 | | CAMERA_TYPE_WIDE_ANGLE | 1 | 广角相机。 | | CAMERA_TYPE_ULTRA_WIDE | 2 | 超广角相机。 | | CAMERA_TYPE_TELEPHOTO | 3 | 长焦相机。 | @@ -966,119 +714,45 @@ cameraInput.close().then(() => { }) ``` -### release +### on('error') -release\(callback: AsyncCallback\): void +on(type: 'error', cameraDevice:CameraDevice, callback: ErrorCallback): void -释放资源,通过注册回调函数获取结果。 +监听CameraInput的错误事件,通过注册回调函数获取结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------- | --- | ------------------------------------------- | +| type | string | 是 | 监听事件,固定为'error',即CameraInput错误事件。 | +| cameraDevice | [CameraDevice](#cameradevice) | 是 | CameraDevice对象。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取结果。 | **示例:** ```js -cameraInput.release((err) => { - if (err) { - console.error(`Failed to release the CameraInput instance ${err.message}`); - return; - } - console.log('Callback invoked to indicate that the CameraInput instance is released successfully.'); -}); +let cameraDevice = cameras[0]; +cameraInput.on('error', cameraDevice, (error) => { + console.log(`Camera input error code: ${error.code}`); +}) ``` -### release +## FlashMode -release(): Promise +枚举,闪光灯模式。 -释放资源,通过Promise获取结果。 +**系统能力:** SystemCapability.Multimedia.Camera.Core。 -**系统能力:** SystemCapability.Multimedia.Camera.Core +| 名称 | 值 | 说明 | +| ---------------------- | ---- | ---------- | +| FLASH_MODE_CLOSE | 0 | 闪光灯关闭。 | +| FLASH_MODE_OPEN | 1 | 闪光灯打开。 | +| FLASH_MODE_AUTO | 2 | 自动闪光灯。 | +| FLASH_MODE_ALWAYS_OPEN | 3 | 闪光灯常亮。 | -**返回值:** - -| 类型 | 说明 | -| -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -cameraInput.release().then(() => { - console.log('Promise returned to indicate that the CameraInput instance is released successfully.'); -}) -``` - -### on('error') - -on(type: 'error', cameraDevice:CameraDevice, callback: ErrorCallback): void - -监听CameraInput的错误事件,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------- | --- | ------------------------------------------- | -| type | string | 是 | 监听事件,固定为'error',即CameraInput错误事件。 | -| cameraDevice | [CameraDevice](#cameradevice) | 是 | CameraDevice对象。 | -| callback | ErrorCallback<[CameraInputError](#camerainputerror)\> | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -let cameraDevice = cameras[0]; -cameraInput.on('error', cameraDevice, (cameraInputError) => { - console.log(`Camera input error code: ${cameraInputError.code}`); -}) -``` - -## CameraInputErrorCode - -枚举,[CameraInput](#camerainput)错误类型。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 值 | 说明 | -| ------------------------- | ---- | ---------- | -| ERROR_UNKNOWN | -1 | 未知错误。 | -| ERROR_NO_PERMISSION | 0 | 没有权限。 | -| ERROR_DEVICE_PREEMPTED | 1 | 相机被抢占。 | -| ERROR_DEVICE_DISCONNECTED | 2 | 相机断开连接。 | -| ERROR_DEVICE_IN_USE | 3 | 相机正在使用。 | -| ERROR_DRIVER_ERROR | 4 | 驱动错误。 | - -## CameraInputError - -[CameraInput](#camerainput)错误码。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 类型 | 必填 | 说明 | -| ---- | --------------------------------------------- | ------------ |--------------------- | -| code | [CameraInputErrorCode](#camerainputerrorcode) | 是 |CameraInput中的错误码。 | - - -## FlashMode - -枚举,闪光灯模式。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core。 - -| 名称 | 值 | 说明 | -| ---------------------- | ---- | ---------- | -| FLASH_MODE_CLOSE | 0 | 闪光灯关闭。 | -| FLASH_MODE_OPEN | 1 | 闪光灯打开。 | -| FLASH_MODE_AUTO | 2 | 自动闪光灯。 | -| FLASH_MODE_ALWAYS_OPEN | 3 | 闪光灯常亮。 | - -## ExposureMode +## ExposureMode 枚举,曝光模式。 @@ -1135,56 +809,25 @@ cameraInput.on('error', cameraDevice, (cameraInputError) => { ### beginConfig -beginConfig\(callback: AsyncCallback\): void - -开始配置会话,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -captureSession.beginConfig((err) => { - if (err) { - console.error(`Failed to start the configuration. ${err.message}`); - return; - } - console.log('Callback invoked to indicate the begin config success.'); -}); -``` - -### beginConfig - -beginConfig\(\): Promise +beginConfig(): void -开始配置会话,通过Promise获取结果。 +开始配置会话。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | - - **示例:** ```js -captureSession.beginConfig().then(() => { - console.log('Promise returned to indicate the begin config success.'); -}) +try { + captureSession.beginConfig(); +} catch (error) { + console.log(error.code); +} ``` ### commitConfig -commitConfig\(callback: AsyncCallback\): void +commitConfig(callback: AsyncCallback): void 提交配置信息,通过注册回调函数获取结果。 @@ -1210,7 +853,7 @@ captureSession.commitConfig((err) => { ### commitConfig -commitConfig\(\): Promise +commitConfig(): Promise 提交配置信息,通过Promise获取结果。 @@ -1232,36 +875,9 @@ captureSession.commitConfig().then(() => { ### addInput -addInput\(cameraInput: CameraInput, callback: AsyncCallback\): void - -把[CameraInput](#camerainput)加入到会话,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------- | ---- | ------------------------ | -| cameraInput | [CameraInput](#camerainput) | 是 | 需要添加的CameraInput实例。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -captureSession.addInput(cameraInput, (err) => { - if (err) { - console.error(`Failed to add the CameraInput instance. ${err.message}`); - return; - } - console.log('Callback invoked to indicate that the CameraInput instance is added.'); -}); -``` - -### addInput - -addInput\(cameraInput: CameraInput\): Promise +addInput(cameraInput: CameraInput): void -把[CameraInput](#camerainput)加入到会话,通过Promise获取结果。 +把[CameraInput](#camerainput)加入到会话。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1271,52 +887,21 @@ addInput\(cameraInput: CameraInput\): Promise | ----------- | --------------------------- | ---- | ------------------------ | | cameraInput | [CameraInput](#camerainput) | 是 | 需要添加的CameraInput实例。 | -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -captureSession.addInput(cameraInput).then(() => { - console.log('Promise used to indicate that the CameraInput instance is added.'); -}) -``` - -### removeInput - -removeInput\(cameraInput: CameraInput, callback: AsyncCallback\): void - -移除[CameraInput](#camerainput),通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ----------- | --------------------------- | ---- | ------------------------ | -| cameraInput | [CameraInput](#camerainput) | 是 | 需要移除的CameraInput实例。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - **示例:** ```js -captureSession.removeInput(cameraInput, (err) => { - if (err) { - console.error(`Failed to remove the CameraInput instance. ${err.message}`); - return; - } - console.log('Callback invoked to indicate that the cameraInput instance is removed.'); -}); +try { + captureSession.addInput(cameraInput); +} catch (error) { + console.log(error.code); +} ``` ### removeInput -removeInput\(cameraInput: CameraInput\): Promise +removeInput(cameraInput: CameraInput): void -移除[CameraInput](#camerainput),通过Promise获取结果。 +移除[CameraInput](#camerainput)。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1326,25 +911,21 @@ removeInput\(cameraInput: CameraInput\): Promise | ----------- | --------------------------- | ---- | ------------------------ | | cameraInput | [CameraInput](#camerainput) | 是 | 需要移除的CameraInput实例。 | -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------- | -| Promise\ | 使用Promise的方式获取结果。 | - **示例:** ```js -captureSession.removeInput(cameraInput).then(() => { - console.log('Promise returned to indicate that the cameraInput instance is removed.'); -}) +try { + captureSession.removeInput(cameraInput); +} catch (error) { + console.log(error.code); +} ``` ### addOutput -addOutput\(previewOutput: CameraOutput, callback: AsyncCallback\): void +addOutput(previewOutput: CameraOutput): void -把[CameraOutput](#cameraoutput)加入到会话,通过注册回调函数获取结果。 +把[CameraOutput](#cameraoutput)加入到会话。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1353,53 +934,22 @@ addOutput\(previewOutput: CameraOutput, callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | ------------- | ------------------------------- | ---- | ------------------------ | | previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要添加的previewoutput实例。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -captureSession.addOutput(previewOutput, (err) => { - if (err) { - console.error(`Failed to add output. ${err.message}`); - return; - } - console.log('Callback returned with output added.'); -}) -``` - -### addOutput - -addOutput\(previewOutput: CameraOutput\): Promise - -把[CameraOutput](#cameraoutput)加入到会话,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------------- | ------------------------------- | ---- | ------------------------- | -| previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要添加的previewOutput实例。 | - -**返回值:** - -| 类型 | 说明 | -| -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | **示例:** ```js -captureSession.addOutput(previewOutput).then(() => { - console.log('Promise returned with cameraOutput added.'); -}) +try { + captureSession.addOutput(previewOutput); +} catch (error) { + console.log(error.code); +} ``` ### removeOutput -removeOutput\(previewOutput: CameraOutput, callback: AsyncCallback\): void +removeOutput(previewOutput: CameraOutput): void -从会话中移除[CameraOutput](#cameraoutput),通过注册回调函数获取结果。 +从会话中移除[CameraOutput](#cameraoutput)。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1408,48 +958,15 @@ removeOutput\(previewOutput: CameraOutput, callback: AsyncCallback\): voi | 参数名 | 类型 | 必填 | 说明 | | ------------- | ------------------------------- | ---- | ------------------------ | | previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要移除的previewoutput实例。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -captureSession.removeOutput(previewOutput, (err) => { - if (err) { - console.error(`Failed to remove the CameraOutput instance. ${err.message}`); - return; - } - console.log('Callback invoked to indicate that the CameraOutput instance is removed.'); -}); -``` - -### removeOutput - -removeOutput(previewOutput: CameraOutput): Promise - -从会话中移除[CameraOutput](#cameraoutput),通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------------- | ------------------------------- | ---- | ------------------------- | -| previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要移除的previewoutput实例。 | - - -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | - **示例:** ```js -captureSession.removeOutput(previewOutput).then(() => { - console.log('Promise returned to indicate that the CameraOutput instance is removed.'); -}) +try { + captureSession.removeOutput(previewOutput); +} catch (error) { + console.log(error.code); +} ``` ### start @@ -1598,57 +1115,33 @@ captureSession.release().then(() => { ### hasFlash -hasFlash(callback: AsyncCallback): void +hasFlash(): boolean 检测是否有闪光灯,通过注册回调函数获取结果。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------- | ---- | -------------------------------- | -| callback | AsyncCallback | 是 | 回调函数,返回true表示设备支持闪光灯。 | - -**示例:** - -```js -captureSession.hasFlash((err, status) => { - if (err) { - console.error(`Failed to check whether the device has flash light. ${err.message}`); - return; - } - console.log(`Callback returned with flash light support status: ${status}`); -}) -``` - -### hasFlash - -hasFlash(): Promise - -检测是否有闪光灯,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - **返回值:** -| 类型 | 说明 | -| ----------------- | ----------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回true表示设备支持闪光灯。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| boolean | 返回true表示设备支持闪光灯。 | **示例:** ```js -captureSession.hasFlash().then((status) => { - console.log(`Promise returned with the flash light support status: ${status}`); -}) +try { + let status = captureSession.hasFlash(); +} catch (error) { + console.log(error.code); +} ``` ### isFlashModeSupported -isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): void +isFlashModeSupported(flashMode: FlashMode): boolean -检测闪光灯模式是否支持,通过注册回调函数获取结果。 +检测闪光灯模式是否支持。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1657,53 +1150,28 @@ isFlashModeSupported(flashMode: FlashMode, callback: AsyncCallback): v | 参数名 | 类型 | 必填 | 说明 | | --------- | ----------------------- | ---- | --------------------------------- | | flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | -| callback | AsyncCallback | 是 | 回调函数,返回true表示支持该闪光灯模式。 | - -**示例:** - -```js -captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO, (err, status) => { - if (err) { - console.error(`Failed to check whether the flash mode is supported. ${err.message}`); - return; - } - console.log(`Callback returned with the flash mode support status: ${status}`); -}) -``` - -### isFlashModeSupported - -isFlashModeSupported(flashMode: FlashMode): Promise - -检测闪光灯模式是否支持,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| --------- | ----------------------- | ---- | ------------- | -| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | **返回值:** -| 类型 | 说明 | -| ----------------- | ---------------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回true表示设备支持该闪光灯模式。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| boolean | 返回true表示支持该闪光灯模式。 | **示例:** ```js -captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO).then((status) => { - console.log(`Promise returned with flash mode support status.${status}`); -}) +try { + let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); +} catch (error) { + console.log(error.code); +} ``` ### setFlashMode -setFlashMode(flashMode: FlashMode, callback: AsyncCallback): void +setFlashMode(flashMode: FlashMode): void -设置闪光灯模式,通过注册回调函数获取结果。 +设置闪光灯模式。 进行设置之前,需要先检查: @@ -1717,133 +1185,46 @@ setFlashMode(flashMode: FlashMode, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | --------- | ----------------------- | ---- | --------------------- | | flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | **示例:** ```js -captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO, (err) => { - if (err) { - console.error(`Failed to set the flash mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setFlashMode.'); -}) +try { + captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO); +} catch (error) { + console.log(error.code); +} ``` -### setFlashMode - -setFlashMode(flashMode: FlashMode): Promise - -设置闪光灯模式,通过Promise获取结果。 +### getFlashMode -进行设置之前,需要先检查: +getFlashMode(): FlashMode -1. 设备是否支持闪光灯,可使用方法[hasFlash](#hasflash)。 -2. 设备是否支持指定的闪光灯模式,可使用方法[isFlashModeSupported](#isflashmodesupported)。 +获取当前设备的闪光灯模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| --------- | ----------------------- | ---- | ------------- | -| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | - **返回值:** -| 类型 | 说明 | -| -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO).then(() => { - console.log('Promise returned with the successful execution of setFlashMode.'); -}) -``` - -### getFlashMode - -getFlashMode(callback: AsyncCallback): void - -获取当前设备的闪光灯模式,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------- | ---- | --------------------------------- | -| callback | AsyncCallback<[FlashMode](#flashmode)\> | 是 | 回调函数,用于获取当前设备的闪光灯模式。 | - -**示例:** - -```js -captureSession.getFlashMode((err, flashMode) => { - if (err) { - console.error(`Failed to get the flash mode ${err.message}`); - return; - } - console.log(`Callback returned with current flash mode: ${flashMode}`); -}) -``` - -### getFlashMode - -getFlashMode(): Promise - -获取当前设备的闪光灯模式,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| --------------------------------- | --------------------------------- | -| Promise<[FlashMode](#flashmode)\> | 使用Promise的方式获取当前的闪光灯模式。 | - -**示例:** - -```js -captureSession.getFlashMode().then((flashMode) => { - console.log(`Promise returned with current flash mode : ${flashMode}`); -}) -``` - -### isExposureModeSupported - -isExposureModeSupported(aeMode: ExposureMode, callback: AsyncCallback): void; - -检测曝光模式是否支持,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------| ---- | ----------------------------- | -| aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取是否支持曝光模式。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。 | **示例:** ```js -captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED,(err) => { - if (err) { - console.log(`Failed to check exposure mode supported ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of isExposureModeSupported'); -}) +try { + let flashMode = captureSession.getFlashMode(); +} catch (error) { + console.log(error.code); +} ``` ### isExposureModeSupported -isExposureModeSupported(aeMode: ExposureMode): Promise +isExposureModeSupported(aeMode: ExposureMode): boolean; -检测曝光模式是否支持,通过Promise获取结果。 +检测曝光模式是否支持。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1855,71 +1236,49 @@ isExposureModeSupported(aeMode: ExposureMode): Promise **返回值:** -| 名称 | 说明 | -| ----------------- |--------------------------------- | -| Promise | 使用Promise的方式获取支持的曝光模式。 | - -**示例:** - -```js -captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then((isSupported) => { - console.log(`Promise returned with exposure mode supported : ${isSupported}`); -}) -``` - -### getExposureMode - -getExposureMode(callback: AsyncCallback): void - -获取当前曝光模式,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------| ---- | ---------------------------------------- | -| callback | AsyncCallback<[ExposureMode](#exposuremode)\> | 是 | 回调函数,用于获取当前曝光模式。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| boolean | 获取是否支持曝光模式。 | **示例:** ```js -captureSession.getExposureMode((err, exposureMode) => { - if (err) { - console.log(`Failed to get the exposure mode ${err.message}`); - return ; - } - console.log(`Callback returned with current exposure mode: ${exposureMode}`); -}) +try { + let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED); +} catch (error) { + console.log(error.code); +} ``` ### getExposureMode -getExposureMode(): Promise +getExposureMode(): ExposureMode -获取当前曝光模式,通过Promise获取结果。 +获取当前曝光模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 名称 | 说明 | -| --------------------------------------- |------------------------------- | -| Promise<[ExposureMode](#exposuremode)\> | 使用Promise的方式获取当前曝光模式。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [ExposureMode](#exposuremode) | 获取当前曝光模式。 | **示例:** ```js -captureSession.getExposureMode().then((exposureMode) => { - console.log(`Promise returned with current exposure mode : ${exposureMode}`); -}) +try { + let exposureMode = captureSession.getExposureMode(); +} catch (error) { + console.log(error.code); +} ``` ### setExposureMode -setExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void +setExposureMode(aeMode: ExposureMode): void -设置曝光模式,通过注册回调函数获取结果。 +设置曝光模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -1928,124 +1287,46 @@ setExposureMode(aeMode: ExposureMode, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------| ---- | ----------------------- | | aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取设置结果。 | - -**示例:** - -```js -captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED,(err) => { - if (err) { - console.log(`Failed to set the exposure mode ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of setExposureMode'); -}) -``` - -### setExposureMode - -setExposureMode(aeMode: ExposureMode): Promise - -设置曝光模式,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 名称 | 说明 | -| ----------------- |---------------------------- | -| Promise | 使用Promise的方式获取设置结果。 | - -**示例:** - -```js -captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED).then(() => { - console.log('Promise returned with the successful execution of setExposureMode.'); -}) -``` - -### getMeteringPoint - -getMeteringPoint(callback: AsyncCallback): void - -查询曝光区域中心点,通过注册回调函数获取结果。(该接口目前为预留,将在3.2版本开放) - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------| ---- | ------------------------ | -| callback | AsyncCallback<[Point](#point)\>| 是 | 回调函数,用于获取当前曝光点。 | **示例:** ```js -captureSession.getMeteringPoint((err, exposurePoint) => { - if (err) { - console.log(`Failed to get the current exposure point ${err.message}`); - return ; - } - console.log(`Callback returned with current exposure point: ${exposurePoint}`); -}) +try { + captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED); +} catch (error) { + console.log(error.code); +} ``` ### getMeteringPoint -getMeteringPoint(): Promise +getMeteringPoint(): Point -查询曝光区域中心点,通过Promise获取结果。(该接口目前为预留,将在3.2版本开放) +查询曝光区域中心点。(该接口目前为预留,将在3.2版本开放) **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 名称 | 说明 | -| ------------------------- |----------------------------- | -| Promise<[Point](#point)\> | 使用Promise的方式获取当前曝光点。 | - -**示例:** - -```js -captureSession.getMeteringPoint().then((exposurePoint) => { - console.log(`Promise returned with current exposure point : ${exposurePoint}`); -}) -``` - -### setMeteringPoint - -setMeteringPoint(point: Point, callback: AsyncCallback): void - -设置曝光区域中心点,通过注册回调函数获取结果。(该接口目前为预留,将在3.2版本开放) - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------------- | -------------------------------| ---- | ------------------- | -| exposurePoint | [Point](#point) | 是 | 曝光点。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [Point](#point) | 获取当前曝光点。 | **示例:** ```js -const Point1 = {x: 1, y: 1}; - -captureSession.setMeteringPoint(Point1,(err) => { - if (err) { - console.log(`Failed to set the exposure point ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of setMeteringPoint'); -}) +try { + let exposurePoint = captureSession.getMeteringPoint(); +} catch (error) { + console.log(error.code); +} ``` ### setMeteringPoint -setMeteringPoint(point: Point): Promise +setMeteringPoint(point: Point): void -设置曝光区域中心点,通过Promise获取结果。(该接口目前为预留,将在3.2版本开放) +设置曝光区域中心点。(该接口目前为预留,将在3.2版本开放) **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -2055,75 +1336,46 @@ setMeteringPoint(point: Point): Promise | ------------- | -------------------------------| ---- | ------------------- | | exposurePoint | [Point](#point) | 是 | 曝光点。 | -**返回值:** - -| 名称 | 说明 | -| ----------------- |------------------------ | -| Promise | 使用Promise的方式返回结果。 | - **示例:** ```js -const Point2 = {x: 2, y: 2}; - -captureSession.setMeteringPoint(Point2).then(() => { - console.log('Promise returned with the successful execution of setMeteringPoint'); -}) -``` - -### getExposureBiasRange - -getExposureBiasRange(callback: AsyncCallback\>): void - -查询曝光补偿范围,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------| ---- | ----------------------------- | -| callback | AsyncCallback\> | 是 | 回调函数,用于获取补偿范围的数组。 | - -**示例:** - -```js -captureSession.getExposureBiasRange((err, biasRangeArray) => { - if (err) { - console.log(`Failed to get the array of compenstation range ${err.message}`); - return ; - } - console.log('Callback returned with the array of compenstation range: ' + JSON.stringify(biasRangeArray)); -}) +const exposurePoint = {x: 1, y: 1}; +try { + captureSession.setMeteringPoint(exposurePoint); +} catch (error) { + console.log(error.code); +} ``` ### getExposureBiasRange -getExposureBiasRange(): Promise\> +getExposureBiasRange(): Array -查询曝光补偿范围,通过Promise获取结果。 +查询曝光补偿范围。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 名称 | 说明 | -| ----------------- |-------------------------------------- | -| Promise\> | 使用Promise的方式获取曝光补偿范围。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| Array | 获取补偿范围的数组。 | **示例:** ```js -captureSession.getExposureBiasRange().then((biasRangeArray) => { - console.log('Promise returned with the array of compenstation range: ' + JSON.stringify(biasRangeArray)); -}) +try { + let biasRangeArray = captureSession.getExposureBiasRange(); +} catch (error) { + console.log(error.code); +} ``` ### setExposureBias -setExposureBias(exposureBias: number, callback: AsyncCallback): void +setExposureBias(exposureBias: number): void -设置曝光补偿,通过注册回调函数获取结果。 +设置曝光补偿。 进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange)查询支持的范围。 @@ -2134,105 +1386,47 @@ setExposureBias(exposureBias: number, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------| ---- | ------------------- | | exposureBias | number | 是 | 曝光补偿,getExposureBiasRange查询支持的范围 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | **示例:** ```js let exposureBias = biasRangeArray[0]; -captureSession.setExposureBias(exposureBias,(err) => { - if (err) { - console.log(`Failed to set the exposure bias ${err.message}`); - return ; - } - console.log('Callback returned with the successful execution of setExposureBias'); -}) -``` - -### setExposureBias - -setExposureBias(exposureBias: number): Promise - -设置曝光补偿,通过Promise获取结果。 - -进行设置之前,建议先通过方法[getExposureBiasRange](#getexposurebiasrange)查询支持的范围。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------------- | --------- | ---- | --------- | -| exposureBias | number | 是 | 曝光补偿,getExposureBiasRange查询支持的范围 | - -**返回值:** - -| 名称 | 说明 | -| ----------------- |------------------------- | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -let exposureBias = biasRangeArray[0]; -captureSession.setExposureBias(exposureBias).then(() => { - console.log('Promise returned with the successful execution of setExposureBias.'); -}) -``` - -### getExposureValue - -getExposureValue(callback: AsyncCallback): void - -查询当前曝光值,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------| ---- | --------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取曝光值。 | - -**示例:** - -```js -captureSession.getExposureValue((err, exposureValue) => { - if (err) { - console.log(`Failed to get the exposure value ${err.message}`); - return ; - } - console.log(`Callback returned with the exposure value: ${exposureValue}`); -}) +try { + captureSession.setExposureBias(exposureBias); +} catch (error) { + console.log(error.code); +} ``` ### getExposureValue -getExposureValue(): Promise +getExposureValue(): number -查询当前曝光值,通过Promise获取结果。 +查询当前曝光值。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 名称 | 说明 | -| ----------------- |-------------------------- | -| Promise | 使用Promise的方式获取曝光值。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| number | 获取曝光值。 | **示例:** ```js -captureSession.getExposureValue().then((exposureValue) => { - console.log(`Promise returned with exposure value: ${exposureValude}`); -}) +try { + let exposureValue = captureSession.getExposureValue(); +} catch (error) { + console.log(error.code); +} ``` ### isFocusModeSupported -isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void +isFocusModeSupported(afMode: FocusMode): boolean -检测对焦模式是否支持,通过注册回调函数获取结果。 +检测对焦模式是否支持。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -2241,53 +1435,28 @@ isFocusModeSupported(afMode: FocusMode, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------- | ---- | -------------------------------- | | afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | -| callback | AsyncCallback | 是 | 回调函数,返回true表示支持该焦距模式。 | - -**示例:** - -```js -captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO, (err, status) => { - if (err) { - console.error(`Failed to check whether the focus mode is supported. ${err.message}`); - return; - } - console.log(`Callback returned with the focus mode support status: ${status}`); -}) -``` - -### isFocusModeSupported - -isFocusModeSupported(afMode: FocusMode): Promise - -检测对焦模式是否支持,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------------------- | ---- | ------------- | -| afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | **返回值:** -| 类型 | 说明 | -| ----------------- | --------------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回true表示设备支持该焦距模式。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| boolean | 返回true表示支持该焦距模式。 | **示例:** ```js -captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO).then((status) => { - console.log(`Promise returned with focus mode support status ${status}.`); -}) +try { + let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO); +} catch (error) { + console.log(error.code); +} ``` ### setFocusMode -setFocusMode(afMode: FocusMode, callback: AsyncCallback): void +setFocusMode(afMode: FocusMode): void -设置对焦模式,通过注册回调函数获取结果。 +设置对焦模式。 进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。 @@ -2298,103 +1467,46 @@ setFocusMode(afMode: FocusMode, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------- | ---- | ------------------- | | afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO, (err) => { - if (err) { - console.error(`Failed to set the focus mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setFocusMode.'); -}) -``` - -### setFocusMode - -setFocusMode(afMode: FocusMode): Promise - -设置对焦模式,通过Promise获取结果。 - -进行设置之前,需要先检查设备是否支持指定的焦距模式,可使用方法[isFocusModeSupported](#isfocusmodesupported)。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ----------------------- | ---- | ------------- | -| afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | - -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | **示例:** ```js -captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO).then(() => { - console.log('Promise returned with the successful execution of setFocusMode.'); -}) -``` - -### getFocusMode - -getFocusMode(callback: AsyncCallback): void - -获取当前的对焦模式,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------- | ---- | ------------------------------- | -| callback | AsyncCallback<[FocusMode](#focusmode)\> | 是 | 回调函数,用于获取当前设备的焦距模式。 | - -**示例:** - -```js -captureSession.getFocusMode((err, afMode) => { - if (err) { - console.error(`Failed to get the focus mode ${err.message}`); - return; - } - console.log(`Callback returned with current focus mode: ${afMode}`); -}) +try { + captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); +} catch (error) { + console.log(error.code); +} ``` ### getFocusMode -getFocusMode(): Promise +getFocusMode(): FocusMode -获取当前的对焦模式,通过Promise获取结果。 +获取当前的对焦模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 类型 | 说明 | -| ------------------- | -------------------------------- | -| Promise | 使用Promise的方式获取当前的焦距模式。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [FocusMode](#focusmode) | 获取当前设备的焦距模式。 | **示例:** ```js -captureSession.getFocusMode().then((afMode) => { - console.log(`Promise returned with current focus mode : ${afMode}`); -}) +try { + let afMode = captureSession.getFocusMode(); +} catch (error) { + console.log(error.code); +} ``` ### setFocusPoint -setFocusPoint(point: Point, callback: AsyncCallback): void +setFocusPoint(point: Point): void -设置焦点,通过注册回调函数获取结果。 +设置焦点。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -2402,431 +1514,199 @@ setFocusPoint(point: Point, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------- | ---- | ------------------- | -| point | [Point](#point) | 是 | 焦点。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| Point1 | [Point](#point) | 是 | 焦点。 | **示例:** ```js const Point1 = {x: 1, y: 1}; - -captureSession.setFocusPoint(Point1, (err) => { - if (err) { - console.error(`Failed to set the focus point ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setFocusPoint.'); -}) -``` - -### setFocusPoint - -setFocusPoint(point: Point): Promise - -设置焦点,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------- | ---- | ------------------- | -| point | [Point](#point) | 是 | 焦点。 | - -**返回值:** - -| 类型 | 说明 | -| -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -const Point2 = {x: 2, y: 2}; - -captureSession.setFocusPoint(Point2).then(() => { - console.log('Promise returned with the successful execution of setFocusPoint.'); -}) -``` - -### getFocusPoint - -getFocusPoint(callback: AsyncCallback): void - -查询焦点,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------------------- | ---- | ----------------------- | -| callback | AsyncCallback<[Point](#point)\> | 是 | 回调函数,用于获取当前焦点。 | - -**示例:** - -```js -captureSession.getFocusPoint((err, point) => { - if (err) { - console.error(`Failed to get the current focus point ${err.message}`); - return; - } - console.log('Callback returned with the current focus point: ' + JSON.stringify(point)); -}) +try { + captureSession.setFocusPoint(Point1); +} catch (error) { + console.log(error.code); +} ``` ### getFocusPoint -getFocusPoint(): Promise +getFocusPoint(): Point -查询焦点,通过Promise获取结果。 +查询焦点。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 类型 | 说明 | -| --------------- | --------------------------- | -| Promise | 使用Promise的方式获取当前焦点。 | - -**示例:** - -```js -captureSession.getFocusPoint().then((point) => { - console.log('Promise returned with the current focus point: ' + JSON.stringify(point)); -}) -``` - -### getFocalLength - -getFocalLength(callback: AsyncCallback): void - -查询焦距值,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------- | ---- | ----------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取当前焦距。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [Point](#point) | 用于获取当前焦点。 | **示例:** ```js -captureSession.getFocalLength((err, focalLength) => { - if (err) { - console.error(`Failed to get the current focal length ${err.message}`); - return; - } - console.log(`Callback returned with the current focal length: ${focalLength}`); -}) +try { + let point = captureSession.getFocusPoint(); +} catch (error) { + console.log(error.code); +} ``` ### getFocalLength -getFocalLength(): Promise +getFocalLength(): number -查询焦距值,通过Promise获取结果。 +查询焦距值。 **系统能力:** SystemCapability.Multimedia.Camera.Core **返回值:** -| 类型 | 说明 | -| ---------------- | ----------------------- | -| Promise | 使用Promise的方式获取焦距。 | - -**示例:** - -```js -captureSession.getFocalLength().then((focalLength) => { - console.log(`Promise returned with the current focal length: ${focalLength}`); -}) -``` - -### getZoomRatioRange - -getZoomRatioRange\(callback: AsyncCallback\>\): void - -获取支持的变焦范围,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------ | ---- | ------------------- | -| callback | AsyncCallback\> | 是 | 回调函数,用于获取可变焦距比范围,返回的数组包括其最小值和最大值。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| number | 用于获取当前焦距。 | **示例:** ```js -captureSession.getZoomRatioRange((err, zoomRatioRange) => { - if (err) { - console.error(`Failed to get the zoom ratio range. ${err.message}`); - return; - } - console.log(`Callback returned with zoom ratio range: ${zoomRatioRange.length}`); -}) +try { + let focalLength = captureSession.getFocalLength(); +} catch (error) { + console.log(error.code); +} ``` ### getZoomRatioRange -getZoomRatioRange\(\): Promise\> - -获取支持的变焦范围,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| ------------------------ | --------------------------- | -| Promise\> | 使用Promise的方式获取当前的可变焦距比范围,返回的数组包括其最小值和最大值。 | - -**示例:** +getZoomRatioRange(): Array -```js -captureSession.getZoomRatioRange().then((zoomRatioRange) => { - console.log(`Promise returned with zoom ratio range: ${zoomRatioRange.length}`); -}) -``` - -### setZoomRatio - -setZoomRatio(zoomRatio: number, callback: AsyncCallback): void - -设置变焦比,通过注册回调函数获取结果。 +获取支持的变焦范围。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| --------- | -------------------- | ---- | ------------------- | -| zoomRatio | number | 是 | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -let zoomRatio = zoomRatioRange[0]; -captureSession.setZoomRatio(zoomRatio, (err) => { - if (err) { - console.error(`Failed to set the zoom ratio value ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setZoomRatio.'); -}) -``` - -### setZoomRatio - -setZoomRatio(zoomRatio: number): Promise - -设置变焦比,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| --------- | ------ | ---- | --------- | -| zoomRatio | number | 是 | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围| - -**返回值:** - -| 类型 | 说明 | -| -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -let zoomRatio = zoomRatioRange[0]; -captureSession.setZoomRatio(zoomRatio).then(() => { - console.log('Promise returned with the successful execution of setZoomRatio.'); -}) -``` - -### getZoomRatio - -getZoomRatio(callback: AsyncCallback): void - -获取当前的变焦比,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -captureSession.getZoomRatio((err, zoomRatio) => { - if (err) { - console.error(`Failed to get the zoom ratio ${err.message}`); - return; - } - console.log(`Callback returned with current zoom ratio: ${zoomRatio}`); -}) -``` - -### getZoomRatio - -getZoomRatio(): Promise - -获取当前的变焦比,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| ---------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -captureSession.getZoomRatio().then((zoomRatio) => { - console.log(`Promise returned with current zoom ratio : ${zoomRatio}`); -}) -``` - -### isVideoStabilizationModeSupported - -isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode, callback: AsyncCallback): void - -查询是否支持指定的视频防抖模式,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------------- | ---- | ------------------------------ | -| vsMode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 视频防抖模式。 | -| callback | AsyncCallback | 是 | 回调函数,返回视频防抖模式是否支持。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| Array | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。 | **示例:** ```js -captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF, (err, isSupported) => { - if (err) { - console.error(`Failed to check whether video stabilization mode supported. ${err.message}`); - return; - } - console.log(`Callback returned with the successful execution of isVideoStabilizationModeSupported`); -}) +try { + let zoomRatioRange = captureSession.getZoomRatioRange(); +} catch (error) { + console.log(error.code); +} ``` -### isVideoStabilizationModeSupported +### setZoomRatio -isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): Promise +setZoomRatio(zoomRatio: number): void -查询是否支持指定的视频防抖模式,通过Promise获取结果。 +设置变焦比。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**返回值:** +**参数:** -| 类型 | 说明 | -| ----------------- | --------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回视频防抖模式是否支持。 | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | -------------------- | ---- | ------------------- | +| zoomRatio | number | 是 | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围 | **示例:** ```js -captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF).then((isSupported) => { - console.log(`Promise returned with video stabilization mode supported: ${isSupported}`); -}) +let zoomRatio = zoomRatioRange[0]; +try { + captureSession.setZoomRatio(zoomRatio); +} catch (error) { + console.log(error.code); +} ``` -### getActiveVideoStabilizationMode +### getZoomRatio -getActiveVideoStabilizationMode(callback: AsyncCallback): void +getZoomRatio(): number -查询当前正在使用的视频防抖模式,通过注册回调函数获取结果。 +获取当前的变焦比。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------- | ---- | ------------------------------ | -| callback | AsyncCallback | 是 | 回调函数,返回视频防抖是否正在使用。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| number | 获取当前的变焦比结果。 | **示例:** ```js -captureSession.getActiveVideoStabilizationMode((err, vsMode) => { - if (err) { - console.error(`Failed to get active video stabilization mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of getActiveVideoStabilizationMode.'); -}) +try { + let zoomRatio = captureSession.getZoomRatio(); +} catch (error) { + console.log(error.code); +} ``` -### getActiveVideoStabilizationMode +### isVideoStabilizationModeSupported -getActiveVideoStabilizationMode(): Promise +isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean -查询当前正在使用的视频防抖模式,通过Promise获取结果。 +查询是否支持指定的视频防抖模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------- | ---- | ------------------------------ | +| vsMode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 视频防抖模式。 | + **返回值:** -| 类型 | 说明 | -| -------------------------------- | ------------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回视频防抖当前是否正在使用。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| boolean | 返回视频防抖模式是否支持。 | **示例:** ```js -captureSession.getActiveVideoStabilizationMode().then((vsMode) => { - console.log(`Promise returned with the current video stabilization mode: ${vsMode}`); -}) +try { + let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF); +} catch (error) { + console.log(error.code); +} ``` -### setVideoStabilizationMode +### getActiveVideoStabilizationMode -setVideoStabilizationMode(mode: VideoStabilizationMode, callback: AsyncCallback): void +getActiveVideoStabilizationMode(): VideoStabilizationMode -设置视频防抖模式,通过注册回调函数获取结果。 +查询当前正在使用的视频防抖模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------------- | ---- | --------------------- | -| mode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 需要设置的视频防抖模式。 | -| callback | AsyncCallback | 是 | 回调函数。 | +| 类型 | 说明 | +| ---------- | ----------------------------- | +| VideoStabilizationMode | 视频防抖是否正在使用。 | **示例:** ```js -captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF, (err) => { - if (err) { - console.error(`Failed to set the video stabilization mode ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of setVideoStabilizationMode.'); -}) +try { + let vsMode = captureSession.getActiveVideoStabilizationMode(); +} catch (error) { + console.log(error.code); +} ``` ### setVideoStabilizationMode -setVideoStabilizationMode(mode: VideoStabilizationMode): Promise +setVideoStabilizationMode(mode: VideoStabilizationMode): void -设置视频防抖,通过Promise获取结果。 +设置视频防抖模式。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -2836,18 +1716,14 @@ setVideoStabilizationMode(mode: VideoStabilizationMode): Promise | -------- | ------------------------------------------------- | ---- | --------------------- | | mode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 需要设置的视频防抖模式。 | -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回设置的视频防抖模式的结果。 | - **示例:** ```js -captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF).then(() => { - console.log('Promise returned with the successful execution of setVideoStabilizationMode.'); -}) +try { + captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF); +} catch (error) { + console.log(error.code); +} ``` ### on('focusStateChange') @@ -2875,7 +1751,7 @@ captureSession.on('focusStateChange', (focusState) => { ### on('error') -on(type: 'error', callback: ErrorCallback): void +on(type: 'error', callback: ErrorCallback): void 监听拍照会话的错误事件,通过注册回调函数获取结果。 @@ -2886,7 +1762,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | ------------------------------ | | type | string | 是 | 监听事件,固定为'error',即拍照会话错误事件。 | -| callback | ErrorCallback<[CaptureSessionError](#capturesessionerror)\> | 是 | 回调函数,用于获取错误信息。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。 | **示例:** @@ -2896,28 +1772,6 @@ captureSession.on('error', (captureSessionError) => { }) ``` -## CaptureSessionErrorCode - -枚举,会话错误类型。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 值 | 说明 | -| ----------------------------- | ---- | -------- | -| ERROR_UNKNOWN | -1 | 未知错误。 | -| ERROR_INSUFFICIENT_RESOURCES | 0 | 资源不足。 | -| ERROR_TIMEOUT | 1 | 超时。 | - -## CaptureSessionError - -会话错误码。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 类型 | 必填 | 说明 | -| ---- | ------------------------------------------- | -------------------------- |-------------------------- | -| code | [CaptureSessionError](#capturesessionerror) | 是 |CaptureSession中的错误码。 | - ## CameraOutput 会话中[CaptureSession](#capturesession)使用的输出信息,output的基类。 @@ -3118,7 +1972,7 @@ previewOutput.on('frameEnd', () => { ### on('error') -on(type: 'error', callback: ErrorCallback): void +on(type: 'error', callback: ErrorCallback): void 监听预览输出的错误事件,通过注册回调函数获取结果。 @@ -3129,7 +1983,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------------- | ---- | ------------------------ | | type | string | 是 | 监听事件,固定为'error',即预览输出错误事件。| -| callback | ErrorCallback<[PreviewOutputErrorCode](#previewoutputerrorcode)\> | 是 | 回调函数,用于获取错误信息。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。 | **示例:** @@ -3139,26 +1993,6 @@ previewOutput.on('error', (previewOutputError) => { }) ``` -## PreviewOutputErrorCode - -枚举,预览输出错误类型。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 值 | 说明 | -| ------------- | ---- | -------- | -| ERROR_UNKNOWN | -1 | 未知错误。 | - -## PreviewOutputError - -预览输出错误码。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 类型 | 必填 | 说明 | -| ---- | ------------------------------------------------- | ---------------- |---------------------- | -| code | [PreviewOutputErrorCode](#previewoutputerrorcode) | 是 |PreviewOutput中的错误码。 | - ## ImageRotation 枚举,图片旋转角度。 @@ -3242,6 +2076,28 @@ photoOutput.capture((err) => { ### capture +capture(): Promise + +以默认设置触发一次拍照,通过Promise获取结果。 + +**系统能力:** SystemCapability.Multimedia.Camera.Core + +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------ | +| Promise | 使用Promise的方式获取结果。 | + +**示例:** + +```js +photoOutput.capture().then(() => { + console.log('Promise returned to indicate that photo capture request success.'); +}) +``` + +### capture + capture(setting: PhotoCaptureSetting, callback: AsyncCallback): void 以指定参数触发一次拍照,通过注册回调函数获取结果。 @@ -3302,35 +2158,29 @@ capture(setting?: PhotoCaptureSetting): Promise **示例:** ```js -photoOutput.capture().then(() => { +photoOutput.capture(settings).then(() => { console.log('Promise returned to indicate that photo capture request success.'); }) ``` ### isMirrorSupported -isMirrorSupported(callback: AsyncCallback): void +isMirrorSupported(): boolean -查询是否支持镜像拍照,通过注册回调函数获取结果。 +查询是否支持镜像拍照。 **系统能力:** SystemCapability.Multimedia.Camera.Core -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------------- | ---- | -------------------------- | -| callback | AsyncCallback | 是 | 回调函数,返回是否支持镜像拍照。 | +| 类型 | 说明 | +| -------------- | ----------------------- | +| boolean | 回是否支持镜像拍照。 | **示例:** ```js -photoOutput.isMirrorSupported((err, isSupported) => { - if (err) { - console.error(`Failed to check mirror is supported ${err.message}`); - return; - } - console.log('Callback returned with the successful execution of isMirrorSupported.'); -}) +let isSupported = photoOutput.isMirrorSupported(); ``` ### release @@ -3381,28 +2231,6 @@ photoOutput.release().then(() => { }) ``` -### isMirrorSupported - -isMirrorSupported(): Promise - -查询是否支持镜像拍照,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| ----------------- | ------------------------------------------- | -| Promise | 使用Promise的方式获取结果,返回是否支持自拍结果。 | - -**示例:** - -```js -photoOutput.isMirrorSupported().then((isSupported) => { - console.log(`Promise returned with mirror supported: ${isSupported}`); -}) -``` - ### on('captureStart') on(type: 'captureStart', callback: AsyncCallback): void @@ -3476,7 +2304,7 @@ photoOutput.on('captureEnd', (err, captureEndInfo) => { ### on('error') -on(type: 'error', callback: ErrorCallback): void +on(type: 'error', callback: ErrorCallback): void 监听拍照输出发生错误,通过注册回调函数获取结果。 @@ -3487,7 +2315,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------- | ---- | ----------------------------------- | | type | string | 是 | 监听事件,固定为'error',即拍照错误事件。 | -| callback | ErrorCallback<[PhotoOutputError](#photooutputerror)\> | 是 | 回调函数,用于获取错误信息。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。 | **示例:** @@ -3519,29 +2347,6 @@ photoOutput.on('error', (err, photoOutputError) => { | captureId | number | 是 | 拍照的ID。 | | frameCount | number | 是 | 帧数。 | -## PhotoOutputErrorCode - -枚举,拍照输出错误类型。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 值 | 说明 | -| ----------------------------- | ---- | --------------- | -| ERROR_UNKNOWN | -1 | 未知错误。 | -| ERROR_DRIVER_ERROR | 0 | 驱动或者硬件错误。 | -| ERROR_INSUFFICIENT_RESOURCES | 1 | 资源不足。 | -| ERROR_TIMEOUT | 2 | 超时。 | - -## PhotoOutputError - -拍照输出错误码。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 类型 | 必填 |说明 | -| ---- | ------------------------------------- | --------- | ----------------------- | -| code | [PhotoOutputErrorCode](#photooutputerrorcode) | 是 | PhotoOutput中的错误码。 | - ## VideoOutput 录像会话中使用的输出信息,继承[CameraOutput](#cameraoutput) @@ -3641,7 +2446,7 @@ stop(): Promise videoOutput.stop().then(() => { console.log('Promise returned to indicate that stop method execution success.'); }) -``` +``` ### release @@ -3739,7 +2544,7 @@ videoOutput.on('frameEnd', () => { ### on('error') -on(type: 'error', callback: ErrorCallback): void +on(type: 'error', callback: ErrorCallback): void 监听录像输出发生错误,通过注册回调函数获取结果。 @@ -3750,7 +2555,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | -------------------------------------- | | type | string | 是 | 监听事件,固定为'error',即视频输出错误事件。 | -| callback | Callback<[VideoOutputError](#videooutputerror)\> | 是 | 回调函数,用于获取错误信息。 | +| callback | Callback | 是 | 回调函数,用于获取错误信息。 | **示例:** @@ -3760,27 +2565,6 @@ videoOutput.on('error', (VideoOutputError) => { }) ``` -## VideoOutputErrorCode - -枚举,录像输出错误类型。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 值 | 说明 | -| --------------------- | ---- | ------------ | -| ERROR_UNKNOWN | -1 | 未知错误。 | -| ERROR_DRIVER_ERROR | 0 | 驱动或者硬件错误。| - -## VideoOutputError - -录像输出错误码。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 类型 | 必填 | 说明 | -| ---- | ------------------------------------- | ----------------- | ----------------------- | -| code | [PhotoOutputErrorCode](#photooutputerrorcode) | 是 | VideoOutput中的错误码。 | - ## MetadataOutput metadata流。继承[CameraOutput](#cameraoutput) @@ -3906,7 +2690,7 @@ metadataOutput.on('metadataObjectsAvailable', (metadataObjectArr) => { ### on('error') -on(type: 'error', callback: ErrorCallback): void +on(type: 'error', callback: ErrorCallback): void 监听metadata流的错误,通过注册回调函数获取结果。 @@ -3917,7 +2701,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | --------------------------------------- | | type | string | 是 | 监听事件,固定为'error',即metadata流的错误。 | -| callback | Callback<[MetadataOutputError](#metadataoutputerror)\> | 是 | 回调函数,用于获取错误信息。 | +| callback | Callback | 是 | 回调函数,用于获取错误信息。 | **示例:** @@ -3927,27 +2711,6 @@ metadataOutput.on('error', (metadataOutputError) => { }) ``` -## MetadataOutputErrorCode - -枚举,metadata输出错误类型。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 值 | 说明 | -| ------------------------------- | ---- | -------- | -| ERROR_UNKNOWN | -1 | 未知错误。 | -| ERROR_INSUFFICIENT_RESOURCES | 0 | 资源不足。 | - -## MetadataOutputError - -metadata输出错误码。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -| 名称 | 类型 | 必填 | 说明 | -| ---- | ------------------------------------- | ----------------- | ----------------------- | -| code | [MetadataOutputErrorCode](#metadataoutputerrorcode) | 是 | MetadataOutput中的错误码。 | - ## MetadataObjectType 枚举,metadata流。 @@ -3975,156 +2738,8 @@ metadata输出错误码。 相机元能力信息,[CameraInput](#camerainput)相机信息中的数据来源,通过metadataOutput.on('metadataObjectsAvailable')接口获取 -### getType - -getType(callback: AsyncCallback): void - -查询metadata对象类型,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------------------------------------------------- | --- | -------------------- | -| callback | AsyncCallback<[MetadataObjectType](#metadataobjecttype)\> | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -let metadataObject = metadataObjectArr[0]; -metadataObject.getType((err, metadataObjectType) => { - if (err) { - console.error(`Failed to get type. ${err.message}`); - return; - } - console.log('Callback returned with an array of metadataObjectType.'); -}) -``` - -### getType - -getType(): Promise - -查询metadata对象类型,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| --------------------------------------------------- | --------------------------- | -| Promise<[MetadataObjectType](#metadataobjecttype)\> | 使用Promise的方式获取结果。 | - -**示例:** - -```js -let metadataObject = metadataObjectArr[0]; -metadataObject.getType().then((metadataObjectType) => { - console.log('Callback returned with an array of metadataObjectType.'); -}) -``` - -### getTimestamp - -getTimestamp(callback: AsyncCallback): void - -查询metadata时间戳,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------------- | ---- | ------------------------ | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -let metadataObject = metadataObjectArr[0]; -metadataObject.getTimestamp((err,timestamp) => { - if (err) { - console.error(`Failed to get timestamp. ${err.message}`); - return; - } - console.log('Callback returned with timestamp getted timestamp : ${timestamp}'); -}) -``` - -### getTimestamp - -getTimestamp(): Promise - -查询metadata时间戳,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| ---------------- | --------------------------- | -| Promise | 使用Promise的方式获取结果。 | - -**示例:** - -```js -let metadataObject = metadataObjectArr[0]; -metadataObject.getTimestamp().then((timestamp) => { - console.log('Callback returned with timestamp getted timestamp : ${timestamp}'); -}) -``` - -### getBoundingBox - -getBoundingBox(callback: AsyncCallback): void - -查询metadata的边界框,通过注册回调函数获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------------- | ---- | ------------------------ | -| callback | AsyncCallback<[Rect](#rect)\> | 是 | 回调函数,用于获取结果。 | - -**示例:** - -```js -let metadataObject = metadataObjectArr[0]; -metadataObject.getBoundingBox((err, rect) => { - if (err) { - console.error(`Failed to get boundingBox. ${err.message}`); - return; - } - console.log('Callback returned with boundingBox getted.'); -}) -``` - -### getBoundingBox - -getBoundingBox(): Promise - -查询metadata的边界框,通过Promise获取结果。 - -**系统能力:** SystemCapability.Multimedia.Camera.Core - -**返回值:** - -| 类型 | 说明 | -| ---------------------- | --------------------------- | -| Promise<[Rect](#rect)\> | 使用Promise的方式获取结果。 | - -**示例:** - -```js -let metadataObject = metadataObjectArr[0]; -metadataObject.getBoundingBox().then((rect) => { - console.log('Callback returned with boundingBox getted.'); -}) -``` - -## MetadataFaceObject - -metadata的人脸对象。继承[MetadataObject](#metadataobject) \ No newline at end of file +| 名称 | 类型 | 必填 | 说明 | +| -------- | ------------------------------- | ---- | -----------------| +| type | [MetadataObjectType](#metadataobjecttype) | 否 | 图片质量。 | +| timestamp | number | 否 | 图片旋转角度。 | +| boundingBox | [Rect](#rect) | 否 | 图片地理位置信息。 | \ No newline at end of file -- GitLab From 716956bd002baeee277879b67d1ced50ae2d78df Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 12 Jan 2023 10:38:12 +0800 Subject: [PATCH 180/383] Update doc (13092) Signed-off-by: ester.zhou --- .../arkts-state-mgmt-page-level.md | 2 +- .../reference/apis/js-apis-router.md | 2 +- .../arkui-ts/ts-components-canvas-lottie.md | 77 ++++++++++--------- 3 files changed, 41 insertions(+), 40 deletions(-) diff --git a/en/application-dev/quick-start/arkts-state-mgmt-page-level.md b/en/application-dev/quick-start/arkts-state-mgmt-page-level.md index 504665688a..19326001c0 100644 --- a/en/application-dev/quick-start/arkts-state-mgmt-page-level.md +++ b/en/application-dev/quick-start/arkts-state-mgmt-page-level.md @@ -97,7 +97,7 @@ The **@Prop** decorated state variable has the following features: **Example** -In the preceding example, when the user presses **+1** or **-1**, the status of the parent component changes and the **build** method is executed again. In this case, a new **CountDownComponent** instance is created. The **countDownStartValue** attribute of the parent component is used to initialize the **@Prop** decorated variable of the child component. When the **count - costOfOneAttempt** button of the child component is touched, the value of the **@Prop** decorated variable **count** is changed. As a result, the **CountDownComponent** is rendered again. However, the change of the **count** value does not affect the **countDownStartValue** value of the parent component. +In the following example, when the user presses **+1** or **-1**, the status of the parent component changes and the **build** method is executed again. In this case, a new **CountDownComponent** instance is created. The **countDownStartValue** attribute of the parent component is used to initialize the **@Prop** decorated variable of the child component. When the **count - costOfOneAttempt** button of the child component is touched, the value of the **@Prop** decorated variable **count** is changed. As a result, the **CountDownComponent** is rendered again. However, the change of the **count** value does not affect the **countDownStartValue** value of the parent component. ```ts // xxx.ets diff --git a/en/application-dev/reference/apis/js-apis-router.md b/en/application-dev/reference/apis/js-apis-router.md index 75d75ddb09..11bb575b30 100644 --- a/en/application-dev/reference/apis/js-apis-router.md +++ b/en/application-dev/reference/apis/js-apis-router.md @@ -804,7 +804,7 @@ router.replace({ }); ``` - ## router.replace(deprecated) +## router.replace(deprecated) replace(options: RouterOptions, mode: RouterMode): void diff --git a/en/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md b/en/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md index bbfdaa6a6a..6bb371dfa5 100644 --- a/en/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md +++ b/en/application-dev/reference/arkui-ts/ts-components-canvas-lottie.md @@ -27,34 +27,35 @@ loadAnimation( path: string, container: object, render: string, loop: boolean, autoplay: boolean, name: string ): AnimationItem -Loads an animation. Before calling this API, declare the **Animator('__lottie_ets')** object and check that the canvas layout is complete. This method can be used together with a lifecycle callback of the **Canvas** component, for example, **onAppear()** and **onPageShow()**. +Loads an animation. Before calling this API, declare the **Animator('__lottie_ets')** object and make sure the canvas layout is complete. This API can be used together with the lifecycle callback **onReady()** of the **Canvas** component. **Parameters** -| Name | Type | Mandatory | Description | -| -------------- | --------------------------- | ---- | ---------------------------------------- | -| path | string | Yes | Path of the animation resource file in the HAP file. The resource file must be in JSON format. Example: **path: "common/lottie/data.json"**| -| container | object | Yes | Canvas drawing context. A **CanvasRenderingContext2D** object must be declared in advance.| -| render | string | Yes | Rendering type. The value can only be **"canvas"**. | -| loop | boolean \| number | No | If the value is of the Boolean type, this parameter indicates whether to repeat the animation cyclically after the animation ends; the default value is **true**. If the value is of the number type and is greater than or equal to 1, this parameter indicates the number of times the animation plays.| -| autoplay | boolean | No | Whether to automatically play the animation.
Default value: **true** | +| Name | Type | Mandatory| Description | +| -------------- | --------------------------- | ---- | ------------------------------------------------------------ | +| path | string | Yes | Path of the animation resource file in the HAP file. The resource file must be in JSON format. Example: **path: "common/lottie/data.json"**| +| container | object | Yes | Canvas drawing context. A **CanvasRenderingContext2D** object must be declared in advance.| +| render | string | Yes | Rendering type. The value can only be **"canvas"**. | +| loop | boolean \| number | No | If the value is of the Boolean type, this parameter indicates whether to repeat the animation cyclically after the animation ends; the default value is **true**. If the value is of the number type and is greater than or equal to 1, this parameter indicates the number of times the animation plays.| +| autoplay | boolean | No | Whether to automatically play the animation.
Default value: **true** | | name | string | No | Custom animation name. In later versions, the name can be used to reference and control the animation.
Default value: null | -| initialSegment | [number, number] | No | Start frame and end frame of the animation, respectively. | +| initialSegment | [number, number] | No | Start frame and end frame of the animation, respectively. | ## lottie.destroy destroy(name: string): void -Destroys the animation. This method must be called when a page exits. This method can be used together with a lifecycle callback of the **Canvas** component, for example, **onDisappear()** and **onPageHide()**. +Destroys the animation. This API must be called when a page exits. This API can be used together with a lifecycle callback of the **Canvas** component, for example, **onDisappear()** and **onPageHide()**. **Parameters** | Name | Type | Mandatory | Description | | ---- | ------ | ---- | ---------------------------------------- | -| name | string | Yes | Name of the animation to destroy, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are destroyed.| +| name | string | Yes | Name of the animation to destroy, which is the same as the **name** in the **loadAnimation** API. By default, all animations are destroyed. | **Example** + ```ts // xxx.ets import lottie from '@ohos/lottieETS' @@ -133,7 +134,7 @@ Plays a specified animation. | Name | Type | Mandatory | Description | | ---- | ------ | ---- | ---------------------------------------- | -| name | string | Yes | Name of the animation to play, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are played.| +| name | string | Yes | Name of the animation to play, which is the same as the **name** in the **loadAnimation** API. By default, all animations are played. | **Example** @@ -152,7 +153,7 @@ Pauses a specified animation. The next time **lottie.play()** is called, the ani | Name | Type | Mandatory | Description | | ---- | ------ | ---- | ---------------------------------------- | -| name | string | Yes | Name of the animation to pause, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are paused.| +| name | string | Yes | Name of the animation to pause, which is the same as the **name** in the **loadAnimation** API. By default, all animations are paused. | **Example** @@ -165,13 +166,13 @@ Pauses a specified animation. The next time **lottie.play()** is called, the ani togglePause(name: string): void -Pauses or plays a specified animation. This method is equivalent to the switching between **lottie.play()** and **lottie.pause()**. +Pauses or plays a specified animation. This API is equivalent to the switching between **lottie.play()** and **lottie.pause()**. **Parameters** | Name | Type | Mandatory | Description | | ---- | ------ | ---- | ---------------------------------------- | -| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are paused.| +| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** API. By default, all animations are paused or played. | **Example** @@ -190,7 +191,7 @@ Stops the specified animation. The next time **lottie.play()** is called, the an | Name | Type | Mandatory | Description | | ---- | ------ | ---- | ---------------------------------------- | -| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are paused.| +| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** API. By default, all animations are stopped. | **Example** @@ -209,8 +210,8 @@ Sets the playback speed of the specified animation. | Name | Type | Mandatory | Description | | ----- | ------ | ---- | ---------------------------------------- | -| speed | number | Yes | Playback speed. The value is a floating-point number. If the value is greater than 0, the animation plays in forward direction. If the value is less than 0, the animation plays in reversed direction. If the value is 0, the animation is paused. If the value is 1.0 or -1.0, the animation plays at the normal speed.| -| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are stopped.| +| speed | number | Yes | Playback speed. The value is a floating-point number. If the value is greater than 0, the animation plays in forward direction. If the value is less than 0, the animation plays in reversed direction. If the value is **0**, the animation is paused. If the value is **1.0** or **-1.0**, the animation plays at the normal speed. | +| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** API. By default, all animations are set. | **Example** @@ -230,7 +231,7 @@ Sets the direction in which the specified animation plays. | Name | Type | Mandatory | Description | | --------- | ------------------ | ---- | ---------------------------------------- | | direction | AnimationDirection | Yes | Direction in which the animation plays. **1**: forwards; **-1**: backwards. When set to play backwards, the animation plays from the current playback progress to the first frame. When this setting is combined with **loop** being set to **true**, the animation plays backwards continuously. When the value of **speed** is less than 0, the animation also plays backwards.
AnimationDirection: 1 \| -1 | -| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** interface. By default, all animations are set.| +| name | string | Yes | Name of the target animation, which is the same as the **name** in the **loadAnimation** API. By default, all animations are set. | **Example** @@ -241,7 +242,7 @@ Sets the direction in which the specified animation plays. ## AnimationItem -Defines an **AnimationItem** object, which is returned by the **loadAnimation** interface and has attributes and interfaces. The attributes are described as follows: +Defines an **AnimationItem** object, which is returned by the **loadAnimation** API and has attributes and APIs. The attributes are described as follows: | Name | Type | Description | | ----------------- | ---------------------------------------- | ---------------------------------------- | @@ -253,18 +254,18 @@ Defines an **AnimationItem** object, which is returned by the **loadAnimation** | totalFrames | number | Total number of frames in the animation segment that is being played. | | frameRate | number | Frame rate (frame/s). | | frameMult | number | Frame rate (frame/ms). | -| playSpeed | number | Playback speed. The value is a floating-point number. If the value is greater than 0, the animation plays forward. If the value is less than 0, the animation plays backward. If the value is 0, the animation is paused.|If the value is **1.0** or **-1.0**, the animation plays at the normal speed.| -| playDirection | number | Playback direction. The options are **1** (forward) and **-1** (backward). | +| playSpeed | number | Playback speed. The value is a floating-point number. If the value is greater than 0, the animation plays forward. If the value is less than 0, the animation plays backward. If the value is **0**, the animation is paused. If the value is **1.0** or **-1.0**, the animation plays at the normal speed. | +| playDirection | number | Playback direction.
**1**: forward.
**-1**: backward. | | playCount | number | Number of times the animation plays. | | isPaused | boolean | Whether the current animation is paused. The value **true** means that the animation is paused. | -| autoplay | boolean | Whether to automatically play the animation upon completion of the loading. The value **false** means that the **play()** interface needs to be called to start playing.| -| loop | boolean \| number | If the value is of the Boolean type, this parameter indicates whether to repeat the animation cyclically after the animation ends. If the value is of the number type and is greater than or equal to 1, this parameter indicates the number of times the animation plays. | +| autoplay | boolean | Whether to automatically play the animation upon completion of the loading. The value **false** means that the **play()** API needs to be called to start playing. | +| loop | boolean \| number | If the value is of the Boolean type, this parameter indicates whether to repeat the animation cyclically after the animation ends. If the value is of the number type and is greater than or equal to 1, this parameter indicates the number of times the animation plays. | | renderer | any | Animation rendering object, which depends on the rendering type. | | animationID | string | Animation ID. | | timeCompleted | number | Number of frames that are played for an animation sequence. The value is affected by the setting of **AnimationSegment** and is the same as the value of **totalFrames**.| | segmentPos | number | ID of the current animation segment. The value is a positive integer greater than or equal to 0. | | isSubframeEnabled | boolean | Whether the precision of **currentFrame** is a floating point number. | -| segments | AnimationSegment \| AnimationSegment[] | Current segment of the animation. | +| segments | AnimationSegment \| AnimationSegment[] | Current segment of the animation. | ## AnimationItem.play @@ -309,7 +310,7 @@ Destroys an animation. pause(name?: string): void -Pauses an animation. When the **play** interface is called next time, the animation is played from the current frame. +Pauses an animation. When the **play** API is called next time, the animation is played from the current frame. **Parameters** @@ -328,7 +329,7 @@ Pauses an animation. When the **play** interface is called next time, the animat togglePause(name?: string): void -Pauses or plays an animation. This method is equivalent to the switching between **play** and **pause**. +Pauses or plays an animation. This API is equivalent to the switching between **play** and **pause**. **Parameters** @@ -347,7 +348,7 @@ Pauses or plays an animation. This method is equivalent to the switching between stop(name?: string): void -Stops an animation. When the **play** interface is called next time, the animation is played from the first frame. +Stops an animation. When the **play** API is called next time, the animation is played from the first frame. **Parameters** @@ -372,7 +373,7 @@ Sets the playback speed of an animation. | Name | Type | Mandatory | Description | | ----- | ------ | ---- | ---------------------------------------- | -| speed | number | Yes | Playback speed. The value is a floating-point number. If the value is greater than 0, the animation plays forward. If the value is less than 0, the animation plays backward. If the value is 0, the animation is paused.|If the value is **1.0** or **-1.0**, the animation plays at the normal speed.| +| speed | number | Yes | Playback speed. The value is a floating-point number. If the value is greater than 0, the animation plays forward. If the value is less than 0, the animation plays backward. If the value is **0**, the animation is paused. If the value is **1.0** or **-1.0**, the animation plays at the normal speed. | **Example** @@ -411,8 +412,8 @@ Sets the animation to stop at the specified frame or time. | Name | Type | Mandatory | Description | | ------- | ------- | ---- | ---------------------------------------- | | value | number | Yes | Frame ID (greater than or equal to 0) or time progress (ms) at which the animation will stop. | -| isFrame | boolean | No | Whether to set the animation to stop at the specified frame. The value **true** means to set the animation to stop at the specified frame, and **false** means to set the animation to stop at the specified time progress.
Default value: **false** | -| name | string | No | Name of the target animation. By default, the value is null. | +| isFrame | boolean | No | Whether to set the animation to stop at the specified frame. The value **true** means to set the animation to stop at the specified frame, and **false** means to set the animation to stop at the specified time progress.
Default value: **false** | +| name | string | No | Name of the target animation. By default, the value is null. | **Example** @@ -435,8 +436,8 @@ Sets the animation to start from the specified frame or time progress. | Name | Type | Mandatory | Description | | ------- | ------- | ---- | ---------------------------------------- | | value | number | Yes | Frame ID (greater than or equal to 0) or time progress (ms) at which the animation will start. | -| isFrame | boolean | Yes | Whether to set the animation to start from the specified frame. The value **true** means to set the animation to start from the specified frame, and **false** means to set the animation to start from the specified time progress.
Default value: **false** | -| name | string | No | Name of the target animation. By default, the value is null. | +| isFrame | boolean | Yes | Whether to set the animation to start from the specified frame. The value **true** means to set the animation to start from the specified frame, and **false** means to set the animation to start from the specified time progress.
Default value: **false** | +| name | string | No | Name of the target animation.
Default value: null | **Example** @@ -459,7 +460,7 @@ Sets the animation to play only the specified segment. | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | ---------------------------------------- | | segments | AnimationSegment = [number, number] \| AnimationSegment[] | Yes | Segment or segment list.
If all segments in the segment list are played, only the last segment is played in the next cycle.| -| forceFlag | boolean | Yes | Whether the settings take effect immediately. The value **true** means the settings take effect immediately, and **false** means the settings take effect until the current cycle of playback is completed. | +| forceFlag | boolean | Yes | Whether the settings take effect immediately. The value **true** means the settings take effect immediately, and **false** means the settings take effect until the current cycle of playback is completed. | **Example** @@ -475,7 +476,7 @@ Sets the animation to play only the specified segment. resetSegments(forceFlag: boolean): void -Resets the settings configured by the **playSegments** method to play all the frames. +Resets the settings configured by the **playSegments** API to play all the frames. **Parameters** @@ -526,7 +527,7 @@ Sets the precision of the **currentFrame** attribute to display floating-point n getDuration(inFrames?: boolean): void -Obtains the duration (irrelevant to the playback speed) or number of frames for playing an animation sequence. The settings are related to the input parameter **initialSegment** of the **Lottie.loadAnimation** interface. +Obtains the duration (irrelevant to the playback speed) or number of frames for playing an animation sequence. The settings are related to the input parameter **initialSegment** of the **Lottie.loadAnimation** API. **Parameters** @@ -545,7 +546,7 @@ Obtains the duration (irrelevant to the playback speed) or number of frames for addEventListener<T = any>(name: AnimationEventName, callback: AnimationEventCallback<T>): () => void -Adds an event listener. After the event is complete, the specified callback function is triggered. This method returns the function object that can delete the event listener. +Adds an event listener. After the event is complete, the specified callback is triggered. This API returns the function object that can delete the event listener. **Parameters** @@ -578,7 +579,7 @@ Removes an event listener. | Name | Type | Mandatory | Description | | -------- | ------------------------------- | ---- | ---------------------------------------- | | name | AnimationEventName | Yes | Animation event type. The available options are as follows:
'enterFrame', 'loopComplete', 'complete', 'segmentStart', 'destroy', 'config_ready', 'data_ready', 'DOMLoaded', 'error', 'data_failed', 'loaded_images'| -| callback | AnimationEventCallback<T> | No | Custom callback. By default, the value is null, meaning that all callbacks of the event will be removed. | +| callback | AnimationEventCallback<T> | No | Custom callback. By default, the value is null, meaning that all callbacks of the event will be removed. | **Example** -- GitLab From 5d2596c03a68c74404c7692f05b4c83145a44522 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 12 Jan 2023 14:53:38 +0800 Subject: [PATCH 181/383] update docs Signed-off-by: Annie_wang --- .../kernel/figures/newip-connections.png | Bin 23487 -> 11103 bytes .../kernel/figures/newip-development.png | Bin 154262 -> 187332 bytes en/device-dev/kernel/figures/newip-header.png | Bin 22829 -> 23206 bytes en/device-dev/kernel/kernel-standard-newip.md | 229 ++++++++++-------- 4 files changed, 122 insertions(+), 107 deletions(-) diff --git a/en/device-dev/kernel/figures/newip-connections.png b/en/device-dev/kernel/figures/newip-connections.png index c4edde138f8cd92cfe8828a4467c49d0b3e5bf65..85aa191ccb599cfdc0a01c2750ccdc09cc345b0b 100644 GIT binary patch literal 11103 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

4R%cvwJPc%u7M)B;~XqL z^^m`NP{wY^pXB%=+nd6bnKV*-z1pM%IVkg|@6*K4^t9HJtRLs$av(ja^s`UZ!&RzR zkI82+HKznHtktT-m4}CzUkXx~Ix{hec-{pyS4pi%GIOieUFv9ApuRkUI)LcJ<6Ykz z3L>Zktny5+sp%B~8kW_d(@(ek224W2AfqYH&aO0)@XTl%;k3?R>^m7jPGltgYmMcv zwOsU5S%wf9HjN)ax(r}mjt}&`@FTBo8JU$1ztW(O;g8|%Ttyuk3eMaP-sRRV?-^Zf z#Fb(5oZMfpvP7|?k2m15Lpnj4PPKz_^bmkJ{Ul5$@rHP=#p{T%r>BQ_1WFFl?8}Z6 z0ww|XS~vgx{YxktDa%ldt~eKGw~UsB*A?%|hO8#HPKlA~CCBr2<&soFcv(z@8+Hy0 zD}H|J4^AMmr#{|iRq#oS0Jxk9thK=VTUKLpQJ{}3#J|_?T%^+$I+T&5Sy8UsYogLV?sjhAw>^#flcBQ9GJPv1%=JVNBvig zZjv1Fzz>ce1T?)9(0CU#KP!e5^4H&dd8g!ic^J$|^yg4!-&Bo;iN(*`RxFT9cF{}E z;pWLdGXXo$WgVXDX?Aj<=at4s+y7XDk;7ntuLH0`?mjFb_5DI+EyxKRu^UY+Mr85v zNy_?5d*jDg+rRpi%`4wQy z(*f#3@+PZ>Y2Rg`eB5_Tsb)_#$;nl9hsZD@7ObnA77OJ`m)ve-jI)u&(ngRxz=(E+ zdFn=J5o#T3GC=Nf@^)VERBAHIW@YZYNT8UjSnG`W9eO=c8 diff --git a/en/device-dev/kernel/figures/newip-development.png b/en/device-dev/kernel/figures/newip-development.png index e5e2b90263058fc847a711b3acffe627e94081f4..fd84b4e7a853822ec61d3dc8a25d18f8417de44e 100644 GIT binary patch literal 187332 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

M2x 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%0DQ+sd7YfA@5 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∨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

b|Txd#M+6|rA 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 z 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 diff --git a/en/device-dev/kernel/figures/newip-header.png b/en/device-dev/kernel/figures/newip-header.png index 9190bb298de56b73f98ffd142af014ded382c07b..828c8b843715fa85f918a65abe042cebc7922140 100644 GIT binary patch literal 23206 zcmce-Wl)_>6edV;m*DR1?hxEvg2Tn(;_d`@4X(iwA;IIpgMon|$w-TK+DX>u`F= zM-VWVhH|4S;mESF`D^a6Hm2kZTtokKq9%088?;Ws1+}>S=^rYc7<9Cy+O+yLo%V(? zBa&>yBjf2iPG54<-8a12hS3!K40EqK*{9lXIw$xq#xHzxJU3?45Wb0nK9M&$K60O5 z;QL6VK#xLYM5q6n1ONXui%PJD9}F{ca&mm)!a<)}FC<5LsqzGJGBPsN(j^`8R70zu z(zK7-B(qx<0n+4M!U+HKk2KJ{pgv?F#_|94{XfxETNhL9wJjVi(E05xBi&k(I8?9d z$WIFQmr7Xd_zaSQ!j$m3I(mLpx;gt!<7l|z)iVxV#{cHVFzj)qt_otJ)$`oBy)Y>X z#_`fPQb4j0ZFe2s%ggK92=R}3&=z3|?8G8&@XV1}C`+Af=y}cwT1si#*H7(eP6&72;0`^pSYAQYF_@^URKa-=+#De$bk&=hl`|Z!E z1?=!doe?d|c$zwiZDQnA+BER%tu*k9_jQaUEhmW$uNvIZ4K1-8{nnj)&X-87Ha(&@ zQz_!mj&Lwx8+4HF3j7_r|8V)}a`qIWo>9-E(dUQM)>DWRXa$iL`H8uon5QLI zfqgi+-;Df0oDHa?^`aWWoXLPtes%y0vITQKAV#Zh5I!EgG5cAMK~yKo7A7NdopW*d zcV*~0tcQR;dz&Fs^xGqGrt%9-MfT9SzeZ z)J&!5NsA#(6WqCpD3yBjHpa*r5Qm(zigxc!IDXmyE9LyEDpu(8Tr}3*+be3p5|YsA zK%pfFj<9OeyTMDSte*uYrj8-Ro=Nu6vy3$u9>oJ2rqo*CDIsRX8;Z$qG}*(R_K{G; zp*Y%00%O9{+OoTq(kK1F^pz-Z6X?-hFzEG)UMvV-xV0RceRwdhjOU${5jj5;SNOtw zHe*rlRyW@CN6%DEJj_v)0-g$Y4A|hT)#n>{wgun4F<-iJ5 ztDr+eBkjDrzaL6iCddG4JUCoQgZcRSqB&4#mcR)Rm4GXf3UOjd1+#7LI{o~TAimt# z7Sr87pT3+VoIE5BrH&!Gm>VGF|2=J3tzQ1OW>|XsNjZ>z=P>$W%lA>|SxBQx)wPfq zPa33n$U(*P!!BoZ3xuwk^+ABkg_sPRyP;M zp#Mp<74SjB(MS-Qy|T!pfzhsCF=OllmS6B-q|?Utxb{%2M-xA)FyoQL+}qbzrIy(psoyrt3lPtLGs@Y-wi!1#>r&K-eE4Jb|$53nKg7Vrjd?k4YTGkx4l`14O zZ$b_F+RKZHSasT-F>3uYm5{9(!rcl==tyEV51qUQAxbx26Uy`><*aC03H|BW8GGna z*k0lR`?&x*(1yySSqVe6z=y>L08@^C_JhpHvo)#XGJWX_5#dA#OiQagrR=Z{_ie2BKVO3FFm7?X(6{Znue+2sCGo1MHOQ zlMqG#sn*-w(xaCvEZ4(B&zdl^97@b44}32EGYOjur}>0VplyQg^wB@4GWnzyA1t4s zru?_ssv4%ZDfpm;aMUADYS-F?5|zA$Ulr|0DI!7JVOzClB*pw@Z^nt)Wh%5!L@L|H zs&$wvjkcMr%P9$R=R5E0&gpP?_qyR*{oc|M%K>>sKGUEe7LB~aTO`|0Ld_~UhqAua zwTq)_7YvY6C+1l|r&@9rC4P;Kci1u=_G)h9hjTVhZIR06IlLwKI!}BNwzaht4e%gu zp5>)E3 zmMC>Y_wwXxEnejS5|<+ytYU5VlW>>ZhvuU$?B%0RyZW4^r4AAgl@E|$nQ*=96*-ek zA>sbE>~^}eI@{rNL+=s6?D=l`U5(#UT+J>6FHmB|K9l{`apV!vc+NYGBS3AUJO)PH z(u$wIR4u{77(rlF!^@4)Miv7(Y$3#1|4Lp{O$#=2XTSe+{iof4R8PIUjAyho?U#cS|`GUSRQcx&CS>x>r z_RY4pLzVt+Tff%wzVv<&cF7Og_u!*lw~-6kWZX3QXZFCbK@r+oKv&pM7pD03prhFc z^;|!hp{iKW`dO!{IYbOK7U9oK{}U!aKotMQL-AeGdtDI)DeFpR)SO^)p8vtsDppA{ zrkCcdng?vD={~UGvh{VXVn(o(?)kMDL#_)yypkEG{kIO3h%$3RwVKHgsci4B{B*!KnsD1E}yeK>Jhi`ZB(0aPAGBDU|9apnWH3@o;+z7n?) zm{>RDSSF`3{eBW9=7feJ+i#lut7wp%wHo~wU{Yf`!B7UL%FfU;nr_R^Cy3K#G~CaR z!`+LYF4Q&R%~ClAp5^h^;Ll>i%-}pRpk{wI$hzf0{c&no+G9b5=hTomXZJbZ53{D6 zY{R?UN)vOzauy9hntN8ZVDSyB*D#Hlq#HX&u`=zu1um7Fj~_Z?f+~)C zR#0|F(>8e+Q`$DYKa)WA^zluQG^=$?UY#6351l&t_C9qK+-E57q4ea@&0(@aQN5aV zxQJcqPmZl4a|Mi$W#Wuc!RDSAB5Qk?SF6GgsPUGL4e7^PdL2_Mi&__4u%_%4MU-cU z%e5#@O!K@5GknCP40@P+iDV{N;1X6N^D0oI3u^H3uFrmwb7o);zjGt!aIGKBxoGpk zI@)g2U?{rEyqmk5c!RucXZ1()dT`MT!?@5YHnP6J_SsoTfTHh}`%`qWhTH>`R>E;W z1|xLu*b=sZufCCRH%d*bNYVyek@fAMhZMUf13f!Wtb343a4{Dj!5ORT6eYzuUPNf? zrcZP>3pL%>jY+u2v$ljsyC;#fI0T8cbCE6FltK>k*xi{nNxK98jBZawihSMjtzp3#EvH* zf2q2(iJtc>X@bN|cTMYL(^t$&0+e3HsQY+D;rNK}Bs{ObB7GD^&v%rdwwy-(Ih5!0 z!BD(ofHS3v-^fo^{XfTx|gaN)w;%tO}*gBFtN-szi;&Y3|S8@N0TcoUGoy z;Avn3r)tN}8V+uoqJ&v%FD}kty_7N6`CLb|iXU%CsT;R1Dr8vB7BQKqmK@Mr*;8oW zU!}JUFNF=kne^KVRAyia6e=p!Dt&zzWcl1BOBV0)o{q?`4y2e0Or53n>a90ZL~pc7 zyd+*3P_6bJECNJg4>@;089-1j6j{vcJ43ZqGALb;&coUJOdBvFMPmOqH*e>`pWfx> z=H`B0prN6eX;xZ03&_Xz6|^nw(TZQ>ETJ|z^?&9?PsQSYWlQI-ypuS}5Zk|t!@7Lz z1fU)hZKT-mUwz~hkHnGCWx>0EvX+>axSXw?f)W;P*7y?C1kIi7q2|O#X$udU^^Nw- z(8zs6m67shfh6fJ!{VgQS4*-{xFCWVgs*)oF{^QorF*+dPF5}*0LDB;L+l2#deiapJUUvNS5<`e8;EuNRa&xKeS$7D)q zi!E!V1bb>j95t$6<gYgwS6kJsa^?{Z+S!A?`$wwF0V{*NOQux=pbBynuO>YOo*0^! z?zZrk8@~p;RZ9qGO{jv+S4Q$wC1XwOngaebs*%0<5RWbOsb1R+{eBY>Z68 z8Pc9Od!@?L(Cn;*5e>j?R$AUrPS#Q@;1bSa_y%KZkD_iSbxz#F;guTi{86v~=~_h7 z08->|92H#}&Ym=@OQvYS?nMbq(^_waRvlH&kf!P*)?~M&cuPw%8P}XSisw$J#9C@$ z7=QM!?~~1Gua@~uQ6jPM80*z3YH`Y}Ni{#epmo5-&F-165QydgYRFW7jUCz~pk0S= zP(br~?K;5&Rev6ysULAKi|;&H8=qz1OfQf82#3$`IHFc1B30~MK;C&*z(4H&r)?{R z;Mg8anrU@(XA)oFLwY{mubi@^2;G=cG#iB9hlfVHaOO=%I&F4gN$O|C$yl%||A$bv zyPgB|#y;!t3_V(q_BbbL=|}_c)byKp(z?llzf<)X!F9h#S7{E$VQpCZjz?T-cj19i ze8IsiG`lS|gssCEW4RSSZuney_~GBmb=d_tH(Zg6bKhhFP=5hGTq;Ir-o(SuhBZE1 zOMeRm{6&uqJT#T}7IMgz=pWRG*Y>;mZRwFtMNwuh_0vzb0_=cX`3o%Q7I$eyfWqp? zw=61XHrDbQDH=4Do+7V&tKx-@{E$Yfi;jnWa~*}!xid>rWQkxlIv<=pcwE-OhXz5>0XEvwt6DV>ECROU zNM90*wWAF3QjEj$y5M&BeZ+mKxsySXhm1Xp#oC;v!7)WNG!?+zrvHk$4nTVJ(2_JZ zN}*Y`RL(wU0aCE0PJ-2!YpxR>x&@m8szCrWk8DIxJo{0|-#SshQvINumP56$Xazi< z70W?={B$ZVW}H1I5@`1SrcC26DD6uZ+ zAg6Ic0In!P?{I)nlTl$~wwc?U38HJF62W9}{rmXu1fc_w!*U+(7{??f_=~k}Y^eXO zPJGnq#x8^4I5?jALp_p*0)EJ?rdHzEGGX8Ss(*8oz8r&i599{M6L`%065`^w=N`9O zHpL6UeCwYQ>8%bYIA*iH?gup%n35FHL=+K$%uau4b;ndy=`6H9p_?mstQF-FTq0S( z1>pCx{2yKKRJ2=J9GZgk#&1x(tZAQ4hz4@Q5n8MC42uR*W|3i1b2CI2a0AI^PVZs#(4;Ur+UbacjU#A5Zy@Xh!|3iX;`4gxZ+9W~tE7Xrl%OpJr`s;__x0J6eBdrph(JotqTus)oK!N`rcS zZh_$&0{;hrvHU)*MCS3DK{>Y+XaQ_2!)T;Xq`P>(22|C? z`Evp}8t~$n-a;nB+PWQ8!<9jPtGlqm@Yi+z{xU|of@UO;p+fn_=6CBNX!aB^F8WsxIC8US2UlK z%UaT;@bIKSkyvSmhj)ZVv3rAPPeAr|JbJ3oXsQ8d^L zehjHq8B*iSjZA(OyVsFqWx?nNIhogYmf;!xDotl@Jy?Mt?B{^E#3BFykl;z9uga8k zbW%|2^L^fE&u-k#maeeD_0VV$Z!=6V*i`|zwL*Ewm6NYEBi|52MTNQVjTb86nra;z zhjl*q1Miv!6hG8H#cHwP2rB?iZEO(#50Q&eqnQ}%yd|;Xr>H@i&PpH2B&z1wYC(qp z4?lljO)IN$V2X*mKe5fjDZPUG$ugE^Yh0Uy0=4>Y)W!>xr_M{AKZ^tVL;EuVzAclz zPOAk0MFJ52W1v#y7SHSWVp?`zp75xZO_UZ7203l8!p*;&=i$8k-X^P3$cJow-_`z| zz?Ep`?i!7HGrOHP0#k3l&Yjn37@T)(YF!~Am;=&yS z)i|u7z{>ltNsr6mg);5>IPTqAof;s?o>jwhMQ1i59`AI^@Z#kWmf^>o6zHzi&@1<|FSDk)Hi0>~P?b+y;W2oHGFC846 zd`D4A<-ueyN(5^=!8dAN+vHPVN%(D8CxiT=I{AKr(QE#A>Z}GIt-_LblTikhz zt#YUOah-cbSts>q-0^?>Wu4gec7WGOK^=9;%>@NCI4|n}pO2!5u3%;_q$o17e9>;> zU7sVa#v$dS6a)Q*iLs(p$OqP0Mp`jH3yQ^I&~AZ7ixETsdL)Q~0>%Hknb1qI)1An> zOh_Jg9KQBSm~x?%G-S{uZF8p=3&G7{67iC{%RhCo2Y`FMmm-TusqZ-V%$7U*b>BOzgzh({njy3Ey zJO~^sY1i2e`-RivlA^Hhi+;$>2!?^DK{V&ZFiac09IM3Fm*R<&T8vXqe`1uh7{@f-Rqv~g&Y3=p_or2yu znDM?olNfQj(C<-@oRj0y&>r$3BA zP8@QP9wUk&klm2^G$?i0!-8jvvFiGm00Aa(&IhyQ1xJ*%-x+wJhivSX&J)W{dhJFp5+OEtwR{DS>aJn|at={eFd0x??V9VP0O zQ$h>FA+*>FG5k*KV$9V+f+LQ@fbbQygj^@d0<%0<4-QFWePBh1Dqk$*C&t#ns@M8n zLOJ9QDURzM0+ns4Cc^Zxtw;n03ayl*C^2q~Np{-g56?931iXaCRSTz_PPEIs%ZR%t z+20xx^iHT{AOfC0^S#J zulBH|y2BK0V@Wne$`(48MI-LTPrluB!E)WU&toZsoaflaO5;o%;f^`)ihR&F1N^fB%iQ+q8ILv8;qRUgpg%u|6jA}f-#73s{-0d+mN4QVD$|IuR%KyR!Y34|dr*E>9 z`+WxpDI^?fk99oie)kb}g7uO|8Th*_UU)T&dK+3TdCs`o>g}oL&K$=1xo-cMEd0ce z=zxbXvk*tjSRebSxF|cxwFk_aJZD#%LvOTqUwT>Rl2g3cQS{@j>9XzW4(x!RteD%= z-+Z!AyZx+?!j_Mk1^=X*<1UA%l}&J@9?EV+^dx)rnuckSyPu_xDZCa_tl8Q27A+9w zXF|aY4MTF zlu~7H3Q>pO`FQ?E=y1iE!|&w)jp)xix@;v0+ar}%Q?gjra3Q9b55uPaq?1IF)j@RRt(+xjx%ULMmMfGhLr>EN?8DZgCR~T^Ol{{eTVs*1C z{D06j3L(py65?H|E^lMe-*fsiA1=j-D9Q3u3*t%KVdu`y0L(}e({E!(mm7ou{R~nK z^UL~aGacH4KJ52fvWw)obdbU;D82tYJO#4PotF!=ADFir=&{P2%4&@Pw-%(oHZ{lU#Z{N%|6Tpchl$zxM5;){XxaO3Ayn;WxtRZJ z`YM7D7ZTFTTYydG90I~Xug%mSLUS_toRgR~U--^GU26lWrV-ePsXjLsQ}dLiD%{Ss z*D8S^1~!ts8 zvKu}8AjG2aT&%xK=+on`K&@xy_gfFiQg6z|N25vbR|=#c<$bbg>vFet^zyxyjdHom zlTCObOmpM6*shxHCs^qE%w$0ivt&1P*1@0}o;ki(7&ZO<+<|zBvz#!(A^&brPN7t~ zbp+9G=tG>dv+Lt8-c;-bi#r2**UCJoJ>j|z6_?;s!}08iaATt#+e54=vgU)$!$la- z;R%;1uD(T6YNbJ3G^W*^FYC+Ga1n*ub5LXNz|(rG9fVW!cq^=>yNNCwV*}xh01$fN zdh}C6ZC}w8Wj(se_ps5u#U89oLy*6buxxxwc_qNoP~I$K{%3O|k_{!iJvHW3Bbxng z!FcTb9-Lr%8qzfZes9}3R7}ELUqMlhTge>&FNKZNZM`(X)9OdDvJ7mjvva;D8y>^d zkR7g*QI}TmUHqaH;{8y&C>05KD8BSpR1Mi5ac@xX<$xkmi^59{NN)+5G>TN6m7vev z=~>_r@SvMW(LWYkn>xF|)Kr{2Q6MQV8KRT>+-oX|^5A~w2^@3G#V&<~2%Ox&jg2Bj-!<7>Q+M6DM<7*x~_D}s$u>ugCcv)^VqEMak zL`^_U8g*L$LxvT^Wec{P_vEK9Gjmz!#?en=;R}isRE`e$Y~bYN?b(855L`}_Id`vV zuX?ontq9g&-1~;{Zno;U$GBI@$H$d1tvoVTzetnHW@`4%xazWTqG!|}h9YZ(aQ59% z!44FsQ?i^#x%FxmjX^TDy8dX+=!bY~xqCALY9S6pVF%^e3VYj*Mdb=9Eyr$>yV@Lo_)0TohEk2lhus2xD>;zwS8amac z0KUSyI9TY#nC!u}!uEy2A;wU&3OZ;O>lqV*6Hl z50HMpHfe(m00oHLvH*VO3xH`l{DH8^i}ACU`hSL34GHJV-as0ALK zShyldm0S@K+G2bC(G|B6m9hLisW&!H1FgL44M}26W^xy*`4njo-bI(`oD1SI1iK{u zY__|K%2V8bK>NHoI%8l;DJc%*XKs?P7-%g{$fcR_F?QV30me{o5gi6r!ozw`{KA8N z5^bL-`3F2YkGjHG*uBr&Li>6!%cSM8u`vx)#^nzLm$c%Y%4IVb}$g3I-z?*%u*5<1CSeOw_7-iP*TElPEekg5^3 zvG=dCU|(kOkba`#jqvf36{)zzkM*NAJXiGo)ujzzW`(XW{anIJy zF1@$ljsQEY=T{3P^U_spexZ@stcP>@kK|e#MsfCmsWaalYL=pRu7+@K8pub-PS&i3 zP1SWoSJ@^S_J8-`>oc?N7L za{Fumd9aq&13z3-tKKN+fN{mGC)Ev%vrEQ1Oyv(J5sDK7K-HsytDzhg{Tig98_jen z@sOn2pe#DH)B^dL)<#8*$WAo61^0oiki2GsX<}-j%+U2-Y)_3tL#;#?Xu~C}%%(1>VVx?J^X`PvA$h52(;tvRnT`Af zVtsAx8|Ajs^IODOu}MR9EhsgKMS3z%`LSP3k{DnLkLroB>7R}L>-=WOt_6GEyro5X zP5mMhdolJoR5Is*w7Hp7D6X#HvWmA+q83P|k4ho+QZUu7N1`5MeUqz|kF_o70)0{C zKog!8{{RStM$uPmr`HR!(u?iLQKvGTa@j)zJhk5)@IwoKl&;iarEBY3w5_u$o;3#AA-)<+2PA7+$-rxPL zwb$}B^;*3ED}oRq)?|;UCY^itDYnXC@PgOPYg%?NPvWQJ)?AOnc1(_-$6cjJ!`G(9lQBm+o;;VsZCQcRm-?WQ1c%eEpUsffNmpA61b{lgB%>X&U z!8gl%&UC$NUIiLgsITX{vD^A=OQ?rU4nsUY1+vK+J2g| z6W^2>*yS&&X;hM95OOoj*@imemTIz}sPWpeSZ2Lt=Q&#J24I`R1CGUCZP#Li1NV2k zh6-2(ry>725WOQ!empYz#Oe3E&3iXDx`XS%*aq62k0o3_Q**pR2{ZEt()aR(Yw<$Y z5yytU^QC+4R=3vBiQ1U1Exf@OXT>P$e~pAi^j3* z;PqE_5U&aW`o(?ca9L@qaMgygEKG5;elXzd#Zk=*8JIL$Qz11Hz0GleA=)J~a7~0< zs+tFX>}nAEm0fImZY=RcVXPllSW3cJa%TTWd=H0gQ3{18{FvHeXL^Xsj z8f!Z%ow_AMQbYf9_0e@JZJ_F+8;v~)qfFl~fzxui5rr_tN8`6J*tc>#Iu0C2|LtEu zCst65Hi*(wDn)|jF}8wC($Nuy8i+r^}<%C9rgywF;psE!{t$vzzv^XgN+P=c((s3ujj(-&Mua{sP7%uranCPdND+=1Qgth8Ur;0D2 z_}(IYseNWNR<{GgF(i~28DNRG^Pgw7N_rR;26Ys=>{iYKOiyB;8bq_~cuz3OZJj z?Y!L0@Zr!{JUOCMV_9XeCDfAn|Q2HN7IMrUAk_qeIL$(Z<{> zOcWm79vfE)_dn22_2ijr^DJlnDsy-t!tdYk{6sb>JPnl5?d33;;csf8Rh8>l(7-bt zHV119F*f>9sZ-S6dGRv?3lf@&wykH$6-s{w>T9RrVE;VGcmFJk%*sLi;bT2WhY5MB;9Q58*F@H>2QBF!`B<0#sx#0|NrVuB-c}*K zZr9;N3)0!XA-OBlQ%hx7$4i}8swxB8e3#6Lf+zn()1W-le^IT&?;=`X#H!7>7kzUV z$FVCalnGE=MFi>vu6_gbf=U|dKlUg~kKAacL+hR!i&RFdX{OW)Y?!D8l7J_6yDsDU z9OVXlg3H>OsqqJ7MV}XHyn_0_rL1~d?^I}2+Ws@Wq3*DACoY{8%huARwo_Wk;Hybx z{m*V@fGN5a891NfFjg)I+)7*1-YIo>VYw@#njdL!{bXY~tB4GOCUF~hJ^MQHOHvk{ z(WWnBrPWkiuQPQ6LKD#qa}0kJ)amn*QIdo~pw8mWe1A7p2&WinIow=$(&@kT`r8b? ztHwx)h+CuYZIKBA*qD$Y_1sR5;LX?X3Mj?Uw3U36?Pu^!T;`(UyJQ;OMO|Cx+M|Ek zHJ>r+*h=2F*X)WpkbH>}FazMf28ATUoniMgL-5TPDD;Sgj~wDS=SuGIM)*pEw#^BRA;5nj9C zL3;PHn);)G&RU9=z~uPxtD+3uek^HLNw}&~1<7FRLjqK7QmHhcDwS#KoSoegk+Z=r_9re6XpO0;v#_ z$0Ns_6FxhN$|IVBCXPlsll_v;d})}MCE|r{BWSQC46@XO-hItKpEFhg}?0>$=l|cV1cHyZUMjg&RbG32%)0-|`MM z^kwGtwhRdr_1c5HxCR}nxf4Y77vL%PTHukPc~zqi7Jf&7>?!=vwdLVbrkI$F30RnG zpi6BaR89io^??V8#DMVdT6C2Rgx9ET#rEK|bEVAo3KP^If(}+sxKHx}6=QpfPEcln z$CG-pA_aK3*pE$YzRuW>7V!m3lK(@IXdOVi&7aJd%6)ecksKw;x;;(u*4U;^p~t_s%-3k`qq6l@DEnGY^jj-SQpe z@*uyoSkXK$y%-K&NP8`wDwGh^J|M6zgvm~cK!DDF_P{EA1?Oy9=yDj zIw?WiD6$a1|GArg|MwL`FM2XAh3;Uu3_xp>u&AP8k6^MMja)2Z&lSBkRVOCvrCm|j zjL7w2lqw~e&6~@_=1BuWP1*HrI|KL95S9S<{YNBRj__!o)8jc@pTs&h=M%W7Vt)Zi zdjVAMM9`yIFCBqG!jNkb!N700uI)!(Pf&5LSzjoOjur8wgjsSJ$x}4I5go=q{f7o` z6%T7!UQh`;67`{DRG)gHq9Mvd3y1U(iH$ zwPo|T`6mW+o2Bn{5KvB_gI~<~0(j#+tGs{?^s|Yx15OR^R&B<_4`^jwNR^pF#sC8w zftzB^+x8V6max`tI+O%~H#-_cFaOrNnxX344HAdGI$SQHS?cBSw=-Mkuf}X?TW&f- za9miDiKe{kfQj|ut8aiyAp3+8Hw}!TvlYUw{*jD)3CE)QOrm(7cnb!VA zWlE^H6KWrzvIi#g;)q{c(UOG9@P3LXztI~h2X`f&{Tzg5I!|Dm`Mp1nbYY8yIm=M5 zmNxAoH}TVa)H(rj_4XH`JwMF>u7`}lO8$WnF`-7@wOZD(M1E!AH#QU#nZ)N(w%wtx zLb3xkJ?;oP#xWP-&2auF!>)cf-fjYmgvn#M`=GTo*1r+dnZME?$-OVf`EF8g-Gsmt z2BmvGXh?V5B5_qdGJq-z*~rCC{J6i?@;& zBo;Q|8=-*f`oO{BT^5(M7NQ>Q#O|1Eq2pgqS){XdN#pD( zhphBEOzM4J8nGVlkE9q79U0bl{;&bjzz(?Ga-PMpKkeduyY8UfS|z)NQguFIWM&Sn zyOgj@wzL*;Bagxt#z?LY0Gd%Ic^aqMy_j6f0EXz2;Nt467YPks(2JBwg(er+5dk@s z)lEyjIV>J1*2UVIbt0ESv_-NqE6IYFE)5~+>6jTv*J4Sp8oEvCTJEU87gaJbhv^xp zJ9&;9(JrnGcj?}o%V@8L`poN1Dglc+kqub6c?KTlIL75$mBLa7=MPq*h=RNuqfLKy zrd`HMFNdl)+H{fHA+I8TU88N2GT!O%3b(zec2oMS~_&d*`^jE5}I5 zEWV4>mYNbC!l$h!dy6+m6IvPj!6qMMHSJX8I>=!USB2o(?8blh={+DP2hAs_s?fTy zfyl8TVNpIDV`li1r)*rem_i6)dnz;gNQbNLLCX1gUmG`Zd)-pz8Y{-Uy6wcPh@+{@ zcQU_!({}6mP85)q?KuFr$OytY*(QV8GR@Kx{#w~+&QfO`dT#JS>R->+(w@hB%3j3- z(7z99myClkZXnhKoG|OiKcWg7-B>GLU%!`C8cju? zTbfh0`!`nNwCwA}o~Sd_^m;$`7p#q=4?pmt@-AOli01s67ewlC>Gj!H&S9XUj8s_+=u-lZs@fG zK8eFbWRg&QYhPH^l9sK7#RW-htw~^ao)gX_w3znQdcYcUKh>PIITh!w| z`8N9oF>n(0V)H)FgXcGd`9bvtdn~#RsDRn4uZ&mfTch=`5bL#Vf}4Ya{fdsJmXowj-Io;C`V=F>uk$`55B-&a?oj{P$! zd(j#HP>c55-)`l>Y8&DTlTaab;5?6G7P=hTrs=LOhZ;><4D&l;o86U;V^p)%~ciZamA{GM~MC4Lg%;%6r z2*`86b>6;ULIK>#5k1@lTL6Jt>UJRkhMYsmi*7wxh|xRBxjo`VGw3s#~UG+V**zA-D^WElHv)gntl#%mvc< z>o}gkVY79P+$*|umVRRKtM}+gAacVYVojj-o15iKGnHQPMv|N9>&+hbL;9r$O18T&kw6GYMV2G8Lj>|!#=J~`i0|)%ci8pUiFd-Hq;zIjeWE}5# zWUL(#)tckHIR}JsbmT_5ZHKlce4MPBonNhAqlvSk0eTIzIvf=dt;}^hL~A0dqg987 z+`GcFwM3}#2> zJ*dsDYctu=2S|z9(;^fn3hD{{MBbHbu^XXdW#^s*5tF>Dc9S>y>@ zURn`yB#7cukVvPri2uK8Ije^#)V&MqMg^4=kOmP%=?3XWN=iBg5DAANhwg3|kZy2@ zp@)VUx&)arONP@5Otu)^9zJJDPm>gY0XNqIr`_a^{s!bd$5@ zdpj*@c@j1SU|!#4yiAAf_vwkW$?5GU7R>biM$>-P`$+l}ycMv3b;~7h*ihke z|H{{zn-bYgtcEw(*<1fo#aZ=rE0-1RU7XF9=E&7@kp=(gNO341$K)tQ5{gYNsgcIU zCm*@pDa|+J%aZg=d)Dt^Lre{vPX)}=#NtTMY`NEQ;ya)UDkROYs=@yZW;ZzPmhF0@ zSEF3>b1kU#U%+ zNlppDgxcR2+9Ikn6ou|PRDmjntm@z@Ng&$j@Aq0~FPa}0h2QN)g0B=gnP?BMe z1D=R=9i!BZv+D$}Zjf$zxoF*N>2R&sjh{0iqmJa^5)hC-mOoK98)CvGZktJS>)T7Z zCO00(t?yiAGYtKnnX$qBIwKZ(9PdY_MMA54u=`51cJFacuIlu}4@&t?K89Vh_rOmS zFDso+r`+0g{Z!?nkwTGA{cM^b_~zE5)Xpj+pFbW!`}{5kCKcRo<+%>?KHbgty_9^8 zlvHbrw&Vf^X5Z;tUbUmB0bp(CKM3MK3wvfDO;QtV!177f)4SyoDb%Z8aWPxF0(tP+{lvLB2ChVC=?kzAjLj6#gDO0ncgcuBqYGG58aY*r`GqNl0CoBGfRb}wqRytQr zU09NZa_~m$%Cew?AR>`?GQ*LgR%9cXdzSRA_Y<)T4(WL2GYyQBL8q5=j1~T(#4st& zY7`OeA|vr(bd^Pg(+vVQ&$NnwxxsPuU`jF+|#MaDG zjOfSVrV)eHqK|-1G9@-#zzImZG^Eciqu2IpQ^=)h4j-$9S%Yi^{ zFs(3$n)9yn!mSSKXbR^)c(d?u;7ek`r-h)x{&!)N6pm>S_4)5?xa-WFSWYIB%7fb; z&SIq)?TwEj(E?wCYbk$&z03{`qbN_X+)T>VVE5TKma-I{v`OWk1NiWm)JJFciywCO zsob^ZsX6N|=Z(l=P30}x;2S1UFxBK)v#l;$TgY4amz8c=YhxKpkhR;IGDJ$S$UA7U z;)oPRxiimdz%ljv&na;CV@P-SJJAXas-#mel5^ym+Wzi#@TOJG+mDuX#0RN!aC6~} z>y-HRF+;ya3eg&m8zfis9gY+S-PV&P?_+^LBYF+>3x>zWQu_AZ_W)JjN$jr4y*5SW(ee?ugG&*OBg zJk21ahltPN1+!)QfAq*m``e*{!605+*U}nz^!1w`Hr{AVbKSgpu|8&nguw7>9J%ay ztqKug`T1VzKcKRY@i5ibXXZwCt_MXc>l&W6|1MATLwo2kgO*Lz5LWDF^h^syy30lP zb;1u!O%io%m*kbIh~MMc=77#B`q@oc+=JtBM3JmYwoX99xncXHd1DFKMG6I1!w17^uKcTGUwJN~ z@su*l)+c+mm2h%NO;*tBxz<;45(ckF9hiff5sPw5OmH)wMZ`zIQ^m$25p$@<`|54t z>F|r3e5%4_yP$A+JuD ztR-d$&}eM#3kE~fDXx@K#P7zIDlyM;k+&mn)M?ti`yPiYwnVmL#Ve@Bb_cXeKFV&6 z{UGgF4Y!?wO=5vBa7K_;!omi~P7x)&lM-mEMjvfZau|c~EFF~6a3x`=Oxe?LG0g{& zuJHALz;4Fq_FpATz^$cM^LI0ZAsZEr1`SK-Sm|MIwX=Hf^MVLCO9e+l0J) z#ZJ;J1ymPCL!%3Wn)~TqRB>xlk*Ai}?(Lym$MH)h8t{vY1RJyrpREcM$^$d(u_hY$ zAfCu?uEk+`!lj#`y~PO$tEfD1)`YwrRduCWKx0c+ySx}kIlneb-tJgkmuIVTk?D?} z2(W{ALc7y;2;9(quB)etU~!e_VeD3_<{a9tpql zX2?=wpA(6nRU6KsZt?i$a%%DBhO~2%qw@DrtM+xZEOm2$MUO0+7ij4T=aL^Kb4q24~eU9X6;6SGmdMWuRT?mo*OU06~b4m@5Ef~Ldc#du# zmbV3dfgT{yfq&3=T981ff%j#{*OiV1N!wRLRz(LVUI8K?QgycpKQD6Ff&gRxD)4MZ zqPMgULKaHvGEq1z!*@ZpPrMTFie2ee*@iwEXNkTi@3-zf%w7TVt2rep7*+mM_cIPR zp|tyXOELM{a-%v8{b7s!(}1dP=gZ|@qeD&)RHv5mFX@Uc^{oV!<7l%u2@Ocl-pQ$ z8uYmcJ04dMf|knw6jY^vZ8mQ^OJFM-soplWJI$}9<-*AsY6}XJ9Ukk+EX%nVb+3tu zP+mvGu;+%6Ar$ zQ~_kTdJZV$basQliUfbUV~i>(nIE_9Jv({}wOLL(wdm;IiBoQle85P5*zRb!Xbr1t zU28L)X^~cZQVA5ukgMUY1~<~C;B01Js+Z+Ak7R_?2Z^1BbHMOW#UY*a8$8zB_ge3T zSFu!V$RE(ZlDyq|Q3!D9BJ-uNmxojg|MqZAww|pMkL_9Wj%-?OSA|)?n(S9ZaTvx0 zRz|@F>OV7_Lr!MRwhp#q7B-d8w|00rUaCt}d5A#Fw96D^MEcQ?Pi_c-waiJjo-a?z zo5ch&M>#vms=JptEWI!eMPjsQ0^8k3V6T<{be6hWI%nxkW6C3H^81H-`#l>vW)9?0 zP}i58H(HN#%AQIVL9xtizJ$szSoIGzgy^$3;?}o|=Cmjf)o&Lddpo;&^f(3;!QMPT z68W!TJr5gO>&VK^Y)nTh3>9XDC|qd&#O9q_ZuJyS7-e=oaT{j$zj^Ny@^fyMA0NbTDHo2k zKltsv|KS@`+0`^u6OvVe?F{kQ-W=gCkNu5j2s{wcA$#2?N4;qDFuQBEL&aMHxAgl6 z{O)MU;Z@&agjBLlfIu!9&rw!w9YLD4d|6tO7pEy?;yCuI4rVa1T9O^+J6sw9BDOM{NuYg_Ib1RPx1F>Fc`N-kXLOreS+Y7np3qyw+H2IY-yR+8jI}rG^6C4hY z3w1gyKFWzFiX#s-&WqqGS;X~e1H`zT?3%4U%r4A<4t`kn>%}6*M#Z(IZb9XdcGj== zsjGjt!y&8|Kd1Itolln@Itp^M*bh#cSJo;+I)*LGE~{;lPh2dx!vt1TY(&U2pGo^q zd%XD%fh~R6X>Cj}T-0agU&I-k*+#HyWTM=GIj)5Os#F5nA2E>zlqz!G)sQ8Iu#mKl z$F(E`C8sfXPQ7~r2_NW~-+;l#Q59aKuhkC2q|To8uQz6t1{t2Onp}mKMLz3BObftl z%PB@=Hy>nrJF%X3r+shTHT^kV|JSW+rL2O~_AekP_}ecfEqccrgG&Wsu&W1J`Vak7 zTtW6phuR=8H|G=HSL$AlBl3&~heX87<7ceSV{0P%%Q}ab71IiM>4zjZM>02w?k2yy;9JVN;%>X&C zHZOM`^o8HSW_pMLfb6Z6QR0rS=A#H#%R!FI0ds~>JeiFLAYf48j|6V@)G3=@%gk~6 z0B+ygql}u%=EbA4bJ-8p3}pu4(h2%44F;#u$7m~8%RE%K6r>{aem7DOC8ta zrZw3@oS0avTU!C?s7!{twG|{cw-REXECT1U;1PEn{h7?*<3o~k7)cpDA2U<_v4GPP znGkDkSyz*~Fokbfe+$>Azh(UU)7)%E+u7H0?cH>dl-q31JC}HVYl1MWb68XoZ17V+ zj97hu7u`5-7s4%L4{CH*hRM#Yc^&?0-CHE&7&J87ol)qnTW(UUO&%DG4k1T+m2Ssi zUoD?|u`1W%vSSNkeiCi={_;`>HvB-Hw?bF9+az!9Q`qiW2uA5*uRNsQB?sR%-E+?N#R73>!ud=Ax`Yg zW9~zywQ(t0rm6M4dskri#vZLo1(uQEVbEE;#^sDq(GxJ5SHeqtqf97DEIn<^%7^j0 z@1($bR5W`2{? zEf3^ZdyRrPtIm@++nQQ&zYuB6kKJzFH6Szwjg*!(36+|`q9A;fNy$uXRg{Gv$Q zd;P6vUN8f5#!Yty10+yw_vv*OTO7H}T#jpUF6WSXe=YZ+Hrz*C+_AGYGiqy)P z<(JzBEtdei8fyg^qrN=d@rim_ zd|}+0zu08zk7zOWI`e-l;^K?HTy_mPmTo#ne|6k>un0}J$J4$xZG0>~^C+JjBH126;ozxLq&$#|2*k4S z?K;P<8*NjwLh1BBJ;-OJ-4)@NU2{85P2Q)D>V#mb0T>ryrL*Ji(`dE<={t*;-#b5& zhG1dSM!J`r$oxN_^H>iAJ&y#x4CoQBGC1LfSO&Uq(v^-T(jq literal 22829 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

NN+_Kq+_IuE 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 MTU = 1500 Bytes, BT MTU = 255 Bytes)| -| -------------- | ------------ | ------------------------------------------- | -| IPv4 for WiFi | 30 + 8 + 20 = 58 | (1500 - 58)/1500 = 96.13% | -| IPv6 for WiFi | 30 + 8 + 40 = 78 | (1500 - 78)/1500 = 94.8% | -| NewIP for WiFi | 30 + 8 + 5 = 43 | (1500 - 43)/1500 = 97.13% | +| Scenario | Header Overhead (Bytes) | Payload Transmission Efficiency
(Wi-Fi MTU = 1500 Bytes, BT MTU = 255 Bytes)| +| --------------- | ------------ | ------------------------------------------- | +| IPv4 for Wi-Fi | 30 + 8 + 20 = 58 | (1500 - 58)/1500 = 96.13% | +| IPv6 for Wi-Fi | 30 + 8 + 40 = 78 | (1500 - 78)/1500 = 94.8% | +| New IP for Wi-Fi | 30 + 8 + 5 = 43 | (1500 - 43)/1500 = 97.13% | ## Variable-Length Header Format -The figure below shows a New IP WiFi packet header. "EtherType = 0xEADD" in the LLC header identifies the packet. **Bitmap** is a binary sequence. The value of each binary bit indicates the existence of a feature. +The following figure shows a New IP Wi-Fi packet header. "EtherType = 0xEADD" in the LLC header identifies the New IP packet. A bitmap is a binary sequence. The value of each binary bit indicates whether a field is carried in the New IP header. That is, the New IP header can be customized based on service requirements. ![](figures/newip-header.png) - **Dispatch** indicates the encapsulation type. The value **0b0** indicates the New IP encapsulation child class, which is 1 bit long (**0b** indicates that the following values are binary). -- **Bitmap** is of variable length. By default, it is seven bits following the **Dispatch** valid bit. The length of **Bitmap** can be extended contiguously. The last bit **0** of **Bitmap** indicates the end of **Bitmap**. The last bit **1** means to extend the **Bitmap** one byte until the last bit **0**. +- **Bitmap** is of variable length. By default, it is seven bits following the **Dispatch** valid bit. The length of **Bitmap** can be extended contiguously. If the last bit of **Bitmap** is **0**, it indicates the end of **Bitmap**. If the last bit is **1**, it means one more byte until the last bit **0**. - **Value** indicates the field value. The length is an integer multiple of 1 byte. The value type and length are determined by the semantic table of the header field. The **Bitmap** field is defined as follows: -| Bitmap Identifier | Bitops | Field Length (Byte) | Setting | Remarks | -| -------------------------- | ------ | ---------------- | -------------- | --------------------------------------- | -| Bitmap 1st Byte: | - | - | - | - | -| Dispatch flag | 0 | It does not indicate a specific field. | Set to **0**. | The value **0** indicates a New IP packet; **1** indicates a non-New-IP packet. | -| TTL | 1 | 1 | Set to **1**. | Indicates the number of remaining hops. | -| Total Length | 2 | 2 | Set to **0** for UDP and **1** for TCP.| Total length of a New IP packet (including the header length). | -| Next Header | 3 | 1 | Set to **1**. | Protocol type. | -| Reserve | 4 | Reserved | Set to **0**. | Reserved. | -| Dest Address | 5 | Variable length (1 to 8 bytes)| Set to **1**. | Destination address. | -| Source Address | 6 | Variable length (1 to 8 bytes)| Determined by the protocol.| Source address. | -| Flag bit, indicating whether there is the second byte| 7 | It does not indicate a specific field. | - | The value **0** indicates the end of this bitmap. The value **1** indicates another 8-bit bitmap.| -| Bitmap 2nd Byte: | - | - | - | - | -| Header Length | 0 | 1 | - | Length of the New IP packet header. | -| Reserve | 1 | Reserved | Set to **0**. | - | -| Reserve | 2 | Reserved | Set to **0**. | - | -| Reserve | 3 | Reserved | Set to **0**. | - | -| Reserve | 4 | Reserved | Set to **0**. | - | -| Reserve | 5 | Reserved | Set to **0**. | - | -| Reserve | 6 | Reserved | Set to **0**. | - | -| Flag bit, indicating whether there is the third byte| 7 | It does not indicate a specific field. | Set to **0**. | The value **0** indicates the end of this bitmap. The value **1** indicates another 8-bit bitmap.| - -The bitmap fields in New IP are processed as follows: +| Bitmap Identifier | Bitops | Length of the Field Carried (Byte) | Setting | Remarks | +| ---------------------------- | ------ | ---------------- | -------------- | --------------------------------------- | +| Bitmap first byte | - | - | - | The eight bits are from the most significant bit to the least significant bit. | +| Dispatch | 0 | - | Set to **0**. | **0**: indicates a New IP packet; **1**: indicates a non-New-IP packet. | +| Whether the packet header carries the TTL | 1 | 1 | Set to **1**. | Indicates the number of remaining hops. | +| Whether the packet header carries the total length | 2 | 2 | Set to **0** for UDP and **1** for TCP.| Total length of the new IP packet (including the header) | +| Whether the packet header carries the Next Header | 3 | 1 | Set to **1**. | Protocol type. | +| Reserve | 4 | Reserved | Set to **0**. | Reserved. | +| Whether the packet header carries the destination address | 5 | Variable length (1 to 8 bytes)| Set to **1**. | Destination address. | +| Whether the packet header carries the source address| 6 | Variable length (1 to 8 bytes)| Determined by the protocol.| Source address. | +| Flag bit, indicating whether there is the second byte | 7 | - | - | **0**: indicates the end of the bitmap. **1**: indicates another 8-bit bitmap.| +| Bitmap second byte | - | - | - | The eight bits are from the most significant bit to the least significant bit. | +| Whether the packet header carries the header Length | 0 | 1 | - | New IP header length. | +| Reserve | 1 | Reserved | Set to **0**. | - | +| Reserve | 2 | Reserved | Set to **0**. | - | +| Reserve | 3 | Reserved | Set to **0**. | - | +| Reserve | 4 | Reserved | Set to **0**. | - | +| Reserve | 5 | Reserved | Set to **0**. | - | +| Reserve | 6 | Reserved | Set to **0**. | - | +| Flag bit, indicating whether there is the third byte | 7 | - | - | **0**: indicates the end of the bitmap. **1**: indicates another 8-bit bitmap.| + +The New IP header is parsed as follows: Only the bitmap fields defined in New IP are parsed. All the bitmap fields with unknown semantics are skipped. The start position of the packet is located for parsing based on the header length. If the packet header contains bitmap fields with unknown semantics and does not contain the header length, the packet will be discarded. ## Variable-Length Address Format -New IP uses variable-length addresses. The address itself indicates the length of the address. The address encoding format is as follows: +Different from IPv4 and IPv6, which use fixed-length addresses, New IP supports variable-length addresses and parse of the address length. The packet header may not carry the address length field. The encoding format of new IP addresses is as follows: | First Byte | Semantics | Valid Range of Address | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | @@ -88,30 +88,40 @@ New IP uses variable-length addresses. The address itself indicates the length o ## New IP Configuration -Configure related settings and dependencies during kernel compilation to enable New IP. The New IP configuration is as follows: +### Enabling New IP -```c +Only the Linux 5.10 kernel of the RK3568 development board supports the New IP kernel protocol stack. To enable New IP, search for "NEWIP" in the kernel module configuration file of the RK3568 development board and set related parameters as follows: + +``` +# kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig CONFIG_NEWIP=y // Enable the New IP kernel protocol stack. -CONFIG_NEWIP_HOOKS=y // Enable New IP processing with hooks. +CONFIG_NEWIP_HOOKS=y // Enable New IP stub functions to be dynamically registered non-disruptively. This feature must be enabled when New IP is enabled. +VENDOR_HOOKS=y // Enable the basic kernel instrumentation framework. New IP depends on this setting. It is enabled by default for the RK3568 development board. ``` -Set the following dependency: +Run the following command to check whether the New IP protocol stack is successfully enabled: -```c -VENDOR_HOOKS=y // Enable the kernel function hooking framework. +``` +find out/ -name *nip*.o +... +out/kernel/OBJ/linux-5.10/net/newip/nip_addrconf_core.o +out/kernel/OBJ/linux-5.10/net/newip/nip_hdr_decap.o +out/kernel/OBJ/linux-5.10/net/newip/nip_addr.o +out/kernel/OBJ/linux-5.10/net/newip/nip_checksum.o +out/kernel/OBJ/linux-5.10/net/newip/tcp_nip_output.o +... ``` -**NOTE** - -- Only the Linux 5.10 kernel supports the New IP kernel protocol stack. -- All native kernel code must be intrusively modified by hooks. +> **NOTE** +> +> All native kernel code must be non-disruptively modified into stub functions. For example, when New IP is added to the common process of IPv4/IPv6 stacks, you need to break into New IP stubs instead of calling New IP functions directly. After New IP is enabled, register the New IP functions with the function pointers during module initialization. Then, the New IP functions can be called in the common IPv4/IPv6 process through the function pointers. ```c /* Register the New IP ehash function with the kernel. */ register_trace_ninet_ehashfn_hook(&ninet_ehashfn_hook, NULL); -/* The following is the general entry function of IPv4 and IPv6 protocol stacks. Add the processing related to the New IP protocol stack to the general entry function. */ +/* Add the New IP stack processing to the general entry function of IPv4/IPv6 stacks. */ static u32 sk_ehashfn(const struct sock *sk) { /* IPv6 */ @@ -127,7 +137,7 @@ static u32 sk_ehashfn(const struct sock *sk) if (sk->sk_family == AF_NINET) { u32 ret = 0; - /* ehash function registered by New IP */ + /* Register the New IP ehash function. */ trace_ninet_ehashfn_hook(sock_net(sk), &sk->sk_nip_rcv_saddr, sk->sk_num, &sk->sk_nip_daddr, sk->sk_dport, &ret); return ret; @@ -141,47 +151,35 @@ static u32 sk_ehashfn(const struct sock *sk) } ``` +### Disabling New IP +To disable New IP, search for "NEWIP" in the kernel module configuration file of the RK3568 development board and delete or comment out "CONFIG_NEWIP=y" and "CONFIG_NEWIP_HOOKS=y". -Run the following command to check whether the New IP protocol stack code is successfully enabled: - -```c -find out/ -name *nip*.o -out/rk3568/obj/third_party/glib/glib/glib_source/guniprop.o -out/kernel/OBJ/linux-5.10/net/newip/nip_addrconf_core.o -out/kernel/OBJ/linux-5.10/net/newip/nip_hdr_decap.o -out/kernel/OBJ/linux-5.10/net/newip/nip_addr.o -out/kernel/OBJ/linux-5.10/net/newip/nip_checksum.o -out/kernel/OBJ/linux-5.10/net/newip/tcp_nip_output.o -... ``` - -Disable the New IP kernel protocol stack, delete **CONFIG_NEWIP** and the **out/kernel** directory, and start the build again. - -```c +# kernel/linux/config/linux-5.10/arch/arm64/configs/rk3568_standard_defconfig # CONFIG_NEWIP is not set # CONFIG_NEWIP_HOOKS is not set ``` ## New IP APIs -The user-mode application calls the socket API to create a New IP socket and uses the New IP frame header encapsulation to receive and transmit packets. The following table lists the New IP socket functions. +The user-mode application calls **socket()** to create a New IP socket and uses the New IP frame header encapsulation to send and receive packets. The following table lists the socket APIs for New IP. -| Function | Input | Output | Return Value | Function Description | +| API | Input | Output | Return Value | Description | | -------- | ------------------------------------------------------------ | ---------------------------------------------- | ---------------- | ------------------------------------------------------------ | -| socket | int **domain**, int type, int **protocol** | NA | Socket handle **sockfd**.| Creates a **socket** instance for New IP.
**domain** must be **AF_NINET**, which indicates a New IP socket.
**protocol** can be **IPPROTO_TCP** or **IPPROTO_UDP**.
This function returns the handle of the **socket** instance created.| -| bind | int sockfd, const **struct sockaddr_nin** *myaddr, socklen_t addrlen | NA | Error code. The value is an integer. | Binds the **socket** instance to the specified IP address and port.
**myaddr->sin_family** must be **AF_NINET**.| -| listen | int socket, int backlog | NA | Error code. The value is an integer. | Listens for the New IP address and port from the server. | -| connect | int sockfd, const **struct sockaddr_nin** *addr, aocklen_t addrlen | NA | Error code. The value is an integer. | Sets up a connection between the client and the server. | +| socket | int **domain**, int type, int **protocol** | NA | Socket handle **sockfd**.| Creates a New IP socket.
**domain** must be **AF_NINET**, which indicates a New IP socket.
**protocol** can be **IPPROTO_TCP** or **IPPROTO_UDP**.
This API returns the handle of the **socket** instance created.| +| bind | int sockfd, const **struct sockaddr_nin** *myaddr, socklen_t addrlen | NA | Error code, which is an integer. | Binds the **socket** instance to the specified IP address and port.
**myaddr->sin_family** must be **AF_NINET**.| +| listen | int socket, int backlog | NA | Error code, which is an integer. | Listens for the New IP address and port from the server. | +| connect | int sockfd, const **struct sockaddr_nin** *addr, aocklen_t addrlen | NA | Error code, which is an integer. | Sets up a connection between the client and the server. | | accept | int sockfd, **struct sockaddr_nin** *address, socklen_t *address_len | NA | **sockfd**. | Accepts the connection request from the client. | -| send | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr_nin** *dst_addr, int addrlen | NA | Error code. The value is an integer. | Sends New IP TCP packets from the socket. | -| recv | int sockfd, size_t len, int flags, **struct sockaddr_nin** *src_addr, | void **buf, int* *fromlen | Error code. The value is an integer. | Receives New IP TCP packets from the socket. | -| close | int sockfd | NA | Error code. The value is an integer. | Closes the socket to release resources. | -| ioctl | int sockfd, unsigned long cmd, ... | NA | Error code. The value is an integer. | Queries or modifies the information about the New IP protocol stack. | -| sendto | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr** *dst_addr, int addrlen | NA | Error code. The value is an integer. | Sends New IP UDP packets from the socket. | -| recvfrom | int sockfd, size_t len, int flags, | void *buf, struct sockaddr *from, int *fromlen | Error code. The value is an integer. | Receives New IP UDP packets from the socket. | +| send | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr_nin** *dst_addr, int addrlen | NA | Error code, which is an integer. | Sends New IP packets via the socket using TCP. | +| recv | int sockfd, size_t len, int flags, **struct sockaddr_nin** *src_addr, | void **buf, int* *fromlen | Error code, which is an integer. | Receives New IP packets via the socket using TCP. | +| close | int sockfd | NA | Error code, which is an integer. | Closes the socket to release resources. | +| ioctl | int sockfd, unsigned long cmd, ... | NA | Error code, which is an integer. | Queries or modifies information about the New IP protocol stack. | +| sendto | int sockfd, const void *msg, int len, unsigned int flags, const **struct sockaddr** *dst_addr, int addrlen | NA | Error code, which is an integer. | Sends New IP packets via the socket using UDP. | +| recvfrom | int sockfd, size_t len, int flags, | void *buf, struct sockaddr *from, int *fromlen | Error code, which is an integer. | Receives New IP packets via the socket using UDP. | -Structure of New IP short addresses: +The structure of the New IP short address is as follows: ```c enum nip_8bit_addr_index { @@ -218,13 +216,13 @@ enum nip_32bit_addr_index { struct nip_addr_field { union { unsigned char field8[NIP_8BIT_ADDR_INDEX_MAX]; - unsigned short field16[NIP_16BIT_ADDR_INDEX_MAX]; /* big-endian */ - unsigned int field32[NIP_32BIT_ADDR_INDEX_MAX]; /* big-endian */ + unsigned short field16[NIP_16BIT_ADDR_INDEX_MAX]; /* Big-endian */ + unsigned int field32[NIP_32BIT_ADDR_INDEX_MAX]; /* Big-endian */ } u; }; struct nip_addr { - unsigned char bitlen; /* The address length is in bit (not byte) */ + unsigned char bitlen; /* The address length is in bit (not byte). */ struct nip_addr_field v; }; #pragma pack() @@ -235,27 +233,27 @@ struct nip_addr { */ #define POD_SOCKADDR_SIZE 3 struct sockaddr_nin { - unsigned short sin_family; /* [2Byte] AF_NINET */ - unsigned short sin_port; /* [2Byte] Transport layer port, big-endian */ - struct nip_addr sin_addr; /* [9Byte] NIP address */ + unsigned short sin_family; /* [2 bytes] AF_NINET */ + unsigned short sin_port; /* [2 bytes] Transport layer port, big-endian */ + struct nip_addr sin_addr; /* [9 bytes] New IP address */ - unsigned char sin_zero[POD_SOCKADDR_SIZE]; /* [3Byte] Byte alignment */ + unsigned char sin_zero[POD_SOCKADDR_SIZE]; /* [3 bytes] Byte alignment */ }; ``` ## New IP Development -Only the OpenHarmony Linux-5.10 kernel supports New IP kernel protocol stack. You must manually configure IP address and route data for New IP in user mode, and connect the two devices through the router WiFi. To implement automatic switch to the New IP kernel protocol stack for communication after the IP address and route are is configured, see the description in the blue block in the figure below. +Only the OpenHarmony Linux-5.10 kernel supports New IP kernel protocol stack. You must manually configure IP address and route data for New IP in user mode, and connect the two devices through the router Wi-Fi. If you want to automatically switch to the new IP kernel protocol stack after configuring the new IP address and route, see the description in the blue box in the following figure. ![](figures/newip-development.png) -For details about the address and route configuration, see [examples](https://gitee.com/openharmony/communication_sfc_newip/tree/master/examples). Modify the CC definition in Makefile based on the CPU you use, compile the CC definition into a binary file, and push the file to the development board. Refer to the figure above to configure the address and route data for New IP. +For details about the address and route configuration, see [examples](https://gitee.com/openharmony/kernel_common_modules_newip/tree/master/examples). Modify the CC definition in Makefile based on the CPU you use, compile the CC definition into a binary file, and push the file to the development board. Refer to the figure above to configure the address and route data for New IP. -| File | Description | -| ------------------ | ------------------------------------------------------ | -| nip_addr.c | Demo code for configuring the variable-length New IP addresses (any valid New IP address can be configured)| -| nip_route.c | Demo code for configuring the New IP route data (any valid New IP route can be configured) | -| check_nip_enable.c | Demo code for obtaining the New IP capabilities of the local device. | +| File | Description | +| ------------------ | -------------------------------------------------------- | +| nip_addr.c | Sample code for configuring variable-length New IP addresses (any valid New IP address can be configured). | +| nip_route.c | Sample code for configuring New IP route information (any valid New IP address can be configured). | +| check_nip_enable.c | Code for obtaining the New IP capabilities of the local host. | Check the New IP address and route information on device 1. @@ -277,19 +275,19 @@ Check the New IP address and route information on device 2. 02 02 2149580801 wlan0 # Route for sending packets to itself and receiving the packets. ``` -## New IP Sample Code for Receiving and Sending Packets +## Sample Code for Receiving and Sending New IP Packets -The table below lists the demo code files. For details about how to use the user-mode APIs of the New IP protocol stack, see [examples](https://gitee.com/openharmony/communication_sfc_newip/tree/master/examples). Fixed addresses and routes are configured in the demo code. You do not need to manually specify the addresses and routes when executing the binary program. +The following table lists the related sample code. For details about how to use the user-mode APIs of the New IP stack, see [examples](https://gitee.com/openharmony/kernel_common_modules_newip/tree/master/examples). Fixed addresses and routes are configured in the demo code. You do not need to manually specify the addresses and routes when executing the binary program. -| File | Description | -| --------------------- | ----------------------------- | -| nip_addr_cfg_demo.c | Demo code for configuring the New IP variable-length addresses. | -| nip_route_cfg_demo.c | Demo code for New IP route configuration. | -| nip_udp_server_demo.c | Demo code for the server that sends and receives New IP UDP packets.| -| nip_udp_client_demo.c | Demo code for the client that sends and receives New IP UDP packets.| -| nip_tcp_server_demo.c | Demo code for the server that sends and receives New IP TCP packets.| -| nip_tcp_client_demo.c | Demo code for the client that sends and receives New IP TCP packets.| -| nip_lib.c | API demo code, for example, obtaining the interface index.| +| File | Description | +| --------------------- | ------------------------------ | +| nip_addr_cfg_demo.c | Sample code for configuring variable-length IP addresses. | +| nip_route_cfg_demo.c | Sample code for configuring NEW IP routes. | +| nip_udp_server_demo.c | Sample code for the server to send and receive New IP packets using UDP.| +| nip_udp_client_demo.c | Sample code for the client to send and receive New IP packets using UDP.| +| nip_tcp_server_demo.c | Sample code for the server to send and receive New IP packets using TCP.| +| nip_tcp_client_demo.c | Sample code for the client to send and receive New IP packets using TCP.| +| nip_lib.c | API demo code, for example, obtaining the interface index. | **Basic Procedure** @@ -301,15 +299,15 @@ The table below lists the demo code files. For details about how to use the user 3. Run the **ifconfig wlan0 up** command to start the network adapter. -4. Run the **./nip_addr_cfg_demo server** command on shell of device 1 to configure a variable-length address **0xDE00** (2 bytes) for the server. Run the **./nip_addr_cfg_demo client** command on device 2 to configure a variable-length address **0x50** (1 byte) for the client. Then, run the **cat /proc/net/nip_addr** command to check the kernel address configuration. +4. Run the **./nip_addr_cfg_demo server** command on shell of device 1 to configure a variable-length address **0xDE00** (2 bytes) for the server. Run the **./nip_addr_cfg_demo client** command on shell of device 2 to configure a variable-length address **0x50** (1 byte) for the client. Run **cat /proc/net/nip_addr** to view the configuration result. -5. Run the **./nip_route_cfg_demo server** command on device 1 to configure the server route data. Run the **./nip_route_cfg_demo client** command on device 2 to configure the client route data. Then, run the **cat /proc/net/nip_route** command to check the kernel route configuration. +5. Run the **./nip_route_cfg_demo server** command on shell of device 1 to configure the server route data. Run the **./nip_route_cfg_demo client** command on shell of device 2 to configure the client route data. Then, run the **cat /proc/net/nip_route** command to check the kernel route configuration. -Now, you can send and receive UDP/TCP packets. By default, the addresses and routes configured are used for sending and receiving packets. +Now, you can send and receive packets over UDP/TCP. By default, the addresses and routes configured are used for sending and receiving packets. -**Sending and Receiving UDP Packets** +**Sending and Receiving Packets over UDP** Run the **./nip_udp_server_demo** command on the server and then the **./nip_udp_client_demo** command on the client. The client sends 10 New IP packets. After receiving the packets, the server sends them to the client. @@ -335,7 +333,7 @@ Received --1661827011 590576 NIP_UDP # 9 sock 3 success: 10/ 10/no= -**Sending and Receiving TCP Packets** +**Sending and Receiving Packets over TCP** Run the **./nip_tcp_server_demo** command on the server and then the **./nip_tcp_client_demo** command on the client. The client sends 10 New IP packets. After receiving the packets, the server sends them to the client. @@ -378,15 +376,16 @@ allowxperm thread_xxx thread_xxx:socket ioctl { 0x8933 0x8916 0x890B }; ## WireShark Packet Parsing Template -The default packet parsing rules of Wireshark cannot parse New IP packets. You can add a New IP packet parsing template to Wireshark to parse New IP packets. For details about the template, see [New IP packet parsing template](https://gitee.com/openharmony/communication_sfc_newip/blob/master/tools/wireshark_cfg_for_newip.lua). +The default packet parsing rules of Wireshark cannot parse New IP packets. You can add a New IP packet parsing template to Wireshark to parse New IP packets. For details about the template, see [New IP packet parsing template](https://gitee.com/openharmony/kernel_common_modules_newip/blob/master/tools/wireshark_cfg_for_newip.lua). The procedure is as follows: -Choose **Help** > **About Wireshark** > **Folders**, open the **Global Configuration** directory, and edit the **init.lua** file. Add **dofile (*DATA_DIR*.."newip.lua")** to the end of the file. *DATA_DIR* is the directory where the **newip.lua** plug-in is located. +1. Choose **Help** > **About Wireshark** > **Folders**, and open the **init.lua** file in the **Global Configuration** directory. +2. Add **dofile (DATA_DIR.."newip.lua")** to the end of the file. *DATA_DIR* is the path of the **newip.lua** file. ![](figures/newip-WireShark-template.png) -The following is an example of adding a New IP packet parsing template: +Example: ``` Path of the New IP packet parsing template: @@ -403,7 +402,11 @@ dofile("D:\\tools\\WireShark\\wireshark_cfg_for_newip.lua") #### ND Request -The figure below shows the format of the New IP Neighbor Discovery (ND) request packet. The header contains a 1-byte bitmap (0x76), which is followed by the TTL, total packet length, upper-layer protocol type, destination address, and source address. The New IP ND request packet contains the packet type, operation code, checksum, and request address. +The following figure shows the format of a New IP Neighbor Discovery (ND) request packet. The header contains a 1-byte bitmap (**0x76**), which is followed by the TTL, total length of the packet, upper-layer protocol type, destination address, and source address. The New IP ND request packet contains the packet type, operation code, checksum, and request address. + +> **NOTE** +> +> New IP supports variable-length addresses (1 to 8 bytes). The 1-byte address in Bitmap 1 indicates that the address carried in the current packet header is of 1 byte. ![](figures/newip-ND-request.png) @@ -411,7 +414,11 @@ The figure below shows the format of the New IP Neighbor Discovery (ND) request #### ND Response -The figure below shows the format of a New IP ND response packet. The header contains two bitmaps (**0x77** and **0x00**). Bitmap 1 is followed by the TTL, total length of the packet, upper-layer protocol type, destination address, and source address. Bitmap2 is used for byte alignment and does not carry any data. (For the rk3568 development board, the data transmitted in the link layer must be of an even number of bytes.) A New IP ND response packet contains the packet type, operation code, checksum, neighbor MAC address length, and neighbor MAC address. +The following figure shows the format of a New IP ND response packet. The New IP header contains two bitmaps (**0x77** and **0x00**). Bitmap1 is followed by the TTL, total packet length, upper-layer protocol type, destination address, and source address. Bitmap2 is used for byte alignment and does not carry any data. (For the rk3568 development board, the data transmitted in the link layer must be of an even number of bytes.) A New IP ND response packet contains the packet type, operation code, checksum, neighbor MAC address length, and neighbor MAC address. + +> **NOTE** +> +> New IP supports variable-length addresses (1 to 8 bytes). The 1-byte address in Bitmap 1 indicates that the address carried in the current packet header is of 1 byte. ![](figures/newip-ND-response.png) @@ -421,6 +428,10 @@ The figure below shows the format of a New IP ND response packet. The header con The figure below shows the format of a TCP three-way handshake SYN packet. The New IP packet header contains two bitmaps (**0x77** and **0x00**). Bitmap1 is followed by the TTL, total packet length, upper-layer protocol type, destination address, and source address. Bitmap2 is used for byte alignment and does not carry any data. (For the rk3568 development board, the data transmitted in the link layer must be of an even number of bytes.) +> **NOTE** +> +> New IP supports variable-length addresses (1 to 8 bytes). The 1-byte address in Bitmap 1 indicates that the address carried in the current packet header is of 1 byte. + ![](figures/newip-TCP-handshake.png) ![](figures/newip-TCP-handshake-parsed.png) @@ -429,6 +440,10 @@ The figure below shows the format of a TCP three-way handshake SYN packet. The N The figure below shows the TCP data format. The New IP header contains two bitmaps (**0x77** and **0x00**). Bitmap 1 is followed by the TTL, total packet length, upper-layer protocol type, destination address, and source address. Bitmap2 is used for byte alignment and does not carry any data. (For the rk3568 development board, the data transmitted in the link layer must be of an even number of bytes.) +> **NOTE** +> +> New IP supports variable-length addresses (1 to 8 bytes). The 1-byte address in Bitmap 1 indicates that the address carried in the current packet header is of 1 byte. + ![](figures/newip-TCP-packet.png) ![](figures/newip-TCP-packet-parsed.png) -- GitLab From d9c11a418ed2d5daf12f467ec6f3cd38b1ab52cf Mon Sep 17 00:00:00 2001 From: liwuli Date: Thu, 12 Jan 2023 15:10:23 +0800 Subject: [PATCH 182/383] =?UTF-8?q?EDM=E6=96=B0=E5=A2=9E=E6=81=A2=E5=A4=8D?= =?UTF-8?q?=E5=87=BA=E5=8E=82=E8=AE=BE=E7=BD=AE=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: liwuli --- zh-cn/application-dev/security/permission-list.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/zh-cn/application-dev/security/permission-list.md b/zh-cn/application-dev/security/permission-list.md index 1283ebfadc..eb46fe6522 100644 --- a/zh-cn/application-dev/security/permission-list.md +++ b/zh-cn/application-dev/security/permission-list.md @@ -924,6 +924,16 @@ **ACL使能**:TRUE +## ohos.permission.ENTERPRISE_RESET_DEVICE + +允许设备管理员恢复设备出厂设置。 + +**权限级别**:system_basic + +**授权方式**:system_grant + +**ACL使能**:TRUE + ## ohos.permission.NFC_TAG 允许应用读取Tag卡片。 -- GitLab From 5759dac47165e8c33f7d5ac8f65c4bc983e6f66d Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 12 Jan 2023 15:21:24 +0800 Subject: [PATCH 183/383] Update docs (11876) Signed-off-by: ester.zhou --- .../js-components-canvas-canvasgradient.md | 8 ++++---- ...mponents-canvas-canvasrenderingcontext2d.md | 6 +++--- .../js-offscreencanvasrenderingcontext2d.md | 6 +++--- .../ts-components-canvas-canvasgradient.md | 6 +++--- .../ts-offscreencanvasrenderingcontext2d.md | 18 +++++++++--------- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/en/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md b/en/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md index 125067139d..f580a31338 100644 --- a/en/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md +++ b/en/application-dev/reference/arkui-js/js-components-canvas-canvasgradient.md @@ -17,7 +17,7 @@ Adds a color stop for the **CanvasGradient** object based on the specified offse | Name | Type | Description | | ------ | ------ | ------------------------------------------------------------ | | offset | number | Proportion of the distance between the color stop and the start point to the total length. The value ranges from 0 to 1. | -| color | string | Gradient color to set. | +| color | string | Gradient color to set. | **Example** @@ -35,9 +35,9 @@ export default { const el =this.$refs.canvas; const ctx = el.getContext('2d'); const gradient = ctx.createLinearGradient(50,0,300,100); - gradient.addColorStop(0.0, 'red') - gradient.addColorStop(0.5, 'white') - gradient.addColorStop(1.0, 'green') + gradient.addColorStop(0.0, '#ff0000') + gradient.addColorStop(0.5, '#ffffff') + gradient.addColorStop(1.0, '#00ff00') ctx.fillStyle = gradient ctx.fillRect(0, 0, 300, 300) } diff --git a/en/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md b/en/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md index 0ebefab7d1..8df65d142a 100644 --- a/en/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md +++ b/en/application-dev/reference/arkui-js/js-components-canvas-canvasrenderingcontext2d.md @@ -1682,9 +1682,9 @@ Creates a linear gradient and returns a **CanvasGradient** object. For details, // Linear gradient: start(50,0) end(300,100) var gradient = ctx.createLinearGradient(50,0, 300,100); // Add three color stops - gradient.addColorStop(0.0, 'red'); - gradient.addColorStop(0.5, 'white'); - gradient.addColorStop(1.0, 'green'); + gradient.addColorStop(0.0, '#ff0000'); + gradient.addColorStop(0.5, '#ffffff'); + gradient.addColorStop(1.0, '#00ff00'); // Set the fill style and draw a rectangle ctx.fillStyle = gradient; ctx.fillRect(0, 0, 500, 500); diff --git a/en/application-dev/reference/arkui-js/js-offscreencanvasrenderingcontext2d.md b/en/application-dev/reference/arkui-js/js-offscreencanvasrenderingcontext2d.md index c97b123b4b..8eebde2cac 100644 --- a/en/application-dev/reference/arkui-js/js-offscreencanvasrenderingcontext2d.md +++ b/en/application-dev/reference/arkui-js/js-offscreencanvasrenderingcontext2d.md @@ -14,7 +14,7 @@ In addition to the attributes that are supported by **CanvasRenderingContext2D** | Name | Type | Description | | ------ | ------ | ---------------------------------------- | -| filter | string | Image filter.
Available options are as follows:
- **blur**: applies the Gaussian blur for the image.
- **brightness**: applies a linear multiplication to the image to make it look brighter or darker.
- **contrast**: adjusts the image contrast.
- **drop-shadow**: sets a shadow effect for the image.
- **grayscale**: converts the image to a grayscale image.
- **hue-rotate**: applies hue rotation to the image.
- **invert**: inverts the input image.
- **opacity**: sets the opacity of the image.
- **saturate**: sets the saturation of the image.
- **sepia**: converts the image to dark brown. | +| filter | string | Image filter.
Available options are as follows:
- **blur**: applies the Gaussian blur for the image.
- **brightness**: applies a linear multiplication to the image to make it look brighter or darker.
- **contrast**: adjusts the image contrast.
- **drop-shadow**: sets a shadow effect for the image.
- **grayscale**: converts the image to a grayscale image.
- **hue-rotate**: applies hue rotation to the image.
- **invert**: inverts the image.
- **opacity**: sets the image opacity.
- **saturate**: sets the image saturation.
- **sepia**: converts the image to sepia.| **Example** ```html @@ -199,13 +199,13 @@ export default { var offscreenCanvasCtx = offscreen.getContext("2d"); offscreenCanvasCtx.transform(1, 0, 1.7, 1, 0, 0); - offscreenCanvasCtx.fillStyle = 'gray'; + offscreenCanvasCtx.fillStyle = '#a9a9a9'; offscreenCanvasCtx.fillRect(40, 40, 50, 20); offscreenCanvasCtx.fillRect(40, 90, 50, 20); // Non-skewed rectangles offscreenCanvasCtx.resetTransform(); - offscreenCanvasCtx.fillStyle = 'red'; + offscreenCanvasCtx.fillStyle = '#ff0000'; offscreenCanvasCtx.fillRect(40, 40, 50, 20); offscreenCanvasCtx.fillRect(40, 90, 50, 20); diff --git a/en/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md b/en/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md index d0c3c2e186..7c8b95655a 100644 --- a/en/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md +++ b/en/application-dev/reference/arkui-ts/ts-components-canvas-canvasgradient.md @@ -41,9 +41,9 @@ struct Page45 { .backgroundColor('#ffff00') .onReady(() => { var grad = this.context.createLinearGradient(50, 0, 300, 100) - grad.addColorStop(0.0, 'red') - grad.addColorStop(0.5, 'white') - grad.addColorStop(1.0, 'green') + grad.addColorStop(0.0, '#ff0000') + grad.addColorStop(0.5, '#ffffff') + grad.addColorStop(1.0, '#00ff00') this.context.fillStyle = grad this.context.fillRect(0, 0, 500, 500) }) diff --git a/en/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md b/en/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md index 4c6a674c96..22e6077c68 100644 --- a/en/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md +++ b/en/application-dev/reference/arkui-ts/ts-offscreencanvasrenderingcontext2d.md @@ -1674,7 +1674,7 @@ struct Fill { region.lineTo(270, 90) region.closePath() // Fill path - this.offContext.fillStyle = 'green' + this.offContext.fillStyle = '#00ff00' this.offContext.fill(region, "evenodd") var image = this.offContext.transferToImageBitmap() this.context.transferFromImageBitmap(image) @@ -2534,7 +2534,7 @@ struct CanvasExample { .backgroundColor('#ffff00') .onReady(() =>{ this.offContext.save() // save the default state - this.offContext.fillStyle = "green" + this.offContext.fillStyle = "#00ff00" this.offContext.fillRect(20, 20, 100, 100) this.offContext.restore() // restore to the default state this.offContext.fillRect(150, 75, 100, 100) @@ -2575,7 +2575,7 @@ struct CanvasExample { .backgroundColor('#ffff00') .onReady(() =>{ this.offContext.save() // save the default state - this.offContext.fillStyle = "green" + this.offContext.fillStyle = "#00ff00" this.offContext.fillRect(20, 20, 100, 100) this.offContext.restore() // restore to the default state this.offContext.fillRect(150, 75, 100, 100) @@ -2625,9 +2625,9 @@ Creates a linear gradient. .backgroundColor('#ffff00') .onReady(() =>{ var grad = this.offContext.createLinearGradient(50,0, 300,100) - grad.addColorStop(0.0, 'red') - grad.addColorStop(0.5, 'white') - grad.addColorStop(1.0, 'green') + grad.addColorStop(0.0, '#ff0000') + grad.addColorStop(0.5, '#ffffff') + grad.addColorStop(1.0, '#00ff00') this.offContext.fillStyle = grad this.offContext.fillRect(0, 0, 500, 500) var image = this.offContext.transferToImageBitmap() @@ -2679,9 +2679,9 @@ Creates a linear gradient. .backgroundColor('#ffff00') .onReady(() =>{ var grad = this.offContext.createRadialGradient(200,200,50, 200,200,200) - grad.addColorStop(0.0, 'red') - grad.addColorStop(0.5, 'white') - grad.addColorStop(1.0, 'green') + grad.addColorStop(0.0, '#ff0000') + grad.addColorStop(0.5, '#ffffff') + grad.addColorStop(1.0, '#00ff00') this.offContext.fillStyle = grad this.offContext.fillRect(0, 0, 500, 500) var image = this.offContext.transferToImageBitmap() -- GitLab From 0cb8ff73495e0d07dbd28738088e8bad5c35c072 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 12 Jan 2023 10:31:50 +0800 Subject: [PATCH 184/383] update docs Signed-off-by: Annie_wang --- .../database-relational-guidelines.md | 191 +++-- .../apis/js-apis-data-relationalStore.md | 16 +- .../reference/apis/js-apis-data-resultset.md | 764 ++---------------- 3 files changed, 196 insertions(+), 775 deletions(-) diff --git a/en/application-dev/database/database-relational-guidelines.md b/en/application-dev/database/database-relational-guidelines.md index 53e3ca5aea..df633d8449 100644 --- a/en/application-dev/database/database-relational-guidelines.md +++ b/en/application-dev/database/database-relational-guidelines.md @@ -7,7 +7,7 @@ A relational database (RDB) store allows you to operate local data with or witho ## Available APIs -Most of the RDB store APIs are asynchronous interfaces, which can use a callback or promise to return the result. This document uses the promise-based APIs as an example. For details about the APIs, see [Relational Database](../reference/apis/js-apis-data-rdb.md). +Most of the RDB store APIs are asynchronous interfaces, which can use a callback or promise to return the result. This document uses the promise-based APIs as an example. For more information about the APIs, see [RDB Store](../reference/apis/js-apis-data-relationalStore.md). ### Creating or Deleting an RDB Store @@ -17,8 +17,8 @@ The following table describes the APIs for creating and deleting an RDB store. | API | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | -| getRdbStoreV9(context: Context, config: StoreConfigV9, version: number): Promise<RdbStoreV9> | Obtains an **RdbStoreV9** instance. This API uses a promise to return the result. You can set parameters for the RDB store based on service requirements and call APIs to perform data operations.
- **context**: context of the application or function.
- **config**: configuration of the RDB store.
- **version**: version of the RDB store. Currently, automatic RDB upgrades and downgrades performed based on **version** is not supported.| -| deleteRdbStoreV9(context: Context, name: string): Promise<void> | Deletes an RDB store. This API uses a promise to return the result.
- **context**: context of the application or function.
- **name**: name of the RDB store to delete.| +| getRdbStore(context: Context, config: StoreConfig): Promise<RdbStore> | Obtains an **RdbStore** object. This API uses a promise to return the result. You can set parameters for the **RdbStore** object based on service requirements and use **RdbStore** APIs to perform data operations.
- **context**: application context.
- **config**: configuration of the RDB store.| +| deleteRdbStore(context: Context, name: string): Promise<void> | Deletes an RDB store. This API uses a promise to return the result.
- **context**: application context.
- **name**: name of the RDB store to delete.| ### Managing Data in an RDB Store @@ -33,29 +33,29 @@ The RDB provides APIs for inserting, deleting, updating, and querying data in th | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | - | RdbStoreV9 | insert(table: string, values: ValuesBucket): Promise<number> | Inserts a row of data into a table. This API uses a promise to return the result.
If the operation is successful, the row ID will be returned; otherwise, **-1** will be returned.
- **table**: name of the target table.
- **values**: data to be inserted into the table.| + | RdbStore | insert(table: string, values: ValuesBucket): Promise<number> | Inserts a row of data into a table. This API uses a promise to return the result.
If the operation is successful, the row ID will be returned; otherwise, **-1** will be returned.
- **table**: name of the target table.
- **values**: data to be inserted into the table.| - **Updating Data** - Call **update()** to update data based on the passed data and the conditions specified by **RdbPredicatesV9**. If the data is updated, the number of rows of the updated data will be returned; otherwise, **0** will be returned. + Call **update()** to update data based on the passed data and the conditions specified by **RdbPredicates**. If the data is updated, the number of rows of the updated data will be returned; otherwise, **0** will be returned. **Table 3** API for updating data - | Class | API | Description | + | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | - | RdbStoreV9 | update(values: ValuesBucket, predicates: RdbPredicatesV9): Promise<number> | Updates data based on the specified **RdbPredicatesV9** object. This API uses a promise to return the number of rows updated.
- **values**: data to update, which is stored in **ValuesBucket**.
- **predicates**: conditions for updating data. | + | RdbStore | update(values: ValuesBucket, predicates: RdbPredicates): Promise<number> | Updates data based on the specified **RdbPredicates** object. This API uses a promise to return the number of rows updated.
- **values**: data to update, which is stored in **ValuesBucket**.
- **predicates**: conditions for updating data. | - **Deleting Data** - Call **delete()** to delete the data that meets the conditions specified by **RdbPredicatesV9**. If the data is deleted, the number of rows of the deleted data will be returned; otherwise, **0** will be returned. + Call **delete()** to delete the data that meets the conditions specified by **RdbPredicates**. If the data is deleted, the number of rows of the deleted data will be returned; otherwise, **0** will be returned. **Table 4** API for deleting data - | Class | API | Description | + | Class | API | Description | | ---------- | ---------------------------------------------------------- | ------------------------------------------------------------ | - | RdbStoreV9 | delete(predicates: RdbPredicatesV9): Promise<number> | Deletes data from the RDB store based on the specified **RdbPredicatesV9** object. This API uses a promise to return the number of rows updated.
- **predicates**: conditions for deleting data. | + | RdbStore | delete(predicates: RdbPredicates): Promise<number> | Deletes data from the RDB store based on the specified **RdbPredicates** object. This API uses a promise to return the number of rows deleted.
- **predicates**: conditions for deleting data. | - **Querying Data** @@ -66,50 +66,48 @@ The RDB provides APIs for inserting, deleting, updating, and querying data in th **Table 5** APIs for querying data - -| Class | API | Description | -| ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | query(predicates: RdbPredicatesV9, columns?: Array<string>): Promise<ResultSetV9> | Queries data from the RDB store based on specified conditions. This API uses a promise to return the result.
- **predicates**: conditions for querying data.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.| -| RdbStoreV9 | querySql(sql: string, bindArgs?: Array<ValueType>): Promise<ResultSetV9> | Queries data using the specified SQL statement. This API uses a promise to return the result.
- **sql**: SQL statement.
- **bindArgs**: arguments in the SQL statement.| -| RdbStoreV9 | remoteQuery(device: string, table: string, predicates: RdbPredicatesV9, columns: Array<string>): Promise<ResultSetV9> | Queries data from the database of a remote device based on specified conditions. This API uses a promise to return the result.
- **device**: network ID of the remote device.
- **table**: name of the table to be queried.
- **predicates**: **RdbPredicatesV9** that specifies the query conditions.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.| + | Class | API | Description | + | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | + | RdbStore | query(predicates: RdbPredicates, columns?: Array<string>): Promise<ResultSet> | Queries data from the RDB store based on specified conditions. This API uses a promise to return the result.
- **predicates**: conditions for querying data.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.| + | RdbStore | querySql(sql: string, bindArgs?: Array<ValueType>): Promise<ResultSet> | Queries data using the specified SQL statement. This API uses a promise to return the result.
- **sql**: SQL statement.
- **bindArgs**: arguments in the SQL statement.| + | RdbStore | remoteQuery(device: string, table: string, predicates: RdbPredicates, columns: Array<string>): Promise<ResultSet> | Queries data from the database of a remote device based on specified conditions. This API uses a promise to return the result.
- **device**: network ID of the remote device.
- **table**: name of the table to be queried.
- **predicates**: **RdbPredicates** that specifies the query condition.
- **columns**: columns to query. If this parameter is not specified, the query applies to all columns.| ### Using Predicates -The **RDB** module provides **RdbPredicatesV9** for you to set database operation conditions. +The **RDB** module provides **RdbPredicates** for you to set database operation conditions. -The following table lists common predicates. For more information about predicates, see [**RdbPredicates**](../reference/apis/js-apis-data-rdb.md#rdbpredicates). +The following table lists common predicates. For more information about predicates, see [**RdbPredicates**](../reference/apis/js-apis-data-relationalStore.md#rdbpredicates). **Table 6** APIs for using RDB store predicates -| Class | API | Description | +| Class | API | Description | | --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbPredicatesV9 | equalTo(field: string, value: ValueType): RdbPredicatesV9 | Sets an **RdbPredicatesV9** to search for the data that is equal to the specified value.
- **field**: column name in the database table.
- **value**: value to match.
- **RdbPredicatesV9**: **RdbPredicatesV9** object created. | -| RdbPredicatesV9 | notEqualTo(field: string, value: ValueType): RdbPredicatesV9 | Sets an **RdbPredicatesV9** to search for the data that is not equal to the specified value.
- **field**: column name in the database table.
- **value**: value to match.
- **RdbPredicatesV9**: **RdbPredicatesV9** object created. | -| RdbPredicatesV9 | or(): RdbPredicatesV9 | Adds the OR condition to the **RdbPredicatesV9**.
- **RdbPredicatesV9**: **RdbPredicatesV9** with the OR condition. | -| RdbPredicatesV9 | and(): RdbPredicatesV9 | Adds the AND condition to the **RdbPredicatesV9**.
- **RdbPredicatesV9**: **RdbPredicatesV9** with the AND condition. | -| RdbPredicatesV9 | contains(field: string, value: string): RdbPredicatesV9 | Sets an **RdbPredicatesV9** to search for the data that contains the specified value.
- **field**: column name in the database table.
- **value**: value to match.
- **RdbPredicatesV9**: **RdbPredicatesV9** object created. | +| RdbPredicates | equalTo(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to search for the data that is equal to the specified value.
- **field**: column name in the database table.
- **value**: value to match the **RdbPredicates**.
- **RdbPredicates**: **RdbPredicates** object created.| +| RdbPredicates | notEqualTo(field: string, value: ValueType): RdbPredicates | Sets an **RdbPredicates** to search for the data that is not equal to the specified value.
- **field**: column name in the database table.
- **value**: value to match the **RdbPredicates**.
- **RdbPredicates**: **RdbPredicates** object created.| +| RdbPredicates | or(): RdbPredicates | Adds the OR condition to the **RdbPredicates**.
- **RdbPredicates**: **RdbPredicates** with the OR condition.| +| RdbPredicates | and(): RdbPredicates | Adds the AND condition to the **RdbPredicates**.
- **RdbPredicates**: **RdbPredicates** with the AND condition.| +| RdbPredicates | contains(field: string, value: string): RdbPredicates | Sets an **RdbPredicates** to search for the data that contains the specified value.
- **field**: column name in the database table.
- **value**: value to match the **RdbPredicates**.
- **RdbPredicates**: **RdbPredicates** object created.| ### Using the Result Set -You can use the APIs provided by **ResultSetV9** to traverse and access the data you have queried. A result set can be regarded as a row of data in the queried result. +You can use the APIs provided by **ResultSet** to traverse and access the data you have queried. A result set can be regarded as a row of data in the queried result. -For details about how to use result set APIs, see [Result Set](../reference/apis/js-apis-data-resultset.md). +For details about how to use **ResultSet** APIs, see [ResultSet](../reference/apis/js-apis-data-relationalStore.md#resultset). -> **NOTICE** -> +> **NOTICE**
> After a result set is used, you must call the **close()** method to close it explicitly. **Table 7** APIs for using the result set | Class | API | Description | | ----------- | ---------------------------------------- | ------------------------------------------ | -| ResultSetV9 | goToFirstRow(): boolean | Moves to the first row of the result set. | -| ResultSetV9 | getString(columnIndex: number): string | Obtains the value in the form of a string based on the specified column and current row. | -| ResultSetV9 | getBlob(columnIndex: number): Uint8Array | Obtains the value in the form of a byte array based on the specified column and the current row.| -| ResultSetV9 | getDouble(columnIndex: number): number | Obtains the value in the form of double based on the specified column and current row. | -| ResultSetV9 | getLong(columnIndex: number): number | Obtains the value in the form of a long integer based on the specified column and current row. | -| ResultSetV9 | close(): void | Closes the result set. | +| ResultSet | goToFirstRow(): boolean | Moves to the first row of the result set. | +| ResultSet | getString(columnIndex: number): string | Obtains the value in the form of a string based on the specified column and current row. | +| ResultSet | getBlob(columnIndex: number): Uint8Array | Obtains the value in the form of a byte array based on the specified column and the current row.| +| ResultSet | getDouble(columnIndex: number): number | Obtains the value in the form of double based on the specified column and current row. | +| ResultSet | getLong(columnIndex: number): number | Obtains the value in the form of a long integer based on the specified column and current row. | +| ResultSet | close(): void | Closes the result set. | @@ -117,7 +115,7 @@ For details about how to use result set APIs, see [Result Set](../reference/apis > **NOTE** > -> - The **ohos.permission.DISTRIBUTED_DATASYNC** permission is required for calling the **setDistributedTables**, **obtainDistributedTableName**, **sync**, **on** and **off** APIs of **RdbStore V9**. +> - The **ohos.permission.DISTRIBUTED_DATASYNC** permission is required for calling the **setDistributedTables**, **obtainDistributedTableName**, **sync**, **on** and **off** APIs of **RdbStore**. > - The devices must be connected over network before the distributed tables are used. For details about the APIs and usage, see [Device Management](../reference/apis/js-apis-device-manager.md). **Setting Distributed Tables** @@ -126,7 +124,7 @@ For details about how to use result set APIs, see [Result Set](../reference/apis | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | setDistributedTables(tables: Array\): Promise\ | Sets distributed tables. This API uses a promise to return the result.
- **tables**: names of the distributed tables to set.| +| RdbStore | setDistributedTables(tables: Array\): Promise\ | Sets distributed tables. This API uses a promise to return the result.
- **tables**: names of the distributed tables to set.| **Obtaining the Distributed Table Name for a Remote Device** @@ -136,7 +134,7 @@ You can obtain the distributed table name for a remote device based on the local | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | obtainDistributedTableName(device: string, table: string): Promise\ | Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the RDB store of a remote device is queried. This API uses a promise to return the result.
- **device**: remote device.
- **table**: local table name.| +| RdbStore | obtainDistributedTableName(device: string, table: string): Promise\ | Obtains the distributed table name for a remote device based on the local table name. The distributed table name is required when the RDB store of a remote device is queried. This API uses a promise to return the result.
- **device**: remote device.
- **table**: local table name.| **Synchronizing Data Between Devices** @@ -144,7 +142,7 @@ You can obtain the distributed table name for a remote device based on the local | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | sync(mode: SyncMode, predicates: RdbPredicatesV9): Promise\> | Synchronizes data between devices. This API uses a promise to return the result.
- **mode**: synchronization mode. **SYNC_MODE_PUSH** means to push data from the local device to a remote device. **SYNC_MODE_PULL** means to pull data from a remote device to the local device.
- **predicates**: specifies the data and devices to synchronize.
- **string**: device ID.
- **number**: synchronization status of each device. The value **0** indicates a successful synchronization. Other values indicate a synchronization failure.| +| RdbStore | sync(mode: SyncMode, predicates: RdbPredicates): Promise\> | Synchronizes data between devices. This API uses a promise to return the result.
- **mode**: synchronization mode. **SYNC_MODE_PUSH** means to push data from the local device to a remote device. **SYNC_MODE_PULL** means to pull data from a remote device to the local device.
- **predicates**: specifies the data and devices to synchronize.
- **string**: device ID.
- **number**: synchronization status of each device. The value **0** indicates a successful synchronization. Other values indicate a synchronization failure.| **Registering an RDB Store Observer** @@ -152,7 +150,7 @@ You can obtain the distributed table name for a remote device based on the local | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | on(event: 'dataChange', type: SubscribeType, observer: Callback\>): void | Registers an observer for this RDB store to subscribe to distributed data changes. When data in the RDB store changes, a callback will be invoked to return the data changes.
- **type**: subscription type. **SUBSCRIBE_TYPE_REMOTE**: subscribes to remote data changes.
- **observer**: observer that listens for data changes in the RDB store.| +| RdbStore | on(event: 'dataChange', type: SubscribeType, observer: Callback\>): void | Registers an observer for this RDB store to subscribe to distributed data changes. When data in the RDB store changes, a callback will be invoked to return the data changes.
- **type**: subscription type. **SUBSCRIBE_TYPE_REMOTE**: subscribes to remote data changes.
- **observer**: observer that listens for data changes in the RDB store.| **Unregistering an RDB Store Observer** @@ -160,7 +158,7 @@ You can obtain the distributed table name for a remote device based on the local | Class | API | Description | | ---------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| RdbStoreV9 | off(event:'dataChange', type: SubscribeType, observer: Callback\>): void; | Unregisters the observer of the specified type from the RDB store. This API uses an asynchronous callback to return the result.
- **type**: subscription type. **SUBSCRIBE_TYPE_REMOTE**: subscribes to remote data changes.
- **observer**: observer to unregister.| +| RdbStore | off(event:'dataChange', type: SubscribeType, observer: Callback\>): void; | Unregisters the observer of the specified type from the RDB store. This API uses an asynchronous callback to return the result.
- **type**: subscription type. **SUBSCRIBE_TYPE_REMOTE**: subscribes to remote data changes.
- **observer**: observer to unregister.| ### Backing Up and Restoring an RDB Store @@ -170,7 +168,7 @@ You can obtain the distributed table name for a remote device based on the local | Class | API | Description | | ---------- | --------------------------------------------- | ------------------------------------------------------------ | -| RdbStoreV9 | backup(destName: string): Promise<void> | Backs up an RDB store. This API uses a promise to return the result.
- **destName**: name of the RDB backup file.| +| RdbStore | backup(destName: string): Promise<void> | Backs up an RDB store. This API uses a promise to return the result.
- **destName**: name of the RDB backup file.| **Restoring an RDB Store** @@ -178,17 +176,17 @@ You can obtain the distributed table name for a remote device based on the local | Class | API | Description | | ---------- | --------------------------------------------- | ------------------------------------------------------------ | -| RdbStoreV9 | restore(srcName: string): Promise<void> | Restores an RDB store from a backup file. This API uses a promise to return the result.
- **srcName**: name of the backup file used to restore the RDB store.| +| RdbStore | restore(srcName: string): Promise<void> | Restores an RDB store from a backup file. This API uses a promise to return the result.
- **srcName**: name of the backup file used to restore the RDB store.| -**Transaction** +### Transaction Table 15 Transaction APIs | Class | API | Description | | -------- | ----------------------- | --------------------------------- | -| RdbStoreV9 | beginTransaction(): void | Starts the transaction before executing SQL statements.| -| RdbStoreV9 | commit(): void | Commits the executed SQL statements. | -| RdbStoreV9 | rollBack(): void | Rolls back the SQL statements that have been executed. | +| RdbStore | beginTransaction(): void | Starts the transaction before executing SQL statements.| +| RdbStore | commit(): void | Commits the executed SQL statements. | +| RdbStore | rollBack(): void | Rolls back the SQL statements that have been executed. | ## How to Develop @@ -203,27 +201,27 @@ Table 15 Transaction APIs FA model: ```js - import data_rdb from '@ohos.data.rdb' + import data_rdb from '@ohos.data.relationalStore' // Obtain the context. import featureAbility from '@ohos.ability.featureAbility' let context = featureAbility.getContext() const CREATE_TABLE_TEST = "CREATE TABLE IF NOT EXISTS test (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)"; - const STORE_CONFIGV9 = { name: "RdbTest.db", + const STORE_CONFIG = { name: "RdbTest.db", securityLevel: data_rdb.SecurityLevel.S1} - data_rdb.getRdbStoreV9(context, STORE_CONFIGV9, 1, function (err, rdbStoreV9) { - rdbStoreV9.executeSql(CREATE_TABLE_TEST) + data_rdb.getRdbStore(context, STORE_CONFIG, function (err, rdbStore) { + rdbStore.executeSql(CREATE_TABLE_TEST) console.info('create table done.') }) ``` Stage model: ```ts - import data_rdb from '@ohos.data.rdb' + import data_rdb from '@ohos.data.relationalStore' // Obtain the context. - import Ability from '@ohos.application.Ability' + import UIAbility from '@ohos.app.ability.UIAbility'; let context = null - class MainAbility extends Ability { + class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { context = this.context } @@ -231,10 +229,10 @@ Table 15 Transaction APIs const CREATE_TABLE_TEST = "CREATE TABLE IF NOT EXISTS test (" + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "name TEXT NOT NULL, " + "age INTEGER, " + "salary REAL, " + "blobType BLOB)"; - const STORE_CONFIGV9 = { name: "rdbstore.db", + const STORE_CONFIG = { name: "rdbstore.db", securityLevel: data_rdb.SecurityLevel.S1} - data_rdb.getRdbStoreV9(context, STORE_CONFIGV9, 1, function (err, rdbStoreV9) { - rdbStoreV9.executeSql(CREATE_TABLE_TEST) + data_rdb.getRdbStore(context, STORE_CONFIG, function (err, rdbStore) { + rdbStore.executeSql(CREATE_TABLE_TEST) console.info('create table done.') }) ``` @@ -248,14 +246,29 @@ Table 15 Transaction APIs The sample code is as follows: ```js - var u8 = new Uint8Array([1, 2, 3]) + let u8 = new Uint8Array([1, 2, 3]) const valueBucket = { "name": "Tom", "age": 18, "salary": 100.5, "blobType": u8 } - let insertPromise = rdbStoreV9.insert("test", valueBucket) + let insertPromise = rdbStore.insert("test", valueBucket) + ``` + + ```js + // Use a transaction to insert data. + beginTransaction() + try { + let u8 = new Uint8Array([1, 2, 3]) + const valueBucket1 = { "name": "Tom", "age": 18, "salary": 100.5, "blobType": u8 } + const valueBucket2 = { "name": "Jam", "age": 19, "salary": 200.5, "blobType": u8 } + let insertPromise1 = rdbStore.insert("test", valueBucket1) + let insertPromise2 = rdbStore.insert("test", valueBucket2) + commit() + } catch (e) { + rollBack() + } ``` 3. Query data. - (1) Create an **RdbPredicatesV9** object to specify query conditions. + (1) Create an **RdbPredicates** object to specify query conditions. (2) Call the **query()** API to query data. @@ -264,17 +277,17 @@ Table 15 Transaction APIs The sample code is as follows: ```js - let predicatesV9 = new data_rdb.RdbPredicatesV9("test"); - predicatesV9.equalTo("name", "Tom") - let promisequery = rdbStoreV9.query(predicatesV9) - promisequery.then((resultSetV9) => { - resultSetV9.goToFirstRow() - const id = resultSetV9.getLong(resultSetV9.getColumnIndex("id")) - const name = resultSetV9.getString(resultSetV9.getColumnIndex("name")) - const age = resultSetV9.getLong(resultSetV9.getColumnIndex("age")) - const salary = resultSetV9.getDouble(resultSetV9.getColumnIndex("salary")) - const blobType = resultSetV9.getBlob(resultSetV9.getColumnIndex("blobType")) - resultSetV9.close() + let predicates = new data_rdb.RdbPredicates("test"); + predicates.equalTo("name", "Tom") + let promisequery = rdbStore.query(predicates) + promisequery.then((resultSet) => { + resultSet.goToFirstRow() + const id = resultSet.getLong(resultSet.getColumnIndex("id")) + const name = resultSet.getString(resultSet.getColumnIndex("name")) + const age = resultSet.getLong(resultSet.getColumnIndex("age")) + const salary = resultSet.getDouble(resultSet.getColumnIndex("salary")) + const blobType = resultSet.getBlob(resultSet.getColumnIndex("blobType")) + resultSet.close() }) ``` @@ -302,7 +315,7 @@ Table 15 Transaction APIs context.requestPermissionsFromUser(['ohos.permission.DISTRIBUTED_DATASYNC'], 666, function (result) { console.info(`result.requestCode=${result.requestCode}`) }) - let promise = rdbStoreV9.setDistributedTables(["test"]) + let promise = rdbStore.setDistributedTables(["test"]) promise.then(() => { console.info("setDistributedTables success.") }).catch((err) => { @@ -312,7 +325,7 @@ Table 15 Transaction APIs 5. Synchronize data across devices. - (1) Construct an **RdbPredicatesV9** object to specify remote devices within the network to be synchronized. + (1) Construct an **RdbPredicates** object to specify remote devices within the network to be synchronized. (2) Call **rdbStore.sync()** to synchronize data. @@ -321,9 +334,9 @@ Table 15 Transaction APIs The sample code is as follows: ```js - let predicateV9 = new data_rdb.RdbPredicatesV9('test') - predicateV9.inDevices(['12345678abcde']) - let promise = rdbStoreV9.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicateV9) + let predicate = new data_rdb.RdbPredicates('test') + predicate.inDevices(['12345678abcde']) + let promise = rdbStore.sync(data_rdb.SyncMode.SYNC_MODE_PUSH, predicate) promise.then((result) => { console.log('sync done.') for (let i = 0; i < result.length; i++) { @@ -350,7 +363,7 @@ Table 15 Transaction APIs } try { - rdbStoreV9.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) + rdbStore.on('dataChange', data_rdb.SubscribeType.SUBSCRIBE_TYPE_REMOTE, storeObserver) } catch (err) { console.log('register observer failed') } @@ -365,8 +378,8 @@ Table 15 Transaction APIs The sample code is as follows: ```js - let tableName = rdbStoreV9.obtainDistributedTableName(deviceId, "test"); - let resultSetV9 = rdbStoreV9.querySql("SELECT * FROM " + tableName) + let tableName = rdbStore.obtainDistributedTableName(deviceId, "test"); + let resultSet = rdbStore.querySql("SELECT * FROM " + tableName) ``` 8. Query data of a remote device. @@ -379,17 +392,17 @@ Table 15 Transaction APIs The sample code is as follows: ```js - let rdbPredicateV9 = new data_rdb.RdbPredicatesV9('employee') - predicatesV9.greaterThan("id", 0) - let promiseQuery = rdbStoreV9.remoteQuery('12345678abcde', 'employee', rdbPredicateV9) - promiseQuery.then((resultSetV9) => { - while (resultSetV9.goToNextRow()) { - let idx = resultSetV9.getLong(0); - let name = resultSetV9.getString(1); - let age = resultSetV9.getLong(2); + let rdbPredicate = new data_rdb.RdbPredicates('employee') + predicates.greaterThan("id", 0) + let promiseQuery = rdbStore.remoteQuery('12345678abcde', 'employee', rdbPredicate) + promiseQuery.then((resultSet) => { + while (resultSet.goToNextRow()) { + let idx = resultSet.getLong(0); + let name = resultSet.getString(1); + let age = resultSet.getLong(2); console.info(idx + " " + name + " " + age); } - resultSetV9.close(); + resultSet.close(); }).catch((err) => { console.info("failed to remoteQuery, err: " + err) }) @@ -402,7 +415,7 @@ Table 15 Transaction APIs The sample code is as follows: ```js - let promiseBackup = rdbStoreV9.backup("dbBackup.db") + let promiseBackup = rdbStore.backup("dbBackup.db") promiseBackup.then(() => { console.info('Backup success.') }).catch((err) => { @@ -414,7 +427,7 @@ Table 15 Transaction APIs The sample code is as follows: ```js - let promiseRestore = rdbStoreV9.restore("dbBackup.db") + let promiseRestore = rdbStore.restore("dbBackup.db") promiseRestore.then(() => { console.info('Restore success.') }).catch((err) => { diff --git a/en/application-dev/reference/apis/js-apis-data-relationalStore.md b/en/application-dev/reference/apis/js-apis-data-relationalStore.md index 1d3451af2d..e6b33f3544 100644 --- a/en/application-dev/reference/apis/js-apis-data-relationalStore.md +++ b/en/application-dev/reference/apis/js-apis-data-relationalStore.md @@ -62,8 +62,8 @@ data_rdb.getRdbStore(context, STORE_CONFIG, function (err, rdbStore) { console.info("Failed to get RdbStore, err: " + err) return } - if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATA) { - console.log("RdbStore status is ON_CREATA") + if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATE) { + console.log("RdbStore status is ON_CREATE") } else if (rdbStore.openStatus == data_rdb.OpenStatus.ON_OPEN) { console.log("RdbStore status is ON_OPEN") } else { @@ -97,8 +97,8 @@ data_rdb.getRdbStore(context, STORE_CONFIG, function (err, rdbStore) { console.info("Failed to get RdbStore, err: " + err) return } - if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATA) { - console.log("RdbStore status is ON_CREATA") + if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATE) { + console.log("RdbStore status is ON_CREATE") } else if (rdbStore.openStatus == data_rdb.OpenStatus.ON_OPEN) { console.log("RdbStore status is ON_OPEN") } else { @@ -154,8 +154,8 @@ const STORE_CONFIG = { } let promise = data_rdb.getRdbStore(context, STORE_CONFIG); promise.then(async (rdbStore) => { - if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATA) { - console.log("RdbStore status is ON_CREATA") + if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATE) { + console.log("RdbStore status is ON_CREATE") } else if (rdbStore.openStatus == data_rdb.OpenStatus.ON_OPEN) { console.log("RdbStore status is ON_OPEN") } else { @@ -188,8 +188,8 @@ const STORE_CONFIG = { } let promise = data_rdb.getRdbStore(context, STORE_CONFIG); promise.then(async (rdbStore) => { - if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATA) { - console.log("RdbStore status is ON_CREATA") + if (rdbStore.openStatus == data_rdb.OpenStatus.ON_CREATE) { + console.log("RdbStore status is ON_CREATE") } else if (rdbStore.openStatus == data_rdb.OpenStatus.ON_OPEN) { console.log("RdbStore status is ON_OPEN") } else { diff --git a/en/application-dev/reference/apis/js-apis-data-resultset.md b/en/application-dev/reference/apis/js-apis-data-resultset.md index 798ac7bba0..8cdecd1134 100644 --- a/en/application-dev/reference/apis/js-apis-data-resultset.md +++ b/en/application-dev/reference/apis/js-apis-data-resultset.md @@ -1,549 +1,17 @@ -# Result Set +# resultSet A result set is a set of results returned after the relational database (RDB) query APIs are called. You can use the **resultset** APIs to obtain required data. -> **NOTE** +> **NOTE**
> > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +> The APIs of this module are no longer maintained since API version 9. You are advised to use [@ohos.data.relationalStore#ResultSet](js-apis-data-relationalStore.md#resultset). -## ResultSetV99+ - -Provides methods to access the result set, which is obtained by querying the RDB store. - -### Usage - -You need to obtain the **resultSetV9** instance by using [RdbStoreV9.query()](js-apis-data-rdb.md#query). - -```js -import dataRdb from '@ohos.data.rdb'; -let predicatesV9 = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -predicatesV9.equalTo("AGE", 18); -let promise = rdbStoreV9.query(predicatesV9, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promise.then((resultSetV9) => { - console.log(TAG + "resultSet columnNames:" + resultSetV9.columnNames); - console.log(TAG + "resultSet columnCount:" + resultSetV9.columnCount); -}); -``` - -### Attributes9+ - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -| Name | Type | Mandatory| Description | -| ------------ | ------------------- | ---- | -------------------------------- | -| columnNames | Array<string> | Yes | Names of all columns in the result set. | -| columnCount | number | Yes | Number of columns in the result set. | -| rowCount | number | Yes | Number of rows in the result set. | -| rowIndex | number | Yes | Index of the current row in the result set. | -| isAtFirstRow | boolean | Yes | Whether the cursor is in the first row of the result set. | -| isAtLastRow | boolean | Yes | Whether the cursor is in the last row of the result set. | -| isEnded | boolean | Yes | Whether the cursor is after the last row of the result set.| -| isStarted | boolean | Yes | Whether the cursor has been moved. | -| isClosed | boolean | Yes | Whether the result set is closed. | - -### getColumnIndex9+ - -getColumnIndex(columnName: string): number - -Obtains the column index based on the column name. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ---------- | ------ | ---- | -------------------------- | -| columnName | string | Yes | Column name specified.| - -**Return value** - -| Type | Description | -| ------ | ------------------ | -| number | Index of the column obtained.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -resultSetV9.goToFirstRow(); -const id = resultSetV9.getLong(resultSetV9.getColumnIndex("ID")); -const name = resultSetV9.getString(resultSetV9.getColumnIndex("NAME")); -const age = resultSetV9.getLong(resultSetV9.getColumnIndex("AGE")); -const salary = resultSetV9.getDouble(resultSetV9.getColumnIndex("SALARY")); - ``` - -### getColumnName9+ - -getColumnName(columnIndex: number): string - -Obtains the column name based on the column index. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | -------------------------- | -| columnIndex | number | Yes | Column index specified.| - -**Return value** - -| Type | Description | -| ------ | ------------------ | -| string | Column name obtained.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -const id = resultSetV9.getColumnName(0); -const name = resultSetV9.getColumnName(1); -const age = resultSetV9.getColumnName(2); - ``` - -### goTo9+ - -goTo(offset:number): boolean - -Moves the cursor to the row based on the specified offset. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name| Type | Mandatory| Description | -| ------ | ------ | ---- | ---------------------------- | -| offset | number | Yes | Offset relative to the current position.| - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -**Example** - - ```js -let predicatesV9goto = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promisequerygoto = rdbStoreV9.query(predicatesV9goto, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promisequerygoto.then((resultSetV9) => { - resultSetV9.goTo(1); - resultSetV9.close(); -}).catch((err) => { - console.log('query failed'); -}); - ``` - -### goToRow9+ - -goToRow(position: number): boolean - -Moves the cursor to the specified row in the result set. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | ------ | ---- | ------------------------ | -| position | number | Yes | Position to which the cursor is to be moved.| - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -**Example** - - ```js -let predicatesV9gotorow = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promisequerygotorow = rdbStoreV9.query(predicatesV9gotorow, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promisequerygotorow.then((resultSetV9) => { - resultSetV9.goToRow(5); - resultSetV9.close(); -}).catch((err) => { - console.log('query failed'); -}); - ``` - -### goToFirstRow9+ - -goToFirstRow(): boolean - - -Moves the cursor to the first row of the result set. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -**Example** - - ```js -let predicatesV9goFirst = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promisequerygoFirst = rdbStoreV9.query(predicatesV9goFirst, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promisequerygoFirst.then((resultSetV9) => { - resultSetV9.goToFirstRow(); - resultSetV9.close(); -}).catch((err) => { - console.log('query failed'); -}); - ``` - -### goToLastRow9+ - -goToLastRow(): boolean - -Moves the cursor to the last row of the result set. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -**Example** - - ```js -let predicatesV9goLast = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promisequerygoLast = rdbStoreV9.query(predicatesV9goLast, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promisequerygoLast.then((resultSetV9) => { - resultSetV9.goToLastRow(); - resultSetV9.close(); -}).catch((err) => { - console.log('query failed'); -}); - ``` - -### goToNextRow9+ - -goToNextRow(): boolean - -Moves the cursor to the next row in the result set. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -**Example** - - ```js -let predicatesV9goNext = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promisequerygoNext = rdbStoreV9.query(predicatesV9goNext, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promisequerygoNext.then((resultSetV9) => { - resultSetV9.goToNextRow(); - resultSetV9.close(); -}).catch((err) => { - console.log('query failed'); -}); - ``` - -### goToPreviousRow9+ - -goToPreviousRow(): boolean - -Moves the cursor to the previous row in the result set. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -**Example** - - ```js -let predicatesV9goPrev = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promisequerygoPrev = rdbStoreV9.query(predicatesV9goPrev, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promisequerygoPrev.then((resultSetV9) => { - resultSetV9.goToPreviousRow(); - resultSetV9.close(); -}).catch((err) => { - console.log('query failed'); -}); - ``` - -### getBlob9+ - -getBlob(columnIndex: number): Uint8Array - -Obtains the value in the specified column in the current row as a byte array. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | ----------------------- | -| columnIndex | number | Yes | Index of the specified column, starting from 0.| - -**Return value** - -| Type | Description | -| ---------- | -------------------------------- | -| Uint8Array | Value in the specified column as a byte array.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -const codes = resultSetV9.getBlob(resultSetV9.getColumnIndex("CODES")); - ``` - -### getString9+ - -getString(columnIndex: number): string - -Obtains the value in the specified column in the current row as a string. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | ----------------------- | -| columnIndex | number | Yes | Index of the specified column, starting from 0.| - -**Return value** - -| Type | Description | -| ------ | ---------------------------- | -| string | Value in the specified column as a string.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -const name = resultSetV9.getString(resultSetV9.getColumnIndex("NAME")); - ``` - -### getLong9+ - -getLong(columnIndex: number): number - -Obtains the value in the specified column in the current row as a Long. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | ----------------------- | -| columnIndex | number | Yes | Index of the specified column, starting from 0.| - -**Return value** - -| Type | Description | -| ------ | -------------------------- | -| number | Value in the specified column as a Long.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -const age = resultSetV9.getLong(resultSetV9.getColumnIndex("AGE")); - ``` - -### getDouble9+ - -getDouble(columnIndex: number): number - -Obtains the value in the specified column in the current row as a double. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | ----------------------- | -| columnIndex | number | Yes | Index of the specified column, starting from 0.| - -**Return value** - -| Type | Description | -| ------ | ---------------------------- | -| number | Value in the specified column as a double.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -const salary = resultSetV9.getDouble(resultSetV9.getColumnIndex("SALARY")); - ``` - -### isColumnNull9+ - -isColumnNull(columnIndex: number): boolean - -Checks whether the value in the specified column of the current row is null. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | ----------------------- | -| columnIndex | number | Yes | Index of the specified column, starting from 0.| - -**Return value** - -| Type | Description | -| ------- | --------------------------------------------------------- | -| boolean | Returns **true** if the value is null; returns **false** otherwise.| - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800013 | The column value is null or the column type is incompatible. | - -**Example** - - ```js -const isColumnNull = resultSetV9.isColumnNull(resultSetV9.getColumnIndex("CODES")); - ``` - -### close9+ - -close(): void - -Closes this result set. - -**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core - -**Example** - - ```js -let predicatesV9Close = new dataRdb.RdbPredicatesV9("EMPLOYEE"); -let promiseClose = rdbStoreV9.query(predicatesV9Close, ["ID", "NAME", "AGE", "SALARY", "CODES"]); -promiseClose.then((resultSetV9) => { - resultSetV9.close(); -}).catch((err) => { - console.log('Failed to close the resultset'); -}); - ``` - -**Error codes** - -For details about the error codes, see [RDB Error Codes](../errorcodes/errorcode-data-rdb.md). - -| ID| **Error Message** | -| ------------ | ------------------------------------------------------------ | -| 14800012 | The result set is empty or the specified location is invalid. | - -## ResultSet(deprecated) +## ResultSet Provides methods to access the result set, which is obtained by querying the RDB store. -> **NOTE** -> -> This object is supported since API version 7 and deprecated since API version 9. You are advised to use [ResultSetV9](#resultsetv99). - ### Usage You need to obtain a **resultSet** object by using [RdbStore.query()](js-apis-data-rdb.md#query). @@ -559,11 +27,7 @@ promise.then((resultSet) => { }); ``` -### Attributes(deprecated) - -> **NOTE** -> -> This parameter is supported since API version 7 and is deprecated since API version 9. You are advised to use [Attributes](#attributes9). +### Attributes **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core @@ -579,29 +43,25 @@ promise.then((resultSet) => { | isStarted | boolean | Yes| Whether the cursor has been moved.| | isClosed | boolean | Yes| Whether the result set is closed.| -### getColumnIndex(deprecated) +### getColumnIndex getColumnIndex(columnName: string): number Obtains the column index based on the column name. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getColumnIndex](#getcolumnindex9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnName | string | Yes| Column name specified.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnName | string | Yes| Column name specified.| **Return value** -| Type| Description| -| -------- | -------- | -| number | Index of the column obtained.| + | Type| Description| + | -------- | -------- | + | number | Index of the column obtained.| **Example** @@ -613,29 +73,25 @@ Obtains the column index based on the column name. const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); ``` -### getColumnName(deprecated) +### getColumnName getColumnName(columnIndex: number): string Obtains the column name based on the column index. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getColumnName](#getcolumnname9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnIndex | number | Yes| Column index specified.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnIndex | number | Yes| Column index specified.| **Return value** -| Type| Description| -| -------- | -------- | -| string | Column name obtained.| + | Type| Description| + | -------- | -------- | + | string | Column name obtained.| **Example** @@ -645,29 +101,25 @@ Obtains the column name based on the column index. const age = resultSet.getColumnName(2); ``` -### goTo(deprecated) +### goTo goTo(offset:number): boolean Moves the cursor to the row based on the specified offset. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [goTo](#goto9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| offset | number | Yes| Offset relative to the current position.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | offset | number | Yes| Offset relative to the current position.| **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -682,29 +134,25 @@ Moves the cursor to the row based on the specified offset. }); ``` -### goToRow(deprecated) +### goToRow goToRow(position: number): boolean Moves the cursor to the specified row in the result set. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [goToRow](#gotorow9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| position | number | Yes| Position to which the cursor is to be moved.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | position | number | Yes| Position to which the cursor is to be moved.| **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -719,23 +167,19 @@ Moves the cursor to the specified row in the result set. }); ``` -### goToFirstRow(deprecated) +### goToFirstRow goToFirstRow(): boolean Moves the cursor to the first row of the result set. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [goToFirstRow](#gotofirstrow9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -750,23 +194,19 @@ Moves the cursor to the first row of the result set. }); ``` -### goToLastRow(deprecated) +### goToLastRow goToLastRow(): boolean Moves the cursor to the last row of the result set. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [goToLastRow](#gotolastrow9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -781,23 +221,19 @@ Moves the cursor to the last row of the result set. }); ``` -### goToNextRow(deprecated) +### goToNextRow goToNextRow(): boolean Moves the cursor to the next row in the result set. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [goToNextRow](#gotonextrow9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -812,23 +248,19 @@ Moves the cursor to the next row in the result set. }); ``` -### goToPreviousRow(deprecated) +### goToPreviousRow goToPreviousRow(): boolean Moves the cursor to the previous row in the result set. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [goToPreviousRow](#gotopreviousrow9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the operation is successful; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the operation is successful; returns **false** otherwise.| **Example** @@ -843,29 +275,25 @@ Moves the cursor to the previous row in the result set. }); ``` -### getBlob(deprecated) +### getBlob getBlob(columnIndex: number): Uint8Array Obtains the value in the specified column in the current row as a byte array. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getBlob](#getblob9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnIndex | number | Yes| Index of the specified column, starting from 0.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnIndex | number | Yes| Index of the specified column, starting from 0.| **Return value** -| Type| Description| -| -------- | -------- | -| Uint8Array | Value in the specified column as a byte array.| + | Type| Description| + | -------- | -------- | + | Uint8Array | Value in the specified column as a byte array.| **Example** @@ -873,29 +301,25 @@ Obtains the value in the specified column in the current row as a byte array. const codes = resultSet.getBlob(resultSet.getColumnIndex("CODES")); ``` -### getString(deprecated) +### getString getString(columnIndex: number): string Obtains the value in the specified column in the current row as a string. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getString](#getstring9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnIndex | number | Yes| Index of the specified column, starting from 0.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnIndex | number | Yes| Index of the specified column, starting from 0.| **Return value** -| Type| Description| -| -------- | -------- | -| string | Value in the specified column as a string.| + | Type| Description| + | -------- | -------- | + | string | Value in the specified column as a string.| **Example** @@ -903,29 +327,25 @@ Obtains the value in the specified column in the current row as a string. const name = resultSet.getString(resultSet.getColumnIndex("NAME")); ``` -### getLong(deprecated) +### getLong getLong(columnIndex: number): number Obtains the value in the specified column in the current row as a Long. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getLong](#getlong9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnIndex | number | Yes| Index of the specified column, starting from 0.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnIndex | number | Yes| Index of the specified column, starting from 0.| **Return value** -| Type| Description| -| -------- | -------- | -| number | Value in the specified column as a Long.| + | Type| Description| + | -------- | -------- | + | number | Value in the specified column as a Long.| **Example** @@ -933,29 +353,25 @@ Obtains the value in the specified column in the current row as a Long. const age = resultSet.getLong(resultSet.getColumnIndex("AGE")); ``` -### getDouble(deprecated) +### getDouble getDouble(columnIndex: number): number Obtains the value in the specified column in the current row as a double. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [getDouble](#getdouble9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnIndex | number | Yes| Index of the specified column, starting from 0.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnIndex | number | Yes| Index of the specified column, starting from 0.| **Return value** -| Type| Description| -| -------- | -------- | -| number | Value in the specified column as a double.| + | Type| Description| + | -------- | -------- | + | number | Value in the specified column as a double.| **Example** @@ -963,29 +379,25 @@ Obtains the value in the specified column in the current row as a double. const salary = resultSet.getDouble(resultSet.getColumnIndex("SALARY")); ``` -### isColumnNull(deprecated) +### isColumnNull isColumnNull(columnIndex: number): boolean Checks whether the value in the specified column of the current row is null. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [isColumnNull](#iscolumnnull9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| columnIndex | number | Yes| Index of the specified column, starting from 0.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | columnIndex | number | Yes| Index of the specified column, starting from 0.| **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the value is null; returns **false** otherwise.| + | Type| Description| + | -------- | -------- | + | boolean | Returns **true** if the value is null; returns **false** otherwise.| **Example** @@ -993,16 +405,12 @@ Checks whether the value in the specified column of the current row is null. const isColumnNull = resultSet.isColumnNull(resultSet.getColumnIndex("CODES")); ``` -### close(deprecated) +### close close(): void Closes this result set. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [close](#close9). - **System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core **Example** -- GitLab From f287de07f53d378c4c1c25fd94db6edd60d801aa Mon Sep 17 00:00:00 2001 From: mingxihua Date: Thu, 12 Jan 2023 15:39:54 +0800 Subject: [PATCH 185/383] mingxihua@huawei.com.cn Signed-off-by: mingxihua --- zh-cn/application-dev/tools/aa-tool.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/tools/aa-tool.md b/zh-cn/application-dev/tools/aa-tool.md index fef305b1cd..c32dd43669 100644 --- a/zh-cn/application-dev/tools/aa-tool.md +++ b/zh-cn/application-dev/tools/aa-tool.md @@ -68,7 +68,7 @@ Ability assistant(Ability助手,简称为aa),是实现应用及测试用 | -------- | -------- | -------- | | -h/--help | - | 帮助信息。 | | -a/--all | - | 打印所有mission内的应用组件信息。 | - | -l/--mission-list | type(缺省打印全部) | 打印任务栈信息。
可取值:
- NORMAL
- DEFAULT_STANDARD
- DEFAULT_SINGLE
- LAUNCHER | + | -l/--mission-list | type(缺省打印全部) | 服务侧为了方便管理任务链,内部维护了4种类型的任务链。
可取值:
- NORMAL: 正常启动的任务链
- DEFAULT_STANDARD: 已经被破坏的任务链中的任务, 启动模式为standard的任务被放到该任务链中, 这里面的任务之间没有关联关系
- DEFAULT_SINGLE: 已经被破坏的任务链中的任务, 启动模式为singleton的任务被放到该任务链中, 这里面的任务之间没有关联关系
- LAUNCHER: launcher的任务链 | | -e/--extension | elementName | 打印扩展组件信息。 | | -u/--userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如aa dump -a -u 100、aa dump -d -u 100。 | | -d/--data | - | 打印DataAbility相关信息。 | -- GitLab From 2bd548c8623e55c648ceec0b81a54a7a9f958040 Mon Sep 17 00:00:00 2001 From: echoorchid Date: Thu, 12 Jan 2023 15:42:18 +0800 Subject: [PATCH 186/383] changelo for webDebuggingAccess Signed-off-by: echoorchid --- .../OpenHarmony_4.0.2.2/changelog-web.md | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md new file mode 100644 index 0000000000..1aa1233f4c --- /dev/null +++ b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.2/changelog-web.md @@ -0,0 +1,63 @@ +# web子系统ChangeLog + +OpenHarmony 4.0.2.2 版本相较于OpenHarmony 之前的版本,web的API变更如下。 + +## cl.web.1 删除webDebuggingAccess接口 + +该接口定义不合理,该属性对所有web实例生效的,属于全局配置。用本次新增的接口setWebDebuggingAccess替换。 + +**变更影响** + +该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。 + +**关键的接口/组件变更** + +| 类名 | 接口类型 | 接口声明 | 变更类型 | +| -- | -- | -- | -- | +|WebAttribute | method | webDebugggingAccess(webDebugggingAccess: boolean): WebAttribute| 删除 | + +**适配指导** + +该接口删除无法再使用,请使用新增的接口setWebDebuggingAccess替换。 + +## cl.web.2 新增setWebDebuggingAccess接口 + +WebviewController提供静态方法来设置调试模式开关,该设置对所有web实例生效。 + +**变更影响** + +原有webDebugggingAccess属性定义不合理,因此新增该静态接口来设置调试模式开关。应用侧需要使用该接口来打开调试模式开关。 + +**关键的接口/组件变更** + +| 类名 | 接口类型 | 接口声明 | 变更类型 | +| -- | -- | -- | -- | +|webview.WebviewController | method | static setWebDebugggingAccess(webDebugggingAccess: boolean): void| 新增 | + +**适配指导** + +以打开调试开关为例,示例代码如下: + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview'; + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + + aboutToAppear():void { + try { + web_webview.WebviewController.setWebDebuggingAccess(true); + } catch(error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + } + + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} \ No newline at end of file -- GitLab From 66a38e8d5d0e3a605d5621a28bded7ec8f2f057c Mon Sep 17 00:00:00 2001 From: mingxihua Date: Thu, 12 Jan 2023 15:58:13 +0800 Subject: [PATCH 187/383] mingxihua@huawei.com.cn Signed-off-by: mingxihua --- zh-cn/application-dev/tools/aa-tool.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/tools/aa-tool.md b/zh-cn/application-dev/tools/aa-tool.md index c32dd43669..3a5665c276 100644 --- a/zh-cn/application-dev/tools/aa-tool.md +++ b/zh-cn/application-dev/tools/aa-tool.md @@ -68,7 +68,7 @@ Ability assistant(Ability助手,简称为aa),是实现应用及测试用 | -------- | -------- | -------- | | -h/--help | - | 帮助信息。 | | -a/--all | - | 打印所有mission内的应用组件信息。 | - | -l/--mission-list | type(缺省打印全部) | 服务侧为了方便管理任务链,内部维护了4种类型的任务链。
可取值:
- NORMAL: 正常启动的任务链
- DEFAULT_STANDARD: 已经被破坏的任务链中的任务, 启动模式为standard的任务被放到该任务链中, 这里面的任务之间没有关联关系
- DEFAULT_SINGLE: 已经被破坏的任务链中的任务, 启动模式为singleton的任务被放到该任务链中, 这里面的任务之间没有关联关系
- LAUNCHER: launcher的任务链 | + | -l/--mission-list | type(缺省打印全部) | 服务侧为了方便管理任务链,内部维护了4种类型的任务链。
可取值:
- NORMAL: 正常启动的任务链(比如A拉起B拉起C, 则对应的任务链是A->B->C)
- DEFAULT_STANDARD: 已经被破坏的任务链中的任务, 启动模式为standard的任务被放到该任务链中, 这里面的任务之间没有关联关系
- DEFAULT_SINGLE: 已经被破坏的任务链中的任务, 启动模式为singleton的任务被放到该任务链中, 这里面的任务之间没有关联关系
- LAUNCHER: launcher的任务链 | | -e/--extension | elementName | 打印扩展组件信息。 | | -u/--userId | UserId | 打印指定UserId的栈信息,需要和其他参数组合使用,例如aa dump -a -u 100、aa dump -d -u 100。 | | -d/--data | - | 打印DataAbility相关信息。 | -- GitLab From f21a6fd56bd75af1883dbf678d237376c43fed90 Mon Sep 17 00:00:00 2001 From: echoorchid Date: Tue, 10 Jan 2023 20:34:35 +0800 Subject: [PATCH 188/383] update webdebug to staitc global setting Signed-off-by: echoorchid --- .../reference/apis/js-apis-webview.md | 39 +++++++++++++++++++ .../arkui-ts/ts-basic-components-web.md | 30 -------------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-webview.md b/zh-cn/application-dev/reference/apis/js-apis-webview.md index 83c76ef9c3..5733eac220 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-webview.md +++ b/zh-cn/application-dev/reference/apis/js-apis-webview.md @@ -264,6 +264,45 @@ struct WebComponent { } ``` +### setWebDebuggingAccess + +static setWebDebuggingAccess(webDebuggingAccess: boolean): void + +设置是否启用网页调试功能。 + +**系统能力:** SystemCapability.Web.Webview.Core + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------------------ | ------- | ---- | ------------- | +| webDebuggingAccess | boolean | 是 | 设置是否启用网页调试功能。| + +```ts +// xxx.ets +import web_webview from '@ohos.web.webview'; + +@Entry +@Component +struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController(); + + aboutToAppear():void { + try { + web_webview.WebviewController.setWebDebuggingAccess(true); + } catch(error) { + console.error(`ErrorCode: ${error.code}, Message: ${error.message}`); + } + } + + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + } + } +} +``` + ### loadUrl loadUrl(url: string | Resource, headers?: Array\): void diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 1f5c45dffa..c368421baa 100755 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -745,36 +745,6 @@ userAgent(userAgent: string) } ``` -### webDebuggingAccess9+ - -webDebuggingAccess(webDebuggingAccess: boolean) - -设置是否启用网页调试功能。 - -**参数:** - -| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | -| ------------------ | ------- | ---- | ----- | ------------- | -| webDebuggingAccess | boolean | 是 | false | 设置是否启用网页调试功能。 | - -**示例:** - - ```ts - // xxx.ets - @Entry - @Component - struct WebComponent { - controller: WebController = new WebController() - @State webDebuggingAccess: boolean = true - build() { - Column() { - Web({ src: 'www.example.com', controller: this.controller }) - .webDebuggingAccess(this.webDebuggingAccess) - } - } - } - ``` - ### blockNetwork9+ blockNetwork(block: boolean) -- GitLab From f3d9c6823134e703e0b6f3661eb7151e2575ea48 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 12 Jan 2023 16:36:00 +0800 Subject: [PATCH 189/383] update docs Signed-off-by: zengyawen --- ...ion_1_1_a_v_playback_state_1_1_position.md | 4 +- .../reference/native-apis/_audio_decoder.md | 4 +- .../reference/native-apis/_audio_encoder.md | 4 +- .../reference/native-apis/_codec_base.md | 4 +- .../reference/native-apis/_core.md | 4 +- .../reference/native-apis/_drawing.md | 194 +++++++++--------- ...a_v_session_1_1_a_v_controller_callback.md | 4 +- .../reference/native-apis/_hi_log.md | 36 ++-- .../reference/native-apis/_mind_spore.md | 2 +- .../reference/native-apis/_native_vsync.md | 8 +- .../reference/native-apis/_native_window.md | 34 +-- .../_o_h___a_i___call_back_param.md | 2 +- .../native-apis/_o_h___a_i___shape_info.md | 2 +- .../_o_h___a_i___tensor_handle_array.md | 2 +- .../_o_h___a_v_codec_async_callback.md | 5 +- .../_o_h___a_v_codec_buffer_attr.md | 5 +- .../_o_h___drawing___bitmap_format.md | 2 +- .../native-apis/_o_h___native_buffer.md | 16 +- .../_o_h___native_buffer___config.md | 2 +- .../native-apis/_o_h___native_image.md | 18 +- .../native-apis/_o_h___native_x_component.md | 106 +++++----- .../_o_h___native_x_component___callback.md | 2 +- ..._o_h___native_x_component___mouse_event.md | 2 +- ...ve_x_component___mouse_event___callback.md | 2 +- ..._o_h___native_x_component___touch_event.md | 2 +- ..._o_h___native_x_component___touch_point.md | 2 +- ..._1_a_v_session_1_1_a_v_session_callback.md | 4 +- ...1_1_a_v_session_1_1_a_v_session_manager.md | 4 +- ..._1_1_a_v_session_1_1_output_device_info.md | 5 +- ..._s_1_1_a_v_session_1_1_session_listener.md | 4 +- ...h_o_s_1_1_a_v_session_1_1_session_token.md | 4 +- .../native-apis/_ohos_pixel_map_info.md | 2 +- .../native-apis/_raw_file_descriptor.md | 2 +- .../reference/native-apis/_video_decoder.md | 2 +- .../reference/native-apis/_video_encoder.md | 2 +- .../reference/native-apis/av__session_8h.md | 2 +- .../native-apis/avcontrol__command_8h.md | 2 +- .../reference/native-apis/avmeta__data_8h.md | 2 +- .../native-apis/avplayback__state_8h.md | 2 +- .../reference/native-apis/avsession.md | 2 +- .../native-apis/avsession__controller_8h.md | 2 +- .../native-apis/avsession__descriptor_8h.md | 2 +- .../native-apis/avsession__errors_8h.md | 2 +- .../native-apis/avsession__info_8h.md | 2 +- .../native-apis/avsession__manager_8h.md | 2 +- .../native-apis/avsession__pixel__map_8h.md | 2 +- .../reference/native-apis/context_8h.md | 2 +- .../reference/native-apis/data__type_8h.md | 2 +- .../native-apis/drawing__bitmap_8h.md | 2 +- .../native-apis/drawing__brush_8h.md | 2 +- .../native-apis/drawing__canvas_8h.md | 2 +- .../native-apis/drawing__color_8h.md | 2 +- .../drawing__font__collection_8h.md | 2 +- .../reference/native-apis/drawing__path_8h.md | 2 +- .../reference/native-apis/drawing__pen_8h.md | 2 +- .../drawing__text__declaration_8h.md | 2 +- .../drawing__text__typography_8h.md | 2 +- .../native-apis/drawing__types_8h.md | 2 +- .../native-apis/external__window_8h.md | 2 +- .../reference/native-apis/format_8h.md | 2 +- .../reference/native-apis/image.md | 19 +- .../native-apis/image__pixel__map__napi_8h.md | 4 +- .../reference/native-apis/log_8h.md | 2 +- .../reference/native-apis/model_8h.md | 2 +- .../native__avcodec__audiodecoder_8h.md | 2 +- .../native__avcodec__audioencoder_8h.md | 2 +- .../native-apis/native__avcodec__base_8h.md | 2 +- .../native__avcodec__videodecoder_8h.md | 2 +- .../native__avcodec__videoencoder_8h.md | 2 +- .../native-apis/native__averrors_8h.md | 2 +- .../native-apis/native__avformat_8h.md | 2 +- .../native-apis/native__avmemory_8h.md | 2 +- .../native-apis/native__buffer_8h.md | 2 +- .../reference/native-apis/native__image_8h.md | 2 +- .../native__interface__xcomponent_8h.md | 2 +- .../reference/native-apis/native__vsync_8h.md | 2 +- ..._a_v_session_1_1_a_v_session_basic_info.md | 2 +- ..._a_v_session_1_1_a_v_session_descriptor.md | 2 +- .../reference/native-apis/raw__dir_8h.md | 2 +- .../reference/native-apis/raw__file_8h.md | 2 +- .../native-apis/raw__file__manager_8h.md | 2 +- .../reference/native-apis/rawfile.md | 36 ++-- .../reference/native-apis/status_8h.md | 2 +- .../reference/native-apis/tensor_8h.md | 2 +- .../reference/native-apis/types_8h.md | 2 +- 85 files changed, 311 insertions(+), 339 deletions(-) diff --git a/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md b/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md index ab87d4886f..c9c21886df 100644 --- a/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md +++ b/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md @@ -5,10 +5,8 @@ 播放位置的相关信息。 -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_audio_decoder.md b/zh-cn/application-dev/reference/native-apis/_audio_decoder.md index bc160c71ac..9fc9af2325 100644 --- a/zh-cn/application-dev/reference/native-apis/_audio_decoder.md +++ b/zh-cn/application-dev/reference/native-apis/_audio_decoder.md @@ -7,10 +7,8 @@ AudioDecoder模块提供用于音频解码功能的函数。 @syscap SystemCapability.Multimedia.Media.AudioDecoder -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_audio_encoder.md b/zh-cn/application-dev/reference/native-apis/_audio_encoder.md index a3edbb7794..cafd93cefe 100644 --- a/zh-cn/application-dev/reference/native-apis/_audio_encoder.md +++ b/zh-cn/application-dev/reference/native-apis/_audio_encoder.md @@ -7,10 +7,8 @@ AudioEncoder模块提供用于音频编码功能的函数。 @syscap SystemCapability.Multimedia.Media.AudioEncoder -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_codec_base.md b/zh-cn/application-dev/reference/native-apis/_codec_base.md index a19b89726f..ad17aaa118 100644 --- a/zh-cn/application-dev/reference/native-apis/_codec_base.md +++ b/zh-cn/application-dev/reference/native-apis/_codec_base.md @@ -7,10 +7,8 @@ CodecBase模块提供运行音视频编解码通用的结构体、字符常量 @syscap SystemCapability.Multimedia.Media.CodecBase -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_core.md b/zh-cn/application-dev/reference/native-apis/_core.md index 93b290c3d4..f22ab2b548 100644 --- a/zh-cn/application-dev/reference/native-apis/_core.md +++ b/zh-cn/application-dev/reference/native-apis/_core.md @@ -7,10 +7,8 @@ Core模块提供用于播放框架的基础骨干能力,包含内存、错误 @syscap SystemCapability.Multimedia.Media.Core -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_drawing.md b/zh-cn/application-dev/reference/native-apis/_drawing.md index 64ce6a9a7e..fe4c793ed6 100644 --- a/zh-cn/application-dev/reference/native-apis/_drawing.md +++ b/zh-cn/application-dev/reference/native-apis/_drawing.md @@ -10,7 +10,7 @@ Drawing模块提供包括2D图形渲染、文字绘制和图片显示等功能 @syscap SystemCapability.Graphic.Graphic2D.NativeDrawing -**自从:** +**起始版本:** 8 @@ -173,7 +173,7 @@ typedef struct OH_Drawing_Bitmap OH_Drawing_Bitmap OH_Drawing_Bitmap定义为位图,位图是一块内存,内存中包含了描述一张图片的像素数据 -**自从:** +**起始版本:** 8 @@ -189,7 +189,7 @@ typedef struct OH_Drawing_Brush OH_Drawing_Brush OH_Drawing_Brush定义为画刷,画刷用于描述填充图形的样式和颜色 -**自从:** +**起始版本:** 8 @@ -205,7 +205,7 @@ typedef struct OH_Drawing_Canvas OH_Drawing_Canvas OH_Drawing_Canvas定义为一块矩形的画布,可以结合画笔和画刷在上面绘制各种形状、图片和文字 -**自从:** +**起始版本:** 8 @@ -221,7 +221,7 @@ typedef struct OH_Drawing_FontCollection OH_Drawing_FontCollection OH_Drawing_FontCollection用于加载字体 -**自从:** +**起始版本:** 8 @@ -237,7 +237,7 @@ typedef struct OH_Drawing_Path OH_Drawing_Path OH_Drawing_Path定义为路径,路径用于自定义各种形状 -**自从:** +**起始版本:** 8 @@ -253,7 +253,7 @@ typedef struct OH_Drawing_Pen OH_Drawing_Pen OH_Drawing_Pen定义为画笔,画笔用于描述绘制图形轮廓的样式和颜色 -**自从:** +**起始版本:** 8 @@ -269,7 +269,7 @@ typedef struct OH_Drawing_TextStyle OH_Drawing_TextStyle OH_Drawing_TextStyle用于管理字体颜色、装饰等 -**自从:** +**起始版本:** 8 @@ -285,7 +285,7 @@ typedef struct OH_Drawing_Typography OH_Drawing_Typography OH_Drawing_Typography用于管理排版的布局和显示等 -**自从:** +**起始版本:** 8 @@ -301,7 +301,7 @@ typedef struct OH_Drawing_TypographyCreate OH_Drawing_TypographyCreate OH_Drawing_TypographyCreate用于创建OH_Drawing_Typography -**自从:** +**起始版本:** 8 @@ -317,7 +317,7 @@ typedef struct OH_Drawing_TypographyStyle OH_Drawing_TypographyStyle OH_Drawing_TypographyStyle用于管理排版风格,如文字方向等 -**自从:** +**起始版本:** 8 @@ -343,7 +343,7 @@ OH_Drawing_AlphaFormat用于描述位图像素的透明度分量 | ALPHA_FORMAT_PREMUL | 每个像素的颜色组件由透明度分量预先乘以 | | ALPHA_FORMAT_UNPREMUL | 每个像素的颜色组件未由透明度分量预先乘以 | -**自从:** +**起始版本:** 8 @@ -368,7 +368,7 @@ OH_Drawing_ColorFormat用于描述位图像素的存储格式 | COLOR_FORMAT_RGBA_8888 | 每个像素用一个32位的量表示,高位到低位依次是8个比特位表示透明度,8个比特位表示红,8个比特位表示绿,8个比特位表示蓝 | | COLOR_FORMAT_BGRA_8888 | 每个像素用一个32位的量表示,高位到低位依次是8个比特位表示蓝,8个比特位表示绿,8个比特位表示红,8个比特位表示透明度 | -**自从:** +**起始版本:** 8 @@ -389,7 +389,7 @@ enum OH_Drawing_FontStyle | FONT_STYLE_NORMAL | 非斜体 | | FONT_STYLE_ITALIC | 斜体 | -**自从:** +**起始版本:** 8 @@ -417,7 +417,7 @@ enum OH_Drawing_FontWeight | FONT_WEIGHT_800 | 字重为extra-bold | | FONT_WEIGHT_900 | 字重为black | -**自从:** +**起始版本:** 8 @@ -439,7 +439,7 @@ enum OH_Drawing_PenLineCapStyle | LINE_SQUARE_CAP | 笔帽的样式为方框,线条的头尾端点处多出一个方框,方框宽度和线段一样宽,高度时线段厚度的一半 | | LINE_ROUND_CAP | 笔帽的样式为圆弧,线条的头尾端点处多出一个半圆弧,半圆的直径与线段厚度一致 | -**自从:** +**起始版本:** 8 @@ -461,7 +461,7 @@ enum OH_Drawing_PenLineJoinStyle | LINE_ROUND_JOIN | 转角类型为圆头 | | LINE_BEVEL_JOIN | 转角类型为平头 | -**自从:** +**起始版本:** 8 @@ -486,7 +486,7 @@ enum OH_Drawing_TextAlign | TEXT_ALIGN_START | 当OH_Drawing_TextDirection是TEXT_DIRECTION_LTR时, TEXT_ALIGN_START和TEXT_ALIGN_LEFT相同; 类似地,当OH_Drawing_TextDirection是TEXT_DIRECTION_RTL时, TEXT_ALIGN_START和TEXT_ALIGN_RIGHT相同。 | | TEXT_ALIGN_END | 当OH_Drawing_TextDirection是TEXT_DIRECTION_LTR时, TEXT_ALIGN_END和TEXT_ALIGN_RIGHT相同; 类似地,当OH_Drawing_TextDirection是TEXT_DIRECTION_RTL时, TEXT_ALIGN_END和TEXT_ALIGN_LEFT相同。 | -**自从:** +**起始版本:** 8 @@ -507,7 +507,7 @@ enum OH_Drawing_TextBaseline | TEXT_BASELINE_ALPHABETIC | 用于表音文字,基线在中间偏下的位置 | | TEXT_BASELINE_IDEOGRAPHIC | 用于表意文字,基线位于底部 | -**自从:** +**起始版本:** 8 @@ -530,7 +530,7 @@ enum OH_Drawing_TextDecoration | TEXT_DECORATION_OVERLINE | 上划线 | | TEXT_DECORATION_LINE_THROUGH | 删除线 | -**自从:** +**起始版本:** 8 @@ -551,7 +551,7 @@ enum OH_Drawing_TextDirection | TEXT_DIRECTION_RTL | 方向:从右到左 | | TEXT_DIRECTION_LTR | 方向:从左到右 | -**自从:** +**起始版本:** 8 @@ -581,7 +581,7 @@ void OH_Drawing_BitmapBuild (OH_Drawing_Bitmap * , const uint32_t width, const u | height | 参数是位图要初始化设置的高度 | | [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md) | 参数是位图要初始化设置的像素格式,包括像素的颜色类型和透明度类型 | -**自从:** +**起始版本:** 8 @@ -603,7 +603,7 @@ OH_Drawing_Bitmap* OH_Drawing_BitmapCreate (void ) 函数会返回一个指针,指针指向创建的位图对象 -**自从:** +**起始版本:** 8 @@ -627,7 +627,7 @@ void OH_Drawing_BitmapDestroy (OH_Drawing_Bitmap * ) | -------- | -------- | | OH_Drawing_Bitmap | 参数是一个指向位图对象的指针 | -**自从:** +**起始版本:** 8 @@ -655,7 +655,7 @@ uint32_t OH_Drawing_BitmapGetHeight (OH_Drawing_Bitmap * ) 函数返回位图的高度 -**自从:** +**起始版本:** 8 @@ -683,7 +683,7 @@ void* OH_Drawing_BitmapGetPixels (OH_Drawing_Bitmap * ) 函数返回位图的像素地址 -**自从:** +**起始版本:** 8 @@ -711,7 +711,7 @@ uint32_t OH_Drawing_BitmapGetWidth (OH_Drawing_Bitmap * ) 函数返回位图的宽度 -**自从:** +**起始版本:** 8 @@ -733,7 +733,7 @@ OH_Drawing_Brush* OH_Drawing_BrushCreate (void ) 函数会返回一个指针,指针指向创建的画刷对象 -**自从:** +**起始版本:** 8 @@ -757,7 +757,7 @@ void OH_Drawing_BrushDestroy (OH_Drawing_Brush * ) | -------- | -------- | | OH_Drawing_Brush | 参数是一个指向画刷对象的指针 | -**自从:** +**起始版本:** 8 @@ -785,7 +785,7 @@ uint32_t OH_Drawing_BrushGetColor (const OH_Drawing_Brush * ) 函数返回一个描述颜色的32位(ARGB)变量 -**自从:** +**起始版本:** 8 @@ -813,7 +813,7 @@ bool OH_Drawing_BrushIsAntiAlias (const OH_Drawing_Brush * ) 函数返回画刷对象是否设置抗锯齿属性,返回真则设置了抗锯齿,返回假则没有设置抗锯齿 -**自从:** +**起始版本:** 8 @@ -838,7 +838,7 @@ void OH_Drawing_BrushSetAntiAlias (OH_Drawing_Brush * , bool ) | OH_Drawing_Brush | 参数是一个指向画刷对象的指针 | | bool | 参数真为抗锯齿,参数假则不做抗锯齿处理 | -**自从:** +**起始版本:** 8 @@ -863,7 +863,7 @@ void OH_Drawing_BrushSetColor (OH_Drawing_Brush * , uint32_t color ) | OH_Drawing_Brush | 参数是一个指向画刷对象的指针 | | color | 参数是一个描述颜色的32位(ARGB)变量 | -**自从:** +**起始版本:** 8 @@ -888,7 +888,7 @@ void OH_Drawing_CanvasAttachBrush (OH_Drawing_Canvas * , const OH_Drawing_Brush | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | | OH_Drawing_Brush | 参数为一个指向画刷对象的指针 | -**自从:** +**起始版本:** 8 @@ -913,7 +913,7 @@ void OH_Drawing_CanvasAttachPen (OH_Drawing_Canvas * , const OH_Drawing_Pen * ) | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | | OH_Drawing_Pen | 参数为一个指向画笔对象的指针 | -**自从:** +**起始版本:** 8 @@ -938,7 +938,7 @@ void OH_Drawing_CanvasBind (OH_Drawing_Canvas * , OH_Drawing_Bitmap * ) | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | | OH_Drawing_Bitmap | 参数为一个指向位图对象的指针 | -**自从:** +**起始版本:** 8 @@ -963,7 +963,7 @@ void OH_Drawing_CanvasClear (OH_Drawing_Canvas * , uint32_t color ) | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | | color | 参数为一个描述颜色的32位(ARGB)变量 | -**自从:** +**起始版本:** 8 @@ -985,7 +985,7 @@ OH_Drawing_Canvas* OH_Drawing_CanvasCreate (void ) 函数会返回一个指针,指针指向创建的画布对象 -**自从:** +**起始版本:** 8 @@ -1009,7 +1009,7 @@ void OH_Drawing_CanvasDestroy (OH_Drawing_Canvas * ) | -------- | -------- | | OH_Drawing_Canvas | 参数是一个指向画布对象的指针 | -**自从:** +**起始版本:** 8 @@ -1033,7 +1033,7 @@ void OH_Drawing_CanvasDetachBrush (OH_Drawing_Canvas * ) | -------- | -------- | | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | -**自从:** +**起始版本:** 8 @@ -1057,7 +1057,7 @@ void OH_Drawing_CanvasDetachPen (OH_Drawing_Canvas * ) | -------- | -------- | | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | -**自从:** +**起始版本:** 8 @@ -1085,7 +1085,7 @@ void OH_Drawing_CanvasDrawLine (OH_Drawing_Canvas * , float x1, float y1, float | x2 | 参数为线段结束点的横坐标 | | y2 | 参数为线段结束点的纵坐标 | -**自从:** +**起始版本:** 8 @@ -1110,7 +1110,7 @@ void OH_Drawing_CanvasDrawPath (OH_Drawing_Canvas * , const OH_Drawing_Path * ) | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | | OH_Drawing_Path | 参数为一个指向路径对象的指针 | -**自从:** +**起始版本:** 8 @@ -1134,7 +1134,7 @@ void OH_Drawing_CanvasRestore (OH_Drawing_Canvas * ) | -------- | -------- | | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | -**自从:** +**起始版本:** 8 @@ -1158,7 +1158,7 @@ void OH_Drawing_CanvasSave (OH_Drawing_Canvas * ) | -------- | -------- | | OH_Drawing_Canvas | 参数为一个指向画布对象的指针 | -**自从:** +**起始版本:** 8 @@ -1189,7 +1189,7 @@ uint32_t OH_Drawing_ColorSetArgb (uint32_t alpha, uint32_t red, uint32_t green, 函数返回一个描述颜色的32位(ARGB)变量 -**自从:** +**起始版本:** 8 @@ -1211,7 +1211,7 @@ OH_Drawing_FontCollection* OH_Drawing_CreateFontCollection (void ) 指向创建的OH_Drawing_FontCollection对象的指针 -**自从:** +**起始版本:** 8 @@ -1233,7 +1233,7 @@ OH_Drawing_TextStyle* OH_Drawing_CreateTextStyle (void ) 指向创建的OH_Drawing_TextStyle对象的指针 -**自从:** +**起始版本:** 8 @@ -1261,7 +1261,7 @@ OH_Drawing_Typography* OH_Drawing_CreateTypography (OH_Drawing_TypographyCreate 指向OH_Drawing_Typography对象的指针 -**自从:** +**起始版本:** 8 @@ -1290,7 +1290,7 @@ OH_Drawing_TypographyCreate* OH_Drawing_CreateTypographyHandler (OH_Drawing_Typo 指向新创建的OH_Drawing_TypographyCreate对象的指针 -**自从:** +**起始版本:** 8 @@ -1312,7 +1312,7 @@ OH_Drawing_TypographyStyle* OH_Drawing_CreateTypographyStyle (void ) 指向创建的OH_Drawing_TypographyStyle对象的指针 -**自从:** +**起始版本:** 8 @@ -1336,7 +1336,7 @@ void OH_Drawing_DestroyFontCollection (OH_Drawing_FontCollection * ) | -------- | -------- | | OH_Drawing_FontCollection | 指向OH_Drawing_FontCollection对象的指针 | -**自从:** +**起始版本:** 8 @@ -1360,7 +1360,7 @@ void OH_Drawing_DestroyTextStyle (OH_Drawing_TextStyle * ) | -------- | -------- | | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | -**自从:** +**起始版本:** 8 @@ -1384,7 +1384,7 @@ void OH_Drawing_DestroyTypography (OH_Drawing_Typography * ) | -------- | -------- | | OH_Drawing_Typography | 指向OH_Drawing_Typography对象的指针 | -**自从:** +**起始版本:** 8 @@ -1408,7 +1408,7 @@ void OH_Drawing_DestroyTypographyHandler (OH_Drawing_TypographyCreate * ) | -------- | -------- | | OH_Drawing_TypographyCreate | 指向OH_Drawing_TypographyCreate对象的指针 | -**自从:** +**起始版本:** 8 @@ -1432,7 +1432,7 @@ void OH_Drawing_DestroyTypographyStyle (OH_Drawing_TypographyStyle * ) | -------- | -------- | | OH_Drawing_TypographyStyle | 指向OH_Drawing_TypographyStyle对象的指针 | -**自从:** +**起始版本:** 8 @@ -1462,7 +1462,7 @@ void OH_Drawing_PathArcTo (OH_Drawing_Path * , float x1, float y1, float x2, flo |startDeg | 参数为起始的角度 | |sweepDeg | 参数为扫描的度数 | -**自从:** +**起始版本:** 8 @@ -1486,7 +1486,7 @@ void OH_Drawing_PathClose (OH_Drawing_Path * ) | -------- | -------- | | OH_Drawing_Path | 参数为一个指向路径对象的指针 | -**自从:** +**起始版本:** 8 @@ -1508,7 +1508,7 @@ OH_Drawing_Path* OH_Drawing_PathCreate (void ) 函数会返回一个指针,指针指向创建的路径对象 -**自从:** +**起始版本:** 8 @@ -1538,7 +1538,7 @@ void OH_Drawing_PathCubicTo (OH_Drawing_Path * , float ctrlX1, float ctrlY1, flo | endX | 参数为目标点位置的横坐标 | | endY | 参数为目标点位置的纵坐标 | -**自从:** +**起始版本:** 8 @@ -1562,7 +1562,7 @@ void OH_Drawing_PathDestroy (OH_Drawing_Path * ) | -------- | -------- | | OH_Drawing_Path | 参数为一个指向路径对象的指针 | -**自从:** +**起始版本:** 8 @@ -1588,7 +1588,7 @@ void OH_Drawing_PathLineTo (OH_Drawing_Path * , float x, float y ) | x | 参数为目标点的横坐标 | | y | 参数为目标点的纵坐标 | -**自从:** +**起始版本:** 8 @@ -1614,7 +1614,7 @@ void OH_Drawing_PathMoveTo (OH_Drawing_Path * , float x, float y ) | x | 参数为起始点的横坐标 | | y | 参数为起始点的纵坐标 | -**自从:** +**起始版本:** 8 @@ -1642,7 +1642,7 @@ void OH_Drawing_PathQuadTo (OH_Drawing_Path * , float ctrlX, float ctrlY, float | endX | 参数为目标点位置的横坐标 | | endY | 参数为目标点位置的纵坐标 | -**自从:** +**起始版本:** 8 @@ -1666,7 +1666,7 @@ void OH_Drawing_PathReset (OH_Drawing_Path * ) | -------- | -------- | | OH_Drawing_Path | 参数为一个指向路径对象的指针 | -**自从:** +**起始版本:** 8 @@ -1688,7 +1688,7 @@ OH_Drawing_Pen* OH_Drawing_PenCreate (void ) 函数会返回一个指针,指针指向创建的画笔对象 -**自从:** +**起始版本:** 8 @@ -1712,7 +1712,7 @@ void OH_Drawing_PenDestroy (OH_Drawing_Pen * ) | -------- | -------- | | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | -**自从:** +**起始版本:** 8 @@ -1740,7 +1740,7 @@ OH_Drawing_PenLineCapStyle OH_Drawing_PenGetCap (const OH_Drawing_Pen * ) 函数返回画笔笔帽样式 -**自从:** +**起始版本:** 8 @@ -1768,7 +1768,7 @@ uint32_t OH_Drawing_PenGetColor (const OH_Drawing_Pen * ) 函数返回一个描述颜色的32位(ARGB)变量 -**自从:** +**起始版本:** 8 @@ -1796,7 +1796,7 @@ OH_Drawing_PenLineJoinStyle OH_Drawing_PenGetJoin (const OH_Drawing_Pen * ) 函数返回折线转角的样式 -**自从:** +**起始版本:** 8 @@ -1824,7 +1824,7 @@ float OH_Drawing_PenGetMiterLimit (const OH_Drawing_Pen * ) 函数返回尖角的限制值 -**自从:** +**起始版本:** 8 @@ -1852,7 +1852,7 @@ float OH_Drawing_PenGetWidth (const OH_Drawing_Pen * ) 函数返回画笔的厚度 -**自从:** +**起始版本:** 8 @@ -1880,7 +1880,7 @@ bool OH_Drawing_PenIsAntiAlias (const OH_Drawing_Pen * ) 函数返回画笔对象是否设置抗锯齿属性,返回真则设置了抗锯齿,返回假则没有设置抗锯齿 -**自从:** +**起始版本:** 8 @@ -1905,7 +1905,7 @@ void OH_Drawing_PenSetAntiAlias (OH_Drawing_Pen * , bool ) | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | | bool | 参数真为抗锯齿,参数假则不做抗锯齿处理 | -**自从:** +**起始版本:** 8 @@ -1930,7 +1930,7 @@ void OH_Drawing_PenSetCap (OH_Drawing_Pen * , OH_Drawing_PenLineCapStyle ) | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | | OH_Drawing_PenLineCapStyle | 参数是一个描述画笔笔帽样式的变量 | -**自从:** +**起始版本:** 8 @@ -1955,7 +1955,7 @@ void OH_Drawing_PenSetColor (OH_Drawing_Pen * , uint32_t color ) | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | | color | 参数是一个描述颜色的32位(ARGB)变量 | -**自从:** +**起始版本:** 8 @@ -1980,7 +1980,7 @@ void OH_Drawing_PenSetJoin (OH_Drawing_Pen * , OH_Drawing_PenLineJoinStyle ) | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | | OH_Drawing_PenLineJoinStyle | 参数值一个描述折线转角样式的变量 | -**自从:** +**起始版本:** 8 @@ -2005,7 +2005,7 @@ void OH_Drawing_PenSetMiterLimit (OH_Drawing_Pen * , float miter ) | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | | miter | 参数是一个描述尖角限制值的变量 | -**自从:** +**起始版本:** 8 @@ -2030,7 +2030,7 @@ void OH_Drawing_PenSetWidth (OH_Drawing_Pen * , float width ) | OH_Drawing_Pen | 参数是一个指向画笔对象的指针 | | width | 参数是一个描述画笔厚度的变量 | -**自从:** +**起始版本:** 8 @@ -2055,7 +2055,7 @@ void OH_Drawing_SetTextStyleBaseLine (OH_Drawing_TextStyle * , int ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | int | OH_Drawing_TextBaseline枚举类型 | -**自从:** +**起始版本:** 8 @@ -2080,7 +2080,7 @@ void OH_Drawing_SetTextStyleColor (OH_Drawing_TextStyle * , uint32_t ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | uint32_t | 颜色 | -**自从:** +**起始版本:** 8 @@ -2105,7 +2105,7 @@ void OH_Drawing_SetTextStyleDecoration (OH_Drawing_TextStyle * , int ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | int | OH_Drawing_TextDecoration枚举类型 | -**自从:** +**起始版本:** 8 @@ -2130,7 +2130,7 @@ void OH_Drawing_SetTextStyleDecorationColor (OH_Drawing_TextStyle * , uint32_t | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | uint32_t | 颜色 | -**自从:** +**起始版本:** 8 @@ -2156,7 +2156,7 @@ void OH_Drawing_SetTextStyleFontFamilies (OH_Drawing_TextStyle * , int , const c | int | 字体名称数量 | | fontFamilies | 指向字体类型的指针数组 | -**自从:** +**起始版本:** 8 @@ -2181,7 +2181,7 @@ void OH_Drawing_SetTextStyleFontHeight (OH_Drawing_TextStyle * , double ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | double | 字体高度 | -**自从:** +**起始版本:** 8 @@ -2206,7 +2206,7 @@ void OH_Drawing_SetTextStyleFontSize (OH_Drawing_TextStyle * , double ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | double | 字号 | -**自从:** +**起始版本:** 8 @@ -2231,7 +2231,7 @@ void OH_Drawing_SetTextStyleFontStyle (OH_Drawing_TextStyle * , int ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | int | OH_Drawing_FontStyle枚举类型 | -**自从:** +**起始版本:** 8 @@ -2256,7 +2256,7 @@ void OH_Drawing_SetTextStyleFontWeight (OH_Drawing_TextStyle * , int ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | int | OH_Drawing_FontWeight枚举类型 | -**自从:** +**起始版本:** 8 @@ -2281,7 +2281,7 @@ void OH_Drawing_SetTextStyleLocale (OH_Drawing_TextStyle * , const char * ) | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | | char | 语言区域,数据类型为指向char的指针 | -**自从:** +**起始版本:** 8 @@ -2306,7 +2306,7 @@ void OH_Drawing_SetTypographyTextAlign (OH_Drawing_TypographyStyle * , int ) | OH_Drawing_TypographyStyle | 指向OH_Drawing_TypographyStyle对象的指针 | | int | OH_Drawing_TextAlign枚举类型 | -**自从:** +**起始版本:** 8 @@ -2331,7 +2331,7 @@ void OH_Drawing_SetTypographyTextDirection (OH_Drawing_TypographyStyle * , int | OH_Drawing_TypographyStyle | 指向OH_Drawing_TypographyStyle对象的指针 | | int | OH_Drawing_TextDirection枚举类型 | -**自从:** +**起始版本:** 8 @@ -2356,7 +2356,7 @@ void OH_Drawing_SetTypographyTextMaxLines (OH_Drawing_TypographyStyle * , int ) | OH_Drawing_TypographyStyle | 指向OH_Drawing_TypographyStyle对象的指针 | | int | 最大行数 | -**自从:** +**起始版本:** 8 @@ -2381,7 +2381,7 @@ void OH_Drawing_TypographyHandlerAddText (OH_Drawing_TypographyCreate * , const | OH_Drawing_TypographyCreate | 指向OH_Drawing_TypographyCreate对象的指针 | | char | 指向文本内容的指针 | -**自从:** +**起始版本:** 8 @@ -2405,7 +2405,7 @@ void OH_Drawing_TypographyHandlerPopTextStyle (OH_Drawing_TypographyCreate * ) | -------- | -------- | | OH_Drawing_TypographyCreate | 指向OH_Drawing_TypographyCreate对象的指针 | -**自从:** +**起始版本:** 8 @@ -2430,7 +2430,7 @@ void OH_Drawing_TypographyHandlerPushTextStyle (OH_Drawing_TypographyCreate * , | OH_Drawing_TypographyCreate | 指向OH_Drawing_TypographyCreate对象的指针 | | OH_Drawing_TextStyle | 指向OH_Drawing_TextStyle对象的指针 | -**自从:** +**起始版本:** 8 @@ -2455,7 +2455,7 @@ void OH_Drawing_TypographyLayout (OH_Drawing_Typography * , double ) | OH_Drawing_Typography | 指向OH_Drawing_Typography对象的指针 | | double | 文本最大宽度 | -**自从:** +**起始版本:** 8 @@ -2482,6 +2482,6 @@ void OH_Drawing_TypographyPaint (OH_Drawing_Typography * , OH_Drawing_Canvas * , | double | x坐标 | | double | y坐标 | -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md b/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md index ef94d783a2..e22742620f 100644 --- a/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md +++ b/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md @@ -5,10 +5,8 @@ 定义控制器相关回调操作的类的实现。 -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_hi_log.md b/zh-cn/application-dev/reference/native-apis/_hi_log.md index 0eb0c63523..0861e94472 100644 --- a/zh-cn/application-dev/reference/native-apis/_hi_log.md +++ b/zh-cn/application-dev/reference/native-apis/_hi_log.md @@ -10,7 +10,7 @@ HiLog模块实现日志打印功能。 @syscap SystemCapability.HiviewDFX.HiLog -**自从:** +**起始版本:** 8 @@ -32,11 +32,11 @@ HiLog模块实现日志打印功能。 | -------- | -------- | | [LOG_DOMAIN](#log_domain) 0 | 日志所对应的业务领域,用于标识业务的子系统、模块。 | | [LOG_TAG](#log_tag) NULL | 字符串常量,标识调用所在的类或者业务。 | -| [OH_LOG_DEBUG](#oh_log_debug)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_DEBUG, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | DEBUG级别写日志,宏封装接口。 | -| [OH_LOG_INFO](#oh_log_info)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_INFO, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | INFO级别写日志,宏封装接口。 | -| [OH_LOG_WARN](#oh_log_warn)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_WARN, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | WARN级别写日志,宏封装接口。 | -| [OH_LOG_ERROR](#oh_log_error)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_ERROR, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | ERROR级别写日志,宏封装接口。 | -| [OH_LOG_FATAL](#oh_log_fatal)(type, ...) ((void)HiLogPrint((type), LOG_FATAL, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | FATAL级别写日志,宏封装接口。 | +| [OH_LOG_DEBUG](#oh_log_debug)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_DEBUG, LOG_DOMAIN, LOG_TAG, \_\_VA_ARGS__)) | DEBUG级别写日志,宏封装接口。 | +| [OH_LOG_INFO](#oh_log_info)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_INFO, LOG_DOMAIN, LOG_TAG, \_\_VA_ARGS__)) | INFO级别写日志,宏封装接口。 | +| [OH_LOG_WARN](#oh_log_warn)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_WARN, LOG_DOMAIN, LOG_TAG, \_\_VA_ARGS__)) | WARN级别写日志,宏封装接口。 | +| [OH_LOG_ERROR](#oh_log_error)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_ERROR, LOG_DOMAIN, LOG_TAG, \_\_VA_ARGS__)) | ERROR级别写日志,宏封装接口。 | +| [OH_LOG_FATAL](#oh_log_fatal)(type, ...) ((void)HiLogPrint((type), LOG_FATAL, LOG_DOMAIN, LOG_TAG, \_\_VA_ARGS__)) | FATAL级别写日志,宏封装接口。 | ### 枚举 @@ -51,7 +51,7 @@ HiLog模块实现日志打印功能。 | 函数名称 | 描述 | | -------- | -------- | -| [OH_LOG_Print](#oh_log_print) ([LogType](#logtype) type, [LogLevel](#loglevel) level, unsigned int domain, const char \*tag, const char \*fmt,...) \_\_attribute\_\_((\_\_format\_\_(os\_log | 写日志接口。 | +| [OH_LOG_Print](#oh_log_print) ([LogType](#logtype) type, [LogLevel](#loglevel) level, unsigned int domain, const char \*tag, const char \*fmt,...) \_\_attribute\_\_((\_\_format\_\_(os\_log, 5,6))) | 写日志接口。 | | [OH_LOG_IsLoggable](#oh_log_isloggable) (unsigned int domain, const char \*tag, [LogLevel](#loglevel) level) | 检查指定业务领域、TAG、级别的日志是否可以打印。 | @@ -74,7 +74,7 @@ HiLog模块实现日志打印功能。 16进制整数,有效范围0x0~0xFFFF,超过自动截掉高位。 -**自从:** +**起始版本:** 8 @@ -90,7 +90,7 @@ HiLog模块实现日志打印功能。 字符串常量,标识调用所在的类或者业务。 -**自从:** +**起始版本:** 8 @@ -120,7 +120,7 @@ DEBUG级别写日志,宏封装接口。 [OH_LOG_Print](#oh_log_print) -**自从:** +**起始版本:** 8 @@ -150,7 +150,7 @@ ERROR级别写日志,宏封装接口。 [OH_LOG_Print](#oh_log_print) -**自从:** +**起始版本:** 8 @@ -180,7 +180,7 @@ FATAL级别写日志,宏封装接口。 [OH_LOG_Print](#oh_log_print) -**自从:** +**起始版本:** 8 @@ -210,7 +210,7 @@ INFO级别写日志,宏封装接口。 [OH_LOG_Print](#oh_log_print) -**自从:** +**起始版本:** 8 @@ -240,7 +240,7 @@ WARN级别写日志,宏封装接口。 [OH_LOG_Print](#oh_log_print) -**自从:** +**起始版本:** 8 @@ -281,7 +281,7 @@ FATAL:重大致命异常,表明程序或功能即将崩溃,故障无法恢 | LOG_ERROR | ERROR日志级别,使用OH_LOG_ERROR接口打印 | | LOG_FATAL | FATAL日志级别,使用OH_LOG_FATAL接口打印 | -**自从:** +**起始版本:** 8 @@ -303,7 +303,7 @@ enum LogType | -------- | -------- | | LOG_APP | 应用日志 | -**自从:** +**起始版本:** 8 @@ -334,7 +334,7 @@ bool OH_LOG_IsLoggable (unsigned int domain, const char * tag, LogLevel level ) 如果指定domain、tag、level日志可以打印则返回true;否则返回false。 -**自从:** +**起始版本:** 8 @@ -367,6 +367,6 @@ int OH_LOG_Print (LogType type, LogLevel level, unsigned int domain, const char 大于等于0表示成功;小于0表示失败。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_mind_spore.md b/zh-cn/application-dev/reference/native-apis/_mind_spore.md index 9812ce51e5..0551f211c2 100644 --- a/zh-cn/application-dev/reference/native-apis/_mind_spore.md +++ b/zh-cn/application-dev/reference/native-apis/_mind_spore.md @@ -7,7 +7,7 @@ @Syscap SystemCapability.Ai.MindSpore -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_native_vsync.md b/zh-cn/application-dev/reference/native-apis/_native_vsync.md index 08fc54aaca..e62730449f 100644 --- a/zh-cn/application-dev/reference/native-apis/_native_vsync.md +++ b/zh-cn/application-dev/reference/native-apis/_native_vsync.md @@ -7,7 +7,7 @@ @syscap SystemCapability.Graphic.Graphic2D.NativeVsync -**自从:** +**起始版本:** 8 @@ -62,7 +62,7 @@ OH_NativeVSync* OH_NativeVSync_Create (const char * name, unsigned int length ) 返回一个指向OH_NativeVSync实例的指针 -**自从:** +**起始版本:** 8 @@ -86,7 +86,7 @@ void OH_NativeVSync_Destroy (OH_NativeVSync * nativeVsync) | -------- | -------- | | nativeVsync | 参数是一个指向OH_NativeVSync实例的指针 | -**自从:** +**起始版本:** 8 @@ -116,6 +116,6 @@ int OH_NativeVSync_RequestFrame (OH_NativeVSync * nativeVsync, OH_NativeVSync_Fr 返回一个由GSError定义的int32_t类型的错误码 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_native_window.md b/zh-cn/application-dev/reference/native-apis/_native_window.md index 489e5615e9..de4b1ed61a 100644 --- a/zh-cn/application-dev/reference/native-apis/_native_window.md +++ b/zh-cn/application-dev/reference/native-apis/_native_window.md @@ -7,7 +7,7 @@ \@syscap SystemCapability.Graphic.Graphic2D.NativeWindow -**自从:** +**起始版本:** 8 @@ -184,7 +184,7 @@ OHNativeWindow* OH_NativeWindow_CreateNativeWindow (void * pSurface) 返回一个指针,指向NativeWindow的结构体实例 -**自从:** +**起始版本:** 8 @@ -212,7 +212,7 @@ OHNativeWindowBuffer* OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer 返回一个指针,指向NativeWindowBuffer的结构体实例 -**自从:** +**起始版本:** 8 @@ -236,7 +236,7 @@ void OH_NativeWindow_DestroyNativeWindow (OHNativeWindow * window) | -------- | -------- | | window | 参数是一个NativeWindow的结构体实例的指针 | -**自从:** +**起始版本:** 8 @@ -260,7 +260,7 @@ void OH_NativeWindow_DestroyNativeWindowBuffer (OHNativeWindowBuffer * buffer) | -------- | -------- | | buffer | 参数是一个NativeWindowBuffer的结构体实例的指针 | -**自从:** +**起始版本:** 8 @@ -288,7 +288,7 @@ BufferHandle* OH_NativeWindow_GetBufferHandleFromNative (OHNativeWindowBuffer * BufferHandle 返回一个指针,指向BufferHandle的结构体实例 -**自从:** +**起始版本:** 8 @@ -316,7 +316,7 @@ int32_t OH_NativeWindow_GetNativeObjectMagic (void * obj) MagicId 返回值为魔鬼数字,每个NativeObject唯一 -**自从:** +**起始版本:** 8 @@ -344,7 +344,7 @@ int32_t OH_NativeWindow_NativeObjectReference (void * obj) GSError 返回值为错误码 -**自从:** +**起始版本:** 8 @@ -372,7 +372,7 @@ int32_t OH_NativeWindow_NativeObjectUnreference (void * obj) GSError 返回值为错误码 -**自从:** +**起始版本:** 8 @@ -401,7 +401,7 @@ int32_t OH_NativeWindow_NativeWindowAbortBuffer (OHNativeWindow * window, OHNati GSError 返回值为错误码 -**自从:** +**起始版本:** 8 @@ -432,7 +432,7 @@ int32_t OH_NativeWindow_NativeWindowFlushBuffer (OHNativeWindow * window, OHNati GSError 返回值为错误码 -**自从:** +**起始版本:** 8 @@ -462,7 +462,7 @@ int32_t OH_NativeWindow_NativeWindowHandleOpt (OHNativeWindow * window, int code GSError 返回值为错误码 -**自从:** +**起始版本:** 8 @@ -492,7 +492,7 @@ int32_t OH_NativeWindow_NativeWindowRequestBuffer (OHNativeWindow * window, OHNa GSError 返回值为错误码 -**自从:** +**起始版本:** 8 @@ -523,7 +523,7 @@ int32_t OH_NativeWindow_NativeWindowSetMetaData (OHNativeWindow * window, uint32 GSError 返回值为错误码 -**自从:** +**起始版本:** 9 @@ -555,7 +555,7 @@ int32_t OH_NativeWindow_NativeWindowSetMetaDataSet (OHNativeWindow * window, uin GSError 返回值为错误码 -**自从:** +**起始版本:** 9 @@ -585,7 +585,7 @@ int32_t OH_NativeWindow_NativeWindowSetScalingMode (OHNativeWindow * window, uin GSError 返回值为错误码 -**自从:** +**起始版本:** 9 @@ -614,6 +614,6 @@ int32_t OH_NativeWindow_NativeWindowSetTunnelHandle (OHNativeWindow * window, co GSError 返回值为错误码 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___a_i___call_back_param.md b/zh-cn/application-dev/reference/native-apis/_o_h___a_i___call_back_param.md index 9572e0c292..5a0215f1a1 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___a_i___call_back_param.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___a_i___call_back_param.md @@ -5,7 +5,7 @@ 回调函数中传入的算子信息。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___a_i___shape_info.md b/zh-cn/application-dev/reference/native-apis/_o_h___a_i___shape_info.md index e4a1a1da15..469ff83eae 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___a_i___shape_info.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___a_i___shape_info.md @@ -5,7 +5,7 @@ 维度信息,最大的维度为MS_MAX_SHAPE_NUM。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___a_i___tensor_handle_array.md b/zh-cn/application-dev/reference/native-apis/_o_h___a_i___tensor_handle_array.md index b6999b75fd..ed5e5b6824 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___a_i___tensor_handle_array.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___a_i___tensor_handle_array.md @@ -5,7 +5,7 @@ 张量数组结构体,用于存储张量数组指针和张量数组长度。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_async_callback.md b/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_async_callback.md index 40ee60a6f2..e3a23ae49a 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_async_callback.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_async_callback.md @@ -7,10 +7,9 @@ AVCodec所有的异步回调函数指针集合。注册一个该结构体实例 @syscap SystemCapability.Multimedia.Media.CodecBase 参数 -**Since:** +**起始版本:** 9 -**Version:** -1.0 + **相关模块:** [CodecBase](_codec_base.md) diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md b/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md index 967a2f545a..afb9dcbda4 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___a_v_codec_buffer_attr.md @@ -7,10 +7,9 @@ @syscap SystemCapability.Multimedia.Media.CodecBase -**Since:** +**起始版本:** 9 -**Version:** -1.0 + **相关模块:** [CodecBase](_codec_base.md) diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___drawing___bitmap_format.md b/zh-cn/application-dev/reference/native-apis/_o_h___drawing___bitmap_format.md index fdfba39de3..3b7e1dcb5e 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___drawing___bitmap_format.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___drawing___bitmap_format.md @@ -5,7 +5,7 @@ 结构体用于描述位图像素的格式,包括颜色类型和透明度类型 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer.md index 42f48deda9..9e7ea9a749 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer.md @@ -7,7 +7,7 @@ @syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer -**自从:** +**起始版本:** 9 @@ -72,7 +72,7 @@ OH_NativeBuffer* OH_NativeBuffer_Alloc (const OH_NativeBuffer_Config * config) 创建成功则返回一个指向OH_NativeBuffer结构体实例的指针,否则返回NULL -**自从:** +**起始版本:** 9 @@ -97,7 +97,7 @@ void OH_NativeBuffer_GetConfig (OH_NativeBuffer * buffer, OH_NativeBuffer_Config | buffer | 参数是一个指向OH_NativeBuffer实例的指针 | | config | 参数是一个指向OH_NativeBuffer_Config的指针,用于接收OH_NativeBuffer的属性 | -**自从:** +**起始版本:** 9 @@ -125,7 +125,7 @@ uint32_t OH_NativeBuffer_GetSeqNum (OH_NativeBuffer * buffer) 返回对应OH_NativeBuffer的唯一序列号 -**自从:** +**起始版本:** 9 @@ -154,7 +154,7 @@ int32_t OH_NativeBuffer_Map (OH_NativeBuffer * buffer, void ** virAddr ) 返回一个由GSError定义的int32_t类型的错误码 -**自从:** +**起始版本:** 9 @@ -182,7 +182,7 @@ int32_t OH_NativeBuffer_Reference (OH_NativeBuffer * buffer) 返回一个由GSError定义的int32_t类型的错误码 -**自从:** +**起始版本:** 9 @@ -210,7 +210,7 @@ int32_t OH_NativeBuffer_Unmap (OH_NativeBuffer * buffer) 返回一个由GSError定义的int32_t类型的错误码 -**自从:** +**起始版本:** 9 @@ -238,6 +238,6 @@ int32_t OH_NativeBuffer_Unreference (OH_NativeBuffer * buffer) 返回一个由GSError定义的int32_t类型的错误码 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer___config.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer___config.md index 10342ee528..72e675e771 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer___config.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_buffer___config.md @@ -5,7 +5,7 @@ OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_image.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_image.md index 5b9096d96d..3a44d24db9 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_image.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_image.md @@ -7,7 +7,7 @@ @syscap SystemCapability.Graphic.Graphic2D.OH_NativeImage -**自从:** +**起始版本:** 9 @@ -60,13 +60,13 @@ OHNativeWindow* OH_NativeImage_AcquireNativeWindow (OH_NativeImage * image) | Name | 描述 | | -------- | -------- | -| image | 指向<b>OH_NativeImage</b>实例的指针。 | +| image | 指向OH_NativeImage实例的指针。 | **返回:** 成功则返回一个指向OHNativeWindow实例的指针,否则返回**NULL**。 -**自从:** +**起始版本:** 9 @@ -95,7 +95,7 @@ int32_t OH_NativeImage_AttachContext (OH_NativeImage * image, uint32_t textureId 返回一个由**SurfaceError**定义的int32_t类型的错误码。 -**自从:** +**起始版本:** 9 @@ -124,7 +124,7 @@ OH_NativeImage* OH_NativeImage_Create (uint32_t textureId, uint32_t textureTarge 返回一个指向**OH_NativeImage**实例的指针,否则返回**NULL**。 -**自从:** +**起始版本:** 9 @@ -172,7 +172,7 @@ int32_t OH_NativeImage_DetachContext (OH_NativeImage * image) 返回一个由**SurfaceError**定义的int32_t类型的错误码。 -**自从:** +**起始版本:** 9 @@ -200,7 +200,7 @@ int64_t OH_NativeImage_GetTimestamp (OH_NativeImage * image) 返回纹理图像的相关时间戳。 -**自从:** +**起始版本:** 9 @@ -229,7 +229,7 @@ int32_t OH_NativeImage_GetTransformMatrix (OH_NativeImage * image, float matrix[ 返回一个由**SurfaceError**定义的int32_t类型的错误码。 -**自从:** +**起始版本:** 9 @@ -257,6 +257,6 @@ int32_t OH_NativeImage_UpdateSurfaceImage (OH_NativeImage * image) 返回一个由**SurfaceError**定义的int32_t类型的错误码。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component.md index 7a49281587..fffd2abf32 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component.md @@ -3,7 +3,7 @@ 描述ArkUI XComponent持有的surface和触摸事件,该事件可用于EGL/OpenGLES和媒体数据输入,并显示在ArkUI XComponent上。 -**自从:** +**起始版本:** 8 @@ -122,7 +122,7 @@ typedef struct OH_NativeXComponent OH_NativeXComponent 提供封装的OH_NativeXComponent实例。 -**自从:** +**起始版本:** 8 @@ -138,7 +138,7 @@ typedef struct OH_NativeXComponent_Callback OH_NativeXComponent_Callback 注册surface生命周期和触摸事件回调。 -**自从:** +**起始版本:** 8 @@ -154,7 +154,7 @@ typedef struct OH_NativeXComponent_MouseEvent_Callback OH_NativeXComponent_Mouse 注册鼠标事件的回调。 -**自从:** +**起始版本:** 9 @@ -178,10 +178,8 @@ anonymous enum | OH_NATIVEXCOMPONENT_RESULT_SUCCESS | 成功结果。 | | OH_NATIVEXCOMPONENT_RESULT_FAILED | 失败结果。 | | OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER | 无效参数。 | -| OHOS_IMAGE_RESULT_SUCCESS | 成功的结果 | -| OHOS_IMAGE_RESULT_BAD_PARAMETER | 无效值 | -**自从:** +**起始版本:** 8 @@ -204,7 +202,7 @@ enum OH_NativeXComponent_MouseEventAction | OH_NATIVEXCOMPONENT_MOUSE_RELEASE | 鼠标按键松开时触发鼠标事件。 | | OH_NATIVEXCOMPONENT_MOUSE_MOVE | 鼠标在屏幕上移动时触发鼠标事件。 | -**自从:** +**起始版本:** 9 @@ -229,7 +227,7 @@ enum OH_NativeXComponent_MouseEventButton | OH_NATIVEXCOMPONENT_BACK_BUTTON | 按下鼠标左侧后退键时触发鼠标事件。 | | OH_NATIVEXCOMPONENT_FORWARD_BUTTON | 按下鼠标左侧前进键时触发鼠标事件。 | -**自从:** +**起始版本:** 9 @@ -253,7 +251,7 @@ enum OH_NativeXComponent_TouchEventType | OH_NATIVEXCOMPONENT_CANCEL | 触摸事件取消时触发事件。 | | OH_NATIVEXCOMPONENT_UNKNOWN | 无效的触摸类型。 | -**自从:** +**起始版本:** 8 @@ -284,7 +282,7 @@ int32_t OH_NativeXComponent_GetMouseEvent (OH_NativeXComponent * component, cons 返回执行的状态代码。 -**自从:** +**起始版本:** 9 @@ -312,7 +310,7 @@ int32_t OH_NativeXComponent_GetTouchEvent (OH_NativeXComponent * component, cons 返回执行的状态代码。 -**自从:** +**起始版本:** 8 @@ -340,7 +338,7 @@ int32_t OH_NativeXComponent_GetXComponentId (OH_NativeXComponent * component, ch 返回执行的状态代码。 -**自从:** +**起始版本:** 8 @@ -369,7 +367,7 @@ int32_t OH_NativeXComponent_GetXComponentOffset (OH_NativeXComponent * component 返回执行的状态代码。 -**自从:** +**起始版本:** 8 @@ -398,7 +396,7 @@ int32_t OH_NativeXComponent_GetXComponentSize (OH_NativeXComponent * component, 返回执行的状态代码。 -**自从:** +**起始版本:** 8 @@ -425,7 +423,7 @@ int32_t OH_NativeXComponent_RegisterCallback (OH_NativeXComponent * component, O 返回执行的状态代码。 -**自从:** +**起始版本:** 8 @@ -452,7 +450,7 @@ int32_t OH_NativeXComponent_RegisterMouseEventCallback (OH_NativeXComponent * co 返回执行的状态代码。 -**自从:** +**起始版本:** 9 @@ -471,7 +469,7 @@ const uint32_t OH_XCOMPONENT_ID_LEN_MAX = 128 ArkUI XComponent的id最大长度。 -**自从:** +**起始版本:** 8 @@ -487,7 +485,7 @@ const uint32_t OH_MAX_TOUCH_POINTS_NUMBER = 10 触摸事件中的可识别的触摸点个数最大值。 -**自从:** +**起始版本:** 8 @@ -503,7 +501,7 @@ OH_NativeXComponent_MouseEventAction OH_NativeXComponent_MouseEvent::action 当前鼠标事件动作。 -**自从:** +**起始版本:** 8 @@ -519,7 +517,7 @@ OH_NativeXComponent_MouseEventButton OH_NativeXComponent_MouseEvent::button 鼠标事件按键 -**自从:** +**起始版本:** 8 @@ -535,7 +533,7 @@ int64_t OH_NativeXComponent_TouchEvent::deviceId = 0 产生当前触摸事件的设备的ID。 -**自从:** +**起始版本:** 8 @@ -551,7 +549,7 @@ void(* OH_NativeXComponent_MouseEvent_Callback::DispatchHoverEvent) (OH_NativeXC 当悬停事件被触发时调用。 -**自从:** +**起始版本:** 8 @@ -567,7 +565,7 @@ void(* OH_NativeXComponent_MouseEvent_Callback::DispatchMouseEvent) (OH_NativeXC 当鼠标事件被触发时调用。 -**自从:** +**起始版本:** 8 @@ -583,7 +581,7 @@ void(* OH_NativeXComponent_Callback::DispatchTouchEvent) (OH_NativeXComponent *c 当触摸事件被触发时调用。 -**自从:** +**起始版本:** 8 @@ -599,7 +597,7 @@ float OH_NativeXComponent_TouchPoint::force = 0.0 当前触摸事件的压力。 -**自从:** +**起始版本:** 8 @@ -615,7 +613,7 @@ float OH_NativeXComponent_TouchEvent::force = 0.0 当前触摸事件的压力。 -**自从:** +**起始版本:** 8 @@ -631,7 +629,7 @@ int32_t OH_NativeXComponent_TouchPoint::id = 0 手指的唯一标识符。 -**自从:** +**起始版本:** 8 @@ -647,7 +645,7 @@ int32_t OH_NativeXComponent_TouchEvent::id = 0 手指的唯一标识符。 -**自从:** +**起始版本:** 8 @@ -663,7 +661,7 @@ bool OH_NativeXComponent_TouchPoint::isPressed = false 当前点是否被按下。 -**自从:** +**起始版本:** 8 @@ -679,7 +677,7 @@ uint32_t OH_NativeXComponent_TouchEvent::numPoints = 0 当前接触点的数量。 -**自从:** +**起始版本:** 8 @@ -695,7 +693,7 @@ void(* OH_NativeXComponent_Callback::OnSurfaceChanged) (OH_NativeXComponent *com 当surface改变时调用。 -**自从:** +**起始版本:** 8 @@ -711,7 +709,7 @@ void(* OH_NativeXComponent_Callback::OnSurfaceCreated) (OH_NativeXComponent *com 创建surface时调用。 -**自从:** +**起始版本:** 8 @@ -727,7 +725,7 @@ void(* OH_NativeXComponent_Callback::OnSurfaceDestroyed) (OH_NativeXComponent *c 当surface被销毁时调用。 -**自从:** +**起始版本:** 8 @@ -743,7 +741,7 @@ float OH_NativeXComponent_TouchPoint::screenX = 0.0 触摸点相对于屏幕左边缘的x坐标。 -**自从:** +**起始版本:** 8 @@ -759,7 +757,7 @@ float OH_NativeXComponent_TouchEvent::screenX = 0.0 触摸点相对于屏幕左边缘的x坐标。 -**自从:** +**起始版本:** 8 @@ -775,7 +773,7 @@ float OH_NativeXComponent_MouseEvent::screenX 点击触点相对于屏幕左上角的x轴坐标。 -**自从:** +**起始版本:** 8 @@ -791,7 +789,7 @@ float OH_NativeXComponent_TouchPoint::screenY = 0.0 触摸点相对于屏幕上边缘的y坐标。 -**自从:** +**起始版本:** 8 @@ -807,7 +805,7 @@ float OH_NativeXComponent_TouchEvent::screenY = 0.0 触摸点相对于屏幕上边缘的y坐标。 -**自从:** +**起始版本:** 8 @@ -823,7 +821,7 @@ float OH_NativeXComponent_MouseEvent::screenY 点击触点相对于屏幕左上角的y轴坐标。 -**自从:** +**起始版本:** 8 @@ -839,7 +837,7 @@ double OH_NativeXComponent_TouchPoint::size = 0.0 指垫和屏幕之间的接触面积。 -**自从:** +**起始版本:** 8 @@ -855,7 +853,7 @@ double OH_NativeXComponent_TouchEvent::size = 0.0 指垫和屏幕之间的接触面积。 -**自从:** +**起始版本:** 8 @@ -871,7 +869,7 @@ long long OH_NativeXComponent_TouchPoint::timeStamp = 0 当前触摸事件的时间戳。 -**自从:** +**起始版本:** 8 @@ -887,7 +885,7 @@ long long OH_NativeXComponent_TouchEvent::timeStamp = 0 当前触摸事件的时间戳。 -**自从:** +**起始版本:** 8 @@ -903,7 +901,7 @@ int64_t OH_NativeXComponent_MouseEvent::timestamp 当前鼠标事件的时间戳 -**自从:** +**起始版本:** 8 @@ -919,7 +917,7 @@ OH_NativeXComponent_TouchPoint OH_NativeXComponent_TouchEvent::touchPoints[OH_MA 当前触摸点的数组。 -**自从:** +**起始版本:** 8 @@ -935,7 +933,7 @@ OH_NativeXComponent_TouchEventType OH_NativeXComponent_TouchPoint::type = OH_Nat 触摸事件的触摸类型。 -**自从:** +**起始版本:** 8 @@ -951,7 +949,7 @@ OH_NativeXComponent_TouchEventType OH_NativeXComponent_TouchEvent::type = OH_Nat 触摸事件的触摸类型。 -**自从:** +**起始版本:** 8 @@ -967,7 +965,7 @@ float OH_NativeXComponent_TouchPoint::x = 0.0 触摸点相对于XComponent组件左边缘的x坐标。 -**自从:** +**起始版本:** 8 @@ -983,7 +981,7 @@ float OH_NativeXComponent_TouchEvent::x = 0.0 触摸点相对于XComponent组件左边缘的x坐标。 -**自从:** +**起始版本:** 8 @@ -999,7 +997,7 @@ float OH_NativeXComponent_MouseEvent::x 点击触点相对于当前组件左上角的x轴坐标。 -**自从:** +**起始版本:** 8 @@ -1015,7 +1013,7 @@ float OH_NativeXComponent_TouchPoint::y = 0.0 触摸点相对于XComponent组件上边缘的y坐标。 -**自从:** +**起始版本:** 8 @@ -1031,7 +1029,7 @@ float OH_NativeXComponent_TouchEvent::y = 0.0 触摸点相对于XComponent组件上边缘的y坐标。 -**自从:** +**起始版本:** 8 @@ -1047,6 +1045,6 @@ float OH_NativeXComponent_MouseEvent::y 点击触点相对于当前组件左上角的y轴坐标。 -**自从:** +**起始版本:** 8 \ No newline at end of file diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___callback.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___callback.md index b68751dda8..84b374e852 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___callback.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___callback.md @@ -5,7 +5,7 @@ 注册surface生命周期和触摸事件回调。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event.md index 4e43c62798..b046d76de2 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event.md @@ -5,7 +5,7 @@ 鼠标事件。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event___callback.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event___callback.md index a8192ff855..b30d1183ba 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event___callback.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___mouse_event___callback.md @@ -5,7 +5,7 @@ 注册鼠标事件的回调。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_event.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_event.md index e213f61d5e..2907636f13 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_event.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_event.md @@ -5,7 +5,7 @@ 触摸事件。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_point.md b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_point.md index a16bb69270..462f272c61 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_point.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h___native_x_component___touch_point.md @@ -5,7 +5,7 @@ 触摸事件中触摸点的信息。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md index 334288527b..f29d9b05cc 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md @@ -5,10 +5,8 @@ 定义AVSession回调类的实现 -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md index b4c12aae82..1b6f5216da 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md @@ -5,10 +5,8 @@ 实现会话管理器对外接口功能的类的实现。 -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md index 971babf693..f1aa54fa9b 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md @@ -5,10 +5,9 @@ 描述分布式设备的相关信息。 -**Since:** +**起始版本:** 9 -**Version:** -1.0 + **相关模块:** [Avsession](avsession.md) diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md index 9fb407a233..f4d8988dc3 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md @@ -5,10 +5,8 @@ 定义与AVSession相关监听器的类的实现。 -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md index a0b7eae295..66fe6a463a 100644 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md +++ b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md @@ -5,10 +5,8 @@ 会话令牌的信息。 -**Since:** +**起始版本:** 9 -**Version:** -1.0 ## 汇总 diff --git a/zh-cn/application-dev/reference/native-apis/_ohos_pixel_map_info.md b/zh-cn/application-dev/reference/native-apis/_ohos_pixel_map_info.md index 72e9f62528..fcce8eaa40 100644 --- a/zh-cn/application-dev/reference/native-apis/_ohos_pixel_map_info.md +++ b/zh-cn/application-dev/reference/native-apis/_ohos_pixel_map_info.md @@ -5,7 +5,7 @@ 用于定义 pixel map 的相关信息。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_raw_file_descriptor.md b/zh-cn/application-dev/reference/native-apis/_raw_file_descriptor.md index 3364447f8b..e17e718b1f 100644 --- a/zh-cn/application-dev/reference/native-apis/_raw_file_descriptor.md +++ b/zh-cn/application-dev/reference/native-apis/_raw_file_descriptor.md @@ -7,7 +7,7 @@ RawFileDescriptor是[OH_ResourceManager_GetRawFileDescriptor()](rawfile.md#oh_resourcemanager_getrawfiledescriptor)的输出参数,涵盖了rawfile文件的文件描述符以及在HAP中的起始位置和长度。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/_video_decoder.md b/zh-cn/application-dev/reference/native-apis/_video_decoder.md index a5b1f9f8ed..b66b206536 100644 --- a/zh-cn/application-dev/reference/native-apis/_video_decoder.md +++ b/zh-cn/application-dev/reference/native-apis/_video_decoder.md @@ -7,7 +7,7 @@ VideoDecoder模块提供用于视频解码功能的函数。 @syscap SystemCapability.Multimedia.Media.VideoDecoder -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/_video_encoder.md b/zh-cn/application-dev/reference/native-apis/_video_encoder.md index 2ba39e6fde..fe5f834ca6 100644 --- a/zh-cn/application-dev/reference/native-apis/_video_encoder.md +++ b/zh-cn/application-dev/reference/native-apis/_video_encoder.md @@ -7,7 +7,7 @@ VideoEncoder模块提供用于视频编码功能的函数和枚举。 @syscap SystemCapability.Multimedia.Media.VideoEncoder -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/av__session_8h.md b/zh-cn/application-dev/reference/native-apis/av__session_8h.md index e908100fe4..d66bfd2434 100644 --- a/zh-cn/application-dev/reference/native-apis/av__session_8h.md +++ b/zh-cn/application-dev/reference/native-apis/av__session_8h.md @@ -5,7 +5,7 @@ 会话的设置、获取等声明。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md b/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md index f8cc0b9f9d..4cc45e9019 100644 --- a/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md @@ -5,7 +5,7 @@ 音视频控制指令的设置、获取、拷贝等声明。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md b/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md index 957d44d24c..bbaa050e9c 100644 --- a/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md @@ -5,7 +5,7 @@ 会话元数据设置、获取、拷贝等接口声明。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md b/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md index 2a62e921e7..d8099b9ab1 100644 --- a/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md @@ -5,7 +5,7 @@ 音视频播放状态声明。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avsession.md b/zh-cn/application-dev/reference/native-apis/avsession.md index b30ac7ab72..95409373aa 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession.md +++ b/zh-cn/application-dev/reference/native-apis/avsession.md @@ -9,7 +9,7 @@ @syscap SystemCapability.Multimedia.AVSession.Core -**Since:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md index 6a1b06aa8e..38446db715 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md @@ -5,7 +5,7 @@ 控制器对象的描述,可获取会话的播放状态和会话元数据,远程发送控制命令到会话端也可以通过订阅监听会话段的更新事件。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md index e563c140ba..73c87d3892 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md @@ -5,7 +5,7 @@ 会话的相关描述信息。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md index 6f1ed54b15..649a7edbf8 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md @@ -5,7 +5,7 @@ 定义了avsession错误码。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md index 6a557b7d38..5d2eda467f 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md @@ -5,7 +5,7 @@ 定义了与avsession相关的监听器以及回调功能的实现。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md index 7b2ebbd07e..86b408d3bb 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md @@ -5,7 +5,7 @@ 定义了会话管理器对外接口的功能的实现。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md index 8d5d6f7dad..0843e8fad6 100644 --- a/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md +++ b/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md @@ -5,7 +5,7 @@ 读取、设置图片及图片信息。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/context_8h.md b/zh-cn/application-dev/reference/native-apis/context_8h.md index 65a629a526..cb2696d67d 100644 --- a/zh-cn/application-dev/reference/native-apis/context_8h.md +++ b/zh-cn/application-dev/reference/native-apis/context_8h.md @@ -5,7 +5,7 @@ 提供了Context相关的接口,可以配置运行时信息。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/data__type_8h.md b/zh-cn/application-dev/reference/native-apis/data__type_8h.md index dab395553e..71ff1dacd1 100644 --- a/zh-cn/application-dev/reference/native-apis/data__type_8h.md +++ b/zh-cn/application-dev/reference/native-apis/data__type_8h.md @@ -5,7 +5,7 @@ 声明了张量的数据的类型。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md index a600f65972..ae34ec9d79 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__bitmap_8h.md @@ -5,7 +5,7 @@ 文件中定义了与位图相关的功能函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__brush_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__brush_8h.md index 4b852f041b..569ccc154b 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__brush_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__brush_8h.md @@ -5,7 +5,7 @@ 文件中定义了与画刷相关的功能函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__canvas_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__canvas_8h.md index a5383fdc03..14221e0694 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__canvas_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__canvas_8h.md @@ -5,7 +5,7 @@ 文件中定义了与画布相关的功能函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__color_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__color_8h.md index 6dee765d24..dd1a45cc33 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__color_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__color_8h.md @@ -5,7 +5,7 @@ 文件中定义了与颜色相关的功能函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__font__collection_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__font__collection_8h.md index 6d18482ee1..6e897ce90e 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__font__collection_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__font__collection_8h.md @@ -5,7 +5,7 @@ 定义绘制模块中与fontCollection相关的函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__path_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__path_8h.md index e8bae392c7..5436ab24a9 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__path_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__path_8h.md @@ -5,7 +5,7 @@ 文件中定义了与自定义路径相关的功能函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__pen_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__pen_8h.md index a6eb94092e..49b7cc0815 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__pen_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__pen_8h.md @@ -5,7 +5,7 @@ 文件中定义了与画笔相关的功能函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__text__declaration_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__text__declaration_8h.md index e75c8bef3d..3a6f1b420a 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__text__declaration_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__text__declaration_8h.md @@ -5,7 +5,7 @@ 提供2d drawing文本相关的数据结构声明。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__text__typography_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__text__typography_8h.md index 1acfce63d8..df9ffa3157 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__text__typography_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__text__typography_8h.md @@ -5,7 +5,7 @@ 定义绘制模块中排版相关的函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/drawing__types_8h.md b/zh-cn/application-dev/reference/native-apis/drawing__types_8h.md index cbf626910e..af740d1201 100644 --- a/zh-cn/application-dev/reference/native-apis/drawing__types_8h.md +++ b/zh-cn/application-dev/reference/native-apis/drawing__types_8h.md @@ -5,7 +5,7 @@ 文件中定义了用于绘制2d图形的数据类型,包括画布、画笔、画刷、位图和路径。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/external__window_8h.md b/zh-cn/application-dev/reference/native-apis/external__window_8h.md index fe89b38b63..94fcbf3d1c 100644 --- a/zh-cn/application-dev/reference/native-apis/external__window_8h.md +++ b/zh-cn/application-dev/reference/native-apis/external__window_8h.md @@ -5,7 +5,7 @@ 定义获取和使用NativeWindow的相关函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/format_8h.md b/zh-cn/application-dev/reference/native-apis/format_8h.md index c066abf72b..3f112e510a 100644 --- a/zh-cn/application-dev/reference/native-apis/format_8h.md +++ b/zh-cn/application-dev/reference/native-apis/format_8h.md @@ -5,7 +5,7 @@ 提供张量数据的排列格式。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/image.md b/zh-cn/application-dev/reference/native-apis/image.md index 2405cfdd8b..d50f0bbfa2 100644 --- a/zh-cn/application-dev/reference/native-apis/image.md +++ b/zh-cn/application-dev/reference/native-apis/image.md @@ -7,7 +7,7 @@ @Syscap SystemCapability.Multimedia.Image -**自从:** +**起始版本:** 8 @@ -34,8 +34,8 @@ | 枚举名称 | 描述 | | -------- | -------- | -| { OHOS_IMAGE_RESULT_SUCCESS = 0,
OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的[枚举](#anonymous-enum)。 | -| { OHOS_PIXEL_MAP_FORMAT_NONE = 0,
OHOS_PIXEL_MAP_FORMAT_RGBA_8888 = 3,
OHOS_PIXEL_MAP_FORMAT_RGB_565 = 2 } | pixel 格式的[枚举](#anonymous-enum-1)。 | +| { OHOS_IMAGE_RESULT_SUCCESS = 0,
OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的枚举。 | +| { OHOS_PIXEL_MAP_FORMAT_NONE = 0,
OHOS_PIXEL_MAP_FORMAT_RGBA_8888 = 3,
OHOS_PIXEL_MAP_FORMAT_RGB_565 = 2 } | pixel 格式的枚举。 | ### 函数 @@ -66,13 +66,10 @@ anonymous enum | 枚举值 | 描述 | | -------- | -------- | -| OH_NATIVEXCOMPONENT_RESULT_SUCCESS | 成功结果。 | -| OH_NATIVEXCOMPONENT_RESULT_FAILED | 失败结果。 | -| OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER | 无效参数。 | | OHOS_IMAGE_RESULT_SUCCESS | 成功的结果。 | | OHOS_IMAGE_RESULT_BAD_PARAMETER | 无效值。 | -**自从:** +**起始版本:** 8 @@ -94,7 +91,7 @@ pixel 格式的枚举。 | OHOS_PIXEL_MAP_FORMAT_RGBA_8888 | 32-bit RGBA。由 R, G, B组成,包括 A 都需要占用 8 bits。存储顺序是从高位到低位。 | | OHOS_PIXEL_MAP_FORMAT_RGB_565 | 16-bit RGB。仅由 R, G, B 组成。存储顺序是从高位到低位: 红色占用5 bits,绿色占用6 bits,蓝色占用5 bits。 | -**自从:** +**起始版本:** 8 @@ -131,7 +128,7 @@ int32_t OH_AccessPixels (napi_env env, napi_value value, void ** addrPtr ) 操作成功则返回OHOS_IMAGE_RESULT_SUCCESS; 如果操作失败,则返回错误码。 -**自从:** +**起始版本:** 8 @@ -163,7 +160,7 @@ int32_t OH_GetImageInfo (napi_env env, napi_value value, OhosPixelMapInfo * info [OhosPixelMapInfo](_ohos_pixel_map_info.md) -**自从:** +**起始版本:** 8 @@ -194,6 +191,6 @@ int32_t OH_UnAccessPixels (napi_env env, napi_value value ) AccessPixels -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md b/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md index 238b28132f..ce4b1de5e8 100644 --- a/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md +++ b/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md @@ -5,7 +5,7 @@ 声明可以锁定并访问pixelmap数据的方法,声明解锁的方法。 -**自从:** +**起始版本:** 8 @@ -28,7 +28,7 @@ | 枚举名称 | 描述 | | -------- | -------- | -| { OH_NATIVEXCOMPONENT_RESULT_SUCCESS = 0,
OH_NATIVEXCOMPONENT_RESULT_FAILED = -1,
OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER = -2,
OHOS_IMAGE_RESULT_SUCCESS = 0,
OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的[枚举](image.md#anonymous-enum)。 | +| { OHOS_IMAGE_RESULT_SUCCESS = 0,
OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的[枚举](image.md#anonymous-enum)。 | | { OHOS_PIXEL_MAP_FORMAT_NONE = 0,
OHOS_PIXEL_MAP_FORMAT_RGBA_8888 = 3,
OHOS_PIXEL_MAP_FORMAT_RGB_565 = 2 } | pixel 格式的[枚举](image.md#anonymous-enum-1)。 | diff --git a/zh-cn/application-dev/reference/native-apis/log_8h.md b/zh-cn/application-dev/reference/native-apis/log_8h.md index 5c24372e04..3ee4fe180a 100644 --- a/zh-cn/application-dev/reference/native-apis/log_8h.md +++ b/zh-cn/application-dev/reference/native-apis/log_8h.md @@ -43,7 +43,7 @@ HILOG_WARN(LOG_APP, "Failed to visit %{private}s, reason:%{public}d.", url, errn 05-06 15:01:06.870 1051 1051 W 0201/MY_TAG: Failed to visit , reason:503. ``` -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/model_8h.md b/zh-cn/application-dev/reference/native-apis/model_8h.md index 4c59400468..cc40752409 100644 --- a/zh-cn/application-dev/reference/native-apis/model_8h.md +++ b/zh-cn/application-dev/reference/native-apis/model_8h.md @@ -5,7 +5,7 @@ 提供了模型相关接口,可以用于模型创建、模型推理等。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/native__avcodec__audiodecoder_8h.md b/zh-cn/application-dev/reference/native-apis/native__avcodec__audiodecoder_8h.md index 372e9ea1c9..65f00492a5 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avcodec__audiodecoder_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avcodec__audiodecoder_8h.md @@ -5,7 +5,7 @@ 声明用于音频解码的Native API。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__avcodec__audioencoder_8h.md b/zh-cn/application-dev/reference/native-apis/native__avcodec__audioencoder_8h.md index 80e6048b45..12d8a23c6b 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avcodec__audioencoder_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avcodec__audioencoder_8h.md @@ -5,7 +5,7 @@ 声明用于音频编码的Native API。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__avcodec__base_8h.md b/zh-cn/application-dev/reference/native-apis/native__avcodec__base_8h.md index 3bf1d9f089..524596790b 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avcodec__base_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avcodec__base_8h.md @@ -5,7 +5,7 @@ 声明运行音视频编解码通用的结构体、字符常量、枚举。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__avcodec__videodecoder_8h.md b/zh-cn/application-dev/reference/native-apis/native__avcodec__videodecoder_8h.md index f562886c10..dad038c617 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avcodec__videodecoder_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avcodec__videodecoder_8h.md @@ -5,7 +5,7 @@ 声明用于视频解码的Native API。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__avcodec__videoencoder_8h.md b/zh-cn/application-dev/reference/native-apis/native__avcodec__videoencoder_8h.md index 50cb054e61..ff019f5929 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avcodec__videoencoder_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avcodec__videoencoder_8h.md @@ -5,7 +5,7 @@ 声明用于视频编码的Native API。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__averrors_8h.md b/zh-cn/application-dev/reference/native-apis/native__averrors_8h.md index 269d3a898d..242ab02bde 100644 --- a/zh-cn/application-dev/reference/native-apis/native__averrors_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__averrors_8h.md @@ -5,7 +5,7 @@ 声明了媒体播放框架的错误码。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__avformat_8h.md b/zh-cn/application-dev/reference/native-apis/native__avformat_8h.md index 4f22a67c0a..c3e8507ab6 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avformat_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avformat_8h.md @@ -5,7 +5,7 @@ 声明了格式相关的函数和枚举。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__avmemory_8h.md b/zh-cn/application-dev/reference/native-apis/native__avmemory_8h.md index 18bdc665ff..0337640a6b 100644 --- a/zh-cn/application-dev/reference/native-apis/native__avmemory_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__avmemory_8h.md @@ -5,7 +5,7 @@ 声明了AVMemory的函数接口。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/native__buffer_8h.md b/zh-cn/application-dev/reference/native-apis/native__buffer_8h.md index ed6c7c5552..8e1b4877f4 100644 --- a/zh-cn/application-dev/reference/native-apis/native__buffer_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__buffer_8h.md @@ -5,7 +5,7 @@ 定义获取和使用NativeBuffer的相关函数。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/native__image_8h.md b/zh-cn/application-dev/reference/native-apis/native__image_8h.md index caea888e50..31bfde0448 100644 --- a/zh-cn/application-dev/reference/native-apis/native__image_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__image_8h.md @@ -5,7 +5,7 @@ 定义获取和使用NativeImage的相关函数。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/native__interface__xcomponent_8h.md b/zh-cn/application-dev/reference/native-apis/native__interface__xcomponent_8h.md index 4d66af26df..afd646012f 100644 --- a/zh-cn/application-dev/reference/native-apis/native__interface__xcomponent_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__interface__xcomponent_8h.md @@ -5,7 +5,7 @@ 声明用于访问Native XComponent的API。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/native__vsync_8h.md b/zh-cn/application-dev/reference/native-apis/native__vsync_8h.md index 498cb8e9c3..ff8a87ffac 100644 --- a/zh-cn/application-dev/reference/native-apis/native__vsync_8h.md +++ b/zh-cn/application-dev/reference/native-apis/native__vsync_8h.md @@ -5,7 +5,7 @@ 定义获取和使用NativeVsync的相关函数。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md index 914cd75fe5..7f80f23b75 100644 --- a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md +++ b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md @@ -5,7 +5,7 @@ 会话基础信息描述。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md index 57780778a7..c68f7cf388 100644 --- a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md +++ b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md @@ -5,7 +5,7 @@ 会话的相关描述信息。 -**Since:** +**起始版本:** 9 **Version:** 1.0 diff --git a/zh-cn/application-dev/reference/native-apis/raw__dir_8h.md b/zh-cn/application-dev/reference/native-apis/raw__dir_8h.md index a574686576..71148e5cba 100644 --- a/zh-cn/application-dev/reference/native-apis/raw__dir_8h.md +++ b/zh-cn/application-dev/reference/native-apis/raw__dir_8h.md @@ -7,7 +7,7 @@ 功能包括遍历和关闭rawfile目录。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/raw__file_8h.md b/zh-cn/application-dev/reference/native-apis/raw__file_8h.md index 1cb2a8dd65..2362f94cfd 100644 --- a/zh-cn/application-dev/reference/native-apis/raw__file_8h.md +++ b/zh-cn/application-dev/reference/native-apis/raw__file_8h.md @@ -7,7 +7,7 @@ 功能包括搜索、读取和关闭rawfile文件。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/raw__file__manager_8h.md b/zh-cn/application-dev/reference/native-apis/raw__file__manager_8h.md index 405a8d1efc..103ca5b92d 100644 --- a/zh-cn/application-dev/reference/native-apis/raw__file__manager_8h.md +++ b/zh-cn/application-dev/reference/native-apis/raw__file__manager_8h.md @@ -7,7 +7,7 @@ 可以使用resource manager打开rawfile来进行后续相关操作,像搜索和读取等。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/rawfile.md b/zh-cn/application-dev/reference/native-apis/rawfile.md index 01f4faf838..c416450e82 100644 --- a/zh-cn/application-dev/reference/native-apis/rawfile.md +++ b/zh-cn/application-dev/reference/native-apis/rawfile.md @@ -7,7 +7,7 @@ 功能包括遍历、打开、搜索、读取和关闭rawfile。 -**自从:** +**起始版本:** 8 @@ -80,7 +80,7 @@ typedef struct NativeResourceManager NativeResourceManager 此类封装了JavaScript resource manager的native实现 **ResourceManager**指针可以通过调用[OH_ResourceManager_InitNativeResourceManager](#oh_resourcemanager_initnativeresourcemanager)方法获取 -**自从:** +**起始版本:** 8 @@ -96,7 +96,7 @@ typedef struct RawDir RawDir 提供对rawfile目录的访问。 -**自从:** +**起始版本:** 8 @@ -112,7 +112,7 @@ typedef struct RawFile RawFile 提供对rawfile的访问功能。 -**自从:** +**起始版本:** 8 @@ -141,7 +141,7 @@ void OH_ResourceManager_CloseRawDir (RawDir * rawDir) [OH_ResourceManager_OpenRawDir](#oh_resourcemanager_openrawdir) -**自从:** +**起始版本:** 8 @@ -167,7 +167,7 @@ void OH_ResourceManager_CloseRawFile (RawFile * rawFile) [OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile) -**自从:** +**起始版本:** 8 @@ -195,7 +195,7 @@ int OH_ResourceManager_GetRawFileCount (RawDir * rawDir) [OH_ResourceManager_GetRawFileName](#oh_resourcemanager_getrawfilename) -**自从:** +**起始版本:** 8 @@ -224,7 +224,7 @@ bool OH_ResourceManager_GetRawFileDescriptor (const RawFile * rawFile, RawFileDe 返回true表示打开rawfile文件描述符成功,返回false表示rawfile不允许被访问。 -**自从:** +**起始版本:** 8 @@ -257,7 +257,7 @@ const char* OH_ResourceManager_GetRawFileName (RawDir * rawDir, int index ) [OH_ResourceManager_OpenRawFile](#oh_resourcemanager_openrawfile) -**自从:** +**起始版本:** 8 @@ -285,7 +285,7 @@ rawfile当前的offset。 返回rawfile当前的offset。 -**自从:** +**起始版本:** 8 @@ -311,7 +311,7 @@ long OH_ResourceManager_GetRawFileSize (RawFile * rawFile) Returns rawfile整体长度。 -**自从:** +**起始版本:** 8 @@ -340,7 +340,7 @@ NativeResourceManager* OH_ResourceManager_InitNativeResourceManager (napi_env en 返回[NativeResourceManager](#nativeresourcemanager)指针。 -**自从:** +**起始版本:** 8 @@ -375,7 +375,7 @@ RawDir* OH_ResourceManager_OpenRawDir (const NativeResourceManager * mgr, const [OH_ResourceManager_CloseRawDir](#oh_resourcemanager_closerawdir) -**自从:** +**起始版本:** 8 @@ -410,7 +410,7 @@ RawFile* OH_ResourceManager_OpenRawFile (const NativeResourceManager * mgr, cons [OH_ResourceManager_CloseRawFile](#oh_resourcemanager_closerawfile) -**自从:** +**起始版本:** 8 @@ -440,7 +440,7 @@ int OH_ResourceManager_ReadRawFile (const RawFile * rawFile, void * buf, size_t 返回读取的字节数,如果读取长度超过文件末尾长度,则返回**0**。 -**自从:** +**起始版本:** 8 @@ -462,7 +462,7 @@ void OH_ResourceManager_ReleaseNativeResourceManager (NativeResourceManager * re | ------ | ---------------------------------------- | | resMgr | 表示[NativeResourceManager](#nativeresourcemanager)指针。 | -**自从:** +**起始版本:** 8 @@ -490,7 +490,7 @@ bool OH_ResourceManager_ReleaseRawFileDescriptor (const RawFileDescriptor & desc 返回true表示关闭文件描述符成功,返回false表示关闭文件描述符失败。 -**自从:** +**起始版本:** 8 @@ -518,6 +518,6 @@ int OH_ResourceManager_SeekRawFile (const RawFile * rawFile, long offset, int wh 如果搜索成功返回新的读写位置,如果发生错误返回 **(long) -1**。 -**自从:** +**起始版本:** 8 diff --git a/zh-cn/application-dev/reference/native-apis/status_8h.md b/zh-cn/application-dev/reference/native-apis/status_8h.md index 062e7a8cda..cf46ce6091 100644 --- a/zh-cn/application-dev/reference/native-apis/status_8h.md +++ b/zh-cn/application-dev/reference/native-apis/status_8h.md @@ -5,7 +5,7 @@ 提供了Mindspore Lite运行时的状态码。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/tensor_8h.md b/zh-cn/application-dev/reference/native-apis/tensor_8h.md index 7bd9ff9ff1..fff4ac8940 100644 --- a/zh-cn/application-dev/reference/native-apis/tensor_8h.md +++ b/zh-cn/application-dev/reference/native-apis/tensor_8h.md @@ -5,7 +5,7 @@ 提供了张量相关的接口,可用于创建和修改张量信息。 -**自从:** +**起始版本:** 9 diff --git a/zh-cn/application-dev/reference/native-apis/types_8h.md b/zh-cn/application-dev/reference/native-apis/types_8h.md index 2ea30fcea1..f9dda2dfa2 100644 --- a/zh-cn/application-dev/reference/native-apis/types_8h.md +++ b/zh-cn/application-dev/reference/native-apis/types_8h.md @@ -5,7 +5,7 @@ 提供了MindSpore Lite支持的模型文件类型和设备类型。 -**自从:** +**起始版本:** 9 -- GitLab From 2f51fa127d1835c4c3a4258392a23fd0b632715c Mon Sep 17 00:00:00 2001 From: zengyawen Date: Thu, 12 Jan 2023 08:48:40 +0000 Subject: [PATCH 190/383] update zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md. Signed-off-by: zengyawen --- .../reference/native-apis/image__pixel__map__napi_8h.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md b/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md index ce4b1de5e8..d6efe27a61 100644 --- a/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md +++ b/zh-cn/application-dev/reference/native-apis/image__pixel__map__napi_8h.md @@ -28,8 +28,8 @@ | 枚举名称 | 描述 | | -------- | -------- | -| { OHOS_IMAGE_RESULT_SUCCESS = 0,
OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的[枚举](image.md#anonymous-enum)。 | -| { OHOS_PIXEL_MAP_FORMAT_NONE = 0,
OHOS_PIXEL_MAP_FORMAT_RGBA_8888 = 3,
OHOS_PIXEL_MAP_FORMAT_RGB_565 = 2 } | pixel 格式的[枚举](image.md#anonymous-enum-1)。 | +| { OHOS_IMAGE_RESULT_SUCCESS = 0,
OHOS_IMAGE_RESULT_BAD_PARAMETER = -1 } | 函数方法返回值的错误码的枚举。 | +| { OHOS_PIXEL_MAP_FORMAT_NONE = 0,
OHOS_PIXEL_MAP_FORMAT_RGBA_8888 = 3,
OHOS_PIXEL_MAP_FORMAT_RGB_565 = 2 } | pixel 格式的枚举。 | ### 函数 -- GitLab From 2adda1502fba5db3ee8b0ab6dd895123a3e5fa84 Mon Sep 17 00:00:00 2001 From: wangdongqi Date: Thu, 12 Jan 2023 17:13:57 +0800 Subject: [PATCH 191/383] Signed-off-by: wangdongqi Changes to be committed: --- zh-cn/application-dev/security/permission-list.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/security/permission-list.md b/zh-cn/application-dev/security/permission-list.md index 1283ebfadc..c27b4375c1 100644 --- a/zh-cn/application-dev/security/permission-list.md +++ b/zh-cn/application-dev/security/permission-list.md @@ -1602,4 +1602,14 @@ **授权方式**:system_grant -**ACL使能**:TRUE \ No newline at end of file +**ACL使能**:TRUE + +## ohos.permission.ACCESS_SCREEN_LOCK_INNER + +允许应用调用锁屏服务的系统API。 + +**权限级别**:system_core + +**授权方式**:system_grant + +**ACL使能**:FALSE \ No newline at end of file -- GitLab From 3184ec9f7c29e577df4cf9745e8f4bc2f6208a85 Mon Sep 17 00:00:00 2001 From: zhangyouyou Date: Tue, 10 Jan 2023 16:07:24 +0800 Subject: [PATCH 192/383] =?UTF-8?q?Uri=20=E7=BB=93=E6=9E=84=E8=A7=84?= =?UTF-8?q?=E5=88=99=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhangyouyou --- .../reference/apis/js-apis-uri.md | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uri.md b/zh-cn/application-dev/reference/apis/js-apis-uri.md index 1dee31b05c..57115ef96b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uri.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uri.md @@ -29,6 +29,70 @@ import uri from '@ohos.uri' | authority | string | 是 | 否 | 获取此URI的解码权限组件部分。 | | ssp | string | 是 | 否 | 获取URI的解码方案特定部分。 | +### 命名规则 + +**命名形式:** + +标准uri定义由以下三个部分组成 +[scheme:]scheme-specific-part[#fragment] +- Scheme: 协议名,必填。例如http、https、ftp、datashare、dataability等。 +- scheme-specific-part: URI的特定解码方案特定部分,由[//][authority][path][?query]组成,根据需要填写。 + - authority: URI的解码权限组件部分。由[userinfo@]host[:port]组成,根据需要填写。 + - userinfo: 用户信息,根据需要填写。 + - host: 服务器的主机名部分,当authority存在时,此项必填。 + - port: 服务器端口,根据需要填写。 + - path: 路径信息,根据需要填写。 + - query: 查询部分,根据需要填写。 +- fragment: 片段部分,根据需要填写。 + +**URI示例:** + +```js +const result1 = new uri.URI("ftp://ftp.aaa.bbb.ccc/dddd/eee.txt"); +console.log(result1.host) // ftp.aaa.bbb.ccc +console.log(result1.fragment) // null +console.log(result1.path) // /dddd/eee.txt +console.log(result1.scheme) // ftp +console.log(result1.userInfo) // null +console.log(result1.port) // -1 +console.log(result1.query) // null + +const result2 = new uri.URI("gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles#fragment"); +console.log(result2.host) // spinaltap.micro.umn.edu +console.log(result2.fragment) // fragment +console.log(result2.path) // /dddd/eee.txt +console.log(result2.scheme) // ftp +console.log(result2.userInfo) // null +console.log(result2.port) //-1 +console.log(result2.query) // null + +const result3 = new uri.URI("datashare:///com.samples.datasharetest.DataShare/DB00/TBL00"); +console.log(result3.host) // null +console.log(result3.fragment) // null +console.log(result3.path) // /com.samples.datasharetest.DataShare/DB00/TBL00 +console.log(result3.scheme) // datashare +console.log(result3.userInfo) // null +console.log(result3.port) // -1 +console.log(result3.query) // null + +const result4 = new uri.URI("https://username:password@host:8080/directory/file?foo=1&bar=2#fragment"); +console.log(result4.host) // host +console.log(result4.fragment) // fragment +console.log(result4.path) // /directory/file +console.log(result4.scheme) // https +console.log(result4.userInfo) // username:password +console.log(result4.port) // 8080 +console.log(result4.query) // foo=1&bar=2 + +const result5 = new uri.URI("dataability:///com.example.DataAbility"); +console.log(result5.host) // null +console.log(result5.fragment) // null +console.log(result5.path) // /com.example.DataAbility: +console.log(result5.scheme) // dataability +console.log(result5.userInfo) // null +console.log(result5.port) // -1 +console.log(result5.query) // null +``` ### constructor -- GitLab From b44ec59891a46fdf9b5d8e1a2cd30dfb86ec8805 Mon Sep 17 00:00:00 2001 From: Gloria Date: Thu, 12 Jan 2023 19:46:27 +0800 Subject: [PATCH 193/383] Update docs against 13383+13235 Signed-off-by: wusongqing --- .../ability-startup-with-implicit-want.md | 5 +- .../application-models/abilitystage.md | 1 - .../application-models/actions-entities.md | 2 + .../application-models/api-switch-overview.md | 8 +- .../app-deviceconfig-switch.md | 1 - .../application-component-configuration-fa.md | 1 - ...plication-component-configuration-stage.md | 4 +- .../application-context-stage.md | 32 +--- .../application-model-description.md | 1 - .../bind-serviceability-from-stage.md | 14 +- .../component-startup-rules-fa.md | 3 +- .../component-startup-rules.md | 3 +- .../application-models/config-file-fa.md | 1 - .../application-models/config-file-stage.md | 1 - .../configuration-file-diff.md | 1 - .../application-models/create-pageability.md | 11 +- .../dataability-configuration.md | 1 - .../explicit-implicit-want-mappings.md | 66 ++++---- ...lication-component-configuration-stage.png | Bin 543620 -> 538689 bytes .../figures/application-context-stage.png | Bin 39853 -> 38444 bytes .../figures/stage-want1.png | Bin 51697 -> 50099 bytes .../figures/stage-want2.png | Bin 45187 -> 43858 bytes .../uiability-intra-device-interaction.png | Bin 52925 -> 51690 bytes .../hop-multi-device-collaboration.md | 148 +++++++++--------- .../mission-management-launch-type.md | 1 - .../serviceability-configuration.md | 1 - .../serviceextensionability.md | 1 - .../stage-model-development-overview.md | 10 +- .../start-local-pageability.md | 2 +- .../application-models/start-page.md | 6 +- .../start-pageability-from-stage.md | 38 ++--- .../start-remote-pageability.md | 6 +- .../start-uiability-from-fa.md | 6 +- .../uiability-intra-device-interaction.md | 15 +- .../uiability-launch-type.md | 8 +- .../application-models/uiability-lifecycle.md | 12 +- .../application-models/uiability-overview.md | 1 - .../application-models/uiability-usage.md | 4 +- .../application-models/want-overview.md | 4 +- .../widget-development-fa.md | 10 +- .../widget-development-stage.md | 1 - en/application-dev/tools/bm-tool.md | 6 +- 42 files changed, 200 insertions(+), 236 deletions(-) diff --git a/en/application-dev/application-models/ability-startup-with-implicit-want.md b/en/application-dev/application-models/ability-startup-with-implicit-want.md index 0a5ba865f4..ab116c430c 100644 --- a/en/application-dev/application-models/ability-startup-with-implicit-want.md +++ b/en/application-dev/application-models/ability-startup-with-implicit-want.md @@ -78,6 +78,5 @@ The **module.json5** of a browser application is as follows: 4. If **type** in the passed **want** parameter is specified and is included in **type** under **skills**, the matching is successful. -2. When there are multiple matching applications, a dialog box is displayed for you to select one of them. - -stage-want1 \ No newline at end of file +2. When there are multiple matching applications, a dialog box is displayed for you to select one of them. +stage-want1 diff --git a/en/application-dev/application-models/abilitystage.md b/en/application-dev/application-models/abilitystage.md index fa3aa07c60..4e0a273f85 100644 --- a/en/application-dev/application-models/abilitystage.md +++ b/en/application-dev/application-models/abilitystage.md @@ -55,4 +55,3 @@ When an application is switched to the background, it is cached in the backgroun } ``` - \ No newline at end of file diff --git a/en/application-dev/application-models/actions-entities.md b/en/application-dev/application-models/actions-entities.md index 2479ab317c..85dfb9523c 100644 --- a/en/application-dev/application-models/actions-entities.md +++ b/en/application-dev/application-models/actions-entities.md @@ -2,6 +2,7 @@ The [action](../reference/apis/js-apis-ability-wantConstant.md#wantconstantaction) field specifies the common operation (such as viewing, sharing, and application details) to be performed by the caller. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data, for example, viewing URI data. For example, if the URI is a website and the action is **ohos.want.action.viewData**, the ability that supports website viewing is matched. Declaring the **action** field in Want indicates that the invoked application should support the declared operation. The **actions** field under **skills** in the configuration file indicates the operations supported by the application. + **Common action Values** @@ -15,6 +16,7 @@ The [action](../reference/apis/js-apis-ability-wantConstant.md#wantconstantactio The [entities](../reference/apis/js-apis-ability-wantConstant.md#wantconstantentity) field specifies the additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit Want. You can define this field to filter application categories, for example, browser. Declaring the **entities** field in Want indicates that the invoked application should belong to the declared category. The **entities** field under **skills** in the configuration file indicates the categories supported by the application. + **Common entities Values** diff --git a/en/application-dev/application-models/api-switch-overview.md b/en/application-dev/application-models/api-switch-overview.md index 461e321d41..bf8223b5a6 100644 --- a/en/application-dev/application-models/api-switch-overview.md +++ b/en/application-dev/application-models/api-switch-overview.md @@ -13,8 +13,8 @@ Due to the differences in the thread model and process model, certain APIs (mark import fa from '@ohos.ability.featureAbility'; let parameter = { "want": { - bundleName: "ohos.samples.demo", - abilityName: "ohos.samples.demo.MainAbility" + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.EntryAbility" } } fa.startAbility(parameter).then((data) => { @@ -30,8 +30,8 @@ Due to the differences in the thread model and process model, certain APIs (mark // context is a member of the ability object and is required for invoking inside a non-ability object. // Pass in the Context object. let wantInfo = { - bundleName: "ohos.samples.demo", - abilityName: "ohos.samples.demo.MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; this.context.startAbility(wantInfo).then((data) => { console.info('startAbility success.'); diff --git a/en/application-dev/application-models/app-deviceconfig-switch.md b/en/application-dev/application-models/app-deviceconfig-switch.md index 8630746cb4..1092c21081 100644 --- a/en/application-dev/application-models/app-deviceconfig-switch.md +++ b/en/application-dev/application-models/app-deviceconfig-switch.md @@ -28,4 +28,3 @@ OpenHarmony has reconstructed the [deviceConfig](../quick-start/deviceconfig-str | compressNativeLibs | Whether the **libs** libraries are packaged in the HAP file after being compressed.| / | This configuration is not supported in the stage model.| | network | Network security configuration.| / | This configuration is not supported in the stage model.| - \ No newline at end of file diff --git a/en/application-dev/application-models/application-component-configuration-fa.md b/en/application-dev/application-models/application-component-configuration-fa.md index d460966545..4cc1c9ad68 100644 --- a/en/application-dev/application-models/application-component-configuration-fa.md +++ b/en/application-dev/application-models/application-component-configuration-fa.md @@ -38,4 +38,3 @@ When developing an application, you may need to configure certain tags to identi To request component permissions, set the **reqPermission** field under **module** in the **config.json** file. This field declares the name of the permission to request, the reason for requesting the permission, and the scenario where the permission is used. For details about the configuration, see [reqPermission](../quick-start/module-structure.md). - \ No newline at end of file diff --git a/en/application-dev/application-models/application-component-configuration-stage.md b/en/application-dev/application-models/application-component-configuration-stage.md index 56a5ddac56..de9e29941b 100644 --- a/en/application-dev/application-models/application-component-configuration-stage.md +++ b/en/application-dev/application-models/application-component-configuration-stage.md @@ -3,8 +3,7 @@ When developing an application, you may need to configure certain tags to identify the application, such as the bundle name and application icon. This topic describes key tags that need to be configured during application development. Icons and labels are usually configured together. There is the application icon, application label, entry icon, and entry label, which correspond to the **icon** and **label** fields in the [app.json5 file](../quick-start/app-configuration-file.md) and [module.json5 file](../quick-start/module-configuration-file.md). The application icon and label are used in **Settings**. For example, they are displayed in the application list in **Settings**. The entry icon is displayed on the device's home screen after the application is installed. The entry icon maps to a [UIAbility](uiability-overview.md) component. Therefore, an application can have multiple entry icons and labels. When you touch one of them, the corresponding UIAbility page is displayed. - - **Figure 1** Icons and labels +**Figure 1** Icons and labels ![application-component-configuration-stage](figures/application-component-configuration-stage.png) @@ -71,4 +70,3 @@ When developing an application, you may need to configure certain tags to identi The **requestPermission** field in the [module.json5 file](../quick-start/module-configuration-file.md) is used to configure the permission information required by the module to access the protected part of the system or other applications. This field declares the name of the permission to request, the reason for requesting the permission, and the scenario where the permission is used. - \ No newline at end of file diff --git a/en/application-dev/application-models/application-context-stage.md b/en/application-dev/application-models/application-context-stage.md index af8f5d82a3..8d49b7369b 100644 --- a/en/application-dev/application-models/application-context-stage.md +++ b/en/application-dev/application-models/application-context-stage.md @@ -12,7 +12,7 @@ context-holding - The following describes the information provided by different contexts. - - [UIAbilityContext](../reference/apis/js-apis-inner-application-uiAbilityContext.md): Each UIAbility has the **Context** attribute, which provides APIs to operate the ability, obtain the ability configuration, request permissions from users, and more. + - [UIAbilityContext](../reference/apis/js-apis-inner-application-uiAbilityContext.md): Each UIAbility has the **Context** attribute, which provides APIs to operate the ability, obtain the ability configuration, and more. ```ts import UIAbility from '@ohos.app.ability.UIAbility'; @@ -65,15 +65,10 @@ This topic describes how to use the context in the following scenarios: - [Obtaining the Application Development Path](#obtaining-the-application-development-path) - - [Obtaining and Modifying Encrypted Areas](#obtaining-and-modifying-encrypted-areas) - - [Creating Context of Another Application or Module](#creating-context-of-another-application-or-module) - - [Subscribing to Ability Lifecycle Changes in a Process](#subscribing-to-ability-lifecycle-changes-in-a-process) -- [Requesting Permissions from Users Through AbilityContext](#requesting-permissions-from-users-through-uiabilitycontext) - ### Obtaining the Application Development Path @@ -180,9 +175,9 @@ The base class **Context** provides the [createBundleContext(bundleName:string)] > - Request the **ohos.permission.GET_BUNDLE_INFO_PRIVILEGED** permission. For details, see [Permission Application Guide](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file). > > - This is a system API and cannot be called by third-party applications. - + For example, application information displayed on the home screen includes the application name and icon. The home screen application calls the foregoing method to obtain the context information, so as to obtain the resource information including the application name and icon. - + ```ts import UIAbility from '@ohos.app.ability.UIAbility'; @@ -194,8 +189,8 @@ The base class **Context** provides the [createBundleContext(bundleName:string)] // ... } } - ``` - +``` + - Call **createModuleContext(bundleName:string, moduleName:string)** to obtain the context of a specified module of another application. After obtaining the context, you can obtain the resource information of that module. > **NOTE** > @@ -204,7 +199,7 @@ The base class **Context** provides the [createBundleContext(bundleName:string)] > - Request the **ohos.permission.GET_BUNDLE_INFO_PRIVILEGED** permission. For details, see [Permission Application Guide](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file). > > - This is a system API and cannot be called by third-party applications. - + ```ts import UIAbility from '@ohos.app.ability.UIAbility'; @@ -217,7 +212,7 @@ The base class **Context** provides the [createBundleContext(bundleName:string)] } } ``` - + - Call **createModuleContext(moduleName:string)** to obtain the context of another module in the current application. After obtaining the context, you can obtain the resource information of that module. ```ts @@ -242,7 +237,7 @@ When the ability lifecycle changes in a process, for example, being created or d ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import Window from '@ohos.window'; +import window from '@ohos.window'; const TAG: string = "[Example].[Entry].[EntryAbility]"; @@ -298,14 +293,3 @@ export default class EntryAbility extends UIAbility { } } ``` - - -### Requesting Permissions from Users Through UIAbilityContext - -Each ability has the **Context** attribute. The ability is used to process the lifecycle. Methods use to operate the ability (such as **startAbility()**, **connectServiceExtensionAbility()**, and **terminateSelf()**) are implemented in the corresponding context. The context also provides methods for obtaining the ability configuration and requesting permissions from users. For details about how to obtain the context, see [Obtaining the Context of UIAbility](uiability-usage.md#obtaining-the-context-of-uiability). - - -When an application needs to obtain users' privacy information or use system capabilities, for example, to obtain location information, to access the calendar, or to use the camera to take photos or record videos, the application must request permissions from users, as shown below. For details, see [Permission Application Guide](../security/accesstoken-guidelines.md). - -**Figure 2** Requesting the permission to access the calendar from users -application-context-stage \ No newline at end of file diff --git a/en/application-dev/application-models/application-model-description.md b/en/application-dev/application-models/application-model-description.md index 2c15a15ee2..de7e3045d7 100644 --- a/en/application-dev/application-models/application-model-description.md +++ b/en/application-dev/application-models/application-model-description.md @@ -58,4 +58,3 @@ The table below describes their differences in detail. | **Mission management model**| - A mission is created for each PageAbility component instance.
- Missions are stored persistently until the number of missions exceeds the maximum (customized based on the product configuration) or users delete missions.
- PageAbility components do not form a stack structure.
For details, see [Mission Management Scenarios](mission-management-overview.md).| - A mission is created for each UIAbility component instance.
- Missions are stored persistently until the number of missions exceeds the maximum (customized based on the product configuration) or users delete missions.
- UIAbility components do not form a stack structure.
For details, see [Mission Management Scenarios](mission-management-overview.md).| | **Application configuration file**| The **config.json** file is used to describe the application, HAP, and application component information.
For details, see [Application Configuration File Overview (FA Model)](../quick-start/application-configuration-file-overview-fa.md).| The **app.json5** file is used to describe the application information, and the **module.json5** file is used to describe the HAP and application component information.
For details, see [Application Configuration File Overview (Stage Model)](../quick-start/application-configuration-file-overview-stage.md).| - \ No newline at end of file diff --git a/en/application-dev/application-models/bind-serviceability-from-stage.md b/en/application-dev/application-models/bind-serviceability-from-stage.md index 0ee35195b8..2d99fddfe5 100644 --- a/en/application-dev/application-models/bind-serviceability-from-stage.md +++ b/en/application-dev/application-models/bind-serviceability-from-stage.md @@ -12,15 +12,15 @@ A UIAbility accesses a ServiceAbility in the same way as it accesses a ServiceEx ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -export default class MainAbility extends UIAbility { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.info("MainAbility onCreate"); + console.info("EntryAbility onCreate"); } onDestroy() { - console.info("MainAbility onDestroy") + console.info("EntryAbility onDestroy") } onWindowStageCreate(windowStage) { - console.info("MainAbility onWindowStageCreate") + console.info("EntryAbility onWindowStageCreate") let want = { bundleName: "com.ohos.fa", abilityName: "ServiceAbility", @@ -40,13 +40,13 @@ export default class MainAbility extends UIAbility { let connectionId = this.context.connectServiceExtensionAbility(want, options); } onWindowStageDestroy() { - console.info("MainAbility onWindowStageDestroy") + console.info("EntryAbility onWindowStageDestroy") } onForeground() { - console.info("MainAbility onForeground") + console.info("EntryAbility onForeground") } onBackground() { - console.info("MainAbility onBackground") + console.info("EntryAbility onBackground") } } ``` diff --git a/en/application-dev/application-models/component-startup-rules-fa.md b/en/application-dev/application-models/component-startup-rules-fa.md index 15788e109c..db64e8c093 100644 --- a/en/application-dev/application-models/component-startup-rules-fa.md +++ b/en/application-dev/application-models/component-startup-rules-fa.md @@ -25,7 +25,7 @@ In view of this, OpenHarmony formulates a set of component startup rules, as fol - **Before starting a component of another application, verify the visible field of the target component.** - This rule applies only to cross-application scenarios. - If the **visible** field of the target component is **false**, verify the **ohos.permission.START_INVISIBLE_ABILITY** permission. - - For details, see [Component Visible Configuration](../quick-start/module-configuration-file.md#abilities-tag) + - For details, see [Component Visible Configuration](../quick-start/module-configuration-file.md#abilities). - **Before starting a component of a background application, verify the BACKGROUND permission.** - An application is considered as a foreground application only when the application process gains focus or its UIAbility component is running in the foreground. @@ -67,4 +67,3 @@ In view of this, OpenHarmony formulates a set of component startup rules, as fol ![component-startup-rules](figures/component-startup-inter-fa.png) - \ No newline at end of file diff --git a/en/application-dev/application-models/component-startup-rules.md b/en/application-dev/application-models/component-startup-rules.md index a00d01780d..0e6c2ce33c 100644 --- a/en/application-dev/application-models/component-startup-rules.md +++ b/en/application-dev/application-models/component-startup-rules.md @@ -24,7 +24,7 @@ In view of this, OpenHarmony formulates a set of component startup rules, as fol - **Before starting a component of another application, verify the visible field of the target component.** - If the **visible** field of the target component is **false**, verify the **ohos.permission.START_INVISIBLE_ABILITY** permission. - - For details, see [Component Visible Configuration](../quick-start/module-configuration-file.md#abilities-tag) + - For details, see [Component Visible Configuration](../quick-start/module-configuration-file.md#abilities). - **Before starting a component of a background application, verify the BACKGROUND permission.** - An application is considered as a foreground application only when the application process gains focus or its UIAbility component is running in the foreground. @@ -62,4 +62,3 @@ In view of this, OpenHarmony formulates a set of component startup rules, as fol ![component-startup-rules](figures/component-startup-inter-stage.png) - \ No newline at end of file diff --git a/en/application-dev/application-models/config-file-fa.md b/en/application-dev/application-models/config-file-fa.md index f19104d0db..3f550aa619 100644 --- a/en/application-dev/application-models/config-file-fa.md +++ b/en/application-dev/application-models/config-file-fa.md @@ -4,4 +4,3 @@ The application configuration file contains information about the application co The application project code developed based on the FA model contains a **config.json** file. For details about common configuration items, see [Application- or Component-Level Configuration](application-component-configuration-fa.md). For details about the file, see [Application Configuration File Overview (FA Model)](../quick-start/application-configuration-file-overview-fa.md). - \ No newline at end of file diff --git a/en/application-dev/application-models/config-file-stage.md b/en/application-dev/application-models/config-file-stage.md index bf667dcb0d..66cabf4a99 100644 --- a/en/application-dev/application-models/config-file-stage.md +++ b/en/application-dev/application-models/config-file-stage.md @@ -4,4 +4,3 @@ The application configuration file contains information about the application co The application project code developed based on the stage model contains one **app.json5** file and one or more **module.json5** files. For details about common configuration items, see [Application- or Component-Level Configuration (Stage Model)](application-component-configuration-stage.md). For details about the two files, see [Application Configuration File Overview (Stage Model)](../quick-start/application-configuration-file-overview-stage.md). - \ No newline at end of file diff --git a/en/application-dev/application-models/configuration-file-diff.md b/en/application-dev/application-models/configuration-file-diff.md index 141eeab16f..745f2702ca 100644 --- a/en/application-dev/application-models/configuration-file-diff.md +++ b/en/application-dev/application-models/configuration-file-diff.md @@ -9,4 +9,3 @@ The stage model uses the [app.json5](../quick-start/app-configuration-file.md) a **Figure 1** Configuration file differences ![comparison-of-configuration-file](figures/comparison-of-configuration-file.png) - \ No newline at end of file diff --git a/en/application-dev/application-models/create-pageability.md b/en/application-dev/application-models/create-pageability.md index 7a79770c30..783646ff4c 100644 --- a/en/application-dev/application-models/create-pageability.md +++ b/en/application-dev/application-models/create-pageability.md @@ -30,7 +30,7 @@ export default { ``` -After the PageAbility is created, its abilities-related configuration items are displayed in the **config.json** file. The following is an example **config.json** file of an ability named MainAbility: +After the PageAbility is created, its abilities-related configuration items are displayed in the **config.json** file. The following is an example **config.json** file of an ability named EntryAbility: ```json { @@ -48,13 +48,13 @@ After the PageAbility is created, its abilities-related configuration items are ], "orientation": "unspecified", "visible": true, - "srcPath": "MainAbility", - "name": ".MainAbility", + "srcPath": "EntryAbility", + "name": ".EntryAbility", "srcLanguage": "ets", "icon": "$media:icon", - "description": "$string:MainAbility_desc", + "description": "$string:EntryAbility_desc", "formsEnabled": false, - "label": "$string:MainAbility_label", + "label": "$string:EntryAbility_label", "type": "page", "launchType": "singleton" } @@ -65,6 +65,7 @@ After the PageAbility is created, its abilities-related configuration items are In the FA model, you can call **getContext** of **featureAbility** to obtain the application context and then use the capabilities provided by the context. + **Table 1** featureAbility APIs | API| Description| diff --git a/en/application-dev/application-models/dataability-configuration.md b/en/application-dev/application-models/dataability-configuration.md index d3618ea7a0..c8c69c8626 100644 --- a/en/application-dev/application-models/dataability-configuration.md +++ b/en/application-dev/application-models/dataability-configuration.md @@ -59,4 +59,3 @@ The following is an example **config.json** file: For details about the configuration items, see [Internal Structure of module](../quick-start/module-structure.md). - \ No newline at end of file diff --git a/en/application-dev/application-models/explicit-implicit-want-mappings.md b/en/application-dev/application-models/explicit-implicit-want-mappings.md index 99aa45c9f8..ccf33e07d1 100644 --- a/en/application-dev/application-models/explicit-implicit-want-mappings.md +++ b/en/application-dev/application-models/explicit-implicit-want-mappings.md @@ -1,48 +1,48 @@ # Matching Rules of Explicit Want and Implicit Want - Both explicit Want and implicit Want can be used to match an ability to start based on certain rules. These rules determine how the parameters set in Want match the configuration file declared by the target ability. +## Matching Rules of Explicit Want + + +The table below describes the matching rules of explicit Want. -- **Matching rules of explicit Want** - - | Name| Type| Matching Item| Mandatory| Rule Description| - | -------- | -------- | -------- | -------- | -------- | - | deviceId | string | Yes| No| If this field is unspecified, only abilities on the local device are matched.| - | bundleName | string | Yes| Yes| If **abilityName** is specified but **bundleName** is unspecified, the matching fails.| - | moduleName | string | Yes| No| If this field is unspecified and multiple modules with the same ability name exist in the application, the first ability is matched by default.| - | abilityName | string | Yes| Yes| To use explicit Want, this field must be specified.| - | uri | string | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| - | type | string | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| - | action | string | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| - | entities | Array<string> | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| - | flags | number | No| No| This field is not used for matching and is directly transferred to the system for processing. It is generally used to set runtime information, such as URI data authorization.| +| Name| Type| Matching Item| Mandatory| Rule Description| +| -------- | -------- | -------- | -------- | -------- | +| deviceId | string | Yes| No| If this field is unspecified, only abilities on the local device are matched.| +| bundleName | string | Yes| Yes| If **abilityName** is specified but **bundleName** is unspecified, the matching fails.| +| moduleName | string | Yes| No| If this field is unspecified and multiple modules with the same ability name exist in the application, the first ability is matched by default.| +| abilityName | string | Yes| Yes| To use explicit Want, this field must be specified.| +| uri | string | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| +| type | string | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| +| action | string | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| +| entities | Array<string> | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| +| flags | number | No| No| This field is not used for matching and is directly transferred to the system for processing. It is generally used to set runtime information, such as URI data authorization.| | parameters | {[key: string]: any} | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| - -- **Matching rules for implicit Want** - | Name| Type| Matching Item| Mandatory| Rule Description| - | -------- | -------- | -------- | -------- | -------- | - | deviceId | string | Yes| No| Implicit invoking is not supported across devices.| - | abilityName | string | No| No| To use implicit Want, this field must be left unspecified.| - | bundleName | string | Yes| No| - When only **bundleName** is specified, matching is limited to that application.
- When both **bundleName** and **moduleName** are specified, matching is limited to that module in that application.
- When only **moduleName** is specified, the setting is invalid.
For details, see [Interpretation of Implicit Want Matching Rules](#interpretation-of-implicit-want-matching-rules). | - | moduleName | string | Yes| No|| - | uri | string | Yes| No|| - | type | string | Yes| No|| - | action | string | Yes| No|| - | entities | Array<string> | Yes| No|| - | flags | number | No| No| This field is not used for matching and is directly transferred to the system for processing. It is generally used to set runtime information, such as URI data authorization.| - | parameters | {[key: string]: any} | No| No| This field is not used for matching. It is passed to the target ability as a parameter.| +## Matching Rules for Implicit Want -## Interpretation of Implicit Want Matching Rules +The table below describes the matching rules of implicit Want. +| Name | Type | Matching Item| Mandatory| Rule Description | +| ----------- | ------------------------------ | ------ | ---- | ------------------------------------------------------------ | +| deviceId | string | Yes | No | Implicit invoking is not supported across devices. | +| abilityName | string | No | No | To use implicit Want, this field must be left unspecified. | +| bundleName | string | Yes | No | - When only **bundleName** is specified, matching is limited to that application.
- When both **bundleName** and **moduleName** are specified, matching is limited to that module in that application.
- When only **moduleName** is specified, the setting is invalid.

These fields will be used for implicit matching.| +| moduleName | string | Yes | No | | +| uri | string | Yes | No | | +| type | string | Yes | No | | +| action | string | Yes | No | | +| entities | Array<string> | Yes | No | | +| flags | number | No | No | This field is not used for matching and is directly transferred to the system for processing. It is generally used to set runtime information, such as URI data authorization.| +| parameters | {[key: string]: any} | No | No | This field is not used for matching. It is passed to the target ability as a parameter. | Get familiar with the following about implicit Want: - The **want** parameter passed by the caller indicates the operation to be performed by the caller. It also provides data and application type restrictions. -- The **skills** field declares the capabilities of the target ability. For details, see [the skills tag](../quick-start/module-configuration-file.md#skills-tag) in the [module.json5 file](../quick-start/module-configuration-file.md). +- The **skills** field declares the capabilities of the target ability. For details, see [the skills tag](../quick-start/module-configuration-file.md#skills) in the [module.json5 file](../quick-start/module-configuration-file.md). The system matches the **want** parameter (including the **action**, **entities**, **uri**, and **type** attributes) passed by the caller against the **skills** configuration (including the **actions**, **entities**, **uris**, and **type** attributes) of the abilities one by one. When all the four attributes are matched, a dialog box is displayed for users to select a matched application. @@ -60,8 +60,7 @@ The system matches the [action](../reference/apis/js-apis-ability-wantConstant.m - If **action** in the passed **want** parameter is specified, and **actions** under **skills** of an ability is specified but does not contain **action** in the passed **want** parameter, the matching fails. - Figure 1 Matching rules of action in the want parameter - + **Figure 1** Matching rules of action in the want parameter want-action @@ -112,6 +111,7 @@ There are four combinations of **uri** and **type** settings. The matching rules To simplify the description, **uri** and **type** passed in the **want** parameter are called **w_uri** and **w_type**, respectively; the **uris** array under **skills** of an ability to match is called **s_uris**; each element in the array is called **s_uri**. Matching is performed from top to bottom. + Figure 4 Matching rules of uri and type in the want parameter want-uri-type2 @@ -158,5 +158,3 @@ To simplify the description, **uri** in the passed **want** parameter is called - If the last character of **s_type** is the wildcard `*`, for example, `prefixType/*`, the matching is successful only when **w_type** contains `prefixType/`. - If the last character of **w_type** is the wildcard `*`, for example, `prefixType/*`, the matching is successful only when **s_type** contains `prefixType/`. - - \ No newline at end of file diff --git a/en/application-dev/application-models/figures/application-component-configuration-stage.png b/en/application-dev/application-models/figures/application-component-configuration-stage.png index 8957b1b4a85a7bdc8d0d9ab422d7cf379ae6cf75..9ddf0c3892998aa5391de99775db5965f66bd4b1 100644 GIT binary patch delta 534943 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
(O1ox*X(oi(gLTLvTKGi0*e4N# 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 Fc0quwi|rk-y>3~rT&?>Wa%{&tJRU%Ofa!%ZHd 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

y<29F+m=L6 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 Va<|f3P3-RK@AZ|!g0>Dql6Q94 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π)rvR)FR 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 z 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 M(UTr8*Q>5hVZA?k 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≺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

eOT2dHTbgMe#r(ue>kNoMfcoZxJbVo1~^y* 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Ðc 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≷I$E)KnT_lE|tCcY2%+F480Lm(zZZXI_ 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 z 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

#{H< z34!f`#uj>!Xmq7JnwQ3-_>S2)abtIB;$r(LH5s;TV6*Zv3A)%S4W>65v<+3tk>x4R ze-ZSRbVYaZRsOQ;SNt!V%P!~&53Kpip#XV3nMF&zBKEN_AsW3|=rcP*LokdogWbeP zR%zA3uy(Nollq5if{t{XiGorl_OkWgrAbHhX_Q8=y^qj2Y~%3LVJv*10x6bY)1t$a z{=&zC^%fP0&hlkoqdj3H`=cbr*|`wbmI#U*j2J2u?^$k<`d~^@^(nE95$Y*8-Jru&~mG z(P-n&P63{5#Adk5K$WTfyTqG;=;5u`v>^F;^Uxc9u@K&_>3(s>ua@G)5+?T}slp6nLqw#F^ zmeVAv$`z28^D>5j2I!m}GL}QRFOwED4qp+QH|46EyXD0XR`?Em>q!Q(?%NzTI=4!g;)1UsztdFEE_Gz>o1UpEjI&+uS==wg{|$ziNc+x z9~zNk^V?yWuT`jgf--z`=7byUA9O{=+E*N^UFb^dh^pjc^Qi+R^sUf~^iW_PQ0A_@ z#3FE~+5Ts?P2sVm`SK@f;v;*utWj+C<)0ruR&+0=g2KBv%+$YF{HE->XkqlTZF_eB z0X?6EX7!%LtTkSQ8(ArI;i2Y77TId+)^SbA3fpmF(OOTV$D`@j*M)=7i}FU3GluP@ zTCf?%L)Z=j1f04uQGXpg%lN99KTU(MzIqWj5_)D9BAZ$V()i*N1vtxhW|v+EZexAs zz`i5Y77*WdFXnSUI0VI|V|IE4M^F|(LXnmhT2~UN)xKv5FYd4ime|#+j{N4!Xd?`; z{Y&NNUtIUs#`=D3o-aEnf!7Gt3e0FY;x{BXeJzp>={QvBbWIj*fxfugw^o&WX-=Z? zRdb_Gq2b`Nmi*fmHGs{rZqVcdY@$Z5RS}mmTuPU@4Qd`Kb`{(>r-9REZWkG4%tQ&jmy22A$Zq=jI+Co1fyb7UdKIhA<0HJ7lUP?jqCK%H< z&$8`SXPuL1Pd5o4CPDw5nr4Uo9}+tEX<$0>g`aQ8{B31RXnm|EqYn#CH7zv)+(C|d z`SG4spd8q1S}F9=>mP5U;z2JP=m=hy1ost3zM%Ty{7OnOncl7U6B%R&U;dBM-oULd zMq}~mv5zdqq6x~X8oL4tY* z7ojOX8y3ojzWigCm6`#g8<=DP>psEtcBMj_PGKmweqw{ieT-qzzW5bc+^ds0Q{*bV z+-jXS!k{(A1Vel34-}xA!TtJ0jb-mPws``b1tQS;Cnmv~0rL(6R8n>1ps&z=5m_hN z90xUmoXwm1a){DfXpy)c1V)K9+5z)Z2JDP|K)BR{a;>^4mF5Whdl|3~}R!c=<1805p%r5tKJl{uFG_lL2xwL0j*0Qzv#VY$|QZ-&S`1C6VFO zKQ?_78IwfM9C2LaB&|i1v=-iNRMB)w6dW2(e2HxeUuv{13t!q_D@BdjCtR7^kG*Wi znP&Bcyfci@v2!T=BB&60XZB>ax=Nv5+`sH>GEp*VA3D}~4alW0KKo-&)4Z&CfqU~~ zrjPG_#5>+2IoFi!ezP33@BmY36_iK-}L0|Z)ZS&xQ z*A2C&UWO}dP+;%^!vK+j;kbOeY*%IIZ=u}fGJyDHL{ZEvI!V*S1{|HICX;S1ue@o<=a#RiUF*dJDwML05!CzOdt zPa-SUB%sw{LMt&Qmscea-~Vp~gWO2DW}QarxNN|#G!XFjlDOBgU5MWlHujv#d1m$h zr8y0k1U;X$Eq1lLI^)NCU1F+N+m?rHX8~VFJV@E*a!ota6JM-EdP|m2@E;B8vVJ1O z{F0mHNfm-+c&Vbf6MTpHTL!fiwr#sf(Bc$#3M~$4DaExEE5+U0(%|mC zLIv958r)r5+@Vm46WkqwYjEE@@AH1M_qS*AGc)VgO78o*&ht2$IQkw|-L$`gA7^8A zdH*y-(!bvRw>G%yI*Y4)$nUX`J)ueMdf)nF3&W22>Z2&Puk>t`I1$W!Q6?}dB&!a& z^7vQ5Gvyu4;%3f888!bOi?te451pEgyJmmfq1i~PlV}&F_zkP+>FjB3YSXj!w&-c$(hEd+y z{h!|^k_-fWS&Ll2PkNJte?FowJ-!;7wqIigh;^$e=gK0Q)rd~;OY_fWONQPxR~a-; z=E&D|jW;2Pt06ShklpP#skr`N$ZWw1?skDO$7leePs&$pPJc!0xka+U5+|%g)#T2^|BVwZqYw5pC-$xYtJyEWX4;F;?NmfeVynw zuCn7V9Y{Vm-YMZV=@JT2H7%7I-0LGzl6xA(p`Lb(wEmp+rUoOLD4ExLM@+BNR5|`< z&6Tw-;Wr?%L%rIe?%;#;igUX6Pg!#B4GFw=)ockq4{e;|BT{KAQCiH4!b1j-;z-Tz ztCNYG%ahCFk=%^&k8<;(-VTExkYTlPrW>Zc-pKB!i^Ui51?D9mv@z36)?_m#UeR#%xD-e%67En0kpa-Z{2)A!uH z=fD<%x6Q`a7$I{W%7X)|H$hzQaV4*|nv`kb)c)IKC7YeF=lPhc+4C*9BS0@c1ZT!Z zR_ftboN0SUey>d1$YW=FPvO@tHfJcF*>!g^>^xl@#iCHo)oB@{O~)i{Hz$E=v?b@*fvP z4~mTg=a#XG3xBu*9rUFjUa%I5t*SZ>a|-cs3aU%>M4!9u2bj*_oOp1YVHxV0FMRx6 z5{S&5q&YdM5$g|8uDGm$(vFk-#-)8NNJVBoz{mqGuQP~8srH*%vN2Vzp2`@;>PN1C zxR1zR_}tClciNq8`s+`tPk>e)hz|b%!Z8mt-D46v;}J-+ z&duZJW{{BrI=mEqt%zaK8do~}Yd-tu%zm%M`sF)D(m~%9i%%Uyn>mqbt?y>Rxsd?I zO>`Hp^c?vDmh;?I78cy*Kov!EBMw|bB5MhpDpN6}BQs%*uS?^bC?Vu$1VRr%b79m1 zHEiDk!QU#?%q``2WB{5zo8l(E)~fHaWpGVfP7>hOo28ih6DRwG6IXh*Nis0Cm+f;U z+6V3y67Y(39{)m0oab$DMc(`e8URBZd#Evcpek0B$F2M(s!+Cw7{qO#V%Vexe``O_ zhdYYXzc3_)#2C71Gr4ZsTleLgR`U$EYivI`tj02wZHjKo#0 zA)-3WAm&JyG_5pQ#oe5i@N#Yg!88E~P2Z$X!nZF;zT?6bld}msU+MnkPJaGJOQlO@ z7F_2d;EzW}-v&OXc z8pX)Ie#A3)BYGWUy-T1}oc|8?A<6Bri}SndEzR1K{{IeI1Vyib*4w-Po)zjJ=nlfc zX^edjD9}Y{IThhjmg(=_!+k1p;gsQTZ?)N~yy(4Z8@#>YPZ}0*zX5`cGHep$v*qA# zvW@&-DR|$8M9A*k@TZ@1qen$)I}GKoS~-9v%t7toyWpnt>PY)|*Y+;hbK2O+Vs8VC zcdCaP!MqT=Iu9^8Rr40HFDhoE76lLg<#SEK%mF3paBIXBD#$kkv5+f#8kajtufa~- z@q8eFoX-ZMdwv<+4Gx%i*BZo$G>K`u57EVvZZQY~9O~15w>>zxy;5y;awWS6yTWptfx4Xr-~acf_&$TI}yEbz0VJ@|N(15T^ zVpkE$%=?4JZ7vn(&%r(UF}D>u*xlX&a5j^PusgjqG5GWZydUG#gSh9}%|PK_!&eb* zCcQ~fnUx1|=h_xBi^fkvpvWEc>Ka|Fvn7DX!~nV}Y{DM9P4KuGX@0(S-?+@7d#;*% zHGL1hOFUOft*P3v66TRz$=?W&sTd1uaB>{jtW0OFUG^~&ttxd@P`lVeGiEe%3K`ti z>QIK@^m^QP>ekpDG9KOiF29yx6SAenqQRq1;os(n_SsM@b?Zs)geriAABJt%Dqa`pNkt)lK%*# zBtf^rN%v&tFKMcmw~GWRWBYWasb+4vj3J-(+RKEH5LvrHez*p z2)W9!tJ{C?uP=ok6k`9M_e+0+<8IsWJ_1$EjQ>onEte$;_+XOcv_Ju#$^eb$|gKfhT#lL;xV!1KQ|4jjX>tvC!`E~4U~GVp2H zQP=Cm7O(qRn72!18Y9bCU14XPQN*zjndhHXmRtdkc;!+( zS$NH~+?825SUdK*HamUy$LW`UBttVeM7-dx2)K=p<}`*bu^Z}369d?PR<@+lKpdAX zuq;<1L457<3cLFu31?;-yF`6b z>rJ-n z!DRrPqW*M76dQG4ukhQ(sH2UmW2eg8$oYBOLt{0k=0&E_ zI-?rY(?||Yw5>bn1$Ey2r)HveUh49H-7p^b)p&#Dw|7j4@_4?n54cdjg)lzF)j45a zd?I_d!A#eXDk4S(#{8_H&r2y1ynfr*d{3k7IhjA*m37Qfb+LA_Lldd%1;O!A~~ zaiTCXMbUS!%uaL^!B||qIPjRMPwJ*Ora9?4mxTCcad|04zKSClKn<10MG`#QpX2 z=QyAe^CBV-T69Q+B>aQ-Gi)(|Btv*J9*cxscZ|%^_cFluuwm6Zhwna((|`}IhRhs$ z(avO%ZfUqH#IVpT;m=OQZNp#A!MV5rSeCY*egW-{b&?$Yt2KV@N3K*zFmnkJ9r=!b zeJ(>vAvAH!E{AS6s-^lc;=Ixyi^I z)OGZw|JH685&U&=sFnR>{4Rir=5iVKI|b?=<27G%gZfydi6cq*MmPQP? zuZ?L;OB=CWc%@Y4*G9}((f!KLr2zD|;=NA>rc9jo>9$gjAL! zaR1-Kp-GwK;eS%~W&6<8hkKT4h8I`sRU@F^Vwg>hrfMVSX2F9~lE9-f)V~SIDiwNC zVrO0zeRY39x8k3kCH#r{X%rVHL#*Zbo8pebNCs=Zkck4jghAoOdO$<|UEWG@RydM{ zVvQ-R%Ru~7#L8|S>e5A$)^Z1aizjVP+w1G>tEC$vB5kRqo24FcvmTwvPww*oAS2L*=xJUZNWZVk-zmX2kYCDudc3gEuD%pAa3ESg*qOf-Sc9s z_sh7kkd*Iopn%$L;B81|Jf9wej*x^6Dx*ZODYUR$T{+@bY*HZ ztmZH>!2LMBQTWUrpRl8KbnPwHP>ib0o%~`mhB0@43ZDuQ2JP&1?4xYX*;$)7Y$epBg>U4>e zjcHA8ssJ>&SCkWHrv3Y;7p>xgrirgY^=P|a-FE+qH4oj7UKpi~#y$3mKE^LsnNhCe zJ4tc{QqD)@&X)fOM`glRLZe-_V?MDp4LQy|15%t%S>$B$Gh@w&e~Re+OXdh%FXAkI z85+IXY&Y`s7BzDdH>Jhk_USiphwFTQ+pp2|=EiUCf5sBG1piCX``@`MRQ<*iRSZjA zWS4e}c(r(&`11S5&F5Sc4!n;61Eq>_xx_SP{8$y!>QinY)$zM%(C1l{F?C^DVU_{K zBi?8t&M>ZzPx;-BzUi~;gwk#}NmFRoPJSn15sty0>GG+B(zU_kg*ILlVG=D3)JGeV z3V~)XEesf`LeL#ZDPAbsEk7&JIto2TH8f$2HRHIY7{Py!=FO=F!T5nqJ*?CQ4~N!NMwfwaV# z7mn3}2hM}rJ)b6ZbbCc$(11S6?ffC?KLUA?9Gb0FpP(Lu`x@!(L$j@5REss=eN5v{ ze?c1P)EMsTVS#0IF-$vy@s*+QxX7PJ`G)>^jp#1Njk-l!2|zV!w6ZBwWIYr{`|eUh zcQk?^ki^-6(a}vOHLBG=oP3aVOpKo5I~k0|fq(G@x9J(Uv8vUm2=_`MCo$9qrj|T< znIYpdlP}bb2t1LaxC6U8WoB@`ANBsB&h0S&``lE-0~ER1pb51fksKv{kF?hdKf&Vt zz1KWj0TLu#0190BguZ+JRHtWY%D5kCvc@@JO_w8*J6$+24Q(rBB}~Nn+~i#%WL;#e zjm8SgS><>6BF`s`7rsj-iL*(9siXef1)m)4Sa9v3kX}n{7zC3`xM8jZReN2L{fUlp zbNIML${ZYTJgdBD-1TbNbUmOvAFU&$xRw(|Wj}rznk_DQgqV9owW453 z|8i27e?(5T_qlezf<=$^OqlJ@K9XH!V~9%>W>j%2J%Livn+>jwYN>#w?|ovO(wE~( z(rGMY*1DEvw?F2Xgi#;oo-LdwPIIdrWg@z_la7-rUD5-h|7o&elgvbhS;YYzj#r62 zO@g&JYk)QJ54ofN{ge5>-E1w`K*y%GEFBkR&SgL6~(a?ON`kQ`?))wZBo{hRooe+g#aBq!r_cwesTVMN7p zCy8!Y0W9VJ@Y}w}t6Xkp0vxt`k!`x~zkV*K*wJe_wyys&__38UVrVX=48MUoncinGOwa;r-rQABrVmhx&R^Y4XSo z^&0S7cc$Ta^?3bKr)JirfII!Ug+I4+ChtChq|C2|u`}vkU+P}|90w>3g!5HI>OXEU zf{ubJC{OxWVF#S%`0pQ+OED2EBkNrcD?y5-jO(ais3hU{Iw=gR?%Dj*@Yw3?59eb& zf|@u|kTW5HKSXIYWB!3iKbes_Nh?9~V7-mp0nrCC;SmiyS(g=UiKVs!BIYZpn0J7< zF}$sZsOyIx6RByx1H3ZQ7QQTaf{7aS0{bNmY(nmQL`bHJ3R-cKoAn1 z%TZWm&t&MZaDRIcP~J3M+AD9%v>GwG>Xw=n*oQ^1;} z2XU_|5P8dWt^lfNi^Y{eT z@ERUiqW-Qb-m_Y@ZrH2*NjBDB?|cFo4FfA&L>cPKhfGYcs*z#it}@AkE#gczoZ@kN z>(XY0$4`r0RPS>D>&{%+DF$xPS=v!ecBqfma+HcZzSCL|Ybt;7@~beU1X5h@Q`p@1 zG}SH3lMM<$dfZ+-^mW3GdN|cW-<(j-)&Q6K$+S~uA^UtM+Fmt@E3g>b8g^ zw@-9Wg1D#aVBFWHGSWMNOW|w>Q-2kt+gBxIHfCmW1fhtd@bO)YvKPNpL~>9Is4=r} zmrgQm0i$=sY4o2E`?~c_u)vMI3!5#ybDW9Sn}s+)@I$ZWkYUWz5)13z@3wS8CK zhAE5rC$vN388SIxM)bcWd-&7lbHP0dcSh0 za}K01#Y=PQ^@ztQz*lz0AGe8e+>aCA$xFBC9X5R_=VLyQ{$$`Fm-&o;3ACqQyi3b_ zfLmt(=A#@E8PeUEmyFjG@^gHW-?*F;iXGGMX`Bk?8dQ^8=QGT~8XUKiiGkJP>^|Oi zGFI&PviC04ijJ3=2$rJJ#e`OMfhtqQWoAZ2&Az7ZB}5zzLm0pz2;vb4H>~Dx^Jj&_ zw~=Kp{nGZ0`GE&2#GcTQbIV4caOpZmAarm0&?-2_(6Tnodf0OCi-vcE`oap;kO!E> zNz_^hcROLZkR6nTZ(FE-{10U`ZPC>j}pdP_BKGP5uHFiY$$iox)5X~bH zeJ~V3ISP3X7`LOQTb!MHj8M_??_^ZopkGxT{mPmj;>%s+fmIoZ@-sfos%+kfH1&{J)^p{{hn!4<$HH&?E-I*oc z>ibCT7R`Qsjv8>#k{?Y*NB>&3(q{A8Xs!?HTmGemNEmz2Q#DjWlg~&&le|VFl6Icc zISl$*`wXUyrg7uzpjJ2@W;yEbaxKxGTiq`KHTW>A%N*pSW^9xglXXLcMQcMzbuRsv z#8b!OCM>TOBk0RHP3ElV(uU@-Xm8NmYscD=nJKIU0!4PK>^*BKnTS0ve5Zq$`zY~p zs$+D(T_mqE&|p|tW4rCo@c>J2l5~hMjlAkPp;4HW#A+ID;qLawQukCZxh;CYaaclL*d@qcETXT>EV)U{mqEHuWtHY|1W0;Fl8^ z#wwdmi+F%DeochQQMYWm8q!C&jVyqcrX@z9Rv`?Gzv??@`FOpc-56Okl6>Zp#X+mi z%}j-^l;2-7^6A5->zy-9urLU>OYW3M=9CwZVppRU)$7LfE^3kduB5!9rl3c@vZ;Mm zUU;iOlB*P(bBR~hXZmCBR&51ZYxNAbm|DTdG;5`4>*g3;AfZ_m>{Dm@9|VgR#DO|k z1Ft0A`~`c6fwD1M8qV2@lR{stw`V5xm8{e3ny;+8Ou`$24(n^GS1WNvyQz-G06{66ra|aULmIO6}_g+R4QEdR%%F|DMEB6k?onI^1 z2-;bzWfREq$;R9g?K@tAwI_$Li7IR+UI(9`0I&b{&-wnhfBwIESoh7X^7;hApCvzK zfVEw5cg|R)g)h_l?LV|_205T$^_+UU?`7zvnn%2dYSz{VTrNyg4v=|Gg%ba%Kd9lS z&EwaV3rZ$ zUBCgR4eGtj&3WkYm zo^JHvx_$5C*dpU}P;l6G%FZ?`>W>l-GPwU z#R1|~+u`1-toKyO_%~8l2F7huKi&}_z*8#?gIsk}v~0f!0iA+S0uQpnQ!67+Ocq?_ zZ^4^mc}!kD z@l`(+DVyB^MThGfqPy8!8PE+Ke4YLe&$T_sf_pZ5s2e8GOc*|bC*tg2Rrz^4>Do>? zQS2EGu_9~7+jCH_H2vDd<9AHfp766MQHuhhTbV>(M}puEV6zTgoxSKAK>#i@@p6$Y z;n&cWA)%u39vj80p)Jo&tNFoC5vnK6VFD`?dN|prbx+acm^V5xzWwoww_g?)HlcxS z@$x{6C24&p`)1NhN;{$8bE3@_89fBOWlQv;>{fcFXF>Q_Tbioth5OhleRU+U@klk# z>a)n_(bMV^fQVm0NxWG|;fAJzjj2gT>&+C=`mjk*lp*o`%40c)nT~)h*MSJjS83gO z;-za1hIs&IGpfO|^r-oawW88#SZw*nzxZro< z+t7H6q*%%zbPXthiAt%W$fm`1PcvRcNtv#Ls9T3(1kIL|6CXU-aUqQ-Aj%G<*rVW6 zz}$KO^cF)u&s4cxyI-i(zeGr)*KJR$G<4s4L;cMkc!y-ftQJiw{gpQd(Un^=-uad5 zGPTeS6qyIZ$OtH|cH`$<-7-lmCqfar%;VK4i4A43m(QwrOD0;l>(oA>RzDjXIFDn< zNuk>~qb0kjdvfFPydSURb6IIIFv!#gyu;V_)V`yZZlowl0bf9pr|YV~T12V-*mY^) zykycI`iPA^t$G=u1{wJ>znPtSD5DRF`!+}zJD)eh%`6CBH~k5>t(#wBI(S4!-m_Qy z9LL@>&rv-MO_fs>4%hT@(Rb2C}mKDe|Fk;TApfgj%Y zdB_yghVl%;$Br1Z_^>=Rj`u~E_G}DI^+R*~n~CSuo@bETUuGT84vg&>$I2-uXJBt> zlSnVPDb3;oG%F=FrC41Y!Pt{=zAD6u$JtocSxp!ui!HtnMKp4b8RE*WPi;Y`g>7?^ zc7=nPZ_qF(!_0_CwhvW}0ifO*JRq5|cUjr!;wr{bd@4K5iXgkS45VigRG85%zW+Uk z+$c;w*1w+feR*YQ76M3ag8p!hN(KZuFg*ucUCCNd?=~1xeg5dF^_jDj{ARK!`3cHR zGm3zx8$T=qGy0!(?a=8ghBu7E+lV&a&(4ReHrE#DHVj! zj=V=p?^`4JybJVxHs3_?<>bQBjGxM!s?>WEam5_YK7CP6_2_w`LSGTn^AcHqN-~N= ztJb1RvZS?B>ZP>Uhrx74(>Seh7s&s1FuqW zx1KAJ;_w9hikTSf@|-qz4x*n)hDk3iCZ)U$#M-?=` zU*~Dj!**{tV0>D`{vIrj7i&w$Y#dm`YjM3A%yITodM7|c%|!dXnm@b&e@y)yq9ODV z9WLg^`AMg}q-s^+o1j*fFT6RaG5N1XB{$o;!toEJrCfDCXgj?Cd*NrziFT~V<#Pbt z#uvj+-hUA{Of8xHQK8yx$}ZrH?9fhm5a`%S8^tJ)aCJ{=wqTb$dU`&lJXG}TRYQaS z=&osu!r@kmT!zZoyjuV}L&(?94BL|o|D?;~o(o{2hWsl{;&5iXROh07aQhkJi@puj z42|%lBbN@se{s6`p3u~W(g-ryc!WFy{K3*{3;j&F$R4TozRF^?R_YO^mrSD#!Fp1% zPFTbgpE$6QBsu7BT?DLxb2S4mN17HC#!@Sy=P$&W4s%{MZ$%^BPBRW|zi#AFw7o^3 zAwj}%AvVE1iRZC4)0`i?Ev4z}98WohDM<(nIGInuPV#bQ@+k?w8*VgpuO z|7wswrSLOUo;^j5GIRS;w-Y8j_dYi_tcIILPaZz^Iikvoo@Qmg^R<8cg|FxFJ~7ol zUz<1WvAtx~DSDodN}~(r{FWpV{(VxJK5F2Bf5m?(Vm&e@I^iVluC4n@374&IK}haREEf&HHr|}Y0o-*mD0Z{;xC-bO51K>uQik$|^Mgf%)WsL6Zao@D zg5$f;665*tTTAydgTO3>;MBXl*4x_Tga@T_@pVWF6Ryx~!^!n1{vmtH0Y)haYpI<^ z^xajX2;SxWO8Tu-uj4$_9Lq)Q`(`kgnAPi3!taKtYw~CB+a;l}3 zVOwrI0VocSS%H`Ehe80P?wAJ4MDEM;T5~5!gLMP2CccyiaR%m^xdWPAme4t`cvs0YVBQN@8zDMfm6%+ELZVgK|As%SDR zeT&0r3U*)vl{{j$!%UR~V6~5^LLVTKgY`Q;MU0_7h6|t{5fP~4>8cb^BG4eeg)?%q zwXSX2G2uZ#u_hSQcmMN3tgUT!u)&W?eZru;*L7PYHwnK$GR4ziysA|sp60I7wOkzI z4Ocmim$&N-;@Nu{?u`x`Jx0SXXp2R@@`$~P*OFz%MFK(H>cyo1T4XOC-e&GC88|^s z(q#JYt^4_ncRj;m?EJdAshIfV+gnUrXRneD6ZTC_^zN@7kvMn8)wFODTbzQ$2yFIG z0l#>SKjjhDJq8cIYT#IUDSgzp@i2vl-i1~XQAx(#Ra$!k`mv|ZCO+5p-b&NywyBr` z`&XL|C-p~%c}-@(UZ2<|k60Cxd+x9+vOa&+&IKpTW17T*c&NhnC4JnyjY<5&Dk=6( zQLI+=Obnh}5StbyQofaJ*ukYpzEsoL%%AcOHy5cDBKN$;jRJ z#3k>*F3G!TJnM^icZT~5*LTf;@FGM$b=8{5qaZJW(r6PPn6iIjR{L&CbA!>E;kBr6 z`4;gkdh3JUgHLV2>U4yKQ#}t!7uQ#aH0^$ zTGOyR76AbCyHv~$s^>O72c!ClnTwB~#!R%nJatNAZ4PpyP~U;vJpSW{tY~8FD>pKEI_DEsnY2tvDU~dq z=zogGiL>%M zh_wwA2bAIvSl_xxCiFT}8c6^6L7hcEwh`VNDf_nhtQ^uy>mV989`Bm$*UW`9tvvy` zZU;itDKx3()Dt}x5-uTcUvsNs%&j>O+L-?k((Z0h!nD92D(?uiR z_FSc;S3lV&RmsyspJk)g1m0tfQ9#o+`AGT~_seYoSp(qFQbK#N>>IJ6gADNo^#QI7 zGA9hUt6J0EH&va$LQ&hWVF|PO9^G)uEgcslb;+7W?=D! z_G4DiM-{PRked461MJ(9hK8j(5HNsMcQ95S-^kOF#lQCur~};au^?95Vpwlk_r~|Z zHUr8@V0$Tg4{%3vMaOwL!J zLD%!14HQGWFiUNvuI>d%Lc_ohCM;tDw)fH|3@xIu8bT()++eU@ij`g*U?8QKBh@1Y zt2VLv?)i|F=~oGLXQ;pUkf|ai!lVl;kxRU*ba!}vWirYx;bbrMI3-fd-*{y^sc;}Xc0oYF|-hGe@S|QYCJrD2G}E_GwFybsrssT!>>!Dlejy zbT^Rc6AI$QI8hCZVPiK<=j_7}{~W-S@S^s}EqNkIWt)5{$V z-8nZJIF8zZSxokWkWPv7oC$lhH#CZqzo5f-fJ5fgW>93H8xu_G-yfhs<@RFc?jiXc z8;K*w*_cAjhf5l!sF_B~{D?aiIu%t1ONfe=pyCij=HjdOue}FkMDisS<|eD;T3=8x ze5-=U-PyUO$+2GtGUW%&33;tnKOkpL|BTlhQrdyZ8(a1NCyDSMfU~6P`3sEB zdz94mL9b(zH_w;hNKwXzg-J`=af^06p77j0|D5(P=2{_72Fb;p-lIW9>{!M)3s^SA zi(axx_q!;A3z^^K{e=mIrUr_Q(C;j|KHR&C- z-03hd{;@!-E#!JdBPe+q_<6P{deH0IHfAZ?#!MmBesG41EBmW&X!f+GJC!ucAWGA{Mt+<2&J%iNpzFe*C^ze zy|ysl52|Ga$#a^4Jj@(xP^2WEu&z1aRer#m4H6WY_#4X^`nOC`g9W3jex$aOcF*~s z2WeD#V*baQD?-;UpP7PhYe2eKhwJUHc&!*`2XAx2V~?i`wF1_jtE}DErCOHvX#tuO zRS~-DobDH&&Imk2Q4#x0eZIY-VfjlG(mQS|F24_hD~OW~Me1eEbyS$DiAO)o{{9Kz zYUB1r_;=sgm%Auhh@CgzR$@K(AWcexlZw6%T#AK9j1mpifrUk=&SSlEz(4*SYw;dF z|F}r*_5_29ht_FvR|syZNMFiy%PjkK?~N1lgmdn^Wwv#F=0bWk(FK`(E3^?+)YP1g z2;?3@hc>Xzl}ge>#0I*;%oEEeVa33ymyed|sKSE!LipLmQJxNCc!vwU1av-m19rAs zHaEYJHT7V4>2{fAXv6XIHPbpLcrwmSwGHzhyTo7|E;ff@&f!xY|B-v27g{L0o{LR@ z`%c`Dv;Fad7P_K=v=s>kry$j5zQxdz(r`T%L=zSD1sx4po z_cQwg{E!nQnO9ldUtiUh8z;k3w=}Qk@5=p3@;`hQx_Iumy50DFCpI(t=7L03za)IX zolwK#m04Rd|JQu>jPFPV5`17hzu9Td$au_kYv|rSnD(E$Y%yD4ydRmrjge{$LUvyw z`nvAgR~)#z+(R;P+)*WGU%1?3V}L;SCrWQ*v_p0S^VvH1tcL6_Tk=7 z?qdIg-(0``Zxr@c!@JqNz=EB*pp3TrI_5m*K=DnMVPt(!05FC0W7s*U|4Ct8vCRTD z#V6M>iOpr!YS1a$T}(45%@hv<-iPZ{MBxk<%x)QywGMxF0*aKw{@jtASsW>9_uB%o z$OvnY>l}Em4X|-l!t)-vx1fB2AKzNs=`+qM#Ga~nzcDhA#qnpT7fB(d9`;nEybbQX zUAnY{1z+s-<+P#F1gr#g(Q-gDi zX*}P~9k(z^Ve3ph9cb#zK`HtXx8(a9rVB1$Ow7yYN+d$g1W{^wvlYx?%*Lw&kh?jB zkq9G`3u;oqtN^rcjznsgaPC1kc!_SU${9hv4`IdQ*RJ~f`>N#C{t7~79})mSj~*SS zOF{W0_hpk*UIQ^fG3=($EoYHdW3xdz(FbqFFqMV4V>s^a&W6jt>6hQ=n3q^d)0LOANWA_$vUKwrwfB*x#da=6^_$GMcLw#F zKL$HBA_YZF=x%-=g+&|M#L>ks|0fMX(4!GI&vRgK{*R(C2E~9Jwcq0xm&h=m7;pGZGD=-n+l}}QLfbq;``(}6BiIPp82%g zb2{3bVAF`TRwAI<;EClG$X`ZXSjV9%G5%dMW!BdF$89&?%TOt0VAyHlC|J(-c_a76 zU4h@}z9eORi50g~1;)@#e%U$adwS+8k<)8Q>0@z#1DX#EHTmlX9E6njx}0Kzs(4ym z#CThCzB#+{wPL`p+^zhdB#781V%&iL_Ik;;He{BoZbF+~GRj4vL-tQ0SCMLNkdq1wL-;YYhK=H-~u9NP*(2p=#$58G?O2`-XRTfra8=(dop*VD$>xz>SmHI(yp7W}n5#M-lz1WpyDo&G}OH2vj379~ED7 zg`S^9U)?>KC{|NC=ae>?Vd!mqcDn&8*XvdnJ*e5K*!Ap<_l1So(f_={3DLS7m2I_a zTy2+)s)1}SwD8;xSGuqSY}|5hRC(@uu6;BU1CDt5BMlB@O0DKFPARj~4w=&vk-Pq; zMm4=e)0Q8&*3y^opQHKDYmfDZ6^M1|6)vC3PbkJ^)W|bl@q4=L-@=`}Y&6skJ}^*k`q;SiZ_F|97k45>Z??i5d-i)wcoxIXpb1!I=$aMFpf?TFraywyrDVVZ` z1LphepN!9UwAn_!KAQRK+lqxoMA&66R}*wcXXu$mhS>XWQ0|uK7dj&2h4lFhktYLro%N1v%}HOD=^Of;cX2y?Xexs@`>2 zPIsE6ApOkx2aB)!Kyuc8C6t}OjS*mMikw93qal(Ht8Lz62oK=7qeJc|6l`YiNt0EC z70npwH(`RGZDdy$y`CVbS2*Wb)XuXT70dLLh-0tC9B0hLv;m&=Li(NSx>+=rbn~q0cs`R z{YNnf(~i<(1l~thpl0G9k1c}6ECP4}gGBm0>j@9Gaw;i~G zR)2_wgOWW#KUQ6gT6XYeSlb>~eUlxuA7Sw$Zu4kuEjoH4d$_l{Y``MIGC#nq27z+Ew971F2Pik1fe+LSXxcI%`BA9a&2EyzFA`Ff|B%DB= zVOXcsBic?N)FQ3WgJnk*quphxj-OFaH1Qkx5?sZoV;`ZX9ED&QPCKG*l(g(^o7m5V z^3C{^n$9r@-KyOhs5Zd}(o@KLj82mggxe{E4^TFNY=;J{jF09a4OGjD_4e0sNnXxr z4_wAvKmQ`R@A5ZMoY3AaCg|5;yyV_9RGz7D%*CoZ`jt1|24j6qIY&|D_qhUg(nIq` z*Z92`n=z_%cis&T`0b5{GlKI&jq~AB?O&XNJWcm2Gf6vT3c6oAzK6OnRmvR!cfb_@ z#4X-!KXJ{!sc>Y_S%SKf%wxY!tXq=vTq9A5g|%z*RY?{-7yhKp9T+c5!5A0LQPTa6 z>DgcCmE}mbz-8Kg#)T&sG)VPWfIQYEF!KNwCuB78;Tu<(#t(E^`Zm@4 zMeKxeH{Y#DiwJ%n8bb?HE@_(UO-aKfKy~&R-c3u>&Dw)y8aYfev5btPPtCs|7_h)j zprsegRl8ZFWu@Bo!xScp>~wq1vkz=K4enVGe#huGAUd7hn*>#Acz+F+n#%0ijc{>rJp!V{@wu%{jm$4h!RM4`AQsow=kj>B*x4Q z_reqodUHv1Vrrv<^~U!1R0Ix8b@g^Q8Ru##Ot2aqJZ8V}z{|20-5yPi9lYQRxk#x( z9GydC0NJhC^MZRgKk>;p;n&^91*q6n*trr8W3weQ8M`8Rc~3_9{W^afS=Dp1b&sih4r8S7Sc9XJ}H7E`ZKEjS0=av=sHD}jqx zA|CmxBgrcK>0`GHolcjeWFz53?(U6*2gfmp-xm-vuneN}0`dj8?^;NIwNvxJe$Wr_ zuf1wk!=NX@jwnR{p6IdlF#bDnvh=lA@Axq&1qZ=B-n zXw}UN;_U@Fn_0t<6#I@>Oi-y`)_X&;;Y5)@?QOrp_w&|n^gAoq`2Lk@Oj-BDUQrtr#> zFC6*HZ9{`@klM1F6)G@H7Sg)c17m>i7>sZF@DWxq_R}1@+Iq#0^h2oPM{J9fzW1(K zBPkluvy*1Z1XMUsI*WtaRGZ@tfP%C1Vtyb+&@LTYPozAlW;;Z8T9i8KErg$|tfm12 zUufitj!&g;=<_n3PvfmG9NFJ9iP>i$9AsDo6(NkG!{y-t3#VAJYd`t}wyjicTkx+N zmeiZeLZVOXhzPP6J*~ZZC>TJypQ>=WhJYsUN%7K*8YQYL165#lkiiQi#wLVa(JGwX zb2Zme)qOwTruk)nngc;IdhvI*$lpzjqMpN!yw<+1C}LH9^bwOXbKsPZ&_1mh($kdh!mD}|LiaB*eo6^#x* zD+9yRF`=5$96ZjZi9ij>zFTi6EsY%E7%zS~8vVuMxmMCtHnK+P&qw&ePdn^ac#*Hm zj(?lCW{LlPUyCnXaP0dvzPDdIYr<}(OPV_FN(~K=ed~NFIg=VklXKc)rYDyD1 zkKnAYHl-NzBS%?Oii)_s8Ry;EJE8R^69Qy~9A*!@e@Wah3buZ_B)yB812LB+oN3$)B zJw^_Hw&!sr`O$M#L|{q>dHEa45#CejMarK^;+AT&@{_+m`As|I`;ZrI=?ts|#1c$3 zAsHS6dH8ejLp`vGejJ(fu@7au^_gn5l<`XSD8B3G>c$u@MNMYrG{Skm`AF+7@`(#SCh~V#wT(*crRb&e1bDboc;p*_$PoP>kd(c_*ME;6uq<(dYpc9 zeU5%K>}B<3sfhu8DE8Kzz^vWILxHqyt$pNGYUJ$kcd!#TIN=4jT;iKw4ix{02b5+3 z?XS6a5DhscoM^zf`57a#^?i*TPC=RZ1Doca}tVuClWN)BJT-(;54gOF+vFHWm&2Go)*@!Ib1X7#cZo;`hZ%ba*pT? z;HOuv+%oiQM^;ur41&hCVO8ifQy4CTl0&F7grm`$gSUrpe^#%{lp_o zEf{2M6yKhsGk)b+N1@J-kis{*IjCfl0qdRdSff{p3|C!sNV{&1yqyvHk*Z=6$FGGx zZYrPm5+*}67Q%#MqH;sa4)e`A#XWtmbz zM#*&--<0*ZfCu4%#m9#AvF4!0yO@=%wBPR{YO7L)OJu^k>rSuQ@&)wK(=pv(qlJB5 zsYgG8-m$#N+Ed>gp~LpbpoJy|LcNO(!qN4WQMbQ%1G~=^TF4`2hxI+Y2AnMc3JK!Z z!N2^->IUzIu;mgOyUIK#UEF8|!t}Cl6)uctq33IHGL8C(-gvMMY9Pv6#x!Ph)W{6<7=N%#VDFiwb!LM2s@x z#N(n){)HT8eBEXo@9=kQ;wD26Uq3EOG8q18#--!D+ld3~*IfBAX>{oLVm!4Rcpv-u z<>gBmMZYU4%cF&;!Or!+rqL2SQc?{FiT@naqN_Y^sryvP+nT#IfDO1?sCfiqfvLb& z$mO{?{DmL)eO-e6;jga;iJBYP@vg&*^$8ec1TJ}M9)ZX;@n)ZfKQj~0u9+Kk3o8FH zMFTq&g%L)%B_+JolrBj4oaY3)M_7Ub(h@)cn0n(Cvc(}fFO-isd(nl3EB;UtT~ilv z^do4-f~9Sjn7}ZTGeFWDv~S4M<0ZsnD&5@Owrd%JzXg`H#7_R#2ulM`a-oDO0cgpM zsp))t(!pVQPVeQP#tlLgmkIsBg`WxXN~5l>mJpO)raQIk@ioddy6S{L)MdRVf48*p zbz=CoVe2!;wgViz_#(EjYcoR=siwBpt%T@?6%6+DnG|RVfRI_7^9o>aH+BcgL1AP0W|YWpfJL(+m_dk8v5(!dbnSraukuN4|?x{*BZ=ri;#7W9pwf1J6mue)Iw z?`dN7baVcNB>z-sujKe&iv4WEZ&;td2N8ndhVr zE^WAeMswi*c4h8DsJafI6w3Y0nft-imgv~u%0-L~2wWY)PMZ>u=&`O&2^u4P;qun> z@iYG4uWSNj7l_Bqamtz0{knr;#@!RoA`Y`JvHi2Y5cX74Cq`R+?w@x#IfofuqH&MQ z1`$up%4cZk=gp_+L?V{7J_dzG5;iMxn>uKq9|X>waL3*h@33K)<}4^zS{Yp;C^7{9 zN_adf1n>%8KwXJTYRY^~R_{MpoaBsTC;fdMfGjdroJRJ|FJtPMd`=3M5H2eQf`=Qz z&Z{ty7zmH9CB`TituAa&OR&KhnEnB`i%lRaKD6Yrk)GNNLV-G>0(Fod6TE=SIayl3 z^D{_y8F^^M9-e!$tiE~e8+JkHS~LA@F$Nq1SQT(HC06?_e{a>#h-~~#o%w~@sD4|d zU`zJrs{8P|Y4X2|$cz2?nK5)@UQdVUOZ_z%cC`~J9y>$Ej3M2OaN^!w&{SJt7UWP5> zZLgT#cG4yABvDP5E-`D3cNBzuaqhJsGJ9mBE1LRB<&>#tfgZWYXHiT}1%lY78GD|@-~FddTCJcmZm!nm9`g1XfZ1>uGLi!p6oi-1^PxE zuGazm%Ly1_UUuG_g}~Evw-LI8e^1N7W_sY5;9M)!=^s6_t4#QY7DfX$cV{g}=@?>$ zgN%a!Z+0r!nZhAe9~O^9sXT5=lVp6>!p_U~B?qnfU3kxkEe-Y=DFE^f_nt~qHGvBk zjs9`987MH~f9xH?fLj{slEV_GHraFvP14)Xbw*F$KZwCjLpQ34 z;6EL;PSUwl9!#Hl-G5KQwdyPHuprUw7`1;gCy!v4j2vF}vVJDKYu zrQw`HRlqKOT^=z6Lb1@Vwk9Dtolz&SbwpycRwWO8f;p&Cz$G6HY1txFh^z1na7T@i z$w|vxhgBJW0S=@A1qF!SKbTv!ugg3K_HZ0klY1On*$8>2Vr~LCy7)TqlHvEgM4MOS<}k~(u0?$(&zqjZVb}zM4D4nHKmlFWY+3+dJVP? zt2}soOeb@e!qs8ly9WDLy<68IUx+!#aHHHo(ureff>72`3wW>(41Yz?M2@Q^P1*~2 zM|Z#^uj@N?6KwT>-{@#WWYA26kfKS1UFBm_k?sO3FDjVHhMrbCPhN8%2ix@?K};`3 z5(64!Ua@U;Ahfa}Vrh4C_kM=mg)Wp@jmMsgZT~I~Aw#$c{7mfoq(6S8J|*uj{L}Jd z&m3zFH{Ux%#r;W!`?RC@!?ey4-`c=hxqsKwjg^TFK9){6K@ zzD%Ob+F8j2F6f~13kVAcA7q2O;Wt^P;7#N+)t0KPvjZmQP&^<`StwhI^nzb1tac>a z9{9_7PB!=TC#u6I&tge!d-{Tesh>P#Ja9S|aPQ{xT|auASoqNTGsQFL(r4j1%LyR2 zDnn?4?~%TN+Fg@xJ$_}j#HQ*c&Z`hbk@!ulw^DgIwCEwOqmdXd8r0Lg)4{{X_nh&$ zp-3^dIAUt>flPfp_q`gXt~SO}pXa^}U2M+cG5t|3Yc0$xpfWgqPWPQfU%beq!0I9> zwj3)$%4Wv4sQ*nad3!~agR!~`GzeJDa!_lx+7xIVKea04IL7snD>Inm?`(=xo&&#M zjF^ml7MO{vUau+`o`dU>x!~KT^#xv(nkBlDzQ1e}j#vv4n9S|ZTJ5fR_Bc+n$vs>@ zJb7_=MRok(vT`PYqdSEfAjRPrT2c^9q4SLc z8G$O}gpmg~XYb{7ouXWHT=seQW@>l{a*Y?NZPc!xi(okbW0F z9$mdPI#UoMU!xRo?*tq65+|9$F-y6rp&uL?@ZqD18L`5?;9%_0Haf5Io*4VdFC9Tb z@^4=ROahJRx5cmhK>~Gw7(100n+(QGS?gPO0T0t3!Nwo8D$!XOLIIFg@%M&`kW;_y zcbyvg*dO5$chrLiJ?FPMJN`PBETX?|@MU=_jtqNmo|FSWy|+e5Y6p-C4>b`gQxN1E z^G{^pV&yJpVfy_b!^ES`Wnp>z%OP|c{FE7umAaLoH-OnDQp#ti64?ygea{bCvabs!mYte=3-P8)T8Rk43-G!jO*rRT>?I@b zCx_H!Hi|uZlR6iG!-SnYv-VqKDj@9m!Y)IykYa?7t#C(UwIM&rCo4pO$@4>bXH&)3CWrgaR+uMHeSJ>K6Vdlh`)Du>wlJ&nv1z!?6qGo`6>%J0 z33x~wHlpi(Sg87lo>%0BTqw!JrgC7@adCB3B&VwDevpQhxYT&V{=1+oIJ z$Zxao=|&a5lb&~52qFf+ zYQZCa-VQo9H6y+^J+@(O4SSO)S? zyR%Q{fo#ue?G&@e6iY3t*yJ)deDpRoczT~yY>DEr8k_KD?SkBSZ(^ zUFuhc(6G3hIHn* zakL_D8XG6+P&IrQ=PLb;tY=W9Gmq45d+3?a+IXrX1%a0M4MwaQ7`V6Qjx<_$6=&tF zNXMb-y{?Ee#r1-LcF|)8lxc)2fW_LjrrZ>0lgZg88-(+FuuS+3`jd!3aVk2V_{8Yf zX@aSvD=mSHYy#bPzu>I{3_wXQqvnD9XcO!nxJTB=4$Icw? zZI%e@8FVb1=q6kvo}asE=y@Gq*kGT$j5Qu*=8W9;8`L8otDQ&7IM52U8!?8bUex}3 zk~_7^Zz+KGItV8LIW}#qA<_$vg+DfI0LPPvY|)C|w{A`B6M2~vb3frMGpCl|TzUOA zzrN=zQ2aV?p)<*u57!aJsThQ)A! ztJr~W^p#1ei_-%6Cp6#TiaKg`NBMY-!_mPw1c=wB?NJfeXLqVRu05lqt<57o($X@q zYh#XXnIAziza<+?ZcA@q%!zt9%G-?lt!_X7T5DvBu$?!AdxkTWAyJ5@OvU!x%Tqv@ z(Jj|N#R6OA`Tp%(3rCr03$y7>r~7}v_*KCi!5HbQ9Rwzn?mF}TFG>Koy1Ry>?)D?S zCjl%$7+n;F)EPK(^{7~W;3eUKyfpY*7sH)SDv)q-)?*r%HnnN>z|Nw;T;Ikar7GQc z!|csy&3w+0OdXcWt&D}y@lD1|RG#oH53IGZN}f|T)G=sC_#bbiqME7PE)+>#Aup7hPi>nT6| z+l}1@j2$mGNvG3yAFbxV;7?PDhJ@q$O+NbbW|1)4g&N*z89;#Kjk_8^Fe_pcxaKs?9NI+Awn90A~G`ZeUi>nopNBOWb^zTzR;TE=L}#x=!puWCZ; zl&U`|c3Loi?KJ3_y!F5ILHp*$b9+2Hb%}JrH4Q;dwcN2oa+w;F46oDvoJ>9x2i0$o z$o|cZ#qK#_1@sfOM|NK=!@?+KBIj9NL) z;)bit8VZaG$0}yE*yWEt_R7$n^`Ob?vYexf9H)l!0UAq=>aAbT`jd<9GE0XkdV6SF z8^cW@F6m$QU&52(Q2ZffJid5^eHWx2O(D$unY0k58fbIq?hEMj8MMc+wQ616WH-sG zA~k8{p_zl^rA+X|i~4GLq^gb6&`JBh*D2V=LD#3v4mM|hM8aC|MxT0(Fvy)exRqFW zz+ca)3?Rd!&Zs|_e?(e7BDJ;rNd8%Q?}LZsa!oI|p{{ImjN>&mSrzxn!g|Tjnmg=> z3W~0J6CFmG7`7PZk{-;+g$QKD3!v~?UwG#DLiSSf!0HE&T#Vg{>+sh#cg@MU$VWGi zZ;3dfM_-FxSSd(Tm2V*W{222~MOyhXC+g#0>j2!2Pb9aoDRX(|NHCQXA89d6QC(}H z94o(0z}^=!jQ5rh>DReIfu1K~s6fn=?uWeZ-hSmusvM5YU%cL5BHiKD{+b%?Fk^V( z7JBH=79R7lEw7{e^@Cf1jD)+>txIov0V=uWu;AZM7BNy~5a6_hsF~I-(&T8czP_Hl z2B@it`UwBeP`9vl-EydYt>mide;3Y^(L=HzZN}?IoPj5A+>@|BSFSwMM2WrrmxSn@PLBHEp1x5s(&E;w_be`5Rhq zhpq~spnta2;*{miZ<5v*(FcCeRuDxxGM>UV=Lb;5Q*$7S(|o-8<+3VY=#|v)a^Hx~ zW|l}Gw6{t5W3q4qCkH>8m3VRn>~l?uiQ6kyyNbhzZY0u`kfEQ@&Q-2b`l^EfFgAo4 zMDYl+X0w13>VrknueMug58^$fs^s!?;Qew;D++I}xaok{vdRjjjt>H3gnrIgRFi!rJ9Gdzw`l6X`6CHi#*=)W76Xw%PD{3Rb6;rJ#C)?%Qx?hk z25ZL_KX@Gs_Qxd4Y~@id8x*@Z9B-=NNR4k;vFX5;*ebM5#|^g!3Bu`uV&o59?yy^@ z`*gp5XOKe(v!kW_vb~=MV9}oCSL79s7a@$Xx2Rshr+f^YxJ!H7nzDe#Yi+jc2F@3v zy3EJ9%Gs<9FRXCCDDN42)hm%2L&y&Mi%UTYk6O=>`X+lLA4R=5#aH%yqRGE{)_Dmp z2Zwtdv6`xhHnW3@dHT1uuuht2wx3wMaA!*Vvo(Aq9LnP#?>#+Szivk510;x094QAW z)Rb@vu9Cs8e@E8Y{qzJ1Akw;{RiGy3X0B}#Bm7Wn-mo8=iW`MxYi&Y~-yTJ+{e)h0 zznS@6R=JJ%y2?A5SUA;Jra4!4Q?54hi&>LMgzV_%z0r2Yii}Ib9{y6E=7Z65h{3D~ z|2O+iq`UdwJgNalDfbFT5x%HKYMlj(>s$8ko#*(t-^xsy*o(#hc69&k4v-qKEePf2 z;Te!U-09yVbGcnOx5oPS?l%8Q{bGb?VU;NkS*v8efQIM^i5Y}cj~mlowEWg4SNM9D z1q!>QG3UxYe7pkl@Rsl-lhr-flMee7mshkvK6cm6xA^8alDajvQcB4i)<#Z0E{AvP z98P)$eh~AR)yEVd>SBEMSN6=a+Pp_ad68^|MX4k+J46;j?j7#vYt+wCF!&?xHK94g zt=Jd3G>OmHpkvcKG?fnegHPy6INV)s)SG7olJyazKnHYVpVWUIYacsX1ty(P?a0uZ zgtM&1c4=SPac6LzQ=DfKl z+=^)B&?u}5DM9-UFG_L{P9a^nt%s}J1(pnb)-QuM$|Rb;ea6TerHIgTRtRTTbe2cE zl1RyA1->|tl@^)M&Il<9kmwxHY8|Ely^0sn`YJBI73-$iqJXkBxPrP-CT-FY`Cw?V z`MWLd1;1==bYSZ_a(vhLT~a8X3fU|%Xk!lBd~1_7S6RPJsu9|~fP zY%|F~hV!*KP86OkoJVEUwxTYrKQ|8iZ8db}dK9BHq;wKo?I_7IvbS;WxExc_HKEV# z$+L+1F^b(q#_BZ~Tq>Yj+1;}XrxA3w#O2o#0i;NdumUkV{V(0#E6eHSFc2Pds79c} z-SDTY|CKE{w%t$%*B$MVrqF`CB~}-$g-M`&FDlayiE?sb!l5KsNtGFrHBUlz$+KUM zDmQlx>IV#G?e6?qG!8sqC82v(@e5W+dw^Ov*E)J9kmH|4#5Km1;(4kNbiwETaIrl+ z0Qf*8?0-qWN!qFteb}5i^u>vNIpnN1Mf~(@yNpbcnlt}}!b4AYP2cvhH=H!dX+q9T zc@L%9v}|T%SHtVJYo=yv6$N~M%6EsB!32HPH3~5H^;0)lY9M|7iHeu#XhGJAJf?Wb zvB1Z$qRQ#(i$Hj{pzpza!K(V}rCju#6rhz;)y;Bbv@*&ypnXk)_pKhTdwO32B4dSD zkW8QZ<}Fg9vtI<`LkQcx>%2RK_e8I8z?#Mj#z2{Y*9#&>-mE8h2dj7LL_B+Q-xl_R zF*lh=FRp(dK*+nnYkwwUO77jBHR4r)Xaq^mVEg_NP4=;cOAI_DYXy#E4UPru2o3`T zqE&Hm`H}YJ9p*z5eRhO8${PlNdTCg^r_G|>YTO^?6gi<)JK@`h>=%ax1m*G+Pn-RH z!-sZ@2jqNk`<(Q#)5z|jzTPB#dHuY(iVfPHb|+jd9CC3K-s@+ z3{2qsxbv+(HfLDVllOe{e`*0Z?~O9M9;49DG`MwbGRd z4!cl#?AK9}sM_<1fsLmzwWv}xEMW#*=`l;MNx5=4BsQNOh&}*ZKY@i(#173ry`?Ld}t{uYogabt`W+aC^q8ZZ1(M^N*^psm4wW zT~p$1jfMS!YxF&48}npuEEp<3M7|Ud*CpznbAgrF->dYgP6=54Zu~ESZ?-Xww?{)* z17fmW02keg~Jqrkkb zGDl_Q`*1Yn*s&L?B5rL}1JtIka>U>LOkN*6QefKL&_4f|hbb;T>DH(D+!&ZKr$H6b z?R@hm;2}lF7o~PUHBAmxNl|Q6zgjeKvSqj6GGVD6fP&d#=#8`8s%S@k`mgFQ1s|WDD{f8$}>%MdU6L*Rx0EeCMB%Z|Nuh0Z~tSE7H z5E1oHF%Ya4+p>Y<_nk~tOTc!iWG_4&`(h}$%Uj%%02q9n6M++g$8L-*osZ)dl9Z;e zF9g*W>pCH`YrGSQz#Z^e#1vsn1UnPa|;Z@-m z?t{}p0eHWYvRAV8L7Vs@jGsoHRdzJ==gcrCB7wwAS_uDmT<#u_@vwVQdf z_F<2*lrK*;MV*Hdo9bW%mtio6ybN!{6tZOmgcQb-XY+CWGR5@|8qvGXaQb>Z_h#Oi z*O>B6!)4dR)SJujmO=&a)s1Chxm-hPlqCD)QL$_bzB|4)IHf+8h6^kc(&eD{>#a*4 zl5HymBrip*%cummQ~%qCdg7Md%)oyT&>bhSQ$WBi^bs6uY|X-!gy|{_C*(%P@q<1C zbrjJyZ|ba+MsL;Nb}++`$8Wbql0|frz)2}>d0w0YF0m9EzTR1zLAaCfq_(uLG)n$LN=UWemDy)YC(W&|rwG(-^#wU@p0(IgLg@*i%JC&3OB zd1>8(w(V4pbSVq}D*iQcNEO@?8De(Fj@s%yXf|1D5gop+d)hU;CrmP75aJJ@zmn-0 zSY@Ql_ZI&gM!`nEeX5PiXC=L4Enq4J!h`}e5vP$j#9Miaq zk<~|0iKR=`(tB~%-a?+a1Or-dk^v77(i~IAl`=aeZPNa|`+MYnM|Ve%^m}Q-X#clA z9HK6X4;0w(l2k9ez=X7bUWPiItUl%8#oEJAG3Gev+t7y={CEffN$aRs{iq7CnZ01f z58M@*uI$@}vwx)mxDz$rRydgl#r3_icCbgt#oXpmrsBi)0jAdV%~|BW zv2ingqSy?RPjHCJ%21?(UL6EKpp41vB4*H=pb}QOaylA18BAgQk(iHnx@hfJ8 z{FGayST)c%V+tD9<(<6$#65`4%v^FeX(@uY^|aD-IPCRQ8NA0_3SWm7R5n<7hZ`Bs zHTXy?|BwZ$UUjki%%AWkv=rgLDMRFXK2>^ljGaj*w)Pqbts8m*sYUB+ZGKKDu#?2V z)Sy2u18fo)}`o^)2RxbR&ye2b!kC-ZUaNMM>v58Grq^9G6-eqMQ zh2q~Htn!aUK0P`$3*^-eI2=h}B*v1TP2sp*AJzDLvgD2XM>6_p@D6;#`#4ilDt-j> zz@$!D`3i_{YN%y{8yVq4m3Uzz+?Ul$UYp4t<6(c$-Vy$78!lnDbBX-ToSkizJ69va z6vkMD%IKgv_SCsTpS&C%i|U{b_H|ekCr?uT2=Q&rD1KEJHP?)SMdqbwyE2a zEnN0tf`dPw4q56(--6i}x>@9|rkP$6$q6x#GfS+gUgYhAhN;Wl>s9kaDojhL_7R=Z z&KFD44*JSEk^+5|GZ4+h=T}dacn~F!9h|hMrJz{1Kp*wM4MpLu!hxjA8^+I`q=$c- zfLpO<&v_Pwz26LJYc#%C;~G#1zx375%{rCkpAsWKk0BF1Zxz#APHYwY@3P`dhy*9f zCek7Qy?@^1@4^4~=1L}eOq8yDodjI_UbvM8hri5yxh3O$yWa_GeJaquU%e#)W3*p2 z^GVqW6X<8QOY77dE@&?p78L;0kK|TZH~a1kt&E5WO2LuMb4Upw?Xm)5>%FXgGcw9BQcr;<@39t zl?Li>E%>XoilgYylwapwD!szUg5RRV0FdCL0TUWvDmF{0-YLlT(C)t!*5PN=%3(&$`G2bW}hqPsR&=LI&8Rz zb`zT4XrY^j+T2J$$7Eg7anS8XpB^E~!h6bPLj(uUqqC ziTtJd8xpoDE8FmyJ5&31Gn6P`Zx;~DX~FWzTrcg~PAI1i1nmG1;xC~>l%?dEawcd+ z?1YT#hQjZ%x@NOj2Ep0Bgba`Q_j??~aR#x*=U$E*UjztL{?1*EJ0hO6>@G8(Py5qpflE|PxWcx zYG)yXMI`2XyClGpO84~e`VV$$vpXlG@uw!`hDw8)kn8B?n14}RulvnO(lN8aJ~>lN zV+n#t5l_#}(TVDY517GQw))}&S-3v5>hd=bDzm!DcC!8#dYyaoJa5(?VtmqkOIP5z ziZp;{lk5zvynU&8)Nw^&bo z`221R9-!T9bdm6E_t|6H#=+)*?C@CqmJ{s9W}P;Rw$5pwr%`NAv6ZubJ&NcamJ1Th zvB3E`VFc*0gRPZ3ieN$=IAjVU(3fQbK71HKd6npOph~#d_hpPI(VqaaujcF#lb_CY z4X!nv8&CA$gy$b+WEHZJ{$k4_%0O56&3BUhdHX?RZH*^+LdP3J2Hw;oQHdBKOIf@D zyw&vw^k*KEiMW})N4N>(VM@Z+u2XgcOu?1AW59AD2)iO+xP2=r-aRy?s7Td-h}_qY zePYG-;{5WrLt+tm4Ls<&V%FF=xG8N3hw<;^<4l1NTyMMd2HQt>g2!wOBYqG7`bB zKrY{}CHYr~92e|C5)3|y8ZSzczB;HS!~x)T#*@KHQ}uzGm@an796&Zsrea0pG9ttEL)ljFh3KVvOhnZ;gUey8 z=B&AeJyf!^n?T-;Ek18J%QQd)YF1)#Fa$vK883OZX5TT_;|Q_U9}nG2!QcnNsm86@ z76yLl74oN4laki3RyG`jMZKRneCDM%PyB<_(YUF=FLH_?^=zsvxd!*NaDFHqApVk( zpLtgT85@}XhlA+ojSPk#sTi_0W++-Z+%GWo>fk)hW-6Wq%VfvUdHaXr8V)uF&R$On~M$N;K5-L$0g)i?Prr2RZ1kY&PawqtDcX&?|7Si zM))wsE)esq+5TdSl5*gz{#dvLSYtX@8;6!+4OR!C=_b~?$7DW_s2JgqXFwik#u<#) zc8Ev{?dVtMap2yOkz0ji{cPcu+D%W&$oMZ2=RaH=;RZV!T~!9Wkh_gPoE48g?GQ)3 zB4oKmieli>VY1NVLUQbo=SktV8?_#lPA&?+fa?Uy4I4APkNhQk*?@M4c{tzC6=Ff8 zF|)NCk!+MEM3wh%{cbT~Sm7c+J^#*o7k0XFE&%!9e4fgp|W zSFy*vJ%262(LD~%1?t?#7vha_SNfalzqeJ#(3shb%iG=FOSiN_YY;u?H%;4f;}(bA zKi55qc)nk18b43_6~H>p1J!HtaHH~*bkQOF78@JRph)b}{_46|6m@wvVC0M%t{6e_ zgCt3#c+XAuNzmO%vy`dT(0b;sy&k5TPGfyX(m}aAgIRL#ki<(V=DJ<#zn)5=%&#oG zi=$qq260#sL(^rrUZoy4`GDrXoS0KVOJN8Hvdq1 zw#~0672m(?DJC7D{T(%NP@dWH(TcA{xqna#N!d2U*EF}clPn;0!W0#_(x1nzU!^I9 zUoJwe^LzU5GQYCx;ZX<}dvPxE%y^2GCZRj3&eN@rnJ5Hi zb~Q@CUz=-P+p|j$)mTe9%+`K=k&JRFC+`>W%d}L|qXZZ~3}u;hOkEH8z=#FwDNRvI zWLZ1~MKYUG0q$hC9`F9;k1RTe7T4twxvERUpN;yvq;=WTT^a?xiN6GCC$v>&t__&c z1CoIGP@{Q<6}x_?zQ?bCYCM8VwO=jUwR}9jnfb(G_SRS% zK}{v=%_jq!u3YL;z%jcyRkdV`Z;arfu+hr|6{BD_gU8V zZ*j=vuWW$;!x*uPEgbbW-Rjs-7#P9kO(@k1@71gAjts+6dU1zjip$2PTq)fH z>7zPh)b&dfQ4X&y95(ng1o`+G3MVrE9?&x(G%3?}XZ)KM=)^f*C6Kd^uQ(JS*(Siq z3IUlEA|jG8EhdIT@^SK8@K;RP(D=b}&ChBD=#!WyK}|o^xQ87Okm?sC02}`E9iblO zm5N_Z1Gq+xUKdE$D85a#UuIrmL(>0Rl8xf`XXmXRY;Nr;O!0VIjlu_|2iRt{jAc@h zjs8EAL`b5oz#vn{Gw>IG*q#tF2ceLebUX#--L2?xOr)npp)++$H$uRm(tGuQFK?47 zjnwh{t~_E#+u}oZRlgnZz${+Bd7&~`P&YN;i}~(T-Kc=*7%k~>3glvdDVAvPlS~Ly&40=W-&jsFJ@CCL;_wIUl*eHHcT^UQ zzJc*9$dK!*r%!u$MvueG%1NP?I$$Lq8`{gmJvckuF-91fK0Y!|!oQ zE|vTG{XJ$YGYC+STntPlZT@e>IiKS6GD=bI`g_M43VOy>upSQYLq_!)sVTj0c~-~uqdrl{B7u!iDo!+70Tg2q z^NOgv3xiSIII{mGrE>QJE(j?}tBO=*@*AmT5$6eR1d{f9+5~QDDYd0aodOi)knf`1 zPTSmRd2VA(ue)>iFjLgV;JmVmJ~W2*Ue_ymd3Mt(rtX`0d3HL>wq!6lNFxafuTPmZmO|A<_V zwtlR_fy5*~i=BzRepSu?Kw9@Bg}vO<{%M(^%AvBS!gvSHQ4 zsv70TMx^Z$N}sGB@kXRyVC*CuQp1EVvyIoiKhqFyz0BNv>Z=YWskR_vmG%Flx#c!O z)pOQU{!6O zg#5CcO}vY#ZR0;R(iv?HmF~I0!jgp)qP}m0cGM~$JVWZJqe{5Vvi6OJhSYv6SkqPKx&4Tae=4t#WR|Rgu%|kKc}!oA?1Q?B~-{dwAQL zi7D^yz+%6XLO6T{;C&h<7tm^+cL7<;VWKm=gTjdN!_8x(?3v+@@QtD_l8j$i9SU3l z&+gfsVFceXA>pD8p?-gpY&-HD&a3-|Uy}P>JX@d4R_amd)OV?)r@c+k|CW+oJ(c(H zc}XwMh32c4v6=a-RACBW&JVJ_nO!eg!$!BhV`7L;K~xDtvN`fxzizG)pSFH3{&L+> z=f?BZLO6Z;!x1Wg` zd)589v+9D){?O0qRd9#v;e~u+o_9vmYS0J#J=F03B{HW2_YD-KQEw_z?=Lm1ttjxN zSvMiUpFaub19S}d4DyTlhnp=sjc-^&z56+Bw|uVUqVkQ3zuK{$tLqyl+66@!5l%w| zp9(1o{8d3y;}Ok{%jQlb9BN zH$0*RFuiwLV7xf8R#gYwNBeKdO^Z(hfWp9D;V-YTDRE^fum50e=3hn`oV@KqmwI>Y zFkGuHn}EJK>uzHLTX$qq`g&xPO7HMjFBa&d@9+%n$PbP-Fd#H;LLD)w(h-en zg@p$TGz|7XdS*FFBZ^XP>S(Cc;Z0;hYye%EBCNW*XQ3I-Hb)s-d*^JtH?9yY$+F#OB8i(Z9e@^=ISG3Pf9pvGv^rwy%_u|5OLKqn3 zOSX7*yed;FV%1{6N6c2VrwHJD!f3~Ud3c#yD>Xcx-I)8cv& z8Y&#-44#tCtn0PMxFHrbD?4l)&Yj!?L9KwUhG^_{|-RuXZWwWZrXfP zNtG^MkZR{x68G=+@%BoBs0Y5WQUU@aMj^TLweP=&yWsvCw`D2}ejfC*yy-p|oo9bU z{%T6dwVwHwqg!To6&qq~+MSGiTQqFH?brX#nd&SdwQTHV?EiFa_fPo#b@)%QuA7L(fxj)SvVXSPFsBcT{vJVjFPy&uJwm4S$ z_S8zGuEwy*_s_H6(Ke0;?AF1$xq$Qf*{URT@XQNj{z)uT^*7i?Nt_Ra8W-0v3b7hT z!oAv;5Wp?wUT1DBUbLkA%2D&mLQMqkXJRfQJVfzgY1~2v${!nx>QiLL5=JwWAF8zv z{reyWPX1IWLa(}C0dx>m?vX`{`Tuzov8|z$5^V5@n$PGak4x~t>6L(o7(;@DA?xEg zY;h5KHj-<2S>k~gD;Y=;LY>~{*{N0|O0kk3Ux&jQ@Nn{~zgD;T3ml8MflC&aMg{-Q zNSo>V7t&5oxx@KuVY2S|fIHFl4pE?r)b6lcw5mQ=;ziy*C6FQ0(15B*(#?sE>CRta zTl^C*@pnPa1c;yxlD%-o7L?BFN6l3jfy^N7Iuxg;x%<{~n-90DnxTZ=MT%it#K?xF zM#b`ljZV&+=dzR3!>1dg$ZSEI#AiC}P>F{6)mnTl$`ttLT@0J5J5Rw8>A{)yonDZO z5F6kl#l=$(gby$D%ANT5NIE5v-?;be_QcdzxU*gp?kZot4%GJMPyO1MHuVvL6TwSl zx?$an|2!s>EN3jsT!O}Gj(I$4e8axTiqzX@Bs`aW0qBMS?|aQN0A zfv?BU+%^at7F7cWdVR3_e<_aRNL40^PV;QgZh`A#0l3vRq0I!DG{yGsj;uYCZCIuS zJ4#a*3}caU8->_1m8i1Kpb@Wms|{HCK45bz5b0kOu6C=g`8Y@PIx66Ij z9{oasS?g4z8+J@vbVRtWO(!boPWKSdOgZB&L;vLzj&!~CyN7*Jj0q#&CyuI!rF$}I zlDE$Qu_b49cui*uuiSE>OxYwQK>zj!O=&L~eqOSdk6|Kn)eoAlRU(S0-V2ji>BD42U-k6;zgCKD5N~To9f|V}OmrKop zrrSXH#P9`@Hu{jItf%N-J*5^U5J5@b@rW8xM-cX&Ze?7sM3o5nbHE>l$4P)*5>lc+ z9R5ZT49+<`b;x8Di6UGUgnmk%3a8Y$Uid#my#+&*;To+yLwAVMrF2VoNlSy$Dc#b| zJBorzOG$S(gLDc~14DNULw65(*x&xnK0o5QpF6I#R_1UaZ(~CUrj10o$ixHfgtsUA?A!zk5PbarKOQm()vI+CJm!ep7w2+2OPs8#12#Y)M4_L zh9xR*=@R-uXZn^eb9BYj&Yecw5AP6L>}&^77qquodhWrAapD(4;66PvR{-{CD#!}2 zvw;Snkn3Px9Qc&g8c558pklrl5>fSeQ$?`LO7oy>tjl~X?DgU8T>I&XrJz=7a9HYrXg#8DWosNGnU0S?_e?g z$G4y5Z+7Eu%yLxi`K_!BE`fx(+(6B}_l6966QhRRW^-VRZ6wIP&xwaW^u_jXNZ*Fo z!$+)vkg9c(b}8kNhSp=Nl`T9~|4`tQ>xNQ)R0tXj)$j06l~TY)`@@KKPEz7KYs%?7vTG(Zvn{Zk7xXN!8#;;Dg;u>6uXcQ$AZaQbu%nl-d z*uJ&bwW^AHtA1@hO|MH2CdxHIu(e-Kc_MPc`Pt3h_E6LZk?^#k4Y@WZhI3!gldU^j z8#q=bwy~p(kNZq;-U9n=MO7y&asa%~D*dS!!w~g;{LghgZS{kIz{oaXcSrftZQb+J zKQhFW2bnmN+prZ$<9TiPk*%U@_*nS~&Fd+0YSCo1Zh1pi0v@60b8nU0^iD1d zHI9_W85BhiLXgt9FVggP+Wg}fIT!qc%&6y@KzF|Bit`Kw5D7B1_o@9fK<^z1GU7h+ zoJ(icwZ*7*P5)gE8ZWRAlxkh|2zzDQgi!*q7oY}P$A+rD`>pA@ErmbUxpB2|W#~!} z+Esp6S4IfJ7tSz5{nm+#prj4k<1%dg^w40ooWz!0f%yoJyt&UXCl||G4-=NFyd5re zPWJ3fhRH4gi#h9LGPCLeGms>m%d6nZ^RhAXCE(}+VL6F-4qk?Jz%~WJDxWLay3f#C`Ayx zbeW51t9&nS|DBln2c3zXSK9I)dp|`_w9ipv|MUF>P~F&nGC6&Qasxk<nokV3>+yS}|X`sN(iqVr&`;DWY+i1En9F z-3OT7^x%VpX#Rv=w3>|ep$@{6BWh0&-|4;VmT7`fXT$aFuFzU@Wsbtn{gZ{%!>mBd zjkI>a+CEe#X+^3N-5=4SDK1kDqBGq#J>k5WMkwrP_98|OSH|>1oQ&+08%EFLKfJ@R z@O#rou$abe`U$-mLxk2#@=gA9j`QLd7As*ZP2NfE1T)Pd{pp`99u=p9BJ>)gD)b0P zTj9^57}ug{Eto^ohGG};Mw@3J4Aa>^1eT}*&t7PegquiEOZ#&=JtVxO+o>fDl;j=e zFWO9^p|;$sm5b8D*c3FTzRGu^Lia-SSq@F{roZLX)S9EW%5XVqaW-H}v86?7aj!+3 z_K2=Oa2Ve!Q+ua9Y#QlPxn;Q2HjKzEge!$x=VGi;n(?8qk?OI zNn~DZu%n?(j~iobhyXW*(`?YCq(@Ep3f~O$*>|__pC?4HGf|tg^R4QW#5SDgEdQml z(*FJT{^9mRcV%JgeC5iYtHO<4>uv_PD-9C$-T8$<@JQld)S^~rdgC=&3^R7OsQ@dH ze_VA9qlt~}%^IN{;*^l4Gyz7x|B~157wokiOy)yl#KXvgfEgr`HO{(^excFO%B)}t zG$R$0N(AqJh8}$v7h6}BtWiV@G~th6`}W1oPQlb@SBKwM!FxunE4PKpahn`oJ8z&V zhX1~MoIVRGdq|7T6(!bX+KnwWcC?oFr?e;#R z?35Xp2t;lI$i*RlHuU+w31pe^whD9HE##a@N$r$ z_9o~z8{u})lGj(}wOat>M0n_%M?GxQF+i=+myeWmKo4ym@G~$Ay36HEbGzh24JE*{ z&*G2NJoB}AxGp?rn^4lPG$p_t7Nj3TM7N#TfIlbta`<{kCeB%yxPq%mt|{_F$guRP zTTu;MKrV2zk~g0pc<*JoCiTtV+V`=s*d*bb)a{*b=POYy(! zA6}=n9lb*faogFV8Vvpc55nU?{q(rtivU$$7`o?=#I$WTqnT7*BK5pL3=0V6_zhEU zYBSR9KfQAf7n~MT$vDUOZa<{Md^aMvvy(#>cKPNzT03~8O)3XdL(W-~_Vd3-2lm=@ zMp*olA`Ik1Zc6 zjPh0ttV>EE=9LdI;iDv#eO>gZHykcXP~)anmY=UiD$#!;{o%Kk7=P5kXMa;P1Nw^< zkwq%1A(dl!0dz~}Kk&NA5W2}y9Y@`9XHZr7HxE1|X>*bPC3}Vc{ugWPfWf1*f)oR% z0LV-*&4}X@;z-OY20N*GyoR0rT^GaX0;Tl+>LwcUIj1D$r5C_slY#E3S&-2Se*?cy zrunIe5vA5;rAB6xz-N}Ie^F>B9m1(HNgZhAkhFwMm1Xd3l%lcMvnW;eGhW z%3x1|g;QC#uSjljn8sFJ%cEHoOaT@FGTP>KmxE3Vwbfy}9twM(eT8S;g~pB!!x9Fr z{6RXn<-#&m;76e&LGupNH|_n9bos^)4chE+9O$n#^P-r z#gTA)aEt-H9zZn7KnE3L#()GOYUj9NAq|}I+6_S-p6@IB62Qt88BxaZifc^wXVuGz z==bJ6;U4PZ4_8?sI${wD6u`tGZ|zz69~z%|f*bJ-6!+Hb^c%25^xy4G%w+~zoYw4j z=jfuyVdvtTqUd50FcFdV$bk^-8IK<|?N}eO)dXdnrOdl&_2zScZU0@*{Vx;ls^`j8 zYYMU3SLvoyi4?u>=TJjlKs^PVuy3~!bG?e1#$h;|CWVDtZ4P`C-YbY#r=z{-*OX^(#{`+!|2M$UW!IHR;=cq z*uFKw=f|OvqFSnkSjiabz)uh`RN?&E;#3mJ8hC8ANv($y0ks1+Q@H)JFD{8J6T^So zG|WisynDxND>10vP63iiofV*Fj1wZ4`4oxq0_Yxp7vlrb6r3QHMFy(qQPCAd$T1>e z7clI(vW3Pr@ZrVpps2Uvx{K1xZ}k0lxRO}~D}tp;ViNdTTK`ymZdR1mNs^g;Ylb3N zItT_e&hDbnW%|@WRthA5Ga$MNkb>ybxaOIk`7!e+s@W2@JT6 znh-Q{rA=V4?SrFgy*SrTi0CKTT8eB^WG!ZiX8|7=&hqAD(;s6!tJ|BKdS@RHx-iPv zbrC+wDo!2P|Lm#s`XM)NO7ZkS+@1T5PqRMvAhB_f#R_o;Mq}&Cm0C;ebhUy5t z0Y0~jr$mEd+OddOZzMBdq)WvGnANRfE?`H9CS=|I2`XRmkOnvj%M>zRoGrZp(Oe=;;b?|nsjfW7Hw%GZ2?Vy?WMI2ecZQMXYo$>n52&Lb6bKj zRH?pQ&3(u9rosWr<3$at<5JRNlnt@Q8R)W-`E=UNAa6ad0QdG0<-jQg?Y&O{Vl~sm zhUM6HJq;T7PY;PIVSVp^31sofw-|H1ElswWR@8@Fu6IXyMs{p>6ZR0&)&gLnnva14qj3Jt` z#QUTno?Mk;yh%>T|$qH-mW zsOkZ@UVKo_ulf=ug!arSQ%wkH5 zr7iU3O86y~7O+>DkMoD?61qQ0p?>PPPj}0m_x0;CcIV~0A6^-ACN6Ky*D0HSl46O5 z)?cM5`hVG?tu?G_uxaqV(jE>e*uOIB$B^H>3WGPAS$u0UnV6#xK6kKFO+OGn042RX zmT%izu2BP*2D6`U$4~g7`Jv@wY?RzShmKgKcc&eAVE}4m43u@a7X9$tc}@8(UQ(LqJ{3y_E#obn(5&$k^YgeXKm=ua9T^U zshaAkrs_AUNh!X#nl{{F(x${7bmHnZRS*5e^8>BXf$lD~MGAP+DE1l7XvRbetbHmuRi~AJ`h-_r4!ky&onmI*br6i+Nv)gF!em*s&gYIR6FNR{H1F~L8G==FMN#vMaP^5NM zFY)E76FyJWhJ^;ZPhRpdlR8Y6^-{&ET4gy!Hs<9=+a4>?jc#>siC2H-s;qIskI`ng zF9f8h%HRT@P=k3OA6a^-bqJ&>Cn=Y?Dw>0f7A$>(TrKbEc52D{_j6TB!#%v-YV?<^4pV14vYEku{5x6H_g@RTchc*|4 zzf_RPG)4++ih6kht{E%PG0KkMGka`>_ z{WL|NbyUTsa3a=+RdMg999mkIhO_V&pR>Aq6j+vMZy(G}|R znM1X2ygR|SPbEKVB|5`xKQgz^igPI$RST5^@Nl+AvV^fo&#`G~mh+YCdmI zSOFJ5I5u!e=c*sELP4$jIZ%=>Ykk4V%F(ds(yh7yQwj0Y6e)SQL*5k0^y|KG%nnKK z0T$mB8)yugzKf{$bEG(Qv+}p3S7l2^@=FhjIl7*O-nNz{`m~qw7bKn2e|s{3k2`Yv ze+h!UQLk^vUyFYw^Cg>F1{lreHrg<~YRf4Nn?1{UNGGM=4^eCq2W;zUIR@K)0cZA# zch8Eyo_=nK<$@KPd0IbS^Ea`0F_3AAI6IOWMJ%TAqYxjxT*lUTPH+Z|*ysHz&zQ>nz$kOydHG_BN3+yKG*gS z3L5f_;MSh}`{aAn(GmgHdYqd%N_oB9IP4)Gc{Ka6$&u*qkN)?e`tbsf^)-0t5p%I& zAAL^p=*CH+h;vGwT+X6zCl|hW{x;&^=kfY*PErwvpWW|k#%xvH~sb@ z*F0LS#%eMQ-ICiq>(lnd0|ph9`qvBo{FoxNPR z4`|t5-{Y1sGen{Grrb+jO~tAwcVS064<-9eKNy6)V$FXM*pY3V^+<(KQY|x8Q$a>N zpnv=%Y>D#}8DCea+0WoxCL1lUDvcgD64+tHK(KB-_|k;vU$C%#DI&DfVc{}$to>GMd#Q|UjwCyt9ffA`7nidn=1N8%^>TC^Q_pOW%o>J;oJsLmZMM2wTlC&7rPN3D0KbS^cAgHL8OQ%i z-ex?#5oFPKH@log^b0vM`j0+O*A%%YJ<%YEoayTi32B|zpN-ck&qK$6AF^M%_MiOa zZj&-t0^w4kBnaP#aL6y`Dnk46mHAbH<@8VaRRW{@s^7+rgzZH2Mjvl_EJF(52Ga1q z4n?j_n1=pZ!I<>K3`CoJ{JDMBAK@R|Oet$!_cUp^^CK`i^)nLf@pSNIA`KSGDH4ye z)FQ?T*CM)#$Y{@bmnVdPkxI{a(x^T6ok(Wu#48*=30K(#e-PoJLCTy0ny_{K%` zTr!=MRFZTPpc_(W{FG5!?4z8SHYN~W(~>{V^b1b99DR%MKyw+HljBxB<%tblIm923 zrdBI=x(FDS?0$aQ>(T6 zIgh*5oSNYZO<*AX!D{ygwfUm7^D)FQ#BH8yg(7oM-4KP8V`VL_l?8IuwJs97=8lzh z47@oSjFmzqFGHn;NaaZP<>79KbA=D68)|Y7l8CkF*~A8uDR`B*hr8DlMqTX%8|J2Q zBi}FUzSFF}zmK3e-A`R z=*hgVza5I@C7t9RM)CXbMFv=g`Mlgiy(4)yb5~y*0msT0ucyk2@=wPv;E4h4#LJA$ zsn~rvq4659lAbzQCo-j62S@$MMMa!Cf4vNm!wXITr*`$wT}%E8=5DNs<9W;8`Fnz+ zdOsJm76m-}lOHK~-dEEz97w+r@v84>2&esA|CedGK8M?sDdtOl!WPOhrViG-BV103 zQjQm=sb8G?@s|^d_?*A3I!dm^H}5$YEkCl<$s*Ke-GeO3_xC(U-{@`8nWHEOZ4?an zmybTOWTJBmYmI2#SFv+m zU4{|xmBOrb!OP7n(ky4?YIQpSCc}EBR2uHCt!|YUkE{}J7^HmZ8pBLZ17GI0OT62B zQilWwR~`)iKjviT4s)}1Vnq6}Rqe@c{uBY@RFZ5lUz7wMi`+k%2=1o0d5B*Fm3y4L zM(H-5Bq`*QMl$4_-X!0f)8R*%5>juf$z{m9izxBOE0{5u)7@5nH}gI-U1oK$6D~ba zTB7IfvWwIOg|)Pbcs824Hht)E{Aff6QLjeR30)>43S}w(^aY=MfqxUtt7UYGnTfPH zb)!Bpn*x6!lX)&fH74YdbUi*D@JnXI!c5w1kggV~^Z- zdu{49%Y&Bn$cM};XAmzWT4^r^jXA|Xy~hhKZ9=&=H8)A*7Tf2}KMYA_sv^Hr6;|#t z_^mGLw`||mX(z;Oj5jU?xo?3kcwmp-z_RY%BR$;BHv_x6o@Q^ViM2WaFIIFGYC;%0 z;-fE=e~bT*<_-|sPKeQ1@R$)zNW;EE9UQb&K-vfm8cJ3SlCJLTtKd0+n6_z5KwA0V z;gf&KpPO7wqJ9!=>ffXYrs;It0m&1bPk{|BW!<)Cgm2A|5f?dkSoCewBZH)KmWdNm zGNJ;uWDTRV$>@`0C?vpcTh8NStj|OIjso(sQQypm5OJFve|ivMnS#C=(4)G{z6z#L zI-H3))<^@nRDUZ1By!PSm$oAoCb?GqSJ;fNQCyQ|(&P-seZ|im^E%^(y~Ns5WH0U7a`f|Dnx=P<7pb#qP|_hX?JtH7HO$T7W+ET7x{}h+1>_&a%sn zwpJ#=F$UW=wNa~1i349f(v4Iy0?Y)Pty*n^lhHo-a*eF`=3*BzsGxU`cshRt_W@z+zV^sYiu4Zq!wC2W7o4Pc|!)u<2Gi&kJQ-1R-IA2_2~(* z+Sg@mB_gRZ0nS>9&Y!LG)AP4f;#lDI6=bH47!E(g7Ys)9 z@qfubq!?~I#@0UP+%$aPcYAqWdzI~t(IS%S zKa-F7c*!ld_y4ED>VRpW0yPE+bobjzDcW~%-*#PYZtm2{tC2(V4T{5AWN%2`HC+d1 zRT3xU^}O}%I$uI};v@&ObT8TH^1>ZN5Wld43 zfLNZEqBpv)|MB$)-71U5pns%r{0#(cPKgCws#LquTmEWibft%!MRmMSRWxxFQl_=j zb^`uY#Kf+yg6Mzd-)XElg+=@0ea0vh`qHA{=ydH;e)o5DN~8|Ki&Fy1Yls<>BHABS zR9iW{ZJ@(EZ=U5fQ^BegyWTBP4j_@Mix$@!YsgI;wE z-+Os!n~9;;8z<56(1EJDJp$bg3(1F-V&*%K6K1ewvfWcJ z{piT`pCow$d(LXMxTy1j)`__IkzftF>$VK2j+Z>4g%B+-cmGc}3gndX^VxJhfB~Hb zPf56|hEtC`w=yhfGZTfLefwh)-^!+X_>*xs`^7yC*NaZi1iP*QA^G-db8rRpgzfeZ+{99$#$V>SBU4oNIN5~JYg*^2L4sB! zx9Jnr0s4JGB*t{iAm85F3$|Ov+oBiQE`6}@yI-4s?a1z0R1#Yja@$H?jex(ihDx-2 z9Q-E2_Et2FcmTz{i$QUd5U`y1BX8VsWn0PpcRRj*DK1VQMnt#8)RlS}>Hj9FRssy_nLI zb+^IduZa6hQgf_YF>7Y}@s&pN%J#7HG>Sr0z{3s$>f_AT8z6n951TsJlUoFfeqFfN zHc}j>tjKF1LCB=}e8U>DsTH+lbZCi2^mfCA7bE_v@O!1#~+GEE#N86|gU{;l~#(g7##b1}>aS&-(O<)h%S@V<%xXlayTz%0AHWQ=~m(dLHD z;#4I37LKf<X(7(C%%qNj}~ z0YHB)wC<0lYe^M1+;_w#yPl@LrwHzCf;p7k4O>34>6r!}5;>*h z3*DvC1{D6bG5|F@&&&?LJZi{{)junh zscGN75nG~QeUdZY|KxsD8{PSjs(0l*Q1t2HaH+-FG;}L^EJw*HnKRh>CndG`|)HpjJPEx5-xqs>FG=j|WOOhBt^fD`Z%FgMt+Qgq0MVRqj1>Fe86W8_x}A^IW| zkUt-ma7p9dLV6m3l!MF6&mmA|mvxC#rPyCJVO5nRG-dNum9IP(zR>UYz0+85JS<(m z#I705el8Zfq_HNb%5`zPJNtWtP3PikW2C;nO5NfB^q*sI@qK2EyvxD0qT(sJ%x)v} zLvWN!CgHyk)Zlf40&~tHd269F_a5D80aM4q;GA^7Gp3woU{OEQ1JU>3dK9mz$0|;p z7ut>$Yd7y4A0Lj_juy+3<(u@~h*f!KwSdL#@;gsDy9@R#A=+?n#>{pq54f14x$lwV zp=)wK&W)Ww^G2R(4EHLwyr-P!qJg`oDNM9-Ey7~EK!!wV3C&3)XY2a8niP-*8B;mi zZTmhD`*9-^koY}Mxq@L7;DRAx(?-JjaQ0ud`>^}&!+&1OQM0E*u6Skux8ZF%T>7N< zk?%>ZrH=mN@l?nPc_Xr8SVb>NXRkc-hOGvxvPepgYC?JpQovSRg|Z!bLA zhfeOVBfp#l%|omtRDgV#GP0d(2IBJRLlSFmCn`BAoSWOu=C=X!lf7c7;&}ycF4`Z` z6Ubd?uZTlRK@D>7D+(@zMx^|_zOVMHj~!!dw+Q;XCXOA-yx@J0(V^bBWxC|>J_Y{^ z;IN&uVUI7hIYs@+<9HMC;1EY4y64f97k+`OlU}rV*Z@}b?SJN{m&D;$ggm5WC!)Ef zd2!cNK1-qa2`+h2o;`u-jK6C2IhqjU9m__gEY2fOeEm-oPnHrk<+i}CWxXHkkN<7% zl~aeNyupU<1Bh#5Z|y`}78{}+u+WwUY|wYeX0X9A_+?-9H?%OcvaN(&UV+ma79`(k z*x-D-Adlr%Y*>Mn@`w*kr8McLbp2D^ZOYE1MH1}27ah0t<`o0UyeLkh1(`fd(zS}^ zyrh#A4BjozN)xy!P{`!6SZ-#S+=<-7$gbEI_S($}#PC^PKju7_r<;Y@?t0l2G39 z`WR}m=ZF~7B0Q7nd6e#e`j=PZIT>K8FB3Zf<5R^$A5R&0xb+pp)_9<2my(q&Ro>Qj z^c_AaB41KDg8szc%^;H2iq~L(<2}is{3txE(sB>(>~rtZA2(CaP{uizDEzO0o`oVU zO7rDJqA+qo&Bj8k^;sJh?O#Sq9TQ^{x5!F zG9ntvLfvEphgar#`6?!w*PK6^q}NZk{#}YcZd; z#Iqkgj*-OptZ4UuKa;GH!W%*Sqh?la`O9yGGVQLfcPGm|vuHtJ38S>Ppqwrp{O0Ey z?KiU;HR_Ell7Ny7Xn)_zPFFy0$lS?efF@X@DUY9>*P5%e#-Qr+K*SECD%ZfM-#IEu zJ9YHVpEj}e(=PHiT7)Ah#Bqi4dy(ONSZa3AD;~yG=~gYc;dkd%xim>4b5u{Ewjp6p z-k|QRi;F?ZSblTx9}MmeYE<@S1o7zQMi_J58P1LVHgJxPG4<<`u*7~g`rqXQ)#gR$92xrV_u&|62C?UqxEFrnUH#fHSua*Jf_guxz4TFGT|x16D>*68FQbbIY$KZ{%J zR4@quDaxaz-&8X>5!XG03QVOKUi=UczMgxPHpKXcs`y1`r2fb%3l%GymDs^E${DZT z$m5dz!8GK;>G3haMzd-r+rhcSK=O94FL+9tJQ60In|XvH*U@I0(9$Q2m>6yiTA(o( z*0gE%V>SIZ_^-z6@|f!<-FVC-%*Q{68wWOT%aqH8>}Vsu)oRdm|gxvS~U8F%&X*(qRUy_ElS|R zwROEI`&#Q^ax!X`Tii5!La&2bFQssa(qg(hft}Oj^r|-Z($Mq-X{2fXViVZe`l}{l?%uw z@-;rw4Skp!JZkY)JG(Y*L~TSTRm9UzO6c2Sc%V4tkb{p_dM& z7#Fhc2sb$l3?9kx?3)OQY(-bRA^_Pk`wwyQhMDbtG$i}VnfCVMvJ*WnUKDQyWhD8? zWD_c9d*H2}kgg>lZcMSBUS?BDi-I>z8Q-a$9C;c)MAMbFR8VbnLOiFJ2$^Jy=Kms`pmKC;e+S2oF`vrQ`Bup zfzL9RjZjYGIdUD`_DE8<5bKr#=|Z5xYU>_5S3fhHr#%5Vnw92OP99!sH*lD6TX543 z-Ru4}k|R!YcVBIY!PS>YQ&&-dy=a)dmiYNiMjnV*Q5EwT`&H*_Mb~p(z1(rBf+SOZ zbcf-}W)|@G70l-R1~4yK|5j3aier!5>FXEDmwb6!`q`IAbc;ieK=y_R7vy0MN%nPM zxC>Ge@(-XpOh#a~_#?aAwL`Lwi(0}x+5&KiLf$uD!!cqvPgjUnsh4`c@CZ*BrbHDY zF^JI&2}ZLRV3_m2DMki~Gt3w^lIc2F>4HylBYU^m3}gB~ViU%ky?_LnACm3Wu8L(3 zS$JuOjUus#?sksR8kZoTt!tZ|a&T0H|Bmxh{ecmH@Qam_Ft5K41-+CN?aH%y%^$Y? z&a4^BhsdhEYdBK$^u6|py?Kxqjj1<_8I!c^QKem^I)5JO^FnI$A$z*q{uI$6KC?a$ zNM~a_mkguwg2p6MC1Y-Ca?T2&fG;I|ULrhKLe-qoE8~Of{ma<966F=2an;wm zG(fd&_s^u&ES+Md1XpV6xu%e#?+5`cew<=5KGzx_Y|TQzrV!aI-me2Lk@()q1X zYRF$v@-kxOW-?V;eh3;b%b|ou2C2NN+=|3fjOBN&$ySMNH(Q^UNK&CW$rtod!qeLI z6jqT;x&F$-houY^&sQ{v95d1@qG3|Ohh8{NZN%~5x024jx8hM9X5|~#E z=-Mn4iN}v(tSh0@N4}uwB5x$zL01a(!+&zjtRI@sH{IxKf80xg~a=D&ol z(+8N_Xng+?432YmF+FxMHxSBZgv1A8K-L!}=4cY%TC=G#bA^`^4iB}b(aasC@WMNZ z<-tEVLBlvfjzOI-tt>hU2*KltgnY%Z+HZHS(0_Ov_yU7^bnN3Bjud^0gB+05PkjE( zG7;v3um+8K&eZofkxXr>c4yLOFg4Y<>nzWRq<%mirgV<@sC#e=RhQgy92U9iZiOEr zlVpB0paZG5<~id3_1aPu^ES^z+(rEdcWK7q-i0EIssOsJr~R(0?OE1xl75=wanD%Y z)fw^cj9&smQZVtXg-S~q5mk|kFP@R;y~UPM^^Uw+&DbcCH5IS3>EpV0%?Rt7h+ZRUiX3}hroZF zGusg4iMK-rUPfH*dKDFGv)B>g!GGJ)sHD-fBDUQoe4m1kj&!bgZ z3RRNHhkX;8QgJ@l8xHOsMobLY7=opQQ1JU3<99;Za=Pl;!gJJg2~hDgx=?!ofR4cj zYuktpi~?dxt_`^B{c%G}>S-XAL`(04MJSiN50HNbg+G8aZms0^e>{K zbX6m&KlR<$;t|By)MqBg?99XfY{I``vF5h+LM^qSMGqg-rAV@)3fD_jL8(%wR9ddp zE6FF2ha4{c8{0RJQDZgOcX*bzZ|?^!zZO(-9X(rJ+ke&PR37_Rk0=~32Bcrbt*IVi ze-#(7wddlGlF+PsKx%|?BDS~8AtzI?(%W2i=mE`<1}S{Dw9^}l5p8Y+@|WTEI@8A1 zu{4@sL*;^*GwQ$WGwcFYcYpFAv*^o#(wNe;rt@6e=`YiUbbIkfH5T0G_SI<`UL#8hY$CCcZUoLK~o(Y^r z%7h&Ci3Ay7x;qFjvuIuemw^iNOxuOwSgHRE^3$akS(bPYuIo%H#VW@O+o!wP^ndGG z%qa1IS5Fm;f-en)dRAJVU--xNt|BNkyKv-HoHE5rmc<;i&8R}wn|}`rwv(1vo&mAr z@_!p#>`iXd)dj7!q6MuyvFWfSl)ipq{WQb;QzFImZxP`$A)YV6KrfZ^S&@pMNg4kg zm@DHH7k^MFc)bxFyt z_o<;gn-EB&k?Z-kyR>T#`RQo&`g9KuYmD~$v9kg3OM?WB$TxP8uccxrb1;$Je)tFT zK6c<1^5eElC1Ox%s$s5keW==QL)vD^>bfl-0c0N!OiScJ;etS?r?-sskzE~2dENnZ z<6_)99*49Ho)Vc?iQ|5H&O#sl}NO*s7}d8TVF)JbUG z{VWAlAPH{J*n07|50UBffbh`XZ6EtH+`*qu!OQ-fxfeVhGwUpy=seYVFZnWoV2{Oto4dTYXV4vf0_bjEA9c_od6Mu1~ncrJrv~BCRY4 z(cT((Rp^`q<3pQV0>?_{9d*bpv`4f)f?nTebeF1S9l}mdxJ1Z~{R0hY9VUJxHK}N3 zN#V=nSK@mFg}MffQ6**J*&)Jt(KjssPzeBHiGzKe zaB1)Ev_Vga^RtZ7`(z5fQ`B=l)TatWVg5nJqpT7u4|H_8#g8_FBHfj%?@L3|%t(>R zrY<2CJ@XawtWS941)bPP=3RgTdVi;z#F!(;r*9@=5*)Q9#OtD~D_#h^N0fpDY>3C* zjk@hcNKwj}P9kdabk|mzx-~#Hs<k{9;jU#l^3E3!F%k$s< zk##1?l9Epvd^5V23Y*!nc>LcGvLE82(JgO<<|)I`mF37~57^tU5`~_W)lgW3$Dw{u z3tGBHmmBcHXP!8@5HAXgcHi)w?xc{mdzp@XZsC6L?XsetepteYjQeO@D-t``QY8r$ zqeGRtO+^B^gr;(IVih&uy@c3yYa*H~a9@K8SvSvXnU`_NnoG=**It zh?4sd8s|Vr1FWjgDK8s}y%l@fiCZ_m=$Jgc&$D@Q_o7B;ByPaOaw+US6`)FxHkM3y zyxwI&&~$zn8SyxKXC~Ro{v zfenmM{pv$QL^Z-nX5=oRXh}YFARA-6hXY$vTChG1P?_x2MU%Z{B{Pce&wM9Z%-DK+Bw7kJHbFIQd)GWwf%F)gM`;i@Qz2r_kLx#^a3%p3fq1?Lw71Et%P)U2@D_&3L-7t-LWY_rIl_(N>V^z zXrvjsyNAvphdjLR_nouOT6@j^v)1fqo;!Zmd1 zTy^1(_vY-_Uj!DTyHek}o3Gm7Tt~JQQWh;X_$_c@IyyDz=I0NK6x>i&LG(I6^TG%I=O-vcHah@YYi#tf;*F5_zSAxl6m7 z+s&0_bo@am_!kVOoCbcqG&Ds?-?jwPHkkhd=E2&jMxr}rsu#|k3X7+_F1j?}*@>XD z_T@25q0Qq3`l|aja&@+z!hi|ZuT#+vW|Q&xJOP$>aT8SsSRku8>|zhqoDoo>uz89& zqe%z;{VLus>awo*OY!F6VmwLe?|yp@pJl-h#$`mljs6ZSbq)6|?2;BMaa`?7LD)3G zV^2kM@EE1cE+OO|;os+kCUda68z$B6>abv~mlm!n9dCU+c;ul?fC!`Rc$$kI3YYS^ z0c_l!E5?S2yykU;G$YAR3Olx3*KpPQSeG}8h||15aH+p%fi!E1o;UoHhkk@WgGSCd zv1X1GiD@N4_UDG8xW1@zXx>U)pPl$Y3g`Xdzj+$J7CqII29J~vXs!ygz6bbk=Et0I z2WWokyp+?M+oYEN9C3iL>5U;SLtuRG3q17b=y%rFl=_lsRn{1CaSoj_P~wvD8+BKG z;HQ3(q_^#Q5g}iBVrCRe^O-~K@8E+6o`}_Whu_oi%^ld80vT6_PdyB28&zL3%F^<2 zeO+6=ej&$@C8sh%E?;W|MIwq9YBT)y;~ZUHAX2=nr&neR4_#$h!{xq9E0=1y0?HL0 z-yv_j)RL0x9VO0lI@uP&b$Sr^W7ds5Gb-62M_ttZNR6uGepuD{SI*G|T7wTTF)$@d z!oY`(cdR5|HF97oKHa{@!73-6d}`T3-w?{l5T8GWYJ+&cxpuGX364DLdp$= zZIfKao6|E3it^9KC;qqG2A+28-)=v8rTB}QCp?}~1yRLNk(3kv=FOMQ<;~#W!X%}L zFPxF-;F)w8bs-Hu=XG)K`uvJ2jQe@lhiZaoW#QI8Wf(T3mAFKc!O7%!1+6MwJdCdj z(&mDGP>7LrSd%gFf1S!OjiF7-o5@YquqIj*ouC|gJKCuB{mQQ0))43gZTA|{)KIhM z&f$B_QbPN1gHgJD0XJz(DiH&=6m1M$!Rqn4i2;S+Y zzbrKjvuoj;II0T36M@pIP0;-4&m9Cg%cT%WNhYniy+4ZIEm!PRA~X+*(^DTXq>7rV zQ!PxfL=!>ye8z8n;&Rxckhgihz+*{+rmc*y0k1d4iVY1_Pn_B(*!3p#levsR(_BPz zK2O**RDm}BeB)rpkz<~WGzH-Xt#4fZgW9s-T7EMwFuGF6hlYRRu1-oDgA7UeI4ImU z=!w^X8{e9#En2wE$02vgl%^2srjv zVSKT$a#f)Uz%C3#9+SMYW>E~zR>3p!esZJIpAp_HA^cBnv4g6EUiTiF>p#1Ry=-Bq zaOY*u2|(yWTU+xh%=AZxpVM2#N=a$0yqK#1{jra}zQ{9>aQP{oo_J&tksSl0mDJA@ zJ{uyVZ;YlL0^*T}9)=ZJOE0_zDB2grx#CyIWTJ-0Dkf-KWc4Jtx(X7C2CK99D*XE1 zRL0_r8@{1R`gU{)a)_q!sidwDF)uy9XL3$jD&0^7%`P`3@&w9@-fBKuvr$RcAG1&5 z+bG*}mWej&%~wn&vc8YSWt+%toG6-D14Tr82K2;p0dQzxX5ZcX5;$YzaJ#=&DyuQ)@}QJrTsp#{T4G+KNgn7ZGvLzD}}DPQ7&vgeRI(o{zaGr z-!SzzU)0@+sJzKauq7i?nCj=(8gNc5?*r!dpL`G&$|4;C8&Hx=IQ5Ed&Z}C%=h^Uu z4^RKJfXk7zOTUAGhhzT$SXHof;Md{R;#vK4vHd{WGTM*naLya42fgEA{{Q+%e!-|c zJZ>cZOU8~8eG0R?LR`bfE-N3-jgbE+ySJoUdge_<{;@vKwB>kBTD4jgci-6pDRkX* z#3!vx9;uh;I?m$ku)$GyxPBChoORFt16T(nXUSF;kU9q)a+IzvKTgpeWx1W~X~XK` z&Z+9=e&=k{)=!os|^8i%(Eu!&24;@Eb%VrnP49eh<1DOpFhTAZm1Do}%-FG8Y^ z<7P7Wz@{tOr{T%q&wNddh8zR5JO>z(DKq339Lg~#u+r*0cL@*>=WR|Gb6u#%inORndQA~R(J`c?cvaQH@%FhI%Wzqs;q=LHmM2kw( zSq@W_0!e;0`xQYN{=TmIJrme6t_EJQl%^6i%yH(Da`utN?+e!x^jgnem^dXlv~7vaO8iTN+LGGv%`VbDP4MYVT9`snZgGr%aOG~eZvQfYHNHBT zn?$&NUtx#YFeXFx(g|FFG-gA*GsZU&Q-E`zc>w;mPS7SlEiNu+{##+iWpUM9HSZ5w zy-r@e9&8&!7i!2$7&*KqV;`}5=!x9vR)eO3S=lx?)UARA-zfx~aH^)MR)W~{EdMO0 zM0Wq?0J8~HI}n0i+DLIETekjI;I8+NC;Mrx$_iG8h4k-+r_}UDv8}1=+1p);RBd~o z%jll$4X#Rree*))P6wU6m_)21TN1Y^xgcmP0b}- zyYH%hv@!%vYC4GUQ)s2W+0ePMuQp1l2K-*<%3(QG`Dz6BIL-OR=JD(4KPXDJxIPh1 z{rjCFNly@1K>=UEnpDwa+gcWP1i{#<=-v3BCx3FQim!jdzU^N$EV==Ze)LWs1IY9K zr0!swaI)<+t*BeL$wy5~WrMSrTt_`}8h>Uq&D?ya6&$5^7gHbjrsuA9*j5w#fW7gF zc~P$K&llmw&Xm56S>0d!V_(I+|4gYY;h#-2Jb1WpjQiD{Y>Zr@RUohBp9Vz0k%bFy z+8ToH+~Owl5Xsq+CieC0Dem-hn)5N#bp8jq?q193bsvMOt6IbIM+xtU{hV|sq8uw0 z(z}AP5l&r zq19)z`1(g)m-IBTvjEc_+f}I9=TrSHXZ-Ras&^C;6ldUK zDp$#9%^f=dz4XQJl~k&_JqoCaw~`TnWQ80EPZAV!^}I|(hanI) zK)T*b&vu+Z3%D}VYno@V?d0AwH3$R_=&RDwd5>DyWpI8{O&038lR$-DN{KqNB~N;? z6#daGm^B#;fZVh%Q5uHwnvEP_0o!TGTp^N4V*&45aj$R5?!^iMKVL3`&ZP=R{3ev= z)^TfbJkF28*&PCNvz&KI{WsUgXF9sy?+$@>YB#{kNyryL!W(9yMuV$nXlb^-uKpR$ zf*QdcQlMfLYO(8-lnFOsN|Ji^-iyY}6Z++G=?fT;SZ%&{LTxC(xsiu@GI*2)Ht>|d zQmsBEULQVj^h}}lE4&0t1y2xo<8Uvx@>Ue$a^dT(jx~(FtE9|dw3_>qA%OiXkELow zHf$MPwMmXAJ7`_woX@xrEjl6)qM0o({8gCoOb?!9P;W_{s#>(knA|+Fngy% z#>ENb*mL!7S8}P0%dITR&-Yw!QJT}@ASHgwl&?+kNLco05zVxoRC&P^4WNXY6(fUw z-AtGZW_V{Xjtu;aiC~kS${PC}HmLcW9>-dD@9u?s$6sr&$_{yDU{q&7P zx!Y+rf=(nqv*Qxo%u>n3cj$d6{;`Rtv;t7<>gZ4*o%N(mL;8#QKM5lLugxmRh)YNo z-8`^u?aZ;U2L&VEx!~`%K<#|}_48Wdl0RtlJjOp5Az#(yl;i{;-;#-teL69J_kMj9 zB>g!5dTO+5XJ+&p_}RA;?KVq?5m%UMu7~P$A%lrgHM8^Ihvunz0i;1ZwKX8&I*w}! zw?leiypJzkV?Bv_8g*Mrj(Y0SuTp$eDvtK=^FW{^+3R!GZ zoDl6r5&K`S0`vq zIIe*?|EI9hP{{w_iIQ4Xwu@=aRKH`8Bb9X+3-|lWUUN}_mqP|;0*%%e*6?Mk!CYqt z;~7*!!ep*D>vQ_%hcVMSrjZKTSIR9zp|KMZfcftBMTqu1%TgbG3y}#j zS@)0*SvE32Re9yyz#C=^t<@vh7g3?#w69`g86q@#1(_&``vYI0nj5`)3;uWLxaSml z5n5v?cft<9=ilzZ_dVWj{eQoFd@dDv-o4*&y&(+iyB^xp+>jR=il{vj4^b5|<>*no zd`f#r&W{=6f29@? zE(G`efV|T3UvJQ6s?C#wQWQ~LyvsKO^e9!e=WSb1B&<7DkJ5ku}%H{(Q$CX@@7yv{yD$2cSiZUZG&@ zMh}z-v+u7d%*7Ug2q_N|OH^pts*4&WSBH&+vlJ$l*P{UCFj0)Q|FSMpBh25tQ~6X+_L4xwHlj8fK-UUfs3QIoB?+~lYpW&)fOr|9kD@Z8=(sS9xZ zq;_)gXKThI|6rT>+Vy3ALJiu8w!qgjP49iNHP5K~Z;QO2#`%>sqOmXun9WXaW^IO8 z{Clgnhbl7Ge{%Ymf=#%$C$T@|E?v%q5S**Zrj$8p6_0?mACYT+7CV6}5WPPxUCvL| z91y>ET&=T|Vq{&dM%7Njv;7z5)p<$mn^sK~x905yEpo8ib5gY-Vas>!xh6Ge&z8;u zASv=c1rq+QE~YKwRG;<ihT#1T^d2ppjRoXuNhaOMTh zyMoV8u!vxXjsWzS*jE5TXqCr2K9^duKoxXwTlHhg$fGgxn2~>E@_B5Pf!4 zE-|G~&(HQYYm?Xe5%rBPj3`HKFokO;33H-aLlNlm7rzXc!#M$aacFzdvE^%1VT@iu zm9IzxcO-|Sgo0WOE@6Kxi*pHRNAWaEk)ded++S3^q&m#23HMGa!)wK^g+RVP;o# z_M?(Z0eB@lLxo4BPw{pH#uqc5i$!Qv;;F(f(V=36i`_`9)O2Q+l@uD$!#p#~eVTan z`}EPF>djjrdJ?je<$BCsy-qA+K|AwASvl&Vh1tLTs#!jvErVPa-&RgV{U;`fOh}je zSuhGBN-=WrL*=Yr-02S9s(WMMd+$g*C;X;ibOQJo(p4k3KTWa0@G(Rr@IkL6WwKX0 zrEorUD-LUl`z+JO40B*1lOTHLq;h^upXqiQCA=_gJ}^ZH2j|d9NhWgF?GHN8JUa)4 zuOU=7ceIBoJ^dsiA={&^m4YsZNwfiu+i{kE0y%nl(fqljrzZG3F??~z#65zExUuVa zBLIt*o~k6N)7o?nA3VDhBQcc*WA5F?K&!upWHm)5E-K?&847cm@x41(eZQMh8^d+{ z1J&z9C7dNyNLIzOj7BlyQg@OTQn+C@LhJ^JM%!YLIovWmkSWX zZ(NNpOP|~I$H=%oMGIKjtKaD4YRM)j{@rYXNN&iQ?i~CvS9%lb7f6uc&9TZ4(6Sv| z50$+#f0LW~@WpAC?c(NchzZUg#w_z(RV(GfO0;1F&BV&*FZX@L>~_S+*GtNHS#}y_ zQLmB_)+yFpyd^T$H?7?q*er3MH;F%v{<3I3_di!jZvEXq&S(-VnD^z%IKL^@vBFc7 zwF3Mt*4>&UP>YCYm!Ah-9Czbr4;W28fd9l`;Tw>f1jW!t{%ha47(3NEv!U{RxVhUGE99% z3=chq2tNzw;~>DA4d^S0A6$F`XM z*W68LUMgf+kTNG5!>atLOY&IaBU=Z%t=hx3kRXO`w1`v9fdKZn8wNUk=-Sbh zTiuzdL4Uq&%jb1q`-%|$T#Da%MBSXa+9$5F@4N1`o8CL$i7%J08%RNwy8G2AtWZ3+ zrgNW5rre@Ly2@?%Qh;&hO{2)=02bvXh(j+W#d2%>?Yv$L#HU-y`z&ifSmxPH!0k%B6Qi5SS&uWBb^w0`9&b7>l(E@$GWqYxZ1PasHSd=w-D zWo}$sS&N3q^e0oWonj}@S*-wlcGFWVqI05WDSwj38dRN*tMNQz(5h894n0xxE}T+2 zAC1;I=vK22ro|L><7(X(=#rvJqxfi`tZA++ri-X#lHa@V1JnPojs}8Wa_!!>+|UN2 zNu$a*^up(MD4KiNWcC=SWi25lmUzG842Qn|aW?cTFh1S0AJ%^FO)Un9aeGE&68R2p zi_{qH#R>#~iCp$@Nd_>xEGg|!1Jdo$qn;X!B{GunKc+452EwGxvZSY(;;gVLQH(F% zv}$vhdhEnzph#u<29gwOq**#F%q7-ys*M?zZeuPfw_(bxK_Skh6{l``InNQ31Vi_pLe=RJ{6B z-*yY2)(<{Go18VNp}ZXl%{I^8a4VL8ZU|bm^u_EIXZ3kPlGI{KAPrQBcO;aJiBFF5 z<-FkspxdX`YR9W5jITAbhsO}LYPo_Oen?;%vgl2bZob!;Iyf+O{xe`7t_YvVXd0Jm zH5xYzEt1ftO!`+{#0!EzEO{D(t*!NX;3P!u$n}arjV8op)obTE7{Uw6p|P*#Ysh(K zl&gZ(nU5g8hTay{7~DS*64VAUAoS5_?0tba<6x|Y{vKJXl=riS zQ>c|bF{UwQ`)H#yU=jOj?&;p@d61WF2D+s2(-%)p<2Ss7O_+;jMU3OVr;u zuWf_rulxj9r9X1RB*iv+_<+kFbSby5g5y+;g#E_G@lFZ=@Zef^(;;&PESjK+4_K~% z*GuFz2h5=XBc{YTDl}0~UPJ80 zi&vU~J(FT~Mk5yq2OmbSIDi7(!dz<0{Hu-MBE16n$w!S<-zOiw^LOuRy za_q)a7*PTTZ|El5Cx%>rAEO#ir1~z{IwQSqnuM5WnE2n00v z3_rf#mfTh5BXsM(2pl)@cKo!z92uzo5O6gCZGwr3P}wOZEErm%JcJnkn()jji&xzHz`PbYgV-ak^VBJx&= zrXxo~xEIzP@_OuJ2S#6Xq&uec+r9L2fCyoQ5X#1=bb3)V0RHQV8&lmJDnkC7hbS)` zi<>jHuG0NMAy%iLTxu80R9aIB!c}|B$79_nzT+cscEO?T)qKm_e_;KSY*!_x9|MniU&~4(=jb@k$8XAzzY=T&s-Yrw&{TwI|!Nkn{u`X zEFUy^tFQT4v_`?fGvUg4(sdwuSu?Le`8ry*yesN0M@#W+JeOgI(P9i+yVlIe+ea@ZS&Adp(lV{!)XS1vbmW^;>DqedrKI=4ZZ8H0jv ztk40MMQwthge?97u*tWN_%d`&p$eX`QyVHz5r;4uzKWRN8!#H7EJxV2d>cC!Z0A+n z#ur|hm0rrUs1da0V3xp2^=aN~ypJ~Sui-OQk*DHJ`}dKUC*m;n4`p~lmd&4&rDNd- z*`+!yKNr@xJkcApxt?xUFuG&MmjR;tZDxQ&1HX$g?HsMeFR3Ts^b7*0z-Cfu7e4H!W^`8J6Q1StQXJU=|v?t=}b?P{+v8{(ZeyIsbGN*I@iq zmooqC^QodDizHHYFv-N%894*r%PGvFYy72Lv@E}zXDhF=DmT;Rs+sst7T zIJwrv{=a(S?-{3LL=>!t$HFl5waq^2ZvnD8v7N-_X9 z@fDOQ1uyu3Q<3(0&!#EdY?J9ZF;W!x*)7W#MfT-sV_w->TQT(T)`Aq1r=<9tK?T=n zOy#ui!7L!&n4U=QV_;xnLk<;<_XAr36FN`pSvk39t%^#4e#Z`Ip5lD^Pmyu+3W#>8 z43evq9lNUIM-e=uSHnk(O3Q<&F?`=cg%pjl%0jfF`#e>8^2?YMY9L;!)VL-!eKSS- z;N{Cgc>crtx$#(Oqh|KUeR64zt0-TntM8hdPI9Rwfym4?@cw9=F0K&1cOz8&0ZBvM ze*Pu8u|;dnQQh+Ia*{Bi23#=M1OLOKMvtW&u+54e{H-Y_RWw*_xWhdDHc6$ z!#oIU1(dw}FHBdw-zP?u$}A@#yXMHS@a>{<{LUZp;mbUcJ^5%O_%T8)KruJ;v^+ql ziKZYk>kv*2ynUO@i7g&5Xvb++(aK5z(l)`fWp8wqg`NgzS#=qKW3M)EaeeMG{fuQF zIT655fOZ$xoAsi(n+fEIf8yzTEE#yw?WC36z_pW^1pA zqf+~7k1Pn%;nRAGCU69{H2~dwztPJI($8g4NnHU@X;(OB;J6)JH1N{Up-T`EhCE}v zDB@?tW)3PwH^hF=fCFu>X&jxy3oYsdULTc4?A#mT=M26`66pxac{o#uXv)Ljc#|4Br&Y}MVqtj{$87V-*5LZ^8>WCF+Nc8OAWcP2UcTpTv3E&p9A<3tk7>c6CO$Yp8KSsX2H8!@9Gz-|%x{7|5xi;iX zNZzjH#K=bZBo0cDGX2JnBma`y>3Yc_$ z&f1;GOab17+P44I-c)I|;SKH1Q~6OpQgXX@*WIlEZECXr^t668eB|sNo5jK60Q8KG zxDVq&J76n`+x7j>lHRr(?khM9Jt9in=F=COOdr-3E(n?QRO|1@>-(_O-)GqwelU|5 z%JGFe{g26aQ=>L91$L@LMGRl}Z7l@fWh8gZi89mkVZHlJSDy~L^GRY287Kj*hzDx6s7NH5 zs~q2ABIDLx1%KnJLgMHSS_7U-tQ!p&Wg^EIgo!PnaQwav{ZP_PUMgRq?N*0rgD$x? zROXx2!hR2ohVxmXls#G);Kak#Nlup{>3H9tUoA@r3U`{%PoJAXG49ww0kwqcc@ukv zQS{C2@b!K%(YeZQg}e-&B!HLDEeET486(g0oh^m++gO%LIxn3cW_$OFR|u#yfZrN- z7C#u~o4!k#E)~p(5A=1)8eL{6h7bjOBbLCNcvax>EKr1XA}ZrIKsS)u8f*Nq$PZU7 z@cgToDgymWS6PP4TWpLegCS!}XWus7_iRJGtPIY-vAF-Lg->xe_r?@g##;Br?#2r5 z&cr%qd44~7<$d?1_`GX|*Xl!{?dFx)3&(mkaLl>fKyIlorNUDG!pXCb=L)#F4Jy(Z zEXZr+)H-ZURAy4e2SA`Q&pbICN<;^x;Ca)U7 zV%^eRR#P%l*IX2KMKT^y>ii@7>*vRL@|A7m^+;B?@V&jqW3HggX%u%WmgbtVepuh1g1R1b&3mnh=mkm-{oBdo7DF%(Wk+XcUP>sV){ z=#YZ!wtr*%gQGX2J;(|*+V;N3H5T9t*Jk;|t&WD)XR&>n=M~CVq{Q+#;$o&q^~@&; z{GeMneOS$}@x@0BF*{x+Kdn&!lm} z)%8kA!A2UM!D&q$M}6&O`y1wNB-X$!IWO^@+d=?BE6}#f?X3vUZq;gJmx&8@l6|g% zHIguAZv)8suY3nE`#gQCzE=ig1liW-x_r(=a~IzcFV*+HqCw#0(!#N1VAZNO_NXJF zjixl`P7>Mw{NM2aHQ9$8NxiQuo>z=3HTC}r65qfalEj~z8>ex66%|-D7RoG@uhQK6 z-o-A*%9sCY4`Cs}zL3Q~8E+?(V0qyCylxnawr?bkn-{AoeAWwkFqXn*BZ<8HHABu? zo%S5{>o$bAU+kincsP|mW_&;{SKpedbX!9$GDqUYpxvwp&{-#0fb2iYw$d5t534j! zmSEF>Y&zeA-`BFk<577jZ;eS6i7TIN&iMCwwDc&)`Kj`|KXvLyYkzSoPcp8ldU_gW zI1q$)(S6#i(S=C(;ypp$1$>K?$JI+lrB}PuUZk835>|Xy z&K`KyQM(-mNH``nNQmR7E(M_39a;>uXbt2QDhvPmF8{$enz^!Com2T~fn9hBLP~Ek z@T(U1_^Drhj4=4;u1Wqz+6~8{$pF;B0&1vuJ@R&<;VtqV#=R3IuhRP-!lj7`QhNU5 zncGyW#^@e#8~5Cume1Fd z+w^Xid>UNkJZLPzO@?vzef4JS!^bh(pJ9>2KFB3DmH&~pY7Xy9mZW$UvlwV2p z{cB{zoM5uwaINS4mgX6axQblX^#NC+$Grs)Zfl{Je(EwcpZd$04dY%v5Fi=~m-34gpue~)#*Qx#yqNnd z>P2vFy$r-FH2{C-nsju~L}qQ4G9}Jm4{pc93H zN~6Zxn!%ZDZ}`Bv17k5Cw+es{npSFhLuZn!C#NON@((LV=P;E4`ZydH7g1#T`)U&N&yUNY))R-v(g~wx# z4UyiP!Y9-{wrK`*Pq>%moKbHRV4Q3uTjG)>_}D;Z_BlRH68@npDt%kWewi)m{j9i{ z_@K|c)Yvh|WZ*J4FjwcZTmE6*pnzm#3!kEN{mHl-59*CeBmwOXVax@`ePP^{)4PeY zj2`ekjuMU0=#ldH-$&GC&={o-iVWkDk2S@8LA?=QR4aP(YwxpJP86O^AoCBI>9)w9 z;|6)7(o8fOU#j?-&T|?k#&3UC?D(9fOFiex_PncO*Km9W*Q01{ccuo-(4jjGioO&C zZ7Ax!m=fM~(UQBjWv8^X^l3N$Jocy95ijrXwsOl=(b7;X_J0Np6>Yo*;ZeQW3f2CE zu07I}v{z7YW``UV?%xg_1Ju|owrXAn?vogA=KSHp9{(8ZcsTdGfo#il`UHM4XMlOH zYBFQZ#sz<+3)^KR6qmFWITIsjm~`e*=F>PER9WDBLNOzd0~#L*vc6#Cw1&o*XZIp( zxF+l*-`~|LJaDq$uO}*a)u}gjMb{2H8H?PTjKw`(O<7V#&dzK?Y_@rlMklx`FLP+K& zKY#J5Mb`MLl<(7oGdaB8(EM%yH9Hhs`;&}FW+8dB2Q;Ale#h2k!79Y8RX_Zy%53E~ z>Y~j-_v!>n?HmZ#`k#co%TC_ON!x-G56KKXpIj&U#>n>riVt&st#g>VKHd)#Gn7fM z0#uPHmjGWu0QHO7KvTU*@@=m$J$FM*z?h=CjuqNl3B`2a4DgfqFj)QJ3^(9(4osU-%QSUOO&{>xmN}U-x zH9*ul!G{!}KbWb;LlF1|IjC}|;%;i9`7XTfj;Ix&Wu8?}sRuDufTr|H(T(tUHd>1u zBt>!%`nu7XHNM!*u}((=;3k;muK|b>ZfHRUEnCxO&VM36F$SJIcD|+W7D$3Xrrg_#a@P+5F+eCxinU1Wh zc7VY$ddttT#e{N=^>Nw55&3TZ__?pR({+V{d!!YGgRqJNe#*syHpa8^#B2C6jmJ## zIb=QasYhV@APP6l2kg}<-+`+%^xWzEihORuojEWc2A={s;f@sne1y++X&`j+^}4#y3f65v{>c|Un_%%X{ARYW!XolxOF3tAcoIceFe*v2W^U>fu{^jS|b!$urK&1=6p1g>~F)y`PC9 zhM+%NRb4WXfpm`iKs$?q#0KxS?KHp97k(0&&$_MR$#LIw_iALSzSof^o&Fy5xdhNy z2^f0=q+cBS@M}y+;mR(j@C?Z6g)lneR<>6C9^q?qOx}hFbiEfvGbAQ{kz|cB!jDX} za#u^Wu(YRM6}ht@rSqLuq0Y`Sde%VqdTsLg$$@*hwlXOyYX`Rr`3(}IF(HZaADxtG zHFi;hXTg}^f{&$5?TE=Ze`mk5l@q{Od4=377#a~Yvb7k;&xk^>k)qg!@;^R02yi@Z zypkF7YlU19HlCk*FHHeG(k5L0yG0grRFq@ew!=Scy&>$iyPMO@X~I=sAWhXRqP8I5 zkoEqnM0^oMrtI5m_7+p$+`O>z^@F?&nN7#qN2`-00yuVWm9jn`sTuGQPn&e8NX=FR zlIhDfHmUfgobKnq%58EGdJ(kys0`yBdak_C#iT?`LO$4f>qNPA^q)_sQe`mFhDKAn zP&yhu__Mogk}!U~ol>L22;AvwVKIN0(`{wQYc>-xtXxzfb0uv$Tc>bh8QdofhCSx! zfMmNnVfzNgB^8tKg&rXH>_@8;N7&)IXf)TcAz0OmYI@S_woG`PDNfL5@C)9X-v?J2 z)yq?7RDWgBKTyA{>ybGgub`|gqVUvUmmv;b{rcdG7JP8iQmtT&>jU~GuOXpwLcE-# zl)_I8g@wb3C*`wf$>O|qQn^GeqBHLkR3ro!p=vp-;?Y{;q=W#SQ|ONk(aWOo-oy!i z~~4%cw}1{Fm9JTbd6(Kf{&bh(TRK%X|f}WWz`NxS6}mx#E)VKpZ^iM5X!)0h-z(Q z&@3R3zIeuieqIdl@SZqE)?ZSaYWdCzkucJFPB#8R)lfpAd|&n6x@gq?c5Ya(ty*=% zkiyWDKcV{ht0^6}Wpb&ym;7IMsqKH;j=7!{;`oHt53a*>x*jn)Zv+I1`6d7nsa;x>K{p<1r;s{NW;pq~~CDMXjD{uMP zw)Aw3zv6xwXNyFeDx1H2+y8)Q9ySitDpY0c+G8wAtO+zkyS&tRHN9E6);D*P$l}WR zDAkedkUQx_b_}l zbo-=@_~{G-_P*<$$#=6-%*`h!^Df909y9bl4nMLx&Q$y=U7oyZ z+6-ug=S+|IUOq}#L;q6*B?G5)CMkMRG?y%ee|vD;Y+}Um=P9@-)TYjhU8$u0NS=(W zMp5He`vrtUq@h0|#<(3}Iu%^PQ=o{5(=U7wV4y}xFj1hH14qr4MMo_vAyacyOD%_M@D@e(}kUmKGAMsv?8YRlQ z`sAs(kDvE!Qty4;Vr33W{5SrPIZhA50Sj%i$-hsEYLzU`-=I-S&9)hdqm&cWGLIT6 z-%#u}_%qW>_pV@w>Txo{=2IHvtRb}Id;vCJM$V+a;hZmQ`TY1 zd?v8#e7tf_i(h8GhQ^r`MNFp60LVacn4cb9)y?5e$lXW<_-pdSHc|`QWu%*~Q|^{go)G}K`psbn4);7HiVyqoN!8g?*#D^R;&N~#WQSG4Fk z;!!9YUJJC2^DZ%t@JII*hRR4bE619mL{LA{QWqeY;{cZg=Ooz|)r4w5Al6I%IdxEX z5VGwaCwSd=cX#F>fN34|ZIQ%7_PXSM+t9av8*?rOZ!)sYhrdaVMBmda348DE=G{#^ zuEoLVTIMYJ%|S0Ba=Eo{?{Yk_*JV*jQSbCO4U-(AwKqSvQ+2-SM2!yvAENjgU5y;y2Suev@=@t&P4LUd1LREKTzVgNpb(yf`GbsL>yO@a)| zw2qqI_YOJPZ@sZ4Z!Elh^#{&>FG@QN5S+Y}aGhqiHgGEv&2Y!}W|!A#D>xv$U6lf{ z1UA90k{9?y%Lj00B0IM4)=I8hmT?g+6j!jZB?#sQUqkEb{jmm#@%kKY5Z2T1)e+6O z_P1~Z!F^5VCGgQ7^zhSTO)#UcL5E{i(^Ri;#?r-C=LRHNP69T@B-$q^qKV5B;bgt7 z@W`fxEgij+!f;(#vmT{nP&qseqds;JLrOWJ9d?)*6oM9!-IhqglXJSBzKw|$R9B6= z;3|*1p!h#ay##w>R^CBVP$G{vZ3L9Zavjn)Lb6`j0JUhy%7mZMvZEIq2Cgmo;YJY$ zng+?I%y~)35lg2h5?>JXb~cB9sH_V%e3C^zZx!nm^c-0;*SgF=PhFWCH;>(IgJvd| zE@U9`=>X!77cq=ugKhr z?OIZ19Wro`w|~|_>7hJE04_dc7|ID6K08-c1xf3pctDR|Z#Nga_Id1*HvG&%tcN`) ziBqT;UwBfogEz{zk#kIsmL2 zhz-#ZqJfV^-}=g%eFh_y$D>;Ly(Di1YnI1#mrHu*Il9UNzDgsi7#C0UZ|QEj3bL$H zW=^_dkY%t>2wAC+pBk0(DapLXNBx^;N#|s&5Zz^i%2EmhM>6xp9J7hKk3C9YgJMb)5B2=ul-AS4+yNpbwAGJps~`L*VF4oqr!zjnuh{BycFhLtQz>zTvQDD z>bsB6Z$no=9OG^uBzsD!9cp(0&uwk~Ip^>eyW+08s+>&T@#ufe?$h$(W6pyD>6Y*E zahYDfMER*2mauTD5bNgiGiR&MvZfdHnTB|@ z*Pi&e3Ds7$O_m~ILW-0dr5c9ilWH*P;->?cpe0Y`5F}ufLX0xab9Y&)hCFh3_i!?i z0$0&QRgDyu4&xxljbyr%!=7R*HP!P<2JlH4srI+QvySWrjsKU!Qf z%tKx(N!@%@r5B6M9F_v8;!JEeRZ+(vH;f`n$|E`$g_Kp4r*8uo46 z+F9O;TdHoCiCcJzX5`B4pj6MJ)E$L*#+|IRyx3k4o^lv1kOFNG1Pe4YzuqWizp28# z=gg(e3g3Q1*R;Jyyc+ORJ)X+(TwDdjE++ExG0SK~I5wKnTUXL+hks8KlST!lcGZUXLm_Sw}1i5%d>MamWKLxuKGuxF@tgA`@v?SD^%0>8u^_SWJo@)ua zW=piqYQ4xJ&zJ4af!U%|F=tJdk40!4^Ir&?Q{Fj#s8Y}R`@$FeP3pE7{dl(3MJ zU-vsypW!{b2PVe5+zoOjlKF=oeveq?kTcM$4NNgUy-x-kQqSO#W^lySv$OwcDmX{m z=U7WE%x^zvNIyO@Uk#yu>qTfh;>(!NrBEuCWdn=or~Moj+c$3cG0B!lQPPJ z6o*bHc?k=n?rA@IJ~(jNh*6KDdR#S!@6M{^_hnsdn%l=LlVUja6;57Y)hhe+mpQa@CyutWkj; zqXOh>lt;Fmd3X_$?Spy$hp4Y`Xgcn`9wngy5+X_?As}GUDIy?Bhe#@=!syZ4mrz2G z79>Y^cZW#F=-8xtFk*udBVL~O`TgGaf4KMax#ym9?lI8}vZh$PZx0G3tX#oc^w0EOrT*JByipmNh}(9sAj<qgy zkQf&IvgRLPJM8HAIcDmBtxvW+o1)&;?3c>+aL?=oXSI#AcWNk}Va)Y-;QDaw4=-rRY1wKR6pc=GcR zaE=0NC`}^;K7P&~N=#7m8M5K)ngP_QIGv@r0 zYWn7zD)J|kNptS04jjR=H|QVyx*fNr0Rk^Y1aA&RzR3E7_RxWBBjFk_*rY2wu&U7+ z%;*_ZP3ijh#wKU_gcx$LZ#gG*N&Kmbl+X$89{-2%xAH1gAHJ9+y;E?`4CPJwoC&-- z48FwxT=6Izl(qfsI|g#8tEqJ_jp*FuHn-{cOoG?SyDGXG_D^}*pyEQ0n3^$8ufS_R zxKhT%G~$~nOkO(syj74W(K~7haFD&N6$sxWnUI{E#UjyC2@v8;rvC2B4ts%;@fZjt za*-eDS6hl@1RbG#i!w>DUz_Y?!*aNDvK|5<)o`iL&chSQzNQqZM}8tK+fl4{Zu9d^ z^DkrjckhmD34+S$A#t&=?dI+DV<+4^gr$-|Fh=emf5@Tr&dlUHRE;eynI6Rv{ca|9 zyV&wUAPEyq#4HU`>jr(&hv%G_%ez`0KA?1#Z||f^@G2Nmn!}D*fePdEmoDztY_mFf zC|_h%A{ce{$5uQtjupAKHhyiBQTDl^<=fZ>W+$qYvBvd?nAak9_fSL|i0O~3vwulk zNfa8fVWf)tMH`s2C2K;Q*P$HLgsl#oaLYG31hktypxoww%UA(Anka=+dHN|SV?p9UVs#i`+PK!b6tfO zKK+-EA(sPPK4AP3yjtDUCuyC&{ogIr+}vCM6FadPuGz-mA_YEd{1$OiR$1s84zDNe zrQ$KqB+PXf{vNE-hd@4jR6O%_4wMx}%`>f=&-*PnAYtN;O+FoxZ)pI~H&zVj+t9d5 z#e#3-;Du8EKj9MQ$Xgl)z|;M;gtNkXnqnm)LZA?kd|evxGvlnifEjuhMYZZJa+n!NXk2qoau;0I!tRRbV{{2`UTASl89{%Rr-)a+ zc1AVuiAIz(%D5Rsr1Ks(JgFqjLB@5=`)FE{%L`g%zXdO)a*q_)K5t-(UP_ShS&d=6 zz|Q8SWy$Z4Pf1qy-I&5~wi~2JJdPix@BXrfpKvJJ#N5NJTmS;J168QOnh&OU2Ysbe zyahYh&c1Sd`UwrB<-n5s(*{Ljgnqa0y0%T53!UBD_eXIONQOk-N;WA<2396{a_sk{ zQ@!4L+BWs{lgCxbpa0uip|HDa?6BiTnafr)p)%AT8jYwgtnGf!DeBT$=mK_saX1&a zT5@{9>~?`?5w_*bY%dwc&Zk1t<|t$8{Iq&*$w}_;guDHKD7a;YEUm?Vg3BJA@ zrL|c|X(5&4RXYQZTdvRz-{Ng$!kOJMjbB7CK_Ua-#K2+s%ugC^Zw>ZT$Si+baBv5c zRFVHM2f3Tc0P|+DS9A&<4~*@dWu{B*DSb@z4wyBuH96WWS}h9xA({b8zi$fP;~&u` zvZ}+KozKpNF@Zv-nMCMm~eFp}9dQqSqHv?YcVVfV@45NyMy%X|v1{F5bkUt6EL0+Gskp!CWRX z1(polTNgvDbt$w$z;KoE>T$GYeGn`BdE4Cm<%|@yBf*p3ML%~dB zG4<>l)9QtdmX}v_sR+8cRHlpsYtQfaU3rm0e~yCFit!M;9w9Aw2P~cGz1RJ@<{x? z6u{5ipGHv50cqPdcEKW~gpn=NbtRB6N;MP@rT(8rvZvtKa4H?-%L{DLVa*O)dk>Yp zH8K8wznD;1(dyMt`H5-E^RlZs96naMj%TWFbF#|CEnb4fYhCMG6;S-tG|A;$bt#{M zgXG~6U;bUbAKg+7xw1n#z(Y*joqbzb*8Jf-0fjfBMJFE&sO`TlMm2m@g|Tp+e47Xs zYJSr3yM6o@Nu5LP+r-VX0UjD<^uSuS+ApzA$GakJ z18KibmZvpMTm-;hiGEyU4CJlDcwbmV^YuniAYy z4y?BayUNiDpC*Y3%vYTaOvctK)nR+ALG-QqmZ%@+x#^MfcJg&3ko>c{0kaYJnk*nE z%R)QV#Hi^#J8CjV@B!$#Nuf_SjwsJ7FzdmkK-goGJ0E5M1uQ@wa`|m1nb72Z`yPy) z6|RH((F%2GaL`QAls$R-*!cl%0AdbwZnc_-$c=B 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

F}B`Kp3(AY%9TTF0Yw2#=~1YU9|b4X`rJ*QamnO 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

6Wlbg^+NT$0cxS z!EzL@UV*AAuKV3@3{dd++b6t%^5c&`;^R*~(QAmyWR@6{X|PU@Wfs|#Fm6hrG!Zt8 z4abR>80Sz8py4%telC6alOLSn@#W6D?y`%%I&09NL3-S|=ZoF-KCUKtS2!&zN8cjD zM`QRS?LOyLgXL~gA#^xVsg70XgV&{NR-#JOoNIf|04aEEG~q4sWy_Xf?!0+=mwB!T zBwy^n4%8bZ(s|lJe%soxL%0)oCNeQJjP-{{C67%$F2^T-M|7K>j?SGr>CbEO&C%O! zx1IjXW>!{~rlAG|I=~qsZ-(&xLPl-}r&k?j15G8j%B`KipMlXjyFYVf;-4*X{j1bp9)bUvqZi%CM_MAvII`gX{SFN$LEq& zKU4rWjZAGeAq)r}Ql{c_jUN*stSl=+MM;s)5(ztvU(Jj1ho7X=2&c>SXM~&_OO>^A zT2Bs{H+K*p*3^r)hGDEXftc`k3XCp~WpYt1Gd-Pu_3?PFt(IdviqzB$o%N+=W{D8; ztyEF}sz1qNGaQGTT?hjxi0=BKbczTdXNFa>bmnYPjo7P2{A%P3!F$O`5uRNlPV(e~ z72gyvU%iG=!I|o&DZ?Fi zFnU9O*bgtLPEK*mj8@LOf)3>z2tN!FF@b`kKQDVI}@Qn1Bc-BwZ%$00000 LNkvXXu0mjfj_%RR delta 37084 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 T3KfcH00000NkvXXu0mjf%AgIw diff --git a/en/application-dev/application-models/figures/stage-want1.png b/en/application-dev/application-models/figures/stage-want1.png index 09ebc69170dca547c7b965dbf62c1a4df978815f..558f0a8588d7785eaad1402e68d6ba60c3118f27 100644 GIT binary patch literal 50099 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%0Ak^)Oe?)IH=j4|6N#+4hAe$sgV0A~j0fU+?L9f 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 CJFbTS literal 51697 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 diff --git a/en/application-dev/application-models/figures/stage-want2.png b/en/application-dev/application-models/figures/stage-want2.png index 3c5358cb3d98f8b519369f8ecce1964fd02c3d58..72829adade52ee11419d726f19e218ec4de15220 100644 GIT binary patch literal 43858 zcmd42bx>Ww^Cy}FcXuxC7Tnzl?oM#MKyVB0aB+8c2wdC)!QJg*!5xA-JihPM{_(2b z*4x_Ms{Ng+uG2GTrcQPDr@QCOnT}LZl0iWvMEvyW6N;Ryq}r!XpD91+4IcKRXDPsX z?c?^@MNLNh)2~V5qmKr(m6)Q~r%&KGq!$yIk2b;&SzVV;pHTb%L!VO^QHee}B`tL1 zEEN?$F?{gwpFW4%e1iVqK7SD52YvbkmH+t@)W`kvfBN#j{I{oHMDwBk8~>jPpFRZ~ zZ~#Ajs!WrU6w~lDI`f6gHxW!nrw@yPor( zYdxpI=e$ijcJI?EV~ zVhyPhwUu97xzrauKM>Fa+X+#uGzvKQf4;AzFRwc&tOoba!n1VmcC_w~GJ@Ur7?||i zFuRC&OwXQf@sCL(3{b<(v_D+d>N`hyuoo`&VgN?bl!%b)S zg!DU$nxh@IyIr0!Z-T#?0^xtvZ{B=9S-@8pxDvd)V;L5+EG10Od|ArpPhp>Xn zxzJ)e&cnqP#l~)NF#+Tz$ut)sXnu6y(K7lbqWN0h0luW@QirhS#xfAau@rkNLuHhY zd9rrtqz-lmI^B3;vgrqbln1gh>(bL;-;*>nRA(ieGSSS2uH__kOlk&q)CuTPDC}Lv zS3HDKMQ&8GJ!j=S_q-0a@*kfE6UzpBR1jJ=f8QMO6$NgYyxdrc3|NRf2>U%=f6sT^ zDb*3jM(RmM_=}5_A&zkyOJO5rK2BgEvlNEXN=;b6HaK%!%sN75q{U-39dO*QBL{=S zSWH2~4$hfjLx0B~V%H;QFYO#9sCO%x=OZB}Z%<54^27wjo3%kOCPs%~$@`D=cntee zm&|!w$(dKi(%n?Y6z_mN)q`rd(;F%xist#5;xn)aso&ZWwUi#6EeV>%2nc_-^R*0{ z!T-dS!yANcvbk&W4{JBqTNlN{ULZ=*kfpZ`AITRP+eT5?v1TVcO-y1pBlkJ_9=}pf z+3#x06Iq^>&_C5JU3i49UTK|b(V>-+#!3}922sn{m#wq{s2Y1$wZo3o+lSo)SM+@s z4`Ube4Mx~H*sF9N;j2h73v%XDfp~LKz)7B%7?!AN5yV-spB3FRW_p0CX^a@qr`K0d zcmP*bz@GdOdU_n4yW7rq!*`H&_X`g1MW?o@nw1sP3V&`hNBey*+`pu}SLD2xUD`UQ zTfHK=^(QKasZwQFni-5UHk@=wFmjHHP#&$sqUV<~emh0N96k&k%-I4ed<&-PaTcyr zyIs@f3|;6*3I$8sXqay>*D^vnx!@5@*zYO~poXhz#}plgT(X|{iUH?^X={eBLj88m zbK4qiyX8!S479aPav8lQ`-Cs<7K8J$x5HlzPn?gXkf`+WtnG zTvN6oXFFxDrV?3u@EPGn)PDNatZHYa{A;1T{bjx2p>o9dqj`IXmUzZtfp@;NX`Kht zEJ`#OXJCN-F~eX`0oYy<+hiX?#+X{M*_)vgrG48gC>b!?PrI%*z*+ZA?;A`7iaa4` zvT>$DVevTf>pv@NyBMj~$cTi-%ByN3FG8Nic&_x^ajPo|wM{{Z#;!{04DL6=sc#Dq zZ68>!lI7j2Lhx+1>bSAuwW)VSY|tz?3jI{kXl3)5!!fi|$LK}FNPudAw3I_nPNvZl zV`r}?aVTCFocsi%f8b@%@$b*?Ax0y2mRSA=<05+$ z7@qYY^XEPK=nemq)k*`8BD=x54L%h_^N;bP8-^_!vc@WzH6ya;Ba^X@HKl8AS}Qat zE$*_~+)AJ5eXCxZC^w?h(%o$k``hzP=}QLixH7k%jn3YhLEA@-GQvdMG;`X;hjY44#<@WMQTh|q}WKpu@Sg%wVUp@jH`Oj4~&g}Tg$XeeK$PqdGf>y$a z-v~7M?dqwGPS78>p^=-59Td!+JHgfo=1DtL%%db-y{xr>3*g*(2#_lTX#_zu}dpdPR7CgYk zN2y8qJvmQlXa-z99tNh5Y~DL;!?qowp3-PmHx-k*@vkY1cw` z*q%zbfYaSL{ah8AA7VzmdV~|^-1FRb4n*d9Pw|Ye2O_pXJj5&gKx*i9O*n&&s0nv1 z1aSCvc;mdRaSnXsXVmt$nc>H2@_m-bH z2!cJUZ_`t@2;h?HL3;!f@Kt!ksUWiUvvLq~BUbz|c!E`;s2bjEN9tRAxSn(FaK#bb z$S_UhXg{8DFp1Q>T{8X3?cZde8ntEC^|+leuc!M`Vp+nk!TfGIir=uEgjWOrUk!Dy zH-c#MQQSfvS2Y3KVq;hP3Y0_)tMp??F%MS}j;7(wAXB43GA+LLaMt)REkVK%G3wrm zICj-p>2P7EyIiH|6%O4Lf2H|&*3UsUn}R@DWpKOo83SoLbDDW2(*$j>C16#KdpcGp zIp}J4Mpo7e~UxRZO@PtN8^tZeUj-@mAG+VyC51MtFS5Od@dw5*K^L%-E!gKv5 zLJ`eBfWvLW?(i^CJLD$2dI}=(a>dB?-;b{Qi6Lb8hd_q1;cJ|^T0m}FET#bY09SlL z@D?w{YjPYc8i(S*@V?i5qz7S9Jf9X9w$AUK#31X_R)d82CWI-c1m4sN;d`=|9Zm!( zPL*69EL+jX%xpe>A`bUtQr7}xl&EB?;@XPJM&yZh9MoBflwrjzSX!(MXq@6V+i49& zEG2#OGweMOd}*~{qm-h$MCDj7atBE%wS>4_%Yg#yB|Ct&YhgwNpr5`BB>&buk!g&! z!b}{jnUgXv`1MIW3y~0tahg{at=X(O5yhO;PW^qJ4y#>WUWAL_WLdS=L=a}gQrygz zJ0EqH@)AB3)qbTjviL_FK@M%I#&6Sij>ejAlDIT%0BTO6CNFB5W5fJb}m9+JCo2bj>z5O zbCNV8X(%Efo5D1-jc4qQ#!DEZk33D?+F5D=1po_4qDEY}sfox&De;QH7K`cvkYUqXi(|oFC-35+B9T)D2nKexw_%=9&WbQ zzS&?S{hmvQ{1M9TY+PvCbefyP^+d85F5R?Skf{E#QpKHycIQ)?S=)ZhUJRR#Ayh3{ zSrvaW&8^avHIWb6ypJDLo618%={<>MOQ|%;!rag7!r--S0|-soJ8j?d}D}D>#!Q02Nntc zf%cH#4l|uY)#Qny2tNN?4|A3dtSVJ-GsL#TD*>yAaVFekFF3F)=FtUn!~0qqz07Lb zYqi}Kl^+hka}6fs`?^Vvoem|uR8uqSi;FRouQ$-0CRdBEM35OJlagwl2|#h=YN3x#C0K{Qq7CjnI5 z#&7Y>W(BUMUaD9UuF~!@GrJ5ZGt;ldwlcEquwm2UoZ$tXu{Gvt8<316Iy$Qo%2E_w z6mz7=q>wqe6l=KKB%2)sFbuO2SIr`wa_46X+ZkKvbaes=#XGKpq5MYICD42bZkcN% zLam-;ahY5N9rSEra6HE_j@(?aR)V{)mV7)=Yg$sX8bD+berZMEhFZV@@};Dj z-=*FjU$-dhN73cfaYP>Vaoh+BVF@q9a}fs~ww+jxU zQx?N+^yBZB&YOr}wt{@XPn740?6BaweK`rcDBqOpdNNwaSb3Y#s$!kkh@%a^tD}|F zlo=PR zrOufhebU-k?CI}6mi)2J{}i^Dv|nNUADe$m>K=$F7E0iKf*a=$YO*`6p`*ZqYl@tZVe>YVF73E2r!7^XFo-4yR!|Wh z)w37)9LP!dybOi-@F994x3R9^7#}c^)JV9nTKl+O`!46#tNII`>Ud zmdMys?e{dy)vs&~P#Dzp+|rvP$&AEYQ?jnrUdy{o6)CW)J6XUA&P)Zxv*cK_n9PMu!M_57(B(&JSI@D`tAyWhH4SR{7pa6{jl+k~_j6 z7wU>dn5h=Zml?y&6qz9;f@b>Zru^{b@R%tSP52mJ*~X5c?S?AdlQ2B0zt%JR1$Kla zq3Q)(#|eM&adTT)(`h%M^yY{BTbxrKxVD@s7NOrM*kk+w34AU>_n3h@<${Z=HHZ}9 ze}rDU8m72OTY>cufIH*E8v2?YE^(h7^J;Y-2(>>>jN)nwHx7YTU1~ZY|9mf$;Mgki4 zLtb{GC$xChy&3l}8qi_|PgyaKPRds$qP3;7;(E=L1q0<-y0C+Zd=|d2R%A_DI}(Zd zz|%%_3y`rWWfgQvoQYVW0%ijbw+-XZHz&{B_)ET&9c1fr@cnQBZ{~6ekDZ=l7Ock# z{XC#*1cXO0EJ4?g06d%UU7I-1?1OEBYY0J2(;DUMGYhCfQt3Yx^i%-NCGC|(_5!r& zZoznV0tI3_q;o-D4EkbcCq2W_RKP;9 zJ2iyhhe^nVD(rJc({98~K)UZ(GVi_tn1Da_pPW|8`k3)RJ4&nlB_`9!nN-<+n0b=l zs#)AlH%?W#<>UhdiElhx5Mho+sRtCfzOTdmL%UwDgLu7jdF`#i(%9|ZthMGsY3;S& zto3=uqV*YEf~?HS1bNi{bA0q;Vi(34%EJ~NU<7FNN-qe%F5wWj<%GY>+}mhCw$ z&ScnyYj;F2Q>tGJ=c*1t6k8%{2LPK zg^E7Prr;zdETDlF`~5gk>vTk&rUTh17mn&EbRWC}2K*%p-KS&{vq51925=*5TQ+>duz97IS~ll`4S zr7m#Q>%|Nq+~yX5B_L1%y|#GO8>=|{s`-yPJbySLn_?Cuf%@1?Mq!f!iX)V9W~OGBZcgPwu6UB_v-k9 z_nnTBP@)$`M-`yEqWiA;cWpKyg(;3jKV}tIDAo-scwc>hM^eUZu5dsHvI<86s|sY? z-X9_zDsqL5t1${67}MVJLfYSf<5|ayje1HB;cuQXVP<9;Fr$pVJZ$IkbY1WkY|msn z5p35xLec4T2541ph8*Rb3BpeH5uXq5f)b5-#n7EzO7C3rtE!;ToOoPLisD>!4~~#& zw;hgOI>K>R@8vsq^Q!u&`4?m8z~Ap1)~iT#LNo;j70EA36EI1Bni7;MWP-e01Blw7 zss|_JtYavbIKKjw7#Cd{V^Pf~{Rmjy+MV8x@qYK*e~pd{D6GsRLD}_MJS8IOajgAK z61wwA4g~I8>N_7Vao112 zJpIMK`*l35RS47fg&aV&A)ql`6+xwySaDF1@&zQmAHq_&piS^iSrGa($R{4>}7FGPYD4bSCCbiAB zq}J#e%Rm{jEV#SQFfp4fJW(s~FcBSq#0`HJ_50MHTY12VcJ<)T^U2(n&FGJlUIr$O<+% zO7yQ?Q?FQM@c?>QV<76r)~#lo-3ZnEEy~;LJ#tR+U)H&5 zCQ$&6{gM=|Vlid95NlaQv>s=pp_qrkIW}6RKpa#XIu>MgqFj>?S|6q{jrmInJze6s zZe4ftzf_t8?Q5K7)L}<7>zW`6r%UA*(=@@V-YQ&GbDW6{U|R4rbmIV{cL4YwWcf^o z#lXIo0q>}QtkI;7;>eD$%7l_AZZZN+a#jLqzJEH=h8@n-`<1G2MhW~ck?EPwLn z#?>TyoIkkD^zl>X)=*2su^#;vZ{H{HXh` zYF>Imu;N`)TWz%yCZ>4Xwl=ssP&7OQW1ulSHRjmriVh{t_-i|LC+blb?aZFBT%@q+U6icw?oM+fu<(cj z9yzQ`u!K6#H~19cnOUwFbw~+-Y|G+Eulv9AYuKyHoCShxW*horftEZlLD91Giu0mo z@HA-kiiMSuGCiHDoR+8YPSz&%-kzn!f*iJK{xp9EsY0ehI5oV+2ia9o*pn047(*iQ zY|{<+Xf2_nW*Z-ZU08Lw|B;7S5t%3FsqjpsB0}f~_zO9>1qgGT2htwQAjDBel}^YU zlDE}U$b?D%uD<7udJT5( z&zLBhyh7@J}*RFb3p~D64>!s#R*w| zwp2d+GlBN?5Agh-KzUDNt^+o&z0uFZz_qi3OWwE$EQkPGQ3p{O!1WVqE*}a9tzys4 z$2(@!Nv*z5X>@O_HXJI!lElC^=5?IOl2EJFqR!7zTrRK z>#21_IC}&%L>5_%DtQ*{$7*0qr0W9_qGQ>#gJ{})p}%%SSvoqg53dbQZADLt1aL${ zsVo4roiiF>O4|Pu0LBE$Ed!d5oo@{42+seWw8^H)5^=Qqof+@KFML&-x5Rg7%GpiA zeN?1XB)%N(P59N0OVvwL%8;P!;i$SZL(Z3YbE@z)EYl^)j5TluTuv~OSd)%+g;S*< zsOZJVzM@F_Da&Y9^C#vXQKM-3sonmp&yivQmosFU!~4tWY1taz`B}d?Q}tcZa4c9c zvFh%hoA>p^3+X2)bU3jBcTvp&fIy?dg;>k;c^mvKhohmT&8UT}C-71uJ+JMSUu#%& z!ze?X{c?zJIBNejEood5E=fcZT1Ffe+ANI z*Ql=3_`;zJR-n*O4rYmuw;NkAgDMFoG1u$QalDZJJDeoRwz_(cK&_pm6QqD}RDyjp zEC1eTz2Zou+=Rz>WA$RwTdCM}Qka!lAwyqnhN^R`Ghut!$ux57h~Q7`oz5{!z&eY1N>k+PBDcSiN3C1aBSfVT))jg#t~sWujx7Qw>Y!V)<=! ze`NMX_nTSjF~g{34P{qwI*ME)5e$N@&UA;Qpzun#)IcF$wJ8{2pDAyv&aV=ZEe|=e z-f)-|kf^V?&5^X3XgvF=E5q1-NXTJkqIbbW4~Ua?Ki-;|ebC4`gXo-C7E+o75$EJ; zkGL0}$j^DB$i6AtgTHeRs%aFKYojw36s!RYYNG|O(ElY}K%t2Q1fz-|#5$`IpM#yt+ zkwzO(1TaVI3OOQj&C3!m-Yi^0-I8KMq2HF=61bF;rl$+w2&guB{6{Qh|0D8b z$4Jpwe4_mOp&{CubIK95Ub^T!7dwn^(6|aqiIkb-Dr7hYm1)(C3ioZr(;7F*I*(hG zdr0s0^f6TUC_yF-qxyTL)WO6^O{MJ+M4NQ{IP-IX{c2(&a8p)WkHVD=V9^rKMHDJv z@K-e+{xSnaZdzx#7QGH-qk24YbVJWou;qk$G?Tb&!=3X^d;Mq~)f5XLtJd_ zaj-r?PgtUrx_=`XYqdv&W?2x=Qr!K~Vs53#LX?jYOwOfiv2KXhYcithbm=0x;xg$X zBtN>MzpcmOwSRV|r(}e3Ey-WT4Jl3PP&~Ucr}Tv;Byk^|nMo#Ob@`G>)JQ$lojW7I zxcgUXvfQaUzGC8m7;cad4Q526`pT7u^J0oJ!#9p@1U)a-!}(jH|2#s^cOz>X7Z%K# zQv8!v77P{m}? zN`kU;p*mY`G39l8+j3?+u0aSSa%6%VIsJ(qb@ucY%4KwX%qu-+S!Vs^mOi`tyny-R zuf|!J@g^-JJIgn;rZUrG`ds*u;a+)b^~W2<&vsJ~bNxGc3^j4{Bl&XD#FU_!(>&@w zzvAhM!s59Bq5Z$!Dk6A7X0o*YF7Phh9vS;Qpq{p)5IKzr-OqNqOCt==ERTI0<_IwA z#)Kfbd(jMOJP9(SV2EWHIjG49Ek4J_jIT5(`^#z!m;IG$EbJ6b zs_A6{I*D3YM-n)?Jat6=%N``nS2uTIH#SKMOZK}W7{*eC*ec^##*nKG7{q0oGSqk( zmET5ATTKNh=++X=3c*9r3{A5h`lkuISCVJY(GTvPNw-0KT7YioYN{wL)*gnKsu`hD zVKQ$^`CBqUma;p{Rl9-3wFDy%%>wLl^+Yy{v{xg&!=DdBCHdH5lAt+E>?^`NsnXmu zsNBqU0=1hHWM5avzy|h`IzGp#v1!ic*}_jZ%#wvzO9s3u@|81ySfya6a*Qr2V{VI9?SGV#+q!UT`ac7<3Jd@TH{%R1L89yK!pEVdzm(RWeyQd*$e>omB#B>Bj??fHphmfC z8fK5Te|9-;VCBbO3BDVd@uI7+!rCIh(8Y$g@ItwwN^6(>byhAe_ZNlI(HT@4h{x#2 z3K0!~DPUi02%U^~*JPNrSL!Whl`Y*D&5kI9v(S%Vb|jO*b9noy|w1tT0|_z%W`-dDe)KtM*>afoNLl$Dl6Y47;C=fWoYB23S$;!oCzC`X|gsv)(&wJT+v^K zln5T_FBAV@OcH91KYCi$ZmL?B#peLz6{ls|`$6fm`p(0lroJ@IYQ^m_%n35E8=B`( zj6rN_Q8#LCp2QN^1xB)4G|_jf=+CQX#Hd$wblYL<(`jnE7i#?oL@4LDSeO#}B;;+= zLg)+F)N<=61Ht9>3o0dW9(XB z`Vc)>i=@fIZ(=^m(&UYfhHP4IBLri*`ZCx9{4aPRVU3EGR}d7imoPZ)Xv?z>%}dG* zl6xtsU(UpZm5DFV^xxG4h{~6+aT5z;Uw*o z&4-s-Rf_{gG>>n-3@IrKi= zqRA`G{So&}Nb#>Gok!A&N`XoSB38)$1UHv(c56{t02AqJ$b8!b)X0vXC|HhE*Wrn5 z#8YZ`f~>h=pyq=pvgFkC9y#g7`MCru{i}1}>)Gdy3@I~|2T7m1XBIcO5@$`+0pd^C zO61c)ev6g5`sBNL$3m17j9t^|8yxkI7WLFgg5!82#o=p^TUn2hgrY`4FV`eB6=7Zy z!0mGCjOjc6yhoeHbHB8Ev4T;sbEow^m6hh-bT?}OB?q~NNJc-zIwLkm50M3}{!Ttp z1T&yO*f6PhV+>@0YN<8C_?q`J3_ZIw-uhc)hP^yS*bf6l=QFRAU8?Cj0@O^`G$^(* z%J5=kJ6G2vdQ7z}r)mY}5&}CVf|wT@9*ZZJf-q&Y611cGm=&3)bQ2BpI@w2T-PsTh zfP~o$-Pb)0l6bX=3yGBw*+B7$8TtrieuA9$?V)ou0YPQN8|>44^c1xUTYcG>N`nr( zv&0)kUy`leWKi^N^+o2ex2MCTvUGeSRlpu5DT`$CCf(9cs|@;KAc$!yxj)Nheu#NA5s=wjpKr#sz7Nfg*6;)Jy;_NluDQ=<+MgF?To*w#t07F zI|fDWP$5Pygwb#(WJ?*GR?}ue+ZfzNX1X&#N|sUO?0Jys4sfm}@=8a>_gTv&GbQw& zITe*?#z`+nd*_4tOxqyLDn_}ODQP=$Lt#v-i)paYH1hT#>)FKd?(+PDM+F5>Kmi7! zWD6mohQHViBK235J;|_)isoSk!pZ6NdQ`_{$OG}jfoC*8lPCumlg>6z!f44xs^q!> zl07-NB%5fE1=u%<(de177KQEz(?skia%EAdZ7?&*6$7rU)^CO6qmjE^_>x+2U>{k= zpbW|FoO!4-4uJwJHG8vR^=<}ns?=+c5k-F^*@i6Q&u!I=WIWY76=IBN!ZZE%^twn% zAJ!0nHGI8XtLn#QrEjbkk@~=R@c{l1RmHr)*ZdV}g)tibtHG8A4!z<1;b8_{6HNU& zw66*Z4Z?`qExNc@i@aFCx&1_(DxoY4%X(FvnsN_W8c;o0bYV`gi48fTCd^&!6@QF# zCwLUHuHdX#2OVn6$*4TBdV^|aH*RY{u8>M5YU30&^Q%BSxpDw-J_=02<|EQS1vLen zv5dlyW`{_YD*&t=B)s_YS;gFvlltnzrwTdp_Ig6Kp?B+aq|h$Xmnb-lxF$Pu?PZ&< zdYu-$u#$|GFMQH}4$Z-}6ZYghBp5^Y}OsSEzjWSM-?mpkl&j7L^lxpU-QMpY6@k;ug zd&@091rfw#fLEoe#U^z)jl54YSTX!BX%DtaPihzWpm{x&|JHduU6>9GqQ_Xo&}lIT z-Xs?U1~H5i$>F7DB_ub=4_9S+a_QbYPk~AbebGQ-j(|gDLFZ2eq!)oCV6}dgW z<--6?$4WyB{(S7f=uqPxlnr*Zm3P%9Xrc4=dz2ijeVKQmeC#?e0g#6>bJz!(36P#ZNKyKBm5v*MBBn}vZ1bA-DTON~TnWZ2bzUmM zD<(W;ptFfI3hHa{rDR)_TAML=l)$`-UOjNr2AUOh^tiM@=20vWqN=$g;IrX@Ks z!u!b26wG(YiAecA`N+OZHE*kIEQFHUC4E_oyN!2yUmj$<5!oZw+eXYBNt5KO`DdxA zgEPe})pU6d3GreVV;uTb&!*9+TYprU7Os)=)2!#Y@yxDH5JJ7ix8J!xB`X>@%Q+i7 zX{cUHeI3Y3;_w@7@Kc4QHBUuqs;p^4X+Nz78-r(QKo;9PL-@}#1}w6X(t2VRr=jM0 z84T#$rCPeuAI`lqf{|ecVvd$om6`s{WSsF?X*v3y`-ea=SCHWS<6vyS zZ=b2nfOjFhl&L!nPp)}o`G(~$8 zpw)2e`({-yfCK z_r43QO1swE*^1L*6x+aaE7Wt!XT$6kfEvED($CXYv<25S1(-RW0#nk`|UQVB18KEj}Y9|wcUNt)UVRSJ69^2tTSjV&@zkSzyoso z?P=^3FMe6znW~o{DaS7kh`aT5vm1sMrVPn5V_|UAVwW(?l~WtnlIw}U^%4BtaedHKI$lB zK_qjBk-5Fs?BRV|p3>6-A>Gu@yu<>;Z=Y7Tel$X_5%3YmrUnR5hWE{2{;=Bp!K?Sh zRr&~_S!BTdV;E{T$H!>q&mPjK;YHMcCx`!gbIw7;s50_BISGAR)(EZt~Efho8CUx@gBtV_1)X}pUT^MNna zkcqZ+XGIALt4A zKct!eQJ-^_o_LQgdRLD90QgY8jn!`KhfkmKKCn&v54pDaEAxLs1>(Q|8BZrWaTNS8 z-hX)={r7P+y$d>K`v{D&B7&LOsx*VB;eD6kGTaih$#29T3YF>2`=5cObWXyC*Udf2 zM|40HZ{7-7!?4G)Wg{Vd^4m;u;dM8$ei-^WFlW`*+!trF8VMHmxqdt_@@*Nyx7uwm zS>2kn7Dxb(a9a)%U`~{6Iv}CES~6CW97LPx|DCk%=*i$3T%yY&SmNVzM-v=aUj2Fb z2xk6a)o3W2YYmc#Vi^GoY>y23+FcK@k+8R{bMBQejT^)~>w4a`~ULsy(*K37lQ zVx}&`ZTvg0&TRbcp5nGgP8@Yfj=5VzGEwnsep~4FBsFasl+N-;wK0{t?X&qiJfFw?fi34v6KvO{oH`=453a3(Hn}Nnfj@ z8LB*7{UM-Yj;~}&kvnhE+frq7lc97vp);Mw?Dw{bjOIt6$dQ%zvhT$rpGQwh4XQD_i-A2)#m;b2u^ z($G^4iO%cAEFpS~G_l|1s11>Rt=>XGS_Keh9 zpKB|wJQu?zCs7qnM@__urgLhW6b|cEWRz(yW`zh`@i-1g*)|izl<}q)N;^HP$XNl$ zA$4vU-?RzBr+a@|6)_FhyB5Tww7kB4h{en${eUiSMA)&1eM{?rW zCt|4GC*#i(@ywIT7qfk?d(8kN19c8+{*uLb>E2qZ(dWOh5chR0QEaH6MB%Uau#4$J zQ&SvPrI+8?bWaf#JJ;@#P~fSV2f03>D0h~G`wrsnBGboCQQA;*Hghz83w%XxT}E~( zS+Q%30MtNY2IFr0$X@ymNrdE1%~Cv(PWWm4a{?n;21?DZl<@Xd98YkMA57*`n%J-T zxIZ*^6>G|so_`XiXO%I;H~aot!g7;6^PV-@#MHpfG+-xR=tr*AKUb5kbT0t8#@bEV zK(y*&b(}bqhce#(RBN>tWN<}}?01z?zWIt| zE)c`$JBYE!lrnK~hTl@5aN$^RKH5>wJH85g+mwyg{ssx2 zCEHtVYHh?_@oY{BXM;A-a$=9Ceg~Ka*6R*slbpoa)r3WPzZFCK7#(zGYy{VCBE0;R zgXz1f4pTY*ds?x;I=y)^X^qtXn6Q6Fc{27;yLs!3CXz8&`6E|o#C%gaq~rDQ7X$gU z8RTjkft>swmAATZDiXmt$hNPmZtA|#gcX^8c|PAp+Lgev}HwCSSNbs zjDor&_X(CFONYD+!bvsA_!Uhg*3H8YP4m3J-rgBgi*Y`oI@uxUs={D+R;gYy<4DgU zJ%m5bzbCA=3#p6eC)9$H_nDlFLM?Kf1A)VPf9^vx=d+OmKTYK#vs>#6brwN!Lr`k3c{|5sQw0SA+y%GFnf~h33|?v!<8y7 zM0ct)P&AZoNzI^@QYdNq_27GNwg0P7`=lSOr#GSn-%$^lVYxcsa}=2XB(PHXN$nTX$RT_~`K^JD0Vh9^Vve7{_)DqYYE(b@mJLyAaWFYY z>b*<*Bb9}-ybT@z$urHTM!SBG7TC2N(1-fr=Ur%G8A_5JF?V*|G0pGKUs`S(63)Iy zk5385ZFen^D_bSzaUi8Q!x|E$=07yu=NIYJ0hHd_FUURCORTF>RI|Ijj)pQhcaB*( zK7EGO5(34lZ-V~Zbg8!PcMPw+acKCI7P9-0?s`=pRmYKe%vsPGUE=(m>6q>sGSKLt zabo{*FZPOrW)#j8M`zz+Xwn7D;~{nXwf;+9B>2kl9gp%PPt?g6ivPSD_Dr5cD%D%N zgMY?tY;XP~t6ZT-ILV4anRZ?mApO>yNA5q6rtH_e1DD5be%p(Y!^n>p7yFHCuS zyNyG>d0D<_n*j`Bc9?XC*hTV#hs2uKK~C${C?gvyYk(;@f-;u(PtHt|$z>^f_x(S3 zTol**u6zVsBxGgwXdUw*5*NwNEUW9o@nkmV6`8uXG5^Q{xL*U)iO+1FOMCcjC$_Gn z9xNC0XZUXm+SC5m)cEZOOZYEm1Ng14GWf+3bS_T23|_lve2Aeqai;6{A|az#9tH1} zwT174@@zN%V(>e6hI%q(*e;jTOp2vxUHU9srQ`Ci=S3v$L0xrQw4{Aun}$)x-7*E& zhh_=>yGFo=sU?%Y?eD#Rp_Ysz&X5f}Fd+9rncd|9Zx;puF`M3KVWckrSkex-zWcW? zI!|;od7h};eg{|vbxRG7T**&71&)ut<#W2&XaXr6xd_8X&x+OEdurJC0wl}tDviuu z=)T{5h`hhPV?XzGi~JA@yLf^*w$my+NynQO#{oW^%dkE?zf->Q9R3dDU-zemz39Sh zQmjhI^TFOzst2gaw2_|tzDqj<<^{Zry`g3Zl@&a7FiyW`)f)fJ{cikk@S^DADVpu( zP!YfT!q$ALMrx}EYnrVnqJY#7!*{a{9jax9`~DqP!s8v2GHxUA_^)&$=}*{WS8hB1 z%gu5Sa2s3`)XNpELcmm1_wH0av4%uv^GrA-jd6s>*{y{Gj5YP@IuH%`B}}*6F7%q0$4gnk_l?wS%EK4RW#igjLFh^f z-|OEu(Ar=Qv@&XQYq*apq%H_`2WNTb!Y?2fuM>wdZZk0OyD#pUotC;zs>c)gjnI`q z^9~ijkwlHr{v}=XI7B$v@0L25 zqz!ezOU7(epgRWPppz(6SB7kk`}4w2xG43z-bTFN03W}@ch=`xk+{jp$Yg(nZ*d!O z%{+eaLS@|>v0hkl{8)4ESN`$-uS2St-K5$E2)DKfdkKEWJ?k*~q%Xa+te&gN)8Kzp z3O>&s)7O<~`9_5O|4=r?&j#}fhIiCT^rUU9u_}G-ShqCa1LSI-SnG3=RNG&j|DH1@ zT$n4D`=9j^seUYPww-DVq4F$;viYZ4Q`AJlxPL*HP7Hy5cVQ>JKd6^i8wPfN_a|xF zyQl2<39xuY-?Q*2cpY|OyUp1YTcY<5n#Dp}`J_2UZH^{_)39;FMlxfW&+3Is^ZU;1 z@S)*d)GIFZ|Dx?JgW_nzaLpKypdq+JNN^{(1=rvj+}+)S6BuT2AKcyDf(`EO?hb>) z?0n~(KU-USYO8klZ&z2>+xke~_w^K^)siglN@3)?s)DH2)ExlcJei0t6)r!rw(owA z*}6+;|72$vVOyT%r^FKHQ6pvLMWJ!h2yFO!(E8wXv*ticN3^3e(1nmV-7~}Acs7en zMeK;XH2&;g1iqBn(ZAmx81*HkDtZ8^v;o`k^L}*V|Ar~pd z?RMAUED^~4C4q@#vILF#+d_Y@jTNo?Pa%o(av>2|5SMYX`>D*cpthX>CDPX>L4m=ug=2D)!qX5xT#bSY zruO-Oym=+9PJn!fs6@u|4Z^_K3K3}5WTD~G=+ zln?aRVjt5a3pKt_PIM2hq7H9S@;tyreLnkgvwBUBD&RyN%2g(uvi8$zW5fR`7aMJJ}pX97e=EPrt}y*_BA`-0|U> zo{f}X@y2YTi!&Z5(A-q?b*&0X`YpW086y+otmHB>lQWPmt{G+$a$ahu}HO)38 zd2Ov+i81I*hXAY<)k>KiW$b#PL=7)Nzi=KiaO4XFy-=~0BPA`P&3iVk3!DJV*!9fj1`Ja~=24o6J>8?q;m# zs-QeHu8YH5^(B`xu34`I*8B2=9`JSw#<_G)w;fbcS}{XqU|uE?p-K~$>V9kulqLh2 z+e&nC)}ofHSViSJfUmpeTy|TI=Wg4y6ViQ>&!KE!83|xiM+H@-q{+>vuk-fMjx;5D zjI8}$jhq=CTJEoE2`QEfLoKF7{7yvnUtO$TeBrTPT}`sU8~LcV$X}9cNS5rUZ(r_X z78(I>(Bb+2I5B55$km!pH<+e4F|sOHCXF_p)d0CsGs8m6~}M7WQ)j)=SFOypD6}i-Rg31WL0aVI^K)T*0J4Q#@r|r z_1x;!V-hz@65Xb(+}Qg4SBz(Tuuac{{2JeimhQpdc_!xTYd~L>-u^)4Q6u~m!@NiG zGK;U{L#^(&ql5ZB$3!70YvGs~tu+sBI|N6~7iv*D+FZN) z&5_x0a1-ovioN7hfVsoGE4vqLdl&z4ky=sP5kh6tDX#MTNx%rcA`zmR72y=0-@?4+9y-Ij@cOcWqSK5q z^sF^QvMz+?+?&DkfMqZbO~wHw&&B1PHED0CLMN{8x-YYn%B|RV@1fI*a}pcXui8{Vqe5~h|>ohRz9&@C45DG$_yTQ7FFti?$Zd|YoA<3 zpiI2fpv0uO(zIZBQ7q{_+U)>6-^#pj)IlqD&^M21PF%kgbnH4?2;GMaj0>U)F#F;~ zn75<7=ODFgay~4IZ8WB{3hP{0BcXGWoN0!^@bgP@mkTuY+U@QgF4%GPsC)O1lXS4ZTo4xxy|gOF}@+F}WH3Gs1~$B?rIDFZ+V7RBQV0W*7`NbE77N}9h8 zyIdMTC(3V&wfFx~8}~1FAfI@mw%qZqkOtz(d%u?`L0GB)-o6L^guES>e5!k}(7yMX z&fb6U5A1HKA0Tz3vhp4&%pA`$Hh6Q|_I3t0{f`xrJ?`ThkueK)0M|i4BD(9+&siR% zof(<;J@;w3$R3A+wg*Fy>$1RV;QoS}?GOJtAbJDUi|*v+Jjy7Gr8zE556O|iW=E!@Z&{$H$j$dZo;oxSBmIM3_5Day z^sh0o^=<_Lb$F)_e@W5jhuW^4*(d66(9g;;6p(sXr}#R8N7j&X1hIG226K^Uru~VOo8Hr_}nliY@aalh%s+LzK3@G1az>)d||hbpdd>1Vr1*MCMErrW9vQ z1~4^qpEY7mgay_yf7#B^(sSoH+#1N)XL*@kr3l_gcpa2c&$u>F>JFoB6+7;ttKjkA zLHp7jw+M=IhZfvEGn7Wnu&_xHUe|=Y4r;5(;;14L6xoBXYBr@K76)!P9)$G=m0Hcn zZuMPii7bV)0!c!DVO$^VZ7xzT2Ddg5dW!nL>zuM`lzSPei0x~ktVUZDKW8W&r^6t_ z?d{-P@;NdXb$mCGda(WA2WyzU@7Ge{bQcSxwdW8q;tJ!-HM96)i@?rXd*69ouw98x zC}QV9Nv#Ff$`i{tN{5_l(Jm-QWk0kkEu}`9*>x?kk(ycMSqqqYm<){ypwA9E^Tc>Q znWfAHtnJNRsS@Si{v8L)g4`p&r53_uXD z?lpB;AC$>X_9+q?5lWJ8Xex(VmP|ji3=Iy|kqbf<>;|r+$x6rB`qV-HhA2UYpO<58 zN-5iMN`XTJWh8rpDzky}=+;AP15Dhb!1@H6Ngt;TQ}W9Dn|1+jGU=;wFgg7K-JWq; zREtch?Qu}xecE)cXH?XRb#sO&8EB|o)TQNp+66VrqvM0;bd>{gW3+Yv4>SDdEN2h{ z=G=^Wb%gvuK|PMntrQ}cAZxJci!189hu>!2D)DIdlnopem|D}&^wBqmeFg=S8v7^lpo_^^+WES)u!p z!pllqQIBHQKGZ^5-kCR$Z>YhBfSu2p+f1HXul6%{3}ir{xzne?86}gmY!U05; zw6+{0heg*G>p)*>Q>D)!Y%J~C0doRvK?8f+6Q?m69#ZgWCOdWf#E%pg_Bqjm=*r{C zU)+S>l+&|vYb%Ru4BMP^6EF@haeInxs`-cP!9oetC0E&b%{q#LQvNl!acxR~B)q`3 zKNEf%R!n%Q#~?3DxDbEbAz zCe!TP|5)Q~Z_k{_sBH$^S@S;c%LNHqp^F6P_?HE$<@z-6FIqUs zq2cgbXloYhnR0YFbnxh8v39iiz>M7dY9k0^tD^O+I|7H^Wgj&_ssA8y zgmC950U9!>a7AU#0;8{E;!=eC;b72bhm+cI!Gjt9b}e(FM}4({J=1kse46eSM%5G_|NNb0Z7igv+DY#Tr~ zu~y1d>S{OkrSFWIRd1foJB7?fk_~|}K-2C1s0P_7X9}KTk?cQ~(**>Xfo`JBI%ECS z33xpfs8OcZQSCUw=6RpyQ&Co_?XAh9f~e|%Myso<$sE>+r!Lq#HcLxOES6K>mf={l z(G+&beQzdiAZQmDmabIFn^yo`u(->mOmdTT;`csp=ek{SR&bWn z)zwvJ3SS2+9%m&$a`HizmRnDl<@M3&u|NwMYmJ%dX=9-w>hLr9BItzAiCtecfvW^# zK^kB;t{IxmI<+%LZ8pfmL#%+5J643iMb<%S@Mjf(>>P2w^Xca$=1R5HO$y0DX)s%sBq@Do)Ez+#!>i* zS*>#hgrpTIb-r(`fp5vuU4reFYzC7f>n(av**dnv{Eh|3x3Ice!@_B9&nH`VvGJVN zDk{lkH7m&`(Xj2oi8fBRg4Id+W_Fp@99ws(ajIC9DNy-S$G~Ljg5&Y_p>d%=fh}L) z@PWS#E9Z(6JLjq&5$77KUXw5JlI=p?eS>y&40K3TRQMa_88=*d0W?QR(LUEUqqpkr zmG-zk){7vjXdUvCx#>n>?)6@O(lcJdoG?=8q*^%H6xZe0&CPJ5M~zrW?o%k zD3>5kk;L>|+88!ENNBC1IeD5aFUP>4#cq5e1?Ay#F~Sc%q_(AVxjrxDGv>xJ1T0Vzq}rzj44I z_~L^IW(XuP#|zS4G(qtlkL&2@`F_vAhS?3v{N~18>=VI^VkzLw3PHda&APzb=6rgk z<~vN)r|v?Vvp`~CA!xOiK!BYqX7Ums**3Ke%Hm`T{%yHHtO7K0#^4XXisH&``vjneJrW?ArTWNf;e~*)2Kk+GbJh>OGi0=0&w%p-v1n?=nEP_~Wu7@eFZ*x}~5s5;L zsj^qXIOsKuOi|Mkv=%;-d}N8&-JRZCvJN0k9WP2 zwPWr|u`)D&s7$Z_ESc#>C~wT|(*Gg-;_|rax19RzcoVCGVCjMXLF@gQ=u0Bg`n?kI z-DExYD`5MwjfWku=fJN4*Srw06`5NXna8SFIx*b_;)_;yDc0>v;Ihv|+7{8nu$g0i zWeN%uq&lqMUH)C0b{sJ82&MO?EDvbhNWLjS-zQ*D9G=%5SB*1;-GeBzgU5u6M3?h=!>Hb-k&R+z~K?>R*g^if-!0@+NX~p-! ze>?n6KNO>5*U0B#Ut!Av8RasEi!AE=<+ejAoTjqBeBBFajCbQrIuvNXslLq1v8|_b z+iZO~L9*Vxp6N~uAG_&F;bzrVPjSSxB zsuXVQ%y%Ho`)|vTE;YR41-DkV$}b0wiBUpaadZ}UkGoU*uNgQehe!M zo^5)~To31ZdHSq(TTHecdxvwmxUCme$*jES^?bsJv>j+#Y5c;xY2VrrFyDTxUdjPO zIPca^uf@3K*=N3}a0i1Z3-K2>J;t);-!@*qc0>m9frt8|2GU=?sOsH+-RRpVhh1GO z+F2vf8M{f1fAOk(CKS9b;o1nnYP#gvgx+^eDQrBY+4}fJjd#LcJYX54zropKsre6LuBu+VysS zGY+&G1oCTr5Wc_hIZ z*)A_oi*2QH#!N|Qz*Ed@ZSFng{y6qyX9c0=t%}brHQv_JENJ1qmA8~HtdIL~J&nx7 z-EeCpWhI40u0VwtWA>2yaa<^fKJnHFD*m*!KK{tiv`-L(RNZ#?+-Nb$m@HU~varvR z{yJg2iNz~QAbW-e`4P5_5w$u_z`-d&G0B~CwCQS2Em6^o4DNf!TOcRCyXGBpeC$1! zuB4RNAq@DDB(6L;jB8|sY3q9Y0ewW{ z{hb-kiX+r=UDE!S2*h(R{5dz~-eV^2Pum@<(=^AuDVZI3c=B!7{;(^qO?@(6lqCI| z-@LgLHkxe_^TD0nu-EyRrepo}V0XPAnCGp>PS1xvlZ6{6%qyYe3~jjnumbmOYLfFl zG%kI>JR_oiBGg7d29obt(ENHn_<58A+a+tTkJpRzOb z4oVm5{S@tcx1P{X z1^;L@c*L`^d*GtVH%GlvIZ$9^4UH=v9pVgFwO2zR>x~u$1M^2lq`ZkZaUw1JUx-*; z_H~OGJ>NY<5h?m_2%2ENwqm z%uQZ@t_#Bvp^9P;;B$#fS^a;(_Idy}-i*KI9UnT z+CQccPd0$t%|}ylR7UapL-!Ae?zctO@7K4e-(?W?5Y1)TpK$$xhi}Z*1a=wfx>V(Q z-ja4ArBO4-F1U>GqM~)edDWg3njOaSFxi*fW`SA2q!oCkZPz~m@()j8_C_dZzqh%G z%P5YIsSevmmOi>Q5;(gb8D`D(MMM`kRgBbsP2rRJZU^HccACOt+0(Wd|9tGY4N>R{ z&UoN}6_3>C3 zx-}H+N+{#Wx;4g=|FCy>kdc&==5P&WR#A_6K`pZ5zDVJqenextLu?_s&; zq_(Y;OD8FlqnUkL`U0pzT5FN{7!2a)SM(0ucX~mUt9>=?`Vp|#5!q^T2SIxL=UpU+ zxdi*}Uql+lhex~juS&3xB!A8hQfa=jUT;SSfqr7 zu4prNVPqU}(D3F|W_q)Ayu?~NEH0yqc<5e#^VyA|@rSy4EN`?rEG=aIay*&)?+ehv zcZ@WB1*Ka$>p)2<^$%(=mF=;Uw3nt=A7I5srU3%T-Fwgm^kLd{woCX&!?~Z9t7(6? zy4lK2@|1bMvqtAdMwy=fQ9%5+v-QZY?arZ~SX5qr!PIFH+}X?QzldGokH3jrcr|2Ha_qaF++2+@1 zA)EIr#5(sl{j{fu%&zxmzGF-B{>(n}g#P*1arQ|s5JckkiOG9B#>SGk?mS4NV^dAj z8QQ*Z<&H|+O7DhZ9={pG@GTbU?|_L?GRxbChMaa^TXYNl2_Ed0RwZ)K>u}EKjwbJ3 zW;ZK`KS|zo6W4|=*E1$i;0~T#=qfB+C%+@fG#uq<+6c6+dQhl_ZXRJ|g!p$90?}Ji zTZMeT0zH-)ll}S$lKr;Hj5}*P#(KW6)Lo(bJY7BYINGzz{R0pnpxS$&y6avN_*|^d zZ+2@4GGjA(f9AT=i?}0oe}m3_OmaV0UYg6U4aqTf>{?5tpfWf!d@_De_cuxc9@vAr z9`czt_7pM%`!N%$EsdXdhmb1zh5UD{xnCFyd)C@rxWjF>SElMZ+&EN^Ic8)j2M&C* zl?T`A&;w-c#D4VsZAj>Pq~V%ZrFAw_?wH;*>~5{5eV}f7Qt43c|+E+0e|QtK-*9T?-y$3ZXu@5 zH;-RmgH?n8>%ND(3zTzYk;|~BK5iH|vsbMh$=FQco+B{7l(g^py?)T0t`mpfrGoQi zeH^GCVsGY8n!DYt>Jq|yMbtv|t7jAg=r7;8OIg{kZJ!!+o2dtEZMX<^-^AJv(=X>g z#qkG@ueOlgW-3FCQ*#4Wjm+WSG89VhlYs0qCcw>2FUwoXRX{5Ny=``}O&j@I^|Nj~ zk1=lvdt<|M=7-Z-$9wwqzmXN15w5Zwe_md zQ(}5@UxUmC z>+CVCa$|h@JPa--2s?ifd?xo>77Fp_X2k}DIj#3-uGD3x)SSm?HknbL6f1e+_oz`4 zEwxhj&!~yy_nrT0wEq%vWJ4(QzmoBJe%08V)h9WRYYeA- z+8PMCGpL3I=231oJSENJkm?C)3SGvt-^}EWZHv9cWj>quO6I7S&eA8y_?npH>Cq(+ zQtXz_TJ6|;pE2^VVt6^DKN7fxmAnQ$&CiD&<$ImSX3nqI&+9=kU=^yBLRSfo($v2B zuToolFa8Vy5t2tRXD@}98|D?=^Y7l4v&_e2-qT4(jc8RCtG-ZcJ6(~#X_NyGjgL{o zp-0ecQz#K^H_vOCzC&Aos0Qiv>EKcC{LxbYo8wTJ{|e`-{fY=G872c&YkZb{$vZqR zftkhOaBRjrYRHSc=yv|q+Khn}XRamgJQut&5o^Qlv^8cl$`mzqIf8%}HK+S?USxIxWu41AFH?U!jix0``&hk!5$`7xVcwYyBxFemKO?c)@Li2j<;$ zhvL1JX3vZ0yzI>ayMc*8<|`oUWW%cp6-3VaZj@o`o7ylZAv0#!hq3DISMh1G^Hygr49$FdLjFv*;)zBNR=nKkbL;Zz?l8U1@Gndr9C=Fs*#cv9 z5ODdO`aFHGg$cplcFbL7a=S_J?PVN;bV@q@D~bY&zMu@7=|FrLWMR54C)<@77rRoJjz_HEKIg3fmgK^GDi$D%}Kz z1Kh-A78-BI=NoVRYlnTU^`$C|=J~^UiPL&I>pQ0nty@!V^FfU6+{6latx@b#0tUx- z0jJHPfL+(H9S44*g;BVg%30~JU<1Q$+IBTR+4~q>SqbJV$Wo>JB%!LGB&QZ;(Ra zohf74ld@wY_)!jt%b4HM!R;+?!1#2J>!8DEw}O4~ZuwSrnb5>b9Ae-q$zj@K_t;)| zF!(WBFPQLX!2B{k~I(=g748Hdo!6(Z% z{k;Ee+nw;a#&I))@BC#dNj7pJ*wJFh%;VF}%~UTw72Mj?Ww!?ia(61$0{SzU*J{Q~b^bAHcMt zKJ=gSrr=sX;<)k&jY=T{fWqAN`P}#1JIYe>r~U^yp_mIBUs%EBm*k@BSmSiYJr)45 z-$NH-*-2%#eG_m~22tEDvTm4wsn*vnvZeXuur%0SvavQxxpZ2~60eU0+j7=x6zHfc zZs6pN!@TBCSkO?M6;V=BtOP#|2ry_)E%BNMQvM8l)>{_G(+x&pYI+0r!}hoN;%!{x zy;$5iNd&qk)}Xk2h3dRbT3ZIW`}==5_KLJP9?H=v$<~2eQ8IS3)L8h%%ta+#C9@TV*#7Ke*Mizvm1(65c^x zXfApJjiN8Pzo=}&qH~#k>pJmJN1;zcp2SRE+7wM4%Z>rLC)CJBkmGz*Lxi0hNAx3&kP zrL`P{|DgkE@5&&Wf~%65Saq`@bgTeX=c1YTxogTRRS_>SjN0Z_WPaAst4$iwE0dCIS`yjg*Y5gcqSHjk0WHUt_q0DKA}8u;Cr zX6YWEB&wtVX^2XMG|LYy$&~sPs2O95IgsKzbYqWg@<#$tJl(+lk+4Jqt_N*xE?>}- zhH6zRx*}l{pA&aK#IByR`l zJ9${AhaU;`DSL2sfT6P#0UR@cD8ubAM84)=gmccv9@I#z-SbxEAUZVEwzOFCmr1Vi zyQPJ$3j+k-CAaF+ydZdYoVax{YKi|XNLkH>xFlPBFjslpATQQVGfb&qSjLq z)3*JCPGgQSTpCN?se+}wfOhy@_PFK#qdPH%+P|h2#Kv1qc`zE%G9JYuj7U)PsybxFR~Ux`q`dOJUTq?!R8i1$--Dli zVzHX!KNmOTeu2?l;t}`dCv7AfNP#y2Ein?`;CE(`ZISCXU!%)bls;kCHO!Pi9uA@i zHT8h*&ut{;V^vvsu&q5t`K8~C4?A>+C2i$_7$Cz!?WC~RQU=oHADFW?xW3;>UXbyN zOzd&*#} z-9Ag-m+mX{l98?d{d6i?G#`2~lpB$!V2~W%2mhplQKqgj@9gz`V9Sd!Os74#leZbop1bY+suw}=psNFA zi1B{C@oPLWl>{Uz0_;*@2rl*?Yq+skL z{v@a<;RwHY=4APvGN?-rtCZUyb**hqJ35UIy@*7VP`^pU|GR| z?(AU1`0|lg9eRjTt}U`|+G;oXkyIy1oY|d!+wjx?$DM&bJ2%&W4dsFO{jZU_*G5c= z6Hxc;rUSqTo^cqGsqDoRyN5$6-WoKi_Y?#$gi8F`eXo1pe;U-}J{#>woka2aG?(c3 zpexSbVE69z?)GgNX;JUgAG98|=c{UDJFT@Kii~YeG}G$8lK*~v>1(+8ryG3$H*Mo% zv~IFS5#gML-e6T-{UUg>3OnGC%ZP_G+Kp|EGm&=p-Ju$)wFmRfCtdubm$-;vwtLq? z%~H2X*;%q($wbtfpa3vHlWDR#WLfhXe6!|ki4c+@PYR_Of8~mv2qhIh>|{bF2#+gYT z$FBu039Qw*!2~M2j?gK$wpZ&Q?%PaG_{s>o)nt(mD15!V5mb0f;x+p78VJ3XN)D2L zcg=8eikV}hdz{4+1FIL>-6ST7>T%eTmr{g_G4N^L`}Xjl1W^*8CjNPi;h&3gF*+O& zD*3bGIokY52G~X;w!+MCA>{f{wIrJpG$oNkrDvOgzzQG;O<)W`|0SfSIzsc z6u}^Z4Q_J(SG9=!2Z(u%d7-K>?5jv*tA3ZvL4;nAGbns3CyxBEJ zC+5@os6ugGx(Yf_y;AflB+SLH4c2)Ym&xJ`Y8%+Wz z19K9uzih=*c5Ap-tedKD=B+Bb!hDpZTiek@K5L$ctUOqYP-{5tP$7@?#A2nNg zi#w1aa$Cy{d0Rz`>T%Fn+WaxklP8ox9+TOUI`+KIm(61u)70mp?5mz*m0v%n55at+ zI67o5rg=L6=N4ZSHvgKL?vGy4={En`c}p}AXA;4pfRm|A%dGa@NgdRYDe*F_7Iz37fP)KQ)}1)n0a@>9ldOv3 zhm)7|deT32>Bar=j5}JeHX?DxkIxup@fHa^RBWK0&iO7V@Hvxccu&5_Se@%2cqsmt zC}ALRtj8(^d}&DT62Zihl9EWIe)op_ zR|AxqO%4?30ym1wIKIc)>owrmgW*KR9yG3%Kd_f|Sl`A5Ia9~Ikg_N|4o%*+IFeUY|>b?bglDciB{l^=Vt6zY&xhLe~ffe0uL zGfI*v*E0X$U-bWu2ue*-dE}WV*Q`Uh5Mwc#|DzOot%MkNYBQ#>JlfQ!h63F zWILa?F9vU2-0NQi;w7{5?j;*LtT;lll^37QE#Z8IxE?Sj1%%apjlb<-)V^U~#EH({ zXPapBaA5Lax(=`XK>XHMK!82AXA!P6xqRLiBJ)12PYS{7xCp@~C2b%{BpW9Np2CaM zj{@+y4em^9k8_P%0QRve@C01#!)iUpP}kVFEH4eI5PF#w>WkEWHj+zWLqH;N`Fy)z zj8V$x`{>fPiDuu$v!8C<`W>Dj`Z}0nXRiX%Wt^i`lqMX1Jz&#YaOG=`N2)e9kHAk~ zXoY}7Sl-lIl)e8yyp3(p|CFK(gl0~L!!HlF+h?EuiT(M%r(XQO;r<)|p1H*SL#TxP zKLn%voD*7rcSg$J{QpUK`QHGI1|I!sj^P-jxBp+Fk1`03po~F1mp|Z_^0H2;aC^{{ zod(+()id&XB=QWdru}%_5LZG6ZMZOsIm;S9h`xPmr>j$fQ3;E z?PEj#*g8CV-n>39``&{}A1}r12M^$)l5X>;ZOgCEZ`2F)dH@v+xN^)!>I!35=#Xi+ z^awI7653JpL%C-yZs{_nmU^r4JRJb@+7&wyYVSFqbLVbAg5P`vq7)m%T_>CbWrA6! z!7Zm^E0-{1?@joEN4gjl!2#YBk-oA!9xeZi61Aep1^bUR1q}Fqcw_(1kg3)N_N(=o z#dmDdvZKUUK3z+#zj%u$FVlU&P(UBKzaJBlh(dfqeCVJCG$rWC( z=`#me)vKHuQtmlXv~vrimy~$NFH~Cu(hRjvS@g6%HX|w|T29Wa7am=ckt=?RQoHuB zB@F~lX>AvAAHYn6ebw4e$#TmF?d;$Ll*tB>R)x{d_knX*Jq_iT<|x}`4h=%;VUFOK z38fLp3@`|gIKCg_jVmGu(foH6GCCyDGj~9{VeKdtW+&ThxL&V)HJcx;v`Ej4vizdbq} zFjiOKqhez+IUbm+Kh>!A3vM^-jI{AwBebfIPDHYKCa-Cu$mJatp=gAU>b}Ut{5mE4 zbx2VV%VPu}gXr|fG!^rcl1nI5E@O(KFWBXim$|dnOzDbDYN1(HM?e@XzQHY!g~U1D zZi?Z84!op9dk&C^ENFX?@->m;crOKT5C69KlPHu=vWO_|nHt<@kU}1kq#1cT$T20I zrkTL1f^DKYh$@Gg4V#En3ro)kZU6Dh+8VhlAt17HvKa%EWE);+tPyeft~@|##kf5L+%HNmW3YKRmsp;pRFbD>BPldw|w6opkh#{>fl zZq2{C$WQrb0Rb#j){pG*Jm1|aN}@qpk{%_q{@r``5>O!dV1BPdPT@NW5UJ4S^8{@5@=)e*HeSIhN_ed zh`Y&OrQ;AdCb69##jL|vH$psd2u95`ip;l0xVH@R7GhIrWFiATvd7lAV(RvOnC_M$ zKt@xGl~akOQ2nfNUrtJSrO&Rvfhkg5fOojZkpRLw>|)!NJ}s#b)6`GxY9nreYT=Yc z&8X|3)sZL%`##A7_e$A5{iTAL1~*?yWDZDuJ76&Cr$jEIR-3>^AKnGZQy z`x%>e6*{97J~P6WfuCDUL4_}p=m{0Tk5$aM~K5@Pc)0Rx&Bm)DdHQBKKPh)WKpxofU$xI zKAc5|DryxJAje40#wYOyxkOc;M5hwt;MN?qTGUkE$16N0>uQ<>)RcExY2tj1w;7|x z|Aj-4rc;n#5f#aLz=m8MDl1k*_DxEn3~v{)-jkKOhmAEA$ST`WMT2t?AHUamVI3z! zkF|4Og>ksqTdA}@CE5>QVW7OS{4D<+|; z)!EDQd(u)gbiSGes_z4i`vb89Ng2EoKk_eHGJ5-K@uq{g zy1z4nqV{hev-f-DWF_MUwxv2a*ugYhP$3@H$X?OZgkn<9UtD`?zYekGLf^$9Ql(O> z)+A;BUEiT){4zcD>o5;^)4;Z?5*VeOA;(!@^iA#;Zm*5QMQ}Z45FKIW)R97b!oggI zNZxltRzfiK5KBV`iUhfs%1E2hH1$x7jv5Bu-e`E*_1^-Y8t{&0T+Fx$rnJItU+Lo< z*<^yby09YqkfxrNTK7Vs{8v(F)S|!Nl8VsFC$J6hO8|<>1ESnG>9j3n4{&n zQQd-!a8<0EPb-0De(+|d;)52v8*vmzrMCwK&>j#5xnSv299Y%xe9UGd(hz`V54a$Q zh?y&P#@ngr)(JHI6O7TlQY|X0*HxW$!=<$-}GG>g4>|WkA-zdY?Q4- z1#=Zcl&c~ejb2-pb#XhAT5}QycSWd(MC?~-&om0BaEv&Iw)m=?9;!OmrL@MVz@D+c zts|A*WigsH`{e*I)tyyS@W7V8%-pw{S2%3q%;JUdw2Rl1&gL|%Mc8gD>baU>hN2T* z@x+$C(r~t`%D0R@OaNz9n(uik%h4ly3L^b~YwTb^_!6}!a#dlD%Amv9l@I#%>7!Z?t~QY>77f(TeMw5ioq8*ZDe<602IcY2>c9ELLQDxyU3A%~y&2e1kro1?Wvq zn2A#6I4EQjt{IVfmed-&ILxkEirU*WI5PT$MW+Jt-2L7|0{Sa6LO01Ih1yT;RbnF+ zSzhrDRKT_+qErFgI0~z$0gKn&63B%nN6lVs-hbYWENV8OU_)>V zT#^Ec(aO8c2FAXol1aplkms6R<$e~Y;+iM}hVs-?Ci@`%>!+ML3Hg2*+vOK(?sQc6 zXr79YCROoq5;6PLqN*Wx?QOO|S|KiyI;RwG5ZheCy$gS$4wD!gr`<`^&jx(yPu|4j zeBq!XXQq-$*Ez0KQezr8$CqM`-R)RXD$EbDfP6YVk{VXM}q1MRq`q zt63t+BdOMo#iQxaK4mn@m{Z+EvAIF2<^~D6GmBgQ^yy=bCRaM>E@H}ySrP)>o_|TA zbR&Z82==K~p`BDu`bJx;8vTE&Zf&Y&@V$Y@B$~a#lu$o{O=D0E#+qcNb5gFkym2K+ zYv`re*aOYz8hep6hN(Z+ehAjSIMi>=k6=d2+s@qBNLNB>LFLLQmMn`IYypRxOX#D@ zLa>End~zC$RVw{r+8WY;S%b-dY1v4IZgMJ9nq}%sT%=}8wZW9l8=D!-Z zcA|YY(^KuK-_kYcDGOP7D50oSPeP3tVGVXo?DQ++tRKYUXy8Z zC4lor!YRXEg%G>S8V*IhP$lJ6M+^+=gS8XbR2KA6srXc0u`+WaR!?PGpz5~@0;OR? zp(HE$U=)mO1K%!KKscC94IU@&{fv{jI;lvi3bMx%|yr1~E6;%sz|(7e!#k(Onl zm75b#OnSUohrC@(XEhllu+KIw8WWXAd#W@U&1kVgB3W4slB;0;lzEY?!B{Mk=1=Mm zk=2pSbYmP@6I54!W*(JEws<8==Cv_lta7faaQEdYut>i{TIzv$&pl?%MzOPtIhKs{ zv65zw6^0Iztf{EU9mFODg=GEQD-}LQR5n&s*GxF+0jY5N@kEJeeC&xIW6hR zz%6k`cfDE;)e<*~Lv+q!;5NLj?XsMs+KyLQMP0C*EjpF+k8RubS~`*}Fvkn?Qo&Yo zfYmiyM;+8x6;On!Nrdqv-Rvp3My4FvDjknE>eHnkknf?~BR zJ1QORA|_5M`y)AV>)C^BFZu7VKks zFvyXn^00GZth8vRQLvTeRV*IW6`$zRK`G0KP90Jmk!^8t%+yv;*4P3=Q$~?hr+#Wf zH&xyE?B*vyk`pT_QYScXg2RYG>DVW&QtM9AGcIy9XYxsi&b zmo$|pijR3rZ*6u)225_Ty#urNnoD!kOk+cZ6Y8*o7Gn0y8IiyhI5J{Jk}me($`B@n zRI}YuTs+|!OH{srFkm*JH25)yNBSw2>|h`%X_Z)ui$G;ISWIYPimo)`@k4`Xdaz#j zXRx6ozaEB4WN1XR(2vj_>su^_P}3%Z`pA0PMM-j4uncTVi@mNpeqDYFgOhK)95@p37RzFj?MmQ5{XMT2?>@3KEWm;MVPAE-DxqII#v1{EgCI+70On! zU#KUY&3hFkW74NZ5vSmMl5?ST1Jq*ZPJ~ALz$~&Mfwx z-Giw;d0@DN`j8$_QGc@wQ<7yJVUSwZtZWg}62=CDYz9L5S%0OA1+mFyT8PZD|22+B zoi`8LF~shvQrPjReJ%?A1;;9hL1wraMVo2@14f~`@?X?(IOCWYYKf@5UT>?Ow+(grnU z{B%;%k+P&)RyRoXiT$&+q_)*onZBhwVpXS1o`jirinl4ObYLX~Evq#`FSrJyJ66sc-X>$Y$0$UQ3WmQiDD+?>nT++{UV9Ne!AuzAq zQ>quLMld1$hH2=50X+YdL+}@`I}?vCS%Hlk`ni+PEAX*Sa_%-rQAkP(R;-JhK_aG@ z(6b>;0MjjwiOMNA47@r`Xh&m(yhv^3d6&|J(ZsVNv9mnAFlf!BAXpsBtUboPgIKs= z51e(z(O9tWY;<)Nu>btMaP*N2d1D*KnkUww-mZ_G0=qghC)i4y)`DLOlZ@1 zV&81sRTh+Lo^N(Be${UfLnOJ@uZBPd!DbqZLq0h$QA1Mg#=5*wPwZ^NStlQglaDz9 z`|rCK4q3Q24&8qr9I)R!%$hL`2Q!|(*GvqS%IMwL$MwU77#av6>0rXs*f20_wznd+ znDU{Y4H!dA3sFQM#)3w9kYlh!Q+Y$KViB6{n1q@#F|A};{c*>WptN+hn00N8L{iND zlfmrQaE$z?=hA(vftB}hjjZRcXfM3%Rj)%w=cLgtmFdw>Iq3xKGjDDn46X;(E~d=( zU>FIEFwZxdCD=;Jv!F3=q?G8fEbN?QC~0LBOY2YF4QyI5R@rj8+5$2^q53S7Q;{62 zpnMEg$B4m0%MeiqwGo6dv)OaY;xiwV2z}*5#D)#n zd+rSU#hcDSTQQG$Gbf{?jf*ncWwhy-P`lNiWHifs-ti2__^=sHmbbeSRX`Cq}Uikq&8Gw21~(;X&a_3 zsf;BJVF75|7%ZtVV}k!=uh6p;bXA!O88IYVrVzN4WS+aip0)z!?lBS9-gGB!x$R!u zaw`MlTkm)PzrS}89(s5&PakE>nLfqr(~y+}sUbroSR@^3Sn6k4@{3C$^k)o`Obg6w z991*+z0m|AmS8u{=?G&F?HRw-Q7jRPt&(yvG+!B_ewNl_7F#crm*#K0s%UD=8*NJhpJOU1UbY(Sn#AH9{zh z6I48=6GOAk#y2Jyulg%pLu@qFl~AiHBQr}w);IN`yEBj1z4~+Z)=GVRshf#1^c`+KsAOUb?7h>A~0>v?&pT)ngoW7A9>QrS9gY=C*Wt!H7U8iaYp`N{ml6g6Wh^?T7wpXDEG1v2xikPG?q-bwZ68 zY|&exQLM?BZ`edIVIePj8ZV)7t8$zld}s+CTC@xgJ-Q4JGJa(7ax7iC8jF{$MlX-# zMeT?rIEu4GP>_haC=w~z#)?O0iNPjBYF){gwwOVt6l^SwLd3F^GI}VFWP%CFFdHfz zNJ<7lqA3&VZRW_WNH&(OW#MFHUSrjGVPGw#t#hVD?eNdac;F%$dDp2lU_ z^vuZW69*o081~q6UdZ&X0oFW%Oj}3DOJW)zH4^4lNC%4sSj(DNA!)*uNPMFO1QTfj zq&OK$Ic2p=P*#yTXz4hTMii$I(}~Aqi6%Z}8JoVbLL}>_6(lcA2l4A)l)>|(sgv3= zx(Y(JUgll1qa6nyJP#)xxgT#tIV|Diyz=Thux{CU)}&Sq{>XOI@-H(=whEA zdSo?9Bb*Ntx;RJj$aHm5-8}AlXgRmt9q8`nv9uv8%!h_t#eon55!A6@j>dSbgmKg_ z(U=xXdhTQ-hOlU(AYD@40%5%2FWE&h!*WR&<+UJH=&03HzPk%NlL9f$&<<#CLy;k$ z&4q{grXyw8^B1KhOpx40hEN&X7Qf2kyo#-dJcIt4Yc&{D*0?E&+$dns(pIfd7IrYC zTRO-MNU@+g+U(fXLAFF%urjM)CJ1fCSjN-W%r-2cGg@KfDbr`- z@aG+4MXHyi8b-LVUUK%?IOXJ%13^c%M{gW`|A@-jq)!v9xiJfopx8Q_%oyoxRu8`d zCDO=d55x?l@t@VC44aUYV^UOP@&k_rAr!=n2@7?Y)G^A`FtES`+r=os3UOju5Ex6I zWZ0(`B8e7?>~n19Z34;or3$9>bmGOQ9f{)(-w&7k=r{P?b-(9C?FNbklq(hb4wGW_ zn)_hXNHc0s+WITHh>aZ*WATM{rMT4yW1(kbGL;P{`BEQ^MZC(#p^nuIjhJ#3#k5k& z8!W3)3}c|n)Ja|339aT@)0?__Xc?TN?R;pTOnV2Gu2_XB6FNexQ61BbGMa5*$1Y{H zp|A&sLf~sGQbtxHJ=ov0<5Ru?qXj-utqrqfC~E8~rBOT@8K?D42)vE9RF}czm>vls zA9RZ$^4KUEDddxrx1C%XhEyJ#H$;A`qkL@FSTvT2PjQ1!bY7!@1Gm~_9Q$N66 zQPAShpxL0RRwy-IVn;C3 zN&JB~$rgWTRS5>OpDKzLNMXSRLyOBMbVL|yQ6rcf7%riwr;9tvV2h-e>}K+LzNjZ_!G_Ofj{&)$OzKJANWE#EH0A~ z7h2*Jhk`)~^+T`+U5sNC7}c&a)Iv9>_%KZRr3d0c7%!2xF}kT-Wic&Q8v~7BN^b_{ z#ZDX9pG)gw)Iwm8TQqC&aqrAG{^ z&#NJ{r-UxDiC9=#Y(rg6Xx*cnAHn$?d(1IdxX)ZJlX0ApRU%G){`2wDSH8y5_U!1M zpN2*)h!`3V<~PeQ$26m~&`cY%TFhG<^E z7?dWLCXa}UC5M8IMf{3Q2T{nIVu9)K3KL`9nXMC{*z}AO&Du3~)fHQ$ard)!;{g8e z=eOWTzq$=4KJQ?>=HSSa%AKXVWH6!kP`krl%hHeF1vKHXE21RH}`7|W%T zeOMr!NNcFBa>er3Y(I<*W6HN+S+j_!p_1$nau(~KjRWO}MJ>CAvcx5bq@ZW3a<(Q% zF?YV|x12&SPvTVju|CHo-6#TBZZ@&T85D<-Mjb(E3zi9G45k-j%~`WAL+X1H9TMUb znSBz!$dP7E#$d2QK@LW4LG_gvlla8I5N~8j7qb`VgjkIxeKg2=}+Y}i!77ry>8{N(C8 zap7BEffG+S2yNUs)wFvcte>jGOKK-CqtNl2j_BwyVLByISQhbUS+k}^V z$sw=VSZeaZK8k95qJ>HpLLV3_kZeteEy^=C@mV^CLMN`e;Wiw1{DD|FdlE1-h`ek! zG=x1T6!4-K9fesIQJzl!Ko)4Yw3i{T@Qz!5YbU$zdfg*r&D)3p3c^9#HT;^-}u;v{=xFrndko{ zG81Q^ZZCGJVHM~SjAKf%gJvkv8xxpinq6X*;baV^Wjv9>v!TSNx@?OKDz(WZy7CfX zlY_i!M;w}TCd01e51q9a1Jw>^n97Wca%!3k452y6WluDJ{8bS1&}y zGHuVrZv$f$h&0~ZDP%^5amon?;Ll%w4nF?*%Xo~VL+{cv6f#qH`;&cw5C+PZOlyl| zW(CuWqpQ9IR&pq&F@jylSRu8_#&w6vF&%ZY`K2~kWOYnt;8QQP%}&p=8aq-knnEJR z$s}&owKB!b42)pGe$#QznI|Kc&tln%m6$PYDmpqk@zY;ijr;Cj4Rq@3MG~sEC?i&v zyf6R^YD42BC#0r~rhjHxgQ`j6ngkdR+czRJ#>9&)mOwUc70Cch$VR~_M|SEWKAW#0 zVRFNZq9mB%tiU3@ML%_7C(b$j2y{)FVZYiikz<*lwKHu(Hn8WlH5~hoSYrbzkDT7&6-1-u^E9!{7fs z_MAE0@*DdG@r*}5|l?zrb({KenA6SrRb>p;*?3!M7bK+g+3M9EVdCXc$Pf5{nAu<0PD6m4rw+Cn2CI#?4f8T#1>z1YaC z)fY%NJ5qnu6}J+jV<4J@2X#hw7Rr-u6_i&$m|>aLe}VHrpPIFIwP9qWg#NxV%DfZm zBl*R8i6q{L$*7-PmR_nZ2d?*EtMwd8nIiknzOXFx#aOKS z;W(puk}ZNN2L@9?jK-57f_OsC_*C8agI>lG%YqRS53Nr;9drJ{fs z8KjeJ9C=catxNSO!fr6KX~>0Ojk8VNEQ{@^5B37reh&KGBH`fY9goj^>fdq3sV7-p z*d}Kr{PxD*;moto!O*64fl%xOj($BbeLnBVBOxRWqhUiInb3lZS%VT{VW*5$dCh41 zrw%Bg2}gNMo3~eIZP3UY`3D60cNdIkfA}OPcarP6h?9=YD?#R zX>1eP7#OP$Vq&Q4fxeuIU<0d!3iwYm0Z@3ebv?EtJwM}`DrYf59~%aUhAMB z-WvU^^oV6?oD@bQ_K7kr!*VgQ?Ye%;N;>Fk9pbdkvr%hPvG{q($sU$r5qT6uryh0# zG6fZho)GvgHs!@Hn)2cgyK}WQI=2)x^-(nA5kV#5rL07^c9}6=mTK;%w$jz)TQ(r3 z)nu@V>X6vrQ9^~94XG%xH~Qb9=Sd!);2NF!>S21 zLi#FL=VhTdj?^@CKpxsUs}8X~5eACnF`<$|`M<@+4Sb-UKCt zw6V%r#4>Yw49bPHk;xb?fy4<#B{gWFB`x&W=LC+XJv%cV#jLH}WN2{9K*7etzsV|3aoE;AqDN!q&n|BwuYpFM!mAwyEr^dPKVwGk(g_)SKt zPaTX;1O@#IJa%{FzeXKBnAH0L}>x(JFCLZc>8W2F%=nmxY>A?YF5!nYq1<3i(@X4r29 z>%aP}kiOBb`ZlntDY*&~FJUAmnRXFhs-rT6$RM&I@erwhic=t?dSUV#K}>AdgfJE# zWt$n3Es`QE3#7mk>PSXN+m+cguLGSevad=tBU9*Ra|P6w+zQ=ED29@+>jx;A{urjP2{CveBqC1&e`F3BEY!YRQr zm7Df)b;tE%Ym0M?3!734{!!j6CX|b9?2x~~`&=nKKivRKTlJp-~fl(Fk5k}%Z{UL<8hu)I3VU`4b!^)Y9e z9Dy9O6~#tu5wfzi%h=>HSlgnP7#9*S+Rd$kU;34UI3# zYVh@vTAMx@8V3g-cp&ENxfhl!UxgJ*m)P+v)3*ZlQQb%%6=DZEr&D5kLs^S#U_%E2 zIT?xkMBqslqoFKiT?~AiIWs0SS*$8!s}~UJguEHs5ae0blwwMQq=9J|pA$yqf|^hi z^)P;Iv8|r2lBB_;4DmK5g!-gE%LJGJ)en(DF}oAmU{-k>bk$F+VFK8(Mg&{rDhO?c zbi6cTOIW{6huBxsO14rlNvVF|CT!s~a)g*h`IMH>AUF0ul~JzvQdwv+jZRvKwdVK`e2|T!@RVbfo3|#q>)2rl%#Uz8gn4F!+x2Z zB;Uw!KvQjNOGTkhs3E;#nFco3X3vH6DZ9N@z4T7t@tc4ZzX!_U8PP#U9D@&i@B?`3 zpS_87qUkQR$%*l!FmQ>%o$-6<796cS=lA?54NpeNt8Alu4}add!8UaDhx5g4@S zRiLzrm@+Prb$6Bjk34pbj@ou%VwNoN+1-gW*-DHiAR+QtQswG51)C_zQHdszvY~CW zk;x%Zd@PJDFinCn2Us-|k#1Hdfd5Fe0_7EjShle;+BFoLRAUPbG$A?M7$ry>RStI0 zGd+ose(HyqrET!;#>-sDix7AsH}gzMj@s5Vu&JPuK$k64%|5ZSEuhK?n-`KHg7gUF zH1>j#tSzN^6qPID zm9KggUibPp;x#XSiP5%(ZGM0~9@cK`$G`pizu{*;`7stf{18Tl!$)?8Hl7)$?u*RC zJyF+pQ3^c1$#d#g%*`jeaR!*pZD2&x2O9}gDw2&sBRFFesuo_~HC22B*17&$2cNbKG`Ou15}skq=XRD=KKj8LzAt1pas2Uf2I|r zEAz(Es3$0`ep-fzZK$FgO|1l!xZbt%*|?0(;8AXEHU=Id$F;uS!i6~f1uw)0KJY=z znK31nY#j|}ba#_8n!k#eciZeiZqr>g zMYM)~s@7f%Gy|A*lxReo(GtcXjpmt7mtpv37Eg%0^9i literal 45187 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

Le1z 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
M$^{v@kGma41OcHMWo4 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

e~eM*Cby9+zC2# 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®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 literal 52925 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∾eAI|-BR@`rS{fk21_?*(ydE#7; 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 { if (data != null) { - caller = data; - console.info('get remote caller success'); + caller = data + console.info('get remote caller success') // Register the onRelease() listener of the caller ability. caller.onRelease((msg) => { - console.info(`remote caller onRelease is called ${msg}`); + console.info(`remote caller onRelease is called ${msg}`) }) - console.info('remote caller register OnRelease succeed'); + console.info('remote caller register OnRelease succeed') } }).catch((error) => { - console.error(`get remote caller failed with ${error}`); + console.error(`get remote caller failed with ${error}`) }) } - ``` - - For details about how to implement **getRemoteDeviceId()**, see [Starting UIAbility and ServiceExtensionAbility Across Devices (No Data Returned)](#starting-uiability-and-serviceextensionability-across-devices-no-data-returned). - ``` - + ``` + + For details about how to implement **getRemoteDeviceId()**, see [Starting UIAbility and ServiceExtensionAbility Across Devices (No Data Returned)](#starting-uiability-and-serviceextensionability-across-devices-no-data-returned). + 5. Sends agreed sequenceable data to the callee ability. 1. The sequenceable data can be sent to the callee ability with or without a return value. The method and sequenceable data must be consistent with those of the callee ability. The following example describes how to send data to the callee ability. diff --git a/en/application-dev/application-models/mission-management-launch-type.md b/en/application-dev/application-models/mission-management-launch-type.md index 7dbb3b5c8f..72b6dbf80d 100644 --- a/en/application-dev/application-models/mission-management-launch-type.md +++ b/en/application-dev/application-models/mission-management-launch-type.md @@ -31,4 +31,3 @@ Every mission retains a snapshot of the UIAbility instance. After the UIAbility > > The **specified** mode is supported in the stage model only. - \ No newline at end of file diff --git a/en/application-dev/application-models/serviceability-configuration.md b/en/application-dev/application-models/serviceability-configuration.md index a0bf139c2e..2c8e009a10 100644 --- a/en/application-dev/application-models/serviceability-configuration.md +++ b/en/application-dev/application-models/serviceability-configuration.md @@ -14,4 +14,3 @@ Similar to a PageAbility, a ServiceAbility is configured in **abilities** under For details about the configuration items, see [Internal Structure of module](../quick-start/module-structure.md). - \ No newline at end of file diff --git a/en/application-dev/application-models/serviceextensionability.md b/en/application-dev/application-models/serviceextensionability.md index 6626bf6659..c4ffdbd980 100644 --- a/en/application-dev/application-models/serviceextensionability.md +++ b/en/application-dev/application-models/serviceextensionability.md @@ -293,4 +293,3 @@ The ServiceExtensionAbility component returns an IRemoteObject in the **onConnec }) ``` - \ No newline at end of file diff --git a/en/application-dev/application-models/stage-model-development-overview.md b/en/application-dev/application-models/stage-model-development-overview.md index 139a27e215..6fbf06baa4 100644 --- a/en/application-dev/application-models/stage-model-development-overview.md +++ b/en/application-dev/application-models/stage-model-development-overview.md @@ -17,7 +17,7 @@ The following figure shows the basic concepts used in the stage model. - ExtensionAbility is oriented to specific scenarios. You cannot derive directly from ExtensionAbility. Instead, use the derived classes of ExtensionAbility for your scenarios, such as FormExtensionAbility for widget scenarios, InputMethodExtensionAbility for input method scenarios, and WorkSchedulerExtensionAbility for Work Scheduled task scenarios. For example, to enable a user to create an application widget on the home screen, you must derive FormExtensionAbility, implement the callback functions, and configure the capability in the configuration file. The derived class instances are created by developers and their lifecycles are managed by the system. In the stage model, you must use the derived classes of ExtensionAbility to develop custom services based on your service scenarios. - [WindowStage](../windowmanager/application-window-stage.md) - Each UIAbility class instance is bound to a WindowStage class instance, which functions as the window manager in the application process. The WindowStage class instance contains a main window. That is, UIAbility holds a window through WindowStage, and this window provides an area for ArkUI to render. + Each UIAbility class instance is bound to a WindowStage class instance, which functions as the window manager in the application process. The WindowStage class instance contains a main window. That is, UIAbility holds a main window through WindowStage, and this window provides an area for ArkUI to render. - [Context](application-context-stage.md) @@ -32,12 +32,12 @@ The following figure shows the basic concepts used in the stage model. During application development based on the stage model, the following tasks are involved in the application model. - **Table 1** Stage model development process +**Table 1** Stage model development process | Task| Introduction| Guide| | -------- | -------- | -------- | -| Application component development| Use the UIAbility and ExtensionAbility components of the stage model to develop applications.| - [Application- or Component-Level Configuration](application-component-configuration-stage.md)
- [UIAbility Component](uiability-overview.md)
- [ExtensionAbility Component](extensionability-overview.md)
- [AbilityStage Container Component](abilitystage.md)
- [Context](application-context-stage.md)
- [Component Startup Rules](component-startup-rules.md) | +| Application component development| Use the UIAbility and ExtensionAbility components of the stage model to develop applications.| - [Application- or Component-Level Configuration](application-component-configuration-stage.md)
- [UIAbility Component](uiability-overview.md)
- [ExtensionAbility Component](extensionability-overview.md)
- [AbilityStage Container Component](abilitystage.md)
- [Context](application-context-stage.md)
- [Component Startup Rules](component-startup-rules.md)| | Inter-process communication (IPC)| Learn the process model and common IPC modes of the stage model.| - [Common Events](common-event-overview.md)
- [Background Services](background-services.md)| | Inter-thread communication| Learn the thread model and common inter-thread communication modes of the stage model.| - [Emitter](itc-with-emitter.md)
- [Worker](itc-with-worker.md)| -| Mission management| Learn the basic concepts and typical scenarios of mission management in the stage model.| - [Mission Management Scenarios](mission-management-overview.md)
- [Mission Management and Launch Type](mission-management-launch-type.md)
- [Page Stack and MissionList](page-mission-stack.md) | -| Application configuration file| Learn the requirements for developing application configuration files in the stage model.| [Application Configuration File](config-file-stage.md) | +| Mission management| Learn the basic concepts and typical scenarios of mission management in the stage model.| - [Mission Management Scenarios](mission-management-overview.md)
- [Mission Management and Launch Type](mission-management-launch-type.md)
- [Page Stack and Mission List](page-mission-stack.md)| +| Application configuration file| Learn the requirements for developing application configuration files in the stage model.| [Application Configuration File](config-file-stage.md)| diff --git a/en/application-dev/application-models/start-local-pageability.md b/en/application-dev/application-models/start-local-pageability.md index d834482007..425566ab88 100644 --- a/en/application-dev/application-models/start-local-pageability.md +++ b/en/application-dev/application-models/start-local-pageability.md @@ -22,7 +22,7 @@ import featureAbility from '@ohos.ability.featureAbility' want: { bundleName: "com.example.myapplication", moduleName: "entry", - abilityName: "com.example.myapplication.MainAbility" + abilityName: "com.example.myapplication.EntryAbility" } } await featureAbility.startAbility(param) diff --git a/en/application-dev/application-models/start-page.md b/en/application-dev/application-models/start-page.md index adf8143559..58966d93cb 100644 --- a/en/application-dev/application-models/start-page.md +++ b/en/application-dev/application-models/start-page.md @@ -12,7 +12,7 @@ import featureAbility from '@ohos.ability.featureAbility'; async function restartAbility() { let wantInfo = { bundleName: "com.sample.MyApplication", - abilityName: "MainAbility", + abilityName: "EntryAbility", parameters: { page: "pages/second" } @@ -89,7 +89,7 @@ struct Index { featureAbility.startAbility({ want: { bundleName: "com.exm.myapplication", - abilityName: "com.exm.myapplication.MainAbility", + abilityName: "com.exm.myapplication.EntryAbility", parameters: { page: "pages/page1" } } }).then((data) => { @@ -104,7 +104,7 @@ struct Index { featureAbility.startAbility({ want: { bundleName: "com.exm.myapplication", - abilityName: "com.exm.myapplication.MainAbility", + abilityName: "com.exm.myapplication.EntryAbility", parameters: { page: "pages/page2" } } }).then((data) => { diff --git a/en/application-dev/application-models/start-pageability-from-stage.md b/en/application-dev/application-models/start-pageability-from-stage.md index f3a09f4af4..9d1b7ed27f 100644 --- a/en/application-dev/application-models/start-pageability-from-stage.md +++ b/en/application-dev/application-models/start-pageability-from-stage.md @@ -9,23 +9,23 @@ This topic describes how the two application components of the stage model start A UIAbility starts a PageAbility in the same way as it starts another UIAbility. ```ts -import UIAbility from '@ohos.app.ability.UIAbility' +import UIAbility from '@ohos.app.ability.UIAbility'; -export default class MainAbility extends UIAbility { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.info("MainAbility onCreate") + console.info("EntryAbility onCreate") } onDestroy() { - console.info("MainAbility onDestroy") + console.info("EntryAbility onDestroy") } onWindowStageCreate(windowStage) { - console.info("MainAbility onWindowStageCreate") + console.info("EntryAbility onWindowStageCreate") windowStage.loadContent('pages/Index', (err, data) => { // ... }); let want = { bundleName: "com.ohos.fa", - abilityName: "MainAbility", + abilityName: "EntryAbility", }; this.context.startAbility(want).then(() => { console.info('Start Ability successfully.'); @@ -34,13 +34,13 @@ export default class MainAbility extends UIAbility { }); } onWindowStageDestroy() { - console.info("MainAbility onWindowStageDestroy") + console.info("EntryAbility onWindowStageDestroy") } onForeground() { - console.info("MainAbility onForeground") + console.info("EntryAbility onForeground") } onBackground() { - console.info("MainAbility onBackground") + console.info("EntryAbility onBackground") } } ``` @@ -54,23 +54,23 @@ A UIAbility starts a PageAbility through **startAbilityForResult()** in the same ```ts -import UIAbility from '@ohos.app.ability.UIAbility' +import UIAbility from '@ohos.app.ability.UIAbility'; -export default class MainAbility extends UIAbility { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.info("MainAbility onCreate") + console.info("EntryAbility onCreate") } onDestroy() { - console.info("MainAbility onDestroy") + console.info("EntryAbility onDestroy") } onWindowStageCreate(windowStage) { - console.info("MainAbility onWindowStageCreate") + console.info("EntryAbility onWindowStageCreate") windowStage.loadContent('pages/Index', (err, data) => { // ... }); let want = { bundleName: "com.ohos.fa", - abilityName: "MainAbility", + abilityName: "EntryAbility", }; this.context.startAbilityForResult(want).then((result) => { console.info('Ability verify result: ' + JSON.stringify(result)); @@ -79,13 +79,13 @@ export default class MainAbility extends UIAbility { }); } onWindowStageDestroy() { - console.info("MainAbility onWindowStageDestroy") + console.info("EntryAbility onWindowStageDestroy") } onForeground() { - console.info("MainAbility onForeground") + console.info("EntryAbility onForeground") } onBackground() { - console.info("MainAbility onBackground") + console.info("EntryAbility onBackground") } } ``` @@ -110,7 +110,7 @@ export default class ServiceExtension extends Extension { console.info("ServiceExtension onRequest") let wantFA = { bundleName: "com.ohos.fa", - abilityName: "MainAbility", + abilityName: "EntryAbility", }; this.context.startAbility(wantFA).then(() => { console.info('Start Ability successfully.'); diff --git a/en/application-dev/application-models/start-remote-pageability.md b/en/application-dev/application-models/start-remote-pageability.md index 54f370aa45..4e998a15d2 100644 --- a/en/application-dev/application-models/start-remote-pageability.md +++ b/en/application-dev/application-models/start-remote-pageability.md @@ -97,13 +97,13 @@ function getRemoteDeviceId() { if (typeof dmClass === 'object' && dmClass != null) { let list = dmClass.getTrustedDeviceListSync(); if (typeof (list) == 'undefined' || typeof (list.length) == 'undefined') { - console.info("MainAbility onButtonClick getRemoteDeviceId err: list is null"); + console.info("EntryAbility onButtonClick getRemoteDeviceId err: list is null"); return; } - console.info("MainAbility onButtonClick getRemoteDeviceId success:" + list[0].deviceId); + console.info("EntryAbility onButtonClick getRemoteDeviceId success:" + list[0].deviceId); return list[0].deviceId; } else { - console.info("MainAbility onButtonClick getRemoteDeviceId err: dmClass is null"); + console.info("EntryAbility onButtonClick getRemoteDeviceId err: dmClass is null"); } } ``` diff --git a/en/application-dev/application-models/start-uiability-from-fa.md b/en/application-dev/application-models/start-uiability-from-fa.md index fd2328f647..42d8e034cd 100644 --- a/en/application-dev/application-models/start-uiability-from-fa.md +++ b/en/application-dev/application-models/start-uiability-from-fa.md @@ -14,7 +14,7 @@ import featureAbility from '@ohos.ability.featureAbility'; let parameter = { "want": { bundleName: "com.ohos.stage", - abilityName: "com.ohos.stage.MainAbility" + abilityName: "com.ohos.stage.EntryAbility" } }; featureAbility.startAbility(parameter).then((code) => { @@ -38,7 +38,7 @@ import featureAbility from '@ohos.ability.featureAbility'; let parameter = { "want": { bundleName: "com.ohos.stage", - abilityName: "com.ohos.stage.MainAbility" + abilityName: "com.ohos.stage.EntryAbility" } }; featureAbility.startAbilityForResult(parameter).then((result) => { @@ -60,7 +60,7 @@ import particleAbility from '@ohos.ability.particleAbility'; let parameter = { "want": { bundleName: "com.ohos.stage", - abilityName: "com.ohos.stage.MainAbility" + abilityName: "com.ohos.stage.EntryAbility" } }; particleAbility.startAbility(parameter).then(() => { diff --git a/en/application-dev/application-models/uiability-intra-device-interaction.md b/en/application-dev/application-models/uiability-intra-device-interaction.md index db85dfdffb..ea6b8bbecf 100644 --- a/en/application-dev/application-models/uiability-intra-device-interaction.md +++ b/en/application-dev/application-models/uiability-intra-device-interaction.md @@ -1,4 +1,4 @@ -# Interaction Intra-Device Between UIAbility Components +# Intra-Device Interaction Between UIAbility Components UIAbility is the minimum unit that can be scheduled by the system. Jumping between functional modules in a device involves starting of specific UIAbility components, which belong to the same or a different application (for example, starting UIAbility of a third-party payment application). @@ -50,7 +50,7 @@ Assume that your application has two UIAbility components: EntryAbility and Func ```ts import UIAbility from '@ohos.app.ability.UIAbility'; - import Window from '@ohos.window'; + import window from '@ohos.window'; export default class FuncAbility extends UIAbility { onCreate(want, launchParam) { @@ -196,6 +196,7 @@ This section describes how to start the UIAbility of another application through ``` The following figure shows the effect. When you click **Open PDF**, a dialog box is displayed for you to select. + uiability-intra-device-interaction 3. To stop the **UIAbility** instance after the document application is used, call **terminateSelf()**. @@ -442,7 +443,8 @@ Ability call is usually used in the following scenarios: The following figure shows the ability call process. -Figure 1 Ability call process +**Figure 1** Ability call process + call - The caller ability uses **startAbilityByCall** to obtain a caller object and uses **call()** of the caller object to send data to the callee ability. @@ -461,7 +463,7 @@ Figure 1 Ability call process The following table describes the main APIs used for the ability call. For details, see [AbilityContext](../reference/apis/js-apis-app-ability-uiAbility.md#caller). - **Table 2** Ability call APIs +**Table 2** Ability call APIs | API| Description| | -------- | -------- | @@ -486,8 +488,7 @@ For the callee ability, implement the callback to receive data and the methods t 1. Configure the ability launch type. - -Set **launchType** of the callee ability to **singleton** in the **module.json5** file. + Set **launchType** of the callee ability to **singleton** in the **module.json5** file. | JSON Field| Description| | -------- | -------- | @@ -595,9 +596,9 @@ An example of the ability configuration is as follows: 2. Obtain the caller interface. - The **context** attribute of the ability implements **startAbilityByCall** to obtain the caller object for communication. The following example uses **this.context** to obtain the **context** attribute of the ability, uses **startAbilityByCall** to start the callee ability, obtain the caller object, and register the **onRelease** listener of the caller ability. You need to implement processing based on service requirements. + ```ts // Register the onRelease() listener of the caller ability. private regOnRelease(caller) { diff --git a/en/application-dev/application-models/uiability-launch-type.md b/en/application-dev/application-models/uiability-launch-type.md index c64d7fb3ff..cda8307ddd 100644 --- a/en/application-dev/application-models/uiability-launch-type.md +++ b/en/application-dev/application-models/uiability-launch-type.md @@ -18,6 +18,7 @@ The launch type of the UIAbility component refers to the state of the UIAbility Each time [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) is called, if a UIAbility instance of this type already exists in the application process, the instance is reused. Therefore, only one UIAbility instance of this type exists in the system, that is, displayed in **Recents**. **Figure 1** Demonstration effect in singleton mode + uiability-launch-type1 > **NOTE** @@ -47,6 +48,7 @@ To use the singleton mode, set **launchType** in the [module.json5 configuration In standard mode, each time [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) is called, a new UIAbility instance of this type is created in the application process. Multiple UIAbility instances of this type are displayed in **Recents**. **Figure 2** Demonstration effect in standard mode + standard-mode To use the standard mode, set **launchType** in the [module.json5 configuration file](../quick-start/module-configuration-file.md) to **standard**. @@ -72,6 +74,7 @@ To use the standard mode, set **launchType** in the [module.json5 configuration The **specified** mode is used in some special scenarios. For example, in a document application, you want a document instance to be created each time you create a document, but you want to use the same document instance when you repeatedly open an existing document. **Figure 3** Demonstration effect in specified mode + uiability-launch-type2 For example, there are EntryAbility and SpecifiedAbility, and the launch type of SpecifiedAbility is set to **specified**. You are required to start SpecifiedAbility from EntryAbility. @@ -93,7 +96,7 @@ For example, there are EntryAbility and SpecifiedAbility, and the launch type of ``` 2. Before a UIAbility instance is created, you can create a unique string key for the instance. The key is bound to the UIAbility instance when it is created. Each time [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) is called, the application is asked which UIAbility instance is used to respond to the [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) request. - In EntryAbility, add a custom parameter, for example, **instanceKey**, to the **want** parameter in [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) to distinguish the UIAbility instances. + In EntryAbility, add a custom parameter, for example, **instanceKey**, to the [want](want-overview.md) parameter in [startAbility()](../reference/apis/js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) to distinguish the UIAbility instances. ```ts // Configure an independent key for each UIAbility instance. @@ -146,7 +149,8 @@ For example, there are EntryAbility and SpecifiedAbility, and the launch type of For example, in the document application, different key values are bound to different document instances. Each time a document is created, a new key value (for example, file path) is passed, and a new UIAbility instance is created when UIAbility is started in AbilityStage. However, when you open an existing document, the same UIAbility instance is started again in AbilityStage. - The following steps are used as an example. + +The following steps are used as an example. 1. Open file A. A UIAbility instance, for example, UIAbility instance 1, is started. 2. Close the process of file A in **Recents**. UIAbility instance 1 is destroyed. Return to the home screen and open file A again. A new UIAbility instance is started, for example, UIAbility instance 2. diff --git a/en/application-dev/application-models/uiability-lifecycle.md b/en/application-dev/application-models/uiability-lifecycle.md index b530a7bda5..9ec701cbff 100644 --- a/en/application-dev/application-models/uiability-lifecycle.md +++ b/en/application-dev/application-models/uiability-lifecycle.md @@ -7,7 +7,7 @@ When a user opens, switches, and returns to an application, the UIAbility instan The lifecycle of UIAbility has four states: **Create**, **Foreground**, **Background**, and **Destroy**, as shown in the figure below. - **Figure 1** UIAbility lifecycle states +**Figure 1** UIAbility lifecycle states Ability-Life-Cycle @@ -21,7 +21,7 @@ The **Create** state is triggered when the UIAbility instance is created during ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import Window from '@ohos.window'; +import window from '@ohos.window'; export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { @@ -36,14 +36,14 @@ export default class EntryAbility extends UIAbility { After the UIAbility instance is created but before it enters the **Foreground** state, the system creates a WindowStage instance and triggers the **onWindowStageCreate()** callback. You can set UI loading and WindowStage event subscription in the callback. - **Figure 2** WindowStageCreate and WindowStageDestory +**Figure 2** WindowStageCreate and WindowStageDestory Ability-Life-Cycle-WindowStage In the **onWindowStageCreate()** callback, use [loadContent()](../reference/apis/js-apis-window.md#loadcontent9-2) to set the page to be loaded, and call [on('windowStageEvent')](../reference/apis/js-apis-window.md#onwindowstageevent9) to subscribe to [WindowStage events](../reference/apis/js-apis-window.md#windowstageeventtype9), for example, having or losing focus, or becoming visible or invisible. ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import Window from '@ohos.window'; +import window from '@ohos.window'; export default class EntryAbility extends UIAbility { // ... @@ -77,7 +77,7 @@ Before the UIAbility instance is destroyed, the **onWindowStageDestroy()** callb ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import Window from '@ohos.window'; +import window from '@ohos.window'; export default class EntryAbility extends UIAbility { // ... @@ -135,7 +135,7 @@ The UIAbility instance is destroyed when **terminateSelf()** is called or the us ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import Window from '@ohos.window'; +import window from '@ohos.window'; export default class EntryAbility extends UIAbility { // ... diff --git a/en/application-dev/application-models/uiability-overview.md b/en/application-dev/application-models/uiability-overview.md index ec26d2ca9b..14cb5c4652 100644 --- a/en/application-dev/application-models/uiability-overview.md +++ b/en/application-dev/application-models/uiability-overview.md @@ -37,4 +37,3 @@ To enable an application to properly use a UIAbility component, declare the UIAb > > For the ability composition, see [Adding an Ability to a Module](https://developer.harmonyos.com/en/docs/documentation/doc-guides-V3/ohos-adding-ability-0000001218280664-V3). - \ No newline at end of file diff --git a/en/application-dev/application-models/uiability-usage.md b/en/application-dev/application-models/uiability-usage.md index ccd80625f4..fa8badc6d4 100644 --- a/en/application-dev/application-models/uiability-usage.md +++ b/en/application-dev/application-models/uiability-usage.md @@ -11,10 +11,10 @@ If no startup page is specified, a white screen occurs after the application is ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import Window from '@ohos.window'; +import window from '@ohos.window'; export default class EntryAbility extends UIAbility { - onWindowStageCreate(windowStage: Window.WindowStage) { + onWindowStageCreate(windowStage: window.WindowStage) { // Main window is created. Set a main page for this ability. windowStage.loadContent('pages/Index', (err, data) => { // ... diff --git a/en/application-dev/application-models/want-overview.md b/en/application-dev/application-models/want-overview.md index 784f190ad6..f8239c64cf 100644 --- a/en/application-dev/application-models/want-overview.md +++ b/en/application-dev/application-models/want-overview.md @@ -23,7 +23,7 @@ ``` - **Implicit Want**: A type of Want with **abilityName** unspecified when starting the ability. - Implicit Want can be used when the object used to process the request is unclear and the current application wants to use a capability (defined by the [skills tag](../quick-start/module-configuration-file.md#skills-tag)) provided by another application. For example, you can use implicit Want to describe a request for opening a link, since you do not care which application is used to open the link. The system matches all applications that support the request. + Implicit Want can be used when the object used to process the request is unclear and the current application wants to use a capability (defined by the [skills tag](../quick-start/module-configuration-file.md#skills)) provided by another application. For example, you can use implicit Want to describe a request for opening a link, since you do not care which application is used to open the link. The system matches all applications that support the request. ```ts @@ -47,5 +47,3 @@ > - If the **want** parameter passed does not contain **abilityName** or **bundleName**, the ServiceExtensionAbility components of all applications cannot be started through implicit Want. > > - If the **want** parameter passed contains **bundleName**, the **startServiceExtensionAbility()** method can be used to implicitly start ServiceExtensionAbility. By default, ServiceExtensionAbility with the highest priority is returned. If all the matching ServiceExtensionAbility components have the same priority, the first ServiceExtensionAbility is returned. - - \ No newline at end of file diff --git a/en/application-dev/application-models/widget-development-fa.md b/en/application-dev/application-models/widget-development-fa.md index c170f13493..df162455f6 100644 --- a/en/application-dev/application-models/widget-development-fa.md +++ b/en/application-dev/application-models/widget-development-fa.md @@ -232,7 +232,7 @@ The widget configuration file is named **config.json**. Find the **config.json** "type": "service", "srcLanguage": "ets", "formsEnabled": true, - "formConfigAbility": "ability://com.example.entry.MainAbility", + "formConfigAbility": "ability://com.example.entry.EntryAbility", "forms": [{ "colorMode": "auto", "defaultDimension": "2*2", @@ -434,7 +434,7 @@ You can use the web-like paradigm (HML+CSS+JSON) to develop JS widget pages. Thi "actions": { "routerEvent": { "action": "router", - "abilityName": "com.example.entry.MainAbility", + "abilityName": "com.example.entry.EntryAbility", "params": { "message": "add detail" } @@ -452,8 +452,8 @@ You can set router and message events for components on a widget. The router eve 2. Set the router event. - **action**: **router**, which indicates a router event. - - **abilityName**: name of the ability to redirect to (PageAbility component in the FA model and UIAbility component in the stage model). For example, the default MainAbility name of the FA model created by DevEco Studio is com.example.entry.MainAbility. - - **params**: custom parameters passed to the target ability. Set them as required. The value can be obtained from **parameters** in **want** used for starting the target ability. For example, in the lifecycle function **onCreate** of the main ability in the FA model, **featureAbility.getWant()** can be used to obtain **want** and its **parameters** field. + - **abilityName**: name of the ability to redirect to (PageAbility component in the FA model and UIAbility component in the stage model). For example, the default UIAbility name created by DevEco Studio in the FA model is com.example.entry.EntryAbility. + - **params**: custom parameters passed to the target ability. Set them as required. The value can be obtained from **parameters** in **want** used for starting the target ability. For example, in the lifecycle function **onCreate** of the EntryAbility in the FA model, **featureAbility.getWant()** can be used to obtain **want** and its **parameters** field. 3. Set the message event. - **action**: **message**, which indicates a message event. @@ -529,7 +529,7 @@ The following is an example: "actions": { "routerEvent": { "action": "router", - "abilityName": "com.example.entry.MainAbility", + "abilityName": "com.example.entry.EntryAbility", "params": { "message": "add detail" } diff --git a/en/application-dev/application-models/widget-development-stage.md b/en/application-dev/application-models/widget-development-stage.md index 38f4e89d10..32aa03e7aa 100644 --- a/en/application-dev/application-models/widget-development-stage.md +++ b/en/application-dev/application-models/widget-development-stage.md @@ -597,4 +597,3 @@ The following is an example: }; ``` - \ No newline at end of file diff --git a/en/application-dev/tools/bm-tool.md b/en/application-dev/tools/bm-tool.md index 5bd5e7b009..879a2f123b 100644 --- a/en/application-dev/tools/bm-tool.md +++ b/en/application-dev/tools/bm-tool.md @@ -81,7 +81,7 @@ bm uninstall [-h help] [-n bundleName] [-m moduleName] [-u userId] [-k] Example ```bash -bm uninstall -n com.ohos.app -m com.ohos.app.MainAbility -u 100 -k +bm uninstall -n com.ohos.app -m com.ohos.app.EntryAbility -u 100 -k // The execution result is as follows: uninstall bundle successfully. ``` @@ -178,7 +178,7 @@ Example ```bash # Enable a bundle. -bm enable -n com.ohos.app -a com.ohos.app.MainAbility -u 100 +bm enable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100 // The execution result is as follows: enable bundle successfully. ``` @@ -206,7 +206,7 @@ Example ```bash # Disable a bundle. -bm disable -n com.ohos.app -a com.ohos.app.MainAbility -u 100 +bm disable -n com.ohos.app -a com.ohos.app.EntryAbility -u 100 // The execution result is as follows: disable bundle successfully. ``` -- GitLab From 38e4772dfe647322d2ee9345cd4cb825dbbe6470 Mon Sep 17 00:00:00 2001 From: buzhenwang Date: Wed, 11 Jan 2023 16:13:05 +0800 Subject: [PATCH 194/383] add hilog guidelines Signed-off-by: buzhenwang --- zh-cn/application-dev/dfx/hilog-guidelines.md | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 zh-cn/application-dev/dfx/hilog-guidelines.md diff --git a/zh-cn/application-dev/dfx/hilog-guidelines.md b/zh-cn/application-dev/dfx/hilog-guidelines.md new file mode 100644 index 0000000000..4e3f47f6da --- /dev/null +++ b/zh-cn/application-dev/dfx/hilog-guidelines.md @@ -0,0 +1,37 @@ +# HiLog开发指导 +## 概述 +HiLog是OpenHarmony日志系统,提供给系统框架、服务、以及应用打印日志,记录用户操作、系统运行状态等。 +> **说明:** +> 仅当开发者使用Native API开发应用时,可参考本开发指导。API文档请参考[HiLog Native API参考](../reference/native-apis/_hi_log.md) + +## 接口说明 +| 方法/宏 | 接口描述 | +| -------- | -------- | +| int OH_LOG_Print(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *fmt, ...) | 输出指定日志类型、日志级别、业务领域、Tag的hilog日志,并且按照printf格式类型和隐私指示确定需要输出的变参。| +| #define OH_LOG_DEBUG(type, ...) ((void)OH_LOG_Print((type), LOG_DEBUG, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__))| DEBUG级别写日志,宏封装接口 | +| #define OH_LOG_INFO(type, ...) ((void)OH_LOG_Print((type), LOG_INFO, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | INFO级别写日志,宏封装接口 | +| #define OH_LOG_WARN(type, ...) ((void)OH_LOG_Print((type), LOG_WARN, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | WARN级别写日志,宏封装接口 | +| #define OH_LOG_ERROR(type, ...) ((void)OH_LOG_Print((type), LOG_ERROR, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | ERROR级别写日志,宏封装接口 | +| #define OH_LOG_FATAL(type, ...) ((void)OH_LOG_Print((type), LOG_FATAL, LOG_DOMAIN, LOG_TAG, \__VA_ARGS__)) | FATAL级别写日志,宏封装接口 | +| bool OH_LOG_IsLoggable(unsigned int domain, const char *tag, LogLevel level) | 功能:检查指定业务领域、TAG、级别的日志是否可以打印。
输入参数:
- domain:指定日志业务领域。
- tag: 指定日志TAG。
- level: 指定日志level。
输出参数:无
返回值:如果指定domain、tag、level日志可以打印则返回true;否则返回false。 | + +## 开发示例 +1.在源文件中包含hilog头文件: +```c++ +#include "hilog/log.h" +``` +2.定义domain、tag宏: +```c++ +#undef LOG_DOMAIN +#undef LOG_TAG +#define LOG_DOMAIN 0x3200 // 标识业务领域,范围0xD0000~0xDFFFF +#define LOG_TAG "MY_TAG" +``` +3.打印日志,以打印INFO级别的日志为例: +```c++ +OH_LOG_INFO(LOG_APP, "Failed to visit %{private}s, reason:%{public}d.", url, errno); +``` +4.输出结果: +``` +12-11 12:21:47.579 2695 2695 I A03200/MY_TAG: Failed to visit , reason:11. +``` \ No newline at end of file -- GitLab From 506ba90bfe3cb5c60491f5fa547dd0fe4f06e20e Mon Sep 17 00:00:00 2001 From: Gloria Date: Thu, 12 Jan 2023 20:25:53 +0800 Subject: [PATCH 195/383] Update docs against 11915 and more Signed-off-by: wusongqing --- en/application-dev/Readme-EN.md | 113 ++++--- .../application-dev-guide-for-gitee.md | 13 +- en/application-dev/application-dev-guide.md | 9 +- .../{Readme.md => Readme-EN.md} | 0 .../reference/apis/Readme-EN.md | 30 +- en/application-dev/website.md | 293 +++++++++++++++--- 6 files changed, 353 insertions(+), 105 deletions(-) rename en/application-dev/application-test/{Readme.md => Readme-EN.md} (100%) diff --git a/en/application-dev/Readme-EN.md b/en/application-dev/Readme-EN.md index dba77cf37a..8484845fb4 100644 --- a/en/application-dev/Readme-EN.md +++ b/en/application-dev/Readme-EN.md @@ -2,52 +2,87 @@ - [Application Development Overview](application-dev-guide.md) - About OpenHarmony - - [OpenHarmony Project](../OpenHarmony-Overview.md) - - [Glossary](../glossary.md) - - [OpenHarmony Release Notes](../release-notes/Readme.md) + - [OpenHarmony Project](../OpenHarmony-Overview.md) + - [Glossary](../glossary.md) + - [OpenHarmony Release Notes](../release-notes/Readme.md) - Quick Start - - Getting Started - - [Preparations](quick-start/start-overview.md) - - [Getting Started with ArkTS in Stage Model](quick-start/start-with-ets-stage.md) - - [Getting Started with ArkTS in FA Model](quick-start/start-with-ets-fa.md) - - [Getting Started with JavaScript in FA Model](quick-start/start-with-js-fa.md) - - Development Fundamentals - - [Application Package Structure Configuration File (FA Model)](quick-start/package-structure.md) - - [Application Package Structure Configuration File (Stage Model)](quick-start/stage-structure.md) - - [SysCap](quick-start/syscap.md) - + - Getting Started + - [Before You Start](quick-start/start-overview.md) + - [Getting Started with ArkTS in Stage Model](quick-start/start-with-ets-stage.md) + - [Getting Started with ArkTS in FA Model](quick-start/start-with-ets-fa.md) + - [Getting Started with JavaScript in FA Model](quick-start/start-with-js-fa.md) + - Development Fundamentals + - Application Package Fundamentals + - [Application Package Overview](quick-start/application-package-overview.md) + - Application Package Structure + - [Application Package Structure in Stage Model)](quick-start/application-package-structure-stage.md) + - [Application Package Structure in FA Model](quick-start/application-package-structure-fa.md) + - [HAR File Structure](quick-start/har-structure.md) + - Multi-HAP Mechanism + - [Multi-HAP Design Objectives](quick-start/multi-hap-objective.md) + - [Multi-HAP Build View](quick-start/multi-hap-build-view.md) + - [Multi-HAP Development, Debugging, Release, and Deployment Process](quick-start/multi-hap-release-deployment.md) + - [Multi-HAP Usage Rules](quick-start/multi-hap-rules.md) + - [Multi-HAP Operation Mechanism and Data Communication Modes](quick-start/multi-hap-principles.md) + - [Application Installation and Uninstallation Process](quick-start/application-package-install-uninstall.md) + - Application Configuration Files in Stage Model + - [Application Configuration File Overview (Stage Model)](quick-start/application-configuration-file-overview-stage.md) + - [app.json5 Configuration File](quick-start/app-configuration-file.md) + - [module.json5 Configuration File](quick-start/module-configuration-file.md) + - Application Configuration Files in FA Model + - [Application Configuration File Overview (FA Model)](quick-start/application-configuration-file-overview-fa.md) + - [Internal Structure of the app Tag](quick-start/app-structure.md) + - [Internal structure of deviceConfig Tag](quick-start/deviceconfig-structure.md) + - [Internal Structure of the module Tag](quick-start/module-structure.md) + - [Resource Categories and Access](quick-start/resource-categories-and-access.md) + - Learning ArkTS + - [Getting Started with ArkTS](quick-start/arkts-get-started.md) + - ArkTS Syntax (Declarative UI) + - [Basic UI Description](quick-start/arkts-basic-ui-description.md) + - State Management + - [Basic Concepts](quick-start/arkts-state-mgmt-concepts.md) + - [State Management with Page-level Variables](quick-start/arkts-state-mgmt-page-level.md) + - [State Management with Application-level Variables](quick-start/arkts-state-mgmt-application-level.md) + - [Dynamic UI Element Building](quick-start/arkts-dynamic-ui-elememt-building.md) + - [Rendering Control](quick-start/arkts-rendering-control.md) + - [Restrictions and Extensions](quick-start/arkts-restrictions-and-extensions.md) - Development - - [Ability Development](ability/Readme-EN.md) - - [UI Development](ui/Readme-EN.md) - - [Common Event and Notification](notification/Readme-EN.md) - - [Window Manager](windowmanager/Readme-EN.md) - - [WebGL](webgl/Readme-EN.md) - - [Media](media/Readme-EN.md) - - [Security](security/Readme-EN.md) - - [Connectivity](connectivity/Readme-EN.md) - - [Data Management](database/Readme-EN.md) - - [File Management](file-management/Readme-EN.md) - - [Telephony](telephony/Readme-EN.md) - - [Task Management](task-management/Readme-EN.md) - - [Device Management](device/Readme-EN.md) - - [Device Usage Statistics](device-usage-statistics/Readme-EN.md) - - [DFX](dfx/Readme-EN.md) - - [Internationalization](internationalization/Readme-EN.md) - - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md) - - [Using Native APIs in Application Projects](napi/Readme-EN.md) + - [Application Models](application-models/Readme-EN.md) + - [UI Development](ui/Readme-EN.md) + - [Common Event and Notification](notification/Readme-EN.md) + - [Window Manager](windowmanager/Readme-EN.md) + - [WebGL](webgl/Readme-EN.md) + - [Media](media/Readme-EN.md) + - [Security](security/Readme-EN.md) + - [Connectivity](connectivity/Readme-EN.md) + - [Data Management](database/Readme-EN.md) + - [File Management](file-management/Readme-EN.md) + - [Telephony](telephony/Readme-EN.md) + - [Task Management](task-management/Readme-EN.md) + - [Device Management](device/Readme-EN.md) + - [Device Usage Statistics](device-usage-statistics/Readme-EN.md) + - [DFX](dfx/Readme-EN.md) + - [Internationalization](internationalization/Readme-EN.md) + - [Application Test](application-test/Readme-EN.md) + - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md) + - [Using Native APIs in Application Projects](napi/Readme-EN.md) - Tools - [DevEco Studio (OpenHarmony) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md) - Hands-On Tutorials - [Samples](https://gitee.com/openharmony/applications_app_samples/blob/master/README.md) - [Codelabs](https://gitee.com/openharmony/codelabs) - API References - - [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md) - - [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md) - - APIs - - [JS and TS APIs](reference/apis/Readme-EN.md) - - Native APIs - - [Standard Libraries](reference/native-lib/third_party_libc/musl.md) - - [Node_API](reference/native-lib/third_party_napi/napi.md) + - [SystemCapability](reference/syscap.md) + - [SystemCapability List](reference/syscap-list.md) + - [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md) + - [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md) + - [JS Service Widget UI Components](reference/js-service-widget-ui/Readme-EN.md) + - APIs + - [ArkTS and JS APIs](reference/apis/Readme-EN.md) + - [Error Codes](reference/errorcodes/Readme-EN.md) + - Native APIs + - [Standard Libraries](reference/native-lib/third_party_libc/musl.md) + - [Node_API](reference/native-lib/third_party_napi/napi.md) - [FAQs](faqs/Readme-EN.md) - Contribution - - [How to Contribute](../contribute/documentation-contribution.md) + - [How to Contribute](../contribute/documentation-contribution.md) diff --git a/en/application-dev/application-dev-guide-for-gitee.md b/en/application-dev/application-dev-guide-for-gitee.md index f074e19065..96e956f86e 100644 --- a/en/application-dev/application-dev-guide-for-gitee.md +++ b/en/application-dev/application-dev-guide-for-gitee.md @@ -18,7 +18,7 @@ To facilitate your application development, we provide development guidelines fo First thing first, familiarize yourself with the two cornerstone frameworks in OpenHarmony applications: -- Application framework: [Ability Development](ability/Readme-EN.md) +- Application framework: [Application Models](application-models/Readme-EN.md) - UI framework: [UI Development](ui/Readme-EN.md) All applications should be developed on top of these frameworks. @@ -37,6 +37,7 @@ Then, equip yourself for developing the key features, with the following guideli - [Device Usage Statistics](device-usage-statistics/Readme-EN.md) - [DFX](dfx/Readme-EN.md) - [Internationalization](internationalization/Readme-EN.md) +- [Application Test](application-test/Readme-EN.md) - [IDL Specifications and User Guide](IDL/idl-guidelines.md) - [Using Native APIs in Application Projects](napi/Readme-EN.md) @@ -56,11 +57,11 @@ API references encompass all components and APIs available in OpenHarmony, helpi They are organized as follows: - [Component Reference (TypeScript-based Declarative Development Paradigm)](reference/arkui-ts/Readme-EN.md) - -- [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md) -- APIs - - [JS and TS APIs](reference/apis/Readme-EN.md) - - Native APIs +- [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md) +- [JS Service Widget UI Components](reference/js-service-widget-ui/Readme-EN.md) +- APIs + - [JS and TS APIs](reference/apis/Readme-EN.md) + - Native APIs - [Standard Library](reference/native-lib/third_party_libc/musl.md) - [Node_API](reference/native-lib/third_party_napi/napi.md) diff --git a/en/application-dev/application-dev-guide.md b/en/application-dev/application-dev-guide.md index 2b22839820..b9bc5bb92e 100644 --- a/en/application-dev/application-dev-guide.md +++ b/en/application-dev/application-dev-guide.md @@ -18,7 +18,7 @@ To facilitate your application development, we provide development guidelines fo First thing first, familiarize yourself with the two cornerstone frameworks in OpenHarmony applications: -- Application framework: [Ability Development](ability/fa-brief.md) +- Application framework: [Application Models](application-models/application-model-composition.md) - UI framework: [UI Development](ui/arkui-overview.md) All applications should be developed on top of these frameworks. @@ -35,8 +35,9 @@ Then, equip yourself for developing the key features, with the following guideli - [Task Management](task-management/background-task-overview.md) - [Device](device/usb-overview.md) - [Device Usage Statistics](device-usage-statistics/device-usage-statistics-overview.md) -- [DFX](dfx/hiappevent-overview.md) +- [DFX](dfx/hiappevent-guidelines.md) - [Internationalization](internationalization/international-overview.md) +- [Application Test](application-test/arkxtest-guidelines.md) - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md) - [Using Native APIs in Application Projects](napi/napi-guidelines.md) @@ -59,7 +60,9 @@ They are organized as follows: - [Component Reference (JavaScript-based Web-like Development Paradigm)](reference/arkui-js/Readme-EN.md) -- [JS and TS APIs](reference/apis/js-apis-DataUriUtils.md) +- [JS Service Widget UI Components](reference/js-service-widget-ui/Readme-EN.md) + +- [JS and TS APIs](reference/apis/js-apis-ability-dataUriUtils.md) - Native APIs - [Standard Library](reference/native-lib/third_party_libc/musl.md) diff --git a/en/application-dev/application-test/Readme.md b/en/application-dev/application-test/Readme-EN.md similarity index 100% rename from en/application-dev/application-test/Readme.md rename to en/application-dev/application-test/Readme-EN.md diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md index 35e00ce945..105928883e 100644 --- a/en/application-dev/reference/apis/Readme-EN.md +++ b/en/application-dev/reference/apis/Readme-EN.md @@ -125,9 +125,14 @@ - [continuationResult](js-apis-continuation-continuationResult.md) - Common Event and Notification + - [@ohos.commonEventManager (Recommended)](js-apis-commonEventManager.md) - [@ohos.events.emitter](js-apis-emitter.md) + - [@ohos.notificationManager (Recommended)](js-apis-notificationManager.md) + - [@ohos.notificationSubscribe (Recommended)](js-apis-notificationSubscribe.md) + - [@ohos.commonEvent (To Be Deprecated Soon)](js-apis-commonEvent.md) - [@ohos.notification](js-apis-notification.md) - - application/[EventHub](js-apis-inner-application-eventHub.md) + - application + - [EventHub](js-apis-inner-application-eventHub.md) - Bundle Management - [@ohos.bundle.appControl](js-apis-appControl.md) - [@ohos.bundle.bundleManager](js-apis-bundleManager.md) @@ -154,6 +159,8 @@ - [shortcutInfo](js-apis-bundleManager-shortcutInfo.md) - UI Page - [@ohos.animator](js-apis-animator.md) + - [@ohos.curves](js-apis-curve.md) + - [@ohos.matrix4](js-apis-matrix4.md) - [@ohos.mediaquery](js-apis-mediaquery.md) - [@ohos.promptAction](js-apis-promptAction.md) - [@ohos.router](js-apis-router.md) @@ -202,7 +209,7 @@ - [@ohos.data.distributedDataObject](js-apis-data-distributedobject.md) - [@ohos.data.distributedKVStore](js-apis-distributedKVStore.md) - [@ohos.data.preferences](js-apis-data-preferences.md) - - [@ohos.data.relationalStore](js-apis-data-relationalStore.md) + - [@ohos.data.rdb](js-apis-data-rdb.md) - [@ohos.data.ValuesBucket](js-apis-data-valuesBucket.md) - data/rdb - [resultSet](js-apis-data-resultset.md) @@ -251,6 +258,8 @@ - Basic Features - [@ohos.accessibility](js-apis-accessibility.md) - [@ohos.accessibility.config](js-apis-accessibility-config.md) + - [@ohos.accessibility.GesturePat](js-apis-accessibility-GesturePath.md) + - [@ohos.accessibility.GesturePoint](js-apis-accessibility-GesturePoint.md) - [@ohos.application.AccessibilityExtensionAbility](js-apis-application-accessibilityExtensionAbility.md) - [@ohos.faultLogger](js-apis-faultLogger.md) - [@ohos.hichecker](js-apis-hichecker.md) @@ -260,10 +269,11 @@ - [@ohos.hiTraceChain](js-apis-hitracechain.md) - [@ohos.hiTraceMeter](js-apis-hitracemeter.md) - [@ohos.hiviewdfx.hiAppEvent](js-apis-hiviewdfx-hiappevent.md) - - [@ohos.inputMethod](js-apis-inputmethod.md) - - [@ohos.inputMethodEngine](js-apis-inputmethodengine.md) + - [@ohos.inputmethod](js-apis-inputmethod.md) + - [@ohos.inputmethodengine](js-apis-inputmethodengine.md) - [@ohos.inputmethodextensionability](js-apis-inputmethod-extension-ability.md) - [@ohos.inputmethodextensioncontext](js-apis-inputmethod-extension-context.md) + - [@ohos.inputmethodsubtype](js-apis-inputmethod-subtype.md) - [@ohos.pasteboard](js-apis-pasteboard.md) - [@ohos.screenLock](js-apis-screen-lock.md) - [@ohos.systemTime](js-apis-system-time.md) @@ -272,12 +282,15 @@ - [@ohos.web.webview](js-apis-webview.md) - [console](js-apis-logs.md) - [Timer](js-apis-timer.md) - - application/[AccessibilityExtensionContext](js-apis-accessibility-extension-context.md) + - application + - [AccessibilityExtensionContext](js-apis-inner-application-accessibilityExtensionContext.md) - Device Management - [@ohos.batteryInfo ](js-apis-battery-info.md) + - [@ohos.batteryStatistics](js-apis-batteryStatistics.md) - [@ohos.brightness](js-apis-brightness.md) - [@ohos.deviceInfo](js-apis-device-info.md) - [@ohos.distributedHardware.deviceManager](js-apis-device-manager.md) + - [@ohos.geoLocationManager](js-apis-geoLocationManager.md) - [@ohos.multimodalInput.inputConsumer](js-apis-inputconsumer.md) - [@ohos.multimodalInput.inputDevice](js-apis-inputdevice.md) - [@ohos.multimodalInput.inputDeviceCooperate](js-apis-cooperate.md) @@ -305,7 +318,11 @@ - [@ohos.account.osAccount](js-apis-osAccount.md) - Custom Management - [@ohos.configPolicy](js-apis-configPolicy.md) - - [@ohos.EnterpriseAdminExtensionAbility](js-apis-EnterpriseAdminExtensionAbility.md) + - [@ohos.enterprise.deviceInfo](js-apis-enterprise-deviceInfo.md) + - [@ohos.enterpriseAdminExtensionAbility](js-apis-EnterpriseAdminExtensionAbility.md) + - [@ohos.enterprise.adminManager](js-apis-enterprise-adminManager.md) + - [@ohos.enterprise.dateTimeManager](js-apis-enterprise-dateTimeManager.md) + - Language Base Class Library - [@ohos.buffer](js-apis-buffer.md) - [@ohos.convertxml](js-apis-convertxml.md) @@ -339,7 +356,6 @@ - [@ohos.bundleState](js-apis-deviceUsageStatistics.md) - [@ohos.bytrace](js-apis-bytrace.md) - [@ohos.data.storage](js-apis-data-storage.md) - - [@ohos.data.rdb](js-apis-data-rdb.md) - [@ohos.data.distributedData](js-apis-distributed-data.md) - [@ohos.distributedBundle](js-apis-Bundle-distributedBundle.md) - [@ohos.document](js-apis-document.md) diff --git a/en/application-dev/website.md b/en/application-dev/website.md index 8eb6c7e4ba..34fb5393b7 100644 --- a/en/application-dev/website.md +++ b/en/application-dev/website.md @@ -1,42 +1,174 @@ # Application Development + - [Application Development Overview](application-dev-guide.md) - Quick Start - - Getting Started - - [Preparations](quick-start/start-overview.md) + - [Before You Start](quick-start/start-overview.md) - [Getting Started with ArkTS in Stage Model](quick-start/start-with-ets-stage.md) - [Getting Started with ArkTS in FA Model](quick-start/start-with-ets-fa.md) - [Getting Started with JavaScript in FA Model](quick-start/start-with-js-fa.md) - Development Fundamentals - - [Application Package Structure Configuration File (FA Model)](quick-start/package-structure.md) - - [Application Package Structure Configuration File (Stage Model)](quick-start/stage-structure.md) - - [SysCap](quick-start/syscap.md) - - [HarmonyAppProvision Configuration File](quick-start/app-provision-structure.md) + - Application Package Fundamentals + - [Application Package Overview](quick-start/application-package-overview.md) + - Application Package Structure + - [Application Package Structure in Stage Model](quick-start/application-package-structure-stage.md) + - [Application Package Structure in FA Model](quick-start/application-package-structure-fa.md) + - [HAR File Structure](quick-start/har-structure.md) + - Multi-HAP Mechanism + - [Multi-HAP Design Objectives](quick-start/multi-hap-objective.md) + - [Multi-HAP Build View](quick-start/multi-hap-build-view.md) + - [Multi-HAP Development, Debugging, Release, and Deployment Process](quick-start/multi-hap-release-deployment.md) + - [Multi-HAP Usage Rules](quick-start/multi-hap-rules.md) + - [Multi-HAP Operation Mechanism and Data Communication Modes](quick-start/multi-hap-principles.md) + - [Application Installation and Uninstallation Process](quick-start/application-package-install-uninstall.md) + - Application Configuration Files in Stage Model + - [Application Configuration File Overview (Stage Model)](quick-start/application-configuration-file-overview-stage.md) + - [app.json5 Configuration File](quick-start/app-configuration-file.md) + - [module.json5 Configuration File](quick-start/module-configuration-file.md) + - Application Configuration Files in FA Model + - [Application Configuration File Overview (FA Model)](quick-start/application-configuration-file-overview-fa.md) + - [Internal Structure of the app Tag](quick-start/app-structure.md) + - [Internal structure of deviceConfig Tag](quick-start/deviceconfig-structure.md) + - [Internal Structure of the module Tag](quick-start/module-structure.md) + - [Resource Categories and Access](quick-start/resource-categories-and-access.md) + - Learning ArkTS + - [Getting Started with ArkTS](quick-start/arkts-get-started.md) + - ArkTS Syntax (Declarative UI) + - [Basic UI Description](quick-start/arkts-basic-ui-description.md) + - State Management + - [Basic Concepts](quick-start/arkts-state-mgmt-concepts.md) + - [State Management with Page-level Variables](quick-start/arkts-state-mgmt-page-level.md) + - [State Management with Application-level Variables](quick-start/arkts-state-mgmt-application-level.md) + - [Dynamic UI Element Building](quick-start/arkts-dynamic-ui-elememt-building.md) + - [Rendering Control](quick-start/arkts-rendering-control.md) + - [Restrictions and Extensions](quick-start/arkts-restrictions-and-extensions.md) - Development - - Ability Development - - [Ability Framework Overview](ability/ability-brief.md) - - [Context Usage](ability/context-userguide.md) - - FA Model - - [FA Model Overview](ability/fa-brief.md) - - [Page Ability Development](ability/fa-pageability.md) - - [Service Ability Development](ability/fa-serviceability.md) - - [Data Ability Development](ability/fa-dataability.md) - - [FA Widget Development](ability/fa-formability.md) - - Stage Model - - [Stage Model Overview](ability/stage-brief.md) - - [Ability Development](ability/stage-ability.md) - - [Service Extension Ability Development](ability/stage-serviceextension.md) - - [Ability Continuation Development](ability/stage-ability-continuation.md) - - [Ability Call Development](ability/stage-call.md) - - [Stage Widget Development](ability/stage-formextension.md) - - Other - - [WantAgent Development](ability/wantagent.md) - - [Ability Assistant Usage](ability/ability-assistant-guidelines.md) - - [ContinuationManager Development](ability/continuationmanager.md) - - [Test Framework Usage](ability/ability-delegator.md) - - - + - Application Models + - Application Model Overview + - [Elements of the Application Model](application-models/application-model-composition.md) + - [Interpretation of the Application Model](application-models/application-model-description.md) + - Stage Model Development + - [Stage Model Development Overview](application-models/stage-model-development-overview.md) + - Stage Mode Application Components + - [Application- or Component-Level Configuration](application-models/application-component-configuration-stage.md) + - UIAbility Component + - [UIAbility Component Overview](application-models/uiability-overview.md) + - [UIAbility Component Lifecycle](application-models/uiability-lifecycle.md) + - [UIAbility Component Launch Type](application-models/uiability-launch-type.md) + - [UIAbility Component Usage](application-models/uiability-usage.md) + - [Data Synchronization Between UIAbility and UI](application-models/uiability-data-sync-with-ui.md) + - [Intra-Device Interaction Between UIAbility Components](application-models/uiability-intra-device-interaction.md) + - ExtensionAbility Component + - [ExtensionAbility Component Overview](application-models/extensionability-overview.md) + - [ServiceExtensionAbility](application-models/serviceextensionability.md) + - [DataShareExtensionAbility](application-models/datashareextensionability.md) + - [FormExtensionAbility (Widget)](application-models/widget-development-stage.md) + - [AbilityStage Component Container](application-models/abilitystage.md) + - [Context](application-models/application-context-stage.md) + - Want + - [Want Overview](application-models/want-overview.md) + - [Matching Rules of Explicit Want and Implicit Want](application-models/explicit-implicit-want-mappings.md) + - [Common action and entities Values](application-models/actions-entities.md) + - [Using Explicit Want to Start an Ability](application-models/ability-startup-with-explicit-want.md) + - [Using Implicit Want to Open a Website](application-models/ability-startup-with-implicit-want.md) + - [Using Want to Share Data Between Applications](application-models/data-share-via-want.md) + - [Component Startup Rules](application-models/component-startup-rules.md) + - Inter-Device Application Component Interaction (Continuation) + - [Continuation Overview](application-models/inter-device-interaction-hop-overview.md) + - [Cross-Device Migration](application-models/hop-cross-device-migration.md) + - [Multi-device Collaboration](application-models/hop-multi-device-collaboration.md) + - IPC + - [Process Model](application-models/process-model-stage.md) + - Common Events + - [Introduction to Common Events](application-models/common-event-overview.md) + - [Subscribing to Common Events](application-models/common-event-subscription.md) + - [Publishing Common Events](application-models/common-event-publish.md) + - [Unsubscribing from Common Events](application-models/common-event-unsubscription.md) + - [Background Services](application-models/background-services.md) + - Inter-Thread Communication + - [Thread Model](application-models/thread-model-stage.md) + - [Using Emitter for Inter-Thread Communication](application-models/itc-with-emitter.md) + - [Using Worker for Inter-Thread Communication](application-models/itc-with-worker.md) + - Mission Management + - [Mission Management Scenarios](application-models/mission-management-overview.md) + - [Mission Management and Launch Type](application-models/mission-management-launch-type.md) + - [Page Stack and MissionList](application-models/page-mission-stack.md) + - FA Model Development + - [FA Model Development Overview](application-models/fa-model-development-overview.md) + - FA Mode Application Components + - [Application- or Component-Level Configuration](application-models/application-component-configuration-fa.md) + - PageAbility Component Development + - [PageAbility Component Overview](application-models/pageability-overview.md) + - [PageAbility Component Configuration](application-models/pageability-configuration.md) + - [PageAbility Lifecycle](application-models/pageability-lifecycle.md) + - [PageAbility Launch Type](application-models/pageability-launch-type.md) + - [Creating a PageAbility](application-models/create-pageability.md) + - [Starting a Local PageAbility](application-models/start-local-pageability.md) + - [Stopping a PageAbility](application-models/stop-pageability.md) + - [Starting a Remote PageAbility](application-models/start-remote-pageability.md) + - [Starting a Specified Page](application-models/start-page.md) + - [Window Properties](application-models/window-properties.md) + - [Requesting Permissions](application-models/request-permissions.md) + - [Redirection Rules](application-models/redirection-rules.md) + - ServiceAbility Component Development + - [ServiceAbility Component Overview](application-models/serviceability-overview.md) + - [ServiceAbility Component Configuration](application-models/serviceability-configuration.md) + - [ServiceAbility Lifecycle](application-models/serviceability-lifecycle.md) + - [Creating a ServiceAbility](application-models/create-serviceability.md) + - [Starting a ServiceAbility](application-models/start-serviceability.md) + - [Connecting to a ServiceAbility](application-models/connect-serviceability.md) + - DataAbility Component Development + - [DataAbility Component Overview](application-models/dataability-overview.md) + - [DataAbility Component Configuration](application-models/dataability-configuration.md) + - [DataAbility Lifecycle](application-models/dataability-lifecycle.md) + - [Creating a DataAbility](application-models/create-dataability.md) + - [Starting a DataAbility](application-models/start-dataability.md) + - [Accessing a DataAbility](application-models/access-dataability.md) + - [DataAbility Permission Control](application-models/dataability-permission-control.md) + - [Widget Development](application-models/widget-development-fa.md) + - [Context](application-models/application-context-fa.md) + - [Want](application-models/want-fa.md) + - IPC + - [Process Model](application-models/process-model-fa.md) + - [Common Events](application-models/common-event-fa.md) + - [Background Services](application-models/rpc.md) + - Inter-Thread Communication + - [Thread Model](application-models/thread-model-fa.md) + - [Inter-Thread Communication](application-models/itc-fa-overview.md) + - [Mission Management](application-models/mission-management-fa.md) + - Development of Component Interaction Between the FA Model and Stage Model + - [Component Interaction Between the FA Model and Stage Model](application-models/fa-stage-interaction-overview.md) + - [Starting a UIAbility from the FA Model](application-models/start-uiability-from-fa.md) + - [Connecting to a ServiceExtensionAbility from the FA Model](application-models/bind-serviceextensionability-from-fa.md) + - [Accessing a DataShareExtensionAbility from the FA Model](application-models/access-datashareextensionability-from-fa.md) + - [Starting a PageAbility from the Stage Model](application-models/start-pageability-from-stage.md) + - [Connecting to a ServiceAbility from the Stage Model](application-models/bind-serviceability-from-stage.md) + - Switching from the FA Model to the Stage Model + - [Model Switching Overview](application-models/model-switch-overview.md) + - Configuration File Switching + - [Differences in Configuration Files](application-models/configuration-file-diff.md) + - [Switching of app and deviceConfig](application-models/app-deviceconfig-switch.md) + - [Switching of module](application-models/module-switch.md) + - Component Switching + - [PageAbility Switching](application-models/pageability-switch.md) + - [ServiceAbility Switching](application-models/serviceability-switch.md) + - [DataAbility Switching](application-models/dataability-switch.md) + - [Widget Switching](application-models/widget-switch.md) + - API Switching + - [API Switching Overview](application-models/api-switch-overview.md) + - [Context Switching](application-models/context-switch.md) + - [featureAbility Switching](application-models/featureability-switch.md) + - [particleAbility Switching](application-models/particleability-switch.md) + - [LifecycleForm Switching](application-models/lifecycleform-switch.md) + - [LifecycleApp Switching](application-models/lifecycleapp-switch.md) + - [LifecycleService Switching](application-models/lifecycleservice-switch.md) + - [LifecycleData Switching](application-models/lifecycledata-switch.md) + - [DataAbilityHelper Switching](application-models/dataabilityhelper-switch.md) + - [mediaLibrary Switching](application-models/medialibrary-switch.md) + - [request Switching](application-models/request-switch.md) + - [resourceManager Switching](application-models/resourcemanager-switch.md) + - [window Switching](application-models/window-switch.md) + - [Storage Switching](application-models/storage-switch.md) - UI Development - [ArkUI Overview](ui/arkui-overview.md) - ArkTS-based Declarative Development Paradigm @@ -192,6 +324,7 @@ - hapsigner - [hapsigner Overview](security/hapsigntool-overview.md) - [hapsigner Guide](security/hapsigntool-guidelines.md) + - [HarmonyAppProvision Configuration File](security/app-provision-structure.md) - Connectivity - Network Management - [Network Management Overview](connectivity/net-mgmt-overview.md) @@ -228,7 +361,8 @@ - [Media Asset Management](file-management/medialibrary-resource-guidelines.md) - [File Path Management](file-management/medialibrary-filepath-guidelines.md) - [Album Management](file-management/medialibrary-album-guidelines.md) - + - File Access Framework + - [File Access Framework Overview](file-management/file-access-framework-overview.md) - Task Management - Background Task Management - [Background Task Management Overview](task-management/background-task-overview.md) @@ -236,6 +370,9 @@ - [Continuous Task Development](task-management/continuous-task-dev-guide.md) - [Work Scheduler Development](task-management/work-scheduler-dev-guide.md) - [Efficiency Resource Request Development](task-management/efficiency-resources-apply-dev-guide.md) + - Agent-Powered Reminder + - [Agent-Powered Reminder Overview](task-management/reminder-agent-overview.md) + - [Agent-Powered Reminder Development](task-management/reminder-agent-development.md) - Device - USB Service - [USB Service Overview](device/usb-overview.md) @@ -250,9 +387,9 @@ - Vibrator - [Vibrator Overview](device/vibrator-overview.md) - [Vibrator Development](device/vibrator-guidelines.md) - - Update Service - - [Sample Server Overview](device/sample-server-overview.md) - - [Sample Server Development](device/sample-server-guidelines.md) + - Multimodal Input + - [Input Device Development](device/inputdevice-guidelines.md) + - [Mouse Pointer Development](device/pointerstyle-guidelines.md) - Update Service - [Sample Server Overview](device/sample-server-overview.md) - [Sample Server Development](device/sample-server-guidelines.md) @@ -265,10 +402,15 @@ - [Development of Distributed Call Chain Tracing](dfx/hitracechain-guidelines.md) - Error Management - [Development of Error Manager](dfx/errormanager-guidelines.md) + - [Development of Application Recovery](dfx/apprecovery-guidelines.md) - Internationalization - [Internationalization Overview](internationalization/international-overview.md) - [Internationalization Development (intl)](internationalization/intl-guidelines.md) - [Internationalization Development (i18n)](internationalization/i18n-guidelines.md) + - Application Test + - [arkXtest User Guide](application-test/arkxtest-guidelines.md) + - [SmartPerf User Guide](application-test/smartperf-guidelines.md) + - [wukong User Guide](application-test/wukong-guidelines.md) - [OpenHarmony IDL Specifications and User Guide](IDL/idl-guidelines.md) - Native APIs - [Using Native APIs in Application Projects](napi/napi-guidelines.md) @@ -276,13 +418,23 @@ - [Raw File Development](napi/rawfile-guidelines.md) - [Native Window Development](napi/native-window-guidelines.md) - [Using MindSpore Lite for Model Inference](napi/mindspore-lite-guidelines.md) + - [Connecting the Neural Network Runtime to an AI Inference Framework](napi/neural-network-runtime-guidelines.md) - Tools - [DevEco Studio (OpenHarmony) User Guide](quick-start/deveco-studio-user-guide-for-openharmony.md) + - Debugging Tools + - [Ability Assistant](tools/aa-tool.md) + - [Bundle Manager](tools/bm-tool.md) + - Packing and Unpacking Tools + - [Packing Tools](tools/packing-tool.md) + - [Unpacking Tools](tools/unpacking-tool.md) + - [Common Event Manager](tools/anm-tool.md) + - [Advanced Notification Manager](tools/cem-tool.md) - Hands-On Tutorials - [Samples](https://gitee.com/openharmony/applications_app_samples/blob/master/README.md) - [Codelabs](https://gitee.com/openharmony/codelabs) - API References - - [SysCap List](reference/syscap-list.md) + - [SystemCapability](reference/syscap.md) + - [SystemCapability List](reference/syscap-list.md) - Component Reference (ArkTS-based Declarative Development Paradigm) - [Component Overview](reference/arkui-ts/ts-components-summary.md) - Universal Component Information @@ -386,7 +538,6 @@ - [Counter](reference/arkui-ts/ts-container-counter.md) - [Flex](reference/arkui-ts/ts-container-flex.md) - [FlowItem](reference/arkui-ts/ts-container-flowitem.md) - - [GridContainer](reference/arkui-ts/ts-container-gridcontainer.md) - [GridCol](reference/arkui-ts/ts-container-gridcol.md) - [GridRow](reference/arkui-ts/ts-container-gridrow.md) - [Grid](reference/arkui-ts/ts-container-grid.md) @@ -549,6 +700,7 @@ - [Style Inheritance](reference/arkui-js/js-components-custom-style.md) - [slot](reference/arkui-js/js-components-custom-slot.md) - [Lifecycle Definition](reference/arkui-js/js-components-custom-lifecycle.md) + - [Dynamic Component Creation](reference/arkui-js/js-components-create-elements.md) - [Data Type Attributes](reference/arkui-js/js-appendix-types.md) - JS Service Widget UI Components - JS Service Widget UI Framework @@ -611,7 +763,7 @@ - [@ohos.application.AbilityLifecycleCallback](reference/apis/js-apis-application-abilityLifecycleCallback.md) - [@ohos.application.AbilityStage](reference/apis/js-apis-application-abilityStage.md) - [@ohos.application.context](reference/apis/js-apis-application-context.md) - - [@ohos.application.DataShareExtensionAbility](reference/apis/js-apis-application-DataShareExtensionAbility.md) + - [@ohos.application.DataShareExtensionAbility](reference/apis/js-apis-application-dataShareExtensionAbility.md) - [@ohos.application.EnvironmentCallback](reference/apis/js-apis-application-environmentCallback.md) - [@ohos.application.ExtensionAbility](reference/apis/js-apis-application-extensionAbility.md) - [@ohos.application.FormExtension](reference/apis/js-apis-application-formExtension.md) @@ -713,10 +865,12 @@ - [continuationExtraParams](reference/apis/js-apis-continuation-continuationExtraParams.md) - [continuationResult](reference/apis/js-apis-continuation-continuationResult.md) - Common Event and Notification - - [@ohos.commonEvent](reference/apis/js-apis-commonEvent.md) + - [@ohos.commonEventManager](reference/apis/js-apis-commonEventManager.md) - [@ohos.events.emitter](reference/apis/js-apis-emitter.md) + - [@ohos.notificationManager (Recommended)](reference/apis/js-apis-notificationManager.md) + - [@ohos.notificationSubscribe (Recommended)](reference/apis/js-apis-notificationSubscribe.md) + - [@ohos.commonEvent (To Be Deprecated Soon)](reference/apis/js-apis-commonEvent.md) - [@ohos.notification](reference/apis/js-apis-notification.md) - - [@ohos.reminderAgent](reference/apis/js-apis-reminderAgent.md) - application - [EventHub](reference/apis/js-apis-inner-application-eventHub.md) - Bundle Management @@ -745,6 +899,8 @@ - [shortcutInfo](reference/apis/js-apis-bundleManager-shortcutInfo.md) - UI Page - [@ohos.animator](reference/apis/js-apis-animator.md) + - [@ohos.curves](reference/apis/js-apis-curve.md) + - [@ohos.matrix4](reference/apis/js-apis-matrix4.md) - [@ohos.mediaquery](reference/apis/js-apis-mediaquery.md) - [@ohos.promptAction](reference/apis/js-apis-promptAction.md) - [@ohos.router](reference/apis/js-apis-router.md) @@ -794,7 +950,7 @@ - [@ohos.data.distributedKVStore](reference/apis/js-apis-distributedKVStore.md) - [@ohos.data.preferences](reference/apis/js-apis-data-preferences.md) - [@ohos.data.rdb](reference/apis/js-apis-data-rdb.md) - - [@ohos.data.ValuesBucket](reference/apis/js-apis-data-ValuesBucket.md) + - [@ohos.data.ValuesBucket](reference/apis/js-apis-data-valuesBucket.md) - data/rdb - [resultSet](reference/apis/js-apis-data-resultset.md) - File Management @@ -802,7 +958,7 @@ - [@ohos.data.fileAccess](reference/apis/js-apis-fileAccess.md) - [@ohos.fileExtensionInfo](reference/apis/js-apis-fileExtensionInfo.md) - [@ohos.fileio](reference/apis/js-apis-fileio.md) - - [@ohos.filemanagement.userfile_manager](reference/apis/js-apis-userfilemanager.md) + - [@ohos.filemanagement.userFileManager](reference/apis/js-apis-userFileManager.md) - [@ohos.multimedia.medialibrary](reference/apis/js-apis-medialibrary.md) - [@ohos.securityLabel](reference/apis/js-apis-securityLabel.md) - [@ohos.statfs](reference/apis/js-apis-statfs.md) @@ -831,13 +987,19 @@ - [@ohos.nfc.controller](reference/apis/js-apis-nfcController.md) - [@ohos.nfc.tag](reference/apis/js-apis-nfcTag.md) - [@ohos.rpc](reference/apis/js-apis-rpc.md) - - [@ohos.wifi](reference/apis/js-apis-wifi.md) - - [@ohos.wifiext](reference/apis/js-apis-wifiext.md) + - [@ohos.wifiManager (Recommended)](reference/apis/js-apis-wifiManager.md) + - [@ohos.wifiManagerExt (Recommended)](reference/apis/js-apis-wifiManagerExt.md) + - [@ohos.wifi (To Be Deprecated Soon)](reference/apis/js-apis-wifi.md) + - [@ohos.wifiext (To Be Deprecated Soon)](reference/apis/js-apis-wifiext.md) + - tag - [nfctech](reference/apis/js-apis-nfctech.md) - [tagSession](reference/apis/js-apis-tagSession.md) - Basic Features - [@ohos.accessibility](reference/apis/js-apis-accessibility.md) - [@ohos.accessibility.config](reference/apis/js-apis-accessibility-config.md) + - [@ohos.accessibility.GesturePath](reference/apis/js-apis-accessibility-GesturePath.md) + - [@ohos.accessibility.GesturePoint](reference/apis/js-apis-accessibility-GesturePoint.md) + - [@ohos.application.AccessibilityExtensionAbility](reference/apis/js-apis-application-accessibilityExtensionAbility.md) - [@ohos.faultLogger](reference/apis/js-apis-faultLogger.md) - [@ohos.hichecker](reference/apis/js-apis-hichecker.md) - [@ohos.hidebug](reference/apis/js-apis-hidebug.md) @@ -859,12 +1021,15 @@ - [@ohos.web.webview](reference/apis/js-apis-webview.md) - [console](reference/apis/js-apis-logs.md) - [Timer](reference/apis/js-apis-timer.md) + - application + - [AccessibilityExtensionContext](reference/apis/js-apis-inner-application-accessibilityExtensionContext.md) - Device Management - [@ohos.batteryInfo](reference/apis/js-apis-battery-info.md) + - [@ohos.batteryStatistics](reference/apis/js-apis-batteryStatistics.md) - [@ohos.brightness](reference/apis/js-apis-brightness.md) - [@ohos.deviceInfo](reference/apis/js-apis-device-info.md) - [@ohos.distributedHardware.deviceManager](reference/apis/js-apis-device-manager.md) - - [@ohos.geolocation](reference/apis/js-apis-geolocation.md) + - [@ohos.geoLocationManager](reference/apis/js-apis-geoLocationManager.md) - [@ohos.multimodalInput.inputConsumer](reference/apis/js-apis-inputconsumer.md) - [@ohos.multimodalInput.inputDevice](reference/apis/js-apis-inputdevice.md) - [@ohos.multimodalInput.inputDeviceCooperate](reference/apis/js-apis-cooperate.md) @@ -890,10 +1055,12 @@ - [@ohos.account.appAccount](reference/apis/js-apis-appAccount.md) - [@ohos.account.distributedAccount](reference/apis/js-apis-distributed-account.md) - [@ohos.account.osAccount](reference/apis/js-apis-osAccount.md) - - Custom Management - [@ohos.configPolicy](reference/apis/js-apis-configPolicy.md) - - [@ohos.EnterpriseAdminExtensionAbility](reference/apis/js-apis-EnterpriseAdminExtensionAbility.md) + - [@ohos.enterprise.deviceInfo](reference/apis/js-apis-enterprise-deviceInfo.md) + - [@ohos.enterprise.EnterpriseAdminExtensionAbility](reference/apis/js-apis-EnterpriseAdminExtensionAbility.md) + - [@ohos.enterprise.adminManager](reference/apis/js-apis-enterprise-adminManager.md) + - [@ohos.enterprise.dateTimeManager](reference/apis/js-apis-enterprise-dateTimeManager.md) - Language Base Class Library - [@ohos.buffer](reference/apis/js-apis-buffer.md) - [@ohos.convertxml](reference/apis/js-apis-convertxml.md) @@ -970,13 +1137,19 @@ - [remoteAbilityInfo](reference/apis/js-apis-bundle-remoteAbilityInfo.md) - [shortcutInfo](reference/apis/js-apis-bundle-ShortcutInfo.md) - Error Codes + - [Universal Error Codes](reference/errorcodes/errorcode-universal.md) - Ability Framework - [Ability Error Codes](reference/errorcodes/errorcode-ability.md) - [Distributed Scheduler Error Codes](reference/errorcodes/errorcode-DistributedSchedule.md) + - [Form Error Codes](reference/errorcodes/errorcode-form.md) - Bundle Management - [Bundle Error Codes](reference/errorcodes/errorcode-bundle.md) - [zlib Error Codes](reference/errorcodes/errorcode-zlib.md) + - Common Events and Notification + - [Event Error Codes](reference/errorcodes/errorcode-CommonEventService.md) + - [DistributedNotificationService Error Codes](reference/errorcodes/errorcode-DistributedNotificationService.md) - UI Page + - [Animator Error Codes](reference/errorcodes/errorcode-animator.md) - [promptAction Error Codes](reference/errorcodes/errorcode-promptAction.md) - [Router Error Codes](reference/errorcodes/errorcode-router.md) - Graphics @@ -1000,30 +1173,46 @@ - [HUKS Error Codes](reference/errorcodes/errorcode-huks.md) - Data Management - [RDB Error Codes](reference/errorcodes/errorcode-data-rdb.md) + - [Distributed KV Store Error Codes](reference/errorcodes/errorcode-distributedKVStore.md) - [Preferences Error Codes](reference/errorcodes/errorcode-preferences.md) + - File Management + - [File Management Error Codes](reference/errorcodes/errorcode-filemanagement.md) - Network Management - [Upload and Download Error Codes](reference/errorcodes/errorcode-request.md) + - Connectivity + - [NFC Error Codes](reference/errorcodes/errorcode-nfc.md) + - [RPC Error Codes](reference/errorcodes/errorcode-rpc.md) - Basic Features + - [Accessibility Error Codes](reference/errorcodes/errorcode-accessibility.md) - [FaultLogger Error Codes](reference/errorcodes/errorcode-faultlogger.md) - [Application Event Logging Error Codes](reference/errorcodes/errorcode-hiappevent.md) - [HiSysEvent Error Codes](reference/errorcodes/errorcode-hisysevent.md) - [HiDebug Error Codes](reference/errorcodes/errorcode-hiviewdfx-hidebug.md) - [Input Method Framework Error Codes](reference/errorcodes/errorcode-inputmethod-framework.md) - [Pasteboard Error Codes](reference/errorcodes/errorcode-pasteboard.md) + - [Screen Lock Management Error Codes](reference/errorcodes/errorcode-screenlock.md) - [Webview Error Codes](reference/errorcodes/errorcode-webview.md) - Account Management - [Account Error Codes](reference/errorcodes/errorcode-account.md) - [App Account Error Codes](reference/errorcodes/errorcode-app-account.md) - Device Management + - [Power Consumption Statistics Error Codes](reference/errorcodes/errorcode-batteryStatistics.md) + - [Brightness Error Codes](reference/errorcodes/errorcode-brightness.md) + - [Power Manager Error Codes](reference/errorcodes/errorcode-power.md) + - [Running Lock Error Codes](reference/errorcodes/errorcode-runninglock.md) + - [Thermal Manager Error Codes](reference/errorcodes/errorcode-thermal.md) - [Device Management Error Codes](reference/errorcodes/errorcode-device-manager.md) + - [Location Subsystem Error Codes](reference/errorcodes/errorcode-geoLocationManager.md) - [Screen Hopping Error Codes](reference/errorcodes/errorcode-multimodalinput.md) - [Sensor Error Codes](reference/errorcodes/errorcode-sensor.md) - [Vibrator Error Codes](reference/errorcodes/errorcode-vibrator.md) - [System Parameter Error Codes](reference/errorcodes/errorcode-system-parameterV9.md) - [USB Error Codes](reference/errorcodes/errorcode-usb.md) - - Language Base Class Library - - [Buffer Error Codes](reference/errorcodes/errorcode-buffer.md) - - [containers Error Codes](reference/errorcodes/errorcode-containers.md) + - [Update Error Codes](reference/errorcodes/errorcode-update.md) + - Customization Management + - [Enterprise Device Management Error Codes](reference/errorcodes/errorcode-enterpriseDeviceManager.md) + - Test + - [UiTest Error Codes](reference/errorcodes/errorcode-uitest.md) - Native APIs - Standard Libraries Supported by Native APIs - [Node_API](reference/native-lib/third_party_napi/napi.md) @@ -1035,17 +1224,21 @@ - [OpenGL ES 3.0 Symbols Exported from Native APIs](reference/native-lib/third_party_opengl/openglesv3-symbol.md) - FAQs - [Guide to Switching to Full SDK](quick-start/full-sdk-switch-guide.md) + - [Programming Languages](faqs/faqs-language.md) - [Ability Framework Development](faqs/faqs-ability.md) - [Bundle Management Development](faqs/faqs-bundle.md) - [ArkUI (ArkTS) Development](faqs/faqs-ui-ets.md) - + - [ArkUI Web Component (ArkTS) Development](faqs/faqs-web-arkts.md) - [ArkUI (JavaScript) Development](faqs/faqs-ui-js.md) + - [Common Event and Notification Development](faqs/faqs-event-notification.md) - [Graphics and Image Development](faqs/faqs-graphics.md) - [File Management Development](faqs/faqs-file-management.md) - [Media Development](faqs/faqs-media.md) - [Network and Connection Development](faqs/faqs-connectivity.md) - [Device Management Development](faqs/faqs-data-management.md) - [Device Management Development](faqs/faqs-device-management.md) + - [DFX Development](faqs/faqs-dfx.md) + - [Intl Development](faqs/faqs-international.md) - [Native API Usage](faqs/faqs-native.md) - [Usage of Third- and Fourth-Party Libraries](faqs/faqs-third-party-library.md) - [IDE Usage](faqs/faqs-ide.md) -- GitLab From 5ea9d17e4dc4d17451784b5b74bbe3846c8d6164 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Thu, 12 Jan 2023 21:31:32 +0800 Subject: [PATCH 196/383] update docs Signed-off-by: Annie_wang --- .../security/accesstoken-guidelines.md | 13 ++++++------ .../security/app-provision-structure.md | 20 +++++++++---------- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/en/application-dev/security/accesstoken-guidelines.md b/en/application-dev/security/accesstoken-guidelines.md index 0e45400d14..2f2661b187 100644 --- a/en/application-dev/security/accesstoken-guidelines.md +++ b/en/application-dev/security/accesstoken-guidelines.md @@ -13,7 +13,7 @@ This document describes the following operations: ## Declaring Permissions in the Configuration File -During the development, you need to declare the permissions required by your application one by one in the project configuration file. The application cannot obtain the permissions that are not declared in the configuration file. OpenHarmony provides two application models: FA model and stage model. For more information, see Application Models. The application bundle and configuration file vary with the application model. +During the development, you need to declare the permissions required by your application one by one in the project configuration file. The application cannot obtain the permissions that are not declared in the configuration file. OpenHarmony provides two application models: FA model and stage model. For more information, see [Application Models](../application-models/application-model-description.md). The application bundle and configuration file vary with the application model. > **NOTE**
The default APL of an application is **normal**. When an application needs the **system_basic** or **system_core** APL, you must declare the permission in the configuration file and the [Access Control List (ACL)](#declaring-permissions-in-the-acl). @@ -119,7 +119,7 @@ For example, if an application needs to access audio files of a user and capture If an application needs to access user privacy information or use system abilities, for example, accessing location or calendar information or using the camera to take photos or record videos, it must request the permission from users. A permission verification is performed first to determine whether the current invoker has the corresponding permission. If the application has not obtained that permission, a dialog box will be displayed to request user authorization. The following figure shows an example. -> **NOTE**
Each time before an API protected by a permission is accessed, the **requestPermissionsFromUser()** API will be called to request user authorization. After a permission is dynamically granted, the user may revoke the permission. Therefore, the previously granted authorization status cannot be persistent. +> **NOTE**
Each time before an API protected by a permission is accessed, the [**requestPermissionsFromUser()**](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9) API will be called to request user authorization. After a permission is dynamically granted, the user may revoke the permission. Therefore, the previously granted authorization status cannot be persistent. ### Stage Model @@ -127,20 +127,20 @@ Example: Request the permission to read calendar information for an app. 1. Apply for the **ohos.permission.READ_CALENDAR** permission. For details, see [Declaring Permissions in the Configuration File](#declaring-permissions-in-the-configuration-file). -2. Call **requestPermissionsFromUser()** in the **onWindowStageCreate()** callback of the UIAbility to dynamically apply for the permission, or request user authorization on the UI based on service requirements. The return value of **requestPermissionsFromUser()** indicates whether the application has the target permission. If yes, the target API can be called normally. - +2. Call [**requestPermissionsFromUser()**](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9) in the **onWindowStageCreate()** callback of the UIAbility to dynamically apply for the permission, or request user authorization on the UI based on service requirements. The return value of [requestPermissionsFromUser()](../reference/apis/js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9) indicates whether the app has the target permission. If yes, the target API can be called normally. + Request user authorization in UIAbility. ```typescript import UIAbility from '@ohos.app.ability.UIAbility'; - import Window from '@ohos.window'; + import window from '@ohos.window'; import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; import { Permissions } from '@ohos.abilityAccessCtrl'; export default class EntryAbility extends UIAbility { // ... - onWindowStageCreate(windowStage: Window.WindowStage) { + onWindowStageCreate(windowStage: window.WindowStage) { // Main window is created, set main page for this ability let context = this.context; let AtManager = abilityAccessCtrl.createAtManager(); @@ -244,4 +244,3 @@ By default, the **user_grant** permissions must be dynamically authorized by the } ] ``` - \ No newline at end of file diff --git a/en/application-dev/security/app-provision-structure.md b/en/application-dev/security/app-provision-structure.md index d31cd6c690..35d199ebd7 100644 --- a/en/application-dev/security/app-provision-structure.md +++ b/en/application-dev/security/app-provision-structure.md @@ -4,12 +4,12 @@ The **HarmonyAppProvision** configuration file (also called profile) is the file ## Configuration File Internal Structure The **HarmonyAppProvision** file consists of several parts, which are described in the table below. -| Name | Description | Data Type| Yes | Initial Value Allowed| +| Name | Description | Data Type| Mandatory | Initial Value Allowed| | ----------- | ---------------------------------------------------------------------------------------- | -------- | -------- | -------- | -| version-code | Version number of the **HarmonyAppProvision** file format. The value is a positive integer containing 32 or less digits.| Number | Yes| No | -| version-name | Description of the version number. It is recommended that the value consist of three segments, for example, **A.B.C**. | String | Yes| No| +| version-code | Version number of the **HarmonyAppProvision** file format. The value is a positive integer containing 32 or less digits.| Number | Yes | No | +| version-name | Description of the version number. It is recommended that the value consist of three segments, for example, **A.B.C**. | String | Yes | No| | uuid | Unique ID of the **HarmonyAppProvision** file. | String | Yes | No| -| type | Type of the **HarmonyAppProvision** file. The value can be **debug** (for application debugging) or **release** (for application release). The recommended value is **debug**.| String | Yes| No| +| type | Type of the **HarmonyAppProvision** file. The value can be **debug** (for application debugging) or **release** (for application release). The recommended value is **debug**.| String | Yes | No| | issuer | Issuer of the **HarmonyAppProvision** file. | String | Yes | No| | validity | Validity period of the **HarmonyAppProvision** file. For details, see [Internal Structure of the validity Object](#internal-structure-of-the-validity-object). | Object | Yes | No | | bundle-info | Information about the application bundle and developer. For details, see [Internal Structure of the bundle-info Object](#internal-structure-of-the-bundle-info-object). | Object | Yes | No | @@ -58,8 +58,8 @@ An example of the **HarmonyAppProvision** file is as follows: | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ---------- | ------------------------------- | ------- | ------- | --------- | -| not-before | Start time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes| No | -| not-after | End time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes| No | +| not-before | Start time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes | No | +| not-after | End time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes | No | ### Internal Structure of the bundle-info Object @@ -74,14 +74,14 @@ An example of the **HarmonyAppProvision** file is as follows: ### Internal Structure of the acls Object -The **acls** object contains the [ACL](accesstoken-overview.md) configured for your application. It should be noted that you still need to add the ACL information to the **requestPermissions** attribute in the application configuration file. +The **acls** object contains the [ACL](accesstoken-overview.md) configured for your application. It should be noted that you still need to add the ACL information to the [**requestPermissions**](../quick-start/module-configuration-file.md#requestpermissions) attribute in the application configuration file. | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | -| allowed-acls | [ACLs](../security/accesstoken-overview.md) configured for your application.| String array | No| No | +| allowed-acls | [ACLs](../security/accesstoken-overview.md) configured for your application.| String array | No | No | ### Internal Structure of the permissions Object -The **permissions** object contains restricted permissions required for your application. Different from the ACLs set in the **acls** object, these permissions need user authorization during the running of your application. It should be noted that you still need to add the ACL information to the **requestPermissions** attribute in the application configuration file. +The **permissions** object contains restricted permissions required for your application. Different from the ACLs set in the **acls** object, these permissions need user authorization during the running of your application. It should be noted that you still need to add the ACL information to the [**requestPermissions**](../quick-start/module-configuration-file.md#requestpermissions) attribute in the application configuration file. | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | @@ -93,7 +93,7 @@ The **debug-info** object contains debugging information of your application, ma | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | | device-id-type | Type of the device ID. Currently, only the udid type is supported.| String | No | No | -| device-ids | IDs of devices on which your application can be debugged.| String array | Optional| No | +| device-ids | IDs of devices on which your application can be debugged.| String array | No | No | ## Modifying the HarmonyAppProvision Configuration File -- GitLab From 5569c557feeb9b3377180fa87ad181a99a6364b5 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Thu, 12 Jan 2023 20:23:25 +0800 Subject: [PATCH 197/383] Update docs (13336) Signed-off-by: ester.zhou --- .../porting-dayu200-on_standard-demo.md | 456 +++++++++--------- .../porting-yangfan-on_standard-demo.md | 6 +- 2 files changed, 237 insertions(+), 225 deletions(-) diff --git a/en/device-dev/porting/porting-dayu200-on_standard-demo.md b/en/device-dev/porting/porting-dayu200-on_standard-demo.md index 5c8d0278ff..3cf6e1884f 100644 --- a/en/device-dev/porting/porting-dayu200-on_standard-demo.md +++ b/en/device-dev/porting/porting-dayu200-on_standard-demo.md @@ -1,6 +1,6 @@ # Standard System Solution – Rockchip RK3568 Porting Case -​This document describes how to port standard system functions based on the DAYU200 development board of the RK3568 chip from Rockchip. The porting processing mainly includes product configuration adding, kernel startup and upgrade, ADM-based conversion of audio, case summary of the camera, TP, LCD, Wi-Fi, BT, vibrator, sensor, and graphics display modules, as well as related function adaptation. +This document describes how to port standard system functions based on the DAYU200 development board of the RK3568 chip from Rockchip. The porting processing mainly includes product configuration adding, kernel startup and upgrade, ADM-based conversion of audio, case summary of the camera, TP, LCD, Wi-Fi, Bluetooth, vibrator, sensor, and graphics display modules, as well as related function adaptation. ## Product Configuration and Directory Planning @@ -81,10 +81,10 @@ RK3568 adaptation is to pack **ramdisk** compiled in the mainline version into * 1. Enable secondary boot. - Set **enable_ramdisk** in **productdefine/common/device/rk3568.json**. + Set **enable_ramdisk** in **productdefine/common/device/rk3568.json**. - ``` - { + ``` + { "device_name": "rk3568", "device_company": "hihope", "target_os": "ohos", @@ -93,32 +93,32 @@ RK3568 adaptation is to pack **ramdisk** compiled in the mainline version into * "device_build_path": "device/hihope/build", "enable_ramdisk": true, "build_selinux": true - } - ``` + } + ``` 2. Pack the **ramdsik.img** file compiled in the mainline version to **boot_linux.img**. -View the configuration as follows: - -RK supports **uboot** from **ramdisk**. You only need to add **ramdisk.img** to the configuration file of the packed **boot_linux.img**. Therefore, the **its** format of the mainline version is not used. Specifically, add the following content to the kernel compilation script **make-ohos.sh**: + View the configuration as follows: -``` -function make_extlinux_conf() -{ - dtb_path=$1 - uart=$2 - image=$3 - - echo "label rockchip-kernel-5.10" > ${EXTLINUX_CONF} - echo " kernel /extlinux/${image}" >> ${EXTLINUX_CONF} - echo " fdt /extlinux/${TOYBRICK_DTB}" >> ${EXTLINUX_CONF} - if [ "enable_ramdisk" == "${ramdisk_flag}" ]; then - echo " initrd /extlinux/ramdisk.img" >> ${EXTLINUX_CONF} - fi - cmdline="append earlycon=uart8250,mmio32,${uart} root=PARTUUID=614e0000-0000-4b53-8000-1d28000054a9 rw rootwait rootfstype=ext4" - echo " ${cmdline}" >> ${EXTLINUX_CONF} -} -``` + RK supports **uboot** from **ramdisk**. You only need to add **ramdisk.img** to the configuration file of the packed **boot_linux.img**. Therefore, the **its** format of the mainline version is not used. Specifically, add the following content to the kernel compilation script **make-ohos.sh**: + + ``` + function make_extlinux_conf() + { + dtb_path=$1 + uart=$2 + image=$3 + + echo "label rockchip-kernel-5.10" > ${EXTLINUX_CONF} + echo " kernel /extlinux/${image}" >> ${EXTLINUX_CONF} + echo " fdt /extlinux/${TOYBRICK_DTB}" >> ${EXTLINUX_CONF} + if [ "enable_ramdisk" == "${ramdisk_flag}" ]; then + echo " initrd /extlinux/ramdisk.img" >> ${EXTLINUX_CONF} + fi + cmdline="append earlycon=uart8250,mmio32,${uart} root=PARTUUID=614e0000-0000-4b53-8000-1d28000054a9 rw rootwait rootfstype=ext4" + echo " ${cmdline}" >> ${EXTLINUX_CONF} + } + ``` ### Packing @@ -613,99 +613,106 @@ For details about the configuration, see the HCS configuration section and **aud ##### DAI (i2s) Module 1. Read and write registers. + The idea is the same as that of the Codec module. Read the Linux DTS file and use the **regmap** function of Linux to read and write registers. - - ```c - int32_t Rk3568DeviceReadReg(unsigned long regBase, uint32_t reg, uint32_t *val) - { - AUDIO_DEVICE_LOG_ERR("entry"); - (void)regBase; - struct device_node *dmaOfNode = of_find_node_by_path("/i2s@fe410000"); - if(dmaOfNode == NULL) { - AUDIO_DEVICE_LOG_ERR("of_node is NULL."); - } - struct platform_device *platformdev = of_find_device_by_node(dmaOfNode); - struct rk3568_i2s_tdm_dev *i2s_tdm = dev_get_drvdata(&platformdev->dev); - - (void)regBase; - if (regmap_read(i2s_tdm->regmap, reg, val)) { - AUDIO_DEVICE_LOG_ERR("read register fail: [%04x]", reg); - return HDF_FAILURE; - } - return HDF_SUCCESS; - } - int32_t Rk3568DeviceWriteReg(unsigned long regBase, uint32_t reg, uint32_t value) - { - AUDIO_DEVICE_LOG_ERR("entry"); - (void)regBase; - struct device_node *dmaOfNode = of_find_node_by_path("/i2s@fe410000"); - if(dmaOfNode == NULL) { - AUDIO_DEVICE_LOG_ERR("of_node is NULL."); - } - struct platform_device *platformdev = of_find_device_by_node(dmaOfNode); - struct rk3568_i2s_tdm_dev *i2s_tdm = dev_get_drvdata(&platformdev->dev); - if (regmap_write(i2s_tdm->regmap, reg, value)) { - AUDIO_DEVICE_LOG_ERR("write register fail: [%04x] = %04x", reg, value); - return HDF_FAILURE; - } - return HDF_SUCCESS; - } - ``` - + ```c + int32_t Rk3568DeviceReadReg(unsigned long regBase, uint32_t reg, uint32_t *val) + { + AUDIO_DEVICE_LOG_ERR("entry"); + (void)regBase; + struct device_node *dmaOfNode = of_find_node_by_path("/i2s@fe410000"); + if(dmaOfNode == NULL) { + AUDIO_DEVICE_LOG_ERR("of_node is NULL."); + } + struct platform_device *platformdev = of_find_device_by_node(dmaOfNode); + struct rk3568_i2s_tdm_dev *i2s_tdm = dev_get_drvdata(&platformdev->dev); + + (void)regBase; + if (regmap_read(i2s_tdm->regmap, reg, val)) { + AUDIO_DEVICE_LOG_ERR("read register fail: [%04x]", reg); + return HDF_FAILURE; + } + return HDF_SUCCESS; + } + + int32_t Rk3568DeviceWriteReg(unsigned long regBase, uint32_t reg, uint32_t value) + { + AUDIO_DEVICE_LOG_ERR("entry"); + (void)regBase; + struct device_node *dmaOfNode = of_find_node_by_path("/i2s@fe410000"); + if(dmaOfNode == NULL) { + AUDIO_DEVICE_LOG_ERR("of_node is NULL."); + } + struct platform_device *platformdev = of_find_device_by_node(dmaOfNode); + struct rk3568_i2s_tdm_dev *i2s_tdm = dev_get_drvdata(&platformdev->dev); + if (regmap_write(i2s_tdm->regmap, reg, value)) { + AUDIO_DEVICE_LOG_ERR("write register fail: [%04x] = %04x", reg, value); + return HDF_FAILURE; + } + return HDF_SUCCESS; + } + ``` + 2. For other OPS functions: - Rk3568DaiDeviceInit + Original framework, which reads the **DAI_config.hcs** parameter list and works with HwParams to set parameters. - + + - Rk3568DaiHwParams + Configure the I2S MCLK/BCLK/LRCLK clocks. + 1. Calculate the MCLK based on different sampling rates. - ```c - int32_t RK3568I2sTdmSetSysClk(struct rk3568_i2s_tdm_dev *i2s_tdm, const struct AudioPcmHwParams *param) - { - /* Put set mclk rate into rockchip_i2s_tdm_set_mclk() */ - uint32_t sampleRate = param->rate; - uint32_t mclk_parent_freq = 0; - switch (sampleRate) { - case AUDIO_DEVICE_SAMPLE_RATE_8000: - case AUDIO_DEVICE_SAMPLE_RATE_16000: - case AUDIO_DEVICE_SAMPLE_RATE_24000: - case AUDIO_DEVICE_SAMPLE_RATE_32000: - case AUDIO_DEVICE_SAMPLE_RATE_48000: - case AUDIO_DEVICE_SAMPLE_RATE_64000: - case AUDIO_DEVICE_SAMPLE_RATE_96000: - mclk_parent_freq = i2s_tdm->bclk_fs * AUDIO_DEVICE_SAMPLE_RATE_192000; - break; - case AUDIO_DEVICE_SAMPLE_RATE_11025: - case AUDIO_DEVICE_SAMPLE_RATE_22050: - case AUDIO_DEVICE_SAMPLE_RATE_44100: - - mclk_parent_freq = i2s_tdm->bclk_fs * AUDIO_DEVICE_SAMPLE_RATE_176400; - break; - default: - AUDIO_DEVICE_LOG_ERR("Invalid LRCK freq: %u Hz\n", sampleRate); - return HDF_FAILURE; - } - i2s_tdm->mclk_tx_freq = mclk_parent_freq; - i2s_tdm->mclk_rx_freq = mclk_parent_freq; - - return HDF_SUCCESS; - } - ``` + ```c + int32_t RK3568I2sTdmSetSysClk(struct rk3568_i2s_tdm_dev *i2s_tdm, const struct AudioPcmHwParams *param) + { + /* Put set mclk rate into rockchip_i2s_tdm_set_mclk() */ + uint32_t sampleRate = param->rate; + uint32_t mclk_parent_freq = 0; + switch (sampleRate) { + case AUDIO_DEVICE_SAMPLE_RATE_8000: + case AUDIO_DEVICE_SAMPLE_RATE_16000: + case AUDIO_DEVICE_SAMPLE_RATE_24000: + case AUDIO_DEVICE_SAMPLE_RATE_32000: + case AUDIO_DEVICE_SAMPLE_RATE_48000: + case AUDIO_DEVICE_SAMPLE_RATE_64000: + case AUDIO_DEVICE_SAMPLE_RATE_96000: + mclk_parent_freq = i2s_tdm->bclk_fs * AUDIO_DEVICE_SAMPLE_RATE_192000; + break; + case AUDIO_DEVICE_SAMPLE_RATE_11025: + case AUDIO_DEVICE_SAMPLE_RATE_22050: + case AUDIO_DEVICE_SAMPLE_RATE_44100: + + mclk_parent_freq = i2s_tdm->bclk_fs * AUDIO_DEVICE_SAMPLE_RATE_176400; + break; + default: + AUDIO_DEVICE_LOG_ERR("Invalid LRCK freq: %u Hz\n", sampleRate); + return HDF_FAILURE; + } + i2s_tdm->mclk_tx_freq = mclk_parent_freq; + i2s_tdm->mclk_rx_freq = mclk_parent_freq; + + return HDF_SUCCESS; + } + ``` 2. Calculate the BCLK/LRclk frequency division coefficient based on the obtained MCLK. - Rk3568NormalTrigger + Complete a series of configurations based on the input and output types and commands (start/stop/pause/resume). + 1. Start and stop the MCLK. 2. Start and stop DMA transfer. 3. Start and stop transmission. - See the code for detailed implementation, and refer to the API functions of the native Linux I2S driver. - + See the code for detailed implementation, and refer to the API functions of the native Linux I2S driver. + ```c // Start or restore the process. if (streamType == AUDIO_RENDER_STREAM) { @@ -738,8 +745,7 @@ For details about the configuration, see the HCS configuration section and **aud AUDIO_DEVICE_LOG_ERR("i2s reg: 0x%x = 0x%x ", I2S_XFER, val); } ``` - - ##### Platform (DMA) Module +##### Platform (DMA) Module For other OPS functions: @@ -784,24 +790,24 @@ For other OPS functions: 5. Rk3568PcmPointer -After step 4 is complete, the ADM framework calls Rk3568PcmPointer to cyclically write CirBuf and calculate the pointer. + After step 4 is complete, the ADM framework calls Rk3568PcmPointer to cyclically write CirBuf and calculate the pointer. - ``` - - dma_chn = dmaRtd->dmaChn[DMA_TX_CHANNEL]; - buf_size = data->renderBufInfo.cirBufSize; - dmaengine_tx_status(dma_chn, dmaRtd->cookie[DMA_TX_CHANNEL], &dma_state); - if (dma_state.residue) { - currentPointer = buf_size - dma_state.residue; - *pointer = BytesToFrames(data->pcmInfo.frameSize, currentPointer); - } else { - *pointer = 0; - } - ``` + ``` + + dma_chn = dmaRtd->dmaChn[DMA_TX_CHANNEL]; + buf_size = data->renderBufInfo.cirBufSize; + dmaengine_tx_status(dma_chn, dmaRtd->cookie[DMA_TX_CHANNEL], &dma_state); + if (dma_state.residue) { + currentPointer = buf_size - dma_state.residue; + *pointer = BytesToFrames(data->pcmInfo.frameSize, currentPointer); + } else { + *pointer = 0; + } + ``` 6. Rk3568DmaPause - Use the native Linux DMA API function **dmaengine_terminate_async** to stop DMA transfer. + Use the native Linux DMA API function **dmaengine_terminate_async** to stop DMA transfer. ``` dmaengine_terminate_async(dmaChan); @@ -919,9 +925,9 @@ The code repository related to the camera chipset of RK3568 is **device_hihope** ``` #### Camera Driver Framework Configuration - Path of the RK3568 configuration file: +Path of the RK3568 configuration file: "vendor/hihope/rk3568/hdf_config/uhdf/device_info.hcs". - "vendor/hihope/rk3568/hdf_config/uhdf/device_info.hcs". For other platforms, refer to the RK3568 adaptation. +For other platforms, refer to the RK3568 adaptation. ``` hdi_server :: host { @@ -941,19 +947,26 @@ The code repository related to the camera chipset of RK3568 is **device_hihope** ``` Parameter description: - **Host**: A host node is an independent process. If an independent process is required, add a host node. - **Policy**: service publish policy. Set this parameter to **2** for the HDI service. - **moduleName**: name of the driver implementation library. - **serviceName**: service name, which must be globally unique. + +**Host**: A host node is an independent process. If an independent process is required, add a host node. + +**Policy**: service publish policy. Set this parameter to **2** for the HDI service. + +**moduleName**: name of the driver implementation library. + +**serviceName**: service name, which must be globally unique. Entry for implementing the Camera_host driver File path: drivers/peripheral/camera/interfaces/hdi_ipc/server/src/camera_host_driver.cpp Dispatch device service messages. - **cmd Id:** command ID of the request. - **Data:** pointer to other services or I/O requests - **Reply:** pointer to the content of the returned message + +**cmd Id:** command ID of the request. + +**Data:** pointer to other services or I/O requests. + +**Reply:** pointer to the content of the returned message. ``` static int32_t CameraServiceDispatch(struct HdfDeviceIoClient *client, int cmdId, @@ -964,7 +977,7 @@ static int32_t CameraServiceDispatch(struct HdfDeviceIoClient *client, int cmdId } ``` - Bind a device service: initializes the device service object and resource object. +Bind a device service: initializes the device service object and resource object. ``` int HdfCameraHostDriverBind(HdfDeviceObject *deviceObject) @@ -1091,7 +1104,7 @@ Three code compilation paths **chipset_build_deps**, **camera_device_manager_dep Take V4l2 as an example. The pipeline connection mode is to configure the connection in the HCS configuration file. The data source is called SourceNode, including hardware device control and data stream transfer. You can determine whether to add the ISPNode as required because the ISPNode and SensorNode can be unified as the SourceNode in many operations. SinkNode is the key point of data transmission in the pipeline. Data is transmitted back to the buffer queue. -​ A node in the pipeline is the abstraction of the hardware/software module. Therefore, the hardware module node needs to control the hardware module. Before controlling the hardware module, you need to obtain the **deviceManager** of the corresponding hardware module and transmit the control command/data buffer through the **deviceManager**, therefore, the **deviceManager** has a v4l2 device manager abstract module, which is used to create the manager and controller of each hardware device, such as sensorManager, IspManager, and sensorController. Therefore, the v4l2 device manager is the general manager of each hardware device. +A node in the pipeline is the abstraction of the hardware/software module. Therefore, the hardware module node needs to control the hardware module. Before controlling the hardware module, you need to obtain the **deviceManager** of the corresponding hardware module and transmit the control command/data buffer through the **deviceManager**, therefore, the **deviceManager** has a v4l2 device manager abstract module, which is used to create the manager and controller of each hardware device, such as sensorManager, IspManager, and sensorController. Therefore, the v4l2 device manager is the general manager of each hardware device. The controller in deviceManager directly interacts with the driver adaptation layer. @@ -1099,11 +1112,11 @@ Based on the preceding description, to adapt a chip platform based on the Linux The following directories are added: -​ **vendor/hihope/rk3568/hdf_config/uhdf/camera/**: HCS configuration file directory of the current chip product. +- **vendor/hihope/rk3568/hdf_config/uhdf/camera/**: HCS configuration file directory of the current chip product. -​ **device/hihope/rk3568/camera/**: code adaptation directory of the current chip product. +- **device/hihope/rk3568/camera/**: code adaptation directory of the current chip product. -​ **drivers/peripheral/camera/hal/adapter/platform/v4l2**: common platform code. +- **drivers/peripheral/camera/hal/adapter/platform/v4l2**: common platform code. #### HCS Configuration File Adaptation @@ -1139,7 +1152,7 @@ Take the RK3568 development board as an example. The HCS file must be stored in ``` - The **camera_host_config.hcs** file under **hdi_impl** contains the physical/logical camera configuration and capability configuration. The physical/logical camera configuration needs to be used in the HAL, and the logical camera and capability configuration need to be reported to the upper layer. Add the capability configuration based on the adapted chip product. The used capability values are key-value pairs, which are defined in **//drivers/peripheral/camera/hal/hdi_impl/include/camera_host/metadata_enum_map.h**. +The **camera_host_config.hcs** file under **hdi_impl** contains the physical/logical camera configuration and capability configuration. The physical/logical camera configuration needs to be used in the HAL, and the logical camera and capability configuration need to be reported to the upper layer. Add the capability configuration based on the adapted chip product. The used capability values are key-value pairs, which are defined in **//drivers/peripheral/camera/hal/hdi_impl/include/camera_host/metadata_enum_map.h**. ``` normal_preview :: pipeline_spec { @@ -2554,70 +2567,69 @@ Directory structure: The HDF WLAN driver framework consists of seven parts: Module, NetDevice, NetBuf, BUS, HAL, Client, and Message. You can implement the following functions during HDF adaptation of the Wi-Fi driver: -1) Initialize the driver module that adapts the HDF WLAN framework. +1. Initialize the driver module that adapts the HDF WLAN framework. -The following figure shows the code process. + The following figure shows the code process. -![dayu200-wifi-03.png](figures/dayu200/dayu200-wifi-03.png) + ![dayu200-wifi-03.png](figures/dayu200/dayu200-wifi-03.png) -The code is stored in **device/hihope/rk3568/wifi/bcmdhd_wifi6/hdf_driver_bdh_register.c**. + The code is stored in **device/hihope/rk3568/wifi/bcmdhd_wifi6/hdf_driver_bdh_register.c**. -``` -struct HdfDriverEntry g_hdfBdh6ChipEntry = { - .moduleVersion = 1, - .Bind = HdfWlanBDH6DriverBind, - .Init = HdfWlanBDH6ChipDriverInit, - .Release = HdfWlanBDH6ChipRelease, - .moduleName = "HDF_WLAN_CHIPS" -}; -HDF_INIT(g_hdfBdh6ChipEntry); -``` + ``` + struct HdfDriverEntry g_hdfBdh6ChipEntry = { + .moduleVersion = 1, + .Bind = HdfWlanBDH6DriverBind, + .Init = HdfWlanBDH6ChipDriverInit, + .Release = HdfWlanBDH6ChipRelease, + .moduleName = "HDF_WLAN_CHIPS" + }; + HDF_INIT(g_hdfBdh6ChipEntry); + ``` -During driver initialization, the SDIO main control board scans and detects the card, initializes the Wi-Fi chip, and creates and initializes the main API. + During driver initialization, the SDIO main control board scans and detects the card, initializes the Wi-Fi chip, and creates and initializes the main API. -2) Implement the HDF WLAN Base control-side APIs. +2. Implement the HDF WLAN Base control-side APIs. -The code is stored in **hdf_bdh_mac80211.c**. + The code is stored in **hdf_bdh_mac80211.c**. -``` -static struct HdfMac80211BaseOps g_bdh6_baseOps = { - .SetMode = BDH6WalSetMode, - .AddKey = BDH6WalAddKey, - .DelKey = BDH6WalDelKey, - .SetDefaultKey = BDH6WalSetDefaultKey, - .GetDeviceMacAddr = BDH6WalGetDeviceMacAddr, - .SetMacAddr = BDH6WalSetMacAddr, - .SetTxPower = BDH6WalSetTxPower, - .GetValidFreqsWithBand = BDH6WalGetValidFreqsWithBand, - .GetHwCapability = BDH6WalGetHwCapability, - .SendAction = BDH6WalSendAction, - .GetIftype = BDH6WalGetIftype, -}; -``` - -The preceding APIs are called in STA, AP, and P2P modes. + ``` + static struct HdfMac80211BaseOps g_bdh6_baseOps = { + .SetMode = BDH6WalSetMode, + .AddKey = BDH6WalAddKey, + .DelKey = BDH6WalDelKey, + .SetDefaultKey = BDH6WalSetDefaultKey, + .GetDeviceMacAddr = BDH6WalGetDeviceMacAddr, + .SetMacAddr = BDH6WalSetMacAddr, + .SetTxPower = BDH6WalSetTxPower, + .GetValidFreqsWithBand = BDH6WalGetValidFreqsWithBand, + .GetHwCapability = BDH6WalGetHwCapability, + .SendAction = BDH6WalSendAction, + .GetIftype = BDH6WalGetIftype, + }; + ``` -3) Implement APIs in HDF WLAN STA mode. + The preceding APIs are called in STA, AP, and P2P modes. -The following figure shows the call process in STA mode. +3. Implement APIs in HDF WLAN STA mode. -​ ![image-20220320161412663](figures/dayu200/dayu200-wifi-04.png) + The following figure shows the call process in STA mode. + ![image-20220320161412663](figures/dayu200/dayu200-wifi-04.png) -The code is stored in **hdf_mac80211_sta.c**. + The code is stored in **hdf_mac80211_sta.c**. -``` -struct HdfMac80211STAOps g_bdh6_staOps = { - .Connect = HdfConnect, - .Disconnect = HdfDisconnect, - .StartScan = HdfStartScan, - .AbortScan = HdfAbortScan, - .SetScanningMacAddress = HdfSetScanningMacAddress, -}; -``` + ``` + struct HdfMac80211STAOps g_bdh6_staOps = { + .Connect = HdfConnect, + .Disconnect = HdfDisconnect, + .StartScan = HdfStartScan, + .AbortScan = HdfAbortScan, + .SetScanningMacAddress = HdfSetScanningMacAddress, + }; + ``` -4) Implement APIs in HDF WLAN AP mode. +4. Implement APIs in HDF WLAN AP mode. -The following figure shows the call process in AP mode. + The following figure shows the call process in AP mode. ![image-20220320161432068](figures/dayu200/dayu200-wifi-05.png) @@ -2636,29 +2648,29 @@ struct HdfMac80211APOps g_bdh6_apOps = { }; ``` -5) Implement APIs in HDF WLAN P2P mode. +5. Implement APIs in HDF WLAN P2P mode. -The following figure shows the call process in P2P mode. + The following figure shows the call process in P2P mode. - ![image-20220320161442845](figures/dayu200/dayu200-wifi-06.png) + ![image-20220320161442845](figures/dayu200/dayu200-wifi-06.png) -``` -struct HdfMac80211P2POps g_bdh6_p2pOps = { - .RemainOnChannel = WalRemainOnChannel, - .CancelRemainOnChannel = WalCancelRemainOnChannel, - .ProbeReqReport = WalProbeReqReport, - .AddIf = WalAddIf, - .RemoveIf = WalRemoveIf, - .SetApWpsP2pIe = WalSetApWpsP2pIe, - .GetDriverFlag = WalGetDriverFlag, -}; -``` + ``` + struct HdfMac80211P2POps g_bdh6_p2pOps = { + .RemainOnChannel = WalRemainOnChannel, + .CancelRemainOnChannel = WalCancelRemainOnChannel, + .ProbeReqReport = WalProbeReqReport, + .AddIf = WalAddIf, + .RemoveIf = WalRemoveIf, + .SetApWpsP2pIe = WalSetApWpsP2pIe, + .GetDriverFlag = WalGetDriverFlag, + }; + ``` -6) Implement the event reporting APIs of the HDF WLAN framework. +6. Implement the event reporting APIs of the HDF WLAN framework. -The Wi-Fi driver needs to report events to the **wpa_supplicant** and **hostapd** applications, such as hotspot scanning results and association completion events of new STAs. For details about all APIs for reporting HDF WLAN events, see **drivers/framework/include/wifi/hdf_wifi_event.h**. + The Wi-Fi driver needs to report events to the **wpa_supplicant** and **hostapd** applications, such as hotspot scanning results and association completion events of new STAs. For details about all APIs for reporting HDF WLAN events, see **drivers/framework/include/wifi/hdf_wifi_event.h**. -The HDF WLAN APIs for reporting events are as follows. + The HDF WLAN APIs for reporting events are as follows. | API in Header File hdf_wifi_event.h | Description | | ----------------------------------- | ------------------------ | @@ -2806,7 +2818,7 @@ HCI defines how to exchange commands, events, and asynchronous and synchronous p ### Hardware Connection -According to the description of the RK3568 chip, the RK3568 chip does not integrate the Wi-Fi/Bluetooth function. The RK3568 chip needs to connect to an external Bluetooth chip to support the Bluetooth function, which complies with the preceding logical architecture. How is the physical connection between the host and the controller? You can view the development board specifications more clearly. +According to the description of the RK3568 chip, the RK3568 chip does not integrate the Wi-Fi/Bluetooth function. The RK3568 chip needs to connect to an external Bluetooth chip to support the Bluetooth function, which complies with the preceding logical architecture. Regarding the physical connection between the host and the controller, you can consult the development board specifications. ![](figures/dayu200/dayu200-bt-02.png) @@ -2816,7 +2828,7 @@ Pins 28-36 are UART (serial port). In addition, several pins are used for power #### What Is vendorlib? -The vendorlib is deployed on the host, and may be considered as a Bluetooth chip driver layer on the host, to shield technical details of different Bluetooth chips. From the perspective of code, the main functions are as follows: +vendorlib is deployed on the host, and may be considered as a Bluetooth chip driver layer on the host, to shield technical details of different Bluetooth chips. From the perspective of code, the main functions are as follows: 1. Provide a channel (file descriptor of the serial port) between Bluetooth chips for the protocol stack. @@ -2913,9 +2925,9 @@ static int init(const bt_vendor_callbacks_t *p_cb, unsigned char *local_bdaddr) } ``` -First function called by **vendorlib**. **vendorlib** only needs to save the callback and MAC addresses of the protocol stack. +The **init** function is the first function called by **vendorlib**. **vendorlib** only needs to save the callback and MAC addresses of the protocol stack. -2. **BT_OP_POWER_ON** processing +2. **BT_OP_POWER_ON** This operation needs to pull up the level of the power pin. In this function, the rfill device is used for processing, and the driver is not directly called to pull up the level. @@ -3006,15 +3018,15 @@ static int HciInitHal() 1. Name of the .so file of vendorlib -The .so file name of vendorlib must be **libbt_vendor.z.so** because it is used when the protocol stack opens the dynamic link library (DLL). + The .so file name of vendorlib must be **libbt_vendor.z.so** because it is used when the protocol stack opens the dynamic link library (DLL). 2. Firmware problem -Pay attention to the chip firmware during development. The firmware of some Bluetooth chips may not need to be upgraded, but it's a must for some chips. During the adaptation of the AP6257S, the firmware is not delivered at the beginning. As a result, the received Bluetooth signals are poor. Pay attention to the following points when delivering firmware: + Pay attention to the chip firmware during development. The firmware of some Bluetooth chips may not need to be upgraded, but it's a must for some chips. During the adaptation of the AP6257S, the firmware is not delivered at the beginning. As a result, the received Bluetooth signals are poor. Pay attention to the following points when delivering firmware: -2.1. For the AP6257S chip, the Bluetooth chip does not have a flash memory. Therefore, the firmware must be delivered again after the chip is powered on and off. + 2.1. For the AP6257S chip, the Bluetooth chip does not have a flash memory. Therefore, the firmware must be delivered again after the chip is powered on and off. -2.2. The firmware is processed based on the chip requirements. It is recommended that the reference code of the vendor be found. Take the Broadcom series chips as an example. The firmware delivery process is complex and is driven by a state machine. There are nine states in total: + 2.2. The firmware is processed based on the chip requirements. It is recommended that the reference code of the vendor be found. Take the Broadcom series chips as an example. The firmware delivery process is complex and is driven by a state machine. There are nine states in total: ```c / Hardware Configuration State */ @@ -3074,9 +3086,9 @@ For details, see the **hw_config_cback** function. 3. Pay attention to inter-system API differences. -The APIs of various systems may be slightly different, which requires special attention. Compared with the APIs of Android and OHOS, the definitions of the functions for **vendorlib** to call **xmit_cb** to send HCI commands are slightly different. + The APIs may vary slightly by system, which requires special attention. For example, the definitions of the functions for **vendorlib** to call **xmit_cb** to send HCI commands are slightly different on different systems. -Android: +Certain system: ```c /* define callback of the cmd_xmit_cb @@ -3092,7 +3104,7 @@ typedef void (*tINT_CMD_CBACK)(void* p_mem); typedef uint8_t (*cmd_xmit_cb)(uint16_t opcode, void* p_buf, tINT_CMD_CBACK p_cback); ``` -OHOS: +OpenHarmony: ```c /** @@ -3113,7 +3125,7 @@ packet. */ typedef uint8_t (*cmd_xmit_callback)(uint16_t opcode, void* p_buf); ``` -That is, after a command is sent in vendorlib, Android directly calls callback to notify the chip of the returned message, and OHOS notifies the chip of the returned message through the **BT_OP_EVENT_CALLBACK** operation code (see the definition of **bt_opcode_t**). The vendorlib needs to parse the message code in the packet to determine which message is processed by the chip, and then calls the corresponding processing function. +As shown above, after a command is sent in vendorlib, the certain system notifies the chip of the returned message through a callback, while OpenHarmony notifies the chip of the returned message through the **BT_OP_EVENT_CALLBACK** operation code (see the definition of **bt_opcode_t**). vendorlib needs to parse the message code in the packet to determine which message is to be processed by the chip, and then calls the corresponding processing function. ```c void hw_process_event(HC_BT_HDR *p_buf) @@ -3137,11 +3149,11 @@ void hw_process_event(HC_BT_HDR *p_buf) break; ``` -In addition, the OHOS returns the number of bytes in the sent message. If the value is less than or equal to **0**, the message fails to be sent, which is different from the return value of the Android API. +The returned messages are also different. OpenHarmony returns the number of bytes in the message. If the value is less than or equal to **0**, the message fails to be sent. 4. snoop log -Both Android and OHOS record HCI interaction messages. The OHOS system generates the **/data/log/bluetooth/snoop.log** file. You can use Wireshark or other packet analysis tools to view the interaction process between the host and controller, facilitating fault analysis. + Like other systems, OpenHarmony logs HCI records, which are saved in the **/data/log/bluetooth/snoop.log** file. This allows you to use Wireshark or other packet analysis tools to examine the interaction process between the host and controller, facilitating fault analysis. ## Sensor @@ -3149,7 +3161,7 @@ Both Android and OHOS record HCI interaction messages. The OHOS system generates ![dayu200-sensor-01.png](figures/dayu200/dayu200-sensor-01.png) -The RK3568 supports the accel sensor. TheOpenHarmony mainline version has the overall driver framework. You only need to implement the specific component driver. +RK3568 supports the accel sensor. The OpenHarmony mainline version has the overall driver framework. You only need to implement the specific component driver. ### Implementation of the mcx5566xa HDF Driver @@ -3197,7 +3209,7 @@ int32_t (*ReadData)(struct SensorCfgData *data); }; ``` -API for obtaining data on the X, Y, and Z axises +API for obtaining data on the X, Y, and Z axises: ```c int32_t ReadMxc6655xaData(struct SensorCfgData *cfg, struct SensorReportEvent *event) @@ -3240,7 +3252,7 @@ int32_t ReadMxc6655xaData(struct SensorCfgData *cfg, struct SensorReportEvent *e } ``` -Initialization +Initialization: ```c static int32_t InitMxc6655xa(struct SensorCfgData *data) @@ -3259,7 +3271,7 @@ static int32_t InitMxc6655xa(struct SensorCfgData *data) ### HCS Configuration -HCS configuration of the MXC6655XA accel sensor driver +HCS configuration of the MXC6655XA accel sensor driver: ```c device_sensor_mxc6655xa :: device { @@ -3275,7 +3287,7 @@ device_sensor_mxc6655xa :: device { } ``` -Register group configuration information of the MXC6655XA accel sensor +Register group configuration information of the MXC6655XA accel sensor: ```c #include "../sensor_common.hcs" @@ -3351,13 +3363,13 @@ root { The three-axis data of the sensor can be obtained during the UT test. -Test code path +Test code path: ```c drivers/peripheral/sensor/test/unittest/common/hdf_sensor_test.cpp ``` -Run the following command to compile the UT code: +Build UT code: ```c ./build.sh --product-name rk3568 --build-target hdf_test_sensor @@ -3394,7 +3406,7 @@ Code path: drivers/framework/model/misc/vibrator/driver/chipset/vibrator_linear_driver.c ``` -Implementation of the linear vibrator accelerometer driver entry function +Implementation of the linear vibrator accelerometer driver entry function: ```c struct HdfDriverEntry g_linearVibratorDriverEntry = { @@ -3410,7 +3422,7 @@ HDF_INIT(g_linearVibratorDriverEntry); ### HCS Configuration -HCS configuration of the driver +HCS configuration of the driver: ```c vibrator :: host { @@ -3440,7 +3452,7 @@ HCS configuration of the driver } ``` -HCS configuration of the linear vibrator +HCS configuration of the linear vibrator: ```c root { @@ -3461,13 +3473,13 @@ root { ### UT Test -Test Code Path +Test code path: ```c drivers/peripheral/misc/vibrator/test/unittest/common/hdf_vibrator_test.cpp ``` -UT Code Compilation +Build UT code: ```c ./build.sh --product-name rk3568 --build-target hdf_test_vibrator diff --git a/en/device-dev/porting/porting-yangfan-on_standard-demo.md b/en/device-dev/porting/porting-yangfan-on_standard-demo.md index 0ff7190e78..5e86dd6ee0 100644 --- a/en/device-dev/porting/porting-yangfan-on_standard-demo.md +++ b/en/device-dev/porting/porting-yangfan-on_standard-demo.md @@ -1429,7 +1429,7 @@ Now, there are two debugging ideas: -According to the entire debugging process, the camera supports the YUYV and MJPEG formats. By default, preview in **v4l2_main** uses the YUYV format. Change the format to MJEPG and try again. +According to the entire debugging process, the camera supports the YUYV and MJPEG formats. By default, preview in **v4l2_main** uses the YUYV format. Change the format to MJPEG and try again. Modification: @@ -1577,7 +1577,7 @@ Disable the Linux TP driver by disabling **TOUCHSCREEN_GT9XX** in the ** Date: Fri, 13 Jan 2023 09:42:14 +0800 Subject: [PATCH 198/383] fix:Update the USB module js interface guide Signed-off-by: luo-wei246 --- .../application-dev/device/usb-guidelines.md | 19 +++++++++++-------- .../reference/apis/js-apis-usb-deprecated.md | 10 +++++----- .../reference/apis/js-apis-usb.md | 10 +++++----- 3 files changed, 21 insertions(+), 18 deletions(-) diff --git a/zh-cn/application-dev/device/usb-guidelines.md b/zh-cn/application-dev/device/usb-guidelines.md index e21409b651..9c1a47cbf6 100644 --- a/zh-cn/application-dev/device/usb-guidelines.md +++ b/zh-cn/application-dev/device/usb-guidelines.md @@ -24,13 +24,13 @@ USB类开放能力如下,具体请查阅[API参考文档](../reference/apis/js | getDevices(): Array<Readonly<USBDevice>> | 获取接入主设备的USB设备列表。如果没有设备接入,那么将会返回一个空的列表。 | | setConfiguration(pipe: USBDevicePipe, config: USBConfig): number | 设置设备的配置。 | | setInterface(pipe: USBDevicePipe, iface: USBInterface): number | 设置设备的接口。 | -| claimInterface(pipe: USBDevicePipe, iface: USBInterface,force?: boolean): number | 注册通信接口。 | -| bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout?: number): Promise<number> | 批量传输。 | +| claimInterface(pipe: USBDevicePipe, iface: USBInterface, force ?: boolean): number | 注册通信接口。 | +| bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout ?: number): Promise<number> | 批量传输。 | | closePipe(pipe: USBDevicePipe): number | 关闭设备消息控制通道。 | | releaseInterface(pipe: USBDevicePipe, iface: USBInterface): number | 释放注册过的通信接口。 | | getFileDescriptor(pipe: USBDevicePipe): number | 获取文件描述符。 | | getRawDescriptor(pipe: USBDevicePipe): Uint8Array | 获取原始的USB描述符。 | -| controlTransfer(pipe: USBDevicePipe, contrlparam: USBControlParams, timeout?: number): Promise<number> | 控制传输。 | +| controlTransfer(pipe: USBDevicePipe, controlparam: USBControlParams, timeout ?: number): Promise<number> | 控制传输。 | ## 开发步骤 @@ -57,7 +57,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例 vendorId: 7531, productId: 2, clazz: 9, - subclass: 0, + subClass: 0, protocol: 1, devAddress: 1, busNum: 1, @@ -74,7 +74,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例 id: 0, protocol: 0, clazz: 9, - subclass: 0, + subClass: 0, alternateSetting: 0, name: "1-1", endpoints: [ @@ -115,11 +115,12 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例 ```js // 打开设备,获取数据传输通道。 let pipe = usb.connectDevice(deviceList[0]); + let interface1 = deviceList[0].configs[0].interfaces[0]; /* 打开对应接口,在设备信息(deviceList)中选取对应的interface。 interface1为设备配置中的一个接口。 */ - usb.claimInterface(pipe, interface1, true); + usb.claimInterface(pipe, interface1, true); ``` 4. 数据传输。 @@ -129,7 +130,9 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例 读取数据,在device信息中选取对应数据接收的endpoint来做数据传输 (endpoint.direction == 0x80);dataUint8Array是要读取的数据,类型为Uint8Array。 */ - + let inEndpoint = interface1.endpoints[2]; + let outEndpoint = interface1.endpoints[1]; + let dataUint8Array = new Uint8Array(1024); usb.bulkTransfer(pipe, inEndpoint, dataUint8Array, 15000).then(dataLength => { if (dataLength >= 0) { console.info("usb readData result Length : " + dataLength); @@ -142,7 +145,7 @@ USB设备可作为Host设备连接Device设备进行数据传输。开发示例 console.info("usb readData error : " + JSON.stringify(error)); }); // 发送数据,在device信息中选取对应数据发送的endpoint来做数据传输。(endpoint.direction == 0) - usb.bulkTransfer(pipe, endpoint, dataUint8Array, 15000).then(dataLength => { + usb.bulkTransfer(pipe, outEndpoint, dataUint8Array, 15000).then(dataLength => { if (dataLength >= 0) { console.info("usb writeData result write length : " + dataLength); } else { diff --git a/zh-cn/application-dev/reference/apis/js-apis-usb-deprecated.md b/zh-cn/application-dev/reference/apis/js-apis-usb-deprecated.md index c01fdc0979..c8d6a78aa5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-usb-deprecated.md +++ b/zh-cn/application-dev/reference/apis/js-apis-usb-deprecated.md @@ -45,7 +45,7 @@ console.log(`devicesList = ${JSON.stringify(devicesList)}`); vendorId: 7531, productId: 2, clazz: 9, - subclass: 0, + subClass: 0, protocol: 1, devAddress: 1, busNum: 1, @@ -62,7 +62,7 @@ console.log(`devicesList = ${JSON.stringify(devicesList)}`); id: 0, protocol: 0, clazz: 9, - subclass: 0, + subClass: 0, alternateSetting: 0, name: "1-1", endpoints: [ @@ -173,7 +173,7 @@ usb.requestRight(devicesName).then((ret) => { ## usb.claimInterface -claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number +claimInterface(pipe: USBDevicePipe, iface: USBInterface, force ?: boolean): number 注册通信接口。 @@ -350,7 +350,7 @@ let ret = usb.getFileDescriptor(devicepipe); ## usb.controlTransfer -controlTransfer(pipe: USBDevicePipe, controlparam: USBControlParams, timeout?: number): Promise<number> +controlTransfer(pipe: USBDevicePipe, controlparam: USBControlParams, timeout ?: number): Promise<number> 控制传输。 @@ -382,7 +382,7 @@ usb.controlTransfer(devicepipe, USBControlParams).then((ret) => { ## usb.bulkTransfer -bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout?: number): Promise<number> +bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout ?: number): Promise<number> 批量传输。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-usb.md b/zh-cn/application-dev/reference/apis/js-apis-usb.md index d0331a03cd..856991c14f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-usb.md +++ b/zh-cn/application-dev/reference/apis/js-apis-usb.md @@ -43,7 +43,7 @@ console.log(`devicesList = ${JSON.stringify(devicesList)}`); vendorId: 7531, productId: 2, clazz: 9, - subclass: 0, + subClass: 0, protocol: 1, devAddress: 1, busNum: 1, @@ -60,7 +60,7 @@ console.log(`devicesList = ${JSON.stringify(devicesList)}`); id: 0, protocol: 0, clazz: 9, - subclass: 0, + subClass: 0, alternateSetting: 0, name: "1-1", endpoints: [ @@ -253,7 +253,7 @@ if (usb.addRight(bundleName, devicesName) { ## usb.claimInterface -claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number +claimInterface(pipe: USBDevicePipe, iface: USBInterface, force ?: boolean): number 注册通信接口。 @@ -430,7 +430,7 @@ let ret = usb.getFileDescriptor(devicepipe); ## usb.controlTransfer -controlTransfer(pipe: USBDevicePipe, controlparam: USBControlParams, timeout?: number): Promise<number> +controlTransfer(pipe: USBDevicePipe, controlparam: USBControlParams, timeout ?: number): Promise<number> 控制传输。 @@ -462,7 +462,7 @@ usb.controlTransfer(devicepipe, USBControlParams).then((ret) => { ## usb.bulkTransfer -bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout?: number): Promise<number> +bulkTransfer(pipe: USBDevicePipe, endpoint: USBEndpoint, buffer: Uint8Array, timeout ?: number): Promise<number> 批量传输。 -- GitLab From 7d8088f6231320bd0c98ac844f88d69145e21578 Mon Sep 17 00:00:00 2001 From: wangtong Date: Thu, 12 Jan 2023 10:54:23 +0800 Subject: [PATCH 199/383] =?UTF-8?q?=E6=B7=BB=E5=8A=A0time=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=BC=82=E5=B8=B8=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangtong --- .../reference/apis/js-apis-system-time.md | 152 ++++++++++++++++++ .../reference/errorcodes/errorcode-time.md | 24 +++ 2 files changed, 176 insertions(+) create mode 100644 zh-cn/application-dev/reference/errorcodes/errorcode-time.md diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-time.md b/zh-cn/application-dev/reference/apis/js-apis-system-time.md index ac791285ca..0dcc947153 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-system-time.md +++ b/zh-cn/application-dev/reference/apis/js-apis-system-time.md @@ -29,6 +29,14 @@ setTime(time : number, callback : AsyncCallback<void>) : void | time | number | 是 | 目标时间戳(ms)。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| -1 | The parameter check failed or permission denied or system error. | + **示例:** ```js @@ -69,6 +77,14 @@ setTime(time : number) : Promise<void> | ------------------- | ------------------------- | | Promise<void> | 无返回结果的Promise对象。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| -1 | The parameter check failed or permission denied or system error. | + **示例:** ```js @@ -104,6 +120,14 @@ getCurrentTime(isNano: boolean, callback: AsyncCallback<number>): void | isNano | boolean | 是 | 返回结果是否为纳秒数。
- true:表示返回结果为纳秒数(ns)。
- false:表示返回结果为毫秒数(ms)。 | | callback | AsyncCallback<number> | 是 | 回调函数,返回自Unix纪元以来经过的时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -138,6 +162,14 @@ getCurrentTime(callback: AsyncCallback<number>): void | -------- | ----------- | ---- | ---------------------------------- | | callback | AsyncCallback<number> | 是 | 回调函数,返回自Unix纪元以来经过的时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -178,6 +210,14 @@ getCurrentTime(isNano?: boolean): Promise<number> | --------------------- | --------------------------- | | Promise<number> | Promise对象,返回自Unix纪元以来经过的时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -211,6 +251,14 @@ getRealActiveTime(isNano: boolean, callback: AsyncCallback<number>): void | isNano | boolean | 是 | 返回结果是否为纳秒数。
- true:表示返回结果为纳秒数(ns)。
- false:表示返回结果为毫秒数(ms)。 | | callback | AsyncCallback<number> | 是 | 回调函数,返回自系统启动以来经过的时间,但不包括度睡眠时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -245,6 +293,14 @@ getRealActiveTime(callback: AsyncCallback<number>): void | -------- | -------------- | ---- | --------------------- | | callback | AsyncCallback<number> | 是 | 回调函数,返回自系统启动以来经过的时间,但不包括度睡眠时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -285,6 +341,14 @@ getRealActiveTime(isNano?: boolean): Promise<number> | -------------- | -------------------------------- | | Promise<number> | Promise对象,返回自系统启动以来经过的时间,但不包括深度睡眠时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -318,6 +382,14 @@ getRealTime(isNano: boolean, callback: AsyncCallback<number>): void | isNano | boolean | 是 | 返回结果是否为纳秒数。
- true:表示返回结果为纳秒数(ns)。
- false:表示返回结果为毫秒数(ms)。 | | callback | AsyncCallback<number> | 是 | 回调函数,返回自系统启动以来经过的时间,包括深度睡眠时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -352,6 +424,14 @@ getRealTime(callback: AsyncCallback<number>): void | -------- | --------- | ---- | --------------------------- | | callback | AsyncCallback<number> | 是 | 回调函数,返回自系统启动以来经过的时间,包括深度睡眠时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -392,6 +472,14 @@ getRealTime(isNano?: boolean): Promise<number> | --------------------- | ------------------------------- | | Promise<number> | Promise对象,返回自系统启动以来经过的时间,包括深度睡眠时间。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -423,6 +511,14 @@ setDate(date: Date, callback: AsyncCallback<void>): void | date | Date | 是 | 目标日期。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| -1 | The parameter check failed or permission denied or system error. | + **示例:** ```js @@ -462,6 +558,14 @@ setDate(date: Date): Promise<void> | ------------------- | -------------------- | | Promise<void> | 无返回结果的Promise对象。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| -1 | The parameter check failed or permission denied or system error. | + **示例:** ```js @@ -495,6 +599,14 @@ getDate(callback: AsyncCallback<Date>): void | -------- | -------------- | ---- | --------------------- | | callback | AsyncCallback<Date> | 是 | 回调函数,返回当前系统日期。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -529,6 +641,14 @@ getDate(): Promise<Date> | ------------------- | ----------------------------------------- | | Promise<Date> | Promise对象,返回当前系统日期。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -560,6 +680,14 @@ setTimezone(timezone: string, callback: AsyncCallback<void>): void | timezone | string | 是 | 系统时区。 具体可见[支持的系统时区](#支持的系统时区) 。 | | callback | AsyncCallback<void> | 是 | 回调函数。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| -1 | The parameter check failed or permission denied or system error. | + **示例:** ```js @@ -598,6 +726,14 @@ setTimezone(timezone: string): Promise<void> | ------------------- | -------------------- | | Promise<void> | 无返回结果的Promise对象。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------------------------ | +| -1 | The parameter check failed or permission denied or system error. | + **示例:** ```js @@ -630,6 +766,14 @@ getTimezone(callback: AsyncCallback<string>): void | -------- | --------- | ---- | ------------------------ | | callback | AsyncCallback<string> | 是 | 回调函数,返回系统时区。具体可见[支持的系统时区](#支持的系统时区) 。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js @@ -664,6 +808,14 @@ getTimezone(): Promise<string> | --------------------- | ------------------------------------- | | Promise<string> | Promise对象,返回系统时区。具体可见[支持的系统时区](#支持的系统时区) 。 | +**错误码:** + +以下错误码的详细介绍请参见[时间时区错误码](../errorcodes/errorcode-time.md)。 + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------- | +| -1 | The parameter check failed or system error. | + **示例:** ```js diff --git a/zh-cn/application-dev/reference/errorcodes/errorcode-time.md b/zh-cn/application-dev/reference/errorcodes/errorcode-time.md new file mode 100644 index 0000000000..1ceca48513 --- /dev/null +++ b/zh-cn/application-dev/reference/errorcodes/errorcode-time.md @@ -0,0 +1,24 @@ +# 时间时区服务错误码 + +## -1 锁屏服务异常 + +**错误信息** + + The parameter check failed or permission denied or system error. + +**错误描述** + +参数校验失败、权限校验失败或者时间时区服务异常。 + +**可能原因** + +该错误码代表一种通用错误码,可根据错误信息判断具体异常,可能原因如下: +1. 参数校验失败,传入参数无效。 +2. 权限校验失败,权限未配置。应用设置时间未配置ohos.permission.SET_TIME或者设置时区未配置ohos.permission.SET_TIME_ZONE。 +3. 系统运行异常。内存申请、多线程处理等内核通用错误。 + +**处理步骤** + +1. 参数校验失败,传入参数无效。检查参数是否按照要求传入。 +2. 权限校验失败,应用设置时间配置ohos.permission.SET_TIME或者设置时区配置ohos.permission.SET_TIME_ZONE。 +3. 系统运行异常。确认内存是否足够。 -- GitLab From 5b03f9dce807445dd94c4aaab689e018ead3e139 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:34:31 +0000 Subject: [PATCH 200/383] add huks api Signed-off-by: zengyawen --- .../reference/native-apis/Readme-CN.md | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/native-apis/Readme-CN.md b/zh-cn/application-dev/reference/native-apis/Readme-CN.md index 54bf703ba8..523617f1f2 100644 --- a/zh-cn/application-dev/reference/native-apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/native-apis/Readme-CN.md @@ -19,6 +19,9 @@ - [VideoDecoder](_video_decoder.md) - [VideoEncoder](_video_encoder.md) - [Core](_core.md) + - [HuksKeyApi](_huks_key_api.md) + - [HuksParamSetApi](_huks_param_set_api.md) + - [HuksTypeApi](_huks_type_api.md) - 头文件 - [drawing_bitmap.h](drawing__bitmap_8h.md) - [drawing_brush.h](drawing__brush_8h.md) @@ -67,6 +70,9 @@ - [native_averrors.h](native__averrors_8h.md) - [native_avformat.h](native__avformat_8h.md) - [native_avmemory.h](native__avmemory_8h.md) + - [native_huks_api.h](native__huks__api_8h.md) + - [native_huks_param.h](native__huks__param_8h.md) + - [native_huks_type.h](native__huks__type_8h.md) - 结构体 - [OH_Drawing_BitmapFormat](_o_h___drawing___bitmap_format.md) - [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) @@ -104,4 +110,16 @@ - [OHOS::AVSession::AVSessionPixelMap](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md) - [OHOS::AVSession::OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) - [OHOS::AVSession::SessionListener](_o_h_o_s_1_1_a_v_session_1_1_session_listener.md) - - [OHOS::AVSession::SessionToken](_o_h_o_s_1_1_a_v_session_1_1_session_token.md) \ No newline at end of file + - [OHOS::AVSession::SessionToken](_o_h_o_s_1_1_a_v_session_1_1_session_token.md) + - [OH_Huks_Blob](_o_h___huks___blob.md) + - [OH_Huks_CertChain](_o_h___huks___cert_chain.md) + - [OH_Huks_KeyInfo](_o_h___huks___key_info.md) + - [OH_Huks_KeyMaterial25519](_o_h___huks___key_material25519.md) + - [OH_Huks_KeyMaterialDh](_o_h___huks___key_material_dh.md) + - [OH_Huks_KeyMaterialDsa](_o_h___huks___key_material_dsa.md) + - [OH_Huks_KeyMaterialEcc](_o_h___huks___key_material_ecc.md) + - [OH_Huks_KeyMaterialRsa](_o_h___huks___key_material_rsa.md) + - [OH_Huks_Param](_o_h___huks___param.md) + - [OH_Huks_ParamSet](_o_h___huks___param_set.md) + - [OH_Huks_PubKeyInfo](_o_h___huks___pub_key_info.md) + - [OH_Huks_Result](_o_h___huks___result.md) -- GitLab From f1d98d188613290e4cd1cf9aa2593068eee92e74 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:35:12 +0000 Subject: [PATCH 201/383] add huks api Signed-off-by: zengyawen --- .../reference/native-apis/_huks_key_api.md | 359 ++++++++++++++++++ 1 file changed, 359 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_huks_key_api.md diff --git a/zh-cn/application-dev/reference/native-apis/_huks_key_api.md b/zh-cn/application-dev/reference/native-apis/_huks_key_api.md new file mode 100644 index 0000000000..f1a50eea46 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_huks_key_api.md @@ -0,0 +1,359 @@ +# HuksKeyApi + + +## 概述 + +描述HUKS向应用提供密钥库能力,包括密钥管理及密钥的密码学操作等功能。 管理的密钥可以由应用导入或者由应用调用HUKS接口生成。 + +\@syscap SystemCapability.Security.Huks + + **起始版本:** +9 + +## 汇总 + + +### 文件 + + | 名称 | 描述 | +| -------- | -------- | +| [native_huks_api.h](native__huks__api_8h.md) | 声明用于访问HUKS的API。 | + + +### 函数 + + | 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_GetSdkVersion](#oh_huks_getsdkversion) (struct [OH_Huks_Blob](_o_h___huks___blob.md) \*sdkVersion) | struct [OH_Huks_Result](_o_h___huks___result.md)
获取当前Huks sdk版本号。 | +| [OH_Huks_GenerateKeyItem](#oh_huks_generatekeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetIn, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetOut) | struct [OH_Huks_Result](_o_h___huks___result.md)
生成密钥。 | +| [OH_Huks_ImportKeyItem](#oh_huks_importkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*key) | struct [OH_Huks_Result](_o_h___huks___result.md)
导入明文密钥。 | +| [OH_Huks_ImportWrappedKeyItem](#oh_huks_importwrappedkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*wrappingKeyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*wrappedKeyData) | struct [OH_Huks_Result](_o_h___huks___result.md)
导入密文密钥。 | +| [OH_Huks_ExportPublicKeyItem](#oh_huks_exportpublickeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*key) | struct [OH_Huks_Result](_o_h___huks___result.md)
导出公钥。 | +| [OH_Huks_DeleteKeyItem](#oh_huks_deletekeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | struct [OH_Huks_Result](_o_h___huks___result.md)
删除密钥。 | +| [OH_Huks_GetKeyItemParamSet](#oh_huks_getkeyitemparamset) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetIn, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetOut) | struct [OH_Huks_Result](_o_h___huks___result.md)
获取密钥的属性集。 | +| [OH_Huks_IsKeyItemExist](#oh_huks_iskeyitemexist) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | struct [OH_Huks_Result](_o_h___huks___result.md)
判断密钥是否存在。 | +| [OH_Huks_AttestKeyItem](#oh_huks_attestkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_CertChain](_o_h___huks___cert_chain.md) \*certChain) | struct [OH_Huks_Result](_o_h___huks___result.md)
获取密钥证书链。 | +| [OH_Huks_InitSession](#oh_huks_initsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*challenge) | struct [OH_Huks_Result](_o_h___huks___result.md)
初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。 | +| [OH_Huks_UpdateSession](#oh_huks_updatesession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*inData, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*outData) | struct [OH_Huks_Result](_o_h___huks___result.md)
分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。 | +| [OH_Huks_FinishSession](#oh_huks_finishsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*inData, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*outData) | struct [OH_Huks_Result](_o_h___huks___result.md)
结束密钥会话并进行相应的密钥操作,输出处理数据。 | +| [OH_Huks_AbortSession](#oh_huks_abortsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | struct [OH_Huks_Result](_o_h___huks___result.md)
取消密钥会话。 | + + +## 函数说明 + + +### OH_Huks_AbortSession() + + +``` +struct OH_Huks_Result OH_Huks_AbortSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet ) +``` +**描述:** +取消密钥会话。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 密钥会话句柄,通过[OH_Huks_InitSession](#oh_huks_initsession)接口生成的。 | +| paramSet | 取消密钥会话需要的输入参数集(默认传空)。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + +**参见:** + +[OH_Huks_InitSession](#oh_huks_initsession) + +[OH_Huks_UpdateSession](#oh_huks_updatesession) + +[OH_Huks_FinishSession](#oh_huks_finishsession) + + +### OH_Huks_AttestKeyItem() + + +``` +struct OH_Huks_Result OH_Huks_AttestKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_CertChain * certChain ) +``` +**描述:** +获取密钥证书链。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 要获取证书的密钥的别名。 | +| paramSet | 获取密钥证书需要的参数。 | +| certChain | 存放输出的密钥证书链。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时获取成功,其他时为错误。 + + +### OH_Huks_DeleteKeyItem() + + +``` +struct OH_Huks_Result OH_Huks_DeleteKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet ) +``` +**描述:** +删除密钥。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 待删除密钥的别名,应与密钥生成时使用的别名相同。 | +| paramSet | 删除密钥需要属性参数(默认传空)。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + + +### OH_Huks_ExportPublicKeyItem() + + +``` +struct OH_Huks_Result OH_Huks_ExportPublicKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_Blob * key ) +``` +**描述:** +导出公钥。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 待导出公钥的密钥别名,应与所用密钥生成时使用的别名相同。 | +| paramSet | 导出公钥需要的属性参数。 | +| key | 存放导出的公钥。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + + +### OH_Huks_FinishSession() + + +``` +struct OH_Huks_Result OH_Huks_FinishSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * inData, struct OH_Huks_Blob * outData ) +``` +**描述:** +结束密钥会话并进行相应的密钥操作,输出处理数据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 密钥会话句柄,通过[OH_Huks_InitSession](#oh_huks_initsession)接口生成的。 | +| paramSet | 密钥操作对应的输入参数集。 | +| inData | 要处理的输入数据。 | +| outData | 经过对应的密钥操作后输出的数据。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + +**参见:** + +[OH_Huks_InitSession](#oh_huks_initsession) + +[OH_Huks_UpdateSession](#oh_huks_updatesession) + +[OH_Huks_AbortSession](#oh_huks_abortsession) + + +### OH_Huks_GenerateKeyItem() + + +``` +struct OH_Huks_Result OH_Huks_GenerateKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSetIn, struct OH_Huks_ParamSet * paramSetOut ) +``` +**描述:** +生成密钥。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 给要生成的密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 | +| paramSetIn | 生成密钥的属性信息的参数集。 | +| paramSetOut | 生成密钥为临时类型时,存放着密钥数据;非临时类型可为空。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + + +### OH_Huks_GetKeyItemParamSet() + + +``` +struct OH_Huks_Result OH_Huks_GetKeyItemParamSet (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSetIn, struct OH_Huks_ParamSet * paramSetOut ) +``` +**描述:** +获取密钥的属性集。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 要获取参数集的密钥别名。 | +| paramSetIn | 要获取参数集需要的属性TAG(默认传空)。 | +| paramSetOut | 获取到的输出参数集。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时获取成功,其他时为失败。 + + +### OH_Huks_GetSdkVersion() + + +``` +struct OH_Huks_Result OH_Huks_GetSdkVersion (struct OH_Huks_Blob * sdkVersion) +``` +**描述:** +获取当前Huks sdk版本号。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| sdkVersion | 用于存放获取到的版本信息(字符串格式)。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + + +### OH_Huks_ImportKeyItem() + + +``` +struct OH_Huks_Result OH_Huks_ImportKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * key ) +``` +**描述:** +导入明文密钥。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 | +| paramSet | 待导入密钥的属性参数。 | +| key | 待导入密钥数据,需符合Huks的格式要求,具体见[HuksTypeApi](_huks_type_api.md)。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + + +### OH_Huks_ImportWrappedKeyItem() + + +``` +struct OH_Huks_Result OH_Huks_ImportWrappedKeyItem (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_Blob * wrappingKeyAlias, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * wrappedKeyData ) +``` +**描述:** +导入密文密钥。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 待导入密钥的别名,需要保证业务所在进程内唯一,否则会发生覆盖。 | +| wrappingKeyAlias | 密钥别名,该对应密钥用于密钥协商出密钥解密待导入密钥。 | +| paramSet | 待导入加密密钥的属性参数。 | +| wrappedKeyData | 需要导入的加密的密钥数据,需要符合Huks定义的格式,具体见[OH_Huks_AlgSuite](_huks_type_api.md#oh_huks_algsuite) | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + + +### OH_Huks_InitSession() + + +``` +struct OH_Huks_Result OH_Huks_InitSession (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet, struct OH_Huks_Blob * handle, struct OH_Huks_Blob * challenge ) +``` +**描述:** +初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 操作的密钥的别名。 | +| paramSet | 初始化操作的密钥参数集合。 | +| handle | 密钥会话的句柄,后续其他操作时传入该句柄,包括[OH_Huks_UpdateSession](#oh_huks_updatesession), [OH_Huks_FinishSession](#oh_huks_finishsession), [OH_Huks_AbortSession](#oh_huks_abortsession)。 | +| challenge | 存放安全访问控制时传回的challenge | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + +**参见:** + +[OH_Huks_UpdateSession](#oh_huks_updatesession) + +[OH_Huks_FinishSession](#oh_huks_finishsession) + +[OH_Huks_AbortSession](#oh_huks_abortsession) + + +### OH_Huks_IsKeyItemExist() + + +``` +struct OH_Huks_Result OH_Huks_IsKeyItemExist (const struct OH_Huks_Blob * keyAlias, const struct OH_Huks_ParamSet * paramSet ) +``` +**描述:** +判断密钥是否存在。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| keyAlias | 要查找的密钥的别名。 | +| paramSet | 查询密钥需要的属性TAG(默认传空)。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时密钥存在, 返回[OH_Huks_ErrCode#OH_HUKS_ERR_CODE_ITEM_NOT_EXIST](_huks_type_api.md)不存在,其他时为错误。 + + +### OH_Huks_UpdateSession() + + +``` +struct OH_Huks_Result OH_Huks_UpdateSession (const struct OH_Huks_Blob * handle, const struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Blob * inData, struct OH_Huks_Blob * outData ) +``` +**描述:** +分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| handle | 密钥会话句柄,通过[OH_Huks_InitSession](#oh_huks_initsession)接口生成的。 | +| paramSet | 密钥操作对应的输入参数集。 | +| inData | 要处理的输入数据,如果数据过大,可分片多次调用。 | +| outData | 经过对应的密钥操作后输出的数据。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时接口使用成功,其他时为错误。 + +**参见:** + +[OH_Huks_InitSession](#oh_huks_initsession) + +[OH_Huks_FinishSession](#oh_huks_finishsession) + +[OH_Huks_AbortSession](#oh_huks_abortsession) -- GitLab From 08557cfaba5ada8d1dc75358540635a6fd14de9c Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:35:51 +0000 Subject: [PATCH 202/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_huks_param_set_api.md | 245 ++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_huks_param_set_api.md diff --git a/zh-cn/application-dev/reference/native-apis/_huks_param_set_api.md b/zh-cn/application-dev/reference/native-apis/_huks_param_set_api.md new file mode 100644 index 0000000000..27fa8738f9 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_huks_param_set_api.md @@ -0,0 +1,245 @@ +# HuksParamSetApi + + +## 概述 + +描述HUKS参数集的能力,支持HUKS密钥管理接口的使用,包括初始化参数集、添加参数、构造参数集、释放参数集等HUKS参数集生命周期管理函数, 还包括获取参数、复制参数集、查询参数集、检查是否有效等函数。 + +\@syscap SystemCapability.Security.Huks + + **起始版本:** +9 + + +## 汇总 + + +### 文件 + + | 名称 | 描述 | +| -------- | -------- | +| [native_huks_param.h](native__huks__param_8h.md) | 提供参数集构造、使用和销毁的API。 | + + +### 函数 + + | 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_InitParamSet](#oh_huks_initparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | int32_t
初始化参数集。 | +| [OH_Huks_AddParams](#oh_huks_addparams) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Param](_o_h___huks___param.md) \*params, uint32_t paramCnt) | int32_t
添加参数到参数集里面。 | +| [OH_Huks_BuildParamSet](#oh_huks_buildparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | int32_t
构造正式的参数集。 | +| [OH_Huks_FreeParamSet](#oh_huks_freeparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | void
销毁参数集。 | +| [OH_Huks_CopyParamSet](#oh_huks_copyparamset) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*fromParamSet, uint32_t fromParamSetSize, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | int32_t
复制参数集(深拷贝)。 | +| [OH_Huks_GetParam](#oh_huks_getparam) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, uint32_t tag, struct [OH_Huks_Param](_o_h___huks___param.md) \*\*param) | int32_t
从参数集中获取参数。 | +| [OH_Huks_FreshParamSet](#oh_huks_freshparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, bool isCopy) | int32_t
刷新(复制)参数集内Blob类型的数据到参数集内。 | +| [OH_Huks_isParamSetTagValid](#oh_huks_isparamsettagvalid) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | int32_t
检查参数集中的参数是否有效、是否有重复。 | +| [OH_Huks_isParamSetValid](#oh_huks_isparamsetvalid) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, uint32_t size) | int32_t
检查参数集大小是否有效。 | +| [OH_Huks_CheckParamMatch](#oh_huks_checkparammatch) (const struct [OH_Huks_Param](_o_h___huks___param.md) \*baseParam, const struct [OH_Huks_Param](_o_h___huks___param.md) \*param) | int32_t
比较两个参数是否相同 | + + +## 函数说明 + + +### OH_Huks_AddParams() + + +``` +int32_t OH_Huks_AddParams (struct OH_Huks_ParamSet * paramSet, const struct OH_Huks_Param * params, uint32_t paramCnt ) +``` +**描述:** +添加参数到参数集里面。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向要被添加参数的参数集的指针。 | +| params | 指向要添加的参数数组的指针。 | +| paramCnt | 待添加参数数组的参数个数。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示添加成功,其他时为错误。 + + +### OH_Huks_BuildParamSet() + + +``` +int32_t OH_Huks_BuildParamSet (struct OH_Huks_ParamSet ** paramSet) +``` +**描述:** +构造正式的参数集。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向要被正式构造的参数集的指针地址。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示构建成功,其他时为错误。 + + +### OH_Huks_CheckParamMatch() + + +``` +int32_t OH_Huks_CheckParamMatch (const struct OH_Huks_Param * baseParam, const struct OH_Huks_Param * param ) +``` +**描述:** +比较两个参数是否相同 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| baseParam | 指向被比较的参数的指针。 | +| param | 指向比较的参数的指针。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示相同,其他时为不同或者错误。 + + +### OH_Huks_CopyParamSet() + + +``` +int32_t OH_Huks_CopyParamSet (const struct OH_Huks_ParamSet * fromParamSet, uint32_t fromParamSetSize, struct OH_Huks_ParamSet ** paramSet ) +``` +**描述:** +复制参数集(深拷贝)。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| fromParamSet | 指向要被复制的参数集的指针。 | +| fromParamSetSize | 被复制的参数集占用内存的大小。 | +| paramSet | 指向生成新的参数集的指针地址。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示复制成功,其他时为错误。 + + +### OH_Huks_FreeParamSet() + + +``` +void OH_Huks_FreeParamSet (struct OH_Huks_ParamSet ** paramSet) +``` +**描述:** +销毁参数集。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向要被销毁的参数集的指针地址。 | + + +### OH_Huks_FreshParamSet() + + +``` +int32_t OH_Huks_FreshParamSet (struct OH_Huks_ParamSet * paramSet, bool isCopy ) +``` +**描述:** +刷新(复制)参数集内Blob类型的数据到参数集内。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向参数集的指针。 | +| isCopy | 是否要刷新参数集内存中的struct HksBlob型的参数数据。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示成功,其他时为错误。 + + +### OH_Huks_GetParam() + + +``` +int32_t OH_Huks_GetParam (const struct OH_Huks_ParamSet * paramSet, uint32_t tag, struct OH_Huks_Param ** param ) +``` +**描述:** +从参数集中获取参数。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向参数集的指针。 | +| tag | 要获取的对应参数的值。 | +| param | 指向获取到的参数的指针地址。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示获取成功,其他时为错误。 + + +### OH_Huks_InitParamSet() + + +``` +int32_t OH_Huks_InitParamSet (struct OH_Huks_ParamSet ** paramSet) +``` +**描述:** +初始化参数集。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向要初始化的参数集的指针地址。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示初始化成功,其他时为错误。 + + +### OH_Huks_isParamSetTagValid() + + +``` +int32_t OH_Huks_isParamSetTagValid (const struct OH_Huks_ParamSet * paramSet) +``` +**描述:** +检查参数集中的参数是否有效、是否有重复。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向参数集的指针。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示有效,其他时为无效或者错误。 + + +### OH_Huks_isParamSetValid() + + +``` +int32_t OH_Huks_isParamSetValid (const struct OH_Huks_ParamSet * paramSet, uint32_t size ) +``` +**描述:** +检查参数集大小是否有效。 + +**参数:** + + | 名称 | 描述 | +| -------- | -------- | +| paramSet | 指向参数集的指针。 | +| size | 参数集占用的内存大小。 | + +**返回:** + +返回[OH_Huks_ErrCode#OH_HUKS_SUCCESS](_huks_type_api.md)时表示有效,其他时为无效或者错误。 -- GitLab From 31aee00bbadcd7a5f2147159cd3515a20794579f Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:36:15 +0000 Subject: [PATCH 203/383] add huks api Signed-off-by: zengyawen --- .../reference/native-apis/_huks_type_api.md | 523 ++++++++++++++++++ 1 file changed, 523 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_huks_type_api.md diff --git a/zh-cn/application-dev/reference/native-apis/_huks_type_api.md b/zh-cn/application-dev/reference/native-apis/_huks_type_api.md new file mode 100644 index 0000000000..87e07c745c --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_huks_type_api.md @@ -0,0 +1,523 @@ +# HuksTypeApi + + +## 概述 + +描述HUKS类型定义的头文件,声明了HUKS API需要的各种宏、枚举、数据结构、错误码等。 + +\@syscap SystemCapability.Security.Huks + + **起始版本:** +9 + + +## 汇总 + + +### 文件 + +| 名称 | 描述 | +| -------- | -------- | +| [native_huks_type.h](native__huks__type_8h.md) | 提供huks中的枚举变量、结构体定义与宏定义。 | + + +### 结构体 + +| 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_Result](_o_h___huks___result.md) | struct
表示状态返回数据,包括返回码和消息。 | +| [OH_Huks_Blob](_o_h___huks___blob.md) | struct
定义存放数据的结构体类型。 | +| [OH_Huks_Param](_o_h___huks___param.md) | struct
定义参数集中的参数结构体类型。 | +| [OH_Huks_ParamSet](_o_h___huks___param_set.md) | struct
定义参数集的结构体类型。 | +| [OH_Huks_CertChain](_o_h___huks___cert_chain.md) | struct
定义证书链的结构体类型。 | +| [OH_Huks_KeyInfo](_o_h___huks___key_info.md) | struct
定义密钥信息的结构体类型。 | +| [OH_Huks_PubKeyInfo](_o_h___huks___pub_key_info.md) | struct
定义公钥信息的结构体类型。 | +| [OH_Huks_KeyMaterialRsa](_o_h___huks___key_material_rsa.md) | struct
定义Rsa密钥的结构体类型。 | +| [OH_Huks_KeyMaterialEcc](_o_h___huks___key_material_ecc.md) | struct
定义Ecc密钥的结构体类型。 | +| [OH_Huks_KeyMaterialDsa](_o_h___huks___key_material_dsa.md) | struct
定义Dsa密钥的结构体类型。 | +| [OH_Huks_KeyMaterialDh](_o_h___huks___key_material_dh.md) | struct
定义Dh密钥的结构体类型。 | +| [OH_Huks_KeyMaterial25519](_o_h___huks___key_material25519.md) | struct
定义25519类型密钥的结构体类型。 | + + +### 宏定义 + +| 名称 | 描述 | +| -------- | -------- | +| **OH_HUKS_AE_TAG_LEN** 16 | | +| **OH_HUKS_BITS_PER_BYTE** 8 | | +| **OH_HUKS_MAX_KEY_SIZE** 2048 | | +| **OH_HUKS_AE_NONCE_LEN** 12 | | +| **OH_HUKS_MAX_KEY_ALIAS_LEN** 64 | | +| **OH_HUKS_MAX_PROCESS_NAME_LEN** 50 | | +| **OH_HUKS_MAX_RANDOM_LEN** 1024 | | +| **OH_HUKS_SIGNATURE_MIN_SIZE** 64 | | +| **OH_HUKS_MAX_OUT_BLOB_SIZE** (5 \* 1024 \* 1024) | | +| **OH_HUKS_WRAPPED_FORMAT_MAX_SIZE** (1024 \* 1024) | | +| **OH_HUKS_IMPORT_WRAPPED_KEY_TOTAL_BLOBS** 10 | | +| **TOKEN_CHALLENGE_LEN** 32 | | +| **SHA256_SIGN_LEN** 32 | | +| **TOKEN_SIZE** 32 | | +| **MAX_AUTH_TIMEOUT_SECOND** 60 | | +| **SECURE_SIGN_VERSION** 0x01000001 | | + + +### 枚举 + +| 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_KeyPurpose](#oh_huks_keypurpose) {
OH_HUKS_KEY_PURPOSE_ENCRYPT = 1,
OH_HUKS_KEY_PURPOSE_DECRYPT = 2,
OH_HUKS_KEY_PURPOSE_SIGN = 4,
OH_HUKS_KEY_PURPOSE_VERIFY = 8,
OH_HUKS_KEY_PURPOSE_DERIVE = 16,
OH_HUKS_KEY_PURPOSE_WRAP = 32,
OH_HUKS_KEY_PURPOSE_UNWRAP = 64,
OH_HUKS_KEY_PURPOSE_MAC = 128,
OH_HUKS_KEY_PURPOSE_AGREE = 256
} | 密钥用途类型。 | +| [OH_Huks_KeyDigest](#oh_huks_keydigest) {
OH_HUKS_DIGEST_NONE = 0,
OH_HUKS_DIGEST_MD5 = 1,
OH_HUKS_DIGEST_SM3 = 2,
OH_HUKS_DIGEST_SHA1 = 10,
OH_HUKS_DIGEST_SHA224 = 11,
OH_HUKS_DIGEST_SHA256 = 12,
OH_HUKS_DIGEST_SHA384 = 13,
OH_HUKS_DIGEST_SHA512 = 14
} | 摘要算法类型。 | +| [OH_Huks_KeyPadding](#oh_huks_keypadding) {
OH_HUKS_PADDING_NONE = 0,
OH_HUKS_PADDING_OAEP = 1,
OH_HUKS_PADDING_PSS = 2,
OH_HUKS_PADDING_PKCS1_V1_5 = 3,
OH_HUKS_PADDING_PKCS5 = 4,
OH_HUKS_PADDING_PKCS7 = 5
} | 补齐算法类型。 | +| [OH_Huks_CipherMode](#oh_huks_ciphermode) {
OH_HUKS_MODE_ECB = 1,
OH_HUKS_MODE_CBC = 2,
OH_HUKS_MODE_CTR = 3,
OH_HUKS_MODE_OFB = 4,
OH_HUKS_MODE_CCM = 31,
OH_HUKS_MODE_GCM = 32
} | 加解密算法工作模式。 | +| [OH_Huks_KeySize](#oh_huks_keysize) {
OH_HUKS_RSA_KEY_SIZE_512 = 512,
OH_HUKS_RSA_KEY_SIZE_768 = 768,
OH_HUKS_RSA_KEY_SIZE_1024 = 1024,
OH_HUKS_RSA_KEY_SIZE_2048 = 2048,
OH_HUKS_RSA_KEY_SIZE_3072 = 3072,
OH_HUKS_RSA_KEY_SIZE_4096 = 4096,
OH_HUKS_ECC_KEY_SIZE_224 = 224,
OH_HUKS_ECC_KEY_SIZE_256 = 256,
OH_HUKS_ECC_KEY_SIZE_384 = 384,
OH_HUKS_ECC_KEY_SIZE_521 = 521,
OH_HUKS_AES_KEY_SIZE_128 = 128,
OH_HUKS_AES_KEY_SIZE_192 = 192,
OH_HUKS_AES_KEY_SIZE_256 = 256,
OH_HUKS_AES_KEY_SIZE_512 = 512,
OH_HUKS_CURVE25519_KEY_SIZE_256 = 256,
OH_HUKS_DH_KEY_SIZE_2048 = 2048,
OH_HUKS_DH_KEY_SIZE_3072 = 3072,
OH_HUKS_DH_KEY_SIZE_4096 = 4096,
OH_HUKS_SM2_KEY_SIZE_256 = 256,
OH_HUKS_SM4_KEY_SIZE_128 = 128
} | 算法密钥长度。 | +| [OH_Huks_KeyAlg](#oh_huks_keyalg) {
OH_HUKS_ALG_RSA = 1,
OH_HUKS_ALG_ECC = 2,
OH_HUKS_ALG_DSA = 3,
OH_HUKS_ALG_AES = 20,
OH_HUKS_ALG_HMAC = 50,
OH_HUKS_ALG_HKDF = 51,
OH_HUKS_ALG_PBKDF2 = 52,
OH_HUKS_ALG_ECDH = 100,
OH_HUKS_ALG_X25519 = 101,
OH_HUKS_ALG_ED25519 = 102,
OH_HUKS_ALG_DH = 103,
OH_HUKS_ALG_SM2 = 150,
OH_HUKS_ALG_SM3 = 151,
OH_HUKS_ALG_SM4 = 152
} | 密钥使用的算法。 | +| [OH_Huks_AlgSuite](#oh_huks_algsuite) {
OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING = 1,
OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING = 2
} | 密文导入所需的算法套件类型 | +| [OH_Huks_KeyGenerateType](#oh_huks_keygeneratetype) {
OH_HUKS_KEY_GENERATE_TYPE_DEFAULT = 0,
OH_HUKS_KEY_GENERATE_TYPE_DERIVE = 1,
OH_HUKS_KEY_GENERATE_TYPE_AGREE = 2
} | 生成的密钥类型。 | +| [OH_Huks_KeyFlag](#oh_huks_keyflag) {
OH_HUKS_KEY_FLAG_IMPORT_KEY = 1,
OH_HUKS_KEY_FLAG_GENERATE_KEY = 2,
OH_HUKS_KEY_FLAG_AGREE_KEY = 3,
OH_HUKS_KEY_FLAG_DERIVE_KEY = 4
} | 密钥的产生方式。 | +| [OH_Huks_KeyStorageType](#oh_huks_keystoragetype) {
OH_HUKS_STORAGE_TEMP = 0,
OH_HUKS_STORAGE_PERSISTENT = 1
} | 密钥的存储方式。 | +| [OH_Huks_ImportKeyType](#oh_huks_importkeytype) {
OH_HUKS_KEY_TYPE_PUBLIC_KEY = 0,
OH_HUKS_KEY_TYPE_PRIVATE_KEY = 1,
OH_HUKS_KEY_TYPE_KEY_PAIR = 2
} | 导入密钥的类型,默认为导入公钥,导入对称密钥时不需要该字段。 | +| [OH_Huks_ErrCode](#oh_huks_errcode) {
OH_HUKS_SUCCESS = 0,
OH_HUKS_ERR_CODE_PERMISSION_FAIL = 201,
OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT = 401,
OH_HUKS_ERR_CODE_NOT_SUPPORTED_API = 801,
OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED = 12000001,
OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT = 12000002,
OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT = 12000003,
OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL = 12000004,
OH_HUKS_ERR_CODE_COMMUNICATION_FAIL = 12000005,
OH_HUKS_ERR_CODE_CRYPTO_FAIL = 12000006,
OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED = 12000007,
OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED = 12000008,
OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT = 12000009,
OH_HUKS_ERR_CODE_SESSION_LIMIT = 12000010,
OH_HUKS_ERR_CODE_ITEM_NOT_EXIST = 12000011,
OH_HUKS_ERR_CODE_INTERNAL_ERROR = 12000012,
OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST = 12000013
} | 错误码。 | +| [OH_Huks_TagType](#oh_huks_tagtype) {
OH_HUKS_TAG_TYPE_INVALID = 0 << 28,
OH_HUKS_TAG_TYPE_INT = 1 << 28,
OH_HUKS_TAG_TYPE_UINT = 2 << 28,
OH_HUKS_TAG_TYPE_ULONG = 3 << 28,
OH_HUKS_TAG_TYPE_BOOL = 4 << 28,
OH_HUKS_TAG_TYPE_BYTES = 5 << 28
} | 参数集中参数类型的掩码值。 | +| [OH_Huks_UserAuthType](#oh_huks_userauthtype) {
OH_HUKS_USER_AUTH_TYPE_FINGERPRINT = 1 << 0,
OH_HUKS_USER_AUTH_TYPE_FACE = 1 << 1,
OH_HUKS_USER_AUTH_TYPE_PIN = 1 << 2
} | 密钥访问控制中的用户认证类型 | +| [OH_Huks_AuthAccessType](#oh_huks_authaccesstype) {
OH_HUKS_AUTH_ACCESS_INVALID_CLEAR_PASSWORD = 1 << 0,
OH_HUKS_AUTH_ACCESS_INVALID_NEW_BIO_ENROLL = 1 << 1
} | 安全访问控制类型,表示密钥失效的原则 | +| [OH_Huks_ChallengeType](#oh_huks_challengetype) {
OH_HUKS_CHALLENGE_TYPE_NORMAL = 0,
OH_HUKS_CHALLENGE_TYPE_CUSTOM = 1,
OH_HUKS_CHALLENGE_TYPE_NONE = 2
} | 密钥使用时生成challenge的类型 | +| [OH_Huks_ChallengePosition](#oh_huks_challengeposition) {
OH_HUKS_CHALLENGE_POS_0 = 0,
OH_HUKS_CHALLENGE_POS_1,
OH_HUKS_CHALLENGE_POS_2,
OH_HUKS_CHALLENGE_POS_3
} | challenge类型为用户自定义类型时,生成的challenge有效长度仅为8字节连续的数据,且仅支持4种位置。 | +| [OH_Huks_SecureSignType](#oh_huks_securesigntype) { OH_HUKS_SECURE_SIGN_WITH_AUTHINFO = 1 } | 生成或导入密钥时,指定该密钥的安全签名类型。 | +| [OH_Huks_Tag](#oh_huks_tag) {
OH_HUKS_TAG_INVALID = OH_HUKS_TAG_TYPE_INVALID \| 0, OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT \| 1, OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 2, OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 3,
OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT \| 4, OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT \| 5, OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT \| 6, OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 7,
OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES \| 8, OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES \| 9, OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES \| 10, OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES \| 11,
OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES \| 12, OH_HUKS_TAG_PWD = OH_HUKS_TAG_TYPE_BYTES \| 13, OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT \| 14, OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 15,
OH_HUKS_TAG_DERIVE_MAIN_KEY = OH_HUKS_TAG_TYPE_BYTES \| 16, OH_HUKS_TAG_DERIVE_FACTOR = OH_HUKS_TAG_TYPE_BYTES \| 17, OH_HUKS_TAG_DERIVE_ALG = OH_HUKS_TAG_TYPE_UINT \| 18, OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT \| 19,
OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 20, OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 21, OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES \| 22, OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 23,
OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 24, OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 25, OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT \| 26, OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL \| 301,
OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT \| 302, OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL \| 303, OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT \| 304, OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT \| 305,
OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES \| 306, OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT \| 307, OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 308, OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 309,
OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT \| 310, OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES \| 501, OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES \| 502, OH_HUKS_TAG_ATTESTATION_ID_BRAND = OH_HUKS_TAG_TYPE_BYTES \| 503,
OH_HUKS_TAG_ATTESTATION_ID_DEVICE = OH_HUKS_TAG_TYPE_BYTES \| 504, OH_HUKS_TAG_ATTESTATION_ID_PRODUCT = OH_HUKS_TAG_TYPE_BYTES \| 505, OH_HUKS_TAG_ATTESTATION_ID_SERIAL = OH_HUKS_TAG_TYPE_BYTES \| 506, OH_HUKS_TAG_ATTESTATION_ID_IMEI = OH_HUKS_TAG_TYPE_BYTES \| 507,
OH_HUKS_TAG_ATTESTATION_ID_MEID = OH_HUKS_TAG_TYPE_BYTES \| 508, OH_HUKS_TAG_ATTESTATION_ID_MANUFACTURER = OH_HUKS_TAG_TYPE_BYTES \| 509, OH_HUKS_TAG_ATTESTATION_ID_MODEL = OH_HUKS_TAG_TYPE_BYTES \| 510, OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 511,
OH_HUKS_TAG_ATTESTATION_ID_SOCID = OH_HUKS_TAG_TYPE_BYTES \| 512, OH_HUKS_TAG_ATTESTATION_ID_UDID = OH_HUKS_TAG_TYPE_BYTES \| 513, OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES \| 514, OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES \| 515,
OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1001, OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1002, OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL \| 1003, OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT \| 1004,
OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES \| 1005, OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT \| 1006, OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1007, OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT \| 1008,
OH_HUKS_TAG_SECURE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1009, OH_HUKS_TAG_SECURE_KEY_UUID = OH_HUKS_TAG_TYPE_BYTES \| 1010, OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT \| 1011, OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20001,
OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20002, OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20003
} | 参数集所用的TAG值枚举 | + + +## 枚举类型说明 + + +### OH_Huks_AlgSuite + + +``` +enum OH_Huks_AlgSuite +``` +**描述:** +密文导入所需的算法套件类型 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING | 密文导入密钥材料格式(Length-Value格式)采用X25519密钥协商同时采用AES-256-GCM加解密: \| x25519_plain_pubkey_length (4 Byte) \| x25519_plain_pubkey \| agreekey_aad_length (4 Byte) \| agreekey_aad \| agreekey_nonce_length (4 Byte) \| agreekey_nonce \| agreekey_aead_tag_len(4 Byte) \| agreekey_aead_tag \| kek_enc_data_length (4 Byte) \| kek_enc_data \| kek_aad_length (4 Byte) \| kek_aad \| kek_nonce_length (4 Byte) \| kek_nonce \| kek_aead_tag_len (4 Byte) \| kek_aead_tag \| key_material_size_len (4 Byte) \| key_material_size \| key_mat_enc_length (4 Byte) \| key_mat_enc_data | +| OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING | 密文导入密钥材料格式(Length-Value格式)采用ECDH-p256密钥协商同时采用AES-256-GCM加解密: \| ECC_plain_pubkey_length (4 Byte) \| ECC_plain_pubkey \| agreekey_aad_length (4 Byte) \| agreekey_aad \| agreekey_nonce_length (4 Byte) \| agreekey_nonce \| agreekey_aead_tag_len(4 Byte) \| agreekey_aead_tag \| kek_enc_data_length (4 Byte) \| kek_enc_data \| kek_aad_length (4 Byte) \| kek_aad \| kek_nonce_length (4 Byte) \| kek_nonce \| kek_aead_tag_len (4 Byte) \| kek_aead_tag \| key_material_size_len (4 Byte) \| key_material_size \| key_mat_enc_length (4 Byte) \| key_mat_enc_data | + + +### OH_Huks_AuthAccessType + + +``` +enum OH_Huks_AuthAccessType +``` +**描述:** +安全访问控制类型,表示密钥失效的原则 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_AUTH_ACCESS_INVALID_CLEAR_PASSWORD | 安全访问控制类型为清除密码后密钥无效。 | +| OH_HUKS_AUTH_ACCESS_INVALID_NEW_BIO_ENROLL | 安全访问控制类型为新录入生物特征后密钥无效。 | + + +### OH_Huks_ChallengePosition + + +``` +enum OH_Huks_ChallengePosition +``` +**描述:** +challenge类型为用户自定义类型时,生成的challenge有效长度仅为8字节连续的数据,且仅支持4种位置。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_CHALLENGE_POS_0 | 0~7字节为当前密钥的有效challenge。 | +| OH_HUKS_CHALLENGE_POS_1 | 8~15字节为当前密钥的有效challenge。 | +| OH_HUKS_CHALLENGE_POS_2 | 16~23字节为当前密钥的有效challenge。 | +| OH_HUKS_CHALLENGE_POS_3 | 24~31字节为当前密钥的有效challenge。 | + + +### OH_Huks_ChallengeType + + +``` +enum OH_Huks_ChallengeType +``` +**描述:** +密钥使用时生成challenge的类型 + +**参见:** + +[OH_Huks_ChallengePosition](#oh_huks_challengeposition) + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_CHALLENGE_TYPE_NORMAL | challenge为普通类型,默认32字节。 | +| OH_HUKS_CHALLENGE_TYPE_CUSTOM | challenge为用户自定义类型。支持使用多个密钥仅一次认证,challenge长度8字节有效。 | +| OH_HUKS_CHALLENGE_TYPE_NONE | 免challenge类型。 | + + +### OH_Huks_CipherMode + + +``` +enum OH_Huks_CipherMode +``` +**描述:** +加解密算法工作模式。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_MODE_ECB | 使用ECB加密模式。 | +| OH_HUKS_MODE_CBC | 使用CBC加密模式。 | +| OH_HUKS_MODE_CTR | 使用CTR加密模式。 | +| OH_HUKS_MODE_OFB | 使用OFB加密模式。 | +| OH_HUKS_MODE_CCM | 使用CCM加密模式。 | +| OH_HUKS_MODE_GCM | 使用GCM加密模式。 | + + +### OH_Huks_ErrCode + + +``` +enum OH_Huks_ErrCode +``` +**描述:** +错误码。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_SUCCESS | 成功。 | +| OH_HUKS_ERR_CODE_PERMISSION_FAIL | 权限校验失败。 | +| OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT | 非法参数(通用)。 | +| OH_HUKS_ERR_CODE_NOT_SUPPORTED_API | 不支持该API。 | +| OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED | 不支持该子功能(特性)。 | +| OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT | 缺少密钥算法参数。 | +| OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT | 无效的密钥算法参数。 | +| OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL | 文件错误。 | +| OH_HUKS_ERR_CODE_COMMUNICATION_FAIL | 进程通信错误。 | +| OH_HUKS_ERR_CODE_CRYPTO_FAIL | 算法库操作失败。 | +| OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED | 密钥访问失败 - 密钥已失效。 | +| OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED | 密钥访问失败 - 密钥认证失败。 | +| OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT | 密钥访问失败 - 密钥访问超时。 | +| OH_HUKS_ERR_CODE_SESSION_LIMIT | 密钥操作会话数已达上限。 | +| OH_HUKS_ERR_CODE_ITEM_NOT_EXIST | 该项实体不存在。 | +| OH_HUKS_ERR_CODE_INTERNAL_ERROR | 内部错误。 | +| OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST | 认证凭据不存在。 | + + +### OH_Huks_ImportKeyType + + +``` +enum OH_Huks_ImportKeyType +``` +**描述:** +导入密钥的类型,默认为导入公钥,导入对称密钥时不需要该字段。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_KEY_TYPE_PUBLIC_KEY | 导入的密钥类型为公钥。 | +| OH_HUKS_KEY_TYPE_PRIVATE_KEY | 导入的密钥类型为私钥。 | +| OH_HUKS_KEY_TYPE_KEY_PAIR | 导入的密钥类型为公私钥对。 | + + +### OH_Huks_KeyAlg + + +``` +enum OH_Huks_KeyAlg +``` +**描述:** +密钥使用的算法。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_ALG_RSA | 使用RSA算法。 | +| OH_HUKS_ALG_ECC | 使用ECC算法。 | +| OH_HUKS_ALG_DSA | 使用DSA算法。 | +| OH_HUKS_ALG_AES | 使用AES算法。 | +| OH_HUKS_ALG_HMAC | 使用HMAC算法。 | +| OH_HUKS_ALG_HKDF | 使用HKDF算法。 | +| OH_HUKS_ALG_PBKDF2 | 使用PBKDF2算法。 | +| OH_HUKS_ALG_ECDH | 使用ECDH算法。 | +| OH_HUKS_ALG_X25519 | 使用X25519算法。 | +| OH_HUKS_ALG_ED25519 | 使用ED25519算法。 | +| OH_HUKS_ALG_DH | 使用DH算法。 | +| OH_HUKS_ALG_SM2 | 使用SM2算法。 | +| OH_HUKS_ALG_SM3 | 使用SM3算法。 | +| OH_HUKS_ALG_SM4 | 使用SM4算法。 | + + +### OH_Huks_KeyDigest + + +``` +enum OH_Huks_KeyDigest +``` +**描述:** +摘要算法类型。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_DIGEST_NONE | 无摘要算法。 | +| OH_HUKS_DIGEST_MD5 | MD5摘要算法。 | +| OH_HUKS_DIGEST_SM3 | SM3摘要算法。 | +| OH_HUKS_DIGEST_SHA1 | SHA1摘要算法。 | +| OH_HUKS_DIGEST_SHA224 | SHA224摘要算法。 | +| OH_HUKS_DIGEST_SHA256 | SHA256摘要算法。 | +| OH_HUKS_DIGEST_SHA384 | SHA384摘要算法。 | +| OH_HUKS_DIGEST_SHA512 | SHA512摘要算法。 | + + +### OH_Huks_KeyFlag + + +``` +enum OH_Huks_KeyFlag +``` +**描述:** +密钥的产生方式。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_KEY_FLAG_IMPORT_KEY | 通过导入公钥接口导入的密钥。 | +| OH_HUKS_KEY_FLAG_GENERATE_KEY | 通过生成密钥接口生成的密钥。 | +| OH_HUKS_KEY_FLAG_AGREE_KEY | 通过生成密钥协商接口生成的密钥。 | +| OH_HUKS_KEY_FLAG_DERIVE_KEY | 通过生成密钥派生接口生成的密钥。 | + + +### OH_Huks_KeyGenerateType + + +``` +enum OH_Huks_KeyGenerateType +``` +**描述:** +生成的密钥类型。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_KEY_GENERATE_TYPE_DEFAULT | 默认生成的密钥。 | +| OH_HUKS_KEY_GENERATE_TYPE_DERIVE | 派生生成的密钥。 | +| OH_HUKS_KEY_GENERATE_TYPE_AGREE | 协商生成的密钥。 | + + +### OH_Huks_KeyPadding + + +``` +enum OH_Huks_KeyPadding +``` +**描述:** +补齐算法类型。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_PADDING_NONE | 不使用补齐算法。 | +| OH_HUKS_PADDING_OAEP | 使用OAEP补齐算法。 | +| OH_HUKS_PADDING_PSS | 使用PSS补齐算法。 | +| OH_HUKS_PADDING_PKCS1_V1_5 | 使用PKCS1_V1_5补齐算法。 | +| OH_HUKS_PADDING_PKCS5 | 使用PKCS5补齐算法。 | +| OH_HUKS_PADDING_PKCS7 | 使用PKCS7补齐算法。 | + + +### OH_Huks_KeyPurpose + + +``` +enum OH_Huks_KeyPurpose +``` +**描述:** +密钥用途类型。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_KEY_PURPOSE_ENCRYPT | 表示密钥用于对明文进行加密操作。 | +| OH_HUKS_KEY_PURPOSE_DECRYPT | 表示密钥用于对密文进行解密操作。 | +| OH_HUKS_KEY_PURPOSE_SIGN | 表示密钥用于对数据进行签名。 | +| OH_HUKS_KEY_PURPOSE_VERIFY | 表示密钥用于验证签名后的数据。 | +| OH_HUKS_KEY_PURPOSE_DERIVE | 表示密钥用于派生密钥。 | +| OH_HUKS_KEY_PURPOSE_WRAP | 表示密钥用于加密导出。 | +| OH_HUKS_KEY_PURPOSE_UNWRAP | 表示密钥加密导入。 | +| OH_HUKS_KEY_PURPOSE_MAC | 表示密钥用于生成mac消息验证码。 | +| OH_HUKS_KEY_PURPOSE_AGREE | 表示密钥用于进行密钥协商。 | + + +### OH_Huks_KeySize + + +``` +enum OH_Huks_KeySize +``` +**描述:** +算法密钥长度。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_RSA_KEY_SIZE_512 | 使用RSA算法的密钥长度为512bit。 | +| OH_HUKS_RSA_KEY_SIZE_768 | 使用RSA算法的密钥长度为768bit。 | +| OH_HUKS_RSA_KEY_SIZE_1024 | 使用RSA算法的密钥长度为1024bit。 | +| OH_HUKS_RSA_KEY_SIZE_2048 | 使用RSA算法的密钥长度为2048bit。 | +| OH_HUKS_RSA_KEY_SIZE_3072 | 使用RSA算法的密钥长度为3072bit。 | +| OH_HUKS_RSA_KEY_SIZE_4096 | 使用RSA算法的密钥长度为4096bit。 | +| OH_HUKS_ECC_KEY_SIZE_224 | 使用ECC算法的密钥长度为224bit。 | +| OH_HUKS_ECC_KEY_SIZE_256 | 使用ECC算法的密钥长度为256bit。 | +| OH_HUKS_ECC_KEY_SIZE_384 | 使用ECC算法的密钥长度为384bit。 | +| OH_HUKS_ECC_KEY_SIZE_521 | 使用ECC算法的密钥长度为521bit。 | +| OH_HUKS_AES_KEY_SIZE_128 | 使用AES算法的密钥长度为128bit。 | +| OH_HUKS_AES_KEY_SIZE_192 | 使用AES算法的密钥长度为192bit。 | +| OH_HUKS_AES_KEY_SIZE_256 | 使用AES算法的密钥长度为256bit。 | +| OH_HUKS_AES_KEY_SIZE_512 | 使用AES算法的密钥长度为512bit。 | +| OH_HUKS_CURVE25519_KEY_SIZE_256 | 使用CURVE25519算法的密钥长度为256bit。 | +| OH_HUKS_DH_KEY_SIZE_2048 | 使用DH算法的密钥长度为2048bit。 | +| OH_HUKS_DH_KEY_SIZE_3072 | 使用DH算法的密钥长度为3072bit。 | +| OH_HUKS_DH_KEY_SIZE_4096 | 使用DH算法的密钥长度为4096bit。 | +| OH_HUKS_SM2_KEY_SIZE_256 | 使用SM2算法的密钥长度为256bit。 | +| OH_HUKS_SM4_KEY_SIZE_128 | 使用SM4算法支持的密钥长度为128位。 | + + +### OH_Huks_KeyStorageType + + +``` +enum OH_Huks_KeyStorageType +``` +**描述:** +密钥的存储方式。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_STORAGE_TEMP | 通过本地直接管理密钥。 | +| OH_HUKS_STORAGE_PERSISTENT | 通过HUKS service管理密钥。 | + + +### OH_Huks_SecureSignType + + +``` +enum OH_Huks_SecureSignType +``` +**描述:** +生成或导入密钥时,指定该密钥的安全签名类型。 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_SECURE_SIGN_WITH_AUTHINFO | 签名类型为携带认证信息。生成或导入密钥时指定该字段,则在使用密钥进行签名时,对待签名的数据添加认证信息后进行签名。 | + + +### OH_Huks_Tag + + +``` +enum OH_Huks_Tag +``` +**描述:** +参数集所用的TAG值枚举 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_TAG_INVALID | 非法的Tag。 | +| OH_HUKS_TAG_ALGORITHM | 密钥参数标签值:从1到200。 算法类型。 | +| OH_HUKS_TAG_PURPOSE | 密钥用途。 | +| OH_HUKS_TAG_KEY_SIZE | 密钥长度 。 | +| OH_HUKS_TAG_DIGEST | 摘要算法。 | +| OH_HUKS_TAG_PADDING | 补齐算法。 | +| OH_HUKS_TAG_BLOCK_MODE | 加密模式。 | +| OH_HUKS_TAG_KEY_TYPE | 密钥类型。 | +| OH_HUKS_TAG_ASSOCIATED_DATA | 附加身份验证数据。 | +| OH_HUKS_TAG_NONCE | 密钥加解密的字段。 | +| OH_HUKS_TAG_IV | 初始化的向量。 | +| OH_HUKS_TAG_INFO | 密钥派生时的信息。 | +| OH_HUKS_TAG_SALT | 派生盐值。 | +| OH_HUKS_TAG_PWD | 派生密码。 | +| OH_HUKS_TAG_ITERATION | 派生迭代次数。 | +| OH_HUKS_TAG_KEY_GENERATE_TYPE | 生成密钥的类型,类型可在枚举[OH_Huks_KeyGenerateType](#oh_huks_keygeneratetype)中选择。 | +| OH_HUKS_TAG_DERIVE_MAIN_KEY | 密钥派生时的主密钥。 | +| OH_HUKS_TAG_DERIVE_FACTOR | 派生时的派生因子。 | +| OH_HUKS_TAG_DERIVE_ALG | 派生时的算法类型。 | +| OH_HUKS_TAG_AGREE_ALG | 密钥协商时的算法类型。 | +| OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS | 密钥协商时的公钥别名。 | +| OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS | 密钥协商时的私钥别名。 | +| OH_HUKS_TAG_AGREE_PUBLIC_KEY | 用于协商的公钥。 | +| OH_HUKS_TAG_KEY_ALIAS | 密钥别名。 | +| OH_HUKS_TAG_DERIVE_KEY_SIZE | 派生密钥大小。 | +| OH_HUKS_TAG_IMPORT_KEY_TYPE | 导入密钥类型, 类型可在枚举OH_Huks_ImportKeyType中选择。 | +| OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE | 导入加密密钥的套件。 | +| OH_HUKS_TAG_ALL_USERS | 密钥使用访问控制和使用认证相关的标签取值范围: 301 - 500 多用户中的所有用户。 | +| OH_HUKS_TAG_USER_ID | 表示多用户id。 | +| OH_HUKS_TAG_NO_AUTH_REQUIRED | 表示是否需要密钥访问控制。 | +| OH_HUKS_TAG_USER_AUTH_TYPE | 表示密钥访问控制中用户认证类型。 | +| OH_HUKS_TAG_AUTH_TIMEOUT | 表示密钥访问控制类型中密钥访问的超时时间。 | +| OH_HUKS_TAG_AUTH_TOKEN | 表示密钥访问控制中使用密钥时传入的authtoken的类型 | +| OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE | 表示安全访问控制类型。从OH_Huks_AuthAccessType中选择,需要和用户认证类型同时设置。 | +| OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE | 表示生成或导入密钥时,指定该密钥的签名类型。 | +| OH_HUKS_TAG_CHALLENGE_TYPE | 表示密钥使用时生成的challenge类型。从OH_Huks_ChallengeType中选择。 | +| OH_HUKS_TAG_CHALLENGE_POS | 表示challenge类型为用户自定义类型时,huks产生的challenge有效长度仅为8字节连续的数据的位置。从OH_Huks_ChallengePosition中选择。 | +| OH_HUKS_TAG_ATTESTATION_CHALLENGE | 密钥认证相关的标签值: 501 - 600 密钥认证时的挑战值。 | +| OH_HUKS_TAG_ATTESTATION_APPLICATION_ID | 密钥认证时拥有该密钥的application的Id。 | +| OH_HUKS_TAG_ATTESTATION_ID_BRAND | 设备的品牌。 | +| OH_HUKS_TAG_ATTESTATION_ID_DEVICE | 设备的设备ID。 | +| OH_HUKS_TAG_ATTESTATION_ID_PRODUCT | 设备的产品名。 | +| OH_HUKS_TAG_ATTESTATION_ID_SERIAL | 设备的SN号。 | +| OH_HUKS_TAG_ATTESTATION_ID_IMEI | 设备的IMEI号。 | +| OH_HUKS_TAG_ATTESTATION_ID_MEID | 设备的MEID号。 | +| OH_HUKS_TAG_ATTESTATION_ID_MANUFACTURER | 设备的制造商。 | +| OH_HUKS_TAG_ATTESTATION_ID_MODEL | 设备的型号。 | +| OH_HUKS_TAG_ATTESTATION_ID_ALIAS | 密钥别名。 | +| OH_HUKS_TAG_ATTESTATION_ID_SOCID | 设备的SOCID。 | +| OH_HUKS_TAG_ATTESTATION_ID_UDID | 设备的UDID。 | +| OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO | 密钥认证时的安全凭据。 | +| OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO | 密钥认证时的版本号。 | +| OH_HUKS_TAG_IS_KEY_ALIAS | 其他类型的标签值预留: 601 - 1000
扩展标签值: 1001 - 9999 是否是密钥别名。 | +| OH_HUKS_TAG_KEY_STORAGE_FLAG | 密钥存储方式的标签, 类型可在枚举 [OH_Huks_KeyStorageType](#oh_huks_keystoragetype)选择。 | +| OH_HUKS_TAG_IS_ALLOWED_WRAP | 是否允许密钥封装。 | +| OH_HUKS_TAG_KEY_WRAP_TYPE | 密钥封装的类型。 | +| OH_HUKS_TAG_KEY_AUTH_ID | 密钥认证的ID。 | +| OH_HUKS_TAG_KEY_ROLE | 密钥角色。 | +| OH_HUKS_TAG_KEY_FLAG | 密钥标记, 类型可在枚举[OH_Huks_KeyFlag](#oh_huks_keyflag)选择。 | +| OH_HUKS_TAG_IS_ASYNCHRONIZED | 是否异步 | +| OH_HUKS_TAG_SECURE_KEY_ALIAS | 安全密钥别名。 | +| OH_HUKS_TAG_SECURE_KEY_UUID | 安全密钥UUID。 | +| OH_HUKS_TAG_KEY_DOMAIN | 密钥域。 | +| OH_HUKS_TAG_SYMMETRIC_KEY_DATA | 预留值: 11000 - 12000
其他标签预留值: 20001 - N 对称密钥数据 | +| OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA | 非对称密钥公钥数据 | +| OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA | 非对称密钥私钥数据 | + + +### OH_Huks_TagType + + +``` +enum OH_Huks_TagType +``` +**描述:** +参数集中参数类型的掩码值。 + +**参见:** + +[OH_Huks_Param](_o_h___huks___param.md) + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_TAG_TYPE_INVALID | 非法的Tag类型。 | +| OH_HUKS_TAG_TYPE_INT | 该Tag的数据类型为int32_t类型。 | +| OH_HUKS_TAG_TYPE_UINT | 该Tag的数据类型为uin32_t类型。 | +| OH_HUKS_TAG_TYPE_ULONG | 该Tag的数据类型为uin64_t类型。 | +| OH_HUKS_TAG_TYPE_BOOL | 该Tag的数据类型为bool类型。 | +| OH_HUKS_TAG_TYPE_BYTES | 该Tag的数据类型为OH_Huks_Blob类型。 | + + +### OH_Huks_UserAuthType + + +``` +enum OH_Huks_UserAuthType +``` +**描述:** +密钥访问控制中的用户认证类型 + +| 枚举值 | 描述 | +| -------- | -------- | +| OH_HUKS_USER_AUTH_TYPE_FINGERPRINT | 用户认证类型为指纹。 | +| OH_HUKS_USER_AUTH_TYPE_FACE | 用户认证类型为人脸。 | +| OH_HUKS_USER_AUTH_TYPE_PIN | 用户认证类型为PIN码。 | -- GitLab From f8050f47ccc6b58a14daf8bdf1cfb287b7533d9f Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:36:40 +0000 Subject: [PATCH 204/383] add zh-cn/application-dev/reference/native-apis/native__huks__api_8h.md. Signed-off-by: zengyawen --- .../native-apis/native__huks__api_8h.md | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/native__huks__api_8h.md diff --git a/zh-cn/application-dev/reference/native-apis/native__huks__api_8h.md b/zh-cn/application-dev/reference/native-apis/native__huks__api_8h.md new file mode 100644 index 0000000000..f88c681901 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/native__huks__api_8h.md @@ -0,0 +1,35 @@ +# native_huks_api.h + + +## 概述 + +声明用于访问HUKS的API。 + + **起始版本:** +9 + +**相关模块:** + +[HuksKeyApi](_huks_key_api.md) + + +## 汇总 + + +### 函数 + + | 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_GetSdkVersion](_huks_key_api.md#oh_huks_getsdkversion) (struct [OH_Huks_Blob](_o_h___huks___blob.md) \*sdkVersion) | struct [OH_Huks_Result](_o_h___huks___result.md)
获取当前Huks sdk版本号。 | +| [OH_Huks_GenerateKeyItem](_huks_key_api.md#oh_huks_generatekeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetIn, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetOut) | struct [OH_Huks_Result](_o_h___huks___result.md)
生成密钥。 | +| [OH_Huks_ImportKeyItem](_huks_key_api.md#oh_huks_importkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*key) | struct [OH_Huks_Result](_o_h___huks___result.md)
导入明文密钥。 | +| [OH_Huks_ImportWrappedKeyItem](_huks_key_api.md#oh_huks_importwrappedkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*wrappingKeyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*wrappedKeyData) | struct [OH_Huks_Result](_o_h___huks___result.md)
导入密文密钥。 | +| [OH_Huks_ExportPublicKeyItem](_huks_key_api.md#oh_huks_exportpublickeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*key) | struct [OH_Huks_Result](_o_h___huks___result.md)
导出公钥。 | +| [OH_Huks_DeleteKeyItem](_huks_key_api.md#oh_huks_deletekeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | struct [OH_Huks_Result](_o_h___huks___result.md)
删除密钥。 | +| [OH_Huks_GetKeyItemParamSet](_huks_key_api.md#oh_huks_getkeyitemparamset) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetIn, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSetOut) | struct [OH_Huks_Result](_o_h___huks___result.md)
获取密钥的属性集。 | +| [OH_Huks_IsKeyItemExist](_huks_key_api.md#oh_huks_iskeyitemexist) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | struct [OH_Huks_Result](_o_h___huks___result.md)
判断密钥是否存在。 | +| [OH_Huks_AttestKeyItem](_huks_key_api.md#oh_huks_attestkeyitem) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_CertChain](_o_h___huks___cert_chain.md) \*certChain) | struct [OH_Huks_Result](_o_h___huks___result.md)
获取密钥证书链。 | +| [OH_Huks_InitSession](_huks_key_api.md#oh_huks_initsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*keyAlias, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*challenge) | struct [OH_Huks_Result](_o_h___huks___result.md)
初始化密钥会话接口,并获取一个句柄(必选)和挑战值(可选)。 | +| [OH_Huks_UpdateSession](_huks_key_api.md#oh_huks_updatesession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*inData, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*outData) | struct [OH_Huks_Result](_o_h___huks___result.md)
分段添加密钥操作的数据并进行相应的密钥操作,输出处理数据。 | +| [OH_Huks_FinishSession](_huks_key_api.md#oh_huks_finishsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*inData, struct [OH_Huks_Blob](_o_h___huks___blob.md) \*outData) | struct [OH_Huks_Result](_o_h___huks___result.md)
结束密钥会话并进行相应的密钥操作,输出处理数据。 | +| [OH_Huks_AbortSession](_huks_key_api.md#oh_huks_abortsession) (const struct [OH_Huks_Blob](_o_h___huks___blob.md) \*handle, const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | struct [OH_Huks_Result](_o_h___huks___result.md)
取消密钥会话。 | -- GitLab From e6b9c1972b49cbb6dfdca3ea6d8ebdb43c1563e7 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:37:10 +0000 Subject: [PATCH 205/383] add huks api Signed-off-by: zengyawen --- .../native-apis/native__huks__param_8h.md | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/native__huks__param_8h.md diff --git a/zh-cn/application-dev/reference/native-apis/native__huks__param_8h.md b/zh-cn/application-dev/reference/native-apis/native__huks__param_8h.md new file mode 100644 index 0000000000..8fa4c77fa9 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/native__huks__param_8h.md @@ -0,0 +1,32 @@ +# native_huks_param.h + + +## 概述 + +提供参数集构造、使用和销毁的API。 + + **起始版本:** +9 + +**相关模块:** + +[HuksParamSetApi](_huks_param_set_api.md) + + +## 汇总 + + +### 函数 + + | 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_InitParamSet](_huks_param_set_api.md#oh_huks_initparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | int32_t
初始化参数集。 | +| [OH_Huks_AddParams](_huks_param_set_api.md#oh_huks_addparams) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, const struct [OH_Huks_Param](_o_h___huks___param.md) \*params, uint32_t paramCnt) | int32_t
添加参数到参数集里面。 | +| [OH_Huks_BuildParamSet](_huks_param_set_api.md#oh_huks_buildparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | int32_t
构造正式的参数集。 | +| [OH_Huks_FreeParamSet](_huks_param_set_api.md#oh_huks_freeparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | void
销毁参数集。 | +| [OH_Huks_CopyParamSet](_huks_param_set_api.md#oh_huks_copyparamset) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*fromParamSet, uint32_t fromParamSetSize, struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*\*paramSet) | int32_t
复制参数集(深拷贝)。 | +| [OH_Huks_GetParam](_huks_param_set_api.md#oh_huks_getparam) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, uint32_t tag, struct [OH_Huks_Param](_o_h___huks___param.md) \*\*param) | int32_t
从参数集中获取参数。 | +| [OH_Huks_FreshParamSet](_huks_param_set_api.md#oh_huks_freshparamset) (struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, bool isCopy) | int32_t
刷新(复制)参数集内Blob类型的数据到参数集内。 | +| [OH_Huks_isParamSetTagValid](_huks_param_set_api.md#oh_huks_isparamsettagvalid) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet) | int32_t
检查参数集中的参数是否有效、是否有重复。 | +| [OH_Huks_isParamSetValid](_huks_param_set_api.md#oh_huks_isparamsetvalid) (const struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*paramSet, uint32_t size) | int32_t
检查参数集大小是否有效。 | +| [OH_Huks_CheckParamMatch](_huks_param_set_api.md#oh_huks_checkparammatch) (const struct [OH_Huks_Param](_o_h___huks___param.md) \*baseParam, const struct [OH_Huks_Param](_o_h___huks___param.md) \*param) | int32_t
比较两个参数是否相同 | -- GitLab From f02f7182c243e641d37a598f7d626d68b609d338 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:37:52 +0000 Subject: [PATCH 206/383] add huks api Signed-off-by: zengyawen --- .../native-apis/native__huks__type_8h.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/native__huks__type_8h.md diff --git a/zh-cn/application-dev/reference/native-apis/native__huks__type_8h.md b/zh-cn/application-dev/reference/native-apis/native__huks__type_8h.md new file mode 100644 index 0000000000..c43a919a88 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/native__huks__type_8h.md @@ -0,0 +1,81 @@ +# native_huks_type.h + + +## 概述 + +提供huks中的枚举变量、结构体定义与宏定义。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 结构体 + +| 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_Result](_o_h___huks___result.md) | struct
表示状态返回数据,包括返回码和消息。 | +| [OH_Huks_Blob](_o_h___huks___blob.md) | struct
定义存放数据的结构体类型。 | +| [OH_Huks_Param](_o_h___huks___param.md) | struct
定义参数集中的参数结构体类型。 | +| [OH_Huks_ParamSet](_o_h___huks___param_set.md) | struct
定义参数集的结构体类型。 | +| [OH_Huks_CertChain](_o_h___huks___cert_chain.md) | struct
定义证书链的结构体类型。 | +| [OH_Huks_KeyInfo](_o_h___huks___key_info.md) | struct
定义密钥信息的结构体类型。 | +| [OH_Huks_PubKeyInfo](_o_h___huks___pub_key_info.md) | struct
定义公钥信息的结构体类型。 | +| [OH_Huks_KeyMaterialRsa](_o_h___huks___key_material_rsa.md) | struct
定义Rsa密钥的结构体类型。 | +| [OH_Huks_KeyMaterialEcc](_o_h___huks___key_material_ecc.md) | struct
定义Ecc密钥的结构体类型。 | +| [OH_Huks_KeyMaterialDsa](_o_h___huks___key_material_dsa.md) | struct
定义Dsa密钥的结构体类型。 | +| [OH_Huks_KeyMaterialDh](_o_h___huks___key_material_dh.md) | struct
定义Dh密钥的结构体类型。 | +| [OH_Huks_KeyMaterial25519](_o_h___huks___key_material25519.md) | struct
定义25519类型密钥的结构体类型。 | + + +### 宏定义 + +| 名称 | 描述 | +| -------- | -------- | +| **OH_HUKS_AE_TAG_LEN** 16 | | +| **OH_HUKS_BITS_PER_BYTE** 8 | | +| **OH_HUKS_MAX_KEY_SIZE** 2048 | | +| **OH_HUKS_AE_NONCE_LEN** 12 | | +| **OH_HUKS_MAX_KEY_ALIAS_LEN** 64 | | +| **OH_HUKS_MAX_PROCESS_NAME_LEN** 50 | | +| **OH_HUKS_MAX_RANDOM_LEN** 1024 | | +| **OH_HUKS_SIGNATURE_MIN_SIZE** 64 | | +| **OH_HUKS_MAX_OUT_BLOB_SIZE** (5 \* 1024 \* 1024) | | +| **OH_HUKS_WRAPPED_FORMAT_MAX_SIZE** (1024 \* 1024) | | +| **OH_HUKS_IMPORT_WRAPPED_KEY_TOTAL_BLOBS** 10 | | +| **TOKEN_CHALLENGE_LEN** 32 | | +| **SHA256_SIGN_LEN** 32 | | +| **TOKEN_SIZE** 32 | | +| **MAX_AUTH_TIMEOUT_SECOND** 60 | | +| **SECURE_SIGN_VERSION** 0x01000001 | | + + +### 枚举 + +| 名称 | 描述 | +| -------- | -------- | +| [OH_Huks_KeyPurpose](_huks_type_api.md#oh_huks_keypurpose) {
OH_HUKS_KEY_PURPOSE_ENCRYPT = 1,
OH_HUKS_KEY_PURPOSE_DECRYPT = 2,
OH_HUKS_KEY_PURPOSE_SIGN = 4,
OH_HUKS_KEY_PURPOSE_VERIFY = 8,
OH_HUKS_KEY_PURPOSE_DERIVE = 16,
OH_HUKS_KEY_PURPOSE_WRAP = 32,
OH_HUKS_KEY_PURPOSE_UNWRAP = 64,
OH_HUKS_KEY_PURPOSE_MAC = 128,
OH_HUKS_KEY_PURPOSE_AGREE = 256
} | 密钥用途类型。 | +| [OH_Huks_KeyDigest](_huks_type_api.md#oh_huks_keydigest) {
OH_HUKS_DIGEST_NONE = 0,
OH_HUKS_DIGEST_MD5 = 1,
OH_HUKS_DIGEST_SM3 = 2,
OH_HUKS_DIGEST_SHA1 = 10,
OH_HUKS_DIGEST_SHA224 = 11,
OH_HUKS_DIGEST_SHA256 = 12,
OH_HUKS_DIGEST_SHA384 = 13,
OH_HUKS_DIGEST_SHA512 = 14
} | 摘要算法类型。 | +| [OH_Huks_KeyPadding](_huks_type_api.md#oh_huks_keypadding) {
OH_HUKS_PADDING_NONE = 0,
OH_HUKS_PADDING_OAEP = 1,
OH_HUKS_PADDING_PSS = 2,
OH_HUKS_PADDING_PKCS1_V1_5 = 3,
OH_HUKS_PADDING_PKCS5 = 4,
OH_HUKS_PADDING_PKCS7 = 5
} | 补齐算法类型。 | +| [OH_Huks_CipherMode](_huks_type_api.md#oh_huks_ciphermode) {
OH_HUKS_MODE_ECB = 1,
OH_HUKS_MODE_CBC = 2,
OH_HUKS_MODE_CTR = 3,
OH_HUKS_MODE_OFB = 4,
OH_HUKS_MODE_CCM = 31,
OH_HUKS_MODE_GCM = 32
} | 加解密算法工作模式。 | +| [OH_Huks_KeySize](_huks_type_api.md#oh_huks_keysize) {
OH_HUKS_RSA_KEY_SIZE_512 = 512,
OH_HUKS_RSA_KEY_SIZE_768 = 768,
OH_HUKS_RSA_KEY_SIZE_1024 = 1024,
OH_HUKS_RSA_KEY_SIZE_2048 = 2048,
OH_HUKS_RSA_KEY_SIZE_3072 = 3072,
OH_HUKS_RSA_KEY_SIZE_4096 = 4096,
OH_HUKS_ECC_KEY_SIZE_224 = 224,
OH_HUKS_ECC_KEY_SIZE_256 = 256,
OH_HUKS_ECC_KEY_SIZE_384 = 384,
OH_HUKS_ECC_KEY_SIZE_521 = 521,
OH_HUKS_AES_KEY_SIZE_128 = 128,
OH_HUKS_AES_KEY_SIZE_192 = 192,
OH_HUKS_AES_KEY_SIZE_256 = 256,
OH_HUKS_AES_KEY_SIZE_512 = 512,
OH_HUKS_CURVE25519_KEY_SIZE_256 = 256,
OH_HUKS_DH_KEY_SIZE_2048 = 2048,
OH_HUKS_DH_KEY_SIZE_3072 = 3072,
OH_HUKS_DH_KEY_SIZE_4096 = 4096,
OH_HUKS_SM2_KEY_SIZE_256 = 256,
OH_HUKS_SM4_KEY_SIZE_128 = 128
} | 算法密钥长度。 | +| [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg) {
OH_HUKS_ALG_RSA = 1,
OH_HUKS_ALG_ECC = 2,
OH_HUKS_ALG_DSA = 3,
OH_HUKS_ALG_AES = 20,
OH_HUKS_ALG_HMAC = 50,
OH_HUKS_ALG_HKDF = 51,
OH_HUKS_ALG_PBKDF2 = 52,
OH_HUKS_ALG_ECDH = 100,
OH_HUKS_ALG_X25519 = 101,
OH_HUKS_ALG_ED25519 = 102,
OH_HUKS_ALG_DH = 103,
OH_HUKS_ALG_SM2 = 150,
OH_HUKS_ALG_SM3 = 151,
OH_HUKS_ALG_SM4 = 152
} | 密钥使用的算法。 | +| [OH_Huks_AlgSuite](_huks_type_api.md#oh_huks_algsuite) {
OH_HUKS_UNWRAP_SUITE_X25519_AES_256_GCM_NOPADDING = 1,
OH_HUKS_UNWRAP_SUITE_ECDH_AES_256_GCM_NOPADDING = 2
} | 密文导入所需的算法套件类型 | +| [OH_Huks_KeyGenerateType](_huks_type_api.md#oh_huks_keygeneratetype) {
OH_HUKS_KEY_GENERATE_TYPE_DEFAULT = 0,
OH_HUKS_KEY_GENERATE_TYPE_DERIVE = 1,
OH_HUKS_KEY_GENERATE_TYPE_AGREE = 2
} | 生成的密钥类型。 | +| [OH_Huks_KeyFlag](_huks_type_api.md#oh_huks_keyflag) {
OH_HUKS_KEY_FLAG_IMPORT_KEY = 1,
OH_HUKS_KEY_FLAG_GENERATE_KEY = 2,
OH_HUKS_KEY_FLAG_AGREE_KEY = 3,
OH_HUKS_KEY_FLAG_DERIVE_KEY = 4
} | 密钥的产生方式。 | +| [OH_Huks_KeyStorageType](_huks_type_api.md#oh_huks_keystoragetype) {
OH_HUKS_STORAGE_TEMP = 0,
OH_HUKS_STORAGE_PERSISTENT = 1
} | 密钥的存储方式。 | +| [OH_Huks_ImportKeyType](_huks_type_api.md#oh_huks_importkeytype) {
OH_HUKS_KEY_TYPE_PUBLIC_KEY = 0,
OH_HUKS_KEY_TYPE_PRIVATE_KEY = 1,
OH_HUKS_KEY_TYPE_KEY_PAIR = 2
}| 导入密钥的类型,默认为导入公钥,导入对称密钥时不需要该字段。 | +| [OH_Huks_ErrCode](_huks_type_api.md#oh_huks_errcode) {
OH_HUKS_SUCCESS = 0,
OH_HUKS_ERR_CODE_PERMISSION_FAIL = 201,
OH_HUKS_ERR_CODE_ILLEGAL_ARGUMENT = 401,
OH_HUKS_ERR_CODE_NOT_SUPPORTED_API = 801,
OH_HUKS_ERR_CODE_FEATURE_NOT_SUPPORTED = 12000001,
OH_HUKS_ERR_CODE_MISSING_CRYPTO_ALG_ARGUMENT = 12000002,
OH_HUKS_ERR_CODE_INVALID_CRYPTO_ALG_ARGUMENT = 12000003,
OH_HUKS_ERR_CODE_FILE_OPERATION_FAIL = 12000004,
OH_HUKS_ERR_CODE_COMMUNICATION_FAIL = 12000005,
OH_HUKS_ERR_CODE_CRYPTO_FAIL = 12000006,
OH_HUKS_ERR_CODE_KEY_AUTH_PERMANENTLY_INVALIDATED = 12000007,
OH_HUKS_ERR_CODE_KEY_AUTH_VERIFY_FAILED = 12000008,
OH_HUKS_ERR_CODE_KEY_AUTH_TIME_OUT = 12000009,
OH_HUKS_ERR_CODE_SESSION_LIMIT = 12000010,
OH_HUKS_ERR_CODE_ITEM_NOT_EXIST = 12000011,
OH_HUKS_ERR_CODE_INTERNAL_ERROR = 12000012,
OH_HUKS_ERR_CODE_CREDENTIAL_NOT_EXIST = 12000013
} | 错误码。 | +| [OH_Huks_TagType](_huks_type_api.md#oh_huks_tagtype) {
OH_HUKS_TAG_TYPE_INVALID = 0 << 28,
OH_HUKS_TAG_TYPE_INT = 1 << 28,
OH_HUKS_TAG_TYPE_UINT = 2 << 28,
OH_HUKS_TAG_TYPE_ULONG = 3 << 28,
OH_HUKS_TAG_TYPE_BOOL = 4 << 28,
OH_HUKS_TAG_TYPE_BYTES = 5 << 28
} | 参数集中参数类型的掩码值。 | +| [OH_Huks_UserAuthType](_huks_type_api.md#oh_huks_userauthtype) {
OH_HUKS_USER_AUTH_TYPE_FINGERPRINT = 1 << 0,
OH_HUKS_USER_AUTH_TYPE_FACE = 1 << 1,
OH_HUKS_USER_AUTH_TYPE_PIN = 1 << 2
} | 密钥访问控制中的用户认证类型 | +| [OH_Huks_AuthAccessType](_huks_type_api.md#oh_huks_authaccesstype) {
OH_HUKS_AUTH_ACCESS_INVALID_CLEAR_PASSWORD = 1 << 0,
OH_HUKS_AUTH_ACCESS_INVALID_NEW_BIO_ENROLL = 1 << 1
} | 安全访问控制类型,表示密钥失效的原则 | +| [OH_Huks_ChallengeType](_huks_type_api.md#oh_huks_challengetype) {
OH_HUKS_CHALLENGE_TYPE_NORMAL = 0,
OH_HUKS_CHALLENGE_TYPE_CUSTOM = 1,
OH_HUKS_CHALLENGE_TYPE_NONE = 2
} | 密钥使用时生成challenge的类型 | +| [OH_Huks_ChallengePosition](_huks_type_api.md#oh_huks_challengeposition) {
OH_HUKS_CHALLENGE_POS_0 = 0,
OH_HUKS_CHALLENGE_POS_1,
OH_HUKS_CHALLENGE_POS_2,
OH_HUKS_CHALLENGE_POS_3
} | challenge类型为用户自定义类型时,生成的challenge有效长度仅为8字节连续的数据,且仅支持4种位置。 | +| [OH_Huks_SecureSignType](_huks_type_api.md#oh_huks_securesigntype) { OH_HUKS_SECURE_SIGN_WITH_AUTHINFO = 1 } | 生成或导入密钥时,指定该密钥的安全签名类型。 | +| [OH_Huks_Tag](_huks_type_api.md#oh_huks_tag) {
OH_HUKS_TAG_INVALID = OH_HUKS_TAG_TYPE_INVALID \| 0, OH_HUKS_TAG_ALGORITHM = OH_HUKS_TAG_TYPE_UINT \| 1, OH_HUKS_TAG_PURPOSE = OH_HUKS_TAG_TYPE_UINT \| 2, OH_HUKS_TAG_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 3,
OH_HUKS_TAG_DIGEST = OH_HUKS_TAG_TYPE_UINT \| 4, OH_HUKS_TAG_PADDING = OH_HUKS_TAG_TYPE_UINT \| 5, OH_HUKS_TAG_BLOCK_MODE = OH_HUKS_TAG_TYPE_UINT \| 6, OH_HUKS_TAG_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 7,
OH_HUKS_TAG_ASSOCIATED_DATA = OH_HUKS_TAG_TYPE_BYTES \| 8, OH_HUKS_TAG_NONCE = OH_HUKS_TAG_TYPE_BYTES \| 9, OH_HUKS_TAG_IV = OH_HUKS_TAG_TYPE_BYTES \| 10, OH_HUKS_TAG_INFO = OH_HUKS_TAG_TYPE_BYTES \| 11,
OH_HUKS_TAG_SALT = OH_HUKS_TAG_TYPE_BYTES \| 12, OH_HUKS_TAG_PWD = OH_HUKS_TAG_TYPE_BYTES \| 13, OH_HUKS_TAG_ITERATION = OH_HUKS_TAG_TYPE_UINT \| 14, OH_HUKS_TAG_KEY_GENERATE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 15,
OH_HUKS_TAG_DERIVE_MAIN_KEY = OH_HUKS_TAG_TYPE_BYTES \| 16, OH_HUKS_TAG_DERIVE_FACTOR = OH_HUKS_TAG_TYPE_BYTES \| 17, OH_HUKS_TAG_DERIVE_ALG = OH_HUKS_TAG_TYPE_UINT \| 18, OH_HUKS_TAG_AGREE_ALG = OH_HUKS_TAG_TYPE_UINT \| 19,
OH_HUKS_TAG_AGREE_PUBLIC_KEY_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 20, OH_HUKS_TAG_AGREE_PRIVATE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 21, OH_HUKS_TAG_AGREE_PUBLIC_KEY = OH_HUKS_TAG_TYPE_BYTES \| 22, OH_HUKS_TAG_KEY_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 23,
OH_HUKS_TAG_DERIVE_KEY_SIZE = OH_HUKS_TAG_TYPE_UINT \| 24, OH_HUKS_TAG_IMPORT_KEY_TYPE = OH_HUKS_TAG_TYPE_UINT \| 25, OH_HUKS_TAG_UNWRAP_ALGORITHM_SUITE = OH_HUKS_TAG_TYPE_UINT \| 26, OH_HUKS_TAG_ALL_USERS = OH_HUKS_TAG_TYPE_BOOL \| 301,
OH_HUKS_TAG_USER_ID = OH_HUKS_TAG_TYPE_UINT \| 302, OH_HUKS_TAG_NO_AUTH_REQUIRED = OH_HUKS_TAG_TYPE_BOOL \| 303, OH_HUKS_TAG_USER_AUTH_TYPE = OH_HUKS_TAG_TYPE_UINT \| 304, OH_HUKS_TAG_AUTH_TIMEOUT = OH_HUKS_TAG_TYPE_UINT \| 305,
OH_HUKS_TAG_AUTH_TOKEN = OH_HUKS_TAG_TYPE_BYTES \| 306, OH_HUKS_TAG_KEY_AUTH_ACCESS_TYPE = OH_HUKS_TAG_TYPE_UINT \| 307, OH_HUKS_TAG_KEY_SECURE_SIGN_TYPE = OH_HUKS_TAG_TYPE_UINT \| 308, OH_HUKS_TAG_CHALLENGE_TYPE = OH_HUKS_TAG_TYPE_UINT \| 309,
OH_HUKS_TAG_CHALLENGE_POS = OH_HUKS_TAG_TYPE_UINT \| 310, OH_HUKS_TAG_ATTESTATION_CHALLENGE = OH_HUKS_TAG_TYPE_BYTES \| 501, OH_HUKS_TAG_ATTESTATION_APPLICATION_ID = OH_HUKS_TAG_TYPE_BYTES \| 502, OH_HUKS_TAG_ATTESTATION_ID_BRAND = OH_HUKS_TAG_TYPE_BYTES \| 503,
OH_HUKS_TAG_ATTESTATION_ID_DEVICE = OH_HUKS_TAG_TYPE_BYTES \| 504, OH_HUKS_TAG_ATTESTATION_ID_PRODUCT = OH_HUKS_TAG_TYPE_BYTES \| 505, OH_HUKS_TAG_ATTESTATION_ID_SERIAL = OH_HUKS_TAG_TYPE_BYTES \| 506, OH_HUKS_TAG_ATTESTATION_ID_IMEI = OH_HUKS_TAG_TYPE_BYTES \| 507,
OH_HUKS_TAG_ATTESTATION_ID_MEID = OH_HUKS_TAG_TYPE_BYTES \| 508, OH_HUKS_TAG_ATTESTATION_ID_MANUFACTURER = OH_HUKS_TAG_TYPE_BYTES \| 509, OH_HUKS_TAG_ATTESTATION_ID_MODEL = OH_HUKS_TAG_TYPE_BYTES \| 510, OH_HUKS_TAG_ATTESTATION_ID_ALIAS = OH_HUKS_TAG_TYPE_BYTES \| 511,
OH_HUKS_TAG_ATTESTATION_ID_SOCID = OH_HUKS_TAG_TYPE_BYTES \| 512, OH_HUKS_TAG_ATTESTATION_ID_UDID = OH_HUKS_TAG_TYPE_BYTES \| 513, OH_HUKS_TAG_ATTESTATION_ID_SEC_LEVEL_INFO = OH_HUKS_TAG_TYPE_BYTES \| 514, OH_HUKS_TAG_ATTESTATION_ID_VERSION_INFO = OH_HUKS_TAG_TYPE_BYTES \| 515,
OH_HUKS_TAG_IS_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1001, OH_HUKS_TAG_KEY_STORAGE_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1002, OH_HUKS_TAG_IS_ALLOWED_WRAP = OH_HUKS_TAG_TYPE_BOOL \| 1003, OH_HUKS_TAG_KEY_WRAP_TYPE = OH_HUKS_TAG_TYPE_UINT \| 1004,
OH_HUKS_TAG_KEY_AUTH_ID = OH_HUKS_TAG_TYPE_BYTES \| 1005, OH_HUKS_TAG_KEY_ROLE = OH_HUKS_TAG_TYPE_UINT \| 1006, OH_HUKS_TAG_KEY_FLAG = OH_HUKS_TAG_TYPE_UINT \| 1007, OH_HUKS_TAG_IS_ASYNCHRONIZED = OH_HUKS_TAG_TYPE_UINT \| 1008,
OH_HUKS_TAG_SECURE_KEY_ALIAS = OH_HUKS_TAG_TYPE_BOOL \| 1009, OH_HUKS_TAG_SECURE_KEY_UUID = OH_HUKS_TAG_TYPE_BYTES \| 1010, OH_HUKS_TAG_KEY_DOMAIN = OH_HUKS_TAG_TYPE_UINT \| 1011, OH_HUKS_TAG_SYMMETRIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20001,
OH_HUKS_TAG_ASYMMETRIC_PUBLIC_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20002, OH_HUKS_TAG_ASYMMETRIC_PRIVATE_KEY_DATA = OH_HUKS_TAG_TYPE_BYTES \| 20003
} | 参数集所用的TAG值枚举 | -- GitLab From 11c0c4e1ac187680bb44019d7668d9b4abbecfea Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:38:27 +0000 Subject: [PATCH 207/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___blob.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___blob.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___blob.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___blob.md new file mode 100644 index 0000000000..17effd584e --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___blob.md @@ -0,0 +1,47 @@ +# OH_Huks_Blob + + +## 概述 + +定义存放数据的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + +| 名称 | 描述 | +| -------- | -------- | +| [size](#size) | uint32_t
数据大小 | +| [data](#data) | uint8_t \*
指向数据内存的指针 | + + +## 结构体成员变量说明 + + +### data + + +``` +uint8_t* OH_Huks_Blob::data +``` +**描述:** +指向数据内存的指针 + + +### size + + +``` +uint32_t OH_Huks_Blob::size +``` +**描述:** +数据大小 -- GitLab From 90b27711687261bda3c53838adf63932156ad088 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:38:59 +0000 Subject: [PATCH 208/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___cert_chain.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___cert_chain.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___cert_chain.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___cert_chain.md new file mode 100644 index 0000000000..de35546c97 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___cert_chain.md @@ -0,0 +1,47 @@ +# OH_Huks_CertChain + + +## 概述 + +定义证书链的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + +| 名称 | 描述 | +| -------- | -------- | +| [certs](#certs) | struct [OH_Huks_Blob](_o_h___huks___blob.md) \*
指向证书数据的指针。 | +| [certsCount](#certscount) | uint32_t
证书本数。 | + + +## 结构体成员变量说明 + + +### certs + + +``` +struct OH_Huks_Blob* OH_Huks_CertChain::certs +``` +**描述:** +指向证书数据的指针。 + + +### certsCount + + +``` +uint32_t OH_Huks_CertChain::certsCount +``` +**描述:** +证书本数。 -- GitLab From 77438d0105a955cc0e867edde2eecf76285d1a97 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:39:34 +0000 Subject: [PATCH 209/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___key_info.md | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___key_info.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_info.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_info.md new file mode 100644 index 0000000000..0c5788fada --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_info.md @@ -0,0 +1,47 @@ +# OH_Huks_KeyInfo + + +## 概述 + +定义密钥信息的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [alias](#alias) | struct [OH_Huks_Blob](_o_h___huks___blob.md)
密钥的别名。 | +| [paramSet](#paramset) | struct [OH_Huks_ParamSet](_o_h___huks___param_set.md) \*
指向密钥参数集的指针。 | + + +## 结构体成员变量说明 + + +### alias + + +``` +struct OH_Huks_Blob OH_Huks_KeyInfo::alias +``` +**描述:** +密钥的别名。 + + +### paramSet + + +``` +struct OH_Huks_ParamSet* OH_Huks_KeyInfo::paramSet +``` +**描述:** +指向密钥参数集的指针。 -- GitLab From e59e26fe86fe651bfb7ab7b7f734b294190ccbc6 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:40:09 +0000 Subject: [PATCH 210/383] add huks api Signed-off-by: zengyawen --- .../_o_h___huks___key_material25519.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material25519.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material25519.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material25519.md new file mode 100644 index 0000000000..8e40aaaef2 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material25519.md @@ -0,0 +1,80 @@ +# OH_Huks_KeyMaterial25519 + + +## 概述 + +定义25519类型密钥的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [keyAlg](#keyalg) | enum [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg)
密钥的算法类型。 | +| [keySize](#keysize) | uint32_t
25519类型密钥的长度。 | +| [pubKeySize](#pubkeysize) | uint32_t
公钥的长度。 | +| [priKeySize](#prikeysize) | uint32_t
私钥的长度。 | +| [reserved](#reserved) | uint32_t
保留。 | + + +## 结构体成员变量说明 + + +### keyAlg + + +``` +enum OH_Huks_KeyAlg OH_Huks_KeyMaterial25519::keyAlg +``` +**描述:** +密钥的算法类型。 + + +### keySize + + +``` +uint32_t OH_Huks_KeyMaterial25519::keySize +``` +**描述:** +25519类型密钥的长度。 + + +### priKeySize + + +``` +uint32_t OH_Huks_KeyMaterial25519::priKeySize +``` +**描述:** +私钥的长度。 + + +### pubKeySize + + +``` +uint32_t OH_Huks_KeyMaterial25519::pubKeySize +``` +**描述:** +公钥的长度。 + + +### reserved + + +``` +uint32_t OH_Huks_KeyMaterial25519::reserved +``` +**描述:** +保留。 -- GitLab From 0d4a373581f5d26282a4761b9d97e9ec5d6d3617 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:40:42 +0000 Subject: [PATCH 211/383] add huks api Signed-off-by: zengyawen --- .../_o_h___huks___key_material_dh.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dh.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dh.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dh.md new file mode 100644 index 0000000000..9888004a65 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dh.md @@ -0,0 +1,80 @@ +# OH_Huks_KeyMaterialDh + + +## 概述 + +定义Dh密钥的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [keyAlg](#keyalg) | enum [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg)
密钥的算法类型。 | +| [keySize](#keysize) | uint32_t
Dh密钥的长度。 | +| [pubKeySize](#pubkeysize) | uint32_t
公钥的长度。 | +| [priKeySize](#prikeysize) | uint32_t
私钥的长度。 | +| [reserved](#reserved) | uint32_t
保留。 | + + +## 结构体成员变量说明 + + +### keyAlg + + +``` +enum OH_Huks_KeyAlg OH_Huks_KeyMaterialDh::keyAlg +``` +**描述:** +密钥的算法类型。 + + +### keySize + + +``` +uint32_t OH_Huks_KeyMaterialDh::keySize +``` +**描述:** +Dh密钥的长度。 + + +### priKeySize + + +``` +uint32_t OH_Huks_KeyMaterialDh::priKeySize +``` +**描述:** +私钥的长度。 + + +### pubKeySize + + +``` +uint32_t OH_Huks_KeyMaterialDh::pubKeySize +``` +**描述:** +公钥的长度。 + + +### reserved + + +``` +uint32_t OH_Huks_KeyMaterialDh::reserved +``` +**描述:** +保留。 -- GitLab From 7b9c073999c257d11732a46f118c9df3c9971da4 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:41:09 +0000 Subject: [PATCH 212/383] add huks api Signed-off-by: zengyawen --- .../_o_h___huks___key_material_dsa.md | 102 ++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dsa.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dsa.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dsa.md new file mode 100644 index 0000000000..cda594af89 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_dsa.md @@ -0,0 +1,102 @@ +# OH_Huks_KeyMaterialDsa + + +## 概述 + +定义Dsa密钥的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [keyAlg](#keyalg) | enum [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg)
密钥的算法类型。 | +| [keySize](#keysize) | uint32_t
密钥的长度。 | +| [xSize](#xsize) | uint32_t
x值的长度。 | +| [ySize](#ysize) | uint32_t
y值的长度。 | +| [pSize](#psize) | uint32_t
p值的长度。 | +| [qSize](#qsize) | uint32_t
q值的长度。 | +| [gSize](#gsize) | uint32_t
g值的长度。 | + + +## 结构体成员变量说明 + + +### gSize + + +``` +uint32_t OH_Huks_KeyMaterialDsa::gSize +``` +**描述:** +g值的长度。 + + +### keyAlg + + +``` +enum OH_Huks_KeyAlg OH_Huks_KeyMaterialDsa::keyAlg +``` +**描述:** +密钥的算法类型。 + + +### keySize + + +``` +uint32_t OH_Huks_KeyMaterialDsa::keySize +``` +**描述:** +密钥的长度。 + + +### pSize + + +``` +uint32_t OH_Huks_KeyMaterialDsa::pSize +``` +**描述:** +p值的长度。 + + +### qSize + + +``` +uint32_t OH_Huks_KeyMaterialDsa::qSize +``` +**描述:** +q值的长度。 + + +### xSize + + +``` +uint32_t OH_Huks_KeyMaterialDsa::xSize +``` +**描述:** +x值的长度。 + + +### ySize + + +``` +uint32_t OH_Huks_KeyMaterialDsa::ySize +``` +**描述:** +y值的长度。 -- GitLab From 1aef9d0ee65284315874a4e866b7a07ee7b98309 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:41:48 +0000 Subject: [PATCH 213/383] add huks api Signed-off-by: zengyawen --- .../_o_h___huks___key_material_ecc.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_ecc.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_ecc.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_ecc.md new file mode 100644 index 0000000000..6b9a034ce2 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_ecc.md @@ -0,0 +1,80 @@ +# OH_Huks_KeyMaterialEcc + + +## 概述 + +定义Ecc密钥的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [keyAlg](#keyalg) | enum [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg)
密钥的算法类型。 | +| [keySize](#keysize) | uint32_t
密钥的长度。 | +| [xSize](#xsize) | uint32_t
x值的长度。 | +| [ySize](#ysize) | uint32_t
y值的长度。 | +| [zSize](#zsize) | uint32_t
z值的长度。 | + + +## 结构体成员变量说明 + + +### keyAlg + + +``` +enum OH_Huks_KeyAlg OH_Huks_KeyMaterialEcc::keyAlg +``` +**描述:** +密钥的算法类型。 + + +### keySize + + +``` +uint32_t OH_Huks_KeyMaterialEcc::keySize +``` +**描述:** +密钥的长度。 + + +### xSize + + +``` +uint32_t OH_Huks_KeyMaterialEcc::xSize +``` +**描述:** +x值的长度。 + + +### ySize + + +``` +uint32_t OH_Huks_KeyMaterialEcc::ySize +``` +**描述:** +y值的长度。 + + +### zSize + + +``` +uint32_t OH_Huks_KeyMaterialEcc::zSize +``` +**描述:** +z值的长度。 -- GitLab From b07e584ffb4f5f9deaf051d92b9cb0a88eacdf6f Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:43:16 +0000 Subject: [PATCH 214/383] add huks api Signed-off-by: zengyawen --- .../_o_h___huks___key_material_rsa.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_rsa.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_rsa.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_rsa.md new file mode 100644 index 0000000000..bbe29d2f03 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___key_material_rsa.md @@ -0,0 +1,80 @@ +# OH_Huks_KeyMaterialRsa + + +## 概述 + +定义Rsa密钥的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [keyAlg](#keyalg) | enum [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg)
密钥的算法类型。 | +| [keySize](#keysize) | uint32_t
密钥的长度。 | +| [nSize](#nsize) | uint32_t
n值的长度。 | +| [eSize](#esize) | uint32_t
e值的长度。 | +| [dSize](#dsize) | uint32_t
d值的长度。 | + + +## 结构体成员变量说明 + + +### dSize + + +``` +uint32_t OH_Huks_KeyMaterialRsa::dSize +``` +**描述:** +d值的长度。 + + +### eSize + + +``` +uint32_t OH_Huks_KeyMaterialRsa::eSize +``` +**描述:** +e值的长度。 + + +### keyAlg + + +``` +enum OH_Huks_KeyAlg OH_Huks_KeyMaterialRsa::keyAlg +``` +**描述:** +密钥的算法类型。 + + +### keySize + + +``` +uint32_t OH_Huks_KeyMaterialRsa::keySize +``` +**描述:** +密钥的长度。 + + +### nSize + + +``` +uint32_t OH_Huks_KeyMaterialRsa::nSize +``` +**描述:** +n值的长度。 -- GitLab From 5113d152b6e0f046edafc7657d083e52b0605e70 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:44:31 +0000 Subject: [PATCH 215/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___param.md | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___param.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___param.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___param.md new file mode 100644 index 0000000000..8febc613c4 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___param.md @@ -0,0 +1,93 @@ +# OH_Huks_Param + + +## 概述 + +定义参数集中的参数结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [tag](#tag) | uint32_t
标签值 | +| | union { | +| | bool [boolParam](#boolparam) | +| | int32_t [int32Param](#int32param) | +| | uint32_t [uint32Param](#uint32param) | +| | uint64_t [uint64Param](#uint64param) | +| | struct [OH_Huks_Blob](_o_h___huks___blob.md)[blob](#blob) | +| | }; | + + +## 结构体成员变量说明 + + +### blob + + +``` +struct OH_Huks_Blob OH_Huks_Param::blob +``` +**描述:** +struct OH_Huks_Blob型参数。 + + +### boolParam + + +``` +bool OH_Huks_Param::boolParam +``` +**描述:** +bool型参数。 + + +### int32Param + + +``` +int32_t OH_Huks_Param::int32Param +``` +**描述:** +int32_t型参数。 + + +### tag + + +``` +uint32_t OH_Huks_Param::tag +``` +**描述:** +标签值 + + +### uint32Param + + +``` +uint32_t OH_Huks_Param::uint32Param +``` +**描述:** +uint32_t型参数。 + + +### uint64Param + + +``` +uint64_t OH_Huks_Param::uint64Param +``` +**描述:** +uint64_t型参数。 -- GitLab From 0e52c32054b5929909152b2c4639bbacd064633b Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:44:55 +0000 Subject: [PATCH 216/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___param_set.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___param_set.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___param_set.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___param_set.md new file mode 100644 index 0000000000..9c334baf99 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___param_set.md @@ -0,0 +1,58 @@ +# OH_Huks_ParamSet + + +## 概述 + +定义参数集的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [paramSetSize](#paramsetsize) | uint32_t
参数集的内存大小。 | +| [paramsCnt](#paramscnt) | uint32_t
参数的个数。 | +| [params](#params) [] | struct [OH_Huks_Param](_o_h___huks___param.md)
参数数组。 | + + +## 结构体成员变量说明 + + +### params + + +``` +struct OH_Huks_Param OH_Huks_ParamSet::params[] +``` +**描述:** +参数数组。 + + +### paramsCnt + + +``` +uint32_t OH_Huks_ParamSet::paramsCnt +``` +**描述:** +参数的个数。 + + +### paramSetSize + + +``` +uint32_t OH_Huks_ParamSet::paramSetSize +``` +**描述:** +参数集的内存大小。 -- GitLab From 4f0c331110c75f24afb140110c1989a0b6934157 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:45:40 +0000 Subject: [PATCH 217/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___pub_key_info.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___pub_key_info.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___pub_key_info.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___pub_key_info.md new file mode 100644 index 0000000000..3628fab4a4 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___pub_key_info.md @@ -0,0 +1,80 @@ +# OH_Huks_PubKeyInfo + + +## 概述 + +定义公钥信息的结构体类型。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [keyAlg](#keyalg) | enum [OH_Huks_KeyAlg](_huks_type_api.md#oh_huks_keyalg)
公钥的算法类型。 | +| [keySize](#keysize) | uint32_t
公钥的长度。 | +| [nOrXSize](#norxsize) | uint32_t
n或X值的长度。 | +| [eOrYSize](#eorysize) | uint32_t
e或Y值的长度。 | +| [placeHolder](#placeholder) | uint32_t
占位符大小。 | + + +## 结构体成员变量说明 + + +### eOrYSize + + +``` +uint32_t OH_Huks_PubKeyInfo::eOrYSize +``` +**描述:** +e或Y值的长度。 + + +### keyAlg + + +``` +enum OH_Huks_KeyAlg OH_Huks_PubKeyInfo::keyAlg +``` +**描述:** +公钥的算法类型。 + + +### keySize + + +``` +uint32_t OH_Huks_PubKeyInfo::keySize +``` +**描述:** +公钥的长度。 + + +### nOrXSize + + +``` +uint32_t OH_Huks_PubKeyInfo::nOrXSize +``` +**描述:** +n或X值的长度。 + + +### placeHolder + + +``` +uint32_t OH_Huks_PubKeyInfo::placeHolder +``` +**描述:** +占位符大小。 -- GitLab From c26e26a124bc018661bc12f9286465b7166f2926 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Fri, 13 Jan 2023 02:46:03 +0000 Subject: [PATCH 218/383] add huks api Signed-off-by: zengyawen --- .../native-apis/_o_h___huks___result.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 zh-cn/application-dev/reference/native-apis/_o_h___huks___result.md diff --git a/zh-cn/application-dev/reference/native-apis/_o_h___huks___result.md b/zh-cn/application-dev/reference/native-apis/_o_h___huks___result.md new file mode 100644 index 0000000000..cc2c126a55 --- /dev/null +++ b/zh-cn/application-dev/reference/native-apis/_o_h___huks___result.md @@ -0,0 +1,58 @@ +# OH_Huks_Result + + +## 概述 + +表示状态返回数据,包括返回码和消息。 + + **起始版本:** +9 + +**相关模块:** + +[HuksTypeApi](_huks_type_api.md) + + +## 汇总 + + +### 成员变量 + + | 名称 | 描述 | +| -------- | -------- | +| [errorCode](#errorcode) | int32_t
状态返回码。 | +| [errorMsg](#errormsg) | const char \*
对状态返回码的说明信息。 | +| [data](#data) | uint8_t \*
其他返回数据。 | + + +## 结构体成员变量说明 + + +### data + + +``` +uint8_t* OH_Huks_Result::data +``` +**描述:** +其他返回数据。 + + +### errorCode + + +``` +int32_t OH_Huks_Result::errorCode +``` +**描述:** +状态返回码。 + + +### errorMsg + + +``` +const char* OH_Huks_Result::errorMsg +``` +**描述:** +对状态返回码的说明信息。 -- GitLab From e79bcb38f8d41522c2ef3ec400175fa337a3103c Mon Sep 17 00:00:00 2001 From: onexiaomin Date: Fri, 13 Jan 2023 10:56:23 +0800 Subject: [PATCH 219/383] fix some error Signed-off-by: onexiaomin --- zh-cn/application-dev/reference/apis/js-apis-fileAccess.md | 2 +- .../application-dev/reference/apis/js-apis-fileExtensionInfo.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md b/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md index a7dbee35c1..96fdfe4a49 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileAccess.md @@ -1,4 +1,4 @@ -# @ohos.data.fileAccess (公共文件访问与管理) +# @ohos.file.fileAccess (公共文件访问与管理) fileAccess模块是基于extension机制实现的一个对公共文件访问和操作的框架。该模块一方面对接各类文件管理服务,如媒体库、外置存储管理服务等,另一方面为系统应用提供一套统一的文件访问管理接口。其中,媒体库服务提供本地设备、分布式设备等公共文件访问服务;外置存储管理服务可以提供共享盘、U盘、SD卡等设备的公共文件访问服务。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md b/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md index bc1e98d8d6..b55f8ba04d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md +++ b/zh-cn/application-dev/reference/apis/js-apis-fileExtensionInfo.md @@ -1,4 +1,4 @@ -# @ohos.fileExtensionInfo (公共文件访问与管理属性信息) +# @ohos.file.fileExtensionInfo (公共文件访问与管理属性信息) 该模块提供公共文件访问和管理模块中RootInfo与FileInfo中部分属性值的定义。 -- GitLab From f923beef84f54d375bcdee8400d3dbca9bf043be Mon Sep 17 00:00:00 2001 From: Gloria Date: Fri, 13 Jan 2023 10:53:40 +0800 Subject: [PATCH 220/383] Update docs against 12416+12895+12486+13383+12423+12419+12424 Signed-off-by: wusongqing --- .../apis/js-apis-ability-dataUriUtils.md | 30 +- .../apis/js-apis-app-ability-dataUriUtils.md | 24 +- .../apis/js-apis-app-ability-wantAgent.md | 534 ++++++----- .../apis/js-apis-application-configuration.md | 9 +- ...-apis-application-configurationConstant.md | 32 +- .../reference/apis/js-apis-bundleManager.md | 835 +++++++++--------- .../js-apis-inner-application-appStateData.md | 40 +- ...-apis-inner-application-missionListener.md | 11 +- .../js-apis-inner-wantAgent-triggerInfo.md | 58 +- .../reference/apis/js-apis-wantAgent.md | 574 +++++------- 10 files changed, 964 insertions(+), 1183 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md b/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md index 108345299a..7b041a216d 100644 --- a/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md +++ b/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md @@ -1,6 +1,6 @@ # @ohos.ability.dataUriUtils -The **DataUriUtils** module provides APIs to handle utility classes for objects using the **DataAbilityHelper** schema. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI. This module will be replaced by the **app.ability.dataUriUtils** module in the near future. You are advised to use the **[@ohos.app.ability.dataUriUtils](js-apis-app-ability-dataUriUtils.md)** module. +The **DataUriUtils** module provides APIs to process URI objects. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI. This module will be replaced by the **app.ability.dataUriUtils** module in the near future. You are advised to use the **[@ohos.app.ability.dataUriUtils](js-apis-app-ability-dataUriUtils.md)** module. > **NOTE** > @@ -24,18 +24,18 @@ Obtains the ID attached to the end of a given URI. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | --------------------------- | -| uri | string | Yes | URI object from which the ID is to be obtained.| +| uri | string | Yes | Target URI object.| **Return value** | Type | Description | | ------ | ------------------------ | -| number | ID obtained from the URI object.| +| number | ID obtained.| **Example** ```ts -dataUriUtils.getId("com.example.dataUriUtils/1221") +let id = dataUriUtils.getId("com.example.dataUriUtils/1221"); ``` @@ -52,7 +52,7 @@ Attaches an ID to the end of a given URI. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | --------------------------- | -| uri | string | Yes | URI object to which an ID is to be attached.| +| uri | string | Yes | Target URI object.| | id | number | Yes | ID to be attached. | **Return value** @@ -64,10 +64,10 @@ Attaches an ID to the end of a given URI. **Example** ```ts -var idint = 1122; -dataUriUtils.attachId( +let id = 1122; +let uri = dataUriUtils.attachId( "com.example.dataUriUtils", - idint, + id, ) ``` @@ -96,9 +96,11 @@ Deletes the ID from the end of a given URI. **Example** ```ts -dataUriUtils.deleteId("com.example.dataUriUtils/1221") +let uri = dataUriUtils.deleteId("com.example.dataUriUtils/1221") ``` + + ## dataUriUtils.updateId updateId(uri: string, id: number): string @@ -111,7 +113,7 @@ Updates the ID in a given URI. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | ------------------- | -| uri | string | Yes | URI object to be updated.| +| uri | string | Yes | Target URI object.| | id | number | Yes | New ID. | **Return value** @@ -123,9 +125,9 @@ Updates the ID in a given URI. **Example** ```ts -var idint = 1122; -dataUriUtils.updateId( - "com.example.dataUriUtils", - idint +let id = 1122; +let uri = dataUriUtils.updateId( + "com.example.dataUriUtils/1221", + id ) ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md b/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md index a13e0f73da..c7a6f60215 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md @@ -1,6 +1,6 @@ -# ohos.app.ability.dataUriUtils +# @ohos.app.ability.dataUriUtils -The **DataUriUtils** module provides APIs to handle utility classes for objects using the **DataAbilityHelper** schema. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI. +The **DataUriUtils** module provides APIs to process URI objects. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI. > **NOTE** > @@ -24,13 +24,13 @@ Obtains the ID attached to the end of a given URI. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | --------------------------- | -| uri | string | Yes | URI object from which the ID is to be obtained.| +| uri | string | Yes | Target URI object.| **Return value** | Type | Description | | ------ | ------------------------ | -| number | ID obtained from the URI object.| +| number | ID obtained.| **Example** @@ -49,7 +49,7 @@ try { attachId(uri: string, id: number): string -Attaches an ID to the end of a given URI. It can be used to generate a new URI. +Attaches an ID to the end of a given URI. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -57,7 +57,7 @@ Attaches an ID to the end of a given URI. It can be used to generate a new URI. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | --------------------------- | -| uri | string | Yes | URI object to which an ID is to be attached.| +| uri | string | Yes | Target URI object.| | id | number | Yes | ID to be attached. | **Return value** @@ -69,11 +69,11 @@ Attaches an ID to the end of a given URI. It can be used to generate a new URI. **Example** ```ts -var idint = 1122; +var id = 1122; try { var uri = dataUriUtils.attachId( "com.example.dataUriUtils", - idint, + id, ) console.info('attachId the uri is: ' + uri) } catch (err) { @@ -130,7 +130,7 @@ Updates the ID in a given URI. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | ------------------- | -| uri | string | Yes | URI object to be updated.| +| uri | string | Yes | Target URI object.| | id | number | Yes | New ID. | **Return value** @@ -144,10 +144,10 @@ Updates the ID in a given URI. ```ts try { - var idint = 1122; + var id = 1122; var uri = dataUriUtils.updateId( - "com.example.dataUriUtils", - idint + "com.example.dataUriUtils/1221", + id ) } catch (err) { console.error('delete uri err, check the input uri' + err) diff --git a/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md b/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md index bfc8b4f99c..3a73d86254 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md @@ -1,6 +1,6 @@ # @ohos.app.ability.wantAgent -The **app.ability.WantAgent** module provides APIs for triggering, canceling, and comparing **WantAgent** objects. You can use the APIs to create a **WantAgent** object, and obtain the user ID, bundle name, and want information of the object. You are advised to use this module, since it will replace the [@ohos.wantAgent](js-apis-wantAgent.md) module in the near future. +The **app.ability.WantAgent** module provides APIs for creating and comparing **WantAgent** objects, and obtaining the user ID and bundle name of a **WantAgent** object. You are advised to use this module, since it will replace the [@ohos.wantAgent](js-apis-wantAgent.md) module in the near future. > **NOTE** > @@ -24,7 +24,7 @@ Obtains a **WantAgent** object. This API uses an asynchronous callback to return | Name | Type | Mandatory| Description | | -------- | -------------------------- | ---- | ----------------------- | -| info | WantAgentInfo | Yes | Information about the **WantAgent** object to obtain. | +| info | [WantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md) | Yes | Information about the **WantAgent** object to obtain. | | callback | AsyncCallback\ | Yes | Callback used to return the **WantAgent** object.| **Error codes** @@ -43,7 +43,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -54,33 +54,30 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000152 | wantAgent object not found.| | 16000153 | wangAgent object canceled.| - **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -92,15 +89,15 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(err)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -119,7 +116,7 @@ Obtains a **WantAgent** object. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ---- | ------------- | ---- | ------------- | -| info | WantAgentInfo | Yes | Information about the **WantAgent** object to obtain.| +| info | [WantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md) | Yes | Information about the **WantAgent** object to obtain.| **Return value** @@ -143,7 +140,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -157,28 +154,25 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - - // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -217,6 +211,7 @@ Obtains the bundle name of a **WantAgent** object. This API uses an asynchronous | callback | AsyncCallback\ | Yes | Callback used to return the bundle name.| **Error codes** +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). | ID | Error Message | |-----------|--------------------| | 16000001 | Input error. The specified ability name does not exist. | @@ -231,7 +226,7 @@ Obtains the bundle name of a **WantAgent** object. This API uses an asynchronous | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -245,28 +240,27 @@ Obtains the bundle name of a **WantAgent** object. This API uses an asynchronous **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -278,7 +272,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(wantAgent)); @@ -297,9 +291,9 @@ function getWantAgentCallback(err, data) { console.info('getBundleName failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -342,7 +336,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -356,29 +350,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -390,7 +382,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed!' + JSON.stringify(wantAgent)); @@ -405,9 +397,9 @@ function getWantAgentCallback(err, data) { console.info('getBundleName failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -445,7 +437,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -461,26 +453,26 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error ```ts import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -492,7 +484,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(err)); @@ -511,9 +503,9 @@ function getWantAgentCallback(err, data) { console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -556,7 +548,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -570,29 +562,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - - // WantAgent object -var wantAgent; +// WantAgent object +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -604,7 +594,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed!' + JSON.stringify(wantAgent)); @@ -619,9 +609,9 @@ function getWantAgentCallback(err, data) { console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -642,11 +632,10 @@ Obtains the want in a **WantAgent** object. This API uses an asynchronous callba | Name | Type | Mandatory| Description | | -------- | --------------------- | ---- | ------------------------------- | | agent | WantAgent | Yes | Target **WantAgent** object. | -| callback | AsyncCallback\ | Yes | Callback used to return the want.| +| callback | AsyncCallback\<[Want](js-apis-app-ability-want.md)\> | Yes | Callback used to return the want.| **Error codes** For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). - | ID | Error Message | |-----------|--------------------| | 16000001 | Input error. The specified ability name does not exist. | @@ -661,7 +650,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -675,28 +664,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -708,7 +696,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(wantAgent)); @@ -727,9 +715,9 @@ function getWantAgentCallback(err, data) { console.info('getWant failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -774,7 +762,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -788,29 +776,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - - // WantAgent object -var wantAgent; +// WantAgent object +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -822,7 +808,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed!' + JSON.stringify(wantAgent)); @@ -837,9 +823,9 @@ function getWantAgentCallback(err, data) { console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -877,7 +863,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -891,28 +877,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -924,7 +909,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(wantAgent)); @@ -943,9 +928,9 @@ function getWantAgentCallback(err, data) { console.info('cancel failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -988,7 +973,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -1002,29 +987,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1036,7 +1019,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed!' + JSON.stringify(wantAgent)); @@ -1051,17 +1034,13 @@ function getWantAgentCallback(err, data) { console.info('cancel failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` - -//TODO WantAgent.trigger Callback - - ## WantAgent.trigger trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: AsyncCallback\): void @@ -1075,8 +1054,8 @@ Triggers a **WantAgent** object. This API uses an asynchronous callback to retur | Name | Type | Mandatory| Description | | ----------- | ----------------------------- | ---- | ------------------------------- | | agent | WantAgent | Yes | Target **WantAgent** object. | -| triggerInfo | TriggerInfo | Yes | **TriggerInfo** object. | -| callback | AsyncCallback\ | No | Callback used to return the result.| +| triggerInfo | [TriggerInfo](js-apis-inner-wantAgent-triggerInfo.md) | Yes | **TriggerInfo** object. | +| callback | AsyncCallback\<[CompleteData](#completedata)\> | No | Callback used to return the result.| **Error codes** For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). @@ -1094,7 +1073,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -1108,32 +1087,31 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // triggerInfo -var triggerInfo = { - code: 0 +let triggerInfo = { + code: 0 // Custom result code. } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1145,7 +1123,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(wantAgent)); @@ -1164,9 +1142,9 @@ function getWantAgentCallback(err, data) { console.info('getUid failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -1177,7 +1155,7 @@ try{ equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback\): void -Checks whether two **WantAgent** objects are equal. This API uses an asynchronous callback to return the result. +Checks whether two **WantAgent** objects are equal to determine whether the same operation is from the same application. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1205,7 +1183,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -1219,29 +1197,28 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent1; -var wantAgent2; +let wantAgent1; +let wantAgent2; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1253,7 +1230,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent1 = data; wantAgent2 = data; } else { @@ -1273,9 +1250,9 @@ function getWantAgentCallback(err, data) { console.info('equal failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -1286,7 +1263,7 @@ try{ equal(agent: WantAgent, otherAgent: WantAgent): Promise\ -Checks whether two **WantAgent** objects are equal. This API uses a promise to return the result. +Checks whether two **WantAgent** objects are equal to determine whether the same operation is from the same application. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1319,7 +1296,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -1333,30 +1310,28 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - - // WantAgent object -var wantAgent1; -var wantAgent2; +// WantAgent object +let wantAgent1; +let wantAgent2; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1368,7 +1343,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent1 = data; wantAgent2 = data; } else { @@ -1384,9 +1359,9 @@ function getWantAgentCallback(err, data) { console.info('equal failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -1422,7 +1397,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -1436,28 +1411,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1469,7 +1443,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed' + JSON.stringify(wantAgent)); @@ -1488,9 +1462,9 @@ function getWantAgentCallback(err, data) { console.info('getOperationTypeCallback failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` @@ -1531,7 +1505,7 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error | 16000011 | Context does not exist.| | 16000050 | Internal Error.| | 16000051 | Network error. The network is abnormal.| -| 16000052 | Free install not support. The application does not support free install. | +| 16000052 | Free install not support. The application does not support free install.| | 16000053 | Not top ability. The application is not top ability.| | 16000054 | Free install busyness. There are concurrent tasks, waiting for retry.| | 16000055 | Free install timeout.| @@ -1545,29 +1519,27 @@ For details about the error codes, see [Ability Error Codes](../errorcodes/error **Example** ```ts -import WantAgent from '@ohos.app.ability.wantAgent'; - - // WantAgent object -var wantAgent; +// WantAgent object +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1579,7 +1551,7 @@ var wantAgentInfo = { // getWantAgent callback function getWantAgentCallback(err, data) { - if (err == undefined) { + if (err === undefined) { wantAgent = data; } else { console.info('getWantAgent failed!' + JSON.stringify(wantAgent)); @@ -1594,9 +1566,9 @@ function getWantAgentCallback(err, data) { console.info('getOperationType failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } } -try{ +try { WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); -} catch(err){ +} catch(err) { console.info('getWantAgent failed!' + JSON.stringify(err.code) + JSON.stringify(err.message)); } ``` diff --git a/en/application-dev/reference/apis/js-apis-application-configuration.md b/en/application-dev/reference/apis/js-apis-application-configuration.md index 9c374059dc..1fbb65c4ae 100644 --- a/en/application-dev/reference/apis/js-apis-application-configuration.md +++ b/en/application-dev/reference/apis/js-apis-application-configuration.md @@ -3,6 +3,7 @@ The **Configuration** module defines environment change information. > **NOTE** +> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. > This module is deprecated since API version 9. You are advised to use [@ohos.app.ability.Configuration](js-apis-app-ability-configuration.md) instead. @@ -16,7 +17,7 @@ import Configuration from '@ohos.application.Configuration' | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| language8+ | string | Yes| Yes| Language of the application.| +| language8+ | string | Yes| Yes| Language of the application, for example, **zh**.| | colorMode8+ | [ColorMode](js-apis-application-configurationConstant.md#configurationconstantcolormode) | Yes| Yes| Color mode, which can be **COLOR_MODE_LIGHT** or **COLOR_MODE_DARK**. The default value is **COLOR_MODE_LIGHT**.| | direction9+ | [Direction](js-apis-application-configurationConstant.md#configurationconstantdirection9) | Yes| No| Screen orientation, which can be **DIRECTION_HORIZONTAL** or **DIRECTION_VERTICAL**.| | screenDensity9+ | [ScreenDensity](js-apis-application-configurationConstant.md#configurationconstantscreendensity9) | Yes| No| Screen resolution, which can be **SCREEN_DENSITY_SDPI** (120), **SCREEN_DENSITY_MDPI** (160), **SCREEN_DENSITY_LDPI** (240), **SCREEN_DENSITY_XLDPI** (320), **SCREEN_DENSITY_XXLDPI** (480), or **SCREEN_DENSITY_XXXLDPI** (640).| @@ -29,10 +30,10 @@ For details about the fields, see the **ohos.application.Configuration.d.ts** fi ```ts import hilog from '@ohos.hilog'; -import Ability from '@ohos.application.Ability' -import Window from '@ohos.window' +import UIAbility from '@ohos.app.ability.UIAbility'; +import Window from '@ohos.window'; -export default class MainAbility extends Ability { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { } diff --git a/en/application-dev/reference/apis/js-apis-application-configurationConstant.md b/en/application-dev/reference/apis/js-apis-application-configurationConstant.md index 8638480667..316244503d 100644 --- a/en/application-dev/reference/apis/js-apis-application-configurationConstant.md +++ b/en/application-dev/reference/apis/js-apis-application-configurationConstant.md @@ -18,11 +18,11 @@ You can obtain the value of this constant by calling the **ConfigurationConstant **System capability**: SystemCapability.Ability.AbilityBase -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| COLOR_MODE_NOT_SET | -1 | Unspecified color mode.| -| COLOR_MODE_DARK | 0 | Dark mode.| -| COLOR_MODE_LIGHT | 1 | Light mode.| +| COLOR_MODE_NOT_SET | -1 | Unspecified color mode.| +| COLOR_MODE_DARK | 0 | Dark mode.| +| COLOR_MODE_LIGHT | 1 | Light mode.| ## ConfigurationConstant.Direction9+ @@ -31,11 +31,11 @@ You can obtain the value of this constant by calling the **ConfigurationConstant **System capability**: SystemCapability.Ability.AbilityBase -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| DIRECTION_NOT_SET | -1 | Unspecified direction.| -| DIRECTION_VERTICAL | 0 | Vertical direction.| -| DIRECTION_HORIZONTAL | 1 | Horizontal direction.| +| DIRECTION_NOT_SET | -1 | Unspecified direction.| +| DIRECTION_VERTICAL | 0 | Vertical direction.| +| DIRECTION_HORIZONTAL | 1 | Horizontal direction.| ## ConfigurationConstant.ScreenDensity9+ @@ -44,12 +44,12 @@ You can obtain the value of this constant by calling the **ConfigurationConstant **System capability**: SystemCapability.Ability.AbilityBase -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| SCREEN_DENSITY_NOT_SET | 0 | Unspecified screen resolution.| -| SCREEN_DENSITY_SDPI | 120 | The screen resolution is sdpi.| -| SCREEN_DENSITY_MDPI | 160 | The screen resolution is mdpi.| -| SCREEN_DENSITY_LDPI | 240 | The screen resolution is ldpi.| -| SCREEN_DENSITY_XLDPI | 320 | The screen resolution is xldpi.| -| SCREEN_DENSITY_XXLDPI | 480 | The screen resolution is xxldpi.| -| SCREEN_DENSITY_XXXLDPI | 640 | The screen resolution is xxxldpi.| +| SCREEN_DENSITY_NOT_SET | 0 | Unspecified screen resolution.| +| SCREEN_DENSITY_SDPI | 120 | The screen resolution is sdpi.| +| SCREEN_DENSITY_MDPI | 160 | The screen resolution is mdpi.| +| SCREEN_DENSITY_LDPI | 240 | The screen resolution is ldpi.| +| SCREEN_DENSITY_XLDPI | 320 | The screen resolution is xldpi.| +| SCREEN_DENSITY_XXLDPI | 480 | The screen resolution is xxldpi.| +| SCREEN_DENSITY_XXXLDPI | 640 | The screen resolution is xxxldpi.| diff --git a/en/application-dev/reference/apis/js-apis-bundleManager.md b/en/application-dev/reference/apis/js-apis-bundleManager.md index 525f882052..3dab120c46 100644 --- a/en/application-dev/reference/apis/js-apis-bundleManager.md +++ b/en/application-dev/reference/apis/js-apis-bundleManager.md @@ -3,16 +3,18 @@ The **bundleManager** module provides APIs for querying information about bundles, applications, abilities, Extension abilities, and more. > **NOTE** +> > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; ``` + ## Required Permissions -| Required Permissions | Permission Level | Description | +| Permission | Permission Level | Description | | ------------------------------------------ | ------------ | ------------------| | ohos.permission.GET_BUNDLE_INFO | normal | Permission to query information about a specified bundle. | | ohos.permission.GET_BUNDLE_INFO_PRIVILEGED| system_basic | Permission to query information about all bundles.| @@ -184,7 +186,7 @@ Enumerates the display orientations of the ability. This attribute applies only | AUTO_ROTATION_PORTRAIT_RESTRICTED |11|Switched-determined auto rotation in the vertical direction.| | LOCKED |12|Locked.| -## Methods +## APIs ### bundleManager.getBundleInfoForSelf @@ -209,16 +211,17 @@ Obtains the bundle information of this bundle based on the given bundle flags. T **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getBundleInfoForSelf(bundleFlags).then((data) => { - console.info('getBundleInfoForSelf successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getBundleInfoForSelf failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getBundleInfoForSelf failed:' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message); } ``` @@ -240,19 +243,20 @@ Obtains the bundle information of this bundle based on the given bundle flags. T **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getBundleInfoForSelf(bundleFlags, (err, data) => { if (err) { - console.error('getBundleInfoForSelf failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message); } else { - console.info('getBundleInfoForSelf successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleInfoForSelf successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getBundleInfoForSelf failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfoForSelf failed: %{public}s', err.message); } ``` @@ -262,6 +266,8 @@ getBundleInfo(bundleName: string, bundleFlags: number, userId: number, callback: Obtains the bundle information based on the given bundle name, bundle flags, and user ID. This API uses an asynchronous callback to return the result. +No permission is required for obtaining the caller's own information. + **System API**: This is a system API. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO @@ -272,7 +278,7 @@ Obtains the bundle information based on the given bundle name, bundle flags, and | Name | Type | Mandatory| Description | | ----------- | ------ | ---- | ---------------------------- | -| bundleName | string | Yes | Bundle name. | +| bundleName | string | Yes | Bundle name.| | bundleFlags | [number](#bundleflag) | Yes | Type of the bundle information to obtain.| | userId | number | Yes | User ID. | | callback | AsyncCallback\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | Yes| Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the bundle information obtained. Otherwise, **err** is an error object.| @@ -291,7 +297,8 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc ```ts // Obtain the bundle information with the ability information. -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_ABILITY; let userId = 100; @@ -299,19 +306,20 @@ let userId = 100; try { bundleManager.getBundleInfo(bundleName, bundleFlags, userId, (err, data) => { if (err) { - console.error('getBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message); } else { - console.info('getBundleInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message); } ``` ```ts // Obtain the bundle information with the metadata in the application information. -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_METADATA; let userId = 100; @@ -319,13 +327,13 @@ let userId = 100; try { bundleManager.getBundleInfo(bundleName, bundleFlags, userId, (err, data) => { if (err) { - console.error('getBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message); } else { - console.info('getBundleInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message); } ``` @@ -335,6 +343,8 @@ getBundleInfo(bundleName: string, bundleFlags: number, callback: AsyncCallback\< Obtains the bundle information based on the given bundle name and bundle flags. This API uses an asynchronous callback to return the result. +No permission is required for obtaining the caller's own information. + **System API**: This is a system API. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO @@ -345,7 +355,7 @@ Obtains the bundle information based on the given bundle name and bundle flags. | Name | Type | Mandatory| Description | | ----------- | ------ | ---- | ---------------------------- | -| bundleName | string | Yes | Bundle name. | +| bundleName | string | Yes | Bundle name.| | bundleFlags | [number](#bundleflag) | Yes | Type of the bundle information to obtain.| | callback | AsyncCallback\<[BundleInfo](js-apis-bundleManager-bundleInfo.md)> | Yes| Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the bundle information obtained. Otherwise, **err** is an error object.| @@ -363,20 +373,21 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc ```ts // Obtain the bundle information with the Extension ability information. -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_HAP_MODULE | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_EXTENSION_ABILITY; try { bundleManager.getBundleInfo(bundleName, bundleFlags, (err, data) => { if (err) { - console.error('getBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message); } else { - console.info('getBundleInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfo failed: %{public}s', err.message); } ``` @@ -386,6 +397,8 @@ getBundleInfo(bundleName: string, bundleFlags: [number](#bundleflag), userId?: n Obtains the bundle information based on the given bundle name, bundle flags, and user ID. This API uses a promise to return the result. +No permission is required for obtaining the caller's own information. + **System API**: This is a system API. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO @@ -420,35 +433,37 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc ```ts // Obtain the bundle information with the application and signature information. -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_APPLICATION | bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_SIGNATURE_INFO; let userId = 100; try { bundleManager.getBundleInfo(bundleName, bundleFlags, userId).then((data) => { - console.info('getBundleInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getBundleInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getBundleInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getBundleInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message); } ``` ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getBundleInfo(bundleName, bundleFlags).then((data) => { - console.info('getBundleInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getBundleInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getBundleInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getBundleInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getBundleInfo failed. Cause: %{public}s', err.message); } ``` @@ -459,6 +474,8 @@ getApplicationInfo(bundleName: string, appFlags: [number](#applicationflag), use Obtains the application information based on the given bundle name, application flags, and user ID. This API uses an asynchronous callback to return the result. +No permission is required for obtaining the caller's own information. + **System API**: This is a system API. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO @@ -487,7 +504,8 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT; let userId = 100; @@ -495,13 +513,13 @@ let userId = 100; try { bundleManager.getApplicationInfo(bundleName, appFlags, userId, (err, data) => { if (err) { - console.error('getApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getApplicationInfo failed: %{public}s', err.message); } else { - console.info('getApplicationInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getApplicationInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getApplicationInfo failed: %{public}s', err.message); } ``` @@ -511,6 +529,8 @@ getApplicationInfo(bundleName: string, appFlags: [number](#applicationflag), cal Obtains the application information based on the given bundle name and application flags. This API uses an asynchronous callback to return the result. +No permission is required for obtaining the caller's own information. + **System API**: This is a system API. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO @@ -538,20 +558,21 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_WITH_PERMISSION; try { bundleManager.getApplicationInfo(bundleName, appFlags, (err, data) => { if (err) { - console.error('getApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getApplicationInfo failed: %{public}s', err.message); } else { - console.info('getApplicationInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getApplicationInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getApplicationInfo failed: %{public}s', err.message); } ``` @@ -561,6 +582,8 @@ getApplicationInfo(bundleName: string, appFlags: [number](#applicationflag), use Obtains the application information based on the given bundle name, application flags, and user ID. This API uses a promise to return the result. +No permission is required for obtaining the caller's own information. + **System API**: This is a system API. **Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO @@ -594,19 +617,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_WITH_PERMISSION; let userId = 100; try { bundleManager.getApplicationInfo(bundleName, appFlags, userId).then((data) => { - console.info('getApplicationInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getApplicationInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getApplicationInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getApplicationInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getApplicationInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getApplicationInfo failed. Cause: %{public}s', err.message); } ``` @@ -614,7 +638,7 @@ try { getAllBundleInfo(bundleFlags: [number](#bundleflag), userId: number, callback: AsyncCallback>): void; -Obtains an array of bundle information based on the given bundle flags and user ID. This API uses an asynchronous callback to return the result. +Obtains the information about all bundles based on the given bundle flags and user ID. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -641,20 +665,21 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION; let userId = 100; try { bundleManager.getAllBundleInfo(bundleFlags, userId, (err, data) => { if (err) { - console.error('getAllBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllBundleInfo failed: %{public}s', err.message); } else { - console.info('getAllBundleInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getAllBundleInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getAllBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllBundleInfo failed: %{public}s', err.message); } ``` @@ -662,7 +687,7 @@ try { getAllBundleInfo(bundleFlags: [number](#bundleflag), callback: AsyncCallback>): void; -Obtains an array of bundle information based on the given bundle flags. This API uses an asynchronous callback to return the result. +Obtains the information about all bundles based on the given bundle flags. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -688,19 +713,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getAllBundleInfo(bundleFlags, (err, data) => { if (err) { - console.error('getAllBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllBundleInfo failed: %{public}s', err.message); } else { - console.info('getAllBundleInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getAllBundleInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getAllBundleInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllBundleInfo failed: %{public}s', err.message); } ``` @@ -708,7 +734,7 @@ try { getAllBundleInfo(bundleFlags: [number](#bundleflag), userId?: number): Promise>; -Obtains an array of bundle information based on the given bundle flags and user ID. This API uses a promise to return the result. +Obtains the information about all bundles based on the given bundle flags and user ID. This API uses a promise to return the result. **System API**: This is a system API. @@ -740,17 +766,18 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getAllBundleInfo(bundleFlags).then((data) => { - console.info('getAllBundleInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getAllBundleInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getAllBundleInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getAllBundleInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getAllBundleInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getAllBundleInfo failed. Cause: %{public}s', err.message); } ``` @@ -758,7 +785,7 @@ try { getAllApplicationInfo(appFlags: [number](#applicationflag), userId: number, callback: AsyncCallback>): void; -Obtains an array of application information based on the given application flags and user ID. This API uses an asynchronous callback to return the result. +Obtains the information about all applications based on the given application flags and user ID. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -785,20 +812,21 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT; let userId = 100; try { bundleManager.getAllApplicationInfo(appFlags, userId, (err, data) => { if (err) { - console.error('getAllApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllApplicationInfo failed: %{public}s', err.message); } else { - console.info('getAllApplicationInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getAllApplicationInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getAllApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllApplicationInfo failed: %{public}s', err.message); } ``` @@ -806,7 +834,7 @@ try { getAllApplicationInfo(appFlags: [number](#applicationflag), callback: AsyncCallback>): void; -Obtains an array of application information based on the given application flags. This API uses an asynchronous callback to return the result. +Obtains the information about all applications based on the given application flags. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -832,19 +860,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT; try { bundleManager.getAllApplicationInfo(appFlags, (err, data) => { if (err) { - console.error('getAllApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllApplicationInfo failed: %{public}s', err.message); } else { - console.info('getAllApplicationInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getAllApplicationInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getAllApplicationInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAllApplicationInfo failed: %{public}s', err.message); } ``` @@ -852,7 +881,7 @@ try { getAllApplicationInfo(appFlags: [number](#applicationflag), userId?: number): Promise>; -Obtains an array of application information based on the given application flags and user ID. This API uses a promise to return the result. +Obtains the information about all applications based on the given application flags and user ID. This API uses a promise to return the result. **System API**: This is a system API. @@ -884,17 +913,18 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let appFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT; try { bundleManager.getAllApplicationInfo(appFlags).then((data) => { - console.info('getAllApplicationInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getAllApplicationInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getAllApplicationInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getAllApplicationInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getAllApplicationInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getAllApplicationInfo failed. Cause: %{public}s', err.message); } ``` @@ -915,7 +945,7 @@ Obtains an array of ability information based on the given want, ability flags, | Name | Type | Mandatory| Description | | ------------ | ------ | ---- | ------------------------------------------------------- | -| want | Want | Yes | Want containing the bundle name to query. | +| want | Want | Yes | Want containing the bundle name to query. | | abilityFlags | [number](#abilityflag) | Yes | Type of the ability information to obtain. | | userId | number | Yes | User ID. | | callback | AsyncCallback> | Yes| Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the array of ability information obtained. Otherwise, **err** is an error object.| @@ -935,24 +965,25 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryAbilityInfo(want, abilityFlags, userId, (err, data) => { if (err) { - console.error('queryAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed: %{public}s', err.message); } else { - console.info('queryAbilityInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('queryAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed: %{public}s', err.message); } ``` @@ -972,7 +1003,7 @@ Obtains an array of ability information based on the given want and ability flag | Name | Type | Mandatory| Description | | ------------ | ------ | ---- | -------------------------------------------------------| -| want | Want | Yes | Want containing the bundle name to query. | +| want | Want | Yes | Want containing the bundle name to query. | | abilityFlags | [number](#abilityflag) | Yes | Type of the ability information to obtain. | | callback | AsyncCallback> | Yes| Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the array of ability information obtained. Otherwise, **err** is an error object.| @@ -991,23 +1022,24 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryAbilityInfo(want, abilityFlags, (err, data) => { if (err) { - console.error('queryAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed: %{public}s', err.message); } else { - console.info('queryAbilityInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('queryAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed: %{public}s', err.message); } ``` @@ -1027,7 +1059,7 @@ Obtains the ability information based on the given want, ability flags, and user | Name | Type | Mandatory| Description | | ------------ | ------ | ---- | ------------------------------------------------------- | -| want | Want | Yes | Want containing the bundle name to query. | +| want | Want | Yes | Want containing the bundle name to query. | | abilityFlags | [number](#abilityflag) | Yes | Type of the ability information to obtain.| | userId | number | No | User ID. | @@ -1052,41 +1084,43 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((data) => { - console.info('queryAbilityInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('queryAbilityInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('queryAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); } ``` ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryAbilityInfo(want, abilityFlags).then((data) => { - console.info('queryAbilityInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('queryAbilityInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); }) -} catch (error) { - console.error('queryAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); } ``` @@ -1106,10 +1140,10 @@ Obtains the Extension ability information based on the given want, Extension abi | Name | Type | Mandatory| Description | | --------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| want | Want | Yes | Want containing the bundle name to query. | -| extensionAbilityType | [ExtensionAbilityType](#extensionabilitytype) | Yes | Type of the Extension ability. | -| extensionAbilityFlags | [number](#extensionabilityflag) | Yes | Type of the Extension ability information to obtain. | -| userId | number | Yes | User ID. | +| want | Want | Yes | Want containing the bundle name to query. | +| extensionAbilityType | [ExtensionAbilityType](#extensionabilitytype) | Yes | Type of the Extension ability. | +| extensionAbilityFlags | [number](#extensionabilityflag) | Yes | Type of the Extension ability information to obtain. | +| userId | number | Yes | User ID. | | callback | AsyncCallback> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the array of Extension ability information obtained. Otherwise, **err** is an error object.| **Error codes** @@ -1126,25 +1160,26 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM; let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryExtensionAbilityInfo(want, extensionAbilityType, extensionFlags, userId, (err, data) => { if (err) { - console.error('queryExtensionAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed: %{public}s', err.message); } else { - console.info('queryExtensionAbilityInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('queryExtensionAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed: %{public}s', err.message); } ``` @@ -1164,9 +1199,9 @@ Obtains the Extension ability information based on the given want, Extension abi | Name | Type | Mandatory| Description | | --------------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| want | Want | Yes | Want containing the bundle name to query. | -| extensionAbilityType | [ExtensionAbilityType](#extensionabilitytype) | Yes | Type of the Extension ability. | -| extensionAbilityFlags | [number](#extensionabilityflag) | Yes | Type of the Extension ability information to obtain. | +| want | Want | Yes | Want containing the bundle name to query. | +| extensionAbilityType | [ExtensionAbilityType](#extensionabilitytype) | Yes | Type of the Extension ability. | +| extensionAbilityFlags | [number](#extensionabilityflag) | Yes | Type of the Extension ability information to obtain. | | callback | AsyncCallback> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the array of Extension ability information obtained. Otherwise, **err** is an error object.| **Error codes** @@ -1183,24 +1218,25 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM; let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryExtensionAbilityInfo(want, extensionAbilityType, extensionFlags, (err, data) => { if (err) { - console.error('queryExtensionAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed: %{public}s', err.message); } else { - console.info('queryExtensionAbilityInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('queryExtensionAbilityInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed: %{public}s', err.message); } ``` @@ -1218,8 +1254,8 @@ Obtains the Extension ability information based on the given want, Extension abi **Parameters** -| Name | Type | Mandatory| Description | -| --------------------- | --------------------------------------------- | ---- | ------------------------------------------------------- | +| Name | Type | Mandatory| Description | +| --------------------- | --------------------------------------------- | ---- | --------------------------------------------------------- | | want | Want | Yes | Want containing the bundle name to query. | | extensionAbilityType | [ExtensionAbilityType](#extensionabilitytype) | Yes | Type of the Extension ability. | | extensionAbilityFlags | [number](#extensionabilityflag) | Yes | Type of the Extension ability information to obtain.| @@ -1245,44 +1281,46 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM; let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryExtensionAbilityInfo(want, extensionAbilityType, extensionFlags, userId).then((data) => { - console.info('queryExtensionAbilityInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('queryExtensionAbilityInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('queryExtensionAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed. Cause: %{public}s', err.message); } ``` ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let extensionAbilityType = bundleManager.ExtensionAbilityType.FORM; let extensionFlags = bundleManager.ExtensionAbilityFlag.GET_EXTENSION_ABILITY_INFO_DEFAULT; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; try { bundleManager.queryExtensionAbilityInfo(want, extensionAbilityType, extensionFlags).then((data) => { - console.info('queryExtensionAbilityInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('queryExtensionAbilityInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'queryExtensionAbilityInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed. Cause: %{public}s', err.message); }) -} catch (error) { - console.error('queryExtensionAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryExtensionAbilityInfo failed. Cause: %{public}s', err.message); } ``` @@ -1316,18 +1354,19 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let uid = 20010005; try { bundleManager.getBundleNameByUid(uid, (err, data) => { if (err) { - console.error('getBundleNameByUid failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed: %{public}s', err.message); } else { - console.info('getBundleNameByUid successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleNameByUid successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getBundleNameByUid failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed: %{public}s', err.message); } ``` @@ -1366,16 +1405,17 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let uid = 20010005; try { bundleManager.getBundleNameByUid(uid).then((data) => { - console.info('getBundleNameByUid successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getBundleNameByUid failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getBundleNameByUid successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getBundleNameByUid failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getBundleNameByUid failed. Cause: %{public}s', err.message); } ``` @@ -1410,20 +1450,21 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let hapFilePath = "/data/xxx/test.hap"; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getBundleArchiveInfo(hapFilePath, bundleFlags, (err, data) => { if (err) { - console.error('getBundleArchiveInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleArchiveInfo failed. Cause: %{public}s', err.message); } else { - console.info('getBundleArchiveInfo successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleArchiveInfo successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getBundleArchiveInfo failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleArchiveInfo failed. Cause: %{public}s', err.message); } ``` @@ -1463,18 +1504,19 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let hapFilePath = "/data/xxx/test.hap"; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT; try { bundleManager.getBundleArchiveInfo(hapFilePath, bundleFlags).then((data) => { - console.info('getBundleArchiveInfo successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getBundleArchiveInfo failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getBundleArchiveInfo successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getBundleArchiveInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getBundleArchiveInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getBundleArchiveInfo failed. Cause: %{public}s', err.message); } ``` @@ -1482,7 +1524,7 @@ try { cleanBundleCacheFiles(bundleName: string, callback: AsyncCallback\): void; -Clears cache files of a bundle. This API uses an asynchronous callback to return the result. +Clears the cache files based on the given bundle name. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -1509,19 +1551,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = "com.ohos.myapplication"; try { bundleManager.cleanBundleCacheFiles(bundleName, err => { if (err) { - console.error('cleanBundleCacheFiles failed:' + err.message); + hilog.error(0x0000, 'testTag', 'cleanBundleCacheFiles failed: %{public}s', err.message); } else { - console.info('cleanBundleCacheFiles successfully.'); + hilog.info(0x0000, 'testTag', 'cleanBundleCacheFiles successfully.'); } }); } catch (err) { - console.error('cleanBundleCacheFiles failed:' + err.message); + hilog.error(0x0000, 'testTag', 'cleanBundleCacheFiles failed: %{public}s', err.message); } ``` @@ -1529,7 +1572,7 @@ try { cleanBundleCacheFiles(bundleName: string): Promise\; -Clears cache files of a bundle. This API uses a promise to return the result. +Clears the cache files based on the given bundle name. This API uses a promise to return the result. **System API**: This is a system API. @@ -1547,7 +1590,7 @@ Clears cache files of a bundle. This API uses a promise to return the result. | Type | Description | | -------------- | ------------------------------------------------------------ | -| Promise\ | Promise used to return the result. If the operation is successful, **true** is returned. Otherwise, **false** is returned.| +| Promise\ | Promise that returns no value. If clearing the cache files fails, an error object is thrown.| **Error codes** @@ -1561,17 +1604,18 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = "com.ohos.myapplication"; try { - bundleManager.cleanBundleCacheFiles(bundleName).then(()=> { - console.info('cleanBundleCacheFiles successfully.'); - }).catch(err=> { - console.error('cleanBundleCacheFiles failed:' + err.message); + bundleManager.cleanBundleCacheFiles(bundleName).then(() => { + hilog.info(0x0000, 'testTag', 'cleanBundleCacheFiles successfully.'); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'cleanBundleCacheFiles failed: %{public}s', err.message); }); } catch (err) { - console.error('cleanBundleCacheFiles failed:' + err.message); + hilog.error(0x0000, 'testTag', 'cleanBundleCacheFiles failed: %{public}s', err.message); } ``` @@ -1606,19 +1650,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = "com.ohos.myapplication"; try { bundleManager.setApplicationEnabled(bundleName, false, err => { if (err) { - console.error('setApplicationEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message); } else { - console.info('setApplicationEnabled successfully.'); + hilog.info(0x0000, 'testTag', 'setApplicationEnabled successfully.'); } }); } catch (err) { - console.error('setApplicationEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message); } ``` @@ -1658,17 +1703,18 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = "com.ohos.myapplication"; try { - bundleManager.setApplicationEnabled(bundleName, false).then(()=> { - console.info('setApplicationEnabled successfully.'); - }).catch(err=> { - console.error('setApplicationEnabled failed:' + err.message); + bundleManager.setApplicationEnabled(bundleName, false).then(() => { + hilog.info(0x0000, "testTag", "setApplicationEnabled successfully."); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message); }); } catch (err) { - console.error('setApplicationEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'setApplicationEnabled failed: %{public}s', err.message); } ``` @@ -1689,7 +1735,7 @@ Enables or disables an ability. This API uses an asynchronous callback to return | Name | Type | Mandatory| Description | | -------- | ----------- | ---- | ------------------------------------- | | info | [AbilityInfo](js-apis-bundleManager-abilityInfo.md) | Yes | Information about the target ability. | -| isEnabled| boolean | Yes | Whether to enable the application. The value **true** means to enable the application, and **false** means to disable the application.| +| isEnabled| boolean | Yes | Whether to enable the ability. The value **true** means to enable the ability, and **false** means to disable the ability.| | callback | AsyncCallback\ | Yes| Callback used to return the result. If the operation is successful, **err** is **null**. Otherwise, **err** is an error object.| **Error codes** @@ -1704,32 +1750,33 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; -var info; +let info; try { bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => { - console.info('queryAbilityInfo successfully. Data: ' + JSON.stringify(abilitiesInfo)); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo)); info = abilitiesInfo[0]; bundleManager.setAbilityEnabled(info, false, err => { if (err) { - console.error('setAbilityEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'setAbilityEnabled failed: %{public}s', err.message); } else { - console.info('setAbilityEnabled successfully.'); + hilog.info(0x0001, "testTag", "setAbilityEnabled successfully."); } }); - }).catch(error => { - console.error('queryAbilityInfo failed. Cause: ' + error.message); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('queryAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); } ``` @@ -1750,7 +1797,7 @@ Enables or disables an ability. This API uses a promise to return the result. | Name | Type | Mandatory| Description | | -------- | ----------- | ---- | ------------------------------------- | | info | [AbilityInfo](js-apis-bundleManager-abilityInfo.md) | Yes | Information about the target ability. | -| isEnabled| boolean | Yes | Whether to enable the application. The value **true** means to enable the application, and **false** means to disable the application.| +| isEnabled| boolean | Yes | Whether to enable the ability. The value **true** means to enable the ability, and **false** means to disable the ability.| **Return value** @@ -1770,30 +1817,31 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; -var info; +let info; try { bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => { - console.info('queryAbilityInfo successfully. Data: ' + JSON.stringify(abilitiesInfo)); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo)); info = abilitiesInfo[0]; - bundleManager.setAbilityEnabled(info, false).then(()=> { - console.info('setAbilityEnabled successfully.'); - }).catch(err=> { - console.error('setAbilityEnabled failed:' + err.message); + bundleManager.setAbilityEnabled(info, false).then(() => { + hilog.info(0x0000, "testTag", "setAbilityEnabled successfully."); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'setAbilityEnabled failed: %{public}s', err.message); }); - }).catch(error => { - console.error('queryAbilityInfo failed. Cause: ' + error.message); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('queryAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); } ``` @@ -1825,19 +1873,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; try { bundleManager.isApplicationEnabled(bundleName, (err, data) => { if (err) { - console.error('isApplicationEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'isApplicationEnabled failed: %{public}s', err.message); } else { - console.info('isApplicationEnabled successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'isApplicationEnabled successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('isApplicationEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'isApplicationEnabled failed: %{public}s', err.message); } ``` @@ -1874,17 +1923,18 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; try { bundleManager.isApplicationEnabled(bundleName).then((data) => { - console.info('isApplicationEnabled successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('isApplicationEnabled failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'isApplicationEnabled successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'isApplicationEnabled failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('isApplicationEnabled failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'isApplicationEnabled failed. Cause: %{public}s', err.message); } ``` @@ -1917,32 +1967,33 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; -var info; +let info; try { bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => { - console.info('queryAbilityInfo successfully. Data: ' + JSON.stringify(abilitiesInfo)); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo)); info = abilitiesInfo[0]; bundleManager.isAbilityEnabled(info, (err, data) => { if (err) { - console.error('isAbilityEnabled failed:' + err.message); + hilog.error(0x0000, 'testTag', 'isAbilityEnabled failed: %{public}s', err.message); } else { - console.info('isAbilityEnabled successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'isAbilityEnabled successfully: %{public}s', JSON.stringify(data)); } }); - }).catch(error => { - console.error('queryAbilityInfo failed. Cause: ' + error.message); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('queryAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); } ``` @@ -1980,30 +2031,31 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let abilityFlags = bundleManager.AbilityFlag.GET_ABILITY_INFO_DEFAULT; let userId = 100; let want = { bundleName : "com.example.myapplication", - abilityName : "com.example.myapplication.MainAbility" + abilityName : "EntryAbility" }; -var info; +let info; try { bundleManager.queryAbilityInfo(want, abilityFlags, userId).then((abilitiesInfo) => { - console.info('queryAbilityInfo successfully. Data: ' + JSON.stringify(abilitiesInfo)); + hilog.info(0x0000, 'testTag', 'queryAbilityInfo successfully. Data: %{public}s', JSON.stringify(abilitiesInfo)); info = abilitiesInfo[0]; bundleManager.isAbilityEnabled(info).then((data) => { - console.info('isAbilityEnabled successfully. Data: ' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'isAbilityEnabled successfully. Data: %{public}s', JSON.stringify(data)); }).catch(err => { - console.error('isAbilityEnabled failed. Cause: ' + err.message); + hilog.error(0x0000, 'testTag', 'isAbilityEnabled failed. Cause: %{public}s', err.message); }); - }).catch(error => { - console.error('queryAbilityInfo failed. Cause: ' + error.message); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('queryAbilityInfo failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'queryAbilityInfo failed. Cause: %{public}s', err.message); } ``` @@ -2011,7 +2063,7 @@ try { getLaunchWantForBundle(bundleName: string, userId: number, callback: AsyncCallback\): void; -Obtains the want used to launch the bundle based on the given bundle name and user ID. This API uses an asynchronous callback to return the result. +Obtains the Want used to launch the bundle based on the given bundle name and user ID. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -2040,20 +2092,21 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let userId = 100; try { bundleManager.getLaunchWantForBundle(bundleName, userId, (err, data) => { if (err) { - console.error('getLaunchWantForBundle failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getLaunchWantForBundle failed: %{public}s', err.message); } else { - console.info('getLaunchWantForBundle successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getLaunchWantForBundle successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getLaunchWantForBundle failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getLaunchWantForBundle failed: %{public}s', err.message); } ``` @@ -2061,7 +2114,7 @@ try { getLaunchWantForBundle(bundleName: string, callback: AsyncCallback\): void; -Obtains the want used to launch the bundle based on the given bundle name. This API uses an asynchronous callback to return the result. +Obtains the Want used to launch the bundle based on the given bundle name. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -2089,19 +2142,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; try { bundleManager.getLaunchWantForBundle(bundleName, (err, data) => { if (err) { - console.error('getLaunchWantForBundle failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getLaunchWantForBundle failed: %{public}s', err.message); } else { - console.info('getLaunchWantForBundle successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getLaunchWantForBundle successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getLaunchWantForBundle failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getLaunchWantForBundle failed: %{public}s', err.message); } ``` @@ -2109,7 +2163,7 @@ try { getLaunchWantForBundle(bundleName: string, userId?: number): Promise\; -Obtains the want used to launch the bundle based on the given bundle name and user ID. This API uses a promise to return the result. +Obtains the Want used to launch the bundle based on the given bundle name and user ID. This API uses a promise to return the result. **System API**: This is a system API. @@ -2143,18 +2197,19 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let userId = 100; try { bundleManager.getLaunchWantForBundle(bundleName, userId).then((data) => { - console.info('getLaunchWantForBundle successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getLaunchWantForBundle failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getLaunchWantForBundle successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getLaunchWantForBundle failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getLaunchWantForBundle failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getLaunchWantForBundle failed. Cause: %{public}s', err.message); } ``` @@ -2190,21 +2245,22 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; let metadataName = 'com.example.myapplication.metadata'; try { bundleManager.getProfileByAbility(moduleName, abilityName, metadataName, (err, data) => { if (err) { - console.error('getProfileByAbility failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message); } else { - console.info('getProfileByAbility successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getProfileByAbility failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message); } ``` @@ -2245,34 +2301,36 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; try { bundleManager.getProfileByAbility(moduleName, abilityName).then((data) => { - console.info('getProfileByAbility successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getProfileByAbility failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getProfileByAbility failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message); } ``` ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; let metadataName = 'com.example.myapplication.metadata'; try { bundleManager.getProfileByAbility(moduleName, abilityName, metadataName).then((data) => { - console.info('getProfileByAbility successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getProfileByAbility failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getProfileByAbility successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getProfileByAbility failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getProfileByAbility failed. Cause: %{public}s', err.message); } ``` @@ -2307,7 +2365,8 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let moduleName = 'entry'; let extensionAbilityName = 'com.example.myapplication.extension'; let metadataName = 'com.example.myapplication.metadata'; @@ -2315,13 +2374,13 @@ let metadataName = 'com.example.myapplication.metadata'; try { bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName, (err, data) => { if (err) { - console.error('getProfileByExtensionAbility failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message); } else { - console.info('getProfileByExtensionAbility successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getProfileByExtensionAbility failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed: %{public}s', err.message); } ``` @@ -2361,29 +2420,30 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let moduleName = 'entry'; let extensionAbilityName = 'com.example.myapplication.extension'; let metadataName = 'com.example.myapplication.metadata'; try { bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName).then((data) => { - console.info('getProfileByExtensionAbility successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getProfileByExtensionAbility failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getProfileByExtensionAbility failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message); } try { bundleManager.getProfileByExtensionAbility(moduleName, extensionAbilityName, metadataName).then((data) => { - console.info('getProfileByExtensionAbility successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getProfileByExtensionAbility failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getProfileByExtensionAbility successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getProfileByExtensionAbility failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getProfileByExtensionAbility failed. Cause: %{public}s', err.message); } ``` @@ -2391,7 +2451,7 @@ try { getPermissionDef(permissionName: string, callback: AsyncCallback\<[PermissionDef](js-apis-bundleManager-permissionDef.md)>): void; -Obtains the details of a permission. This API uses an asynchronous callback to return the result. +Obtains the details of a permission in the form of a **PermissionDef** struct. This API uses an asynchronous callback to return the result. **System API**: This is a system API. @@ -2417,18 +2477,19 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let permission = "ohos.permission.GET_BUNDLE_INFO"; try { bundleManager.getPermissionDef(permission, (err, data) => { if (err) { - console.error('getPermissionDef failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getPermissionDef failed: %{public}s', err.message); } else { - console.info('getPermissionDef successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getPermissionDef successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getPermissionDef failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getPermissionDef failed: %{public}s', err.message); } ``` @@ -2436,7 +2497,7 @@ try { getPermissionDef(permissionName: string): Promise\<[PermissionDef](js-apis-bundleManager-permissionDef.md)>; -Obtains the details of a permission. This API uses a promise to return the result. +Obtains the details of a permission in the form of a **PermissionDef** struct. This API uses a promise to return the result. **System API**: This is a system API. @@ -2467,16 +2528,17 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let permissionName = "ohos.permission.GET_BUNDLE_INFO"; try { bundleManager.getPermissionDef(permissionName).then((data) => { - console.info('getPermissionDef successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getPermissionDef failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getPermissionDef successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getPermissionDef failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getPermissionDef failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getPermissionDef failed. Cause: %{public}s', err.message); } ``` @@ -2516,21 +2578,22 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; try { bundleManager.getAbilityLabel(bundleName, moduleName, abilityName, (err, data) => { if (err) { - console.error('getAbilityLabel failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAbilityLabel failed: %{public}s', err.message); } else { - console.info('getAbilityLabel successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getAbilityLabel successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getAbilityLabel failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAbilityLabel failed: %{public}s', err.message); } ``` @@ -2575,19 +2638,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; try { bundleManager.getAbilityLabel(bundleName, moduleName, abilityName).then((data) => { - console.info('getAbilityLabel successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getAbilityLabel failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getAbilityLabel successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getAbilityLabel failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getAbilityLabel failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getAbilityLabel failed. Cause: %{public}s', err.message); } ``` @@ -2627,21 +2691,22 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; try { bundleManager.getAbilityIcon(bundleName, moduleName, abilityName, (err, data) => { if (err) { - console.error('getAbilityIcon failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAbilityIcon failed: %{public}s', err.message); } else { - console.info('getAbilityIcon successfully:' + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getAbilityIcon successfully: %{public}s', JSON.stringify(data)); } }); } catch (err) { - console.error('getAbilityIcon failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getAbilityIcon failed: %{public}s', err.message); } ``` @@ -2686,19 +2751,20 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let moduleName = 'entry'; -let abilityName = 'MainAbility'; +let abilityName = 'EntryAbility'; try { bundleManager.getAbilityIcon(bundleName, moduleName, abilityName).then((data) => { - console.info('getAbilityIcon successfully. Data: ' + JSON.stringify(data)); - }).catch(error => { - console.error('getAbilityIcon failed. Cause: ' + error.message); + hilog.info(0x0000, 'testTag', 'getAbilityIcon successfully. Data: %{public}s', JSON.stringify(data)); + }).catch(err => { + hilog.error(0x0000, 'testTag', 'getAbilityIcon failed. Cause: %{public}s', err.message); }); -} catch (error) { - console.error('getAbilityIcon failed. Cause: ' + error.message); +} catch (err) { + hilog.error(0x0000, 'testTag', 'getAbilityIcon failed. Cause: %{public}s', err.message); } ``` @@ -2720,7 +2786,7 @@ Synchronously obtains the application information based on the given bundle name | ----------- | ------ | ---- | ----------------------------------------------------------| | bundleName | string | Yes | Bundle name. | | applicationFlags | [number](#applicationflag) | Yes | Type of the application information to obtain. | -| userId | number | Yes | User ID. | +| userId | number | No | User ID. | **Return value** @@ -2741,65 +2807,31 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let applicationFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT; let userId = 100; try { let data = bundleManager.getApplicationInfoSync(bundleName, applicationFlags, userId); - console.info("getApplicationInfoSync successfully:" + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getApplicationInfoSync successfully: %{public}s', JSON.stringify(data)); } catch (err) { - console.error('getApplicationInfoSync failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getApplicationInfoSync failed: %{public}s', err.message); } ``` -### bundleManager.getApplicationInfoSync - -getApplicationInfoSync(bundleName: string, applicationFlags: number) : [ApplicationInfo](js-apis-bundleManager-applicationInfo.md); - -Synchronously obtains the application information based on the given bundle name and application flags. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO - -**System capability**: SystemCapability.BundleManager.BundleFramework.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | ----------------------------------------------------------| -| bundleName | string | Yes | Bundle name. | -| applicationFlags | [number](#applicationflag) | Yes | Type of the application information to obtain. | - -**Return value** - -| Type | Description | -| --------------- | ------------------------- | -| [ApplicationInfo](js-apis-bundleManager-applicationInfo.md) | Application information obtained.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -| -------- | -------------------------------------- | -| 17700001 | The specified bundleName is not found. | -| 17700026 | The specified bundle is disabled. | - -**Example** - ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let applicationFlags = bundleManager.ApplicationFlag.GET_APPLICATION_INFO_DEFAULT; try { let data = bundleManager.getApplicationInfoSync(bundleName, applicationFlags); - console.info("getApplicationInfoSync successfully:" + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getApplicationInfoSync successfully: %{public}s', JSON.stringify(data)); } catch (err) { - console.error('getApplicationInfoSync failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getApplicationInfoSync failed: %{public}s', err.message); } ``` @@ -2821,7 +2853,7 @@ Synchronously obtains the bundle information based on the given bundle name, bun | ----------- | ------ | ---- | -------------------------------------------------------- | | bundleName | string | Yes | Bundle name. | | bundleFlags | [number](#bundleflag) | Yes | Type of the bundle information to obtain.| -| userId | number | Yes | User ID. | +| userId | number | No | User ID. | **Return value** @@ -2842,66 +2874,29 @@ For details about the error codes, see [Bundle Error Codes](../errorcodes/errorc **Example** ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION; let userId = 100; try { let data = bundleManager.getBundleInfoSync(bundleName, bundleFlags, userId); - console.info("getBundleInfoSync successfully :" + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleInfoSync successfully: %{public}s', JSON.stringify(data)); } catch (err) { - console.error('getBundleInfoSync failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfoSync failed: %{public}s', err.message); } ``` -### bundleManager.getBundleInfoSync - -getBundleInfoSync(bundleName: string, bundleFlags: [number](#bundleflag)): [BundleInfo](js-apis-bundleManager-bundleInfo.md); - -Synchronously obtains the bundle information based on the given bundle name and bundle flags. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED or ohos.permission.GET_BUNDLE_INFO - -**System capability**: SystemCapability.BundleManager.BundleFramework.Core - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------ | ---- | -------------------------------------------------------- | -| bundleName | string | Yes | Bundle name. | -| bundleFlags | [number](#bundleflag) | Yes | Type of the bundle information to obtain.| - -**Return value** - -| Type | Description | -| ---------- | -------------------- | -| [BundleInfo](js-apis-bundleManager-bundleInfo.md) | Bundle information obtained.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -| -------- | ------------------------------------- | -| 17700001 | The specified bundleName is not found. | -| 17700004 | The specified user ID is not found. | -| 17700026 | The specified bundle is disabled. | - -**Example** - ```ts -import bundleManager from '@ohos.bundle.bundleManager' +import bundleManager from '@ohos.bundle.bundleManager'; +import hilog from '@ohos.hilog'; let bundleName = 'com.example.myapplication'; let bundleFlags = bundleManager.BundleFlag.GET_BUNDLE_INFO_WITH_REQUESTED_PERMISSION; try { let data = bundleManager.getBundleInfoSync(bundleName, bundleFlags); - console.info("getBundleInfoSync successfully :" + JSON.stringify(data)); + hilog.info(0x0000, 'testTag', 'getBundleInfoSync successfully: %{public}s', JSON.stringify(data)); } catch (err) { - console.error('getBundleInfoSync failed:' + err.message); + hilog.error(0x0000, 'testTag', 'getBundleInfoSync failed: %{public}s', err.message); } ``` - - \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-inner-application-appStateData.md b/en/application-dev/reference/apis/js-apis-inner-application-appStateData.md index 90c03ba341..c281c62ff0 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-appStateData.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-appStateData.md @@ -1,27 +1,35 @@ # AppStateData -The **AppStateData** module defines the application state data. +The **AppStateData** module defines the application state data, which can be obtained through [getForegroundApplications](js-apis-app-ability-appManager.md#appmanagergetforegroundapplications). **System capability**: SystemCapability.Ability.AbilityRuntime.Core -**System API**: This is a system API and cannot be called by third-party applications. +**System API**: This module is marked as @systemapi and not visible to third-party applications. -| Name | Type | Mandatory| Description | -| ----------- | -------- | ---- | ------------------------------------------------------------ | -| bundleName8+ | string | No | Bundle name of the application. | -| uid8+ | number | No | User ID.| -| state8+ | number | No | Application state.| +| Name | Type | Mandatory | Description | +| ------------------------- | ------ | ---- | --------- | +| bundleName8+ | string | No | Bundle name.| +| uid8+ | number | No | UID of the application. | +| state8+ | number | No | Application state.
**0**: The application is being initialized.
**1**: The application has been initialized and is ready.
**2**: The application is running in the foreground.
**3**: The application is having the focus. (This state is reserved.)
**4**: The application is running in the background.
**5**: The application has exited.| **Example** + ```ts -import appManager from "@ohos.application.appManager" +import appManager from "@ohos.app.ability.appManager" -appManager.getForegroundApplications((error, data) => { - for(let i=0; i { + if (error && error.code) { + console.log('getForegroundApplications failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + return; + } + for (let i = 0; i < data.length; i++) { + let appStateData = data[i]; + console.log('appStateData.bundleName: ' + appStateData.bundleName); + console.log('appStateData.uid: ' + appStateData.uid); + console.log('appStateData.state: ' + appStateData.state); + } + }); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionListener.md b/en/application-dev/reference/apis/js-apis-inner-application-missionListener.md index 1070334b01..a9f9e6cf95 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-missionListener.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-missionListener.md @@ -1,6 +1,6 @@ # MissionListener -The **MissionListener** module defines the listeners used to observe the mission status. +The **MissionListener** module defines the listeners used to observe the mission status. The listeners can be registered by using [on](js-apis-app-ability-missionManager.md#missionmanageron). **System capability**: SystemCapability.Ability.AbilityRuntime.Mission @@ -16,7 +16,7 @@ The **MissionListener** module defines the listeners used to observe the mission **Example** ```ts -import missionManager from '@ohos.application.missionManager' +import missionManager from '@ohos.app.ability.missionManager' let listener = { onMissionCreated: function (mission) { @@ -38,5 +38,10 @@ let listener = { console.log("onMissionClosed mission: " + JSON.stringify(mission)); } }; -let listenerid = missionManager.registerMissionListener(listener); + +try { + let listenerId = missionManager.on("mission", listener); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-wantAgent-triggerInfo.md b/en/application-dev/reference/apis/js-apis-inner-wantAgent-triggerInfo.md index e659a4d80e..5ca299f0ad 100644 --- a/en/application-dev/reference/apis/js-apis-inner-wantAgent-triggerInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-wantAgent-triggerInfo.md @@ -1,66 +1,12 @@ # TriggerInfo -The **TriggerInfo** module defines the information required for triggering the WantAgent. +The **TriggerInfo** module defines the information required for triggering the WantAgent. The information is used as an input parameter of [trigger](js-apis-app-ability-wantAgent.md#wantagenttrigger). **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Type | Mandatory| Description | | ---------- | --- |-------------------- | ----------- | -| code | number | Yes | Result code.| +| code | number | Yes | Custom result code provided for the target WantAgent.| | want | Want | No | Want. | | permission | string | No | Permission. | | extraInfo | {[key: string]: any} | No | Extra information. | - -**Example** -```ts -import wantAgent from '@ohos.wantAgent'; - -let wantAgentInfo = { - wants: [ - { - deviceId: "", - bundleName: "com.example.apicoverhaptest", - abilityName: "com.example.apicoverhaptest.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true.true,false}", - parameters: { - myKey0: 2222 - } - } - ], - operationType: wantAgent.OperationType.START_ABILITIES, - requestCode: 0, - wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG], - extraInfo:{ - "key": "value" - } -} - -let triggerInfo = { - code: 0, - want: { - deviceId: "", - bundleName: "com.example.apicoverhaptest", - abilityName: "com.example.apicoverhaptest.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true.true,false}", - parameters: { - myKey0: 2222 - } - }, - permission: "" - extraInfo:{ - "key": "value" - } -} - -wantAgent.trigger(wantAgentInfo, triggerInfo).then((data) =>{ - console.info("trigger data: " + JSON.stringify(data)); -}).catch((err) => { - console.error("trigger err: " + JSON.stringify(err)); -}) -``` diff --git a/en/application-dev/reference/apis/js-apis-wantAgent.md b/en/application-dev/reference/apis/js-apis-wantAgent.md index 252dc45b80..b0bad9b58f 100644 --- a/en/application-dev/reference/apis/js-apis-wantAgent.md +++ b/en/application-dev/reference/apis/js-apis-wantAgent.md @@ -1,6 +1,6 @@ # @ohos.wantAgent -The **WantAgent** module provides APIs for triggering, canceling, and comparing **WantAgent** objects. You can use the APIs to create a **WantAgent** object, and obtain the user ID, bundle name, and want information of the object. +The **WantAgent** module provides APIs for creating and comparing **WantAgent** objects, and obtaining the user ID and bundle name of a **WantAgent** object. > **NOTE** > @@ -8,7 +8,7 @@ The **WantAgent** module provides APIs for triggering, canceling, and comparing ## Modules to Import -```js +```ts import WantAgent from '@ohos.wantAgent'; ``` @@ -24,37 +24,41 @@ Obtains a **WantAgent** object. This API uses an asynchronous callback to return | Name | Type | Mandatory| Description | | -------- | -------------------------- | ---- | ----------------------- | -| info | WantAgentInfo | Yes | Information about the **WantAgent** object to obtain. | +| info | [WantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md) | Yes | Information about the **WantAgent** object to obtain. | | callback | AsyncCallback\ | Yes | Callback used to return the **WantAgent** object.| **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // getWantAgent callback function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); + if (err.code) { + console.info('getWantAgent Callback err:' + JSON.stringify(err)) + } else { + console.info('getWantAgent Callback success') + } } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -64,11 +68,9 @@ var wantAgentInfo = { wantAgentFlags:[WantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] } -WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) +WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback); ``` - - ## WantAgent.getWantAgent getWantAgent(info: WantAgentInfo): Promise\ @@ -81,7 +83,7 @@ Obtains a **WantAgent** object. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ---- | ------------- | ---- | ------------- | -| info | WantAgentInfo | Yes | Information about the **WantAgent** object to obtain.| +| info | [WantAgentInfo](js-apis-inner-wantAgent-wantAgentInfo.md) | Yes | Information about the **WantAgent** object to obtain.| **Return value** @@ -91,29 +93,29 @@ Obtains a **WantAgent** object. This API uses a promise to return the result. **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -124,12 +126,10 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); }); ``` - - ## WantAgent.getBundleName getBundleName(agent: WantAgent, callback: AsyncCallback\): void @@ -147,16 +147,16 @@ Obtains the bundle name of a **WantAgent** object. This API uses an asynchronous **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // getWantAgent callback function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); if (err.code == 0) { wantAgent = data; } else { @@ -164,24 +164,24 @@ function getWantAgentCallback(err, data) { } } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -195,9 +195,9 @@ WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) // getBundleName callback function getBundleNameCallback(err, data) { - console.info("==========================>getBundleNameCallback=======================>"); + console.info('==========================>getBundleNameCallback=======================>'); } -WantAgent.getBundleName(wantAgent, getBundleNameCallback) +WantAgent.getBundleName(wantAgent, getBundleNameCallback); ``` @@ -218,38 +218,37 @@ Obtains the bundle name of a **WantAgent** object. This API uses a promise to re **Return value** -| Type | Description | -| ----------------------------------------------------------- | ------------------------------------------------------------ | +| Type | Description | +| ----------------- | ------------------------------------------------ | | Promise\ | Promise used to return the bundle name.| **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; - // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -260,12 +259,12 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); wantAgent = data; }); WantAgent.getBundleName(wantAgent).then((data) => { - console.info("==========================>getBundleNameCallback=======================>"); + console.info('==========================>getBundleNameCallback=======================>'); }); ``` @@ -288,16 +287,16 @@ Obtains the user ID of a **WantAgent** object. This API uses an asynchronous cal **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // getWantAgent callback function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); if (err.code == 0) { wantAgent = data; } else { @@ -305,24 +304,24 @@ function getWantAgentCallback(err, data) { } } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -336,9 +335,9 @@ WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) // getUid callback function getUidCallback(err, data) { - console.info("==========================>getUidCallback=======================>"); + console.info('==========================>getUidCallback=======================>'); } -WantAgent.getUid(wantAgent, getUidCallback) +WantAgent.getUid(wantAgent, getUidCallback); ``` @@ -365,32 +364,32 @@ Obtains the user ID of a **WantAgent** object. This API uses a promise to return **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -401,162 +400,16 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); wantAgent = data; }); WantAgent.getUid(wantAgent).then((data) => { - console.info("==========================>getUidCallback=======================>"); -}); -``` - - - -## WantAgent.getWant - -getWant(agent: WantAgent, callback: AsyncCallback\): void - -Obtains the want in a **WantAgent** object. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**System API**: This is a system API and cannot be called by third-party applications. - -**Parameters** - -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------------------- | -| agent | WantAgent | Yes | Target **WantAgent** object. | -| callback | AsyncCallback\ | Yes | Callback used to return the want.| - -**Example** - -```js -import WantAgent from '@ohos.wantAgent'; - - -// WantAgent object -var wantAgent; - -// getWantAgent callback -function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); - if (err.code == 0) { - wantAgent = data; - } else { - console.info('----getWantAgent failed!----'); - } -} -// WantAgentInfo object -var wantAgentInfo = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - } - ], - operationType: WantAgent.OperationType.START_ABILITIES, - requestCode: 0, - wantAgentFlags:[WantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] -} - -WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) - -// getWant callback -function getWantCallback(err, data) { - console.info("==========================>getWantCallback=======================>"); -} -WantAgent.getWant(wantAgent, getWantCallback) -``` - - - -## WantAgent.getWant - -getWant(agent: WantAgent): Promise\ - -Obtains the want in a **WantAgent** object. This API uses a promise to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**System API**: This is a system API and cannot be called by third-party applications. - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----- | --------- | ---- | ------------- | -| agent | WantAgent | Yes | Target **WantAgent** object.| - -**Return value** - -| Type | Description | -| ----------------------------------------------------------- | ------------------------------------------------------------ | -| Promise\ | Promise used to return the want.| - -**Example** - -```js -import WantAgent from '@ohos.wantAgent'; - - -// WantAgent object -var wantAgent; - -// WantAgentInfo object -var wantAgentInfo = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - } - ], - operationType: WantAgent.OperationType.START_ABILITIES, - requestCode: 0, - wantAgentFlags:[WantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] -} - -WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); - wantAgent = data; -}); - -WantAgent.getWant(wantAgent).then((data) => { - console.info("==========================>getWantCallback=======================>"); + console.info('==========================>getUidCallback=======================>'); }); ``` - ## WantAgent.cancel cancel(agent: WantAgent, callback: AsyncCallback\): void @@ -574,16 +427,16 @@ Cancels a **WantAgent** object. This API uses an asynchronous callback to return **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // getWantAgent callback function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); if (err.code == 0) { wantAgent = data; } else { @@ -591,24 +444,24 @@ function getWantAgentCallback(err, data) { } } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -622,9 +475,9 @@ WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) // cancel callback function cancelCallback(err, data) { - console.info("==========================>cancelCallback=======================>"); + console.info('==========================>cancelCallback=======================>'); } -WantAgent.cancel(wantAgent, cancelCallback) +WantAgent.cancel(wantAgent, cancelCallback); ``` @@ -651,32 +504,32 @@ Cancels a **WantAgent** object. This API uses a promise to return the result. **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -687,12 +540,12 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); wantAgent = data; }); WantAgent.cancel(wantAgent).then((data) => { - console.info("==========================>cancelCallback=======================>"); + console.info('==========================>cancelCallback=======================>'); }); ``` @@ -711,21 +564,21 @@ Triggers a **WantAgent** object. This API uses an asynchronous callback to retur | Name | Type | Mandatory| Description | | ----------- | ----------------------------- | ---- | ------------------------------- | | agent | WantAgent | Yes | Target **WantAgent** object. | -| triggerInfo | TriggerInfo | Yes | **TriggerInfo** object. | +| triggerInfo | [TriggerInfo](js-apis-inner-wantAgent-triggerInfo.md) | Yes | **TriggerInfo** object. | | callback | AsyncCallback\ | No | Callback used to return the result.| **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // getWantAgent callback function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); if (err.code == 0) { wantAgent = data; } else { @@ -733,24 +586,24 @@ function getWantAgentCallback(err, data) { } } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -764,7 +617,7 @@ WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) // trigger callback function triggerCallback(data) { - console.info("==========================>triggerCallback=======================>"); + console.info('==========================>triggerCallback=======================>'); } var triggerInfo = { @@ -779,7 +632,7 @@ WantAgent.trigger(wantAgent, triggerInfo, triggerCallback) equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback\): void -Checks whether two **WantAgent** objects are equal. This API uses an asynchronous callback to return the result. +Checks whether two **WantAgent** objects are equal to determine whether the same operation is from the same application. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -793,17 +646,17 @@ Checks whether two **WantAgent** objects are equal. This API uses an asynchronou **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent1; -var wantAgent2; +let wantAgent1; +let wantAgent2; // getWantAgent callback function getWantAgentCallback(err, data) { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); if (err.code == 0) { wantAgent1 = data; wantAgent2 = data; @@ -812,24 +665,24 @@ function getWantAgentCallback(err, data) { } } // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -843,7 +696,7 @@ WantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) // equal callback function equalCallback(err, data) { - console.info("==========================>equalCallback=======================>"); + console.info('==========================>equalCallback=======================>'); } WantAgent.equal(wantAgent1, wantAgent2, equalCallback) ``` @@ -854,7 +707,7 @@ WantAgent.equal(wantAgent1, wantAgent2, equalCallback) equal(agent: WantAgent, otherAgent: WantAgent): Promise\ -Checks whether two **WantAgent** objects are equal. This API uses a promise to return the result. +Checks whether two **WantAgent** objects are equal to determine whether the same operation is from the same application. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -873,33 +726,33 @@ Checks whether two **WantAgent** objects are equal. This API uses a promise to r **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent1; -var wantAgent2; +let wantAgent1; +let wantAgent2; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -910,13 +763,13 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); wantAgent1 = data; wantAgent2 = data; }); WantAgent.equal(wantAgent1, wantAgent2).then((data) => { - console.info("==========================>equalCallback=======================>"); + console.info('==========================>equalCallback=======================>'); }); ``` @@ -937,31 +790,31 @@ Obtains the operation type of a **WantAgent** object. This API uses an asynchron **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -972,7 +825,7 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); wantAgent = data; }); @@ -1003,31 +856,31 @@ Obtains the operation type of a **WantAgent** object. This API uses a promise to **Example** -```js +```ts import WantAgent from '@ohos.wantAgent'; // WantAgent object -var wantAgent; +let wantAgent; // WantAgentInfo object -var wantAgentInfo = { +let wantAgentInfo = { wants: [ { - deviceId: "deviceId", - bundleName: "com.neu.setResultOnAbilityResultTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", + deviceId: 'deviceId', + bundleName: 'com.neu.setResultOnAbilityResultTest1', + abilityName: 'com.example.test.EntryAbility', + action: 'action1', + entities: ['entity1'], + type: 'MIMETYPE', + uri: 'key={true,true,false}', parameters: { mykey0: 2222, mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", + mykey2: '[1, 2, 3]', + mykey3: 'ssssssssssssssssssssssssss', mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey5: ['qqqqq', 'wwwwww', 'aaaaaaaaaaaaaaaaa'], mykey6: true, } } @@ -1038,15 +891,14 @@ var wantAgentInfo = { } WantAgent.getWantAgent(wantAgentInfo).then((data) => { - console.info("==========================>getWantAgentCallback=======================>"); + console.info('==========================>getWantAgentCallback=======================>'); wantAgent = data; + WantAgent.getOperationType(wantAgent).then((OperationType) => { + console.log('getOperationType success, OperationType: ' + OperationType); + }).catch((err) => { + console.log('getOperationType fail, err: ' + err); + }) }); - -WantAgent.getOperationType(wantAgent).then((OperationType) => { - console.log('getOperationType success, OperationType: ' + OperationType); -}).catch((err) => { - console.log('getOperationType fail, err: ' + err); -}) ``` -- GitLab From e5f64222efaf50bb4dd7fd497cb8a399e711cc5f Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Fri, 13 Jan 2023 11:10:14 +0800 Subject: [PATCH 221/383] update docs Signed-off-by: Annie_wang --- .../security/accesstoken-guidelines.md | 1 + .../security/app-provision-structure.md | 28 +- .../security/userauth-guidelines.md | 326 ++++++++++++------ 3 files changed, 241 insertions(+), 114 deletions(-) diff --git a/en/application-dev/security/accesstoken-guidelines.md b/en/application-dev/security/accesstoken-guidelines.md index 2f2661b187..20396da04e 100644 --- a/en/application-dev/security/accesstoken-guidelines.md +++ b/en/application-dev/security/accesstoken-guidelines.md @@ -244,3 +244,4 @@ By default, the **user_grant** permissions must be dynamically authorized by the } ] ``` + \ No newline at end of file diff --git a/en/application-dev/security/app-provision-structure.md b/en/application-dev/security/app-provision-structure.md index 35d199ebd7..a772f024a4 100644 --- a/en/application-dev/security/app-provision-structure.md +++ b/en/application-dev/security/app-provision-structure.md @@ -13,9 +13,9 @@ The **HarmonyAppProvision** file consists of several parts, which are described | issuer | Issuer of the **HarmonyAppProvision** file. | String | Yes | No| | validity | Validity period of the **HarmonyAppProvision** file. For details, see [Internal Structure of the validity Object](#internal-structure-of-the-validity-object). | Object | Yes | No | | bundle-info | Information about the application bundle and developer. For details, see [Internal Structure of the bundle-info Object](#internal-structure-of-the-bundle-info-object). | Object | Yes | No | -| acls | Information about the Access Control Lists (ACLs). For details, see [Internal Structure of the acls Object](#internal-structure-of-the-acls-object). | Object | No | Yes | -| permissions | Permissions required for your application. For details, see [Internal Structure of the permissions Object](#internal-structure-of-the-permissions-object). | Object | No | Yes | -| debug-info | Additional information for application debugging. For details, see [Internal Structure of the debug-info Object](#internal-structure-of-the-debug-info-object). | Object | No | Yes | +| acls | Information about the Access Control Lists (ACLs). For details, see [Internal Structure of the acls Object](#internal-structure-of-the-acls-object). | Object | No | Yes | +| permissions | Permissions required for your application. For details, see [Internal Structure of the permissions Object](#internal-structure-of-the-permissions-object). | Object | No | Yes | +| debug-info | Additional information for application debugging. For details, see [Internal Structure of the debug-info Object](#internal-structure-of-the-debug-info-object). | Object | No | Yes | | app-privilege-capabilities | Privilege information required by the application bundle. For details, see the [Application Privilege Configuration Guide](../../device-dev/subsystems/subsys-app-privilege-config-guide.md). | String array| No | Yes | An example of the **HarmonyAppProvision** file is as follows: @@ -58,18 +58,18 @@ An example of the **HarmonyAppProvision** file is as follows: | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ---------- | ------------------------------- | ------- | ------- | --------- | -| not-before | Start time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes | No | -| not-after | End time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes | No | +| not-before | Start time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes | No | +| not-after | End time of the file validity period. The value is a Unix timestamp, which is a non-negative integer.| Number | Yes | No | ### Internal Structure of the bundle-info Object | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | -------- | --------- | -| developer-id | Unique ID of the developer.| String | Yes | No | -| development-certificate | Information about the [debug certificate](hapsigntool-guidelines.md).| Number | Yes if **type** is set to **debug** and no otherwise | No | -| distribution-certificate | Information about the [release certificate](hapsigntool-guidelines.md).| Number | Yes if **type** is set to **release** and no otherwise| No | -| bundle-name | Bundle name of the application.| String | Yes | No | -| apl | [Ability privilege level (APL)](accesstoken-overview.md) of your application. The value can be **normal**, **system_basic**, or **system_core**.| String | Yes | No | +| developer-id | Unique ID of the developer.| String | Yes | No | +| development-certificate | Information about the [debug certificate](hapsigntool-guidelines.md).| Number | Yes if **type** is set to **debug** and no otherwise | No | +| distribution-certificate | Information about the [release certificate](hapsigntool-guidelines.md).| Number | Yes if **type** is set to **release** and no otherwise| No | +| bundle-name | Bundle name of the application.| String | Yes | No | +| apl | [Ability privilege level (APL)](accesstoken-overview.md) of your application. The value can be **normal**, **system_basic**, or **system_core**.| String | Yes | No | | app-feature | Type of your application. The value can be **hos_system_app** (system application) or **hos_normal_app** (normal application). Only system applications are allowed to call system APIs. If a normal application calls a system API, the call cannot be successful or the application may run abnormally.| String | Yes | No | @@ -78,22 +78,22 @@ The **acls** object contains the [ACL](accesstoken-overview.md) configured for y | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | -| allowed-acls | [ACLs](../security/accesstoken-overview.md) configured for your application.| String array | No | No | +| allowed-acls | [ACLs](../security/accesstoken-overview.md) configured for your application.| String array | No | No | ### Internal Structure of the permissions Object The **permissions** object contains restricted permissions required for your application. Different from the ACLs set in the **acls** object, these permissions need user authorization during the running of your application. It should be noted that you still need to add the ACL information to the [**requestPermissions**](../quick-start/module-configuration-file.md#requestpermissions) attribute in the application configuration file. | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | -| restricted-permissions | [Restricted permissions](accesstoken-overview.md) required for your application.| String array | No | No | +| restricted-permissions | [Restricted permissions](accesstoken-overview.md) required for your application.| String array | No | No | ### Internal Structure of the debug-info Object The **debug-info** object contains debugging information of your application, mainly device management and control information. | Name | Description | Data Type| Mandatory | Initial Value Allowed| | ------------------------ | ------------------------------- | ------- | ------- | --------- | -| device-id-type | Type of the device ID. Currently, only the udid type is supported.| String | No | No | -| device-ids | IDs of devices on which your application can be debugged.| String array | No | No | +| device-id-type | Type of the device ID. Currently, only the udid type is supported.| String | No | No | +| device-ids | IDs of devices on which your application can be debugged.| String array | No | No | ## Modifying the HarmonyAppProvision Configuration File diff --git a/en/application-dev/security/userauth-guidelines.md b/en/application-dev/security/userauth-guidelines.md index 85a82669d9..2902e73fe8 100644 --- a/en/application-dev/security/userauth-guidelines.md +++ b/en/application-dev/security/userauth-guidelines.md @@ -1,113 +1,239 @@ # User Authentication Development > ![icon-note.gif](../public_sys-resources/icon-note.gif) **NOTE**
-> This development guide applies to the SDK of API Version 8 or later. +> This guide applies to the SDK for API version 9. ## When to Use -2D and 3D facial recognition used in identity authentication scenarios such as device unlocking, application login, and payment +User authentication supports facial recognition and fingerprint recognition and can be used in identity authentication scenarios such as device unlocking, application login, and payment. ## Available APIs -The userIAM_userAuth module provides methods for checking the support for user authentication, and performing and canceling authentication. You can perform authentication based on biometric features such as facial characteristics. For more details, see [API Reference](../reference/apis/js-apis-useriam-userauth.md). +The **userIAM_userAuth** module provides APIs for user authentication, including querying authentication capabilities, and initiating or canceling authentication. Users can use biometric feature information, such as facial and fingerprints, to perform authentications. For more details about the APIs, see [User Authentication](../reference/apis/js-apis-useriam-userauth.md). -Before performing authentication, check whether the device supports user authentication, including the authentication type and level. If user authentication is not supported, consider using another authentication type. The following table lists the APIs available for user authentication. +Before authentication, you must specify the [authentication type](../reference/apis/js-apis-useriam-userauth.md#userauthtype8) and [authentication trust level](../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8) to check whether the device supports the authentication capabilities. **Table 1** APIs of user authentication -| API | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | -| getVersion() : number | Obtains the version information of an authentication object. | -| getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number | Checks whether the device supports the specified authentication type and level.| -| auth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array | Performs user authentication. This method uses asynchronous callback to return the result. | -| cancelAuth(contextID : Uint8Array) : number | Cancels an authentication. | - -## How to Develop - -Before starting the development, make the following preparations: - -1. Add the ohos.permission.ACCESS_BIOMETRIC permission declaration to the application permission file. -2. Add **import userIAM_userAuth from '@ohos.userIAM.userAuth'** to the code file. - -The development procedure is as follows: - -1. Obtain an **Authenticator** singleton object. The sample code is as follows: - - ```js - let auth = new userIAM_userAuth.UserAuth(); - ``` - -2. (Optional) Obtain the version information of the authenticated object. - - ```js - let auth = new userIAM_userAuth.UserAuth(); - let version = auth.getVersion(); - console.info("auth version = " + version); - ``` - -3. Check whether the device supports the authentication capabilities based on the specified authentication type and level. - - ```js - let auth = new userIAM_userAuth.UserAuth(); - let checkCode = auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); - if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) { - console.info("check auth support success"); - // Add the logic to be executed if the specified authentication type is supported. - } else { - console.error("check auth support fail, code = " + checkCode); - // Add the logic to be executed if the specified authentication type is not supported. - } - ``` - -4. Perform an authentication. - - ```js - let auth = new userIAM_userAuth.UserAuth(); - auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - try { - console.info("auth onResult result = " + result); - console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); - if (result == userIAM_userAuth.ResultCode.SUCCESS) { - // Add the logic to be executed when the authentication is successful. - } else { - // Add the logic to be executed when the authentication fails. - } - } catch (e) { - console.info("auth onResult error = " + e); - } - }, - - onAcquireInfo: (module, acquire, extraInfo) => { - try { - console.info("auth onAcquireInfo module = " + module); - console.info("auth onAcquireInfo acquire = " + acquire); - console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo)); - } catch (e) { - console.info("auth onAcquireInfo error = " + e); - } - } - }); - ``` - -5. Cancel the authentication. - - ```js - let auth = new userIAM_userAuth.UserAuth(); - // Obtain contextId using auth(). - let contextId = auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - console.info("auth onResult result = " + result); - }, - - onAcquireInfo: (module, acquire, extraInfo) => { - console.info("auth onAcquireInfo module = " + module); - } - }); - let cancelCode = auth.cancel(contextId); - if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) { - console.info("cancel auth success"); - } else { - console.error("cancel auth fail"); - } - ``` +| API | Description | +| ---------- | ----------------------- | +| getVersion() : number | Obtains the version information of an authentication object. | +| getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel): void | Checks whether the device supports the specified authentication type and level.| +| getAuthInstance(challenge : Uint8Array, authType : UserAuthType, authTrustLevel : AuthTrustLevel): AuthInstance | Obtains an **AuthInstance** instance for user authentication.| +| on(name : AuthEventKey, callback : AuthEvent) : void | Subscribes to the user authentication events of the specified type.| +| off(name : AuthEventKey) : void | Unsubscribes from the user authentication events of the specific type.| +| start: void | Starts user authentication. | +| cancel: void | Cancel this user authentication. | + +## Obtaining Authentication Object Version Information + +### How to Develop + +1. Apply for the permission.
Configure the **ohos.permission.ACCESS_BIOMETRIC** permission in **requestPermissions** in the **module.json5** file. For more information, see [module.json5](../quick-start/module-configuration-file.md). + +2. Use [getVersion](../reference/apis/js-apis-useriam-userauth.md#useriam_userauthgetversion9) to obtain the version information. + + ```js + import userIAM_userAuth from '@ohos.userIAM.userAuth'; + + // Obtain version information. + try { + let version = userIAM_userAuth.getVersion(); + console.info("auth version = " + version); + } catch (error) { + console.info("get version failed, error = " + error); + } + ``` + +## Checking Authentication Capabilities Supported by a Device + +### How to Develop + +1. Apply for the permission.
Configure the **ohos.permission.ACCESS_BIOMETRIC** permission in **requestPermissions** in the **module.json5** file. For more information, see [module.json5](../quick-start/module-configuration-file.md). + +2. Specify the [authentication type](../reference/apis/js-apis-useriam-userauth.md#userauthtype8) and [authentication trust level](../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8), and call [getAvailableStatus](../reference/apis/js-apis-useriam-userauth.md#useriam_userauthgetavailablestatus9) to check whether the current device supports the authentication capabilities. + + ```js + import userIAM_userAuth from '@ohos.userIAM.userAuth'; + + // Check whether the authentication capabilities are supported. + try { + userIAM_userAuth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); + console.info("current auth trust level is supported"); + } catch (error) { + console.info("current auth trust level is not supported, error = " + error); + } + ``` + +## Performing Authentication and Subscribing to the Authentication Result + +### How to Develop + +1. Apply for the permission.
Configure the **ohos.permission.ACCESS_BIOMETRIC** permission in **requestPermissions** in the **module.json5** file. For more information, see [module.json5](../quick-start/module-configuration-file.md). + +2. Specify the challenge, [authentication type](../reference/apis/js-apis-useriam-userauth.md#userauthtype8), and [authentication trust level](../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8) to obtain an authentication object. + +3. Use [on](../reference/apis/js-apis-useriam-userauth.md#on9) to subscribe to the authentication result. + +4. Use [start](../reference/apis/js-apis-useriam-userauth.md#start9) to initiate an authentication and return the authentication result through [callback](../reference/apis/js-apis-useriam-userauth.md#callback9). + +5. Use [off](../reference/apis/js-apis-useriam-userauth.md#off9) to unsubscribe from the authentication result. + + ```js + import userIAM_userAuth from '@ohos.userIAM.userAuth'; + + let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); + let authType = userIAM_userAuth.UserAuthType.FACE; + let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; + + // Obtain an authentication object. + let auth; + try { + auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + console.log("get auth instance success"); + } catch (error) { + console.log("get auth instance failed" + error); + } + + // Subscribe to the authentication result. + try { + auth.on("result", { + callback: (result: userIAM_userAuth.AuthResultInfo) => { + console.log("authV9 result " + result.result); + console.log("authV9 token " + result.token); + console.log("authV9 remainAttempts " + result.remainAttempts); + console.log("authV9 lockoutDuration " + result.lockoutDuration); + } + }); + console.log("subscribe authentication event success"); + } catch (error) { + console.log("subscribe authentication event failed " + error); + } + + // Start user authentication. + try { + auth.start(); + console.info("authV9 start auth success"); + } catch (error) { + console.info("authV9 start auth failed, error = " + error); + } + + // Unsubscribe from the authentication result. + try { + auth.off("result"); + console.info("cancel subscribe authentication event success"); + } catch (error) { + console.info("cancel subscribe authentication event failed, error = " + error); + } + ``` + +## Performing Authentication and Subscribing to Authentication Tip Information + +### How to Develop + +1. Apply for the permission.
Configure the **ohos.permission.ACCESS_BIOMETRIC** permission in **requestPermissions** in the **module.json5** file. For more information, see [module.json5](../quick-start/module-configuration-file.md). + +2. Specify the challenge, [authentication type](../reference/apis/js-apis-useriam-userauth.md#userauthtype8), and [authentication trust level](../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8) to obtain an authentication object. + +3. Use [on](../reference/apis/js-apis-useriam-userauth.md#on9) to subscribe to the authentication tip information. + +4. Use [start](../reference/apis/js-apis-useriam-userauth.md#start9) to initiate an authentication and return the tip information through [callback](../reference/apis/js-apis-useriam-userauth.md#callback9). + +5. Use [off](../reference/apis/js-apis-useriam-userauth.md#off9) to unsubscribe from the authentication tip information. + + ```js + import userIAM_userAuth from '@ohos.userIAM.userAuth'; + + let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); + let authType = userIAM_userAuth.UserAuthType.FACE; + let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; + + // Obtain an authentication object. + let auth; + try { + auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + console.log("get auth instance success"); + } catch (error) { + console.log("get auth instance failed" + error); + } + + // Subscribe to authentication tip information. + try { + auth.on("tip", { + callback : (result : userIAM_userAuth.TipInfo) => { + switch (result.tip) { + case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT: + // Do something. + case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK: + // Do something. + default: + // Do others. + } + } + }); + console.log("subscribe authentication event success"); + } catch (error) { + console.log("subscribe authentication event failed " + error); + } + + // Start user authentication. + try { + auth.start(); + console.info("authV9 start auth success"); + } catch (error) { + console.info("authV9 start auth failed, error = " + error); + } + + // Unsubscribe from authentication tip information. + try { + auth.off("tip"); + console.info("cancel subscribe tip information success"); + } catch (error) { + console.info("cancel subscribe tip information failed, error = " + error); + } + ``` + +## Canceling User Authentication + +### How to Develop + +1. Apply for the permission.
Configure the **ohos.permission.ACCESS_BIOMETRIC** permission in **requestPermissions** in the **module.json5** file. For more information, see [module.json5](../quick-start/module-configuration-file.md). + +2. Specify the challenge, [authentication type](../reference/apis/js-apis-useriam-userauth.md#userauthtype8), and [authentication trust level](../reference/apis/js-apis-useriam-userauth.md#authtrustlevel8) to obtain an authentication object. + +3. Use [start](../reference/apis/js-apis-useriam-userauth.md#start9) to initiate an authentication. + +4. Use [cancel](../reference/apis/js-apis-useriam-userauth.md#cancel9) to cancel this authentication. + + ```js + import userIAM_userAuth from '@ohos.userIAM.userAuth'; + + let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); + let authType = userIAM_userAuth.UserAuthType.FACE; + let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; + + // Obtain an authentication object. + let auth; + try { + auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + console.log("get auth instance success"); + } catch (error) { + console.log("get auth instance failed" + error); + } + + // Start user authentication. + try { + auth.start(); + console.info("authV9 start auth success"); + } catch (error) { + console.info("authV9 start auth failed, error = " + error); + } + + // Cancel the authentication. + try { + auth.cancel(); + console.info("cancel auth success"); + } catch (error) { + console.info("cancel auth failed, error = " + error); + } + ``` -- GitLab From ef0c44009c69d14020cc59532d2e5ed2d9579966 Mon Sep 17 00:00:00 2001 From: zhouke Date: Fri, 13 Jan 2023 11:49:53 +0800 Subject: [PATCH 222/383] =?UTF-8?q?Rect=E7=B1=BB=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=8C=E8=A1=A5=E5=85=85changelog.Signed-o?= =?UTF-8?q?ff-by:=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhouke --- .../changelogs-testfwk_arkxtest.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md new file mode 100644 index 0000000000..d508e473d7 --- /dev/null +++ b/zh-cn/release-notes/changelogs/OpenHarmony_4.0.2.1/changelogs-testfwk_arkxtest.md @@ -0,0 +1,42 @@ +# 测试子系统ChangeLog + +## cl.testfwk_arkxtest.1 Rect控件边框信息类接口名称变更 + +表示控件边框信息的枚举类型Rect定义自4.0.2.1版本起进行了变更。 + +## 变更影响 + +此变更影响@ohos.uitest提供的Rect接口。用户此前在测试用例开发中使用了@ohos.uitest-api9 中Rect接口的,需要进行适配才可以在新版本SDK环境正常编译通过。 + +## 关键的接口/组件变更 + +### Rect9+ + +变更前: + +| 名称 | 值 | 说明 | +| ------- | ---- | ------------------------- | +| leftX | 1 | 控件边框的左上角的X坐标。 | +| topY | 2 | 控件边框的左上角的Y坐标。 | +| rightX | 3 | 控件边框的右下角的X坐标。 | +| bottomY | 4 | 控件边框的右下角的Y坐标。 | + +变更后: + +| 名称 | 值 | 说明 | +| ------ | ---- | ------------------------- | +| left | 1 | 控件边框的左上角的X坐标。 | +| top | 2 | 控件边框的左上角的Y坐标。 | +| right | 3 | 控件边框的右下角的X坐标。 | +| bottom | 4 | 控件边框的右下角的Y坐标。 | + +## 适配指导 + +### 适配接口名称变更 + +可按照如下规则做类名替换: + +- `leftX-->left` +- `topY-->top` +- `rightX-->right` +- `bottomY-->bottom` -- GitLab From f1198f0ed595d6779dd33184fa495a5200f4fc78 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Tue, 10 Jan 2023 09:09:02 +0800 Subject: [PATCH 223/383] Update docs (13198) Signed-off-by: ester.zhou --- .../arkts-state-mgmt-application-level.md | 32 ++++++------------ .../quick-start/figures/appstorage.gif | Bin 91374 -> 149303 bytes 2 files changed, 10 insertions(+), 22 deletions(-) diff --git a/en/application-dev/quick-start/arkts-state-mgmt-application-level.md b/en/application-dev/quick-start/arkts-state-mgmt-application-level.md index 145827cd82..8e1bfd1a19 100644 --- a/en/application-dev/quick-start/arkts-state-mgmt-application-level.md +++ b/en/application-dev/quick-start/arkts-state-mgmt-application-level.md @@ -60,26 +60,15 @@ struct ComponentA { this.label = (this.languageCode === 'en') ? 'Number' : 'Count' }) } - .margin({ bottom: 50 }) + .margin({ top: 50, bottom: 50 }) Row() { Button (`Change @StorageLink decorated variable: ${this.varA}`).height(40).fontSize(14) .onClick(() => { this.varA++ }) - }.margin({ bottom: 50 }) - - Row() { - Button (`Change @StorageProp decorated variable: ${this.languageCode}`).height(40).fontSize(14) - .onClick(() => { - if (this.languageCode === 'zh') { - this.languageCode = 'en' - } else { - this.languageCode = 'zh' - } - }) } - } + }.width('100%') } } ``` @@ -110,27 +99,26 @@ One-way data binding can be established between a component and the **LocalStora > **NOTE** > -> If a **LocalStorage** instance has initial values assigned when being created, these values will be used for the **@LocalStorageLink** and **@LocalStorageProp** decorated state variables in the component. Otherwise, the initial values assigned for **@LocalStorageLink** and **@LocalStorageProp** will be used instead. +> If a **LocalStorage** instance does not have an initial value assigned when being created, it can use the initial value defined by **@LocalStorageLink** or **@LocalStorageProp** in the component. ### Example 1: Creating a LocalStorage Instance in an Ability The **LocalStorage** is loaded through the **loadContent** API. For details, see [loadContent](../reference/apis/js-apis-window.md#loadcontent9-1). ```ts -// MainAbility.ts -import Ability from '@ohos.application.Ability' +import UIAbility from '@ohos.app.ability.UIAbility'; -export default class MainAbility extends Ability { +export default class EntryAbility extends UIAbility { storage: LocalStorage onCreate() { this.storage = new LocalStorage() this.storage.setOrCreate('storageSimpleProp', 121) - console.info('[Demo MainAbility onCreate]') + console.info('[Demo EntryAbility onCreate]') } onDestroy() { - console.info('[Demo MainAbility onDestroy]') + console.info('[Demo EntryAbility onDestroy]') } onWindowStageCreate(windowStage) { @@ -139,15 +127,15 @@ export default class MainAbility extends Ability { } onWindowStageDestroy() { - console.info('[Demo] MainAbility onWindowStageDestroy') + console.info('[Demo] EntryAbility onWindowStageDestroy') } onForeground() { - console.info('[Demo] MainAbility onForeground') + console.info('[Demo] EntryAbility onForeground') } onBackground() { - console.info('[Demo] MainAbility onBackground') + console.info('[Demo] EntryAbility onBackground') } } ``` diff --git a/en/application-dev/quick-start/figures/appstorage.gif b/en/application-dev/quick-start/figures/appstorage.gif index c500542314c4d9182155122729e6b7b15e3abc16..cb1489a13820351450099a973f09a26ec6963c71 100644 GIT binary patch literal 149303 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

5AVz( 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 literal 91374 zcmYhCXH*ki_x8`sq!S?YP{hzX1Vo66-a`*XjC2q&GzCQshzQswp(AK0A|Pr6qzM`k zxk1r8ARvMTd$2}Sz=pw!<&l^Fw|CZ>HEYc}U(PyvpM9Nc|Bknh7i(EeJ>(1R0>I!W z4rG9Z@4P~QXK;|aE63BpmWeSAr2SN2Vewr*Zt;fAcSuTBMGYxBU3lz`HS!T z$|iJudOQ<{2VQ=n`d%wS^UL>tZTjnU)i~%ojr4W4AQ3`np!yy|B7hrv4Y=vK~~l+_Z{q@menp z+R~qKawIP6--xC!ZTDs(cJ}m-zS9kDAAa=y<&(cFvTvCBH!X0+W9|X1!^6Y&Q8kNKeMOU7JVTp& z(@!59c-&Bb>(u#CU2e@1|E|Z6A8Y%yoo@W_f06(HJ*0V%OVVSDMRbE$Rm-Sh@yUL@ z*i?2c`&`{%p-F0mbogBTwL^>*tIX{`^RJhiuXYQ+-f?R52s3V^*5`cV&7-Ux@19;i z-*o!~ntjHa?f7!A-rITe>*mtfAt9&US0lo~Bgrc7fwGq%e`8($gity{CwiQ z*7c)ZTO;aVBMSMEEe^Ys@#P(!Bl?6vdwx&Y0Ir0u5G*X9Xl!=Ht_h9&j{9pn@PQ|( zmceQ0n7S=;KcN4=OxJSjpn_oE*Tqm>G zBH0i@M=SEl&5xJ=oB#U&@AMq+$QB-l-t{%f1lP4?5`u28q-NiIrrCg1%H_bAtujSn zpAv<{r~_s$rXbtAvDq+Tu$m1Zf;B3^*+@!X?A*Kh-1 zypAKK%KCD;-)cP1(=yCia|pX&nt=PKn8SyTU+#Wg6<;=lCg2!9t6;mf6mW3WXLGak z<@&-t5*am(1KyQy&9W7kOjoTfIa-W^^NNm}q8})7`xUtao*_hKj!ndy{Y{E$tlhl) zah6C0R(EJ;$kkyqr$o{IIl+GM2+vCVcD z%1fJ={SorMBLoktx1H194@?x^D_W*~)+W*ZO~vzDKf_2aGKThlhh0CMZ6x`Ix+=Ix zs>QVkhvt49l2m;v+%&Pd`npsuqC^vuEgB_HYa~5HE}!;W8MW4z z=a6p3-sO#5^_MWn$%A(4{lr>vTKtj9t#uQFx~qEQm7-FJyS^udT zvTHlI^L>^l_iEN7FS~uIugX8Yy?0Ls%}XnGxcvyM61omIJ6}FOekk(tyAZs!_;UQY zHB2OfuYlsu-J2a1kgOTwPR)HvI>PM5)(oi7xgQww@oisDRQSuVYdOlvDqk3+P3Bj1 z^5l7ry)Qq`eXXL1c+S7a>8Izp42Ws)HutXD%cs*yPW|pQ?i4;a-x@$IXmZrAg?q{pYd|)%EIeQV-qbcgjWg4N@Bqx8NMn zvT$7#Ii7137;0N_V!*(9lf|gJX`sXA5p_L93H)e13MD;$q#NVm7V|J=13B5mbZd`? z8T{ek{D{VcLrCqM&0UYo`x@%h2bUKOmz3AJH2hJ|^s^1+d04X4bUPjGAieEqw*jrIrV@PWWrtppm*S)i6M zSa_$D#&a1rD6c&lHJKv7%!yY_aaut8e>hspmKL8w=VBW>qkHUpOPQ6dZ&TwizEjPh zB~V^pufCOsb**jz#5vSRW&B=#%V^bw8%e=Q77t#!E&+PoN*=o$F?|-d*5Qr8i4o~( z-^}|<^e#6??#wdWM-c_uw?Fjy*1dM_XXi>-h!Tt+cRiPja(%5$p;MV5F3~$2m1KO4 zsm`Ma`{mIsdmHQ@7&}}?D^I?pTGte)n`=Z7pxlzipxGZ5rX`|=XOCBJP?BG+?ih|Y z^2NHDegTE^xtb0H=_I#zDWH?aE;PSVgDk~RU&Qwkh=ZmK>I7!&GgYw0`qXiRhb@sm z3ZW{Scs&MW#o{X{(T+IUFY}hWHo}dn6VI1RMpBQrg}I|Jm2i@j7$R()yS!~5{y@iy zI;{)kIsNz&H4Cap6sKn%;PrC=QrBbPN21=Xexw6XC5)1(dgs=*-Fn)?jH8sQJ}BK8 zTbwKbJzrztLh%E|!A55fag@4eupZuJ1{h`Bs6I})YvSa*ehnw?)8BjcnDX0@@oGH4&%*!y4NlaNEE90GG!4CjGvKH0x8 z<5mRa)92A|6|>5iYv%-Ae0$04jyrT=g&?;w#W+S{U%Zd%mc*&rWWB;+^}O&{f#m+3 zuA#`|zgs8kOdjBLl<(I-y#ATq&4#OA;1xW5!)z^r9F}T}C<0>lYJR2h&Flj6dpBm*4N5K5E4rZPkqgj?f@xhL^2 zm%KqS|x!u@CX58ZmUkg0bIn1i_^e}yM@qtrt8AV#d-|(=x2>( zXKG!=8<$xS#>mvLj5Tp7L9;%f!i=_jUwUZ|K$GACeR2;(~Gn@2e>;ja$hR7K|oy&<;Ev20!CB} zw|^ENXbRN0@O~AXRTz1DAa(c7MMQDo4tc_U708YQMb5!FFBMmEmqs3jShBSw88Bj4 zPxM(A0V_xbZx=7kqb(X0kg1YbFb3%fvr1FoEmQlA4T*lVq}Ax&qo1Lkxy6@Viz(WH zWJW%X?x0Uwz)mL3`A|$T z(+!LaTTdDSC0@zZMk~S+&@iU6EEOEVO8=-qTffrnd0HZ2DWJja{ZQ#SBaD&2S7GTR1NcS#lBL*Q8jfzrP~5*3G5mLhHo68U+PbOSB2>=m z=));x12rMEw~zXv(>jc1;hwL@js;}i_Gf{_znWfat4+4bz(%3T%6Xc_4nV)wY^BN5 zvfzbXjD>U0!Q5C7F1C(xL)M6G40u3Y4BL;@06FeN2r|)U5+k8>e zpg=iNKt$YmFnJ7`&xV-*pD)B8;uE&_!{;&bvtN|vi|vy>S5$QYh$XbN+2{uxL`I?v>496^Q@Od+XF zdb@TS5;#rdCH0vb_u{zqD;S1k4x+OeR5pNbBw#Hx9sT)_4i|Vb7w?r2_wYcd$f`e* zz7i-NG9cgNZAWN`OE7^0@MIK@eC@_ejoj}_G_Ncl!7{jL%H~MACWD0n+;X0liqLZ~ zKID20bGd{eD>u=V(-(7s(TSye3ee&?z1`g0`_SE`2i`N$ydCjB6oWjPZMP>A_q#%E zXhv1HZ-8Y$k!4>M_esn6b}EsbS@4gG8S2< z`J~53jJ&fU%Jpwi+RL?a)SXvQ2duq-_l*dk&O0YON$`A+<7OIZi$IvS1G+>CdwtLG(o)c#)G;znde^Fdqz~GiM2h^k15<&b<@APKke6wc!Mz$k6m*Bv zyTv4X6tM%u``BLfH;ldU=DK$#7}LKCO4bLw++9l4eT zBigVIjCD6}sl(^GBGFS|cP0|q6#&M>?mO_8QxdvA8)mGdTMF@{@{Caj(#uo5iL`Lt zL9=a5ewqnu#C~)`l&FS=%2TxUikIG?VCn=@3M2oOm7{|MN%uKI-I7J%h+9wxvkBnM zq0^tj1&|t?Jhyf9QY8lcXb-C@a!cP2q1RoE+U207Xrzc3FYP$@ z-T<)^#UGO=S5{Esq<55raLzn*!XR!GV58gB&mm%{xA>@%0$cyR*y{(9?h2`4dHd~& zKFq}w)Oan2Kt@;itfObpVobK?T}egM96*o=#K&v*&S`VCNHrf;5NRZ%-95Y2*Nq&F z!^uXT)1#H#h`ac3XZFQid|b>;<8M}6Jx=FsH3xUfPJIwTB>GIe1sb9#0^CQyGGRua ztHhBYI=9@WXRtwf=@gRz!gW{cxb7O?e=@Ml5Ha?&#-n_8Drr{=$jo*}c`AcaFqyprcUEIU-I5{})PB9qYuQ@LDW0Np&a#9X1WzVYYmW zksF*fe=2^}*q}(;p(Hazq@keb6VC!Wm<{_)f2HM?#?iT!uiob4L@NRI=wqgq=Gb5< z|Kw&b*p^#sEnl~}ZXnm-?8==fsEIatOadgxC*f*ao3es} zE`DysGvNP(-t00E#3PjI0hK7a_KcN|U%vExp1%k2?P}exFn&Xl-?tq$D@;c&_jT<$ zyj+@zJJJVqdE32t_+*s0jt74CHM4iW>bbn$a7=eAFDxqxptj)Acdc?ctVdHw60h)< z-^R()+9x1Y4iq3l43v4(8Hh@E@TLdf2vj?0-(Mtuu8H!w6SvZC7G68aN6!w#RD4Erb4D4|;p-+(qY!;!z!E>>vMPSPt(> zsod7Pbjy%&0_7-zo-rZd6wv?j{w^hRD!mSztxAu~st?JHp?hFQ9y)6uskNeT#9P(w zZlKCjrIAgZbOQi;i%h~h0i6pkeRdjVzPRj4oU}$9g&BK(PUZ5+D|0gXh@m*NeLjx< z(xA?aJ7p3&a`E%|w6QF*_rvclcDb{Xy2(f{@5hL!!{Ak6%($hn5ZWOAF)Aq7-T}k$ z!0b<1e{*1Nu|Zxj*HZG}|rD zpuxmYd$qiEv_s3+3ukuixt~VZ10@;}P>sXKWUe`6B8x$jymT*sa2^fj7{7?Th(M*M zxS_dA5Q37qcs42rT4YJ8;>Ol1L-vX!CNJid0s^svryUqLprT8Rip6u$5}=^RkxIEH zgZVfwrbfh0puto$i3p^D zGzuAOk0}_+Rq>xtgf@7WT{KbKeAkuzYc@#m+>)G!Bdps#*4w*e%wUDZN(YE&S;gfW z!fcQ|2scY?agrS*NCnU0L*8*U5nkA}H~U`6i!azICLp{DJ1SN+Od^La=QI^! zRoG37-;Rb&Q9EvIF(gpu41zhMx{@5qcQ-DiS01cYx5wUwW@-HLtJbpp3Qkp*On)CH zUE6cBe>SqPcUlA%zp^JBgCZs%858QT;X(C> zDuMg{=b5@;Uwf~;>G@vp((J$+o#qB4l3u|rJ(~V2sky!~YxDdntpl#c#Rn?4^g^-R zA1}V54Zmc26o&;Z>dEF0AiJS%9#BZv-@UEy@p*?$g9G;-_d>UrjMqZ@3)S2D6`Z5w zhL83(!)Lx%{wsnUGJ-<#;eYLt?29K^i*x6`J}tKtors_EXvkh>c=DI8cj-HojjQR))N6!G(5o@qcTwHZW7cnki;@RyY+ZC- z-{72WR-DOcI&A=SD_v9r&h5=K;KR*hMy5ljjKewL-NXE4vCrBzy}k7O4ZP_;z{ZI3 zSi>QLu=BrJtNe$4wVKbg`WpAj`Haq&_w>fHHS? zmuPvkj4F63A=eLfGar*Fo@*JEibnu+|L%G2#%gNV)jYuYo{#1P7w%;OX9-@2yNxL}nWRcm!a z8M&7-{kad9KVQ7N^}5qL$D^_MhHH%jYpGJe54jwEcYtt9IP@(othIu=i)SD|ccBo8 z$lk*XccGC3&%`{~xJIjW^&ZVn1_7ehXqDJ&^N57z8=Y1E@ydudnl;A0=COFS7lS50 zrdH#65mSHdMZfgz+{w_iH_k1SkvCSAH10qSP|skh*-_$Fx)s1jGqUq`q5osN5XL521K^T{@`27M#G4>Y^b-PFbsl7z3%y4~}Sn~q|Qty(jg>nrA7r=&A>$!OdeI zMjncWUj_01R0I~i)$H?nc|!gB==}#9e>6TNGd1G0V+V$ALr!9!XlK3E*~zbACys>r zzXK5#g1KW~8<=S_^HNH&0p2%lHY2lVptX0t4+$ySZj(LyLNzWdW_5^v(AmPuCsilw zyzj{~*0Hpfq%~g8Qi(Naaq;Y}<=k}HE#5S0z5dj;|LQk3{nu`xG{0BeweF(J_Dt6w)Tk=SNx_qb)Za(930IXN zZK&MF=&6f==sd>(MJ(7Td^k3;B8feTE)K5Tzv}0`yA?pI8$+DNFt0Q1DfW*`Z8gPw zjdzp{57YlWiki)^6if}3Pys>5f?b-jkGA&CT62}*L&|`U5RK9I>!z|EUH-dMoWK4< zoY^JmGEREu{`IdH%iO3!uE1Hucy)XC#X*M;6O{r6VkL3cTqR7G5ToVUpOzC>Vc9F% zFd{?JerRUZk&6h~)~)B~q3-Xjb^qKmpKYb6^)z~nt-12K^!C;xD_&e2MYezST(R

wBh%YseL~#&+nDzZ}{`dZ2!-j`}ciq+VH>koA&>HHotG~+J?Vh zn)d(iw|#2c=P6RrFj{tzFezT-E(uHKJTKlU=p;xYCPVwQF5<+FW&eUG;9bE_&*! z|G{>Up?Xd$_xJc=&sGMtOL}OCE0VU>AG%=()Xka>}>X12Ha~zUraU*8C@>_cAuhFye;iy8E6{Pdzt$@Z`SsjQKMd zLmgU+J6z=R|V=) zMQbrezo<$SA~n-~^H0Xgw`+@ZepMciQ1*aIYa%pyxtN3mMmrZnbXb*T*-Yn~p_JAe z6>D~o{%Ou0XkNVcfdBm@|JszQJ6yY%mVm`iw2c?+TL#?QUACokbpbfw?M!Fo z19)U!;BeT&ryN-dJUKY$StX;L!-dV@s8G4+>YC|hpC9ZyTUs^$^dLwNsi4K!b}uw2 z3o7JNTv-0>@#6_!icu~fVF3y&n^Mp{(|u$1C1hW&19wCEqTZ5e5G(}x`0S;zcUQf= z?(cTbNTd0Sk8N#5h+_h9O|)1n19&MQ&jFq8V8yvRLCgos6>=(;VGOx8%wt^;g^d4X zfA%lC{oyd%rZPVs*hxur3mWUK!0!zhlr3SqW4o4_@U0uRXx|IvK?STw)}B?lRKMQh zVZ)A*N*2bHjIe%I?%2yJI8WA_yIGsriiA|*#biw&c-NwBB14qre)BjUsF3UUr~cbp z1H4vz(=MrO|cpme+b9GQ3|jPJj_K}Yl%fDi!h{sPm$dgp8U|ug8P#-DmT-1GEAFIRj zkWD0Hp}x_&^Hu2C{_>vl$$YKw99td~qk>sCLu4+ZTmb1+odH!~W-sK#!&JJnHDVB* z489HrIA*FZixD6^7@ot-M3@2!D>ETH=@fP0I3de6;%XzD+!zk#FUx_(1XkVIvQuQI z@Em;%ezhJ`ZsseC`8pEZPY0k!=iAOjzi|LcaKsXn`ot0=z^0DkERt^(;+g*S;Wh^VlC1_H@GYTN@TvH_{C2cMn&0LAScU0U#}Zx z(X*E=6!GceD{Z$d3iupPOoz@lW%2RDxvT=dPNm&!3E!a^avR2JGhak;6sSVr(k-x^ z!`>NV0X;bOaGbfsQjQkdPWuoGay5suRfMq25VDm*%+d!8z()(n7PLkFqMFihzT|$n z#R3k}tfoN6)P>NV2(a2#;BYdU#}?@Tm?6QEl_*<7fi_z}yPW5@5+jMAPbmCU2bh3d zNDkMKU|ijSeJ*8m0MvK^N9U%HZocs}P)`)BkQeHh!}BQ=U<7PVN{T6x6J^h^@4STt z$q})DEgRGyTaHcWJI+l-bMcg6ftq>lYBqzGkz+Alz~U^%i3P|U&Q6H2MIdTU3dwS- z*^kJH0xK4#P!+qcG>1{Od^G^HVX_u0cW44~j96IAjuQnyQ^+UFK;xF-L$RnTRF2qzD&JFT<37%xWM zAmp1DywOa2;(4`YUYw@7d<$Pf*8S!d^g9hRxW|7osZeMNCG>!L2^U!LO;ET%gPZ-N(sD1r){)|rINZ#m91<7hM7gnNXm`buDxFGC9jtFah>5P6vEAz;J- zB^;Pc!z@=~8{QOggpfD@!I9h7;Y|GBq@fqVao!{z3+tIFc~i{++djlh35=B z#LQk4n9!krR6ed2lL%tz0y#xy04;Hs1`V6HNVK@OSsCfhrf1|R%Rt*|fjPZnIj_gz;JSY*c3$UF0x*Q+40!5tH zf*{$%KPr%^6iofeUXisRd}p25UV#O(20 z-1246tUUd)N>M2@J@u}D6ke!Kf|j#r8gqtrEWRThv*(fULSVswdlVpB4!`n$&>$ee zD+qd}T&^pKMgr+@zJ@dIfFh_Mj{}&KruWR9zNfKM-p343kz^r*GY@%%owZQbyJvU=#SC?;a>OY? zlGSj&n+NOdPWZlJg+o-hF095^0>e0x4@Lw!RUgN~@AB0GeH8YAW_JKVWN$(S2m9(- zb=E+l#HgG2F#v=oRE4QBl-64{n>uyn@`{Z&K-A3KvuD459(7vhx8`&Vnny9)tcv={ z+zOUGIRfM|2@_GfV^VV7PjN3b!Em&rdE&1J+HZ#5?w$ z5)$2%2M4tR4o4X=E*FpsKZC1^f|Y9_=>2usTB<9BE73*fWa#>UcrQ%((atefUoB$` zsXc7X1+gk}o^O@Qhd#(2`SV$wrbVRRgv(zP41ex^1}t;RQh zMG}8)e)KFW)YTNITU{2Ts~3ost3))H=UxU`yVl|?sJtPZrPTcttbs8x0j@a_X+p;4 zQ+SFRN@)@Toy*}Pe)fX^QtI7=5E7}PK}A(YU8xI~^!*xh!yeHhZBQkWm|kwVHVo8p zE_@}VN+vNts#3+sIz4ny(H83)0nO}*Qgx02`VvYX;Ga~qHRfVC4QtdC80DmC*M#U! z-#JPhXla3Zp)rhW-ObaCR$!egQ>cF9DujZK&KDy%;{`@VLo7e9Lim#|K(qlDg1#*i z2Wrth93*!MbfzoLkXeSpc~q_?S@1LU9{kCEZQff4u_ctDnMnl}6~@b-Mykl+fubQMWU_BwZ~L<_>U1RkYE~0L(=ABaT|Rw9;!#!v$UV+!GPDK zDQ#D!NyvY{FVemsa@7{X1o@yopG-}`N4=V%-*b=Pk|RT2sm zg}&LGBq321wOr%Rg@X@B2tTJNGEylmjmBK-@Q~SeT3XT9G7e z0?CvBOZ!397|{0+8LN)H1T||HBcwwhV2+|ztinI5CxKvYcC&-5RDC#xAG}DSz>>}9 z-&rIh>Q(jc%-~R<_`U$2l7TQo84eyWZeeu81c#JkZTmbGC^Vo*5a*qGT}-v=b36aeCP}=*)!#$Ux!?+425V(p)wN~9x)~-ArRtcXOUpS6l8lImV6vVt z585L@+!_4zTAG$=Tg>U~8cg8^@0db7_w@PUNmQAKGo=E2lvFZk$SJh6?Fa6>$%J^+ zGSt|O`CkwQVnY_`dgsL?dy

LVGLhw%ikw8+LC$4(+`u3-bJsJaKhJm*Oa%?&3(k`lKFP+uyV4_|$; zO~AK>G4en+O0neU6rEG&Ig(33?5|6w$R8S?m4-#KM10HC45Gh3MENQNwIy#TW@rq~ zjR9LnVek#VKFH;8rJbIHK;`fi2Xb9qJDq?sa=u19Cg|8#1VV=wX>WFd%C$u>VO*3Z z8Ur`I7)V$%K$tY#ArCGdZbr3i#UYgB7(}&N@Q`tD`LWE`z;77LM7#53FHt6$pbr+|lp;_KA{$DPTh&s2h#m z&w!3{QRLXnf_oUk_n}VDgBlL=IXeMQI|%NFyc&QkV~EHeG?_SuGu>!WU>V3*xN1;f zn8Aw;Pn!TXLM@n?&5w@eCKmsV+{{kDw!wjMk{$)3B6xU;9uU08h1)LE*CJYhqeTd)${0xfvD; z;V6El>zLifdp2rP6lRKGXLb`j9JdA@!K(4rw=a+rBXEZO7}=ab)0G064ZO^KCG^aF8Q*+SNJfoAj1cnAUgC;bo#hLq8E&2-cs1iLshzrFvF(- z>y)H>cker1*+lSPxsV|ym&Fu>i8$ z%H(>f(SeA;i5!;D*f_tN&0rMLE!)9!PoWI(;RdCE^yi1p$IcS zOu~+o4Q9zaNwGuK2}7`>r<%YkEoZpemGGJ>Qrol8{BeyeK1il&B(m_g*!i;tG-6Aj zI_e1)AgE;Txx#_IY3^RG#P`&RC!I14*l;&@hz#=6NRq?NlGz8>(is><>Y);hpS^L? zWM;95rW};xq2ljxtr;ZlsR&8)4{AQKU}%1eClEfINUJ*eQIARrp_-%%*F_l`{tZ`f zIGJWGAt%4+W6=JS;R%0M-yGK?sQ^NSt8(!*m-S;hY}c|m?pc4%6>B3+{Rq;reC_W= zb8i$HOKzGvlJGK#Ym}E!-mr65ek&JM70*M8H_*j5z(7^5)ABlrJdW_o_a~#;z%4JR z7H!r8n*MI-5d@xeV#Sb*_1L4>V1T4g{dz1v$Hmibvk~bf-YME=@vpeuZQgc&30flu za6R>CSKddiR|8gurVG8h>cIV+6?Mej(gE%C2EShvr+qO28gah{6*B%1oEp8y?i`1n z0<#7WfATmaktpTx;c5M&8H++!9p-mG44OU2ryYlxw?jAI4T1ZfWduC0q8`0ZB_@_B z6zCgSNC;9_U317hN8)l0wtFpvseCIROeOf#Om4zt?i=|s;D{6PsV5$d2ZU(8n83?k z6du1Cej-fi`A4qg=j@wjweyRoi;sWi2WU&*xa0yW>wY~^*iG@B8&69ZWe&#lv7{4{Wwn;BoLVUV$m&24+d%|vwz!mf2q2}US%?B*=3hz!I=rTVzV}5AH zylBGQufW`|d7zMzbU=UJLioM8%r@!JyXLaxZ;SfPD~6^k99jKdOlx>%wW|y{(#1nV#*M9w+brvREt~dPHs`fA zAGB<#Y;B2tSAV><^^E1|uGZ66EZc@!>jRA1ee2sgHn)bpYkO{a_IvBuzm|ozo5hWm z;+f6o^sPFcTb?tuI`4G){3@$X)ps3URu@7~Ux>Eq+IYHao7KPRr~ln&)tz^``=HfA zZ?)&R)y2ls7tdH->N{OR6XR+k^1zWm(k%H-)QGgkk7KmFfdD+!@ZqGa8t z+196T-EZ2~Z)<(ksqN}2>jAH}fdK2l(6+&7>!FQpL))ycrMF$%XFZ(PHhj?fdS%=7 zdvA+Gi?e<^mF+%&8lFc2>_B;AE zcTL;x+S=T6YQMM2=Dt_^{Q#Q>q3sW%Z60oHf4I%&QF{BMeKyj(cIiQz@yhn`<2H{Q z+aI5?dD7MX(krB?wlx$yWo_VQnJ7Ice z!q)bc)0tPRY+rkwc^z;@6uH^2(}MEuZS&*#q}r@^M+2-*Z$8r)J##_HV%p7esxtB2 zIPY?Y%Tl)7bw3xX=oeA5?OBXcz zKTMn%uSAdwd-MJtH!qrei(AJeZec2nVTy8-%!5pFxqN&p7P8SKEcDIzVX?x0OzJf` zseDnyKK=LCH|9@Fswb&_N^4Fod$S|2_=I93Rcrp7%IKT%pW+2pg6n3gy4YU*DsNhG zqvB1T`Ud;V$WtfY2tW5R6}R}2=b0P!*{lCP77}R|9+{Hj)Z8Upf46j#;#*VA+p`M$ z?I~unga(OH+Aa6*RsVdqr#jR#6jB?ih(gbR_XF(r@y5H^1+5HihH?i<>BgMRnBmz5 z<0pDP2@Yl_^51@VP3#%;0Fh1`J3e;i+w2=7Xpf%)FTBzntWV@?B@<1Ty!r_EH>Ad} zwLPsj)p|+2pQ#V~^+Q5%A43AD#n|_)>kV{YP`@*HTonJySMzVj%?qO0*@FtQ4!d%|>fCea&~NO<#~SJ(mr7;@g14|hVZR(fW5K*Rxmiz8o* zr$$#>j44+ha=jOg@5B~3a1EC}1&lw%B$M1?T-Cn1hBgN0F@*ya$;b}d1vCRPu;uwsuZ<@>XMH@Cv`K5|5owT^56W8=Ej;rtKTV!k$ zc=vNAgJ2MR!Fh_R>UjO@v_iyHRKM=q>IS7>yjT9wOYquVS8{~WL7dVy56V-NPVM(? zLsdOcTt?q<+L|DVnnD*>?mD>Zw0^L;s1=RfwS6qpiSPFq$NPHyKufSX>$ondzhhD8 zC>1E*7ldbcD$pg7NBd5RMOu?fgYI9@|4T>{qVfw)ul0`k!QO1rkL~onund6{+f_T| z-VO%Ka7cP3*dG^Thb45IeY{0C@J1h*UA#8Y_stvUWt|A5Jz+Q(eq zT^Q1$UAKY!KRlX!O{rMK7p=sq zVGw^UNSy$Ged$-Xt9aNzXdqPktLLWf`v2Ja^0*lO`2Y9J?7drUyB*uT-G^e+Dam%< zZ0Wvi2P)T6BEqzl4%bGdRBQ<$tQ;j_x>STMQNqVoD96Vq3OUkmzu({Q&)@z%kH^mJ z&dmGuex7w9SGVp;Tcm&zK6yNfaV7F$0x#Sp`G`u@*}_wA31-Gm(_*lYd!lL=V7h2FjLC2Dn~&QI3>2 zZ?!jN#KGOfnW|NFZfWTJ@ok=vN)nc!$JH5BfjXi3b1Z!xmuOT7r9(%x0X_n_8)y5~ z$E=#^1&-+DNKCo4Qjdk|^4*)_A*Gx0%_=b9YEhCK%@x{8J(*`vgoHLyTM!`Gj zS;BB=2ev+-k~$kAG{Rhf;oDN%@u zNvtgc9l%o4j3%BsHR#Gj!bl|g+6R6rs~bcDFpfzMLL`EZ6y7KGvr2O8;b8MjRTZLH zOiGK&hG7YAx4p_P`-W^|K(TXh1_=soPqPA>QlSmLbE#{*{+D1#=0#pT zS7uOvYAs};g))^l+-yG;XK_x83;#a2hK*T*kt_oM=^1ZJ4))TiPbt1kVq>N^ zfsd<@LV`BroV>$oLn$&ApA4%Aju6d_z`It3q-Kkp#YgJbJVq?A>_u@#A}*_pr=JZ7 z&K-RUv`Yp?5Mu-I#F@kOiKrILf^e83&{rkH0$^)nB7ky~X8jBY?-Q_2G>E{BKY+{n zCC;`vAmSg`ugw}eKW}U=I+eG{RUmr`$%bXcdkkg#90<%B7p~p|4$u%Ma|zzCv2}-n zb}b3FACe=s!cJV7SS^gesw1Dt8rTY~Hn1IYU{#F2GTvUqC)()vwAcD;3;0BX7@3@d zM2p>v+}^zfIbNa{uGxSk&8bvAQm$%GV@Tssmrttf!s82l4GPsiUo}v?bBSe;Z3_&O z3>j)18Nmvm*$|uz_zXjs4HFi9RngC7!Q}?m)r|xg;BE+JXPdA1$we1OY4GKMl{QA> z*zeG{UTDHwM9NipiDfU=)DT0+AAWAmX;$(~f|Wf-tdIyKTxivXgpTZ}*~TgH{At$d z5X%+2DKSBwI+Gb}zjNLw*#CE`5ZND+lAfcP-hWy|H(;}~N#{>103krEYA}py^*j@LnTrX2Y&<_$O8+K~HzXAJ z672;?Z~+Ox!v~`P$v&Lr8u$(?M@h=VW7oKfpKUsGa6Ao4h?sx|wKGd(MV%1_33$-Q zFdYT*I}@x-E`nx-B*unLf_gFcx7@gN(vcskBErsOjlp+X*_7}kkBbZuYwhexGF%5~ z@KP zEXH*ecFg<#VS!UK*gl9)n{tcTwdoOh7xECMY2C~b($)d3P8m&i>K-^DLUn##|WFX%@6 zy}II>B@?6w_5;mEpc)`H;SZCbRE8W*9$l10cFlft{YYXxfS8jQ*kccPZxkVm9-&$a zVD-E-h0Rz{L=3&qgCbj$S};f~7ofQ28YM)A!9{c%f)R!kzR#u>`Q{w-$UbDk0VmWT zAG}1w)Y>sh_L+Zo(fEdp5EGQcR+lPN^1;@Ln@SWOH=DD=HKCN_N!SDMX4ZTvBF&p= z04yydZlt46pF*55Y_{bwb>B@W66QVIkT*rJ_eEhNLQw~6A8b7ffopv46`?2|)FX77 z54sHSspR2aN{^3_%Q0+V^)O0>D4Y&~hz#_SZR}Xf4v-&Z z(1mO+kaOi=aC<)qlZ7E%#MJ^-A#Sv={19?>>5^5iC2tnNjOKT92iBwWo8AY302WsP zm7GWvsq2%dXvBe|PPvZ-|<)-oOue|Y$; zqe?F19rH#>n}f-{o)9eHCRm9NLalu&w9sr2O_&B5e6U92J>Vy=#~Y}k!BxbgE^UBc zh1~`+@K}rFy7;ebRLQ6fqD8!6aAeq-s@lCI0Us`tUwi<+(?xs*y2Al$lQbB;d?9Y1 z7y%;4Pk5_GTbrG2l3sy3I$Mb>o3638oqxOFZl`boVM>TaE`)c?q6%x(aWo%uB8Z`lrocr&QSt>MoDpsTX2w2PmWJUS;%v;HHe8eW_;tZJs>3Vp2=Uv3i zy%jlXwl%gB6p4nZj8YJkq)_=p>!lLC^Oy(5hT%;ZGpaq?K~7bu%9>!muzVcf2T^4g zyybSQD3XSWxB{tKS^HH;D$BDXwSfkia9MGiDH%1u!&BLvqL?yA5~>VN74P0hcVBBZ z;k6K;%V^o=^C`1~xaMY9y)Ki9__*3>b*TiVvi%7h_iP4t0O}Mwx;y3?(D{Ym`a*$~ z3`UyKb!Ub%z!nTuBZy`W`iOZad_v-;KZ3?9e3%r$Wj}Jv-uH485iXF{-~d^78zWfj zOHQs|5kipm;f%N_ymtRKJ-{csEa|aaDnj31ihrPmjxjwV*vmdC60aVF2wM-};O6h} zO+%oV$_Jm;iLtI%)+=w zVhU$JVR8bDu!CrrK^#VH>4M`hz-gL1H@5NS@2P_FNXp%JHEG`Eq3{PB<+qBiPNl~@1!CEjQ$8@^^ z&rD%Og5f>3^>;SGG6hH*cHhe-Esm$2xkNZ`UZa_(z7QtI$;d_~FawYbf?mXd=mslj zZN7XxRHm$iSVGH@v|aGH@h3iG?6?{7S!Fe)d>=puVzyEw(Nh@yzn(;sCzbrK@R zcG27vE+rH?jsi;*`FfU-{>W4=h;u>_Bd$I3RP+fhOyRIB2hP(l3q@{45+ApT$%#Ob zR-Ah`qKv4*M=m8$Vz$Df+GBsMERBLKzXrc9S*fIMZ28YA>Uj)t7UNa0 zssu5`{(|`s_))_Ve zg(^%@`8v^=D?bP2;|5+kQNnT5$As_s1Va>0+mJB)n`=}@F}{xr|6LXAK^k#H)*Kq7 zWys2GYsotSozYPw$IxtCeGtkvOM9$;$Rzp8(Yp-eMQhlh_Z!w!cAG}2rRczSzV{k0nF+m^5$9eH6K=>R z&#kFQ2x47zC@$NyY<&5=!{9ZEAV$$^vuC6;GHO^Y5`d9WF}o^%jov`=e(ZSBxD^gN^rq}Y7EIDz18KsUyFIp* zUM7vUF?!Anjrl7bEK7R0aXY3?Vxg~R76p%(BA4H9uFkJE=z2V9zBX~cKre6SSeec7 zG2FRk0ao3K-s$Gr)7jNSSmV|Oh{=CJ7F{#Es5ugBVV7bfjgNH8yw zS(UkcGs{a=wg>aR>`h%`>wQ@(VKir1#HN40SH=NA3M9 zgs+>sg9Mn}?KOlXkiVt0`dY?@3t@_TOg2wk&(UY3`##INZleDqGziD0jSWOwaus!( ziV_#(f4RCL($U~&{ZAms|F3i3<{c+Xx(;4!wgH?-#sFHMUyZe++@_=<7Wmj;etyTH z{)EE_{m@y*!w)Z3$2bx)XP0aKJdB)u{mJe~se-}Ari1f4%rTy;CKqwhC~*E)B{3?x|P4{^4(pR)@e1DE;UKnb+eRoeNlAl)8kk2mNsT?{zwq+@W$g!7V;(eB zJ-GGq!CmdXj+nmgs=fy=`yOjQd=m3;sOsU1mk(cSKN^pDG*R{FGU&W`_-%awO;k>=?oag4wzOCEO<4rNau-7>=TFTCre*F zS*|na9y{n=J?Q^xaHY=ERk2UQtDi={db(QYSz_$7b=A+-zk0S=XDBUpXnXb0u2(~Q zb>v|p!}-<2`(F(wI5CG1Sd9TPpqjPg}U>;Bc-{6B^OwY|x zSG>dpjZuOI=jLXp!S6rK{Z$ESQTBhU9Pom;>OOAOpn7n({5V|Ti#LD%-hcCl5%5GK zu!9-=f*kM_3I0F}e9G|eUnZc@CngOkKw?4y>W5P4T(ZXSkRU_ZN%@J39rTVqh z-TbK)JaFv#WY?o_3z8nFdUTw*_u=EOPwPuZp8oSIul}uJaHrSCR(rva!@5C(;6CSV zJ%;|>n@_)v+S#EMaBa)}{%vK$Rh^%9o*s6O>*Z}8@J#8J^#7zr4N@cCC`7)}@@TP) zx_-Uq6EkEwI_n`L@{NjLYiij$^~mSD&;Dy1)3N>d1k3k)C>%;-mttLXnPE5d30z7 z$t;2!89rYSkEg%C&)j(dzx{ymsKY!Q7wcvmmY^VzDjH&oA&PjfSdyz7Sk z4f$7Q4t37ncrg2Idb;<=U!CYN>Y5MqxJe}PUxlcTK54hs?dtVi+h7#?z$jQi&FtvWEVrl5EA!4Ik~7|o?a zW7!j<$d*ktleU5ehxDsX>n@K^eBLMSO1u0{Bcjr2#R+z7wIc7Lwx?vzt*`l2clErA zXWo7P`sv^FqYv)1Jq_L293Yh1rG50<|1L7)epb<)<6UpoXIzTUy0UQh>#pbT)Asir zzdW3M<@t%aF3pr7y*1N;MhHXo(M~nC&CI)G>1gi4M7E+B>W;8r+mu&z~Z%& zauuflpxuYr?nT7tRyP1bL-ReJ96+j6rBP|ecMUc zi#FRUZZ}wTQa65zCq(c7g6sY#5jOm2l)3gKOV*ahTrWI#G_>XnWKQ9!RIg93kIhcU zvjUn!T%Xu*Y18#fcxD%s(*b1vk9>2ZnLGv5V9-~fKQxiwH#>v%J!bwkL<9FH~PYxQ{ z{<19QjK^v~vShE_?C8W-1EdXH3^LVj%uOZm3X+caeYI0IVmV_7mChA$w-S?N;1G^> zytIsC@@uTt+WvgKPhw#bJDnuqqNY{Ji?dTzKX{(yIm$UF(z|llmC!Ie`_g;A4lCPd z%6k6SWJBY#k@~X4n#mx6gDxGW0tvm1?1J*2RGl2V&ZNk(UN3#+l5*(Kl@Ver)Np_J z?Twgs4vcb=r5Es##>yZvCuzt$=)~4zgCy7|zKyBj_#^cCp%K6JcmCWfy1WGvi1P4G z+eS9+V|}m_LhLvF{_uEex{XV}FGH4mO!YZ2LVDCsCCrS}7F( zZl|Vq*vUTawDnhy6{J>d>@x5S0E#ZsT+29fy-rkH(NfkQ+56%;nr~c8>j$dOJ zZf|7lOC{~~(?XW+;G#PZZgid=boRbzKd9X?JJa;$!~{^W<6xpA=30DL{qcqKJ0?3d z&-T>saZvv!U6xGzoQk753W#n0TD;iiN(>dyVPmuQ?>A0=UV8V$kNnLOtNng9B9I44!0~LYU&J+j$)h7q z&Rj0!;35Ehs=GEYeuQZKb8!L#&B;p({XT}y7>1MVVJ5b)zN9KSw5pOpP;UXAZe@C(R_^NpWW z-0ox|^nl$(;y069k1Can!VC0Q@8N}@I!pKj)}-q|fzOqWi&F>Qu9p?*j$4gA+~A5Qyj{(bF?a<>Zaa~j5M>#udM3)yTo+`k8p)`*L@vz-myHzoZaefQ(cp)tUCP=6#XsAWl@jQ8Zv`srGo>&t$_r;wc9dVIW^fAAHt^^utKPJ zjaGrLO2~hN%%?0%C^kB}R-m9LE`LX7De)vN+hN=<^{q{<+>Hok`93 zO?FM2%Egf~>J)M8Ecz}w1E3_YWf-%OTc9~JN?0wobdBVo2)mtN@7P9`D|d|t#TxdL z7&%h?C9^!6j@CmO4QRIMu#BZX%*8p2k>&E+uS;YBk@>Nl+viymVZ%5x{e4P4SX#MSt*;ck=^uF*gL~ARcXRwr_JuH^3>2+KfWn4=aVBP>c=NAnXh3 z&Bd1X34cK-Rpi&BPI6 z3oz%<0lfu@d8n;pD9m)!2 z3RhWwNqw%(KRgFKi;e%bk4p^Zv?&#|k-U=I&)ms4L~7u|+vY1#-6QLTTfTca5r^H4 zX&l(dag4qi!zrW=5HwUUWMNM)F-DN%U_0tWaLgH|^Vloz2GtFZJ21yyUC%rQcD-|t z4Xa8O9y@rPugY^xc9PJdvfSZuxiov>mh}+@08(ectu%3gq9Y(aF6gGJh!9I{K4B+U zXcooCg%YxJ3eFGncK`p*FnOd{@`|r9HAMX7C_@R`u}lSMu7QS@6gj<+4#2 zKn@`qFT;)6FGurNnJY3#Lz_{U%xj-lNKXK&N#7gQ>8`QNQ@8NjZkYs4a>0fxhA&J# z73q#MqTng=$Gnf^(hhfrHVQU5Q7H{=y+lf;wK{9WE;E5aIzo;Z86@q4Ycxv$^uGd4irMfRa^)9 znC?4Bhe+2XCcv(O#IGWXmkjBZA@#*7>!c7vg2?)DEZM5t`tXo72p8ZqMN1~GaL=4_ zx)JUT2Wi>zHeaswSh*@&L%O-}ZR`R7DkV6FGay)`qb7qO03`_MJ9)YghA2xBP6Q?HILu9B)-etFMoT!}{vdLpOg)y3 z&}9TFfDA+=m<8006;b%hakY~i10(j$YnuLDmPMz4Qa0fE_{}z04zocQEjlBtyxV0 zWn&wM&4KjjA|?*{tCxcB!KUoUh-uvXpzKK9c5Ma`=zms8C+y3w9MNYs^=Hz zf79!YVDlNcLRCbbXPhC{)LTq*lR;s0G7*AXY7WBK!GGuN*p5?(T|8opLig1QqplcU zofWx|HaZy?lO4?pt^im1Qi6nfa0)*%MX8n$Pj7*I(|~I?5DB2Ocv^-I74KAd;Y)C4um zC+Hp!fCB5o8Yw^?ADWnKqI;TGR1BO%DOdZ^S~s|S+W}Sbu62dSLU?6eL&snlURw}C z7ZL3^NB5XPIecb3x`ZSIhvuKh61lWkF_S65e^ddwGRiR#(?SC8S&Yy59~Gd`Ru2A^{C!U+uH#mcMJC>Fp`}fg$-!oSJH7Sv4b%nrv|M>^9Kms_ za!nGu^j%0MJIR{2E{M+*-jfe2)FO_z8hfvf1lgrdXxRaVZIIJ!^a$UPBnC=1?`|7ji$ufmtcBW`yktdEMhAYCL6*AnRdM0h2 z4=M1XmeQBU^J$8xpQ02w#m2+(Yv9T)qtyKt%EK87``1OUm#w4G@va=ySFAb!K}{IN zh)Yegg$uc9wTnpxD9u}fV|oxx`E2hlNJ)e2EmQ6}%1X_398LogvC=Ec1MGI9?JPxJOIe0;Wt)4`YEwxnO(u8zslL^s#3Y-lsJl7_tARu{CvaW=- zL_i+{x~ej{F<#e#3$Am5Y6ozur$D@8%+GFklN5>;Ep%_ETk)VhQb09;m$H>bY!W{+ z6o>-eWt3eG58Rx?Ql!&1Dqm!JXsNABEif`%>Vf*rmx5RxE*2$GrRP~<#FIllh7$LP z;c7lHk)z<&3BBhKJZ0O7f`&T=L{A=m8D~XKBU~aPXN%w+93>|ih1){$NQb-xgd7px z7>llXqrArlG)bW_0TMWcmd7Z_)-Fqnbb2EMC&2RQ zqxy?>F$p~UB31torm;h#R>*bodNGd9jv?}30}QuJ3RN;GM7hI*w8}aMcDix@z=D099v5MgQ(YG0!G?d3 zKW=_Ujg%8$y6Li<& z7|)pCE@YPM1|5FF#C6>vOhKDbPa}p&Z_1s2#*J;N7zJBY)n(MgFmj1li_9Zs@hxd$ zvMJA}z*?J~$C%y{X<%@=x-DJPV)@cG%^=~j9h%f`hz}=q8z-(@7ntj5vm;MczA9dy zM^k+SI))rYqBWHO5NmOq)~IscU}C7DjoFK{ISs~m#{Ht~&<*s>grn_D9M$Tc?S)(e zyF|w;jC@-IH6jMF=tu$wx+uy#RZGfeLwnn8t8#4S2K}Oy1B{Psau7m+oJ|Y;dG`lz zqc3mR+|nS-_EPax@0O}L2Cp+vz=j5(UhN2_{@B6Y5BB9}Z8wmvRY&M(L&WO9R!M7#EnYtod@ zn94$c)xtcLBhO|Ae_K1t)1jBXT~qQ^*+l4EQ93Xj@-XW||C%pdql>w>g27@L{HTGR zUZ>yE2{KTq$MEE^dz-siuwEY*;;kmA@~91#Xh6^y}l4tM!3f(u<6UEj#$2)f1}RiBQ_i}pP1ZD zub$lMcxm~t|F^UMN}}_*-K@JoYz=xl;3e;p?{SsYkGh+t*Ep;Jc+Y0m)R*C>F9*o~ zcJYu@?Tf<~XLjNnm)-4;(-BcbIV%6m1$wz74pKxNUHyf!TiOc4!Y$B2K(G>6hS-jqC;G0MAFP+VKlN*!@%&dy8E~S0 z-@Y6xB>jC?{QI&^+D15_A=Q4I{d~jI6LEaV{?%)Z&qL&5WI4dO3ZNuc=)9Yoa)9i{ z3d8(_kGM@fE&qJHbK)a*=;PhEy9c08`?Hrty1FenVkk3(@&InRAThY)L$HfFqYXqI z$GZt&8}TypV8fT%pI;b$UcdPBySUGjE}z#oeoidbCeBHf0zZ#F`aH4lKjDkdW4a4b zw=*_U#EGlu`%Kf+{a@e3>a{$T<}#SiC#*yvSwr-Rg%j2Bvj1GZ#PusD7Jt#$TN4xi z#YEX$Yd&J@Z?e33V!xz@xSU$QV#@QXKWF_GdqtR&$05gx;Q}5}K{V}jciQ>&w9EW7 zS8v8``HaVEq7%SnNDy<;rHK1iZ_2ICZ*hyx51Vua z|MyC?fS&Q;Tk^^8sdvAp?7hFw<@>e)bi?u=>8pQa+`VIl{IK2hBkT2#J&%9vy!#`1 zerEd5k9~V*<4%5%PpAKb%sa~wN=qO|=1)N;&{;VkFYjuTH?}duX60RN_=N8>b93^3 zwvT`Qs)kL->)Pi2&W!*0i;JIp@oUaF{4Fc|zIwofTEe7J_>g+y(2ME6^3pc7z@OtY zf92S_cjlW1<8wFP{E;K=P0wb_n}5iQ-Ap2Sowf~4&&+i_|9!Um2RZP&yv(hl>-(?& zsVti~H~7;bc}R}Qhhz>L1wIC))owTrVcr5pU$cL zxUFJDBeB;Z~~qmLNC+;3_A_eS$~o4{A=N}AU0?%7^; z&pl!yBC91!-0^Apn?vrq(xw+3BOgutTexv8Do!I$AAeQ|YMq$>HvWBD*X3St^2J`+ z``6#5+*0mVHr%`L?Nx_M}=I?WXr~YfaJQ=)g+RmqU zdFjN3#^L(15zpM)Ue(h@MgNwUHjv}5rR=+F6MJDx@vVpdeh=Dl-aF&`g`Q!LfbRZ* ziLTyfn>XJNOP&#SJRcpI{P*|2lmERx)-hr!d|Ej+|MJgw=OaV^7pRvb^U(ixwYdu6 z|LtlU73Nb_*3#+9**T_3Ti?_qO<*WsyXyWwWPX(zO+$uO+hrDn=x4WK9WMu@?K3lUdSU;S@ao4!(c_H)mHA_^gEalr4Z z7o%$g`7PBKY&?scNIvzVuk3aRCX+~aG@B%&9mGgjqRDPUNcu4id@LguU7kK+u)-XG zl?%NLH3htc0Fqgt0d1Ca%NG!#z<*@`Rp zf)hJZgX$vl5#y3tH}jd?Z015Uj(%eJ!|ksRIcJ=%4pZRB%fy0N5Uf5{)6ExH-oIYA z!)92__0bPo!je$)AHw=qRE&M1k*;0z0(1*l;s;B+d zJX0K8;zlK9q4&InHRoTaN5qqkG^y`du&MctaQ)}ziL(8lTRz;lWeS}g&=@28q|+yl z1~AUAC-bl+3;kcFdVazTe`;|by^{mYFkXILOq%Hb=9+4Y9dY(NV z8J|8LwvD^kI{BA@uz6u2N?|qa0gy_`INr1G=nG4R_ z<$s!avSda6d7PzyClkLNeeuNY)M&g#gl1yl^swfp_4ZiE!a$U8)dHuPv&EP-c}del zAQ6o_-4AWax;p=2`>nmi&)e4rN56eNKn{?=aPpZ7yE|61w#o#1AMW?JNWKS3av#o( zq(%^*@{0DdIJu;r4+>#VcuoI|d)xT)JjevT{fQ#x@=M=fot`h~!*b$EGoP#f0%726 z``c&z-C2Q~HbA!&?LOwdRyaboQyFc0cH_e(J2=Z(dUfi}=FCv}XnC@gw`qy2U3FQ$ z%Chi5CB^1B;p@wL|Mm~X%!eIX3~jfU9bN9c-gBt`czq8iJE`=)Y~8UkID{)UHD9EE zGnfR|b!xV5^WVwN8sVQg3KURo6l1(lcp}%RPb9bJ(( zkT}BWd2vp|#75di{Q!f91>K#SvdJs#B+!lxrI$Nc7G5wHr3Uay33UEGzQ=)gWzQHP z&aTO?rbnYrpoIs5>IuX>@$%qba=LPPWcdKQ1`<~nong@u(P}Jws8hIq*YC<_g zbs@KUk2FT;(t_aQc!%!_R>V6am7HQT?_ig}!Lj@x zj+Tcs1wB)DXc6~*ARojvqWU)d$Rn_N^UH1?TRV0*?CMoBR zAm5CLRju!oZ7BEWSj?4=vxhbmol`As^nfq4xf@>(D>u~;D|p6C9=h?(%3)`kO^m*; zQCAtm(ChG-5nCUy0?n?PnL0vg<7$OBU5&qU&0F)9$>NPgCl7P^yPU1egaPV8wswG1 z%t1|z{cBO~##Ma$F0&YdO#9}&GkiN9{MqMzMV=$HFMeb^+$96-9AKQ>e!w#6+d9r+ z{({hkAg&f6#Ww@)1|bni1(Oq}e$J6Dw^t-5IL$uuIfq*yyrQz~a`4^ac@;JkTrcAn zzI$+jjRj_fd{RH)Qrg~$#}LqiNb@v}dc=~BhruPX<0JkAp2BL2rDK~BM*>1exIF7Za68a-G4zLnR% zehpi53zXH2HJ#h5HvTGxKs;j3u8{~Qp* z-gNisW3#QT3=~!!w%Y8euB>|M{E1h;;06WG`s)4>I~@0;<$;J*lWnQ^wlKrkqOI2q za!ZW`e^h-IqWkm*p+$NmNdB%Q>AqQtESu*cyP7H%7VXPKNOB@~p@8Gx9qt~@mP^}t zI0_e4aCwg!{pynmUpYX+SnOYhQAxE~d=PD3Frvtw`s`x=@TlkXvU4gRhRPouJe}5Y zHMsOC$wcu(>-kQF<1%uLPRW)xWf$W4sG1{CB0Hj^1`ny8G2`Y!_h7%ylgXZU9ar!Enb^zVTbj8hWt2U;)5iXiU76_m;84YZcQc>QkJ;Q4 zUOU+$Iq3Ek>|?TP(NDWy4p3 z0!L@Fx_7uW)aWf(wQf&$t?AdZiBk!Sl{t_a7OYNWC`iHFmZ(Vv>&jEx@r-S%o`g*| zC_5AOFr@0#(0~SeuT6Y|+jX&bp{N(zQ)tIHEbpZs$`bXh_g0sHdwDT9KB2k^mnN2H z3qedV__Qs0tpr)hLtZ!9ny}$Y2}0)r`*zrpjaLTHE-uxWLtH2zT9pG!wn82oY!fML zD7U?^h2%6p1tm&xPp<2zaiC~1$bZ6kBcju1Luv_0THE0734EKR*4)kSsc^q@P7<#w`zg!Ge*%~FI zNW>Jl;~gz;6j~?BHxLkh8RIQ^$O|Z!AXcCVh(bwx0U!T#(08@TI*qQ(YFo%iv~GR) zf|w5ELJ-IHv?1!M0Z&1HJ)NI3z*;_hP}NjLgkOfGWNslJ*}?Ihf~?hvR`D6i0xv}| z^7a@|lmR24Wr--k%w}sRlq5+cRpg&FWr}2@BA0NGS|SiV+U=eaB&ARWx!o0L8xmTC5VCcyrH}&2QlP>Bq{D90Rghg z4KmuIDL7DscNqmyGR?th!{lDl?ept4)~I2AwM%UBYK$P0{ZRK**jCf!OcBC_5T?|Y zD1*E2!%e3z#)_>&M=wU=F6p~1fPKBl63PJt{<|hWe;67XuyQsOs>8bv*7&)&B9>CU z17DUyWz}i|w@pzDG6avioz;3G+0I-WF3yRGAf&j$8Hteg0>Gxjb~ZpHCPtzp%az#O3kFz(Z(tXPza{QmLMxWB7WXC!of;U6ry5s3w7K~Mxe|M1ktY#AJZUB zAz}No;%cGRY;cIpa`?J>-BaeqdBMida`Ic8zC|j35F%b^+T+=kkt#?}Dfs*j9@yfS zirp%oOwBIN1g<;?lDTXM@~o35p`M6oFXN zrkWr=-m^y4sK>+roR}ZGCM`y!>r2vHuN$5Zk(oomqD^sP)0IZ6*)?Fn18|y`l4Z=I zfGq_1U?IA*EF1rO=ngNkLq1PDh{R>7GNME)Y-9_Vvb{7hWyofe10QlCgqEDab5N#M z2~O8NTreM=y?(@(A;Uw?bc2B78PiVoN4(~q&}6ptOlnf)6<7qqjLQYC_{Xar?+5R z`uQ6DBb2~DXVM`jzwVZ@XF=0Rtt1Kj@QeDu7AUkW$be9~aA`AH3LGSGirl1%T_K?O zMQjMw1}dP`Nv5ofmC^Vu(-6r}0#xZaBkwO6^6~sp=Gas-(`hgD8YmLJ@M> zyG^!1NJ0`qcF+1=&vRYB>vvtxAJ6?P-1fSyb3 z2#VoUlox_WBGN{RmfGhzla4)HtO7m~D5{12k;@r)YLKNnFMCgPS`Gb*w1NF>KIM{-8 z{x@tr;;~}ZQaZGE-GbEYM2G%jrcp1Gi6U#V1?J>uxf??${XLUo(@cLnw*RbT$l*Z8 zBHG4a@y3L`tgTPkl-e6$vlOaU8FN{b1Ag0wqG8=okfAj&XUTaGvR_tB(;T&_%(c;K z747h@BnXx94JWbWg=(j*>s%K1NuC`!XC$TDX`x)1%`_P_kp8NAN>PM#lkQ3(MNKNB znr~kI63g53dNP?y(nEHXmz0`@S&-_izpcMLWg6fN!%(!W~fQ~wYGEe_;gin@K!tJ z)ZW#1_ujh*O_h?(cyQeqxCoJEV0PulEp3U>4i7kd5x#UDBe8cza?T1c)TMWT>_>M!@{@3-zanZnO~H3lcL*s|gy`@YnA04k1?X0aN) zx{>Q)RL>D4Pz8eQd@=zvR}vY-qT9--Yh|#uq|5}g`3Hg3u=w`GqLEg=&bpK_-H*kP zg+cs96Q?RMlOyCoGc*E!_UgBC$V2ThgNHc0S#&pfiUH=%&=Qhkwz1IEj-{Xb2DaP@ z`iE)lK|pyjch?Cpl`kHA2mP+3A_4H~%gc=ML#B;+mD~Sh;?S}7)>j>y7}EDUYG2di z;o8|D5r~wk>Zakyua!tlAM`(|wQlkh4Rke;q?t!OKe^S$ZwlD0VVt>x7)ebX?tx1l z*Jx<93Eq*LO#V=^GNLz!zGJMGPHU zQVq5ZRG9kYKBD2TB2+eE8wOGm>=Z$yKnm?$@1c+q#IScrejk%F?N~CF5WEEN94S}R z4Iq*$i$F)_caZKIPvHs#MeiH8@kkWDc8>Bu@)S=lb3IRmD=qw1*vd2uu_+Y41u;2d zw1aMHTKZ?8tGyz*IL2}tqLIOr3Z0m>_WgndMRX>epET}?zP>%}?kd4gM-+lf!uvv{ z;MxHZZ9-41P%NuMcFBW3Oll%}IuQ?7uGSU@X|vDh4e|Ke=psE@uz1`;&|%-O)W^y` zp@0k{L3^mG$V^uUe458}3-tRcg-iKkzeV~9K{pL4su<&Zt=+=1uV2$<@(#rqSqrds znw2P}hUz$*Ju@X4WKLk$iwf&)B?_9?R2__ATO#Hi*iurWVCZla zJPO4>rM;L+5o0ucm2-4wk)9Yo;Jm8KhGE;#c(BsuM@b0(wz2K-S;)KZc+qzxdxbq@ zoB|+S$I#w0pNFD>w|Q{$f_f8T2TsuotO+TkCus|5MfP|hEf|0Afq9m;7Gk9YES>7w zmF-2HWS8}69odd$Jc_;~e}U&0XO8f?ty{PKPFo_bpr5X46wZJ-lKM_Bj|HwV)wiZk z0}QnB%t5!O#}hnA#$q96TI1dnS&b|x!zhksC`8NUYKx#4{(G-Xy4Y4uvsY=0-o!{6 zq5bw^5wu9(`QuHJozJ&OZ~LlJ;tFg|$nS zi-PvRh~{neWkI&R+)T_Xzihbi)L*JI={N{@c{xWkvDa|68rdts+wvFgMIrJnw>6&o zX(d{yx8UW+GfF2f=m1YU3!huU6ZQb(o-^pteI}Js&%^fixWc?O`p3e_kG$+3IINei zjmVbo(!E|9wY3r|U%Zg{s^U&?HyMQ<4|NvH*Br&7?kq48CYu~f`go~5cTHPc_m>SX zE?+lD=h4L6J2}lWTx$!Dub?D;Y@N|?`_)Nv#`eHg19zC}+;K@u_RW1Fy{Vb|v$DR! zLFZvgw^cy;$Ap!Quk_FPE$zSDzq|~dht6NPWZlbhzyIIwsc5ZRPMq`WY`r&`KehRW1z68@JeWF?&RjA8ss zEFiF7`=-cUyn&JZr~`CEQtTD_XGmZ&Am?QI%@Ijo`6kG1#RIb2IyS!)CXhK_ZF=__ zZ5IKpT1T0H0|Kuw|0iP^G}!GbDPIlo=M7y z%+1dp$Z{facihoMbyu=c#$d~zMvJnd%>cu$rRCT^vD;D%*SGhG07Tai(-k^Bn;o|V zxn_QX%vso&k!{>cf4L$<8TXHmnj&MO3Xx7D ziQ-1m;j2rD%iQi- zhW}I-y%r*SyZ^~6Kt)W6Hz-B&tlw2i6k#dOf$OI5-{xf z!ezdFgX^rp(t+eFdqjg{PgExzzvaIjFiv#uB~Kz_56inBMw{?3b;81F2QANKv-f!3 zzuWP(?iF*Vv|yE-L{vyi`tFGQkNP4kVZ{y4>Qu*ulz!itYxE*f?jqR(tDh@25H60_ z-!`-!y7>6ynuSZx^Z97@T%|TG5?i01(I8JsJWGJBE@9uqBLNlr$9=s zAeRkhPILb9w1LnGs4kA)$(nQm(IZ35r}Y-@$4h2gIm~YCdA%b$#7t`yt9AJj!uJgF zcboEp0l7**|6i%5463QU&eKNJP@~ipPwH>8GCmor#0$-QdOK?^kNgq2akg=bext6( zZX>b!mc#7QOP}r={bs31`=<`KiWYs5U-@aOqkM7s$(?swmSK4`NL6~iq?YVbMyhMsA3VT{?4bqE{WT}r79fgzG&%S7JKmSB6h_}Q zNeO3B^xf}OM1GpqcP`#_w*S)-!2v{i|x~$ zGcU%?rAZ1sd54?u-#!cP?{lb?;*?24=T!$X`h!JI6V=rDr&sUqMl$DAJkPvx+F^Y@ z%hxa?Vz_^2^uX_{#S`MW(pf0Y_VdCU%T2&f@2>^1ci5yHoa~dyFn)FJ*eZ|6tMiST zMPtXGFF%ss98|sUUf9@|27|i}?;B>rp#6Gd<-ymU*H33^&O-Lt_0p(wJvT2$O}~U< z)I?|9IrrQE0cxX8@%nrBiHUFZx28a>ULk#s+x)TQxsM}EMSAIc`PJ;OS%sfBjJD>q zAYzoUT#KeV>h+yGIp(NMlpCH@FDa59)}B4T=0MoRew|-!=k-tHmN}r%&-2GH^WVN$ z-(pNRD}z3#_3uXk^Ty52Y|GNGnZ&J-_B|C@-=Ft)en?Hz7;~j^vfH(4ZM9h*Z7BY_ ze%2h=U5yz`;AAV_p_9e)-}b+mdehv$i}@#7EEss9>x2Qskq>=;^U<=7g*5+ODT17PqH5Fg1lhIF*u z4hfCv{P+IJv8g{|^Kir;6A>6wEVmFV z+{J}~Vr7iDC|z8fBi>RVE~yZg)``oS#FOQ1;))*e)_(D}Ve$3}v5FbF!y>ZMJ#uGY zWK~S$uJp*=Ig!-`ku?>Od+H+hHbvI9Mb`C1?(2{Ib2xJUM5LM-Rc{e>z&)xVFzR4T z)S>jK!#Pn$3Zfb-qK?)@9czj@-WJu=6Lq5hmK9TUGA|;jVb`gN8x^w7=A)gb?W0dm z(BPQp9HdofUy7EAS_*Dkr(ZbRCfd64+Qov~=f+AXJFm44-(H&2*;e)Eg(PN2Pq?r9 zZAqIKlr8@^B_=0Nbj3U5InhmYhU{1zJ9W%5Z-uKCFvUJKA(-hn@NTW%BIiE4-FPA6 zNX6be+W3G_+q#Zar&q4F#r}a`u-M6MiDy|4Vh>%rb4};&ngcp7)9*etoO!$Z&U%}> z)s1@w>SF&oYDgE&>`$M0xxRM3ss6eLmp@L#zB*X#f5y<88RiM>Ui zO?f1-`2r%A+()EhculS8HX9u>gL#6FFO0L7U=%KnH+t#N;j*?pwB@FN zuEFdvK$HzXrtA%?tp+970fyD6z2_~gwuXCZ+WPv-?e0HYiRW5zzEoCu=v3M40V>R$ z!;U>`bE0w2F}b-y}%H$z=Y0aIdGHis}s{3lnVwmI|Uu6hY=R-EqL} z#Pp?5%R2-e+!MT&SS{6Tw=6NBZy#o2Q>B zMAiaoFSdnuEHP})dGpj|%a0@)(c-T&by5oBBabEio+Yux0;M3NWN**L6j$CXUMq5Ub=2j*Dzaxt1Si4Ya~Ym3~RcgtUI>)8mR8ssb$ zc5tPa=c?G}y!T_( z-Y-5UeNkX9*a554=)F91TGHn!`x$*0i)E|Yx(`S&BN=ALH*w$aV8o)tWc=Axd3A9% zW?o{VTO;S-=B{D0r(UWMi{y{}k6Asdt0&%bt4XFB(vuZ_HZxuv38u*~8|Rb7t#Tr4 zW5M(IXVy&Q#vTq1m;wgElUtTPyubj9T@Lllv3C0B;cmha#F9VvRQRcZPb0!qLyT+^ zX&gL#F#p*m$*nGXwR-!$)Bf5E7NdF33B_Ez6q`&)*-O<*$l0)1)?ks1+4K3~0uqfS zcjaT8ES$ zRiSMUJmLDl-Se2~LKB7tavXW~YIMgfuJUv%jIu8P4Q6r!(&=p+i%HUz0h#d5o?GlVoMx@u^2H7TuCJ{tu@WL;Ma=}L`rAwS1nh|tXi zaFS9q@RVLGUIo8tG?-)v;7}RlCV(8J+ejtAjRjeiKyD>`=#5@L7jPXcr1U9Fyp^du zWJV3(Hv*#l&Cnomjdrj=?k=EIh@)}e+2;`Zi;15T#xkf?lGc{rXqB&^n&+-u${#uGT0E!zw+XMr#Z?fp? zG3ye!PnZ7Uch9YRA;(@IrXfVL)>xiGjJuc!DgPp=D;QU@On3vL&mKn zOCH5b0O+lS%ecc-kP`EY$KKZ2Q;Oj$t9WMc_ zi`8zR4*_hJZVGHNqOjL)qe)>m6>QlHp%P#sRm|Un`SiiMQu$5~h%F`Xgw$y~^0aZe z86Sehh0Ge#`g+WvtH>dRgx=pfrT5}jh^$8={Vv7av1czwUtD(G4dXO@4DMJG|K0vs zQ8s4DXUuHHc#U^rzAQ-{w?YO9!k#JIt9i!X>OoUbuqI-HqXAE$b)B;AeewVlE|p?L zVMPa1G8(bgL1>16y_`);*sQQtgTStlqiTrCR}y|k_6UiVVrUQAio^<6nbo@;^3W8s zPmy}apgavQ`~busDL#tIr%A~lUoj@l#7e`f@HBJz!1yY{D4D+l4&sBM>zJno7*uYj z=*@>^x|!J^4aHW9=QgB33>C&|1U4#F5N|Ya@JSKZ&_+Nb_`mTi;Ft|OxP?}OSfN_( zBSl&_hDk$VYIYH+29VAoBpC>(*<;s;EvbR1DtR;!X29fc z{!$Qsjdhb>yQL6GLrq12tqI)1#Z2aHQ}be>K{=yK(c4YD$k)54A0(R*6H>sgv7zS> zYZCdYYnP8bTFTin4_Gd3V&?S#dQR?B?^z4$*Y9*}(um(YBKIS*>X-EUc*jzGe zt!ci(LJI3M!1R0s>May&Auly%IsRw3xX@X=E#~QYALlbMZ}P;HaXLeJbOgWz~Ol# z?-;D&dD>u3pB(9fAueTspva?!IAdq{mmpy%(9g%F43bGKa%dkseQ?V2X{69`3mrCv0>zGE) zhGK0fC?hRl=JW|CF?6@iThxU9;~GGd60!{qTONyl0GR*ihs>syQUZ1x`C zn}MCb5oJJe))Zqb`Ox91FF(5aQMy8y@SS@tXjlhzBh+cO81VU$_ft4PR6 zJ|=<*1D9c9;M{PW?#u_*NI|J%Z)-LSvcUd1nlkrI;u>zwttE0O?==!f zZ(IPFWDAMXH;Tw8a+!HT)R=$`C&48&O$YRq$G>SbZ27VfB)7&#Gwk>{2AOg-FhaH9 zy{9v!D}`=)&MVuqyMQr@1j%|A8lVNIi>RhqSSV?kl&^$?!nFIQ1sdTUG)jql!DG=WV^sV15Tq8;hJQlt;_d4(j(tM=_#3C9U|Ff@y& z35ko%AEnc?B!xJY-5>7yxKN-`kRfN)ZK~D8J~^9}qrjO4-Vz)vG+b9$SloKr7A`c? z2&jm6FP^j|V-_H%@_C)~S@lbIrA2(t>Hs?8w53fk`+gcEwwP+d;Y>pbo{_U|joDS3 zib+s7JTs3^qL$g9q0oWHyRUR&DQp!2Yw(?<6r4uLU^q%1h86&_wWNdk5*Vs$a0Zhn zLYhMr2!4ubiVDlP8ije*8@?_E%$ZuuFB|d;pN=BNFBOnR^L z@dKLdFKF;f&a&%vH9`OrcM@7X;-JMi#AS`n12f`^gakG@YW@SwAvyu|z25o&Y{nr< zFG}n7z_fRzz}f=18LHa(o%M)F4GODLL<5sQ!DUDTK{b1CK{55*=OoV6@xR^cvG9mOBVjN@5bVlTg+ z8>oYEt#HcHrG%}m&+5B<@vc9|caXxr&{sFEy3(Zl43dWd$5C?+=|oA!5;>@os#&aP zXtNZxq1>m&6l5ZKm~k4jlazUxM{RsnRmQ|&auW_tIxEPu5p3EBYjf^tn5Ky*Ib(nn zD28=HcR*oEoT689&78K9{-W)Zoo7DDiG>#aVWp)rxrOwsLuIS?@k+QQsGLVA#PT6{ zlWYq(HZob{&sQU#3jvqODnzOP6ez)UiE&qFXCAbC++eJq(-dA)0?c^-y#A|ILDN>* zJVgO5MZ&8MN0UxUGaw#HA^|oD7L$lfp(CvgtO|1O_~kpO-ic3x%K12zgCiuq?N)?` z5G_cEEXbtk^@%{}yTTeG0UER^9I2rzsbZW>;R&zl^(y1~9@NgrfG7b{29jk16~21I zn>Sw0Oj-b2$1hrB&zG|i7+$9mlJ63EPi8oWB$e0BRAIA@@<>(^T(EKkIM8rIbdVc` z2Vk?<*{-ABDAC5baX{EKuL_GBS_E= zd{F@(3TR%l%84h0>&a<5YypKdUVI^x|9poT&Y)}BcQ0Z;iI&Qj$M`F$t}K|rbGB#V zXnIC(p{^2TSq@?*GkGRP6(=Y@otWLv4LoWUW~5IG(|ht0GfUDQ5B?#fR;^_Ir3L8x z5hSaq34|uaP~W{c=(-!yhDxO1aVhL-$RaW+&d>o)9btMdD`u-J`6a+&Xc%6cl#ygG z(*23UqlW5b3QIv`P<-zzR!@u3v)=cV|BxcbJeay{Tu8oR0Fj4ze>d=eLw0RAy$L{X z@-euL?>sYIYgaTbwB`Wi#Uz`_cEV^)-mH-`(qHPt_K|XO{dXY+Qpgm?5t;-L3mdZ; z&bf9VRGzhTA)wQQ`eKz*Mvy-nRVZi9Ql*X>f@s+x?7do=#cdmCiL@NvjbTnDD74o( z%yyWMIo4?rDpv=+>93f@{lWiqOjGpiz|jUHeEWI(`EiS`AKj>D7@gE`SMAFy8<;2t zn>B}!>?DMu5<-|1rPlGcxSC=NM15_=&pXIrKOBx~#F+&w8bSW;GT_Nc#cG;0*M3Dt z4z4>j1L&n-@G3x}B+IDmCX`~KZ6}GeN+$Xjw`dTM=GhdR<;Ch}i95keO*ezsMT#e@ zI!fOM{`qH}lmw3mjk`c)0g5xirGQqzE7R*`>O;NulrccEPLf`K_YSkldLcI&$EnWa z3JyyxH|g3+8+F9lEDa2U0#dyIr)Tkie|qGHpBIf&AK(cF6r2XFW#E6CyM+DMm<-fk=-; zl|*!mtkCZT-dw=&HoG~}nUkt8NCC-#&zu(ud3j){ab_BH{n!M$uje|m|DHuY+S9np zjEj0R9~vt6&tT)%H(}{b7zx9NKZt{_%b6_Ewc*K!U=WDMFnv`!qYBv6K=<0yk7b3O zqTz5eN_KC*TfhD2SpP*A)TIj0xH$hPh)OrqD<~p|&L^fjboy|E0#kZZAv2q0DZp&f zZ-5**Q+iDoW3ZV*>KMjuBf%xu)zg5TZa~RLx%m&X`!Tp`j-DEt)`k+1Dp-P%?a@_6 z)eIS+@KF0>m@OMORsl*c9-MVck1ISm3otC&XY%Lytzc%P$!bh{{=M>q%twvUPeZJ}5;?o;sUvo20DJV5Hf z464kWXjCf|1`(1s;@GR?OxaEYv2algYEF|gyHI){i6n+si(^s@QIZTLKGUgA;{Nn6 zWdI{-I?V;d(ZlGPoAh3sk$0O@V@pxtc6g}4Fd!-w)@pm*BuJ;Lw!b+8JVK2J?Is{(fzK7h7wK^IORor@BL)LnCT8O(ie^ur1acRKVoQafj*tx8ivH+ zq*jAaUns60bC^1t(~lwA-dy@_@^JShwAT6KVo_2(+m{)moIund5Jl3_mb%i#B0z41$Q5MB9!hRQY3bY2y2ybajFa8DhDvPZ&(3A8 z7!r!=c3mg2s;^#X=b@nawIlh_;_MG~Sp{$II-myLPcjgk+=ef|Yl3*oGd4pOT}O6? zp=)MFq=>;X+7@ykV5PJx7ly|eW2T0}<;r-LGyaF89DX#HG*Jt;#jP$8T1(Jm%kXG| zT5gXoi^5Eu-^vs4+$;)W-#%M2N%&wDdG>E?#vXTj6cJ0k&Dn6kn2$*RUTsygSf!2;06_52KG~tY+Funw%a>Vjm+IlEk8wwX=yUM{9d< z26?0Meuk`%Y(ZQ`MQAP}t^mU&?Fvi$OV*7q?vLWQx0{-lY`9z=Lm8U>RhhYpF(DNh z^$0x?T(?KT>;;A+gJZaU-Nl_`CVoj;+%#YTRTNFX>=?L%)&HSd#zK?Bw(I!sxy>Gm z%g#R4m38Qf{+_6NP2OAD=5hmr^iyKoNWYcS$$-YGrUNYf3Vy8b-RbkawHI}s%CaFu zZYqdlwc$oxlUa+J-yhLzZJxRP!oRL@SlrzyoI?!fx+_b5*n^d8^wXzaZ`K23LxP|c zPXRd0N3@TV_LXJq`_tu~@=f!}9uwcN@5o=EM*e0T*m;Z4V4XcvQxc^&eoZLndB_>f za-tY$7=vLbZr`bH3@`!W+RKEGDq+m%PJBeITN@Pt z`m>tK+HM?VY=~;g8*Zur69sr!-^MKkmaN`lmaA z&cq}@Scl;{23fphFluj=D_#%_5N#J}q!d9hbM?ux!&8?vI+L>-*NoCX-ZcT@cdKI2 z>1YU*8{?g&D2;L%ilXk%`n!b**|g3M!#q53Q0^jtUD323BJ*_#IPq^nLUEJ4Q(qiQ zzl_pZBP+7I!{CDUp{OUz=Nx!PR!vojw7TP;F!Lse8{M|boZ9x$&<^& z!TwN9fgV~Zpr%_xZzop`Dhp9 zjwY0B2LQX4fmzH(P3?+ET(Ttzw`{m&l~yF=DlH$P`{anlS3t1{BM*E&I(9mKVr9aZ z2X8i)7jecuY4z!IxVI;89<_Qk>O%eE8aL|p%QFERopSF?LgN|tFQ2WdS6ROQ z>|%z+kH;q@eKh~I!zb;F_a9%{*LsR+;C1lzQOqmg$d{veo=!I_UUy8!PhWi|;GS2| z-)DoKdj-GsN)ImbUEr0FvwFs_v%w8sGnT!0Z8c`D-z-WCV?0{;+N#-nql>T8m}qu$ z*nIEs#oot|=2@UwIR9k$r?bW|2C~o@TbhIa$U|p;yjGd_`ha)L&E}YU-oZ=Gn!AxB z9*%u$BT8apfy=)5{PL2J&c&IWi?{X(*6|Lbo=dR%IwN8%a{5(E9%bM&_qY#AT^q65J5&FB<_zDg!qpkCyfbQj=IgAHM3jR%=cTnxMl4MzjfE-_Y2C7w3eL`l()2&Ulml`Y^}H_*!p+t*5`t4Z(Fy05^Vq8x_wfhqFzwx zPx|jLxv<09ztZVKS?GMGq*$i|6W;BzJ678^R>NWW{c6(YYs{4d~4mlM_pQ-GCO7Z>M#4ezKe1~egFIH zY@Oq~ZPe$#AFD!8+ORP>`shb1_aWD5hRsI~xPAXSAr@&(G<}tjlD=V8^$Eos;Wt5U z(JuW)yLI*7-T+*7!a3KKUMp=?9p+e`)d5lZEP{S&BjfxPd=z*)EN%mHDZ>C|xRw8_&7m9t^p~$@iXScNzi@$5_TZeNh&GL6%A3D@` z)i;`7WYhy--oFwCLP7v$E4 za+UI1T{D?lNceJ7`UaEgsh3{0eA9_Bp6ELX-+udKWI7~4IY|5YIXNllrlG5A_g0>0 zirM(1@m&)CKQJ8p>1n{I{*1FLuBVy(vFtcTG;zkx%EuBRqddq6onhT9{1!3e>sg_R z6dDVeJlcqTO`9vlYh$7A3yh>pZj#7&cM~VX&*yYuhs!d2-2ZV zWk~@lDx&Lp8|JfKh)NAylAH6{3&OXW`>!1vXJ?6b*hTL4Ue9?Q0+D8)PmdfqB&-JM z3{79%WctFvynFhm>w>PEB-5s0;A-jCJPm{y$3fAb`Pv|3j%}#J`;QKa}dH z`a4d{Z~#{q-k5;MAw|sBXjP+kOjggf6*hoOlyTefayo;o-6Wp1l7> z@T?QpKPJZx>7?}cfB7Gd27$vch`B~j94k8fc*Ef*&wl>*YV7y9o}sWc57$-?_%3=B zu==LUf*S;o+AL|nF6QQ?e}2u{&_w{94_^Gb?d)iHUbjx_>&s8R^nUzqmw0JWX`g-c z-=Wzp;W>RiX&3Bb+bF3o3}Y@G>-;?S`@LcO(A5`{&5wQ?gxxYtdS@PXE3f9s^p&l! zw5R#umq)`B4@Q44+x^djXXDDo!KKx&&;R`)Lec$t=-0!6|3<$~FvS-fqmJ4o{VmAr zvroTb7fJQS$;2c<@w)ZU-w-4RdIH(sb{S6 z*yHA&F@k5Y`Ortxu#WPhWBDcB1;<{wrd@8hHsUe&!HL`N8HtzEv76y58*lb~bXnMU zC5UBar1YfAslTz`LC=WqYT7u=H09lJiXwEDAg zl&0;`BmoL*#DD!YFm|BxrBiB4L+7Ux562t2Cl1{jtvoS){K5PF7oRzT9ZrAh4mq?{H>#>vE-e-`GSS+M*vDeU#K#sOK$>zysn6^HJ+%{#^p zy=tBD=JS^i7ax!1ZXZ}s{<{0__>{~e|9$)L_3PX3pT3wxoHO@7%?rLc_U-G(|Gxb* z_^t2Ff44^_Z6f!Xho2evG4f&Zi-)4>7jx$iQHhYc6J z^NaeyH!9B!>>~I(&7@zRt}}Ki8lBT;KL@Wy4_kz8B#C_W0kFYJp1VMj==jFw#kTV*eHOk43vb~I#7$Ny;M%%1cgWo3vIXdygT{3s^Q zgyM`I+ueO<8*>)tU|rO?W3#HDGsG?zl`FjT_%cp>89eiVZYhIxYq#_sN6$cHD3wA+ zp@nLzKJ$8F^F+5V7^Y#GjO|-=?B+GKu6%j3!e;ummhjk{ny6uz8?GZ9FL_4SoQfgb(|$Kj3+Xw-oJR$$ys-j zKXj1sDrtW2cM%42%nT>9d!+{lzU;amH}BMypame^hbmqF0ze=6N$Dw{MO&=QDE3Jr zIwOAe+>piheeUbWVJMor@$rq?h?)%J{vvMjIg=tIW7+)W9OV{_;XKY!=tG=^YDxBE zBRUId6Jq(a7#1|!B5(wsXKtg~vvK&4Qf`LGYk#i189?p4~>d%UIa=w49 z(1^pg5ZkL*3CSU5{|q*Si5R90Jl*flWC0v){Q3%4StiD8T4cG~vIMk4M&qs7m2_2a zS_ZXg(&c?q`FZ+t$T&}#+GOOYfsAwx`k-axZ&iDNnNp1cHtSn$!;WyB56z!a&owNz za>a^WD25>>r+c?XnV4i}p^F!pGa}w!JQJ{N-U;Adid8HTh>A|XTMHg-hB>;u^>t?^C-{R;-8HupZVEEwT6<-y1lT*Mv}gq7cu3l)Ys(3 zj)=U`VpAxWpP6(W?o}y}+1G}q-U~Rg_1hC9aV}>?!ou5#j(XzB{uf zEqQvfcCNmqX80js9?ZsgoSa?xhZav;nytL5bN3_U?6rLVyT<*wUT@hk1RPW>(JJ!t zPK1THyCEa4k;=5#v*Zg;%mSY7FaPh^ztlk4=5r2T=efYT$OvZcZ2W7dqq(7W^RJQ@ zz7Sk}d*6KJ&8e^>5}AVRoucHV2@i zdt?P4qrf5#fKREYD}P1L>j>mPz){NbqDd4?P%*cc==--_+)=ye-6yh$KS#vmk!WfjY%J=FuvcNsm<(W;(s5jpa^>76`%N?za2={F zLQ;6i$$OI8nrOIvYz*oLdSY=UfQ(b8`&`_*)u}-JwCx~>W`Lauc!SOS)G0bkTsNEc!L14v z&^JUO{Sn<`W<+Zxo5$GN%(UNht(|VKrm(t2q*brcA_sjx2T}~glaXZYLjKRE2X}Cb z05cn#>N_qWiCHsZVc-`_!pOGRq=KG=!d9&yKaka{BhU{tOL^%XMn&R6a$q3}D{ttfI2Z8} zR7&ckGivD1m2dIH=r;XodRACnh|vhlW`!7`&WOQ)nq*0|9G0nw_E&~MTB{8r#;>`! zLrVR@sil{9#-u_cK&OIAIvrg?_vOi{167-Beu?9(H{JsnW^Ad(;lpe)L}UV3M7PQw zFXq`h82AYYMwa>&`2}Z4xfj5S7*uA_1zQr$J@14&it3(C?5)*!bG%&&CuDM|^ z?RP*{N`wK!w#Vj+~dDfrA*uw`CTQgMHw!Fqj_DXlL7WPyr}`tK7`VfE?Y6M*&; zJ#=wU;N&PMg1dG?&RnVKs2VLh8B=VC^v#TR4#D1J?o4VfoSe#ggS%y;CL)WkD~tr7 z{OdA*3?LC#O^*Br=KNGq8R$XMk`ZUmp~VUwP5_qqikf$oFx>kB$|ra) z%Fpuas~RB&-tPBERcKLy868T+bz3YvkNjr^|SQeN#>IdztcrJ;-o&FsrXn zG*kA7I()(|sC;*XdLo5D;y@?!DO_K)gCbQM1Q009aQ>EBca*}=fR#G{+f0j+k&;3v zN{R(b0iV-FG?X$iYXB%MlYN-$z{qEP=rA<%^5EhP__pfha$S9G?ACXRqAXMk%?5?r zTqGsbBz5ldTbQ>p$&5p0sdC&8I3N7WRS$3f-Ey)(O%s+^jO$Ad0wr7?F z!KStx1;eDBJQeHEoB1`#w;;%7hP3gEp75{fKge+O6Z1RT25gn5+B8PXToJ`6a!e7r z(lLsz+C@Qa#0oe5?z-W)UXBFL1!EKfqn=pk%FOE+{eQ9WaIh+I4U*2Goku zSSiA95}>dRwbx<1Nb-y=TB5(0{`;_CE9XYQUz8VlxWgiq0i_kSrNvV&?gA3j zq#q~E69Q+Pv|@3BH49EUGjEGe+-r}_H6E1ecq@G=`OPeFBhNbE0o%HFRs>*(<6*i{25{<4@%sexQZJ}N>2HH?58}v7kJb+q;KG122&I9mvu}lRFb>Oi+O0!sBf_M`_gPkC(}cN5fRO}j;nB~=&y&7pBVSFedD)a+ z$Q&eFDY!0sXh7v^C6&!r?ey$kGVQV55NXCTUJCs**d%lPdam&83%Mz&%EAv>@K{FT zGi^o?t_B)c+0Gq7nvyXXBOfm|J%5OHt^v7ogKnl?PzI={aOAa0&*vO)=>-WA@@76M zQMyQ+A2+-X@#__2Npx->BCTS|5|83nn}P&_&{lFIon$#XJ!0sRcv=G{=T#>iqa!jcRbnmB+AT}7exED$T6ahw=Pn@nq zlasjLvXK0X2^NLN1pH$jvZhP2rdxYqqQ%#zITj#u>NX_OaAXf2sa!kl{o%lwA>j}o z4wt&?XsHZb6|ja+>!lQnfE`YshMw3E9*+KvRBGq`GYUnE5Ya9KLBp4$h|>)cYs9op z=%lM8l+;rhd|KXFV8geD26895E9X3<7#rDgWHdW|QmBK~_Jc40@H9S5W9gssp!3yb zTmV8PRtF2^0s+aRXqrz^R&F3Q{^&~GeC@qT-(i*+Z zG<4ZAt5mj=xoUw9pQL1wq=5eRFqDg*eW)}l_h|k}f>I>HzuF0sOdc>4rRAlPHtP#Yliux8nE#O&)g$;&hT$vqz|c)F8&njq{X(p))5M%UjRpnI6s~ z+m6ul8hCRjS)?K@ee#v>bU|!!y`2{WTo_rp`ZS9vfpsuachV)FpD22O`;G*V*WSr8 zG8cn*0Os=7WmSgi7-XH!5|w4lBf>Ol-083Q=@lAMLf*cyn==w^Jck~FIsArAtK&Gw zmRLy1tdW)H%^Ot*6Rfr5fV{JR2_dnp^;_Bn`p&DiY&RRvhLI4f{iprRL&8l9uIf}= zD<#NE$Bl#U!}Xa+kcv}wyxqKq8@Bb$039I@Q&i^9oy@Q(C-tgbGODYM3 z5FqqW4Lwu=QFrJ~2t@>qo=8zt)PSg1&rSdZ1PzLSh#C+T6*VdQ87B}c&uJv}GV)}5H} zF6(dB6l}&<`doE^D1ZF^WSbwyKqCkC2K;zm{%Q2DJ7W_ry0O|;wew3qLIQHb9FCTS zUt45v6Y|lrK$2$u?t0WJd%>YA{LQ8hmj#BZ;1AE|enqZ$6pAxipjyJ2CW2!2$8C6F zlc{yLDZG=nhfu-_zMLtx2|4N+1%TFO;~F)uyx|Sh8_1B&zhb;Zf-W!cgDv9OJ($;sKLE# z9!pL;aU4v-DM2c9Uy4gxi~HY8Lia3raB|0kPPTvd%#h(HUT;@E=vioY;n9QMg%3_u zuZ-<@_}9rTZRXzH_Rw54q9tf9BJ+Ja9vNKXB;!1TD>`UA2e#6XJPKbU0^0u0=VMK| z-GzsLzjwJ2DRtC93x*K__6j@nh*~(l(8_Jc0`!B3HXazntI$|-U`(ZFp3}1)>kWVF zIkr!@lb*2Gq7yWT6$f_JFv2jVr7X|%&_AV*{#3B9OfYU8wYlYX?y1M)ry0jg*3>;+ zePgb}q^GKbx6|K04LSELbduY3g(d7OIG*}!t%H}5;@QNV&*T1mda}vPBta0d$T@z} zi?mrUxbOasvwo4XX!7KLpQrzRA=~-S_sx&~Z`83b`2VAh$q+)5siUUThDgpaHR~J6 zJVs}~COOA%fBhzN2uakjQ~KS9KYp2Ky&}QJPSalYz4}Swjd@w4ci#NmdwG-u9t(2^ z9pmqjDlN%8cAnNpqK-*cF{#+{Gp=mAIC^pL`^^VGgt;%4HNIpdjK(a#M{%ZBE6juIK-i?tgjw{(t6Kck}AL#FgF)%zJVC=6}=Hzg*Gw^~?iO{2h#%f7dmq z@4)R*e!^hIiP46OZ_-x0a7zE;R(LO9df&RX`$5Gc%a6aQ?|kDt_Zw?k|Ct9PxfO%{ zGj7dqeKUS;e`f7xr-c4}m)=e*y~0cwBFV>P+rJ#YIWoQOMeFI;|9$yvo_)n{M(4rj zKj+ro51jkC@z!Ww{i~?uSJrpDF5WlfzVszOzK;YC2V@SlU;j6K)tBzizk`-tDc*aZ zpWYQU|JCLL-y-K-IdkiyOGekUim#>HUcUQ15?lUxYW^+f_>pB*gU9cGUU~d`Z~u1> z`PGiD(V~jJgqk}=+wOgN|FieWhp!`_#?R?2s(e{k^<&P;OAA`QoVfB)E@#XYN;C_~n>+ zcy2{sN7w5sci#rcyG!Z@qZf|q2H(6JdmB>vBI1uXb-E8zYwrc7e{;{;zoO$&?$*ma zSKmx18E{HGRkQ1hu=sOi(b;u-u9cs75M44b|K#VnThAxdezcp`ZW()OT4DF1@S`7bR2q9~Q=6@lCsRyK)^46;=o+j;k7R8)HH3|^&hQ&`4*D*7h zo}I_@lGV|UF1JW2_9A0JT&3+wJGkDMpWjw{ELz^bD4yFmIFJLq-zF zmc&riubLB1?`?`Vc6tKgA)dpEy12r7xsW-_SgTSn54_x`KHTL}o0y0xnVarYvWjbM z-RfcUfw7N70jipAvxehRF?85afNErSe|Zxoe;@*($OkEIX7 zr;h#Fk_+=36ug-A3xj%4o#YdIAU*%_Y-ck`iQvRqRGhwa?&C$LrIDITyBGX7u=yVY z#w&>SvL}7?iTdz4Qwmy~3|)N6s2wM*iB}cGd@MYC@FnqK$P$Vz9=!)IuG#pGA_*F7 zeA^!F?HSWMjq{^_@ut7tB%1d2+;2I%f%kLN(bAI(ITxQ={#EF@OLsdA-1#EY#d~M} zN?KQo{Wvi>+Gi$~jB)#3oPoLPR?|!WI>hQDSmblMg=<3+*Ks?aKG}DZt<+N~U7LzD zQ}TbP>ESV9Z?@`6#-YuOY2{(Jb5$V>eO(g37^VDme;5^9$!pS_0DW`U8YHMWV{2|& zzDdB5mCvjm#!LeYeFHw}IHg>}Bz+9P*`w!<^Mgw-XG>z|sGp%KH;}dm@FC=TDIiUCTy$|xy zRg9WRpKvj}etyA-5t1hFV*5%qt!6pLhsH+PRklLYI%j=qC@ymuJz6_w^$W+jUBtL* z#spNRJ>}HdyMt#B4gI(eNu!R3&ezEQxVkmI1@Q}b6;L6A@6E{Fw{{P)qIz-nK%HV60W9x~?GFs@lWuTp zg8OSH=S3~4&G>G4%>|SERk6hV);z6Y!liRt)tD2@IE@|XB zMGJ}C;$ZPgrhpQVM}+U&*YrW`y84(??v0%$Lcd=d=VjFFP1oEMDSeLN)Gu4jy<{<4 zrL|cGoq*9kk9dw9Yz>(>FJEQWzey%T+!xM||9*ns06VfaVJd#UkFm-7+;`IWyFN4eV^z1H3udz%Sm5oznjz@3N&u>yIA-)mY{ z>2u<#L-uwPsbt>gxQ;XS=bLmh4r!>6g&s3nztzu>qstCGq%>(7rtJD%Bxqk#?>qCx zb-F*s3?a=i4&cGj>`TC}t)89om z%GRx#!rsDw<|-%0&Wd}Zg-G}6YCXb7WO}NhENo7F|4n=S3kC;okY&YZ)fVlcc=A)> zQbCD9J_cD0Lgen;3u#6hU;j|RPAPv(Vqm+|8#GIzDd7we0r_OKw#ldKf86?ew|JRo zhQI@N2~-Em;{ei~O-|x&5XTb??zRSDtLwk>_ak=t952I< zTHDGu&u-VfcOECfXI6ICeRCCDnH4Bddr;eyO$Tn?`Dob|?fE8U z$;yLAeXtg1gV{X#p)Na9Q;4t2r4Ual9Al4z`MSi*wsJp6A`X*SgYi~Z&WhjPE{Zr^ z8fY7XZn9*XV4}9csDpWIIq^PfT8oGCbNG+I_C(qpiBrgPG{rC@>|no-&(Z%LWiJ?i z4`wc2dHGCZO1BY-VS3PC_+KBXGfuns$l=aFqrHusV1&f#ppj-UkE7iaS*EQKN(SL# zc=AN$t3R&Z-uClX4Dx%Jw5d55WQ^ruIj+sXzSz1uLu`J!u=u6{5-socVhou{Xy0`npD#0H8ZHe@{&r=VW((YsjwULl8CroJm|kJ@>`_-eq)`@658A zT>*IE=2WM*wU5_Fvawe)m*Dg!#qBBU%V`dhy@`IRi!}90XyYE>?u5<0@DROA+Zux4 zYtr5_!ICTf2Mrz7=_c}2XW;oc(-E>uDO4mDnkrL@q&^8`+%N_O zb08GIF72CZW`nUFYr)W*U{r(Nq&XXr`F9%hR3RuLO@qgU5juK=4zMvK7a+N6!G&93 zy&km}pfW;m$DaE7BWf(C`EcMlZRlmK3xBhny8!i&L2@;+y)ZTLLRqE?S}{yB6QQKl z4~RjzyWH9|8Y-+u+%e>;c;ZF1$;@vF_KvakJW!;8`jBYs0^koTcMuQAGs2Py?@C@5LJiAsWPtfX8WOkq)&~jq9;jv_t{Q z#wosi!7M-bKRB?xiV>n)VfzvIW2ieIe>#NskyhJ^;b!r_>!-4n&}HB7E6%`7FnQ3l zQUMj%V1@~DZ!QMk5j&*_frG?_u3}_=rEcAA9n67~mZ8z3D2o6CGAOs%#9RWiMU>Bb zY-yX(`j^I8BG-c&3Rkt9aTGGsz)hx*4>k^r9a}v|Pn{w+6%$mJ1X`d+Y;ZHCj82zP zzCA?_4m#M+hDk#juPWyu{lM8x)TzPI?!gA8PsgzK+Gy0=CCltMGpLkq@PZ?f&%*K zW-wDw+#KZDFmArAqEcE28DTQ)q}Z&Xj%+h13aH*{6H`b)dS$0*lIC;ZZ-quSqB+x2 zfVVC*q7e9i0DF>jI}Cr97<=i%llAt!+F5NEgR{eE^Gm$znjuH9luCAZ3C>G>%gnRQJI zmDH|eXo3!zthcvR!G?MyT84UH3*cdd^%TZ$LUJah9ve5)3=Z=J%Q;2NG5P=EC#9qy zF$^(>X~{B}p-1S;kwiHhCZX7Ur1%nm?2|z^MU>s*oO%!{Ft!!!+ek(T4b`!jHRQUp3BH9fC_YKQaqml#J0L- zW3YiKLY0bnh>8-ARWEuub9U2&mhB09 z`{$+>U`EWE?FM30M-8<{+qQv$=^#iS?sV0}3=gq;LOB#nGyDXyhB;gnVy7suk}!R9 zo%mxCh&!9IY*jO57-`=Qto7jVN!XmeK>^NIJy#yMo)jDjChBeM@HWelf-k8j=`*2Qfp@q*2( zVGXoK)fR=t%xVM%!FwSb$yw*w_aEo#gw`Xv+}tuRzTTdxp~6V<5l+!*zUV72|cw8X&-WW=;O#u#Mj%QZ>u{YJX zvQM5ZJ=yZY(mTwJxS#7I*k&xEsBk1&j!wiGGhHBo&ZYG#ybQIoP#t1&Xb1+MHJ}qY zPUb^U*z(lWqIjwfj86f1YB)*_PgJ39GHRU`y<2&Nf@S1$p#gJRJKsuUwI|90EK&7u z`%>__r#G|l7zCgs*{)fdrL2C-o^3m|d#u@@#ZJ==$&lG9+ll)01!3@=3m~IU5TU-5 zF`n$Q8YhW_Pu2rYJH!IeR0&CS&6D42FAME6{YZHeVRK@6yoYod!a29)6C4MiJkyh$ zVwt#0Jn}dB9~|;;>I|*hEFz9n*Ur=}{i8)AVaz z@I3#GJlSyvYAf+_68%9T=)-dF>8k0|66UzWK79t_Ac?z?{4ZFAzJZC{(7+V+r6+Sx zo-vg_Ft1*1vQmVI2XhZdAX73k^F6f7Q=TL7t(cdJBJ+y_oUYYzOhrs+M&y=(31%s~ z_Z9cQDu9yZm#V+S`8>)^8tOR_2y+F{B}c#&IQ4DkjD)(Nf~%`Au&2Cz%glV1DH^{6 zy>0Kj*Jk>xVUFFH9vZKQyhV>q_0Y>}@QpotDS|#h0Z5n%)=Q==&m}}3jg7I!$cK|S zAEEQx7d_d!#z?);3fHz@hhuT8mSK*AF1B99i7IbI33Rv5V9qC$p?I{l$(A4L!WZ2( zJ#%(T7FGUEJON`|I%G2?h_a>z1PW4fNY;Wp*g~aPp${;>asAj)l#)r(>nVZitI5mr zL6^^RBJI>^j=9Qm61_L?%R!6sMKt`Ps|1SGn;*v6R?&431}KP7|-xk1OW=f+<>4*11p`#yVZoNJ_}8#cpubGk&&8Lx3LQtyQ&@O4A(F>AzR z7)-nZd#dgmvAf_2t88Wzuq6nC^gl{gT3(aS7y#Sklg_$tV7hSK-G&8k989SpKB(oG4fOf+o4paRQ8ILJH7Fc9 zR*3oAPC#$qu&Ww<(UfxOJ;g5?1j*249gAz`(l^`~dU<>H>a#9#J~TmZ!_>Xq(c&fT z;*V2#oV;eml*6aKg=W=z)|lsJsOekp4e7@dq|A*TQ zo2U3 zyfaq{>Nv$(2HBE0C1ZSb2*wM+u8roEV``YKf+LTkqLEQPHxbJ4?M zi2zd4En^yr!vs5FVMKeL@oa`2)nu_hUnS`6<)VfTbdK1d5{@&>;x~&4x=*#JO-GJ; z!RC;V6I7^;uA)K3Ol!GbW+tGRRgo741ux8-m!XR#dX#W9X6Q5w|Eofz6AL{$>jer= zGm9vvgbV_PC~;2uINdWGT0#pcvJQS}AeI{OIfG#_3LZS4gUQr?IZ)Blod=r4$yL2``~J_iclkD z6kIE;4ic_obK=FNmVtTyx-z(Yfs!*x2-Y(UKfQrG6GELT!StcoC1p+7co2J5@fD83 zcTit)!cwi?O;VPgtgCH0qdy1B1Oy5%O3|0ob?%!_!HELg@4RiPH_oDW3}L=T@l_RQ z`#btE$dU;oQ+}LVP1|JeV0S~YCZd>OA1~VxTqI$8iRM{dAaqq9>5@rI^Db& z7GJ1eM-wd32FC~8Q>(&S+%eesm}NOj5|t5y>>fGZ0`VCteV6#O6JGXekvMmLxBN38;YPOZ>e(OzP{MWzW8KeVhuixwg0Q5_nqMtd>h7279wt5X%2h{Hq%UFG z!}?D+ePywd?WB`5L$1Y7b~86^{;uGUg|Hk1N4RS>%A*f$HOfjamL|Th+F4H1086~ zA8*I`e34sj`Cik668N3O lzBPehFqd9QQ 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 Date: Fri, 13 Jan 2023 12:11:58 +0800 Subject: [PATCH 224/383] Update docs (13383) Signed-off-by: ester.zhou --- en/application-dev/quick-start/Readme-EN.md | 2 +- .../application-package-structure-fa.md | 5 +- .../application-package-structure-stage.md | 12 +- .../quick-start/deviceconfig-structure.md | 2 +- .../quick-start/package-structure.md | 797 ------------------ en/application-dev/reference/Readme-EN.md | 2 +- en/application-dev/reference/syscap.md | 2 +- 7 files changed, 14 insertions(+), 808 deletions(-) delete mode 100644 en/application-dev/quick-start/package-structure.md diff --git a/en/application-dev/quick-start/Readme-EN.md b/en/application-dev/quick-start/Readme-EN.md index 108333ec8f..439bbdcb9d 100644 --- a/en/application-dev/quick-start/Readme-EN.md +++ b/en/application-dev/quick-start/Readme-EN.md @@ -25,7 +25,7 @@ - Application Configuration Files in FA Model - [Application Configuration File Overview (FA Model)](application-configuration-file-overview-fa.md) - [Internal Structure of the app Tag](app-structure.md) - - [Internal structure of deviceConfig Tag](deviceconfig-structure.md) + - [Internal Structure of deviceConfig Tag](deviceconfig-structure.md) - [Internal Structure of the module Tag](module-structure.md) - [Resource Categories and Access](resource-categories-and-access.md) - Learning ArkTS diff --git a/en/application-dev/quick-start/application-package-structure-fa.md b/en/application-dev/quick-start/application-package-structure-fa.md index 2633fca5db..6909481445 100644 --- a/en/application-dev/quick-start/application-package-structure-fa.md +++ b/en/application-dev/quick-start/application-package-structure-fa.md @@ -19,5 +19,6 @@ The difference between the application package structures in the FA model and st - The **pack.info** file describes the HAP attributes in the bundle, for example, **bundleName** and **versionCode** in **app** and **name**, **type**, and **abilities** in **module**. The file is automatically generated when DevEco Studio generates the bundle. -**Figure 1** Application package structure in FA model -![app-pack-fa](figures/app-pack-fa.png) +**Figure 1** Application package structure in FA model + +![app-pack-fa](figures/app-pack-fa.png) \ No newline at end of file diff --git a/en/application-dev/quick-start/application-package-structure-stage.md b/en/application-dev/quick-start/application-package-structure-stage.md index 078055a0d7..b9bd91d798 100644 --- a/en/application-dev/quick-start/application-package-structure-stage.md +++ b/en/application-dev/quick-start/application-package-structure-stage.md @@ -7,11 +7,12 @@ To develop an application based on the [stage model](application-configuration-f - In development, an application contains one or more modules. You can [create modules](https://developer.harmonyos.com/en/docs/documentation/doc-guides-V3/ohos-adding-deleting-module-0000001218760594-V3) in the application project in [DevEco Studio](https://developer.harmonyos.com/en/develop/deveco-studio/). As a basic functional unit of an OpenHarmony application/service, a module contains source code, resource files, third-party libraries, and application/service configuration files, and can be built and run independently. Modules can be classified as Ability or Library. A module of the Ability type is built into a Harmony Ability Package (HAP) file in .hap format, and a module of the Library type is built into a [Harmony Ability Resources (HAR) file](har-structure.md) in .tgz format. A module can contain one or more [UIAbility](../application-models/uiability-overview.md) components, as shown in the figure below. - **Figure 1** Relationship between modules and UIAbility components + **Figure 1** Relationship between modules and UIAbility components + ![ability-and-module](figures/ability-and-module.png) - + Unless otherwise specified, the modules described in this document refer to the modules of the Ability type. - + - As aforementioned, you can build an application into one or more HAP files. The HAP file is the basic unit for installing an application. It provides code, resources, third-party libraries, and a configuration file. HAP files can be classified as Entry or Feature. - HAP of the entry type: main module of the application, whose **type** field is set to **"entry"** in the [module.json5](module-configuration-file.md) file. In an application, each type of device supports only one HAP of the entry type, which is typically used to implement the application's entry screen, entry icon, or headline feature. - HAP of the feature type: dynamic feature module of the application, whose **type** field is set to **"feature"** in the [module.json5](module-configuration-file.md) file. Each application can contain zero, one, or more HAP files of the feature type, which are used to implement the application features. You can configure this type of HAP file to be downloaded and installed independently as required or to be downloaded and installed together with the HAP file of the entry type. For details, see **deliveryWithInstall** in [module.json5 Configuration File](module-configuration-file.md). @@ -26,5 +27,6 @@ To develop an application based on the [stage model](application-configuration-f - The **module.json** file is the configuration file indispensable in a HAP file. It consists of **module.json5** and **app.json5** in the project configuration. While DevEco Studio provides default configuration, you must modify the configuration as needed. For details about the configuration fields, see [Application Configuration Files in Stage Model](application-configuration-file-overview-stage.md). - The **pack.info** file describes the HAP attributes in the bundle, for example, **bundleName** and **versionCode** in **app** and **name**, **type**, and **abilities** in **module**. The file is automatically generated when DevEco Studio generates the bundle. - **Figure 2** Application package structure in stage model - ![app-pack-stage](figures/app-pack-stage.png) + **Figure 2** Application package structure in stage model + + ![app-pack-stage](figures/app-pack-stage.png) \ No newline at end of file diff --git a/en/application-dev/quick-start/deviceconfig-structure.md b/en/application-dev/quick-start/deviceconfig-structure.md index 8ee8131bb0..7386e27ea6 100644 --- a/en/application-dev/quick-start/deviceconfig-structure.md +++ b/en/application-dev/quick-start/deviceconfig-structure.md @@ -1,4 +1,4 @@ -# Internal structure of deviceConfig Tag +# Internal Structure of deviceConfig Tag The **deviceConfig** tag contains device-specific configuration of the application, including attributes such as **default**, **tv**, **car**, and **wearable**. The **default** configuration applies to all types of devices. You need to declare the peculiar configuration of a specific device type in the associated sub-tag of this type. diff --git a/en/application-dev/quick-start/package-structure.md b/en/application-dev/quick-start/package-structure.md deleted file mode 100644 index 26f177f85f..0000000000 --- a/en/application-dev/quick-start/package-structure.md +++ /dev/null @@ -1,797 +0,0 @@ - - -# Application Package Structure Configuration File - -When developing an application in the Feature Ability (FA) model, you must declare the package structure of the application in the **config.json** file. - -## Internal Structure of the config.json File - -The **config.json** file consists of three mandatory tags, namely, **app**, **deviceConfig**, and **module**. For details, see Table 1. - -Table 1 Internal structure of the config.json file - -| Tag | Description | Data Type| Initial Value Allowed| -| ------------ | ------------------------------------------------------------ | -------- | ---------- | -| app | Global configuration of the application. Different HAP files of the same application must use the same **app** configuration. For details, see [Internal Structure of the app Tag](#internal-structure-of-the-app-tag).| Object | No | -| deviceConfig | Application configuration applied to a specific type of device. For details, see [Internal Structure of the deviceconfig Tag](#internal-structure-of-the-deviceconfig-tag).| Object | No | -| module | Configuration of a HAP file. It is valid only for the current HAP file. For details, see [Internal Structure of the module Tag](#internal-structure-of-the-module-tag).| Object | No | - -Example of the **config.json** file: - -```json -{ - "app": { - "bundleName": "com.example.myapplication", - "vendor": "example", - "version": { - "code": 1, - "name": "1.0" - }, - "apiVersion": { - "compatible": 4, - "target": 5, - "releaseType": "Beta1" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.example.myapplication.entrymodule", - "name": ".MyApplication", - "deviceType": [ - "default" - ], - "distro": { - "moduleName": "entry", - "moduleType": "entry" - }, - "abilities": [ - { - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "name": "com.example.myapplication.entrymodule.MainAbility", - "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:app_name", - "type": "page", - "launchType": "standard" - } - ], - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": false - } - } - ] - } -} -``` - -### Internal Structure of the app Tag - -The **app** tag contains the global configuration information of the application. For details about the internal structure, see Table 2. - -Table 2 Internal structure of the app tag - -| Attribute | Description | Data Type| Initial Value Allowed | -| ----------------- | ------------------------------------------------------------ | -------- | --------------------------- | -| bundleName | Bundle name, which uniquely identifies an application. The bundle name can contain only letters, digits, underscores (_), and periods (.). It must start with a letter. The value is a string with 7 to 127 bytes of a reverse domain name, for example, **com.example.myapplication**. It is recommended that the first level be the domain suffix "com" and the second level be the vendor/individual name. More levels are also accepted.| String | No | -| vendor | Description of the application vendor. The value is a string with a maximum of 255 bytes. | String | Yes (initial value: left empty) | -| version | Version of the application. For details, see Table 3. | Object | No | -| apiVersion | OpenHarmony API version on which the application depends. For details, see Table 4. | Object | Yes (initial value: left empty) | -| singleton | Whether to enable singleton mode for the application. This attribute applies only to system applications and does not take effect for third-party applications. If this attribute is set to **true**, the application always runs in singleton mode, even in multi-user scenarios. This attribute is supported since API version 8.| Boolean | Yes (initial value: **false**)| -| removable | Whether the application can be uninstalled. This attribute applies only to system applications and does not take effect for third-party applications. It is supported since API version 8. | Boolean | Yes (initial value: **true**) | -| userDataClearable | Whether user data of the application can be cleared. This attribute applies only to system applications and does not take effect for third-party applications. It is supported since API version 8.| Boolean | Yes (initial value: **true**) | - -Table 3 Internal structure of version - -| Attribute | Description | Data Type| Initial Value Allowed | -| ------------------------ | ------------------------------------------------------------ | -------- | -------------------------- | -| name | Application version number visible to users. The value can be customized and cannot exceed 127 bytes. The customization rules are as follows:
API 5 and earlier versions: A three-segment version number is recommended, for example, A.B.C (also compatible with A.B). In the version number, A, B, and C are integers ranging from 0 to 999. Other formats are not supported.
A indicates the major version number.
B indicates the minor version number.
C indicates the patch version number.
API 6 and later versions: A four-segment version number is recommended, for example, A.B.C.D. In the version number, A, B, and C are integers ranging from 0 to 99, and D is an integer ranging from 0 to 999.
A indicates the major version number.
B indicates the minor version number.
C indicates the feature version number.
D indicates the patch version number.| Number | No | -| code | Application version number used only for application management by OpenHarmony. This version number is not visible to users of the application. The value rules are as follows:
API 5 and earlier versions: It is a non-negative integer less than 32 bits in binary mode, converted from the value of version.name as follows: The conversion rules are as follows:
Value of **code** = A * 1,000,000 + B * 1,000 + C. For example, if the value of **version.name** is 2.2.1, the value of **code** is 2002001.
API 6 and later versions: The value of **code** is not associated with the value of **version.name** and can be customized. The value is a non-negative integer ranging from 2 to 31. Note that the value must be updated each time the application version is updated. The value for a later version must be greater than that for an earlier version.| Number | No | -| minCompatibleVersionCode | Earliest version compatible with the application. It is used in the cross-device scenario to check whether the application is compatible with a specific version on other devices.
The value rules are the same as those of **version.code**.| Number | No (initial value: **code** attribute value)| - -Table 4 Internal structure of apiVersion - -| Attribute | Description | Data Type| Initial Value Allowed| -| ----------- | ----------------------------------------------------------- | -------- | ---------- | -| compatible | Minimum API version required for running the application. The value ranges from 0 to 2147483647. | Integer | Yes | -| target | Target API version required for running the application. The value ranges from 0 to 2147483647.| Integer | Yes | -| releaseType | Type of the target API version required for running the application. | String | Yes | - -Example of the app tag structure: - -```json -"app": { - "bundleName": "com.example.myapplication", - "vendor": "example", - "version": { - "code": 1, - "name": "1.0" - }, - "apiVersion": { - "compatible": 4, - "target": 5, - "releaseType": "Beta1" - } -} -``` - -### Internal Structure of the deviceConfig Tag - -The **deviceConfig** tag contains the application configuration information on the device, including attributes such as **default**, **tv**, **car**, and **wearable**. The **default** configuration applies to all types of devices. You need to declare the peculiar configuration of a specific device type in the associated sub-tag of this type. For details about the internal structure, see Table 5. - -Table 5 Internal structure of the deviceConfig tag - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ----------------------------------------- | -------- | ------------------ | -| default | Application configuration applied to all types of devices. For details, see Table 6.| Object | No | -| tablet | Application configuration specific to tablets. For details, see Table 6. | Object | Yes (initial value: left empty)| -| tv | Application configuration specific to smart TVs. For details, see Table 6. | Object | Yes (initial value: left empty)| -| car | Application configuration specific to head units. For details, see Table 6. | Object | Yes (initial value: left empty)| -| wearable | Application configuration specific to wearables. For details, see Table 6.| Object | Yes (initial value: left empty)| - -For details about the internal structures of device attributes, see Table 6. - -Table 6 Internal structure of device attributes - -| Attribute | Description | Data Type| Initial Value Allowed | -| ------------------ | ------------------------------------------------------------ | -------- | ----------------------- | -| process | Process running the application or ability. If the **process** attribute is configured in the **deviceConfig** tag, all abilities of the application run in this process. You can set the **process** attribute for a specific ability in the **abilities** attribute, so that the ability can run in the particular process. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types. The value can contain a maximum of 31 characters.| String | Yes | -| keepAlive | Whether the application is always kept alive. This attribute applies only to system applications and does not take effect for third-party applications. The value **true** means that the application is always kept alive: The system automatically launches the application at startup and restarts it after it exits.| Boolean | Yes (initial value: **false**) | -| supportBackup | Whether the application supports backup and restoration. The value **false** means that the application does not support backup or restoration.
This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| Boolean | Yes (initial value: **false**)| -| compressNativeLibs | Whether the **libs** libraries are packaged in the HAP file after being compressed. The value **false** means that the **libs** libraries are stored without being compressed and will be directly loaded during the installation of the HAP file.
This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| Boolean | Yes (initial value: **true**) | -| directLaunch | Whether the application can be started when the device is locked. The value **true** means that the application can be started when the device is locked. Devices running OpenHarmony do not support this attribute.| Boolean | Yes (initial value: **false**)| -| ark | Maple configuration. For details, see Table 7. | Object | Yes (initial value: left empty) | -| network | Network security configuration. You can customize the network security settings of the application in the security statement of the configuration file without modifying the application code. For details, see Table 9.| Object | Yes (initial value: left empty) | - -Table 7 Internal structure of the ark attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ---------- | -------------------------------- | -------- | ------------------------------ | -| reqVersion | Maple version required for the application. For details, see Table 8.| Object | No | -| flag | Type of the Maple application. | String | No (available options: **m**, **mo**, **z**).| - -Table 8 Internal structure of the reqVersion attribute - -| Attribute | Description | Data Type| Initial Value Allowed| -| ---------- | --------------------------------------------------------- | -------- | ---------- | -| compatible | Minimum Maple version required for the application. The value is a 32-bit unsigned integer.| Integer | No | -| target | Type of the Maple application. The value is a 32-bit unsigned integer. | Integer | No | - -Table 9 Internal structure of the network attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ---------------- | ------------------------------------------------------------ | -------- | ----------------------- | -| cleartextTraffic | Whether to allow the application to use plaintext traffic, for example, plaintext HTTP traffic.
**true**: The application is allowed to use plaintext traffic.
**false**: The application is not allowed to use plaintext traffic.| Boolean | Yes (initial value: **false**)| -| securityConfig | Network security configuration of the application. For details, see Table 10. | Object | Yes (initial value: left empty) | - -Table 10 Internal structure of the securityConfig attribute - -| Attribute | Sub-attribute | Description | Data Type| Initial Value Allowed | -| -------------- | ------------------ | ------------------------------------------------------------ | -------- | ---------------- | -| domainSettings | - | Security settings of the custom network domain. This attribute allows nested domains. That is, the **domainSettings** object of a network domain can be nested with the **domainSettings** objects of smaller network domains.| Object| Yes (initial value: left empty)| -| | cleartextPermitted | Whether plaintext traffic can be transmitted in the custom network domain. If both **cleartextTraffic** and **security** are declared, whether plaintext traffic can be transmitted in the custom network domain is determined by the **cleartextPermitted** attribute.
**true**: Plaintext traffic can be transmitted.
**false**: Plaintext traffic cannot be transmitted.| Boolean| No | -| | domains | Domain name. This attribute consists of two sub-attributes: **subdomains** and **name**.
**subdomains** (boolean): specifies whether the domain name contains subdomains. If this sub-attribute is set to **true**, the domain naming convention applies to all related domains and subdomains (including the lower-level domains of the subdomains). Otherwise, the convention applies only to exact matches.
**name** (string): indicates the domain name.| Object array| No | - -Example of the deviceConfig tag structure: - -```json -"deviceConfig": { - "default": { - "process": "com.example.test.example", - "supportBackup": false, - "network": { - "cleartextTraffic": true, - "securityConfig": { - "domainSettings": { - "cleartextPermitted": true, - "domains": [ - { - "subdomains": true, - "name": "example.ohos.com" - } - ] - } - } - } - } -} -``` - -### Internal Structure of the module Tag - -The **module** tag contains the configuration information of the HAP file. For details about the internal structure, see Table 11. - -Table 11 Internal structure of the module tag - -| Attribute | Description | Data Type | Initial Value Allowed | -| ----------------- | ------------------------------------------------------------ | ---------- | ------------------------------------------------------------ | -| mainAbility | Ability displayed on the Service Center icon. When the resident process is started, the **mainAbility** is started.| String | No if any ability using the Page template exists | -| package | Package name of the HAP file, which must be unique in the application. The value is a string with a maximum of 127 bytes, in the reverse domain name notation. It is recommended that the value be the same as the project directory of the HAP file. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types. | String | No | -| name | Class name of the HAP file. The value is in the reverse domain name notation, with the prefix same as the package name specified by **package** at the same level. It can also start with a period (.). The value is a string with a maximum of 255 bytes.
This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| String | No | -| description | Description of the HAP file. The value is a string with a maximum of 255 bytes. If the value exceeds the limit or needs to support multiple languages, you can use a resource index to the description. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| String | Yes (initial value: left empty) | -| supportedModes | Mode supported by the application. Currently, only the **drive** mode is defined. This attribute applies only to head units.| String array| Yes (initial value: left empty) | -| deviceType | Type of device on which the ability can run. The device types predefined in the system include **tablet**, **tv**, **car**, and **wearable**.| String array| No | -| distro | Distribution description of the HAP file. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types. For details, see Table 12.| Object | No | -| metaData | Metadata of the HAP file. For details, see Table 13. | Object | Yes (initial value: left empty) | -| abilities | All abilities in the current module. The value is an array of objects, each of which represents a shortcut object. For details, see Table 17.| Object array | Yes (initial value: left empty) | -| js | A set of JS modules developed using ArkUI. Each element in the set represents the information about a JS module. For details, see Table 22.| Object array | Yes (initial value: left empty) | -| shortcuts | Shortcuts of the application. The value is an array of objects, each of which represents a shortcut object. For details, see Table 25.| Object array | Yes (initial value: left empty) | -| reqPermissions | Permissions that the application requests from the system when it is running. For details, see Table 21. | Object array | Yes (initial value: left empty) | -| colorMode | Color mode of the application. Available values are as follows:
**"dark"**: Resources applicable for the dark mode are selected.
**"light"**: Resources applicable for the light mode are selected.
**"auto"**: Resources are selected based on the color mode of the system.
This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types. | String | Yes (initial value: **auto**) | -| distroFilter | Distribution rules of the application.
The application market uses these rules to distribute HAP files to the matching devices. Distribution rules cover three factors: API version, screen shape, and screen resolution. The application market distributes a HAP file to the device whose on the mapping between **deviceType** and these three factors. For details, see Table 29. | Object | Yes (initial value: left empty) Set this attribute when an application has multiple entry modules.| -| reqCapabilities | Device capabilities required for running the application. | String array| Yes (initial value: left empty) | -| commonEvents | Static broadcast. For details, see Table 35. | Object array | Yes (initial value: left empty) | -| entryTheme | Keyword of an OpenHarmony internal theme. Set it to the resource index of the name.| String | Yes (initial value: left empty) | -| testRunner | Test runner configuration. For details, see Table 36. | Object | Yes (initial value: left empty) | -| definePermissions | Permissions defined for the HAP file. This attribute applies only to system applications and does not take effect for third-party applications. The caller of the application must have these permissions to properly call the app. For details, see Table 37.| Object | Yes (initial value: left empty) | - -Example of the **module** tag structure: - -```json -"module": { - "mainAbility": "MainAbility", - "package": "com.example.myapplication.entry", - "name": ".MyOHOSAbilityPackage", - "description": "$string:description_application", - "supportModes": [ - "drive" - ], - "deviceType": [ - "car" - ], - "distro": { - "moduleName": "ohos_entry", - "moduleType": "entry" - }, - "abilities": [ - ... - ], - "shortcuts": [ - ... - ], - "js": [ - ... - ], - "reqPermissions": [ - ... - ], - "colorMode": "light" -} -``` - -Table 12 Internal structure of the distro attribute - -| Attribute | Description | Data Type| Initial Value Allowed| -| ---------------- | ------------------------------------------------------------ | -------- | ---------- | -| moduleName | Name of the HAP file. The maximum length is 31 characters. | String | No | -| moduleType | Type of the HAP file. The value can be **entry** or **feature**. For the HAR type, set this attribute to **har**.| String | No | -| installationFree | Whether the HAP file supports the installation-free feature.
**true**: The HAP file supports the installation-free feature and meets installation-free constraints.
**false**: The HAP file does not support the installation-free feature.
Pay attention to the following:
- When **entry.hap** is set to **true**, all **feature.hap** fields related to **entry.hap **must be **true**.
- When **entry.hap** is set to **false**, **feature.hap** related to **entry.hap** can be set to **true** or **false** based on service requirements. | Boolean | No | -| deliveryWithInstall | Whether the HAP file is installed with application.
**true**: The HAP file is installed together with the application.
**false**: The HAP file is not installed together with the application.| Boolean| No| - -Example of the **distro** attribute structure: - -```json -"distro": { - "moduleName": "ohos_entry", - "moduleType": "entry", - "installationFree": true, - "deliveryWithInstall": true -} -``` - -Table 13 Internal structure of the metaData attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ------------- | ------------------------------------------------------------ | -------- | -------------------- | -| parameters | Metadata of the parameters to be passed for calling the ability. The metadata of each parameter consists of the **description**, **name**, and **type** sub-attributes. For details, see Table 14.| Object array| Yes (initial value: left empty) | -| results | Metadata of the ability return value. The metadata of each return value consists of the **description**, **name**, and **type** sub-attributes. For details, see Table 15.| Object array| Yes (initial value: left empty)| -| customizeData | Custom metadata of the parent component. **parameters** and **results** cannot be configured in **application**. For details, see Table 16.| Object array| Yes (initial value: left empty)| - -Table 14 Internal structure of the parameters attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ----------- | ------------------------------------------------------------ | -------- | ------------------ | -| description | Description of the parameter passed for calling the ability. The value can be a string or a resource index to descriptions in multiple languages. The value can contain a maximum of 255 characters.| String | Yes (initial value: left empty)| -| name | Name of the parameter passed for calling the ability. The value can contain a maximum of 255 characters. | String | Yes (initial value: left empty)| -| type | Type of the parameter passed for calling the ability, for example, **Integer**. | String | No | - -Table 15 Internal structure of the results attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ----------- | ------------------------------------------------------------ | -------- | -------------------- | -| description | Description of the return value. The value can be a string or a resource index to descriptions in multiple languages. The value can contain a maximum of 255 characters.| String | Yes (initial value: left empty)| -| name | Name of the return value. The value can contain a maximum of 255 characters. | String | Yes (initial value: left empty)| -| type | Type of the return value, for example, **Integer**. | String | No | - -Table 16 Internal structure of the customizeData attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ---------------------------------------------------------- | -------- | -------------------- | -| name | Key of the data item. The value is a string with a maximum of 255 bytes. | String | Yes (initial value: left empty)| -| value | Value of the data item. The value is a string with a maximum of 255 bytes. | String | Yes (initial value: left empty)| -| extra | Custom format of the data item. The value is an index to the resource that identifies the data.| String | Yes (initial value: left empty)| - -Example of the **metaData** attribute structure: - -```json -"metaData": { - "parameters" : [{ - "name" : "string", - "type" : "Float", - "description" : "$string:parameters_description" - }], - "results" : [{ - "name" : "string", - "type" : "Float", - "description" : "$string:results_description" - }], - "customizeData" : [{ - "name" : "string", - "value" : "string", - "extra" : "$string:customizeData_description" - }] -} -``` - -Table 17 Internal structure of the abilities attribute - -| Attribute | Description | Data Type | Initial Value Allowed | -| ---------------- | ------------------------------------------------------------ | ---------- | -------------------------------------------------------- | -| process | Name of the process running the application or ability. If the **process** attribute is configured in the **deviceConfig** tag, all abilities of the application run in this process. You can set the **process** attribute for a specific ability in the **abilities** attribute, so that the ability can run in the particular process. If this attribute is set to the name of the process running other applications, all these applications can run in the same process, provided they have the same unified user ID and the same signature. Devices running OpenHarmony do not support this attribute.| String | Yes (initial value: left empty) | -| name | Ability name. The value can be a reverse domain name, in the format of "*Bundle name*.*Class name*", for example, **"com.example.myapplication.MainAbility"**. Alternatively, the value can start with a period (.) followed by the class name, for example, **".MainAbility"**.
The ability name must be unique in an application. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.
Note: If you use DevEco Studio to create the project, an ability named **MainAbility** will be created together with the default configuration in the **config.json** file. The value of this attribute can be customized if you use other IDEs. The value can contain a maximum of 127 characters. | String | No | -| description | Description of the ability. The value can be a string or a resource index to descriptions in multiple languages. The value can contain a maximum of 255 characters.| String | Yes (initial value: left empty) | -| icon | Index to the ability icon file. Example value: **$media:ability_icon**. In the **skills** attribute of the ability, if the **actions** value contains **action.system.home** and the **entities** value contains **entity.system.home**, the icon of the ability is also used as the icon of the application. If multiple abilities address this condition, the icon of the first candidate ability is used as the application icon.
Note: The **icon** and **label** values of an application are visible to users. Ensure that at least one of them is different from any existing icons or labels. | String | Yes (initial value: left empty) | -| label | Ability name visible to users. The value can be a name string or a resource index to names in multiple languages. In the **skills** attribute of the ability, if the **actions** value contains **action.system.home** and the **entities** value contains **entity.system.home**, the label of the ability is also used as the label of the application. If multiple abilities address this condition, the label of the first candidate ability is used as the application label.
Note: The **icon** and **label** values of an application are visible to users. Ensure that at least one of them is different from any existing icons or labels. The value can be a reference to a string defined in a resource file or a string enclosed in brackets ({}). The value can contain a maximum of 255 characters. | String | Yes (initial value: left empty) | -| uri | Uniform Resource Identifier (URI) of the ability. The value can contain a maximum of 255 characters. | String | Yes (No for abilities using the Data template) | -| launchType | Launch type of the ability. Available values are as follows:
**"standard"**: Multiple **Ability** instances can be created during startup. Most abilities can use this type.
**"singleton"**: Only a single **Ability** instance can be created across all task stacks during startup. For example, a globally unique incoming call screen uses the singleton startup type. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types. | String | Yes (initial value: **"singleton"**) | -| visible | Whether the ability can be called by other applications.
**true**: The ability can be called by other applications.
**false**: The ability cannot be called by other applications.| Boolean | Yes (initial value: **false**) | -| permissions | Permissions required for abilities of another application to call the current ability. The value is an array of permission names predefined by the system, generally in the format of a reverse domain name the reverse domain name format (a maximum of 255 bytes).| String array| Yes (initial value: left empty) | -| skills | Types of the **want** that can be accepted by the ability. | Object array | Yes (initial value: left empty) | -| deviceCapability | Device capabilities required to run the ability.| String array| Yes (initial value: left empty) | -| metaData | Metadata. For details, see Table 13. | Object | Yes (initial value: left empty) | -| type | Ability type. Available values are as follows:
**"page"**: FA developed using the Page template to provide the capability of interacting with users.
**"service"**: PA developed using the Service template to provide the capability of running tasks in the background.
**"data"**: PA developed using the Data template to provide unified data access for external systems.
**"CA"**: ability that can be started by other applications as a window. | String | No | -| orientation | Display orientation of the ability. This attribute applies only to the ability using the Page template. Available values are as follows:
**"unspecified"**: indicates that the system automatically determines the display orientation of the ability.
**"landscape"**: indicates the landscape orientation.
**"portrait"**: indicates the portrait orientation.
**"followRecent"**: indicates that the orientation follows the most recent application in the stack. | String | Yes (initial value: **"unspecified"**) | -| backgroundModes | Background service type of the ability. You can assign multiple background service types to a specific ability. This attribute applies only to the ability using the Service template. Available values are as follows:
**dataTransfer**: service for downloading, backing up, sharing, or transferring data from the network or peer devices
**audioPlayback**: audio playback service
**audioRecording**: audio recording service
**pictureInPicture**: picture in picture (PiP) and small-window video playback services
**voip**: voice/video call and VoIP services
**location**: location and navigation services
**bluetoothInteraction**: Bluetooth scanning, connection, and transmission services
**wifiInteraction**: WLAN scanning, connection, and transmission services
**screenFetch**: screen recording and screenshot services
**multiDeviceConnection**: multi-device interconnection service| String array| Yes (initial value: left empty) | -| grantPermission | Whether permissions can be granted for any data in the ability. | Boolean | Yes (initial value: left empty) | -| readPermission | Permission required for reading data in the ability. This attribute applies only to the ability using the Data template. The value is a string with a maximum of 255 bytes. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| String | Yes (initial value: left empty) | -| writePermission | Permission required for writing data to the ability. This attribute applies only to the ability using the Data template. The value is a string with a maximum of 255 bytes. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| String | Yes (initial value: left empty) | -| configChanges | System configurations that the ability concerns. Upon any changes on the concerned configurations, the **onConfigurationUpdated** callback will be invoked to notify the ability. Available values are as follows:
**mcc**: indicates that the mobile country code (MCC) of the IMSI is changed. Typical scenario: A SIM card is detected, and the MCC is updated.
**mnc**: indicates that the mobile network code (MNC) of the IMSI is changed. Typical scenario: A SIM card is detected, and the MNC is updated.
**locale**: indicates that the locale is changed. Typical scenario: The user has selected a new language for the text display of the device.
**layout**: indicates that the screen layout is changed. Typical scenario: Currently, different display forms are all in the active state.
**fontSize**: indicates that font size is changed. Typical scenario: A new global font size is set.
**orientation**: indicates that the screen orientation is changed. Typical scenario: The user rotates the device.
**density**: indicates that the display density is changed. Typical scenario: The user may specify different display ratios, or different display forms are active at the same time.
**size**: indicates that the size of the display window is changed.
**smallestSize**: indicates that the length of the shorter side of the display window is changed.
**colorMode**: indicates that the color mode is changed.| String array| Yes (initial value: left empty) | -| mission | Task stack of the ability. This attribute applies only to the ability using the Page template. By default, all abilities in an application belong to the same task stack. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| String | Yes (initial value: bundle name of the application) | -| targetAbility | Target ability that this ability alias points to. This attribute applies only to the ability using the Page template. If the **targetAbility** attribute is set, only **name**, **icon**, **label**, **visible**, **permissions**, and **skills** take effect in the current ability (ability alias). Other attributes use the values of the **targetAbility** attribute. The target ability must belong to the same application as the alias and must be declared in **config.json** ahead of the alias. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| String | Yes (initial value: left empty, indicating that the current ability is not an alias)| -| multiUserShared | Whether the ability supports data sharing among multiple users. This attribute applies only to the ability using the Data template. If this attribute is set to **true**, only one copy of data is stored for multiple users. Note that this attribute will invalidate the **visible** attribute. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| Boolean| Yes (initial value: **false**) | -| supportPipMode | Whether the ability allows the user to enter the Picture in Picture (PiP) mode. The PiP mode enables the user to watch a video in a small window that hovers on top of a full screen window (main window). This attribute applies only to the ability using the Page template. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types.| Boolean| Yes (initial value: **false**) | -| formsEnabled | Whether the ability can provide forms. This attribute applies only to the ability using the Page template.
**true**: This ability can provide forms.
**false**: This ability cannot provide forms.| Boolean| Yes (initial value: **false**) | -| forms | Information about the forms used by the ability. This attribute is valid only when **formsEnabled** is set to **true**. For details, see Table 27.| Object array | Yes (initial value: left empty) | -| srcLanguage | Programming language used to develop the ability. The value can be **"js"** or **"ets"**. | String | Yes | -| srcPath | Path of the JS component code corresponding to the ability. | String | Yes (initial value: left empty) | -| uriPermission | Application data that the ability can access. This attribute consists of the **mode** and **path** sub-attributes. This attribute is valid only for the capability of the type provider. Devices running OpenHarmony do not support this attribute. For details, see Table 18.| Object | Yes (initial value: left empty) | -| startWindowIcon | Index to the icon file of the ability startup page. This attribute applies only to the ability using the Page template. Example: **$media:icon**.| String | Yes (initial value: left empty)| -| startWindowBackground | Index to the background color resource file of the ability startup page. This attribute applies only to the ability using the Page template. Example: **$color:red**.| String | Yes (initial value: left empty)| -| removeMissionAfterTerminate | Whether to remove the relevant task from the task list after the ability is destroyed. This attribute applies only to the ability using the Page template. The value **true** means to remove the relevant task from the task list after the ability is destroyed, and **false** means the opposite.| Boolean | Yes (initial value: **false**)| - -Table 18 Internal structure of the uriPermission attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ----------------------- | -------- | ------------------------- | -| path | Path identified by **uriPermission**.| String | No | -| mode | Mode matching the **uriPermission**.| String | Yes (initial value: *default***)| - -Example of the **abilities** attribute structure: - -```json -"abilities": [ - { - "name": ".MainAbility", - "description": "test main ability", - "icon": "$media:ic_launcher", - "label": "$media:example", - "launchType": "standard", - "orientation": "unspecified", - "permissions": [], - "visible": true, - "skills": [ - { - "actions": [ - "action.system.home" - ], - "entities": [ - "entity.system.home" - ] - } - ], - "configChanges": [ - "locale", - "layout", - "fontSize", - "orientation" - ], - "type": "page", - "startWindowIcon": "$media:icon", - "startWindowBackground": "$color:red", - "removeMissionAfterTerminate": true - }, - { - "name": ".PlayService", - "description": "example play ability", - "icon": "$media:ic_launcher", - "label": "$media:example", - "launchType": "standard", - "orientation": "unspecified", - "visible": false, - "skills": [ - { - "actions": [ - "action.play.music", - "action.stop.music" - ], - "entities": [ - "entity.audio" - ] - } - ], - "type": "service", - "backgroundModes": [ - "audioPlayback" - ] - }, - { - "name": ".UserADataAbility", - "type": "data", - "uri": "dataability://com.example.world.test.UserADataAbility", - "visible": true - } -] -``` - -Table 19 Internal structure of the skills attribute - -| Attribute| Description | Data Type | Initial Value Allowed | -| -------- | ------------------------------------------------------------ | ---------- | -------------------- | -| actions | Actions of the **want** that can be accepted by the ability. Generally, the value is an **action** value predefined in the system.| String array| Yes (initial value: left empty)| -| entities | Entities of the **want** that can be accepted by the ability, such as video and home applications.| String array| Yes (initial value: left empty)| -| uris | URIs of the **want** that can be accepted by the ability. For details, see Table 20.| Object array | Yes (initial value: left empty)| - -Table 20 Internal structure of the uris attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ------------- | -------------------------- | -------- | -------------------- | -| scheme | Scheme of the URI. | String | No | -| host | Host value of the URI. | String | Yes (initial value: left empty)| -| port | Port number of the URI. | String | Yes (initial value: left empty)| -| pathStartWith | **pathStartWith** value of the URI.| String | Yes (initial value: left empty)| -| path | **path** value of the URI. | String | Yes (initial value: left empty)| -| pathRegx | **pathRegx** value of the URI. | String | Yes (initial value: left empty)| -| type | **type** value of the URI. | String | Yes (initial value: left empty)| - -Example of the **skills** attribute structure: - -```json -"skills": [ - { - "actions": [ - "action.system.home" - ], - "entities": [ - "entity.system.home" - ], - "uris": [ - { - "scheme": "http", - "host": "www.example.com", - "port": "8080", - "path": "query/student/name", - "type": "text/*" - } - ] - } -] -``` - -Table 21 reqPermissions - -| Attribute | Description | Data Type| Initial Value Allowed | -| ---------- | ------------------------------------------------------------ | -------- | ------------------ | -| name | Name of the permission to request.| String| No| -| reason | Reason for requesting the permission. The value cannot exceed 256 bytes. Multi-language adaptation is required.| String| No if the requested permission is **user_grant** (if it is left empty, application release will be rejected)| -| usedScene | Application scenario and timing for using the permission. This attribute consists of the **ability** and **when** sub-attributes. **ability**: ability name. Multiple ability names can be configured. **when**: time for using the permission. The options are **inuse** and **always**.| Object| **ability**: mandatory for the **user_grant** permission and can be left empty in other cases
**when**: initial value allowed (initial value: **inuse**)| -For details, see [Access Control (Permission) Development](../security/accesstoken-guidelines.md#fa-model). - -Table 22 Internal structure of the js attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ------------------------------------------------------------ | -------- | ------------------------ | -| name | Name of the JS component. The default value is **default**. | String | No | -| pages | Route information about all pages in the JS component, including the page path and page name. The value is an array, in which each element represents a page. The first element in the array represents the home page of the JavaScript FA.| Array | No | -| window | Window-related configurations. This attribute applies only to the default, tablet, smart TV, head unit, and wearable device types. For details, see Table 23.| Object | Yes | -| type | Type of the JS component. Available values are as follows:
**"normal"**: indicates that the JavaScript component is an application instance.
**"form"**: indicates that the JavaScript component is a widget instance. | String | Yes (initial value: **"normal"**) | -| mode | Development mode of the JS component. For details, see Table 24. | Object | Yes (initial value: left empty) | - -Table 23 Internal structure of the window attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| --------------- | ------------------------------------------------------------ | -------- | ----------------------- | -| designWidth | Baseline width for page design. The size of an element is scaled by the actual device width.| Number | Yes (initial value: 720px) | -| autoDesignWidth | Whether to automatically calculate the baseline width for page design. If it is set to **true**, the **designWidth** attribute becomes invalid. The baseline width is calculated based on the device width and screen density.| Boolean | Yes (initial value: **false**)| - -Table 24 Internal structure of the mode attribute - -| Attribute| Description | Data Type | Initial Value Allowed | -| -------- | -------------------- | ----------------------------------- | --------------------------- | -| type | Type of the JS component. The value can be **"pageAbility"** or **"form"**. | String | Yes (initial value: **"pageAbility"**) | -| syntax | Syntax type of the JS component. The value can be **"hml"** or **"ets"**. | String | Yes (initial value: **"hml"**) | - -Example of the **js** attribute structure: - -```json -"js": [ - { - "name": "default", - "pages": [ - "pages/index/index", - "pages/detail/detail" - ], - "window": { - "designWidth": 720, - "autoDesignWidth": false - }, - "type": "form" - } -] -``` - -Table 25 Internal structure of the shortcuts attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ---------- | ------------------------------------------------------------ | -------- | ------------------ | -| shortcutId | ID of the shortcut. The value is a string with a maximum of 63 bytes. | String | No | -| label | Label of the shortcut, that is, the text description displayed for the shortcut. The value can be a string or a resource index to the description. The value is a string with a maximum of 63 bytes.| String | Yes (initial value: left empty)| -| icon | Icon of the shortcut. The value is a resource index to the description. | String | Yes (initial value: left empty)| -| intents | Intents to which the shortcut points. The attribute consists of the **targetClass** and **targetBundle** sub-attributes. For details, see Table 26.| Object array| Yes (initial value: left empty)| - -Table 26 Internal structure of the intents attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ------------ | --------------------------------------- | -------- | -------------------- | -| targetClass | Target class of the shortcut. | String | Yes (initial value: left empty)| -| targetBundle | Application bundle name for the target ability of the shortcut.| String | Yes (initial value: left empty)| - -Example of the **shortcuts** attribute structure: - -```json -"shortcuts": [ - { - "shortcutId": "id", - "label": "$string:shortcut", - "intents": [ - { - "targetBundle": "com.example.world.test", - "targetClass": "com.example.world.test.entry.MainAbility" - } - ] - } -] -``` - -Table 27 Internal structure of the forms attribute - -| Attribute | Description | Data Type | Initial Value Allowed | -| ------------------- | ------------------------------------------------------------ | ---------- | ------------------------ | -| name | Class name of the widget. The value is a string with a maximum of 127 bytes. | String | No | -| description | Description of the widget. The value can be a string or a resource index to descriptions in multiple languages. The value is a string with a maximum of 255 bytes.| String | Yes (initial value: left empty) | -| isDefault | Whether the widget is a default one. Each ability has only one default widget.
**true**: The widget is the default one.
**false**: The widget is not the default one.| Boolean | No | -| type | Type of the widget. Available values are as follows:
**JS**: indicates a JavaScript-programmed widget. | String | No | -| colorMode | Color mode of the widget. Available values are as follows:
**auto**: The widget adopts the auto-adaptive color mode.
**dark**: The widget adopts the dark color mode.
**light**: The widget adopts the light color mode.| String | Yes (initial value: **auto**)| -| supportDimensions | Grid styles supported by the widget. Available values are as follows:
1 * 2: indicates a grid with one row and two columns.
2 * 1: indicates a grid with two rows and one column.
2 * 2: indicates a grid with two rows and two columns.
2 * 4: indicates a grid with two rows and four columns.
4 * 4: indicates a grid with four rows and four columns.| String array| No | -| defaultDimension | Default grid style of the widget. The value must be from the **supportDimensions** array of the widget.| String | No | -| updateEnabled | Whether the widget can be updated periodically. Available values are as follows:
**true**: The widget can be updated periodically, depending on the update way you select, either at a specified interval (**updateDuration**) or at the scheduled time (**scheduledUpdateTime**). **updateDuration** is preferentially recommended.
**false**: The widget cannot be updated periodically.| Boolean | No | -| scheduledUpdateTime | Scheduled time to update the widget. The value is in 24-hour format and accurate to minute. | String | Yes (initial value: **0:0**) | -| updateDuration | Interval to update the widget. The value is a natural number, in the unit of 30 minutes.
If the value is **0**, this field does not take effect.
If the value is a positive integer ***N***, the interval is calculated by multiplying ***N*** and 30 minutes.| Number | Yes (initial value: **0**) | -| formConfigAbility | Name of the facility or activity used to adjust the ability. | String | Yes (initial value: left empty) | -| formVisibleNotify | Whether the widget is allowed to use the widget visibility notification. | String | Yes (initial value: left empty) | -| jsComponentName | Component name of the widget. The value is a string with a maximum of 127 bytes. This attribute is required only by JavaScript-programmed widgets.| String | No | -| metaData | Metadata of the widget. The value contains value of the **customizeData** attribute. For details, see Table 13. | Object | Yes (initial value: left empty) | -| customizeData | Custom information of the widget. For details, see Table 28. | Object array | Yes (initial value: left empty) | - -Table 28 Internal structure of the customizeData attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | --------------------------------------------------- | -------- | -------------------- | -| name | Key name that identifies a data item. The value is a string with a maximum of 255 bytes. | String | Yes (initial value: left empty)| -| value | Value of the data item. The value is a string with a maximum of 255 bytes. | String | Yes (initial value: left empty)| -| extra | Current format of the custom data. The value indicates the resource.| String | Yes (initial value: left empty)| - -Example of the **forms** attribute structure: - -```json -"forms": [ - { - "name": "Form_Js", - "description": "It's Js Form", - "type": "JS", - "jsComponentName": "card", - "colorMode": "auto", - "isDefault": true, - "updateEnabled": true, - "scheduledUpdateTime": "11:00", - "updateDuration": 1, - "defaultDimension": "2*2", - "supportDimensions": [ - "2*2", - "2*4", - "4*4" - ] - }, - { - "name": "Form_Js", - "description": "It's JS Form", - "type": "Js", - "colorMode": "auto", - "isDefault": false, - "updateEnabled": true, - "scheduledUpdateTime": "21:05", - "updateDuration": 1, - "defaultDimension": "1*2", - "supportDimensions": [ - "1*2" - ], - "landscapeLayouts": [ - "$layout:ability_form" - ], - "portraitLayouts": [ - "$layout:ability_form" - ], - "formConfigAbility": "ability://com.example.myapplication.fa/.MainAbility", - "metaData": { - "customizeData": [ - { - "name": "originWidgetName", - "value": "com.example.weather.testWidget" - } - ] - } - } -] -``` - -Table 29 Internal structure of the distroFilter attribute - -| Attribute | Description | Data Type| Initial Value Allowed | -| ------------- | ------------------------------------------------------------ | -------- | -------------------- | -| apiVersion | Supported API versions. For details, see Table 30. | Object | Yes (initial value: left empty)| -| screenShape | Supported screen shapes. For details, see Table 31. | Object array| Yes (initial value: left empty)| -| screenWindow | Supported window resolutions for when the application is running. This attribute applies only to the lite wearables. For details, see Table 32.| Object array| Yes (initial value: left empty)| -| screenDensity | Pixel density of the screen, in dots per inch (dpi). For details, see Table 33. | Object array| Yes (initial value: left empty)| -| countryCode | Country code used for distributing the application. For details, see the ISO-3166-1 standard. Multiple enumerated values of countries and regions are supported. For details, see Table 34.| Object array| Yes (initial value: left empty)| - -Table 30 Internal structure of the apiVersion attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ------------------------------------------------------------ | -------- | -------------------- | -| policy | Blocklist and trustlist rule of the sub-attribute value. Set this attribute to **exclude** or **include**. **include** indicates that the sub-attribute value is in the trustlist. If the value matches any of the **value** enums, it matches this attribute.| String | Yes (initial value: left empty)| -| value | An integer of the existing API version, for example, 4, 5, or 6. Example: If an application uses two software versions developed using API 5 and API 6 for the same device model, two installation packages of the entry type can be released.| Array | Yes (initial value: left empty)| - -Table 31 Internal structure of the screenShape attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ------------------------------------------------------------ | -------- | -------------------- | -| policy | Blocklist and trustlist rule of the sub-attribute value. Set this attribute to **exclude** or **include**. **include** indicates that the sub-attribute value is in the trustlist. If the value matches any of the **value** enums, it matches this attribute.| String | Yes (initial value: left empty)| -| value | The value can be **circle** or **rect**. Example: Different HAPs can be provided for a smart watch with a circular face and that with a rectangular face.| Array | Yes (initial value: left empty)| - -Table 32 Internal structure of the screenWindow attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ------------------------------------------------------------ | -------- | -------------------- | -| policy | Blocklist and trustlist rule of the sub-attribute value. Set this attribute to **exclude** or **include**. **include** indicates that the sub-attribute value is in the trustlist. If the value matches any of the **value** enums, it matches this attribute.| String | Yes (initial value: left empty)| -| value | Width and height of the screen. The value of a single string is in the format of Width x Height in pixels, for example, **454*454**.| Array | Yes (initial value: left empty)| - -Table 33 Internal structure of the screenDensity attribute - -| Attribute| Description | Data Type| Initial Value Allowed | -| -------- | ------------------------------------------------------------ | -------- | -------------------- | -| policy | Blocklist and trustlist rule of the sub-attribute value. Set this attribute to **exclude** or **include**. **include** indicates that the sub-attribute value is in the trustlist. If the value matches any of the **value** enums, it matches this attribute.| String | Yes (initial value: left empty)| -| value | Available values are as follows:
**sdpi**: screen density with small-scale dots per inch (SDPI). This value is applicable for devices with a DPI range of (0, 120].
**mdpi**: screen density with medium-scale dots per inch (MDPI). This value is applicable for devices with a DPI range of (120, 160].
**ldpi**: screen density with large-scale dots per inch (LDPI). This value is applicable for devices with a DPI range of (160, 240].
**xldpi**: screen density with extra-large-scale dots per inch (XLDPI). This value is applicable for devices with a DPI range of (240, 320].
**xxldpi**: screen density with extra-extra-large-scale dots per inch (XXLDPI). This value is applicable for devices with a DPI range of (320, 480].
**xxxldpi**: screen density with extra-extra-extra-large-scale dots per inch (XXXLDPI). This value is applicable for devices with a DPI range of (480, 640].| Array | Yes (initial value: left empty)| - -Table 34 Internal structure of the countryCode attribute - -| Attribute| Description | Data Type | Initial Value Allowed | -| -------- | ------------------------------------------------------------ | ---------- | -------------------- | -| policy | Blocklist and trustlist rule of the sub-attribute value. Set this attribute to **exclude** or **include**. **include** indicates that the sub-attribute value is in the trustlist. If the value matches any of the **value** enums, it matches this attribute.| String | Yes (initial value: left empty)| -| value | Country code of the area to which the application is to be distributed. The value is a string array, of which each substring indicates a country or region. The substring consists of two uppercase letters.| String array| Yes (initial value: left empty)| - -Example of the **distroFilter** attribute structure: - -```json -"distroFilter": { - "apiVersion": { - "policy": "include", - "value": [4,5] - }, - "screenShape": { - "policy": "include", - "value": ["circle","rect"] - }, - "screenWindow": { - "policy": "include", - "value": ["454*454","466*466"] - }, - "screenDensity":{ - "policy": "exclude", - "value": ["ldpi","xldpi"] - }, - "countryCode": { - "policy":"include", - "value":["CN","HK"] - } -} -``` - -Table 35 Internal structure of the commonEvents attribute - -| Attribute | Description | Data Type | Initial Value Allowed | -| ---------- | ------------------------------------------------------------ | ---------- | ------------------ | -| name | Name of a static broadcast. | String | No | -| permission | Permission needed to implement the static common event. | String array| Yes (initial value: left empty)| -| data | Additional data array to be carried by the current static common event. | String array| Yes (initial value: left empty)| -| type | Type array of the current static common event. | String array| Yes (initial value: left empty)| -| events | A set of events for the wants that can be received. The value can be system predefined or custom.| String array| No | - -Example of the **commonEvents** attribute structure: - -```json -"commonEvents": [ - { - "name":"MainAbility", - "permission": "string", - "data":[ - "string", - "string" - ], - "events": [ - "string", - "string" - ] - } -] -``` - -Table 36 Internal structure of the testRunner attribute - -| Attribute| Description | Data Type| Initial Value Allowed| -| -------- | -------------------- | -------- | ---------- | -| name | Name of the test runner object.| String | No | -| srcPath | Path of the test runner code.| String | No | - -```json -"testRunner": { - "name": "myTestRUnnerName", - "srcPath": "etc/test/TestRunner.ts" -} -``` - -Table 37 Internal structure of the definePermissions attribute -**definePermission** applies only to system applications and does not take effect for third-party applications. - -| Attribute | Description | Data Type| Initial Value Allowed| -| ----------------------- | ------------------------------------------------------------ | -------- | ---------- | -| name | Permission name. | String | No | -| grantMode | Permission grant mode.
Available values are as follows:
**"system_grant"**: The permission is automatically granted by the system after the application is installed.
**"user_grant"**: The permission must be dynamically requested and can be used only after being granted by the user. | String | Yes (initial value: **"system_grant"**) | -| availableLevel | Permission level. Available values are as follows:
**"system_core"**: core system permission.
**"system_basic"**: basic system permission.
**"normal"**: normal permission, which is open to all applications. | String | Yes (initial value: **"normal"**) | -| provisionEnable | Whether the permission can be requested in provision mode. | Boolean | Yes (initial value: **true**) | -| distributedSceneEnabled | Whether the permission can be used in distributed scenarios. | Boolean | Yes (initial value: **false**) | -| label | Brief description of the permission. The value is a resource index. | String | Yes | -| description | Detailed description of the permission, which can be a string or a resource index.| String | Yes | diff --git a/en/application-dev/reference/Readme-EN.md b/en/application-dev/reference/Readme-EN.md index 80356f76fa..85bb902ce5 100644 --- a/en/application-dev/reference/Readme-EN.md +++ b/en/application-dev/reference/Readme-EN.md @@ -1,6 +1,6 @@ # Development References - [SystemCapability](syscap.md) -- [SysCap List](syscap-list.md) +- [SystemCapability List](syscap-list.md) - [Component Reference (ArkTS-based Declarative Development Paradigm)](arkui-ts/Readme-EN.md) - [Component Reference (JavaScript-compatible Web-like Development Paradigm)](arkui-js/Readme-EN.md) - [JS Service Widget UI Component Reference](js-service-widget-ui/Readme-EN.md) diff --git a/en/application-dev/reference/syscap.md b/en/application-dev/reference/syscap.md index 295ec50046..c800e185a8 100644 --- a/en/application-dev/reference/syscap.md +++ b/en/application-dev/reference/syscap.md @@ -4,7 +4,7 @@ ### System Capabilities and APIs -SysCap is short for SystemCapability. It refers to a standalone feature in the operating system, for example, Bluetooth, Wi-Fi, NFC, or camera. Each SysCap corresponds to a set of APIs, whose availability depends on the support of the target device. Such a set of APIs can be provided in DevEco Studio for association. +SystemCapability (SysCap in short) refers to a standalone feature in the operating system, for example, Bluetooth, Wi-Fi, NFC, or camera. Each SysCap corresponds to a set of APIs, whose availability depends on the support of the target device. Such a set of APIs can be provided in DevEco Studio for association. ![image-20220326064841782](figures/image-20220326064841782.png) -- GitLab From 271f5307eee3d57e77ef947c4955e3a971e863b5 Mon Sep 17 00:00:00 2001 From: Gloria Date: Fri, 13 Jan 2023 13:46:36 +0800 Subject: [PATCH 225/383] Update docs against 12364 Signed-off-by: wusongqing --- .../reference/errorcodes/errorcode-avsession.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/en/application-dev/reference/errorcodes/errorcode-avsession.md b/en/application-dev/reference/errorcodes/errorcode-avsession.md index 98b811bd15..a072aa68d0 100644 --- a/en/application-dev/reference/errorcodes/errorcode-avsession.md +++ b/en/application-dev/reference/errorcodes/errorcode-avsession.md @@ -4,7 +4,7 @@ **Error Message** -Session service exception +Session service exception. **Description** @@ -24,7 +24,7 @@ The session service is killed during session restart. **Error Message** -The session does not exist +The session does not exist. **Description** @@ -44,7 +44,7 @@ The session has been destroyed, and no session record exists on the server. **Error Message** -The session controller does not exist +The session controller does not exist. **Description** @@ -62,7 +62,7 @@ Query the session record and create the corresponding controller. **Error Message** -The remote session connection failed +The remote session connection failed. **Description** @@ -80,7 +80,7 @@ Stop sending control commands to the session. Subscribe to output device changes **Error Message** -Invalid session command +Invalid session command. **Description** @@ -98,7 +98,7 @@ Stop sending the command or event. Query the commands supported by the session, **Error Message** -The session not active +The session is not activated. **Description** @@ -116,7 +116,7 @@ Stop sending the command or event. Subscribe to the session activation status, a **Error Message** -Command or event overload +Too many commands or events. **Description** -- GitLab From d16adc236fb95ee8a1142dde25738c73de59fb01 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Fri, 13 Jan 2023 14:20:53 +0800 Subject: [PATCH 226/383] update doc Signed-off-by: shawn_he --- en/application-dev/device/usb-guidelines.md | 11 +- .../reference/apis/js-apis-usb.md | 8 +- .../subsystems/subsys-usbservice-overview.md | 294 +++++++++++++++++- 3 files changed, 294 insertions(+), 19 deletions(-) diff --git a/en/application-dev/device/usb-guidelines.md b/en/application-dev/device/usb-guidelines.md index 768866b497..63723d92c6 100644 --- a/en/application-dev/device/usb-guidelines.md +++ b/en/application-dev/device/usb-guidelines.md @@ -14,11 +14,10 @@ The following table lists the USB APIs currently available. For details, see the | API | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | -| hasRight(deviceName: string): boolean | Checks whether the user, for example, the application or system, has the device access permissions. The value **true** is returned if the user has the device access permissions; the value **false** is returned otherwise. | -| requestRight(deviceName: string): Promise\ | Requests the temporary permission for a given application to access the USB device. | -| removeRight(deviceName: string): boolean | Removes the permission for a given application to access the USB device. | -| connectDevice(device: USBDevice): Readonly\ | Connects to the USB device based on the device information returned by `getDevices()`. | -| getDevices(): Array> | Obtains the USB device list. | +| hasRight(deviceName: string): boolean | Checks whether the user has the device access permissions. | +| requestRight(deviceName: string): Promise\ | Requests the temporary permission for a given application to access the USB device. This API uses a promise to return the result. | +| connectDevice(device: USBDevice): Readonly\ | Connects to the USB device based on the device list returned by `getDevices()`. | +| getDevices(): Array> | Obtains the list of USB devices connected to the USB host. If no USB device is connected, an empty list is returned. | | setConfiguration(pipe: USBDevicePipe, config: USBConfig): number | Sets the USB device configuration. | | setInterface(pipe: USBDevicePipe, iface: USBInterface): number | Sets a USB interface. | | claimInterface(pipe: USBDevicePipe, iface: USBInterface, force?: boolean): number | Claims a USB interface. | @@ -37,7 +36,7 @@ You can set a USB device as the USB host to connect to other USB devices for dat ```js // Import the USB API package. - import usb from '@ohos.usb'; + import usb from '@ohos.usbV9'; // Obtain the USB device list. let deviceList = usb.getDevices(); /* diff --git a/en/application-dev/reference/apis/js-apis-usb.md b/en/application-dev/reference/apis/js-apis-usb.md index b7e1c63263..db5f65e888 100644 --- a/en/application-dev/reference/apis/js-apis-usb.md +++ b/en/application-dev/reference/apis/js-apis-usb.md @@ -86,7 +86,7 @@ console.log(`devicesList = ${JSON.stringify(devicesList)}`); connectDevice(device: USBDevice): Readonly<USBDevicePipe> -Connects to a USB device. +Connects to a USB device based on the device list obtained by using **getDevices()**. Before you do this, call [usb.getDevices](#usbgetdevices) to obtain the USB device list and device information, and then call [usb.requestRight](#usbrequestright) to request the device access permission. @@ -133,6 +133,8 @@ hasRight(deviceName: string): boolean Checks whether the application has the permission to access the device. +The value **true** is returned if the device access permission is available; the value **false** is returned otherwise. + **System capability**: SystemCapability.USB.USBManager **Parameters** @@ -186,7 +188,7 @@ usb.requestRight(devicesName).then((ret) => { ## usb.removeRight -removeRight(deviceName: string): boolean; +removeRight(deviceName: string): boolean Removes the permission for the application to access a USB device. @@ -215,7 +217,7 @@ if (usb.removeRight(devicesName) { ## usb.addRight -addRight(bundleName: string, deviceName: string): boolean; +addRight(bundleName: string, deviceName: string): boolean Adds the permission for the application to access a USB device. diff --git a/en/device-dev/subsystems/subsys-usbservice-overview.md b/en/device-dev/subsystems/subsys-usbservice-overview.md index f4ed4c4d9a..8981a02b99 100644 --- a/en/device-dev/subsystems/subsys-usbservice-overview.md +++ b/en/device-dev/subsystems/subsys-usbservice-overview.md @@ -1,24 +1,51 @@ -# USB Overview - +# USB ## Introduction +### Function Description + USB devices are classified into two types: USB host and USB device. On OpenHarmony, you can use the port service to switch between the host mode and device mode. In host mode, you can obtain the list of connected USB devices, manage device access permissions, and perform bulk transfer or control transfer between the host and connected devices. In device mode, you can switch between functions including HDC (debugging), ACM (serial port), and ECM (Ethernet port). +### Basic Concepts + +- USB service + + An abstraction of underlying hardware-based USB devices. Your application can access the USB devices via the USB service. With the APIs provided by the USB service, you can obtain the list of connected USB devices, manage device access permissions, and perform data transfer or control transfer between the host and connected devices. + +- USB API + + A collection of JS APIs provided for the upper layer through NAPI. Your application can use USB APIs to implement various basic functions, for example, query of the USB device list, USB device plug notification, USB host and device mode switching, bulk transfer, control transfer, right management, and function switching in device mode. + +- USB Service layer + + A layer implemented by using the C++ programming language. It consists of four modules: Host, Device, Port, and Right. HDI-based APIs provided by USB Service are mainly used to implement management of USB device list, USB functions, USB ports, and USB device access permissions. The USB Service layer interacts with the HAL layer to receive, parse, and distribute data, manages foreground and background policies, and performs USB device management and right control. + +- USB HAL layer + + A layer implemented by using the C programming language. Based on the Host Driver Development Kit (SDK) and Device DDK, USB HAL encapsulates basic USB device operations, provides C++ APIs for the upper layer, and receives information from the kernel through the Hardware Driver Foundation (HDF) framework. + +### Working Principles + +The USB subsystem logically consists of three parts: USB API, USB Service, and USB HAL. The following figure shows how the USB service is implemented. + **Figure 1** USB service architecture ![USB service architecture](figure/en-us_image_0000001267088285.png) -The USB service architecture consists of three layers: -- USB API: a layer that provides JS APIs for the upper layer through NAPI. +- USB API: provides USB APIs that implement various basic functions, for example, query of the USB device list, bulk data transfer, control transfer, and right management. + +- USB Service: receives, parses, and distributes Hardware Abstraction Layer (HAL) data, manages and controls foreground and background policies, and manages devices. -- USB service: a layer implemented by using the C++ programming language and logically divided into the Host, Device, and Port modules. HDI-based APIs provided by USB Service are mainly used to implement management of USB device list, USB functions, USB ports, and USB device access permissions. +- USB HAL: provides driver capability APIs that can be directly called in user mode. -- USB HAL: a layer implemented by using the C programming language. Based on the Host Driver Development Kit (SDK) and Device DDK, USB HAL encapsulates basic USB device operations, provides C++ APIs for the upper layer, and receives information from the kernel through the Hardware Driver Foundation (HDF) framework. +## Usage Guidelines +### When to Use -## Available APIs +In Host mode, you can obtain the list of connected devices, enable or disable the devices, manage device access permissions, and perform data transfer or control transfer. -- Host +### APIs + + **Table 1** Host-specific APIs | API | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | @@ -46,7 +73,7 @@ The USB service architecture consists of three layers: | int32_t BulkWrite(USBDevicePipe &pip, const USBEndpoint &endpoint, sptr &ashmem); | Writes data asynchronously during bulk transfer. | | int32_t BulkCancel(USBDevicePipe &pip, const USBEndpoint &endpoint); | Cancels bulk transfer. The asynchronous read and write operations on the current USB interface will be cancelled. | -- Device + **Table 2** Device-specific APIs | API | Description | | -------------------------------------------------- | ------------------------------------------------------ | @@ -55,10 +82,257 @@ The USB service architecture consists of three layers: | int32_t UsbFunctionsFromString(std::string funcs); | Converts the string descriptor of a given USB function list to a numeric mask combination.| | std::string UsbFunctionsToString(int32_t funcs); | Converts the numeric mask combination of a given USB function list to a string descriptor.| -- Port + **Table 3** Port-specific APIs | API | Description | | ------------------------------------------------------------ | -------------------------------------------------------- | | int32_t GetSupportedModes(int32_t portId, int32_t &supportedModes); | Obtains the mask combination for the supported mode list of a given port. | | int32_t SetPortRole(int32_t portId, int32_t powerRole, int32_t dataRole); | Sets the role types supported by a specified port, which can be **powerRole** (for charging) and **dataRole** (for data transfer).| | int32_t GetPorts(std::vector &usbPorts); | Obtains the USB port descriptor list. | + +### How to Use + +The following uses bulk transfer as an example to illustrate the development procedure. + +1. Obtain a USB service instance. + + ```cpp + static OHOS::USB::UsbSrvClient &g_usbClient = OHOS::USB::UsbSrvClient::GetInstance(); + ``` + +2. Obtain the USB device list. + + ```cpp + std::vector deviceList; + int32_t ret = g_usbClient.GetDevices(deviceList); + ``` + +3. Apply for device access permissions. + + ```cpp + int32_t ret = g_usbClient.RequestRight(device.GetName()); + ``` + +4. Open a camera device. + + ```cpp + USBDevicePipe pip; + int32_t et = g_usbClient.OpenDevice(device, pip); + ``` + +5. Configure the USB interface. + + ```cpp + // interface indicates an interface of the USB device in deviceList. + ret = g_usbClient.ClaimInterface(pip, interface, true); + ``` + +6. Perform data transfer. + + ```cpp + // pipe indicates the pipe for data transfer after the USB device is opened. endpoint indicates the endpoint for data transfer on the USB device. vdata indicates the binary data block to be transferred or read. timeout indicates the timeout duration of data transfer. + srvClient.BulkTransfer(pipe, endpoint, vdata, timeout); + ``` + +7. Closes a device. + + ```cpp + ret = g_usbClient.Close(pip); + ``` + +### Sample Code + +```cpp +#include +#include +#include +#include +#include +#include +#include "if_system_ability_manager.h" +#include "ipc_skeleton.h" +#include "iremote_object.h" +#include "iservice_registry.h" +#include "iusb_srv.h" +#include "string_ex.h" +#include "system_ability_definition.h" +#include "usb_common.h" +#include "usb_device.h" +#include "usb_errors.h" +#include "usb_request.h" +#include "usb_server_proxy.h" +#include "usb_srv_client.h" + +const int32_t REQUESTYPE = ((1 << 7) | (0 << 5) | (0 & 0x1f)); +const int32_t REQUESTCMD = 6; +const int32_t VALUE = (2 << 8) + 0; +const int32_t TIMEOUT = 5000; +const int32_t ITFCLASS = 10; +const int32_t PRAMATYPE = 2; +const int32_t BUFFERLENGTH = 21; + +void GetType(OHOS::USB::USBEndpoint &tep, OHOS::USB::USBEndpoint &outEp, bool &outEpFlg) +{ + if ((tep.GetType() == PRAMATYPE)) { + if (tep.GetDirection() == 0) { + outEp = tep; + outEpFlg = true; + } + } +} + +bool SelectEndpoint(OHOS::USB::USBConfig config, + std::vector interfaces, + OHOS::USB::UsbInterface &interface, + OHOS::USB::USBEndpoint &outEp, + bool &outEpFlg) +{ + for (int32_t i = 0; i < config.GetInterfaceCount(); ++i) { + OHOS::USB::UsbInterface tif = interfaces[i]; + std::vector mEndpoints = tif.GetEndpoints(); + for (int32_t j = 0; j < tif.GetEndpointCount(); ++j) { + OHOS::USB::USBEndpoint tep = mEndpoints[j]; + if ((tif.GetClass() == ITFCLASS) && (tif.GetSubClass() == 0) && (tif.GetProtocol() == PRAMATYPE)) { + GetType(tep, outEp, outEpFlg); + } + } + if (outEpFlg) { + interface = interfaces[i]; + return true; + } + std::cout << std::endl; + } + return false; +} + +int OpenDeviceTest(OHOS::USB::UsbSrvClient &Instran, OHOS::USB::UsbDevice device, OHOS::USB::USBDevicePipe &pip) +{ + int ret = Instran.RequestRight(device.GetName()); + std::cout << "device RequestRight ret = " << ret << std::endl; + if (0 != ret) { + std::cout << "device RequestRight failed = " << ret << std::endl; + } + ret = Instran.OpenDevice(device, pip); + return ret; +} + +int CtrTransferTest(OHOS::USB::UsbSrvClient &Instran, OHOS::USB::USBDevicePipe &pip) +{ + std::cout << "usb_device_test : << Control Transfer >> " << std::endl; + std::vector vData; + const OHOS::USB::UsbCtrlTransfer tctrl = {REQUESTYPE, REQUESTCMD, VALUE, 0, TIMEOUT}; + int ret = Instran.ControlTransfer(pip, tctrl, vData); + if (ret != 0) { + std::cout << "control message read failed width ret = " << ret << std::endl; + } else { + } + std::cout << "control message read success" << std::endl; + + return ret; +} + +int ClaimTest(OHOS::USB::UsbSrvClient &Instran, + OHOS::USB::USBDevicePipe &pip, + OHOS::USB::UsbInterface &interface, + bool interfaceFlg) +{ + if (interfaceFlg) { + std::cout << "ClaimInterface InterfaceInfo:" << interface.ToString() << std::endl; + int ret = Instran.ClaimInterface(pip, interface, true); + if (ret != 0) { + std::cout << "ClaimInterface failed width ret = " << ret << std::endl; + } else { + std::cout << "ClaimInterface success" << std::endl; + } + } + return 0; +} + +int BulkTransferTest(OHOS::USB::UsbSrvClient &Instran, + OHOS::USB::USBDevicePipe &pip, + OHOS::USB::USBEndpoint &outEp, + bool interfaceFlg, + bool outEpFlg) +{ + if (interfaceFlg) { + std::cout << "usb_device_test : << Bulk transfer start >> " << std::endl; + if (outEpFlg) { + uint8_t buffer[50] = "hello world 123456789"; + std::vector vData(buffer, buffer + BUFFERLENGTH); + int ret = Instran.BulkTransfer(pip, outEp, vData, TIMEOUT); + if (ret != 0) { + std::cout << "Bulk transfer write failed width ret = " << ret << std::endl; + } else { + std::cout << "Bulk transfer write success" << std::endl; + } + return ret; + } + } + return 0; +} + +int main(int argc, char **argv) +{ + std::cout << "usb_device_test " << std::endl; + static OHOS::USB::UsbSrvClient &Instran = OHOS::USB::UsbSrvClient::GetInstance(); + // GetDevices + std::vector deviceList; + int32_t ret = Instran.GetDevices(deviceList); + if (ret != 0) { + return OHOS::USB::UEC_SERVICE_INVALID_VALUE; + } + if (deviceList.empty()) { + return OHOS::USB::UEC_SERVICE_INVALID_VALUE; + } + + OHOS::USB::UsbDevice device = deviceList[0]; + std::vector configs = device.GetConfigs(); + OHOS::USB::USBConfig config = configs[0]; + std::vector interfaces = config.GetInterfaces(); + OHOS::USB::UsbInterface interface; + OHOS::USB::USBEndpoint outEp; + bool interfaceFlg = false; + bool outEpFlg = false; + interfaceFlg = SelectEndpoint(config, interfaces, interface, outEp, outEpFlg); + + // OpenDevice + std::cout << "usb_device_test : << OpenDevice >> test begin -> " << std::endl; + OHOS::USB::USBDevicePipe pip; + ret = OpenDeviceTest(Instran, device, pip); + if (ret != 0) { + return OHOS::USB::UEC_SERVICE_INVALID_VALUE; + } + + // ControlTransfer + CtrTransferTest(Instran, pip); + + // ClaimInterface + ClaimTest(Instran, pip, interface, interfaceFlg); + + // BulkTransferWrite + BulkTransferTest(Instran, pip, outEp, interfaceFlg, outEpFlg); + + // CloseDevice + std::cout << "usb_device_test : << Close Device >> " << std::endl; + ret = Instran.Close(pip); + if (ret == 0) { + std::cout << "Close device failed width ret = " << ret << std::endl; + return OHOS::USB::UEC_SERVICE_INVALID_VALUE; + } else { + std::cout << "Close Device success" << std::endl; + } + return 0; +} +``` + +### Repositories Involved + +[Driver subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/driver.md) + +[drivers\_peripheral](https://gitee.com/openharmony/drivers_peripheral/blob/master/README_zh.md) + +[drivers\_framework](https://gitee.com/openharmony/drivers_framework/blob/master/README_zh.md) + +[drivers\_adapter](https://gitee.com/openharmony/drivers_adapter/blob/master/README_zh.md) + +[drivers\_adapter\_khdf\_linux](https://gitee.com/openharmony/drivers_adapter_khdf_linux/blob/master/README_zh.md) -- GitLab From ef7dbe7564025faa81aa5c1a12d8b8362fc7fef4 Mon Sep 17 00:00:00 2001 From: wangchen <253227059@qq.com> Date: Wed, 11 Jan 2023 02:29:35 +0000 Subject: [PATCH 227/383] =?UTF-8?q?fix:=20M=E6=A0=B8=E8=B5=84=E6=96=99?= =?UTF-8?q?=E6=8F=8F=E8=BF=B0=E5=92=8C=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 方案描述: 1,按测试沟通的文档问题进行修改 fix #I69MWH Signed-off-by: wangchen --- zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md | 9 ++++++--- zh-cn/device-dev/kernel/kernel-mini-extend-file.md | 10 ++++++++-- zh-cn/device-dev/kernel/kernel-mini-memory-debug.md | 10 ++++++++-- zh-cn/device-dev/kernel/kernel-mini-memory-trace.md | 2 ++ 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md b/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md index 3bb9218ea7..275c839d1f 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md +++ b/zh-cn/device-dev/kernel/kernel-mini-extend-cpup.md @@ -51,16 +51,19 @@ OpenHarmony LiteOS-M提供以下两种CPU占用率的信息查询: | 输出任务CPU占用率 | LOS_CpupUsageMonitor:输出任务历史CPU占用率 | | 获取中断CPU占用率 | LOS_GetAllIrqCpuUsage:获取所有中断CPU占用率 | - ## 开发流程 +在kernel/liteos_m目录下执行 make menuconfig 命令配置"Kernel->Enable Cpup"中打开YES开启任务cpup; + +开启后出现新选项“Enable Cpup include irq”打开YES开启中断cpup。 + CPU占用率的典型开发流程: 1. 调用获取系统CPU占用率函数LOS_SysCpuUsage。 2. 调用获取系统历史CPU占用率函数LOS_HistorySysCpuUsage。 -3. 调用获取指定任务CPU使占用率函数LOS_TaskCpuUsage。 +3. 调用获取指定任务CPU占用率函数LOS_TaskCpuUsage。 - 若任务已创建,则关中断,正常获取,恢复中断; - 若任务未创建,则返回错误码; @@ -95,7 +98,7 @@ CPU占用率的典型开发流程: 前提条件: -在target_config.h中将LOSCFG_BASE_CORE_CPUP配置项打开。 +在kernel/liteos_m目录下执行 make menuconfig命令配置"Kernel->Enable Cpup"中开启任务cpup: 代码实现如下: diff --git a/zh-cn/device-dev/kernel/kernel-mini-extend-file.md b/zh-cn/device-dev/kernel/kernel-mini-extend-file.md index 0a5015d388..0302a6c6b1 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-extend-file.md +++ b/zh-cn/device-dev/kernel/kernel-mini-extend-file.md @@ -168,13 +168,11 @@ mount接口:int mount(const char *source, const char *target, const char *file > - 读写指针未分离,例如以O_APPEND(追加写)方式打开文件后,读指针也在文件尾,从头读文件前需要用户手动置位。 > - 暂不支持文件与目录的权限管理。 > - stat及fstat接口暂不支持查询修改时间、创建时间和最后访问时间。微软FAT协议不支持1980年以前的时间。 -> > - FATFS分区挂载与卸载: > - 支持以只读属性挂载分区。当mount函数的入参为MS_RDONLY时,所有的带有写入的接口,如write、mkdir、unlink,以及非O_RDONLY属性的open,将均被拒绝。 > - mount支持通过MS_REMOUNT标记修改已挂载分区的权限。 > - 在umount操作前,需确保所有目录及文件全部关闭。 > - umount2支持通过MNT_FORCE参数强制关闭所有文件与文件夹并umount,但可能造成数据丢失,请谨慎使用。 -> > - FATFS支持重新划分存储设备分区、格式化分区,对应接口为fatfs_fdisk与fatfs_format: > - 在fatfs_format操作之前,若需要格式化的分区已挂载,需确保分区中的所有目录及文件全部关闭,并且分区umount。 > - 在fatfs_fdisk操作前,需要该设备中的所有分区均已umount。 @@ -213,6 +211,10 @@ mount接口:int mount(const char *source, const char *target, const char *file 系统已将设备分区挂载到目录,qemu默认已挂载system。 + 在kernel/liteos_m目录下执行 make menuconfig 命令配置"FileSystem->Enable FS VFS"开启FS功能; + + 开启FS后出现新选项“Enable FAT”开启FAT。 + **代码实现如下:** 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数ExampleFatfs。 @@ -425,6 +427,10 @@ blockCount 可以被擦除的块数量,这取决于块设备的容量及擦除 系统已将设备分区挂载到目录,qemu默认已挂载/littlefs。 +在kernel/liteos_m目录下执行 make menuconfig 命令配置"FileSystem->Enable FS VFS"开启FS功能; + +开启FS后出现新选项“Enable Little FS”开启littlefs。 + 代码实现如下: 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数ExampleLittlefs。 diff --git a/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md b/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md index ce156e668c..079491ec6f 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md +++ b/zh-cn/device-dev/kernel/kernel-mini-memory-debug.md @@ -185,7 +185,9 @@ node size LR[0] LR[1] LR[2] 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数MemLeakTest。 -qemu中进行验证时,由于代码段位置特殊需调整ld文件_stext位置到text段的起始位置 +qemu平台运行时需确保target_config.h 中对应的LOSCFG_MEM_FREE_BY_TASKID为0。 + +由于打开内存检测后,部分平台有其他任务运行,会频繁调用内存相关打印如:psp, start = xxxxx, end = xxxxxxx,请忽略打印或删除OsStackAddrGet函数中调用的打印即可。 ``` @@ -311,6 +313,10 @@ LOSCFG_BASE_MEM_NODE_INTEGRITY_CHECK:开关宏,默认关闭;若打开这 本演示代码在 ./kernel/liteos_m/testsuites/src/osTest.c 中编译验证,在TestTaskEntry中调用验证入口函数MemIntegrityTest。 +qemu平台运行时需确保target_config.h 中对应的LOSCFG_MEM_FREE_BY_TASKID为0。 + +由于执行时主动触发异常,执行结束后需要重启qemu(例如打开一个新的终端界面输入killall qemu-system-arm) + ``` #include @@ -344,7 +350,7 @@ memory used but magic num wrong, magic num = 0x0 /* 被破坏节点和其前节点关键字段信息,分别为其前节点地址、节点的魔鬼数字、节点的sizeAndFlag;可以看出被破坏节点的魔鬼数字字段被清零,符合用例场景 */ broken node head: 0x2103d7e8 0x0 0x80000020, prev node head: 0x2103c7cc 0xabcddcba 0x80000020 - /* 节点的LR信息需要开启内存检测功能才有有效输出 */ + /* 节点的LR信息需要开启前文的内存泄漏检测功能才有有效输出 */ broken node head LR info: LR[0]:0x2101906c LR[1]:0x0 diff --git a/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md b/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md index 79c5808687..a50b89c619 100644 --- a/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md +++ b/zh-cn/device-dev/kernel/kernel-mini-memory-trace.md @@ -246,6 +246,8 @@ Index Time(cycles) EventType CurTask Identity params 6 0x3706f804 0x45 0x1 0x0 0x1f 0x4 0x0 7 0x37070e59 0x45 0x0 0x1 0x0 0x8 0x1f ***TraceInfo end*** + +根据实际运行环境,上文中的数据会有差异,非固定结果 ``` 输出的事件信息包括:发生时间、事件类型、事件发生在哪个任务中、事件操作的主体对象、事件的其他参数。 -- GitLab From e59c9de34f28fa4e7f361031341a33bd48bda648 Mon Sep 17 00:00:00 2001 From: huweiqi Date: Mon, 9 Jan 2023 10:03:51 +0000 Subject: [PATCH 228/383] modify medaiLibrary and userFileManager Signed-off-by: huweiqi Change-Id: I494f49d3e2a521b705d52a7d3ee50ee42c9c1b99 --- .../file-management/filepicker-guidelines.md | 2 +- .../medialibrary-album-guidelines.md | 8 +-- .../medialibrary-filepath-guidelines.md | 42 +++++++-------- .../file-management/medialibrary-overview.md | 19 ++++--- .../medialibrary-resource-guidelines.md | 52 +++++++++---------- .../reference/apis/js-apis-medialibrary.md | 4 +- .../reference/apis/js-apis-userFileManager.md | 11 ++-- 7 files changed, 69 insertions(+), 69 deletions(-) diff --git a/zh-cn/application-dev/file-management/filepicker-guidelines.md b/zh-cn/application-dev/file-management/filepicker-guidelines.md index f1ca4197ed..09f4666bb8 100644 --- a/zh-cn/application-dev/file-management/filepicker-guidelines.md +++ b/zh-cn/application-dev/file-management/filepicker-guidelines.md @@ -54,7 +54,7 @@ globalThis.context.startAbilityForResult( ) // FilePicker返回给startAbilityForResult的数据 -var abilityResult = { +let abilityResult = { resultCode: resultCode, want: { parameters: { diff --git a/zh-cn/application-dev/file-management/medialibrary-album-guidelines.md b/zh-cn/application-dev/file-management/medialibrary-album-guidelines.md index 75dd58ee4d..b150c7aed2 100644 --- a/zh-cn/application-dev/file-management/medialibrary-album-guidelines.md +++ b/zh-cn/application-dev/file-management/medialibrary-album-guidelines.md @@ -42,8 +42,8 @@ async function example() { let mediaType = mediaLibrary.MediaType.IMAGE; let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); - const path = await media.getPublicDirectory(DIR_IMAGE) + let media = mediaLibrary.getMediaLibrary(context); + const path = await media.getPublicDirectory(DIR_IMAGE); //myAlbum为新建文件保存路径,也是新建相册的名称 media.createAsset(mediaType, 'test.jpg', path + 'myAlbum/', (err, fileAsset) => { if (fileAsset != undefined) { @@ -80,7 +80,7 @@ async function example() { selectionArgs: [], }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); let albumList = await media.getAlbums(AlbumNoArgsfetchOp); let album = albumList[0]; album.albumName = 'newAlbum'; @@ -88,7 +88,7 @@ async function example() { album.commitModify().then(function() { console.info("albumRename successfully"); }).catch(function(err){ - console.info("albumRename failed with error:"+ err); + console.info("albumRename failed with error: " + err); }); } ``` diff --git a/zh-cn/application-dev/file-management/medialibrary-filepath-guidelines.md b/zh-cn/application-dev/file-management/medialibrary-filepath-guidelines.md index be773ba7e8..259774688f 100644 --- a/zh-cn/application-dev/file-management/medialibrary-filepath-guidelines.md +++ b/zh-cn/application-dev/file-management/medialibrary-filepath-guidelines.md @@ -37,7 +37,7 @@ Openharmony上用户数据统一由媒体库进行管理,用户数据用户数 ```ts async function example(){ const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA; const dicResult = await media.getPublicDirectory(DIR_CAMERA); if (dicResult == 'Camera/') { @@ -80,11 +80,11 @@ OpenHarmony提供应用沙箱机制,增加目录可见性数据访问防线, ```ts async function copyPublic2Sandbox() { const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); let sandboxDirPath = globalThis.context.filesDir; - let fileKeyObj = mediaLibrary.FileKey + let fileKeyObj = mediaLibrary.FileKey; let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?' , + selections: fileKeyObj.DISPLAY_NAME + '= ?', selectionArgs: ['testFile.txt'], }; let fetchResult = await media.getFileAssets(fileAssetFetchOp); @@ -107,7 +107,7 @@ async function copyPublic2Sandbox() { ```ts async function copySandbox2Public() { const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); let sandboxDirPath = globalThis.context.filesDir; let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; @@ -119,26 +119,26 @@ async function copySandbox2Public() { console.info('createFile failed, message = ' + err); } try { - let fileKeyObj = mediaLibrary.FileKey + let fileKeyObj = mediaLibrary.FileKey; let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?' , + selections: fileKeyObj.DISPLAY_NAME + '= ?', selectionArgs: ['testFile02.txt'], }; let fetchResult = await media.getFileAssets(fileAssetFetchOp); var fileAsset = await fetchResult.getFirstObject(); } catch (err) { - console.info('file asset get failed, message = ', err) + console.info('file asset get failed, message = ' + err); } - var fdPub = await fileAsset.open('rw'); - var fdSand = await fileio.open(sandboxDirPath + 'testFile.txt', 0o2); + let fdPub = await fileAsset.open('rw'); + let fdSand = await fileio.open(sandboxDirPath + 'testFile.txt', 0o2); await fileio.copyFile(fdSand, fdPub); await fileio.close(fdPub); await fileio.close(fdSand); let fdPubRead = await fileAsset.open('rw'); try { - var arrayBuffer = new ArrayBuffer(4096); + let arrayBuffer = new ArrayBuffer(4096); await fileio.read(fdPubRead, arrayBuffer); - var content_pub = String.fromCharCode(new Uint8Array(arrayBuffer)); + var content_pub = String.fromCharCode(...new Uint8Array(arrayBuffer)); fileAsset.close(fdPubRead); } catch (err) { console.log('read text failed, message = ', err); @@ -166,12 +166,12 @@ async function copySandbox2Public() { let mediaType = mediaLibrary.MediaType.FILE; let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const path = await media.getPublicDirectory(DIR_DOCUMENTS); media.createAsset(mediaType, "testFile.text", path).then (function (asset) { - console.info("createAsset successfully:"+ JSON.stringify(asset)); + console.info("createAsset successfully:" + JSON.stringify(asset)); }).catch(function(err){ - console.info("createAsset failed with error:"+ err); + console.info("createAsset failed with error: " + err); }); } ``` @@ -191,10 +191,10 @@ async function copySandbox2Public() { ```ts async function writeOnlyPromise() { const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey + let media = mediaLibrary.getMediaLibrary(context); + let fileKeyObj = mediaLibrary.FileKey; let fileAssetFetchOp = { - selections: fileKeyObj.DISPLAY_NAME + '= ?' , + selections: fileKeyObj.DISPLAY_NAME + '= ?', selectionArgs: ['testFile.txt'], }; let fetchResult = await media.getFileAssets(fileAssetFetchOp); @@ -217,8 +217,8 @@ async function writeOnlyPromise() { ```ts async function readOnlyPromise() { const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); - let fileKeyObj = mediaLibrary.FileKey + let media = mediaLibrary.getMediaLibrary(context); + let fileKeyObj = mediaLibrary.FileKey; let fileAssetFetchOp = { selections: fileKeyObj.DISPLAY_NAME + '= ?' , selectionArgs: ['testFile.txt'], @@ -232,7 +232,7 @@ async function readOnlyPromise() { let arrayBuffer = new ArrayBuffer(4096); await fileio.read(fd, arrayBuffer); let fileContent = String.fromCharCode(...new Uint8Array(arrayBuffer)); - globalThis.fileContent = fileContent + globalThis.fileContent = fileContent; globalThis.fileName = fileAsset.displayName; console.info('file content: ', fileContent); await fileAsset.close(fd); diff --git a/zh-cn/application-dev/file-management/medialibrary-overview.md b/zh-cn/application-dev/file-management/medialibrary-overview.md index 674d3909fc..ca8a6c4516 100644 --- a/zh-cn/application-dev/file-management/medialibrary-overview.md +++ b/zh-cn/application-dev/file-management/medialibrary-overview.md @@ -21,7 +21,7 @@ MediaLibrary提供媒体库相关能力,帮助开发者更方便地访问和 > **说明:**
> 本开发指导基于API Version 9,仅适用于Stage模型。 -应用需要先获取媒体库实例,才能访问和修改用户等个人媒体数据信息。媒体库涉及用户个人数据信息,所以应用需要向用户申请媒体库读写操作权限才能保证功能的正常运行。 +应用需要先获取媒体库实例,才能访问和修改用户等个人媒体数据信息。媒体库涉及用户个人数据信息,所以应用需要向用户申请媒体库读写操作权限才能保证功能的正常运行。在使用媒体库相关接口时如无其他注明则默认在工程代码的pages/index.ets或者其他自创的ets文件中使用 开发者在使用MediaLibrary进行功能开发前,请先掌握以下内容: @@ -42,7 +42,7 @@ MediaLibrary提供媒体库相关能力,帮助开发者更方便地访问和 import mediaLibrary from '@ohos.multimedia.mediaLibrary'; const context = getContext(this); -var media = mediaLibrary.getMediaLibrary(context); +let media = mediaLibrary.getMediaLibrary(context); ``` ## 申请媒体库功能相关权限 @@ -102,21 +102,21 @@ var media = mediaLibrary.getMediaLibrary(context); } ``` -2. 调用requestPermissionsFromUser进行权限校验,可以选择需要动态申请获取的权限。 +2. 在Ability.ts中onWindowStageCreate里调用requestPermissionsFromUser进行权限校验,可以选择需要动态申请获取的权限自行添加相应代码 ```ts import UIAbility from '@ohos.app.ability.UIAbility'; - import abilityAccessCtrl from '@ohos.abilityAccessCtrl.d.ts'; + import abilityAccessCtrl, {Permissions} from '@ohos.abilityAccessCtrl'; export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { - var permissions=['ohos.permission.READ_MEDIA','ohos.permission.WRITE_MEDIA'] - var permissionRequestResult; + let list : Array = ['ohos.permission.READ_MEDIA', 'ohos.permission.WRITE_MEDIA']; + let permissionRequestResult; let atManager = abilityAccessCtrl.createAtManager(); - atManager.requestPermissionsFromUser(this.context, permissions, (err,result) => { - if(err){ + atManager.requestPermissionsFromUser(this.context, list, (err, result) => { + if (err) { console.log('requestPermissionsFromUserError: ' + JSON.stringify(err)); - }else{ + } else { permissionRequestResult=result; console.log('permissionRequestResult: ' + JSON.stringify(permissionRequestResult)); } @@ -125,4 +125,3 @@ var media = mediaLibrary.getMediaLibrary(context); } ``` - \ No newline at end of file diff --git a/zh-cn/application-dev/file-management/medialibrary-resource-guidelines.md b/zh-cn/application-dev/file-management/medialibrary-resource-guidelines.md index ef6b06acc3..c64f25916f 100644 --- a/zh-cn/application-dev/file-management/medialibrary-resource-guidelines.md +++ b/zh-cn/application-dev/file-management/medialibrary-resource-guidelines.md @@ -33,14 +33,14 @@ selectionArgs: MediaType.IMAGE,媒体类型为图片。 ```ts async function example() { - let fileKeyObj = mediaLibrary.FileKey - let fileType = mediaLibrary.MediaType.IMAGE + let fileKeyObj = mediaLibrary.FileKey; + let fileType = mediaLibrary.MediaType.IMAGE; let option = { selections: fileKeyObj.MEDIA_TYPE + '= ?', selectionArgs: [fileType.toString()], }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const fetchFileResult = await media.getFileAssets(option); for (let i = 0; i < fetchFileResult.getCount(); i++) { fetchFileResult.getNextObject((err, fileAsset) => { @@ -64,13 +64,13 @@ selectionArgs:2022-8-5,具体添加时间的字符串。 ```ts async function example() { - let fileKeyObj = mediaLibrary.FileKey + let fileKeyObj = mediaLibrary.FileKey; let option = { selections: fileKeyObj.DATE_ADDED + '= ?', selectionArgs: ['2022-8-5'], }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const fetchFileResult = await media.getFileAssets(option); for (let i = 0; i < fetchFileResult.getCount(); i++) { fetchFileResult.getNextObject((err, fileAsset) => { @@ -92,15 +92,15 @@ order: FileKey.DATE_ADDED,根据文件添加日期排序;并设置排列 ```ts async function example() { - let fileKeyObj = mediaLibrary.FileKey - let fileType = mediaLibrary.MediaType.IMAGE + let fileKeyObj = mediaLibrary.FileKey; + let fileType = mediaLibrary.MediaType.IMAGE; let option = { selections: fileKeyObj.MEDIA_TYPE + '= ?', selectionArgs: [fileType.toString()], order: fileKeyObj.DATE_ADDED + " DESC", }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const fetchFileResult = await media.getFileAssets(option); for (let i = 0; i < fetchFileResult.getCount(); i++) { fetchFileResult.getNextObject((err, fileAsset) => { @@ -124,14 +124,14 @@ selectionArgs:'myAlbum',具体相册名称。 ```ts async function example() { - let fileKeyObj = mediaLibrary.FileKey - let fileType = mediaLibrary.MediaType.IMAGE + let fileKeyObj = mediaLibrary.FileKey; + let fileType = mediaLibrary.MediaType.IMAGE; let option = { selections: fileKeyObj.ALBUM_NAME + '= ?', selectionArgs: ['myAlbum'], }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const fetchFileResult = await media.getFileAssets(option); for (let i = 0; i < fetchFileResult.getCount(); i++) { fetchFileResult.getNextObject((err, fileAsset) => { @@ -186,7 +186,7 @@ async function example() { ```ts async function getCameraImagePromise() { const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); let fileKeyObj = mediaLibrary.FileKey; let imageType = mediaLibrary.MediaType.IMAGE; let imagesFetchOp = { @@ -235,7 +235,7 @@ async function getCameraImagePromise() { ```ts async function getFirstThumbnailPromise() { const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); let fileKeyObj = mediaLibrary.FileKey; let imageType = mediaLibrary.MediaType.IMAGE; let imagesFetchOp = { @@ -279,7 +279,7 @@ async function example() { let mediaType = mediaLibrary.MediaType.FILE; let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const path = await media.getPublicDirectory(DIR_DOCUMENTS); media.createAsset(mediaType, "testFile.text", path).then ((asset) => { console.info("createAsset successfully:"+ JSON.stringify(asset)); @@ -311,25 +311,25 @@ async function example() { ```ts async function example() { - let fileKeyObj = mediaLibrary.FileKey - let fileType = mediaLibrary.MediaType.FILE + let fileKeyObj = mediaLibrary.FileKey; + let fileType = mediaLibrary.MediaType.FILE; let option = { selections: fileKeyObj.MEDIA_TYPE + '= ?', selectionArgs: [fileType.toString()], }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const fetchFileResult = await media.getFileAssets(option); let asset = await fetchFileResult.getFirstObject(); if (asset == undefined) { - console.error('asset not exist') - return + console.error('asset not exist'); + return; } //回调为空 asset.trash(true).then(() => { console.info("trash successfully"); }).catch((err) => { - console.info("trash failed with error:"+ err); + console.info("trash failed with error: " + err); }); } ``` @@ -359,19 +359,19 @@ async function example() { ```ts async function example() { - let fileKeyObj = mediaLibrary.FileKey - let fileType = mediaLibrary.MediaType.FILE + let fileKeyObj = mediaLibrary.FileKey; + let fileType = mediaLibrary.MediaType.FILE; let option = { selections: fileKeyObj.MEDIA_TYPE + '= ?', selectionArgs: [fileType.toString()], }; const context = getContext(this); - var media = mediaLibrary.getMediaLibrary(context); + let media = mediaLibrary.getMediaLibrary(context); const fetchFileResult = await media.getFileAssets(option); let asset = await fetchFileResult.getFirstObject(); if (asset == undefined) { - console.error('asset not exist') - return + console.error('asset not exist'); + return; } asset.displayName = 'newImage.jpg'; //回调为空 @@ -381,6 +381,6 @@ async function example() { return; } console.log('fileRename successful.'); - }) + }); } ``` diff --git a/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md b/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md index 7ae6d88fe7..11b6661282 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md +++ b/zh-cn/application-dev/reference/apis/js-apis-medialibrary.md @@ -202,7 +202,7 @@ on(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange' | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ---------------------------------------- | -| type | 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange' | 是 | 媒体类型
'deviceChange': 注册设备变更
'albumChange': 相册变更
'imageChange': 图片文件变更
'audioChange':  音频文件变更
'videoChange':  视频文件变更
'fileChange':  文件变更
'remoteFileChange': 注册设备上文件变更 | +| type | 'deviceChange'|
'albumChange'|
'imageChange'|
'audioChange'|
'videoChange'|
'fileChange'|
'remoteFileChange' | 是 | 媒体类型
'deviceChange': 注册设备变更
'albumChange': 相册变更
'imageChange': 图片文件变更
'audioChange':  音频文件变更
'videoChange':  视频文件变更
'fileChange':  文件变更
'remoteFileChange': 注册设备上文件变更 | | callback | Callback<void> | 是 | 回调返回空 | **示例:** @@ -224,7 +224,7 @@ off(type: 'deviceChange'|'albumChange'|'imageChange'|'audioChange | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ---------------------------------------- | -| type | 'deviceChange'|'albumChange'|'imageChange'|'audioChange'|'videoChange'|'fileChange'|'remoteFileChange' | 是 | 媒体类型
'deviceChange': 注册设备变更
'albumChange': 相册变更
'imageChange': 图片文件变更
'audioChange':  音频文件变更
'videoChange':  视频文件变更
'fileChange':  文件变更
'remoteFileChange': 注册设备上文件变更 | +| type | 'deviceChange'|
'albumChange'|
'imageChange'|
'audioChange'|
'videoChange'|
'fileChange'|
'remoteFileChange' | 是 | 媒体类型
'deviceChange': 注册设备变更
'albumChange': 相册变更
'imageChange': 图片文件变更
'audioChange':  音频文件变更
'videoChange':  视频文件变更
'fileChange':  文件变更
'remoteFileChange': 注册设备上文件变更 | | callback | Callback<void> | 否 | 回调返回空 | **示例:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-userFileManager.md b/zh-cn/application-dev/reference/apis/js-apis-userFileManager.md index bf2320e1b0..a984437a47 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-userFileManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-userFileManager.md @@ -37,6 +37,7 @@ getUserFileMgr(context: Context): UserFileManager **示例:** ```ts +//此处获取的userFileManager实例mgr为全局对象,后续使用到mgr的地方默认为使用此处获取的对象,如未添加此段代码报mgr未定义的错误请自行添加 const context = getContext(this); let mgr = userFileManager.getUserFileMgr(context); ``` @@ -126,7 +127,7 @@ async function example() { predicates: predicates }; try { - var fetchResult = await mgr.getPhotoAssets(fetchOptions); + let fetchResult = await mgr.getPhotoAssets(fetchOptions); if (fetchResult != undefined) { console.info('fetchResult success'); let fileAsset = await fetchResult.getFirstObject(); @@ -306,7 +307,7 @@ async function example() { getPhotoAlbums(options: AlbumFetchOptions): Promise<FetchResult<Album>>; -获取相册,使用callback方式返回结果。 +获取相册,使用Promise方式返回结果。 **系统能力**:SystemCapability.FileManagement.UserFileManager.Core @@ -409,7 +410,7 @@ getPrivateAlbum(type: PrivateAlbumType): Promise<FetchResult<PrivateAlbum& async function example() { console.info('getPrivateAlbumDemo'); try { - var fetchResult = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); + let fetchResult = await mgr.getPrivateAlbum(userFileManager.PrivateAlbumType.TYPE_TRASH); let trashAlbum = await fetchResult.getFirstObject(); console.info('first album.albumName = ' + trashAlbum.albumName); } catch (err) { @@ -434,7 +435,7 @@ getAudioAssets(options: FetchOptions, callback: AsyncCallback<FetchResult< | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------ | ---- | ------------------------- | | options | [FetchOptions](#fetchoptions) | 是 | 检索选项 | -| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback 返回相册检索结果 | +| callback | AsyncCallback<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | 是 | callback 返回音频检索结果 | **示例:** @@ -484,7 +485,7 @@ getAudioAssets(options: FetchOptions): Promise<FetchResult<FileAsset>&g | 类型 | 说明 | | --------------------------- | -------------- | -| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise 返回相册检索结果 | +| Promise<[FetchResult](#fetchresult)<[FileAsset](#fileasset)>> | Promise 返回音频检索结果 | **示例:** -- GitLab From 4507b2c0f6c700bd3c94cb5f8bf710e63201d4aa Mon Sep 17 00:00:00 2001 From: mali Date: Fri, 13 Jan 2023 15:46:43 +0800 Subject: [PATCH 229/383] Camera development and interface document update-01 Signed-off-by: mali --- zh-cn/application-dev/media/camera.md | 63 ++- .../reference/apis/js-apis-camera.md | 361 +++++++++++++----- 2 files changed, 310 insertions(+), 114 deletions(-) diff --git a/zh-cn/application-dev/media/camera.md b/zh-cn/application-dev/media/camera.md index 5925dcefa3..bd716b3cd3 100644 --- a/zh-cn/application-dev/media/camera.md +++ b/zh-cn/application-dev/media/camera.md @@ -60,20 +60,27 @@ import media from '@ohos.multimedia.media' // 创建CameraManager对象 context: any = getContext(this) -let cameraManager -try { - cameraManager = camera.getCameraManager(this.context); -} catch (error) { - console.error('Failed to get the CameraManager instance'); -} +let cameraManager = camera.getCameraManager(this.context) +if (!cameraManager) { + console.error("camera.getCameraManager error") + return; +} +// 监听相机状态变化 +cameraManager.on('cameraStatus', (err, cameraStatusInfo) => { + if (err) { + console.error(`Failed to get cameraStatus callback. ${err.message}`); + return; + } + console.log(`camera : ${cameraStatusInfo.camera.cameraId}`); + console.log(`status: ${cameraStatusInfo.status}`); +}) // 获取相机列表 -let cameraArray -try { - cameraArray = cameraManager.getSupportedCameras(); -} catch (error) { - console.error('Failed to get the cameras errorCode = ' + error.code); -} +let cameraArray = cameraManager.getSupportedCameras(); +if (cameraArray.length <= 0) { + console.error("cameraManager.getSupportedCameras error") + return; +} for (let index = 0; index < cameraArray.length; index++) { console.log('cameraId : ' + cameraArray[index].cameraId); // 获取相机ID @@ -90,17 +97,22 @@ try { console.error('Failed to createCameraInput errorCode = ' + error.code); } +// 监听cameraInput错误信息 +let cameraDevice = cameraArray[0]; +cameraInput.on('error', cameraDevice, (error) => { + console.log(`Camera input error code: ${error.code}`); +}) + // 打开相机 await cameraInput.open(); // 获取相机设备支持的输出流能力 -let cameraOutputCap -try { - cameraOutputCap = cameraManager.getSupportedOutputCapability(cameraArray[0]); - console.info("outputCapability: " + JSON.stringify(cameraOutputCap)); -} catch (error) { - console.error("outputCapability outputCapability == null || undefined") +let cameraOutputCap = cameraManager.getSupportedOutputCapability(cameraArray[0]); +if (!cameraOutputCap) { + console.error("cameraManager.getSupportedOutputCapability error") + return; } +console.info("outputCapability: " + JSON.stringify(cameraOutputCap)); let previewProfilesArray = cameraOutputCap.GetPreviewProfiles(); if (!previewProfilesArray) { @@ -130,6 +142,11 @@ try { console.error("Failed to create the PreviewOutput instance.") } +// 监听预览输出错误信息 +previewOutput.on('error', (error) => { + console.log(`Preview output error code: ${error.code}`); +}) + // 创建ImageReceiver对象,并设置照片参数:分辨率大小是根据前面 photoProfilesArray 获取的当前设备所支持的拍照分辨率大小去设置 let imageReceiver = await image.createImageReceiver(1920, 1080, 4, 8) // 获取照片显示SurfaceId @@ -188,6 +205,11 @@ try { } catch (error) { console.error('Failed to create the videoOutput instance. errorCode = ' + error.code); } + +// 监听视频输出错误信息 +videoOutput.on('error', (error) => { + console.log(`Preview output error code: ${error.code}`); +}) ``` 预览流、拍照流和录像流的输入均需要提前创建surface,其中预览流为XComponent组件提供的surface,拍照流为ImageReceiver提供的surface,录像流为VideoRecorder的surface。 @@ -268,6 +290,11 @@ try { console.error('Failed to create the CaptureSession instance. errorCode = ' + error.code); } +// 监听session错误信息 +captureSession.on('error', (error) => { + console.log(`Capture session error code: ${error.code}`); +}) + // 开始配置会话 try { captureSession.beginConfig() diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md index 155e2077a5..130a3aa257 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-camera.md +++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md @@ -96,7 +96,7 @@ let cameraManager = camera.getCameraManager(context); ## CameraErrorCode -相机错误码。 +相机错误码。接口使用不正确以及on接口监听error状态返回。 **系统能力:** SystemCapability.Multimedia.Camera.Core @@ -133,12 +133,8 @@ getSupportedCameras(): Array **示例:** ```js -let cameras; -try{ - cameras = cameraManager.getSupportedCameras(); -} catch (error) { - console.log(error.code); -} +let cameras = cameraManager.getSupportedCameras(); + ``` ### getSupportedOutputCapability @@ -165,12 +161,8 @@ getSupportedOutputCapability(cameraDevice:CameraDevice): CameraOutputCapability ```js let cameraDevice = cameras[0]; -let cameraOutputCapability; -try{ - cameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice); -} catch (error) { - console.log(error.code); -} +let cameraOutputCapability = cameraManager.getSupportedOutputCapability(cameraDevice); + ``` ### isCameraMuted @@ -254,13 +246,13 @@ createCameraInput(camera: CameraDevice): CameraInput | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------- | ---- | --------------------------------- | -| cameraDevice | [CameraDevice](#cameradevice) | 是 | CameraDevice对象,通过 getSupportedCameras 接口获取 | +| cameraDevice | [CameraDevice](#cameradevice) | 是 | CameraDevice对象,通过 getSupportedCameras 接口获取 | **返回值:** | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraInput](#camerainput) | CameraInput实例。 | +| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -270,6 +262,7 @@ let cameraInput; try { cameraInput = cameraManager.createCameraInput(cameraDevice); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -295,7 +288,7 @@ createCameraInput(position: CameraPosition, type: CameraType): CameraInput | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraInput](#camerainput) | CameraInput实例。 | +| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -307,6 +300,7 @@ let cameraInput; try { cameraInput = cameraManager.createCameraInput(position, type); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -330,7 +324,7 @@ createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput | 类型 | 说明 | | ---------- | ----------------------------- | -| [PreviewOutput](#previewoutput) | PreviewOutput实例。 | +| [PreviewOutput](#previewoutput) | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -340,6 +334,7 @@ let previewOutput; try { previewOutput = cameraManager.createPreviewOutput(profile, surfaceId); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -363,13 +358,19 @@ createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput | 类型 | 说明 | | ---------- | ----------------------------- | -| [PhotoOutput](#photooutput) | PhotoOutput实例。 | +| [PhotoOutput](#photooutput) | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js let profile = cameraoutputcapability.photoProfiles[0]; -let photoOutput = cameraManager.createPhotoOutput(profile, surfaceId); +let photoOutput; +try { + photoOutput = cameraManager.createPhotoOutput(profile, surfaceId); +} catch (error) { + // 失败返回错误码error.code并处理 + console.log(error.code); +} ``` ### createVideoOutput @@ -391,7 +392,7 @@ createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput | 类型 | 说明 | | ---------- | ----------------------------- | -| [VideoOutput](#videooutput) | VideoOutput实例。 | +| [VideoOutput](#videooutput) | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -401,6 +402,7 @@ let videoOutput; try { videoOutput = cameraManager.createVideoOutput(profile, surfaceId); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -423,7 +425,7 @@ createMetadataOutput(metadataObjectTypes:Array): MetadataOu | 类型 | 说明 | | ---------- | ----------------------------- | -| [MetadataOutput](#metadataoutput) | MetadataOutput实例。 | +| [MetadataOutput](#metadataoutput) | MetadataOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -433,6 +435,7 @@ let metadataOutput; try { metadataOutput = cameraManager.createMetadataOutput(metadataObjectTypes); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -449,7 +452,7 @@ createCaptureSession(): CaptureSession | 类型 | 说明 | | ---------- | ----------------------------- | -| [CaptureSession](#capturesession) | CaptureSession实例。 | +| [CaptureSession](#capturesession) | CaptureSession实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -458,6 +461,7 @@ let captureSession; try { captureSession = cameraManager.createCaptureSession(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -515,6 +519,7 @@ cameraManager.on('cameraMute', (err, curMuetd) => { console.error(`Failed to get cameraMute callback. ${err.message}`); return; } + let isMuted = curMuetd; }) ``` @@ -630,7 +635,7 @@ open\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -638,6 +643,7 @@ open\(callback: AsyncCallback\): void cameraInput.open((err) => { if (err) { console.error(`Failed to open the camera. ${err.message}`); + console.error(`Failed to open the camera. ${err.code}`); return; } console.log('Callback returned with camera opened.'); @@ -656,14 +662,17 @@ open(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js cameraInput.open().then(() => { console.log('Promise returned with camera opened.'); -}) +}).catch((err) => { + console.log('Failed to open the camera '+ err.message); + console.error(`Failed to open the camera. ${err.code}`); +}); ``` ### close @@ -678,7 +687,7 @@ close\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -686,6 +695,7 @@ close\(callback: AsyncCallback\): void cameraInput.close((err) => { if (err) { console.error(`Failed to close the cameras. ${err.message}`); + console.error(`Failed to close the cameras. ${err.code}`); return; } console.log('Callback returned with camera closed.'); @@ -711,7 +721,10 @@ close(): Promise ```js cameraInput.close().then(() => { console.log('Promise returned with camera closed.'); -}) +}).catch((err) => { + console.log('Failed to close the camera '+ err.message); + console.error(`Failed to close the cameras. ${err.code}`); +}); ``` ### on('error') @@ -728,7 +741,7 @@ on(type: 'error', cameraDevice:CameraDevice, callback: ErrorCallback | 是 | 回调函数,用于获取结果。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -815,12 +828,19 @@ beginConfig(): void **系统能力:** SystemCapability.Multimedia.Camera.Core +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.beginConfig(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -837,7 +857,7 @@ commitConfig(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -845,6 +865,7 @@ commitConfig(callback: AsyncCallback): void captureSession.commitConfig((err) => { if (err) { console.error(`Failed to commit the configuration. ${err.message}`); + console.log('Failed to commitConfig '+ err.code); return; } console.log('Callback invoked to indicate the commit config success.'); @@ -863,14 +884,18 @@ commitConfig(): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js captureSession.commitConfig().then(() => { console.log('Promise returned to indicate the commit config success.'); -}) +}).catch((err) => { + // 失败返回错误码error.code并处理 + console.log('Failed to commitConfig '+ err.message); + console.log('Failed to commitConfig '+ err.code); +}); ``` ### addInput @@ -887,12 +912,19 @@ addInput(cameraInput: CameraInput): void | ----------- | --------------------------- | ---- | ------------------------ | | cameraInput | [CameraInput](#camerainput) | 是 | 需要添加的CameraInput实例。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.addInput(cameraInput); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -911,12 +943,19 @@ removeInput(cameraInput: CameraInput): void | ----------- | --------------------------- | ---- | ------------------------ | | cameraInput | [CameraInput](#camerainput) | 是 | 需要移除的CameraInput实例。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.removeInput(cameraInput); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -935,12 +974,19 @@ addOutput(previewOutput: CameraOutput): void | ------------- | ------------------------------- | ---- | ------------------------ | | previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要添加的previewoutput实例。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.addOutput(previewOutput); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -959,12 +1005,19 @@ removeOutput(previewOutput: CameraOutput): void | ------------- | ------------------------------- | ---- | ------------------------ | | previewOutput | [PreviewOutput](#previewoutput) | 是 | 需要移除的previewoutput实例。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.removeOutput(previewOutput); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -981,7 +1034,7 @@ start\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -989,6 +1042,7 @@ start\(callback: AsyncCallback\): void captureSession.start((err) => { if (err) { console.error(`Failed to start the session ${err.message}`); + console.error(`Failed to start the session ${err.code}`); return; } console.log('Callback invoked to indicate the session start success.'); @@ -1014,7 +1068,10 @@ start\(\): Promise ```js captureSession.start().then(() => { console.log('Promise returned to indicate the session start success.'); -}) +}).catch((err) => { + console.log('Failed to captureSession start '+ err.message); + console.error(`Failed to start the session ${err.code}`); +}); ``` ### stop @@ -1029,7 +1086,7 @@ stop\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1037,6 +1094,7 @@ stop\(callback: AsyncCallback\): void captureSession.stop((err) => { if (err) { console.error(`Failed to stop the session ${err.message}`); + console.error(`Failed to stop the session ${err.code}`); return; } console.log('Callback invoked to indicate the session stop success.'); @@ -1055,14 +1113,17 @@ stop(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js captureSession.stop().then(() => { console.log('Promise returned to indicate the session stop success.'); -}) +}).catch((err) => { + console.log('Failed to captureSession stop '+ err.message); + console.error(`Failed to stop the session ${err.code}`); +}); ``` ### release @@ -1077,7 +1138,7 @@ release\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1085,6 +1146,7 @@ release\(callback: AsyncCallback\): void captureSession.release((err) => { if (err) { console.error(`Failed to release the CaptureSession instance ${err.message}`); + console.error(`Failed to release the CaptureSession instance ${err.code}`); return; } console.log('Callback invoked to indicate that the CaptureSession instance is released successfully.'); @@ -1103,14 +1165,17 @@ release(): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js captureSession.release().then(() => { console.log('Promise returned to indicate that the CaptureSession instance is released successfully.'); -}) +}).catch((err) => { + console.log('Failed to captureSession release '+ err.message); + console.error(`Failed to release the CaptureSession instance ${err.code}`); +}); ``` ### hasFlash @@ -1125,7 +1190,7 @@ hasFlash(): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回true表示设备支持闪光灯。 | +| boolean | 返回true表示设备支持闪光灯。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1133,6 +1198,7 @@ hasFlash(): boolean try { let status = captureSession.hasFlash(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1155,7 +1221,7 @@ isFlashModeSupported(flashMode: FlashMode): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回true表示支持该闪光灯模式。 | +| boolean | 返回true表示支持该闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1163,6 +1229,7 @@ isFlashModeSupported(flashMode: FlashMode): boolean try { let status = captureSession.isFlashModeSupported(camera.FlashMode.FLASH_MODE_AUTO); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1184,7 +1251,13 @@ setFlashMode(flashMode: FlashMode): void | 参数名 | 类型 | 必填 | 说明 | | --------- | ----------------------- | ---- | --------------------- | -| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | +| flashMode | [FlashMode](#flashmode) | 是 | 指定闪光灯模式。 | + +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1192,6 +1265,7 @@ setFlashMode(flashMode: FlashMode): void try { captureSession.setFlashMode(camera.FlashMode.FLASH_MODE_AUTO); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1208,7 +1282,7 @@ getFlashMode(): FlashMode | 类型 | 说明 | | ---------- | ----------------------------- | -| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。 | +| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1216,6 +1290,7 @@ getFlashMode(): FlashMode try { let flashMode = captureSession.getFlashMode(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1238,7 +1313,7 @@ isExposureModeSupported(aeMode: ExposureMode): boolean; | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 获取是否支持曝光模式。 | +| boolean | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1246,6 +1321,7 @@ isExposureModeSupported(aeMode: ExposureMode): boolean; try { let isSupported = captureSession.isExposureModeSupported(camera.ExposureMode.EXPOSURE_MODE_LOCKED); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1262,7 +1338,7 @@ getExposureMode(): ExposureMode | 类型 | 说明 | | ---------- | ----------------------------- | -| [ExposureMode](#exposuremode) | 获取当前曝光模式。 | +| [ExposureMode](#exposuremode) | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1270,6 +1346,7 @@ getExposureMode(): ExposureMode try { let exposureMode = captureSession.getExposureMode(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1288,12 +1365,19 @@ setExposureMode(aeMode: ExposureMode): void | -------- | -------------------------------| ---- | ----------------------- | | aeMode | [ExposureMode](#exposuremode) | 是 | 曝光模式。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.setExposureMode(camera.ExposureMode.EXPOSURE_MODE_LOCKED); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1310,7 +1394,7 @@ getMeteringPoint(): Point | 类型 | 说明 | | ---------- | ----------------------------- | -| [Point](#point) | 获取当前曝光点。 | +| [Point](#point) | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1318,6 +1402,7 @@ getMeteringPoint(): Point try { let exposurePoint = captureSession.getMeteringPoint(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1336,6 +1421,12 @@ setMeteringPoint(point: Point): void | ------------- | -------------------------------| ---- | ------------------- | | exposurePoint | [Point](#point) | 是 | 曝光点。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js @@ -1343,6 +1434,7 @@ const exposurePoint = {x: 1, y: 1}; try { captureSession.setMeteringPoint(exposurePoint); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1359,7 +1451,7 @@ getExposureBiasRange(): Array | 类型 | 说明 | | ---------- | ----------------------------- | -| Array | 获取补偿范围的数组。 | +| Array | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1367,6 +1459,7 @@ getExposureBiasRange(): Array try { let biasRangeArray = captureSession.getExposureBiasRange(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1385,7 +1478,7 @@ setExposureBias(exposureBias: number): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------| ---- | ------------------- | -| exposureBias | number | 是 | 曝光补偿,getExposureBiasRange查询支持的范围 | +| exposureBias | number | 是 | 曝光补偿,getExposureBiasRange查询支持的范围,接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1394,6 +1487,7 @@ let exposureBias = biasRangeArray[0]; try { captureSession.setExposureBias(exposureBias); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1410,7 +1504,7 @@ getExposureValue(): number | 类型 | 说明 | | ---------- | ----------------------------- | -| number | 获取曝光值。 | +| number | 获取曝光值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1418,6 +1512,7 @@ getExposureValue(): number try { let exposureValue = captureSession.getExposureValue(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1440,7 +1535,7 @@ isFocusModeSupported(afMode: FocusMode): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回true表示支持该焦距模式。 | +| boolean | 返回true表示支持该焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1448,6 +1543,7 @@ isFocusModeSupported(afMode: FocusMode): boolean try { let status = captureSession.isFocusModeSupported(camera.FocusMode.FOCUS_MODE_AUTO); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1468,12 +1564,19 @@ setFocusMode(afMode: FocusMode): void | -------- | ----------------------- | ---- | ------------------- | | afMode | [FocusMode](#focusmode) | 是 | 指定的焦距模式。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.setFocusMode(camera.FocusMode.FOCUS_MODE_AUTO); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1490,7 +1593,7 @@ getFocusMode(): FocusMode | 类型 | 说明 | | ---------- | ----------------------------- | -| [FocusMode](#focusmode) | 获取当前设备的焦距模式。 | +| [FocusMode](#focusmode) | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1498,6 +1601,7 @@ getFocusMode(): FocusMode try { let afMode = captureSession.getFocusMode(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1516,6 +1620,12 @@ setFocusPoint(point: Point): void | -------- | ----------------------- | ---- | ------------------- | | Point1 | [Point](#point) | 是 | 焦点。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js @@ -1523,6 +1633,7 @@ const Point1 = {x: 1, y: 1}; try { captureSession.setFocusPoint(Point1); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1539,7 +1650,7 @@ getFocusPoint(): Point | 类型 | 说明 | | ---------- | ----------------------------- | -| [Point](#point) | 用于获取当前焦点。 | +| [Point](#point) | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1547,6 +1658,7 @@ getFocusPoint(): Point try { let point = captureSession.getFocusPoint(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1563,7 +1675,7 @@ getFocalLength(): number | 类型 | 说明 | | ---------- | ----------------------------- | -| number | 用于获取当前焦距。 | +| number | 用于获取当前焦距。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1571,6 +1683,7 @@ getFocalLength(): number try { let focalLength = captureSession.getFocalLength(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1587,7 +1700,7 @@ getZoomRatioRange(): Array | 类型 | 说明 | | ---------- | ----------------------------- | -| Array | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。 | +| Array | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1595,6 +1708,7 @@ getZoomRatioRange(): Array try { let zoomRatioRange = captureSession.getZoomRatioRange(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1613,6 +1727,12 @@ setZoomRatio(zoomRatio: number): void | --------- | -------------------- | ---- | ------------------- | | zoomRatio | number | 是 | 可变焦距比,通过getZoomRatioRange获取支持的变焦范围 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js @@ -1620,6 +1740,7 @@ let zoomRatio = zoomRatioRange[0]; try { captureSession.setZoomRatio(zoomRatio); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1636,7 +1757,7 @@ getZoomRatio(): number | 类型 | 说明 | | ---------- | ----------------------------- | -| number | 获取当前的变焦比结果。 | +| number | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1644,6 +1765,7 @@ getZoomRatio(): number try { let zoomRatio = captureSession.getZoomRatio(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1666,7 +1788,7 @@ isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回视频防抖模式是否支持。 | +| boolean | 返回视频防抖模式是否支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1674,6 +1796,7 @@ isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean try { let isSupported = captureSession.isVideoStabilizationModeSupported(camera.VideoStabilizationMode.OFF); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1690,7 +1813,7 @@ getActiveVideoStabilizationMode(): VideoStabilizationMode | 类型 | 说明 | | ---------- | ----------------------------- | -| VideoStabilizationMode | 视频防抖是否正在使用。 | +| VideoStabilizationMode | 视频防抖是否正在使用。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1698,6 +1821,7 @@ getActiveVideoStabilizationMode(): VideoStabilizationMode try { let vsMode = captureSession.getActiveVideoStabilizationMode(); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1716,12 +1840,19 @@ setVideoStabilizationMode(mode: VideoStabilizationMode): void | -------- | ------------------------------------------------- | ---- | --------------------- | | mode | [VideoStabilizationMode](#videostabilizationmode) | 是 | 需要设置的视频防抖模式。 | +**返回值:** + +| 类型 | 说明 | +| ---------- | ----------------------------- | +| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | + **示例:** ```js try { captureSession.setVideoStabilizationMode(camera.VideoStabilizationMode.OFF); } catch (error) { + // 失败返回错误码error.code并处理 console.log(error.code); } ``` @@ -1762,13 +1893,13 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | ------------------------------ | | type | string | 是 | 监听事件,固定为'error',即拍照会话错误事件。 | -| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js -captureSession.on('error', (captureSessionError) => { - console.log(`Capture session error code: ${captureSessionError.code}`); +captureSession.on('error', (error) => { + console.log(`Capture session error code: ${error.code}`); }) ``` @@ -1792,7 +1923,7 @@ start(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1800,6 +1931,7 @@ start(callback: AsyncCallback): void previewOutput.start((err) => { if (err) { console.error(`Failed to start the previewOutput. ${err.message}`); + console.error(`Failed to start the previewOutput. ${err.code}`); return; } console.log('Callback returned with previewOutput started.'); @@ -1818,14 +1950,17 @@ start(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode)| **示例:** ```js previewOutput.start().then(() => { console.log('Promise returned with previewOutput started.'); -}) +}).catch((err) => { + console.log('Failed to previewOutput start '+ err.message); + console.log('Failed to previewOutput start '+ err.code); +}); ``` ### stop @@ -1873,7 +2008,9 @@ stop(): Promise ```js previewOutput.stop().then(() => { console.log('Callback returned with previewOutput stopped.'); -}) +}).catch((err) => { + console.log('Failed to previewOutput stop '+ err.message); +}); ``` ### release @@ -1888,7 +2025,7 @@ release(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -1896,6 +2033,7 @@ release(callback: AsyncCallback): void previewOutput.release((err) => { if (err) { console.error(`Failed to release the PreviewOutput instance ${err.message}`); + console.error(`Failed to release the PreviewOutput instance ${err.code}`); return; } console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.'); @@ -1914,14 +2052,17 @@ release(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js previewOutput.release().then(() => { console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.'); -}) +}).catch((err) => { + console.log('Failed to previewOutput release '+ err.message); + console.log('Failed to previewOutput release '+ err.code); +}); ``` ### on('frameStart') @@ -1983,7 +2124,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------------- | ---- | ------------------------ | | type | string | 是 | 监听事件,固定为'error',即预览输出错误事件。| -| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2060,7 +2201,7 @@ capture(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2068,6 +2209,7 @@ capture(callback: AsyncCallback): void photoOutput.capture((err) => { if (err) { console.error(`Failed to capture the photo ${err.message}`); + console.error(`Failed to capture the photo ${err.code}`); return; } console.log('Callback invoked to indicate the photo capture request success.'); @@ -2086,14 +2228,17 @@ capture(): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js photoOutput.capture().then(() => { console.log('Promise returned to indicate that photo capture request success.'); -}) +}).catch((err) => { + console.log('Failed to photoOutput capture '+ err.message); + console.log('Failed to photoOutput capture '+ err.code); +}); ``` ### capture @@ -2109,7 +2254,7 @@ capture(setting: PhotoCaptureSetting, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------- | ---- | -------------------- | | setting | [PhotoCaptureSetting](#photocapturesetting) | 是 | 拍照设置。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2128,6 +2273,7 @@ let settings = { photoOutput.capture(settings, (err) => { if (err) { console.error(`Failed to capture the photo ${err.message}`); + console.error(`Failed to capture the photo ${err.code}`); return; } console.log('Callback invoked to indicate the photo capture request success.'); @@ -2152,7 +2298,7 @@ capture(setting?: PhotoCaptureSetting): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2160,7 +2306,10 @@ capture(setting?: PhotoCaptureSetting): Promise ```js photoOutput.capture(settings).then(() => { console.log('Promise returned to indicate that photo capture request success.'); -}) +}).catch((err) => { + console.log('Failed to photoOutput capture '+ err.message); + console.log('Failed to photoOutput capture '+ err.code); +}); ``` ### isMirrorSupported @@ -2195,7 +2344,7 @@ release(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2203,6 +2352,7 @@ release(callback: AsyncCallback): void photoOutput.release((err) => { if (err) { console.error(`Failed to release the PreviewOutput instance ${err.message}`); + console.error(`Failed to release the PreviewOutput instance ${err.code}`); return; } console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.'); @@ -2221,14 +2371,17 @@ release(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js photoOutput.release().then(() => { console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.'); -}) +}).catch((err) => { + console.log('Failed to photoOutput release '+ err.message); + console.log('Failed to photoOutput release '+ err.code); +}); ``` ### on('captureStart') @@ -2315,13 +2468,13 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------- | ---- | ----------------------------------- | | type | string | 是 | 监听事件,固定为'error',即拍照错误事件。 | -| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。 | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js -photoOutput.on('error', (err, photoOutputError) => { - console.log(`Photo output error code: ${photoOutputError.code}`); +photoOutput.on('error', (err, error) => { + console.log(`Photo output error code: ${error.code}`); }) ``` @@ -2363,7 +2516,7 @@ start(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2371,6 +2524,7 @@ start(callback: AsyncCallback): void videoOutput.start((err) => { if (err) { console.error(`Failed to start the video output ${err.message}`); + console.error(`Failed to start the video output ${err.code}`); return; } console.log('Callback invoked to indicate the video output start success.'); @@ -2389,7 +2543,7 @@ start(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2397,7 +2551,10 @@ start(): Promise ```js videoOutput.start().then(() => { console.log('Promise returned to indicate that start method execution success.'); -}) +}).catch((err) => { + console.log('Failed to videoOutput start '+ err.message); + console.log('Failed to videoOutput start '+ err.code); +}); ``` ### stop @@ -2445,7 +2602,9 @@ stop(): Promise ```js videoOutput.stop().then(() => { console.log('Promise returned to indicate that stop method execution success.'); -}) +}).catch((err) => { + console.log('Failed to videoOutput stop '+ err.message); +}); ``` ### release @@ -2460,7 +2619,7 @@ release(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2468,6 +2627,7 @@ release(callback: AsyncCallback): void videoOutput.release((err) => { if (err) { console.error(`Failed to release the PreviewOutput instance ${err.message}`); + console.error(`Failed to release the PreviewOutput instance ${err.code}`); return; } console.log('Callback invoked to indicate that the PreviewOutput instance is released successfully.'); @@ -2486,14 +2646,17 @@ release(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js videoOutput.release().then(() => { console.log('Promise returned to indicate that the PreviewOutput instance is released successfully.'); -}) +}).catch((err) => { + console.log('Failed to videoOutput release '+ err.message); + console.log('Failed to videoOutput release '+ err.code); +}); ``` ### on('frameStart') @@ -2555,13 +2718,13 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | -------------------------------------- | | type | string | 是 | 监听事件,固定为'error',即视频输出错误事件。 | -| callback | Callback | 是 | 回调函数,用于获取错误信息。 | +| callback | Callback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js -videoOutput.on('error', (VideoOutputError) => { - console.log(`Video output error code: ${VideoOutputError.code}`); +videoOutput.on('error', (error) => { + console.log(`Video output error code: ${error.code}`); }) ``` @@ -2580,8 +2743,8 @@ start(callback: AsyncCallback): void **参数:** | 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。 | +| -------- | -------------------------- | ---- | ------------------- | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** @@ -2589,6 +2752,7 @@ start(callback: AsyncCallback): void metadataOutput.start((err) => { if (err) { console.error(`Failed to start metadataOutput. ${err.message}`); + console.error(`Failed to start metadataOutput. ${err.code}`); return; } console.log('Callback returned with metadataOutput started.'); @@ -2607,14 +2771,17 @@ start(): Promise | 类型 | 说明 | | ---------------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。 | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** ```js metadataOutput.start().then(() => { console.log('Callback returned with metadataOutput started.'); -}) +}).catch((err) => { + console.log('Failed to metadataOutput start '+ err.message); + console.log('Failed to metadataOutput start '+ err.code); +}); ``` ### stop @@ -2662,7 +2829,9 @@ stop(): Promise ```js metadataOutput.stop().then(() => { console.log('Callback returned with metadataOutput stopped.'); -}) +}).catch((err) => { + console.log('Failed to metadataOutput stop '+ err.message); +}); ``` ### on('metadataObjectsAvailable') @@ -2701,7 +2870,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | --------------------------------------- | | type | string | 是 | 监听事件,固定为'error',即metadata流的错误。 | -| callback | Callback | 是 | 回调函数,用于获取错误信息。 | +| callback | Callback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | **示例:** -- GitLab From 696d8c70b47f48bf7fae9c4a4f441d718af5183b Mon Sep 17 00:00:00 2001 From: mali Date: Fri, 13 Jan 2023 15:53:29 +0800 Subject: [PATCH 230/383] Camera development and interface document update-02 Signed-off-by: mali --- zh-cn/application-dev/reference/apis/js-apis-camera.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md index 130a3aa257..8f77d6aea0 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-camera.md +++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md @@ -252,7 +252,7 @@ createCameraInput(camera: CameraDevice): CameraInput | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** -- GitLab From 7e243218bf0206409e274df12faac3d670565720 Mon Sep 17 00:00:00 2001 From: lixiang Date: Thu, 12 Jan 2023 19:21:49 +0800 Subject: [PATCH 231/383] dddd Signed-off-by: lixiang --- .../reference/arkui-ts/ts-basic-components-web.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 34bc94a3a3..a6cf6b7b6a 100755 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -1233,7 +1233,7 @@ onAlert(callback: (event?: { url: string; message: string; result: JsResult }) = | 类型 | 说明 | | ------- | ---------------------------------------- | -| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | +| boolean | 当回调返回true时,应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。当回调返回false时,web组件暂不支持触发默认弹窗。 | **示例:** @@ -1291,7 +1291,7 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu | 类型 | 说明 | | ------- | ---------------------------------------- | -| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。 | +| boolean | 当回调返回true时,应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件最终是否离开当前页面。当回调返回false时,web组件暂不支持触发默认弹窗。 | **示例:** @@ -1352,7 +1352,7 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) | 类型 | 说明 | | ------- | ---------------------------------------- | -| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | +| boolean | 当回调返回true时,应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。当回调返回false时,web组件暂不支持触发默认弹窗。 | **示例:** @@ -1412,7 +1412,7 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul | 类型 | 说明 | | ------- | ---------------------------------------- | -| boolean | 当回调返回false时,触发默认弹窗。当回调返回true时,系统应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。 | +| boolean | 当回调返回true时,应用可以调用系统弹窗能力(包括确认和取消),并且需要根据用户的确认或取消操作调用JsResult通知Web组件。当回调返回false时,web组件暂不支持触发默认弹窗。 | **示例:** @@ -1842,7 +1842,7 @@ onShowFileSelector(callback: (event?: { result: FileSelectorResult, fileSelector | 类型 | 说明 | | ------- | ---------------------------------------- | -| boolean | 当返回值为true时,用户可以调用系统提供的弹窗能力。当返回值为false时,触发Web默认弹窗。 | +| boolean | 当返回值为true时,用户可以调用系统提供的弹窗能力。当回调返回false时,web组件暂不支持触发默认弹窗。 | **示例:** -- GitLab From 2820b631989435ca29da1f3d922b9dcad1ba715b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Fri, 13 Jan 2023 08:05:18 +0000 Subject: [PATCH 232/383] bugfix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../task-management/workscheduler-extensionability.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/task-management/workscheduler-extensionability.md b/zh-cn/application-dev/task-management/workscheduler-extensionability.md index 97367f1b99..6f37265428 100644 --- a/zh-cn/application-dev/task-management/workscheduler-extensionability.md +++ b/zh-cn/application-dev/task-management/workscheduler-extensionability.md @@ -1,6 +1,6 @@ # 延迟任务回调能力开发指导(WorkSchedulerExtensionAbility) -对于实时性要求不高的任务或持久性任务,可以使用延迟调度任务,该机制会在应用满足应用设定条件(包括网络类型、充电类型、存储状态、电池状态、定时状态)时,根据系统当前状态,由系统统一决策调度时间。 +对于实时性要求不高的任务或持久性任务,可以使用延迟任务,该机制会在应用满足应用设定条件(包括网络类型、充电类型、存储状态、电池状态、定时状态)时,根据系统当前状态,由系统统一决策调度时间。 WorkSchedulerExtensionAbility提供了延迟任务回调能力,在延迟任务开始和结束时,系统会调用回调接口来处理任务逻辑,开发者可在回调接口里面编写自己的任务逻辑。 @@ -17,7 +17,7 @@ WorkSchedulerExtensionAbility提供了延迟任务回调能力,在延迟任务 ## 接口说明 -WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-app-form-formExtensionAbility.md)。 +WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-WorkSchedulerExtensionAbility.md )。 | 接口名 | 描述 | | -------- | -------- | @@ -122,7 +122,7 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 bundleName: '', abilityName: '' } - // 注册延迟调度任务 + // 注册延迟任务 startWork(bundleName: string, abilityName: string) { this.workInfo.bundleName = bundleName this.workInfo.abilityName = abilityName @@ -137,7 +137,7 @@ WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见 } } - // 停止延迟调度任务 + // 停止延迟任务 stopWork(bundleName: string, abilityName: string) { this.workInfo.bundleName = bundleName this.workInfo.abilityName = abilityName -- GitLab From 0fc094dfaa2baa1ecafb5caceb23a1c6fc2c6328 Mon Sep 17 00:00:00 2001 From: mali Date: Fri, 13 Jan 2023 16:06:52 +0800 Subject: [PATCH 233/383] Camera development and interface document update Signed-off-by: mali --- .../reference/apis/js-apis-camera.md | 134 +++++++++--------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-camera.md b/zh-cn/application-dev/reference/apis/js-apis-camera.md index 8f77d6aea0..3ce6f150a9 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-camera.md +++ b/zh-cn/application-dev/reference/apis/js-apis-camera.md @@ -288,7 +288,7 @@ createCameraInput(position: CameraPosition, type: CameraType): CameraInput | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraInput](#camerainput) | CameraInput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -324,7 +324,7 @@ createPreviewOutput(profile: Profile, surfaceId: string): PreviewOutput | 类型 | 说明 | | ---------- | ----------------------------- | -| [PreviewOutput](#previewoutput) | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [PreviewOutput](#previewoutput) | PreviewOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -358,7 +358,7 @@ createPhotoOutput(profile: Profile, surfaceId: string): PhotoOutput | 类型 | 说明 | | ---------- | ----------------------------- | -| [PhotoOutput](#photooutput) | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [PhotoOutput](#photooutput) | PhotoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -392,7 +392,7 @@ createVideoOutput(profile: VideoProfile, surfaceId: string): VideoOutput | 类型 | 说明 | | ---------- | ----------------------------- | -| [VideoOutput](#videooutput) | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [VideoOutput](#videooutput) | VideoOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -425,7 +425,7 @@ createMetadataOutput(metadataObjectTypes:Array): MetadataOu | 类型 | 说明 | | ---------- | ----------------------------- | -| [MetadataOutput](#metadataoutput) | MetadataOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [MetadataOutput](#metadataoutput) | MetadataOutput实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -452,7 +452,7 @@ createCaptureSession(): CaptureSession | 类型 | 说明 | | ---------- | ----------------------------- | -| [CaptureSession](#capturesession) | CaptureSession实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CaptureSession](#capturesession) | CaptureSession实例。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -635,7 +635,7 @@ open\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -662,7 +662,7 @@ open(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -687,7 +687,7 @@ close\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -741,7 +741,7 @@ on(type: 'error', cameraDevice:CameraDevice, callback: ErrorCallback | 是 | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | ErrorCallback | 是 | 回调函数,用于获取结果。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -832,7 +832,7 @@ beginConfig(): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -857,7 +857,7 @@ commitConfig(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -884,7 +884,7 @@ commitConfig(): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -916,7 +916,7 @@ addInput(cameraInput: CameraInput): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -947,7 +947,7 @@ removeInput(cameraInput: CameraInput): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -978,7 +978,7 @@ addOutput(previewOutput: CameraOutput): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1009,7 +1009,7 @@ removeOutput(previewOutput: CameraOutput): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1034,7 +1034,7 @@ start\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1086,7 +1086,7 @@ stop\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1113,7 +1113,7 @@ stop(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1138,7 +1138,7 @@ release\(callback: AsyncCallback\): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1165,7 +1165,7 @@ release(): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1190,7 +1190,7 @@ hasFlash(): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回true表示设备支持闪光灯。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| boolean | 返回true表示设备支持闪光灯。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1221,7 +1221,7 @@ isFlashModeSupported(flashMode: FlashMode): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回true表示支持该闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| boolean | 返回true表示支持该闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1257,7 +1257,7 @@ setFlashMode(flashMode: FlashMode): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1282,7 +1282,7 @@ getFlashMode(): FlashMode | 类型 | 说明 | | ---------- | ----------------------------- | -| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [FlashMode](#flashmode) | 获取当前设备的闪光灯模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1313,7 +1313,7 @@ isExposureModeSupported(aeMode: ExposureMode): boolean; | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| boolean | 获取是否支持曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1338,7 +1338,7 @@ getExposureMode(): ExposureMode | 类型 | 说明 | | ---------- | ----------------------------- | -| [ExposureMode](#exposuremode) | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [ExposureMode](#exposuremode) | 获取当前曝光模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1369,7 +1369,7 @@ setExposureMode(aeMode: ExposureMode): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1394,7 +1394,7 @@ getMeteringPoint(): Point | 类型 | 说明 | | ---------- | ----------------------------- | -| [Point](#point) | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [Point](#point) | 获取当前曝光点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1425,7 +1425,7 @@ setMeteringPoint(point: Point): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1451,7 +1451,7 @@ getExposureBiasRange(): Array | 类型 | 说明 | | ---------- | ----------------------------- | -| Array | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Array | 获取补偿范围的数组。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1478,7 +1478,7 @@ setExposureBias(exposureBias: number): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------| ---- | ------------------- | -| exposureBias | number | 是 | 曝光补偿,getExposureBiasRange查询支持的范围,接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| exposureBias | number | 是 | 曝光补偿,getExposureBiasRange查询支持的范围,接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1504,7 +1504,7 @@ getExposureValue(): number | 类型 | 说明 | | ---------- | ----------------------------- | -| number | 获取曝光值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| number | 获取曝光值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1535,7 +1535,7 @@ isFocusModeSupported(afMode: FocusMode): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回true表示支持该焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| boolean | 返回true表示支持该焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1568,7 +1568,7 @@ setFocusMode(afMode: FocusMode): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1593,7 +1593,7 @@ getFocusMode(): FocusMode | 类型 | 说明 | | ---------- | ----------------------------- | -| [FocusMode](#focusmode) | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [FocusMode](#focusmode) | 获取当前设备的焦距模式。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1624,7 +1624,7 @@ setFocusPoint(point: Point): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1650,7 +1650,7 @@ getFocusPoint(): Point | 类型 | 说明 | | ---------- | ----------------------------- | -| [Point](#point) | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [Point](#point) | 用于获取当前焦点。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1675,7 +1675,7 @@ getFocalLength(): number | 类型 | 说明 | | ---------- | ----------------------------- | -| number | 用于获取当前焦距。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| number | 用于获取当前焦距。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1700,7 +1700,7 @@ getZoomRatioRange(): Array | 类型 | 说明 | | ---------- | ----------------------------- | -| Array | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Array | 用于获取可变焦距比范围,返回的数组包括其最小值和最大值。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1731,7 +1731,7 @@ setZoomRatio(zoomRatio: number): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1757,7 +1757,7 @@ getZoomRatio(): number | 类型 | 说明 | | ---------- | ----------------------------- | -| number | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| number | 获取当前的变焦比结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1788,7 +1788,7 @@ isVideoStabilizationModeSupported(vsMode: VideoStabilizationMode): boolean | 类型 | 说明 | | ---------- | ----------------------------- | -| boolean | 返回视频防抖模式是否支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| boolean | 返回视频防抖模式是否支持。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1813,7 +1813,7 @@ getActiveVideoStabilizationMode(): VideoStabilizationMode | 类型 | 说明 | | ---------- | ----------------------------- | -| VideoStabilizationMode | 视频防抖是否正在使用。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| VideoStabilizationMode | 视频防抖是否正在使用。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1844,7 +1844,7 @@ setVideoStabilizationMode(mode: VideoStabilizationMode): void | 类型 | 说明 | | ---------- | ----------------------------- | -| [CameraErrorCode](#cameraerrorode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| [CameraErrorCode](#cameraerrorcode) | 接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1893,7 +1893,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------- | ---- | ------------------------------ | | type | string | 是 | 监听事件,固定为'error',即拍照会话错误事件。 | -| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1923,7 +1923,7 @@ start(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -1950,7 +1950,7 @@ start(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode)| +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode)| **示例:** @@ -2025,7 +2025,7 @@ release(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2052,7 +2052,7 @@ release(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2124,7 +2124,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------------------- | ---- | ------------------------ | | type | string | 是 | 监听事件,固定为'error',即预览输出错误事件。| -| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2201,7 +2201,7 @@ capture(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2228,7 +2228,7 @@ capture(): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2254,7 +2254,7 @@ capture(setting: PhotoCaptureSetting, callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------- | ---- | -------------------- | | setting | [PhotoCaptureSetting](#photocapturesetting) | 是 | 拍照设置。 | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2298,7 +2298,7 @@ capture(setting?: PhotoCaptureSetting): Promise | 类型 | 说明 | | -------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2344,7 +2344,7 @@ release(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2371,7 +2371,7 @@ release(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2468,7 +2468,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ----------------------------------------------------- | ---- | ----------------------------------- | | type | string | 是 | 监听事件,固定为'error',即拍照错误事件。 | -| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | ErrorCallback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2516,7 +2516,7 @@ start(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | -------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2543,7 +2543,7 @@ start(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2619,7 +2619,7 @@ release(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2646,7 +2646,7 @@ release(): Promise | 类型 | 说明 | | -------------- | ----------------------- | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2718,7 +2718,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | -------------------------------------- | | type | string | 是 | 监听事件,固定为'error',即视频输出错误事件。 | -| callback | Callback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | Callback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2744,7 +2744,7 @@ start(callback: AsyncCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------- | ---- | ------------------- | -| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | AsyncCallback | 是 | 回调函数,用于获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2771,7 +2771,7 @@ start(): Promise | 类型 | 说明 | | ---------------------- | ------------------------ | -| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| Promise | 使用Promise的方式获取结果。接口调用失败会返回相应错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** @@ -2870,7 +2870,7 @@ on(type: 'error', callback: ErrorCallback): void | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------ | ---- | --------------------------------------- | | type | string | 是 | 监听事件,固定为'error',即metadata流的错误。 | -| callback | Callback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorode) | +| callback | Callback | 是 | 回调函数,用于获取错误信息。返回错误码,错误码类型[CameraErrorCode](#cameraerrorcode) | **示例:** -- GitLab From 92dbbba6fc0dba6e98237eed99cc446e8cf9d4d3 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Fri, 13 Jan 2023 16:09:22 +0800 Subject: [PATCH 234/383] update doc Signed-off-by: shawn_he --- .../apis/js-apis-app-ability-appRecovery.md | 2 +- .../apis/js-apis-app-ability-errorManager.md | 4 +- .../apis/js-apis-application-errorManager.md | 4 +- .../reference/apis/js-apis-battery-info.md | 3 +- .../apis/js-apis-batteryStatistics.md | 2 +- .../reference/apis/js-apis-bytrace.md | 2 +- .../reference/apis/js-apis-call.md | 4 +- .../reference/apis/js-apis-contact.md | 2 +- .../reference/apis/js-apis-faultLogger.md | 2 +- .../apis/js-apis-geoLocationManager.md | 2 +- .../reference/apis/js-apis-geolocation.md | 9 +++-- .../reference/apis/js-apis-hiappevent.md | 2 +- .../reference/apis/js-apis-hichecker.md | 2 +- .../reference/apis/js-apis-hidebug.md | 2 +- .../reference/apis/js-apis-hilog.md | 2 +- .../reference/apis/js-apis-hitracechain.md | 2 +- .../apis/js-apis-hiviewdfx-hiappevent.md | 2 +- .../reference/apis/js-apis-i18n.md | 14 +++---- .../reference/apis/js-apis-inputconsumer.md | 2 +- .../reference/apis/js-apis-inputdevice.md | 6 +-- .../reference/apis/js-apis-inputevent.md | 2 +- .../apis/js-apis-inputeventclient.md | 2 +- .../reference/apis/js-apis-inputmonitor.md | 5 +-- .../reference/apis/js-apis-intl.md | 38 +++++++++---------- .../reference/apis/js-apis-keycode.md | 2 +- .../reference/apis/js-apis-keyevent.md | 2 +- .../reference/apis/js-apis-mouseevent.md | 2 +- .../reference/apis/js-apis-net-connection.md | 2 +- .../reference/apis/js-apis-net-ethernet.md | 2 +- .../reference/apis/js-apis-net-sharing.md | 2 +- .../reference/apis/js-apis-observer.md | 4 +- .../reference/apis/js-apis-pointer.md | 2 +- .../reference/apis/js-apis-power.md | 2 +- .../reference/apis/js-apis-radio.md | 4 +- .../apis/js-apis-resource-manager.md | 2 +- .../reference/apis/js-apis-rpc.md | 4 +- .../reference/apis/js-apis-runninglock.md | 2 +- .../reference/apis/js-apis-screen-lock.md | 2 +- .../reference/apis/js-apis-screen.md | 4 +- .../reference/apis/js-apis-sim.md | 4 +- .../reference/apis/js-apis-sms.md | 4 +- .../reference/apis/js-apis-socket.md | 2 +- .../apis/js-apis-storage-statistics.md | 2 +- .../reference/apis/js-apis-system-battery.md | 4 +- .../apis/js-apis-system-brightness.md | 4 +- .../reference/apis/js-apis-telephony-data.md | 4 +- .../reference/apis/js-apis-thermal.md | 2 +- .../reference/apis/js-apis-touchevent.md | 2 +- .../reference/apis/js-apis-update.md | 2 +- .../reference/apis/js-apis-usb-deprecated.md | 6 +-- .../reference/apis/js-apis-usb.md | 2 +- .../reference/apis/js-apis-util.md | 4 +- .../reference/apis/js-apis-webSocket.md | 4 +- 53 files changed, 98 insertions(+), 103 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md b/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md index 80c507b83a..ac58b785df 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.appRecovery +# @ohos.app.ability.appRecovery (App Recovery) The **appRecovery** module provides APIs for recovering faulty applications. diff --git a/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md b/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md index 3fb88a2b8a..f7203ef5de 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.errorManager +# @ohos.app.ability.errorManager (Error Manager) -The **ErrorManager** module provides APIs for registering and deregistering error observers. +The **errorManager** module provides APIs for registering and deregistering error observers. > **NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-application-errorManager.md b/en/application-dev/reference/apis/js-apis-application-errorManager.md index 5326b58212..b1a98049c7 100644 --- a/en/application-dev/reference/apis/js-apis-application-errorManager.md +++ b/en/application-dev/reference/apis/js-apis-application-errorManager.md @@ -1,6 +1,6 @@ -# @ohos.application.errorManager +# @ohos.application.errorManager (Error Manager) -The **ErrorManager** module provides APIs for registering and deregistering error observers. +The **errorManager** module provides APIs for registering and deregistering error observers. > **NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-battery-info.md b/en/application-dev/reference/apis/js-apis-battery-info.md index 488c8f1633..41d13ba574 100644 --- a/en/application-dev/reference/apis/js-apis-battery-info.md +++ b/en/application-dev/reference/apis/js-apis-battery-info.md @@ -1,11 +1,10 @@ -# @ohos.batteryInfo +# @ohos.batteryInfo (Battery Information) The **batteryInfo** module provides APIs for querying the charger type, battery health status, and battery charging status. > **NOTE**
> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. - ## Modules to Import ```js diff --git a/en/application-dev/reference/apis/js-apis-batteryStatistics.md b/en/application-dev/reference/apis/js-apis-batteryStatistics.md index 7c1df26a13..2bb3159fc3 100644 --- a/en/application-dev/reference/apis/js-apis-batteryStatistics.md +++ b/en/application-dev/reference/apis/js-apis-batteryStatistics.md @@ -1,4 +1,4 @@ -# @ohos.batteryStatistics +# @ohos.batteryStatistics (Battery Statistics) The **batteryStatistics** module provides APIs for querying software and hardware power consumption statistics. diff --git a/en/application-dev/reference/apis/js-apis-bytrace.md b/en/application-dev/reference/apis/js-apis-bytrace.md index 544a4ba0d2..89e14f7ad3 100644 --- a/en/application-dev/reference/apis/js-apis-bytrace.md +++ b/en/application-dev/reference/apis/js-apis-bytrace.md @@ -1,4 +1,4 @@ -# Performance Tracing +# @ohos.bytrace (Performance Tracing) > **NOTE** > - The APIs of this module are no longer maintained since API version 8. It is recommended that you use the APIs of [hiTraceMeter](js-apis-hitracemeter.md) instead. diff --git a/en/application-dev/reference/apis/js-apis-call.md b/en/application-dev/reference/apis/js-apis-call.md index 7c5bd52bd9..0ccd49a5dc 100644 --- a/en/application-dev/reference/apis/js-apis-call.md +++ b/en/application-dev/reference/apis/js-apis-call.md @@ -1,6 +1,6 @@ -# Call +# @ohos.telephony.call (Call) -The call module provides call management functions, including making calls, redirecting to the dial screen, obtaining the call status, and formatting phone numbers. +The **call** module provides call management functions, including making calls, redirecting to the dial screen, obtaining the call status, and formatting phone numbers. To subscribe to the call status, use [`observer.on('callStateChange')`](js-apis-observer.md#observeroncallstatechange). diff --git a/en/application-dev/reference/apis/js-apis-contact.md b/en/application-dev/reference/apis/js-apis-contact.md index a166781108..2778a143c6 100644 --- a/en/application-dev/reference/apis/js-apis-contact.md +++ b/en/application-dev/reference/apis/js-apis-contact.md @@ -1,4 +1,4 @@ -# Contacts +# @ohos.contact (Contacts) >**NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-faultLogger.md b/en/application-dev/reference/apis/js-apis-faultLogger.md index 6aa752374b..2a6c9e6c86 100644 --- a/en/application-dev/reference/apis/js-apis-faultLogger.md +++ b/en/application-dev/reference/apis/js-apis-faultLogger.md @@ -1,4 +1,4 @@ -# @ohos.faultLogger +# @ohos.faultLogger (Fault Logger) The **faultLogger** module implements fault logging functions. diff --git a/en/application-dev/reference/apis/js-apis-geoLocationManager.md b/en/application-dev/reference/apis/js-apis-geoLocationManager.md index 778fb02db0..e102353bf8 100644 --- a/en/application-dev/reference/apis/js-apis-geoLocationManager.md +++ b/en/application-dev/reference/apis/js-apis-geoLocationManager.md @@ -1,4 +1,4 @@ -# @ohos.geoLocationManager +# @ohos.geoLocationManager (Geolocation Manager) The **geoLocationManager** module provides location service management functions. diff --git a/en/application-dev/reference/apis/js-apis-geolocation.md b/en/application-dev/reference/apis/js-apis-geolocation.md index a5c7034c03..86b62bd76f 100644 --- a/en/application-dev/reference/apis/js-apis-geolocation.md +++ b/en/application-dev/reference/apis/js-apis-geolocation.md @@ -1,10 +1,11 @@ -# Geolocation +# @ohos.geolocation (Geolocation) -The Geolocation module provides location services such as GNSS positioning, network positioning, geocoding, reverse geocoding, country code and geofencing. +The **geolocation** module provides location services such as GNSS positioning, network positioning, geocoding, reverse geocoding, country code and geofencing. > **NOTE** -> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> The APIs provided by this module are no longer maintained since API version 9. You are advised to use [geoLocationManager](js-apis-geoLocationManager.md) instead. +> +> - The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - The APIs provided by this module are no longer maintained since API version 9. You are advised to use [geoLocationManager](js-apis-geoLocationManager.md) instead. ## Applying for Permissions diff --git a/en/application-dev/reference/apis/js-apis-hiappevent.md b/en/application-dev/reference/apis/js-apis-hiappevent.md index 24125f48cd..260c8c5418 100644 --- a/en/application-dev/reference/apis/js-apis-hiappevent.md +++ b/en/application-dev/reference/apis/js-apis-hiappevent.md @@ -1,4 +1,4 @@ -# HiAppEvent +# @ohos.hiAppEvent (Application Event Logging) The HiAppEvent module provides the application event logging functions, such as writing application events to the event file and managing the event logging configuration. diff --git a/en/application-dev/reference/apis/js-apis-hichecker.md b/en/application-dev/reference/apis/js-apis-hichecker.md index 5d12291000..3a5687e9ee 100644 --- a/en/application-dev/reference/apis/js-apis-hichecker.md +++ b/en/application-dev/reference/apis/js-apis-hichecker.md @@ -1,4 +1,4 @@ -# @ohos.hichecker +# @ohos.hichecker (HiChecker) The **hichecker** module is provided for you to check issues that may be easily ignored during development of OpenHarmony applications (including system-built and third-party applications). Such issues include calling of time-consuming functions by key application threads, event distribution and execution timeout in application processes, and ability resource leakage in application processes. The issues are recorded in logs or lead to process crashes explicitly so that you can find and rectify them. diff --git a/en/application-dev/reference/apis/js-apis-hidebug.md b/en/application-dev/reference/apis/js-apis-hidebug.md index 3bab9f0be3..189d855e89 100644 --- a/en/application-dev/reference/apis/js-apis-hidebug.md +++ b/en/application-dev/reference/apis/js-apis-hidebug.md @@ -1,4 +1,4 @@ -# @ohos.hidebug +# @ohos.hidebug (HiDebug) The **hidebug** module provides APIs for you to obtain the memory usage of an application, including the static heap memory (native heap) and proportional set size (PSS) occupied by the application process. You can also export VM memory slices and collect VM CPU profiling data. diff --git a/en/application-dev/reference/apis/js-apis-hilog.md b/en/application-dev/reference/apis/js-apis-hilog.md index 01dbef8ce6..54355b12b7 100644 --- a/en/application-dev/reference/apis/js-apis-hilog.md +++ b/en/application-dev/reference/apis/js-apis-hilog.md @@ -1,4 +1,4 @@ -# @ohos.hilog +# @ohos.hilog (HiLog) The **hilog** module allows your applications or services to output logs based on the specified type, level, and format string. Such logs help you learn the running status of applications and better debug programs. diff --git a/en/application-dev/reference/apis/js-apis-hitracechain.md b/en/application-dev/reference/apis/js-apis-hitracechain.md index 17f888aca8..b72b026ce9 100644 --- a/en/application-dev/reference/apis/js-apis-hitracechain.md +++ b/en/application-dev/reference/apis/js-apis-hitracechain.md @@ -1,4 +1,4 @@ -# @ohos.hiTraceChain (Distributed Call Chain Tracing) +# @ohos.hiTraceChain (Distributed Call Chain Tracing) The **hiTraceChain** module implements call chain tracing throughout a service process. It provides functions such as starting and stopping call chain tracing and configuring trace points. diff --git a/en/application-dev/reference/apis/js-apis-hiviewdfx-hiappevent.md b/en/application-dev/reference/apis/js-apis-hiviewdfx-hiappevent.md index 9179b9a2f0..86e09db17b 100644 --- a/en/application-dev/reference/apis/js-apis-hiviewdfx-hiappevent.md +++ b/en/application-dev/reference/apis/js-apis-hiviewdfx-hiappevent.md @@ -1,4 +1,4 @@ -# @ohos.hiviewdfx.hiAppEvent +# @ohos.hiviewdfx.hiAppEvent (Application Event Logging) The **hiAppEvent** module provides application event-related functions, including flushing application events to a disk, querying and clearing application events, and customizing application event logging configuration. diff --git a/en/application-dev/reference/apis/js-apis-i18n.md b/en/application-dev/reference/apis/js-apis-i18n.md index 08bf0cfe66..2a75e10154 100644 --- a/en/application-dev/reference/apis/js-apis-i18n.md +++ b/en/application-dev/reference/apis/js-apis-i18n.md @@ -1,10 +1,10 @@ -# Internationalization – I18N +# @ohos.i18n (Internationalization) -The I18N module provides system-related or enhanced I18N capabilities, such as locale management, phone number formatting, and calendar, through supplementary I18N APIs that are not defined in ECMA 402. -The [Intl](js-apis-intl.md) module provides basic I18N capabilities through the standard I18N APIs defined in ECMA 402. It works with the I18N module to provide a complete suite of I18N capabilities. +The **i18n** module provides system-related or enhanced I18N capabilities, such as locale management, phone number formatting, and calendar, through supplementary I18N APIs that are not defined in ECMA 402. +The [intl](js-apis-intl.md) module provides basic I18N capabilities through the standard I18N APIs defined in ECMA 402. It works with the I18N module to provide a complete suite of I18N capabilities. -> **NOTE** -> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> **NOTE** +> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import @@ -1054,7 +1054,7 @@ Creates a **PhoneNumberFormat** object. | Name | Type | Mandatory | Description | | ------- | ---------------------------------------- | ---- | ---------------- | | country | string | Yes | Country or region to which the phone number to be formatted belongs.| -| options | [PhoneNumberFormatOptions](#phonenumberformatoptions9) | No | Options of the **PhoneNumberFormat** object. | +| options | [PhoneNumberFormatOptions](#phonenumberformatoptions8) | No | Options of the **PhoneNumberFormat** object. | **Example** ```js @@ -1144,7 +1144,7 @@ Obtains the home location of a phone number. ``` -## PhoneNumberFormatOptions9+ +## PhoneNumberFormatOptions8+ Defines the options for this PhoneNumberFormat object. diff --git a/en/application-dev/reference/apis/js-apis-inputconsumer.md b/en/application-dev/reference/apis/js-apis-inputconsumer.md index c2d5a421c8..4de59dd132 100644 --- a/en/application-dev/reference/apis/js-apis-inputconsumer.md +++ b/en/application-dev/reference/apis/js-apis-inputconsumer.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.inputConsumer +# @ohos.multimodalInput.inputConsumer (Input Consumer) The **inputConsumer** module implements listening for combination key events. diff --git a/en/application-dev/reference/apis/js-apis-inputdevice.md b/en/application-dev/reference/apis/js-apis-inputdevice.md index 2f286827a6..c131d9bbd3 100644 --- a/en/application-dev/reference/apis/js-apis-inputdevice.md +++ b/en/application-dev/reference/apis/js-apis-inputdevice.md @@ -1,16 +1,12 @@ -# @ohos.multimodalInput.inputDevice - +# @ohos.multimodalInput.inputDevice (Input Device) The **inputDevice** module implements listening for connection, disconnection, and update events of input devices and displays information about input devices. For example, it can be used to listen for mouse insertion and removal and obtain information such as the ID, name, and pointer speed of the mouse. - > **NOTE**
> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. - ## Modules to Import - ```js import inputDevice from '@ohos.multimodalInput.inputDevice'; ``` diff --git a/en/application-dev/reference/apis/js-apis-inputevent.md b/en/application-dev/reference/apis/js-apis-inputevent.md index f7eec22c11..d2d55fa57e 100644 --- a/en/application-dev/reference/apis/js-apis-inputevent.md +++ b/en/application-dev/reference/apis/js-apis-inputevent.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.inputEvent +# @ohos.multimodalInput.inputEvent (Input Event) The **inputEvent** module describes basic events reported by an input device. diff --git a/en/application-dev/reference/apis/js-apis-inputeventclient.md b/en/application-dev/reference/apis/js-apis-inputeventclient.md index dbd66538a8..354f10e380 100644 --- a/en/application-dev/reference/apis/js-apis-inputeventclient.md +++ b/en/application-dev/reference/apis/js-apis-inputeventclient.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.inputEventClient (Key Injection) +# @ohos.multimodalInput.inputEventClient (Key Event Injection) The **inputEventClient** module implements injection of key events. diff --git a/en/application-dev/reference/apis/js-apis-inputmonitor.md b/en/application-dev/reference/apis/js-apis-inputmonitor.md index 7bd41f5d0b..304fa76946 100644 --- a/en/application-dev/reference/apis/js-apis-inputmonitor.md +++ b/en/application-dev/reference/apis/js-apis-inputmonitor.md @@ -1,11 +1,10 @@ -# Input Monitor +# @ohos.multimodalInput.inputMonitor (Input Monitor) -The Input Monitor module implements listening for events of input devices (namely, touchscreen and mouse). +The **inputMonitor** module implements listening for events of input devices (namely, touchscreen and mouse). > **NOTE** > > - The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> > - The APIs provided by this module are system APIs. diff --git a/en/application-dev/reference/apis/js-apis-intl.md b/en/application-dev/reference/apis/js-apis-intl.md index e3cb7bbfd6..50b2674b13 100644 --- a/en/application-dev/reference/apis/js-apis-intl.md +++ b/en/application-dev/reference/apis/js-apis-intl.md @@ -1,12 +1,12 @@ -# Internationalization – Intl +# @ohos.intl (Internationalization) -The Intl module provides basic I18N capabilities, such as time and date formatting, number formatting, and string sorting, through the standard I18N APIs defined in ECMA 402. +The **intl** module provides basic I18N capabilities, such as time and date formatting, number formatting, and string sorting, through the standard I18N APIs defined in ECMA 402. -The [I18N](js-apis-i18n.md) module provides enhanced I18N capabilities through supplementary APIs that are not defined in ECMA 402. It works with the Intl module to provide a complete suite of I18N capabilities. +The [i18n](js-apis-i18n.md) module provides enhanced I18N capabilities through supplementary APIs that are not defined in ECMA 402. It works with the Intl module to provide a complete suite of I18N capabilities. -> **NOTE** -> -> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> **NOTE** +> +> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import @@ -64,7 +64,7 @@ Creates a Locale object. | Name | Type | Mandatory | Description | | ------- | ------------- | ---- | ---------------------------- | | locale | string | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [LocaleOptions](#localeoptions9) | No | Options for creating the **Locale** object. | +| options9+ | [LocaleOptions](#localeoptions6) | No | Options for creating the **Locale** object. | **Example** ``` @@ -135,7 +135,7 @@ Minimizes information of the **Locale** object. If the script and locale informa ``` -## LocaleOptions9+ +## LocaleOptions6+ Represents the locale options. @@ -181,7 +181,7 @@ Creates a **DateTimeOptions** object for the specified locale. | Name | Type | Mandatory | Description | | ------- | ----------------------------------- | ---- | ---------------------------- | | locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [DateTimeOptions](#datetimeoptions9) | No | Options for creating a **DateTimeFormat** object. | +| options9+ | [DateTimeOptions](#datetimeoptions6) | No | Options for creating a **DateTimeFormat** object. | **Example** ``` @@ -274,7 +274,7 @@ Obtains the formatting options for **DateTimeFormat** object. ``` -## DateTimeOptions9+ +## DateTimeOptions6+ Provides the options for the **DateTimeFormat** object. @@ -332,7 +332,7 @@ Parameters | Name | Type | Mandatory | Description | | ------- | ------------------------------- | ---- | ---------------------------- | | locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [NumberOptions](#numberoptions9) | No | Options for creating a **NumberFormat** object. | +| options9+ | [NumberOptions](#numberoptions6) | No | Options for creating a **NumberFormat** object. | **Example** ``` @@ -380,7 +380,7 @@ Obtains the options of the **NumberFormat** object. | Type | Description | | ------------------------------- | --------------------------- | -| [NumberOptions](#numberoptions9) | Formatting options for **NumberFormat** objects.| +| [NumberOptions](#numberoptions6) | Formatting options for **NumberFormat** objects.| **Example** @@ -390,7 +390,7 @@ Obtains the options of the **NumberFormat** object. ``` -## NumberOptions9+ +## NumberOptions6+ Provides the device capability. @@ -449,7 +449,7 @@ Creates a Collator object. | Name | Type | Mandatory | Description | | ------- | ----------------------------------- | ---- | ---------------------------- | | locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [CollatorOptions](#collatoroptions9) | No | Options for creating a **Collator** object. | +| options9+ | [CollatorOptions](#collatoroptions8) | No | Options for creating a **Collator** object. | **Example** ``` @@ -507,7 +507,7 @@ Returns properties reflecting the locale and collation options of a **Collator** ``` -## CollatorOptions9+ +## CollatorOptions8+ Represents the properties of a **Collator** object. @@ -553,7 +553,7 @@ Parameters | Name | Type | Mandatory | Description | | ------- | ---------------------------------------- | ---- | ---------------------------- | | locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [PluralRulesOptions](#pluralrulesoptions9) | No | Options for creating a **PluralRules** object. | +| options9+ | [PluralRulesOptions](#pluralrulesoptions8) | No | Options for creating a **PluralRules** object. | **Example** ``` @@ -588,7 +588,7 @@ Obtains a string that represents the singular-plural type of the specified numbe ``` -## PluralRulesOptions9+ +## PluralRulesOptions8+ Represents the properties of a **PluralRules** object. @@ -635,7 +635,7 @@ Creates a **RelativeTimeFormat** object. | Name | Type | Mandatory | Description | | ------- | ---------------------------------------- | ---- | ---------------------------- | | locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions9) | No | Options for creating a **RelativeTimeFormat** object. | +| options9+ | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions8) | No | Options for creating a **RelativeTimeFormat** object. | **Example** ``` @@ -720,7 +720,7 @@ Obtains the formatting options for **RelativeTimeFormat** objects. ``` -## RelativeTimeFormatInputOptions9+ +## RelativeTimeFormatInputOptions8+ Represents the properties of a **RelativeTimeFormat** object. diff --git a/en/application-dev/reference/apis/js-apis-keycode.md b/en/application-dev/reference/apis/js-apis-keycode.md index 6f5ff70edc..e697759426 100644 --- a/en/application-dev/reference/apis/js-apis-keycode.md +++ b/en/application-dev/reference/apis/js-apis-keycode.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.keyCode +# @ohos.multimodalInput.keyCode (Key Code) The **keyCode** module provides keycodes for a key device. diff --git a/en/application-dev/reference/apis/js-apis-keyevent.md b/en/application-dev/reference/apis/js-apis-keyevent.md index 6d65e9bfe4..32c18a5585 100644 --- a/en/application-dev/reference/apis/js-apis-keyevent.md +++ b/en/application-dev/reference/apis/js-apis-keyevent.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.keyEvent +# @ohos.multimodalInput.keyEvent (Key Event) The **keyEvent** module provides key events reported by an input device. diff --git a/en/application-dev/reference/apis/js-apis-mouseevent.md b/en/application-dev/reference/apis/js-apis-mouseevent.md index 81403eff20..92935d6f31 100644 --- a/en/application-dev/reference/apis/js-apis-mouseevent.md +++ b/en/application-dev/reference/apis/js-apis-mouseevent.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.mouseEvent +# @ohos.multimodalInput.mouseEvent (Mouse Event) The **mouseEvent** module provides mouse events reported by an input device. diff --git a/en/application-dev/reference/apis/js-apis-net-connection.md b/en/application-dev/reference/apis/js-apis-net-connection.md index 5df384d16a..d5a5f1585a 100644 --- a/en/application-dev/reference/apis/js-apis-net-connection.md +++ b/en/application-dev/reference/apis/js-apis-net-connection.md @@ -1,4 +1,4 @@ -# # @ohos.net.connection +# @ohos.net.connection (Network Connection Management) The **connection** module provides basic network management capabilities. You can obtain the default active data network or the list of all active data networks, enable or disable the airplane mode, and obtain network capability information. diff --git a/en/application-dev/reference/apis/js-apis-net-ethernet.md b/en/application-dev/reference/apis/js-apis-net-ethernet.md index 924d8157a8..d41845ec18 100644 --- a/en/application-dev/reference/apis/js-apis-net-ethernet.md +++ b/en/application-dev/reference/apis/js-apis-net-ethernet.md @@ -1,4 +1,4 @@ -# @ohos.net.ethernet +# @ohos.net.ethernet (Ethernet Connection Management) The **ethernet** module provides wired network capabilities, which allow users to set the IP address, subnet mask, gateway, and Domain Name System (DNS) server of a wired network. diff --git a/en/application-dev/reference/apis/js-apis-net-sharing.md b/en/application-dev/reference/apis/js-apis-net-sharing.md index a688bf4644..144ffa9c6e 100644 --- a/en/application-dev/reference/apis/js-apis-net-sharing.md +++ b/en/application-dev/reference/apis/js-apis-net-sharing.md @@ -1,4 +1,4 @@ -# @ohos.net.sharing +# @ohos.net.sharing (Network Sharing) The **sharing** module allows you to share your device's Internet connection with other connected devices by means of Wi-Fi hotspot, Bluetooth, and USB sharing. It also allows you to query the network sharing state and shared mobile data volume. diff --git a/en/application-dev/reference/apis/js-apis-observer.md b/en/application-dev/reference/apis/js-apis-observer.md index ad7d19b4ab..ae5b7999bd 100644 --- a/en/application-dev/reference/apis/js-apis-observer.md +++ b/en/application-dev/reference/apis/js-apis-observer.md @@ -1,6 +1,6 @@ -# Observer +# @ohos.telephony.observer (Observer) -The observer module provides event subscription management functions. You can register or unregister an observer that listens for the following events: network status change, signal status change, call status change, cellular data connection status, uplink and downlink data flow status of cellular data services, and SIM status change. +The **observer** module provides event subscription management functions. You can register or unregister an observer that listens for the following events: network status change, signal status change, call status change, cellular data connection status, uplink and downlink data flow status of cellular data services, and SIM status change. >**NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-pointer.md b/en/application-dev/reference/apis/js-apis-pointer.md index c688825479..2435d0a397 100644 --- a/en/application-dev/reference/apis/js-apis-pointer.md +++ b/en/application-dev/reference/apis/js-apis-pointer.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.pointer +# @ohos.multimodalInput.pointer (Mouse Pointer) The **pointer** module provides APIs related to pointer attribute management. diff --git a/en/application-dev/reference/apis/js-apis-power.md b/en/application-dev/reference/apis/js-apis-power.md index f1a94349e3..4dc07d4419 100644 --- a/en/application-dev/reference/apis/js-apis-power.md +++ b/en/application-dev/reference/apis/js-apis-power.md @@ -1,4 +1,4 @@ -# @ohos.power +# @ohos.power (System Power Management) The **power** module provides APIs for rebooting and shutting down the system, as well as querying the screen status. diff --git a/en/application-dev/reference/apis/js-apis-radio.md b/en/application-dev/reference/apis/js-apis-radio.md index 91c6be9cd7..dfb1dd7506 100644 --- a/en/application-dev/reference/apis/js-apis-radio.md +++ b/en/application-dev/reference/apis/js-apis-radio.md @@ -1,6 +1,6 @@ -# Radio +# @ohos.telephony.radio (Network Search) -The radio module provides basic network search management functions. You can obtain the radio access technology (RAT) used in the CS and PS domains, network status, current network selection mode, ISO country code of the registered network, ID of the slot in which the primary card is located, list of signal strengths of the registered network, carrier name, and IMEI, MEID, and unique device ID of the SIM card in the specified slot. Besides, you can check whether the current device supports 5G\(NR\) and whether the radio service is enabled on the primary SIM card. +The **radio** module provides basic network search management functions. You can obtain the radio access technology (RAT) used in the CS and PS domains, network status, current network selection mode, ISO country code of the registered network, ID of the slot in which the primary card is located, list of signal strengths of the registered network, carrier name, and IMEI, MEID, and unique device ID of the SIM card in the specified slot. Besides, you can check whether the current device supports 5G\(NR\) and whether the radio service is enabled on the primary SIM card. >**NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-resource-manager.md b/en/application-dev/reference/apis/js-apis-resource-manager.md index 5d215b54b3..7dc343709c 100644 --- a/en/application-dev/reference/apis/js-apis-resource-manager.md +++ b/en/application-dev/reference/apis/js-apis-resource-manager.md @@ -1,4 +1,4 @@ -# Resource Manager +# @ohos.resourceManager (Resource Manager) The Resource Manager module provides APIs to obtain information about application resources based on the current configuration, including the language, region, screen direction, MCC/MNC, as well as device capability and density. diff --git a/en/application-dev/reference/apis/js-apis-rpc.md b/en/application-dev/reference/apis/js-apis-rpc.md index 94757432a9..8fc776d550 100644 --- a/en/application-dev/reference/apis/js-apis-rpc.md +++ b/en/application-dev/reference/apis/js-apis-rpc.md @@ -1,6 +1,6 @@ -# @ohos.rpc +# @ohos.rpc (RPC) -The **RPC** module implements communication between processes, including inter-process communication (IPC) on a single device and remote procedure call (RPC) between processes on difference devices. IPC is implemented based on the Binder driver, and RPC is based on the DSoftBus driver. +The **rpc** module implements communication between processes, including inter-process communication (IPC) on a single device and remote procedure call (RPC) between processes on difference devices. IPC is implemented based on the Binder driver, and RPC is based on the DSoftBus driver. > **NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-runninglock.md b/en/application-dev/reference/apis/js-apis-runninglock.md index 29f70bf59b..ee70e09ca8 100644 --- a/en/application-dev/reference/apis/js-apis-runninglock.md +++ b/en/application-dev/reference/apis/js-apis-runninglock.md @@ -1,4 +1,4 @@ -# @ohos.runningLock +# @ohos.runningLock (Runninglock) The **runningLock** module provides APIs for creating, querying, holding, and releasing running locks. diff --git a/en/application-dev/reference/apis/js-apis-screen-lock.md b/en/application-dev/reference/apis/js-apis-screen-lock.md index 9dcef8737d..c726ec7c8f 100644 --- a/en/application-dev/reference/apis/js-apis-screen-lock.md +++ b/en/application-dev/reference/apis/js-apis-screen-lock.md @@ -1,4 +1,4 @@ -# @ohos.screenLock +# @ohos.screenLock (Screenlock) The **screenlock** module is a system module in OpenHarmony. It provides APIs for screen lock applications to subscribe to screen lock status changes as well as callbacks for them to receive the results. It also provides APIs for third-party applications to unlock the screen, obtain the screen locked status, and check whether a lock screen password has been set. diff --git a/en/application-dev/reference/apis/js-apis-screen.md b/en/application-dev/reference/apis/js-apis-screen.md index 0f5d909e9b..e9022ac7d2 100644 --- a/en/application-dev/reference/apis/js-apis-screen.md +++ b/en/application-dev/reference/apis/js-apis-screen.md @@ -1,6 +1,6 @@ -# Screen +# @ohos.screen (Screen) -The **Screen** module implements basic screen management. You can use the APIs of this module to obtain a **Screen** object, listen for screen changes, and create and destroy virtual screens. +The **screen** module implements basic screen management. You can use the APIs of this module to obtain a **Screen** object, listen for screen changes, and create and destroy virtual screens. > **NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-sim.md b/en/application-dev/reference/apis/js-apis-sim.md index 81c0504417..eb88ca8c05 100644 --- a/en/application-dev/reference/apis/js-apis-sim.md +++ b/en/application-dev/reference/apis/js-apis-sim.md @@ -1,6 +1,6 @@ -# SIM Management +# @ohos.telephony.sim (SIM Management) -The SIM management module provides basic SIM card management functions. You can obtain the name, number, ISO country code, home PLMN number, service provider name, SIM card status, type, installation status, activation status, and lock status of the SIM card in the specified slot. Besides, you can set the name, number, and lock status of the SIM card, activate or deactivate the SIM card, and change the PIN or unlock the PIN or PUK of the SIM card. +The **sim** module provides basic SIM card management functions. You can obtain the name, number, ISO country code, home PLMN number, service provider name, SIM card status, type, installation status, activation status, and lock status of the SIM card in the specified slot. Besides, you can set the name, number, and lock status of the SIM card, activate or deactivate the SIM card, and change the PIN or unlock the PIN or PUK of the SIM card. >**NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-sms.md b/en/application-dev/reference/apis/js-apis-sms.md index c26311312c..901e3b258b 100644 --- a/en/application-dev/reference/apis/js-apis-sms.md +++ b/en/application-dev/reference/apis/js-apis-sms.md @@ -1,6 +1,6 @@ -# SMS +# @ohos.telephony.sms (SMS) -The SMS module provides basic SMS management functions. You can create and send SMS messages, and obtain and set the default SIM card for sending and receiving SMS messages. Besides, you can obtain and set the SMSC address, and check whether the current device can send and receive SMS messages. +The **sms** module provides basic SMS management functions. You can create and send SMS messages, and obtain and set the default SIM card for sending and receiving SMS messages. Besides, you can obtain and set the SMSC address, and check whether the current device can send and receive SMS messages. >**NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-socket.md b/en/application-dev/reference/apis/js-apis-socket.md index 989cc99857..bd14137464 100644 --- a/en/application-dev/reference/apis/js-apis-socket.md +++ b/en/application-dev/reference/apis/js-apis-socket.md @@ -1,4 +1,4 @@ -# @ohos.net.socket +# @ohos.net.socket (Socket Connection) The **socket** module implements socket connection management and operation. diff --git a/en/application-dev/reference/apis/js-apis-storage-statistics.md b/en/application-dev/reference/apis/js-apis-storage-statistics.md index 86675315d6..c54d9d4b01 100644 --- a/en/application-dev/reference/apis/js-apis-storage-statistics.md +++ b/en/application-dev/reference/apis/js-apis-storage-statistics.md @@ -1,4 +1,4 @@ -# App Storage Statistics +# @ohos.storageStatistics (App Storage Statistics) The **storageStatistics** module provides APIs for obtaining storage space information, including the space of built-in and plug-in memory cards, space occupied by different types of data, and space of application data. diff --git a/en/application-dev/reference/apis/js-apis-system-battery.md b/en/application-dev/reference/apis/js-apis-system-battery.md index 31959da80f..d673a50002 100644 --- a/en/application-dev/reference/apis/js-apis-system-battery.md +++ b/en/application-dev/reference/apis/js-apis-system-battery.md @@ -1,6 +1,6 @@ -# Battery Info +# @system.battery (Battery Information) -This module allows you to query the charging status and remaining power of a device. +The **battery** module allows you to query the charging status and remaining power of a device. > **NOTE** > - The APIs of this module are no longer maintained since API version 6. It is recommended that you use [`@ohos.batteryInfo`](js-apis-battery-info.md) instead. diff --git a/en/application-dev/reference/apis/js-apis-system-brightness.md b/en/application-dev/reference/apis/js-apis-system-brightness.md index 2773c74397..939e7d7021 100644 --- a/en/application-dev/reference/apis/js-apis-system-brightness.md +++ b/en/application-dev/reference/apis/js-apis-system-brightness.md @@ -1,6 +1,6 @@ -# Screen Brightness +# @system.brightness (Screen Brightness) -This module provides APIs for querying and adjusting the screen brightness and mode. +The **brightness** module provides APIs for querying and adjusting the screen brightness and mode. > **NOTE** > - The APIs of this module are no longer maintained since API version 7. It is recommended that you use [`@ohos.brightness`](js-apis-brightness.md) instead. diff --git a/en/application-dev/reference/apis/js-apis-telephony-data.md b/en/application-dev/reference/apis/js-apis-telephony-data.md index e9b54c774d..f1c9ad3621 100644 --- a/en/application-dev/reference/apis/js-apis-telephony-data.md +++ b/en/application-dev/reference/apis/js-apis-telephony-data.md @@ -1,6 +1,6 @@ -# Cellular Data +# @ohos.telephony.data (Cellular Data) -The cellular data module provides basic mobile data management functions. You can obtain and set the default slot of the SIM card used for mobile data, and obtain the uplink and downlink connection status of cellular data services and connection status of the packet switched (PS) domain. Besides, you can check whether cellular data services and data roaming are enabled. +The **data** module provides basic mobile data management functions. You can obtain and set the default slot of the SIM card used for mobile data, and obtain the uplink and downlink connection status of cellular data services and connection status of the packet switched (PS) domain. Besides, you can check whether cellular data services and data roaming are enabled. >**NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-thermal.md b/en/application-dev/reference/apis/js-apis-thermal.md index a8e25a0149..514e7062cd 100644 --- a/en/application-dev/reference/apis/js-apis-thermal.md +++ b/en/application-dev/reference/apis/js-apis-thermal.md @@ -1,4 +1,4 @@ -# @ohos.thermal +# @ohos.thermal (Thermal Management) The **thermal** module provides thermal level-related callback and query APIs to obtain the information required for thermal control. diff --git a/en/application-dev/reference/apis/js-apis-touchevent.md b/en/application-dev/reference/apis/js-apis-touchevent.md index 54b4eb2aa3..ae49b428e0 100644 --- a/en/application-dev/reference/apis/js-apis-touchevent.md +++ b/en/application-dev/reference/apis/js-apis-touchevent.md @@ -1,4 +1,4 @@ -# @ohos.multimodalInput.touchEvent +# @ohos.multimodalInput.touchEvent (Touch Event) The **touchEvent** module provides touch events reported by an input device. diff --git a/en/application-dev/reference/apis/js-apis-update.md b/en/application-dev/reference/apis/js-apis-update.md index 412623cd7b..ffb07ba4f2 100644 --- a/en/application-dev/reference/apis/js-apis-update.md +++ b/en/application-dev/reference/apis/js-apis-update.md @@ -1,4 +1,4 @@ -# @ohos.update +# @ohos.update (Update) The **update** module applies to updates throughout the entire system, including built-in resources and preset applications, but not third-party applications. diff --git a/en/application-dev/reference/apis/js-apis-usb-deprecated.md b/en/application-dev/reference/apis/js-apis-usb-deprecated.md index b3be9875df..68a127a08b 100644 --- a/en/application-dev/reference/apis/js-apis-usb-deprecated.md +++ b/en/application-dev/reference/apis/js-apis-usb-deprecated.md @@ -1,8 +1,8 @@ -# USB +# @ohos.usb (USB Management) -The USB module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control. +The **usb** module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control. -> **NOTE** +> **NOTE** > > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. diff --git a/en/application-dev/reference/apis/js-apis-usb.md b/en/application-dev/reference/apis/js-apis-usb.md index db5f65e888..9035d2d040 100644 --- a/en/application-dev/reference/apis/js-apis-usb.md +++ b/en/application-dev/reference/apis/js-apis-usb.md @@ -1,4 +1,4 @@ -# @ohos.usbV9 +# @ohos.usbV9 (USB Management) The **usb** module provides USB device management functions, including USB device list query, bulk data transfer, control transfer, and permission control on the host side as well as port management, and function switch and query on the device side. diff --git a/en/application-dev/reference/apis/js-apis-util.md b/en/application-dev/reference/apis/js-apis-util.md index 8897b51f07..09e3c24532 100755 --- a/en/application-dev/reference/apis/js-apis-util.md +++ b/en/application-dev/reference/apis/js-apis-util.md @@ -1,6 +1,6 @@ -# @ohos.util +# @ohos.util (Utilities) -This module provides common utility functions, such as **TextEncoder** and **TextDecoder** for string encoding and decoding, **RationalNumber** for rational number operations, **LruBuffer** for buffer management, **Scope** for range determination, **Base64** for Base64 encoding and decoding, and **Types** for checks of built-in object types. +The **util** module provides common utility functions, such as **TextEncoder** and **TextDecoder** for string encoding and decoding, **RationalNumber** for rational number operations, **LruBuffer** for buffer management, **Scope** for range determination, **Base64** for Base64 encoding and decoding, and **Types** for checks of built-in object types. > **NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-webSocket.md b/en/application-dev/reference/apis/js-apis-webSocket.md index 660c42d8a3..2b2fa3af70 100644 --- a/en/application-dev/reference/apis/js-apis-webSocket.md +++ b/en/application-dev/reference/apis/js-apis-webSocket.md @@ -1,8 +1,8 @@ -# @ohos.net.webSocket +# @ohos.net.webSocket (WebSocket Connection) The **webSocket** module implements WebSocket connection management and operation. -> **NOTE:**
+> **NOTE**
> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. > -- GitLab From 0b3b670d5a40a41a9b962eed857d6c810c84f100 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Fri, 13 Jan 2023 08:11:22 +0000 Subject: [PATCH 235/383] modify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../application-dev/task-management/work-scheduler-dev-guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md b/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md index e7b758b696..a9edb91642 100644 --- a/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md +++ b/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md @@ -2,7 +2,7 @@ ## 场景介绍 -应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间,[WorkSchedulerExtensionAbility](./workscheduler-extensionability.md)提供了延迟任务回调拓展能力。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)。 +应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间,[WorkSchedulerExtensionAbility](./workscheduler-extensionability.md)提供了延迟任务回调拓展能力,注册延迟任务后需要实现延迟任务回调拓展能力。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)。应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间,[WorkSchedulerExtensionAbility](./workscheduler-extensionability.md)提供了延迟任务回调拓展能力。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)。 ## 接口说明 -- GitLab From af6e19fbd01e0ebd052f334cef85a9a812c04f3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=A4=A9=E6=80=A1?= Date: Fri, 13 Jan 2023 08:17:01 +0000 Subject: [PATCH 236/383] modify MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 朱天怡 --- .../task-management/work-scheduler-dev-guide.md | 3 ++- .../task-management/workscheduler-extensionability.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md b/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md index a9edb91642..615e256f96 100644 --- a/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md +++ b/zh-cn/application-dev/task-management/work-scheduler-dev-guide.md @@ -2,7 +2,8 @@ ## 场景介绍 -应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间,[WorkSchedulerExtensionAbility](./workscheduler-extensionability.md)提供了延迟任务回调拓展能力,注册延迟任务后需要实现延迟任务回调拓展能力。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)。应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间,[WorkSchedulerExtensionAbility](./workscheduler-extensionability.md)提供了延迟任务回调拓展能力。延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)。 +应用要执行对实时性要求不高的任务或持久性任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、温度等统一决策调度时间,[WorkSchedulerExtensionAbility](./workscheduler-extensionability.md)提供了延迟任务回调拓展能力,注册延迟任务后需要实现延迟任务回调拓展能力。 +延迟任务调度约束见[延迟任务调度约束](./background-task-overview.md#延迟任务调度约束)。 ## 接口说明 diff --git a/zh-cn/application-dev/task-management/workscheduler-extensionability.md b/zh-cn/application-dev/task-management/workscheduler-extensionability.md index 6f37265428..d10153b178 100644 --- a/zh-cn/application-dev/task-management/workscheduler-extensionability.md +++ b/zh-cn/application-dev/task-management/workscheduler-extensionability.md @@ -17,7 +17,7 @@ WorkSchedulerExtensionAbility提供了延迟任务回调能力,在延迟任务 ## 接口说明 -WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-WorkSchedulerExtensionAbility.md )。 +WorkSchedulerExtensionAbility类拥有如下API接口,具体的API介绍详见[接口文档](../reference/apis/js-apis-WorkSchedulerExtensionAbility.md)。 | 接口名 | 描述 | | -------- | -------- | -- GitLab From f09d640a0383a6f7e39f781b6b2d9135f128d497 Mon Sep 17 00:00:00 2001 From: gao-haiyuan Date: Fri, 13 Jan 2023 08:14:44 +0000 Subject: [PATCH 237/383] changelog for api9 resultcode enum rename Signed-off-by: gao-haiyuan Change-Id: I81a6bac6751d559aae29b77d2579dec59e561808 --- .../OpenHarmony_3.2.10.5/changelogs-useriam.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md new file mode 100644 index 0000000000..0444bab523 --- /dev/null +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-useriam.md @@ -0,0 +1,17 @@ +# 用户IAM子系统Changelog + +## cl.useriam.1 API9返回值命名变更 + +用户IAM API9的返回值枚举类类名发生变更,从 ResultCodeV9 更名为 UserAuthResultCode + +**变更影响** + +基于此版本以前开发的应用不受影响,以后的需适配错误码的类名,否则会影响业务逻辑。 + +**关键接口/组件变更** + +无接口/组件变更 + +**适配指导** + +需要修改返回值调用类名从 ResultCodeV9 改为 UserAuthResultCode \ No newline at end of file -- GitLab From 7c39b5e363b92ec71c7235b6a9927662594fd057 Mon Sep 17 00:00:00 2001 From: xuyong Date: Fri, 13 Jan 2023 17:04:07 +0800 Subject: [PATCH 238/383] =?UTF-8?q?hitracechain=E8=B5=84=E6=96=99=E6=95=B4?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xuyong --- .../dfx/hitracechain-guidelines.md | 137 +++++++++++++----- 1 file changed, 98 insertions(+), 39 deletions(-) diff --git a/zh-cn/application-dev/dfx/hitracechain-guidelines.md b/zh-cn/application-dev/dfx/hitracechain-guidelines.md index df49fe1b16..71c9862661 100644 --- a/zh-cn/application-dev/dfx/hitracechain-guidelines.md +++ b/zh-cn/application-dev/dfx/hitracechain-guidelines.md @@ -16,47 +16,106 @@ hiTraceChain是基于云计算分布式跟踪调用链思想,在端侧业务 **分布式跟踪接口功能介绍:** -| 接口名 | 返回值 | 描述 | -| ------------------------------------------------------------------------------------------------------------------- | -------------- | ------------ | -| hiTraceChain.begin(name: string, flags: number = HiTraceFlag.DEFAULT) | HiTraceId | 开始跟踪。 | -| hiTraceChain.tracepoint(mode: HiTraceCommunicationMode, type: HiTraceTracepointType, id: HiTraceId, msg?: string) | void | 信息埋点。 | -| hiTraceChain.end(id: HiTraceId) | void | 结束跟踪。 | +| 接口名 | 返回值 | 描述 | +| ------------------------------------------------------------------------------------------------------------------- | -------------- | ------------ | +| hiTraceChain.begin(name: string, flags: number = HiTraceFlag.DEFAULT) | HiTraceId | 开始跟踪。 | +| hiTraceChain.end(id: HiTraceId) | void | 结束跟踪。 | ## 开发步骤 -在应用启动执行页面加载后,开始分布式跟踪,完成业务之后,停止分布式跟踪。 - -1. 新建一个JS应用工程,在“Project”窗口点击“entry > src > main > js > default > pages > index”,打开工程中的“index.js”文件,在页面执行加载后,在实际业务逻辑中调用hiTraceChain的API,进行分布式跟踪,示例代码如下: - - ``` - import hiTraceChain from '@ohos.hiTraceChain' - - export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - - // 1、开启分布式跟踪 - let asyncTraceId = hiTraceChain.begin("business", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC | hiTraceChain.HiTraceFlag.DONOT_CREATE_SPAN); - - // 2、业务流程开始 - console.log(`business start`); - - // 3、埋点操作 - hiTraceChain.tracepoint(hiTraceChain.HiTraceCommunicationMode.THREAD, hiTraceChain.HiTraceTracepointType.SS, asyncTraceId, "Just a example"); - - // 4、业务流程执行中 - console.log(`business running`); - - // 5、业务流程结束 - console.log(`business end`); - - // 6、停止跟踪 - hiTraceChain.end(asyncTraceId); - } - } +以构造单次[系统事件打点](../reference/apis/js-apis-hisysevent.md)的业务说明在单hap业务跨线程中分布式调用链的使用方法。 + +1. 新建一个ets应用工程,编辑工程中的“entry > src > main > ets > pages > index.ets” 文件,添加一个按钮,完整示例代码如下: + + ```ts + import hiTraceChain from '@ohos.hiTraceChain'; + import hiSysEvent from '@ohos.hiSysEvent'; + + @Entry + @Component + struct Index { + @State message: string = 'Start writing system event'; + + build() { + Row() { + Column() { + Button(this.message) + .fontSize(20) + .margin(5) + .width(350) + .height(60) + .fontWeight(FontWeight.Bold) + .onClick(() => { + try { + // 业务开始前,开启分布式跟踪。 + let traceId = hiTraceChain.begin("Write a new system event", hiTraceChain.HiTraceFlag.INCLUDE_ASYNC); + // 业务开始:完成一次系统事件打点。 + hiSysEvent.write({ + domain: "RELIABILITY", + name: "STACK", + eventType: hiSysEvent.EventType.FAULT, + params: { + PID: 1, + UID: 1, + PACKAGE_NAME: "com.demo.hitracechain", + PROCESS_NAME: "hitracechaindemo", + MSG: "no msg." + } + }).then((val) => { + console.info(`write result is ${val}`); + // 业务结束,关闭分布式跟踪。 + hiTraceChain.end(traceId); + }).catch((err) => { + console.error(`error message is ${err.message}`); + }); + } catch (err) { + console.error(`error message is ${err.message}`); + } + }) + } + .width('100%') + } + .height('100%') + } + } + ``` + +2. 点击IDE界面中的运行按钮,运行应用工程,然后在应用界面中点击“Start writing system event”按钮,触发业务逻辑。 + +3. 在Log窗口查看分布式跟踪的相关信息,使用“.*: \[([0-9a-zA-Z]{15}),.*].*”过滤日志,查看该业务的分布式跟踪信息。hap进程号为“8801”,点击按钮触发的系统事件打点业务涉及到“8801”与“8819”两个线程,通过值为“edcfa53017a88e3”的chainId可以有效跟踪涉及该业务的所有线程的日志信息。 + ```text + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain I C02d03/HiTraceC: [edcfa53017a88e3, 0, 0] HiTraceBegin name:Write a new system event flags:0x01. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 0, 0] Native2Js: chainId is edcfa53017a88e3. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 0, 0] Native2Js: spanId is 0. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 0, 0] Native2Js: parentSpanId is 0. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 0, 0] Native2Js: flags is 1. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] domain is RELIABILITY. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] name is STACK. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] eventType is 1. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain E C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] napi value type not match: valueType=3, typeName=6. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain E C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] napi value type not match: valueType=3, typeName=6. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain E C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] napi value type not match: valueType=4, typeName=6. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain E C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] napi value type not match: valueType=4, typeName=6. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain E C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] napi value type not match: valueType=4, typeName=6. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] create napi value of string type, value is JSHiSysEventWrite. + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain I C03900/Ace: [edcfa53017a88e3, 0, 0] [flutter_ace_view.cpp(operator())-(0)] Mark 0 id Touch Event Processed + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02800/ClientMsgHandler: [edcfa53017a88e3, 0, 0] in OnDispatchEventProcessed, enter + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02800/ANRHandler: [edcfa53017a88e3, 0, 0] in SetLastProcessedEventId, enter + 07-05 19:50:47.690 8801-8819/com.demo.hitracechain D C02d08/HISYSEVENT: [edcfa53017a88e3, 0, 0] size=312, sysevent={"domain_":"RELIABILITY","name_":"STACK","type_":1,"time_":47591447690,"tz_":"+0000","pid_":8801,"tid_":8819,"uid_":20010045,"traceid_":"edcfa53017a88e3","spanid_":"0","pspanid_":"0","trace_flag_":1,"UID":1,"PID":1,"MSG":"no msg.","PROCESS_NAME":"hitracechaindemo","PACKAGE_NAME":"com.demo.hitracechain"} + 07-05 19:50:47.690 8801-8801/com.demo.hitracechain D C02800/ANRHandler: [edcfa53017a88e3, 0, 0] in SetLastProcessedEventId, Processed event type:0, id:831, actionTime:6694499314, currentTime:6694501330, timeoutTime:4997984 + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02800/ANRHandler: [edcfa53017a88e3, 0, 0] in SetLastProcessedEventId, leave + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02800/ClientMsgHandler: [edcfa53017a88e3, 0, 0] in OnDispatchEventProcessed, leave + 07-05 19:50:47.691 8801-8819/com.demo.hitracechain D C02d08/HISYSEVENT: [edcfa53017a88e3, 0, 0] reset send buffer size old=245760, new=524288 + 07-05 19:50:47.691 8801-8819/com.demo.hitracechain D C02d08/HISYSEVENT: [edcfa53017a88e3, 0, 0] HiSysEvent send data successful + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02d08/NAPI_HISYSEVENT_UTIL: [edcfa53017a88e3, 0, 0] create napi value of int32 type, value is 0. + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain E A0fefe/JsApp: [edcfa53017a88e3, 399db38, 0] write result is 0 + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 399db38, 0] Js2Native: chainId is edcfa53017a88e3. + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 399db38, 0] Js2Native: spanId is 0. + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 399db38, 0] Js2Native: parentSpanId is 0. + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain D C02d03/HITRACE_UTIL_NAPI: [edcfa53017a88e3, 399db38, 0] Js2Native: flags is 1. + 07-05 19:50:47.691 8801-8801/com.demo.hitracechain I C02d03/HiTraceC: [edcfa53017a88e3, 399db38, 0] HiTraceEnd. ``` -2. 运行项目,点击应用界面上的运行按钮,即可通过日志信息分析实际业务。 \ No newline at end of file +## 跨进程/跨设备分布式跟踪说明 + +跨进程/跨设备分布式跟踪依赖于OpenHarmony各模块相应业务接口的napi实现是否存在进程及设备之间的通信调用,具体请参考[HiTraceChain开发指导](../../device-dev/subsystems/subsys-dfx-hitracechain.md)。 \ No newline at end of file -- GitLab From 5fa7424711cb02adb6187261a0155a13834906a7 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Fri, 13 Jan 2023 17:04:12 +0800 Subject: [PATCH 239/383] update doc Signed-off-by: shawn_he --- en/application-dev/reference/apis/js-apis-intl.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-intl.md b/en/application-dev/reference/apis/js-apis-intl.md index 50b2674b13..2034cae2ba 100644 --- a/en/application-dev/reference/apis/js-apis-intl.md +++ b/en/application-dev/reference/apis/js-apis-intl.md @@ -265,7 +265,7 @@ Obtains the formatting options for **DateTimeFormat** object. | Type | Description | | ----------------------------------- | ----------------------------- | -| [DateTimeOptions](#datetimeoptions9) | Formatting options for **DateTimeFormat** objects.| +| [DateTimeOptions](#datetimeoptions6) | Formatting options for **DateTimeFormat** objects.| **Example** ``` @@ -497,7 +497,7 @@ Returns properties reflecting the locale and collation options of a **Collator** | Type | Description | | ----------------------------------- | ----------------- | -| [CollatorOptions](#collatoroptions9) | Properties of the **Collator** object.| +| [CollatorOptions](#collatoroptions8) | Properties of the **Collator** object.| **Example** -- GitLab From 927f33b3ba6cb6c2d1d46f9accc243f965dfd772 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Fri, 13 Jan 2023 17:08:00 +0800 Subject: [PATCH 240/383] update doc Signed-off-by: shawn_he --- .../reference/apis/js-apis-app-ability-appRecovery.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md b/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md index ac58b785df..6f512b4f9f 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.appRecovery (App Recovery) +# @ohos.app.ability.appRecovery (Application Recovery) -The **appRecovery** module provides APIs for recovering faulty applications. +The **appRecovery** module provides APIs for recovering failed applications. > **NOTE** > -- GitLab From 463893b1792e2fd86c5e3d4403bb20a294b4141b Mon Sep 17 00:00:00 2001 From: zhufenghao Date: Wed, 11 Jan 2023 10:47:19 +0800 Subject: [PATCH 241/383] =?UTF-8?q?=E3=80=90web=E3=80=91=E6=96=B0=E5=A2=9E?= =?UTF-8?q?allowWindowOpenMethod=E6=8E=A5=E5=8F=A3doc=E4=BB=93=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhufenghao --- .../arkui-ts/ts-basic-components-web.md | 212 +++++++++++------- 1 file changed, 130 insertions(+), 82 deletions(-) diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md index 34bc94a3a3..6babf0363c 100755 --- a/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-web.md @@ -2,7 +2,7 @@ 提供具有网页显示能力的Web组件。 -> **说明:** +> **说明:** > > - 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 > - 示例效果请以真机运行为准,当前IDE预览器不支持。 @@ -1211,6 +1211,54 @@ struct WebComponent { } ``` +### allowWindowOpenMethod9+ + +allowWindowOpenMethod(flag: boolean) + +设置网页是否可以通过JavaScript自动打开新窗口。 + +该属性为true时,可通过JavaScript自动打开新窗口。该属性为false时,用户行为仍可通过JavaScript自动打开新窗口,但非用户行为不能通过JavaScript自动打开新窗口。此处的用户行为是指用户在5秒内请求打开新窗口(window.open)。 + +该属性仅在[javaScriptAccess](#javascriptaccess)开启时生效。 + +该属性在[multiWindowAccess](#multiwindowaccess9)开启时打开新窗口,关闭时打开本地窗口。 + +该属性的默认值与系统属性persist.web.allowWindowOpenMethod.enabled 保持一致,如果未设置系统属性则默认值为false。 + +检查系统配置项persist.web.allowWindowOpenMethod.enabled 是否开启。 + +通过`hdc shell param get persist.web.allowWindowOpenMethod.enabled` 查看,若配置项为0或不存在, +可通过命令`hdc shell param set persist.web.allowWindowOpenMethod.enabled 1` 开启配置。 + +**参数:** + +| 参数名 | 参数类型 | 必填 | 默认值 | 参数描述 | +| ------ | ------- | ---- | ----- | ------------------ | +| flag | boolean | 是 | 默认值与系统参数关联,当系统参数persist.web.allowWindowOpenMethod.enabled为true时,默认值为true, 否则为false | 网页是否可以通过JavaScript自动打开窗口。 | + +**示例:** + + ```ts + // xxx.ets + import web_webview from '@ohos.web.webview' + @Entry + @Component + struct WebComponent { + controller: web_webview.WebviewController = new web_webview.WebviewController() + @State access: boolean = true + @State multiWindow: boolean = true + @State flag: boolean = true + build() { + Column() { + Web({ src: 'www.example.com', controller: this.controller }) + .javaScriptAccess(this.access) + .multiWindowAccess(this.multiWindow) + .allowWindowOpenMethod(this.flag) + } + } + } + ``` + ## 事件 不支持通用事件。 @@ -1301,7 +1349,7 @@ onBeforeUnload(callback: (event?: { url: string; message: string; result: JsResu @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1362,7 +1410,7 @@ onConfirm(callback: (event?: { url: string; message: string; result: JsResult }) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1422,7 +1470,7 @@ onPrompt(callback: (event?: { url: string; message: string; value: string; resul @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1482,7 +1530,7 @@ onConsole(callback: (event?: { message: ConsoleMessage }) => boolean) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1519,7 +1567,7 @@ onDownloadStart(callback: (event?: { url: string, userAgent: string, contentDisp @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1556,7 +1604,7 @@ onErrorReceive(callback: (event?: { request: WebResourceRequest, error: WebResou @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1600,7 +1648,7 @@ onHttpErrorReceive(callback: (event?: { request: WebResourceRequest, response: W @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1651,7 +1699,7 @@ onPageBegin(callback: (event?: { url: string }) => void) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1684,7 +1732,7 @@ onPageEnd(callback: (event?: { url: string }) => void) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1716,7 +1764,7 @@ onProgressChange(callback: (event?: { newProgress: number }) => void) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1748,7 +1796,7 @@ onTitleReceive(callback: (event?: { title: string }) => void) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1781,7 +1829,7 @@ onRefreshAccessedHistory(callback: (event?: { url: string, isRefreshed: boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1813,7 +1861,7 @@ onRenderExited(callback: (event?: { renderExitReason: RenderExitReason }) => voi @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'chrome://crash/', controller: this.controller }) @@ -1901,7 +1949,7 @@ onResourceLoad(callback: (event: {url: string}) => void) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1934,7 +1982,7 @@ onScaleChange(callback: (event: {oldScale: number, newScale: number}) => void) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -1972,7 +2020,7 @@ onUrlLoadIntercept(callback: (event?: { data:string | WebResourceRequest }) => b @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -2080,7 +2128,7 @@ onHttpAuthRequest(callback: (event?: { handler: HttpAuthHandler, host: string, r struct WebComponent { controller: WebController = new WebController() httpAuth: boolean = false - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -2141,7 +2189,7 @@ onSslErrorEventReceive(callback: (event: { handler: SslErrorHandler, error: SslE @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Web({ src: 'www.example.com', controller: this.controller }) @@ -2784,7 +2832,7 @@ getLineNumber(): number 获取ConsoleMessage的行数。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | -------------------- | @@ -2796,7 +2844,7 @@ getMessage(): string 获取ConsoleMessage的日志信息。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ---------------------- | @@ -2808,7 +2856,7 @@ getMessageLevel(): MessageLevel 获取ConsoleMessage的信息级别。 -**返回值:** +**返回值:** | 类型 | 说明 | | --------------------------------- | ---------------------- | @@ -2820,7 +2868,7 @@ getSourceId(): string 获取网页源文件路径和名字。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ------------- | @@ -2890,7 +2938,7 @@ getErrorCode(): number 获取加载资源的错误码。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ----------- | @@ -2902,7 +2950,7 @@ getErrorInfo(): string 获取加载资源的错误信息。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ------------ | @@ -2918,7 +2966,7 @@ getResponseHeader() : Array\ 获取资源请求头信息。 -**返回值:** +**返回值:** | 类型 | 说明 | | -------------------------- | ---------- | @@ -2930,7 +2978,7 @@ getRequestUrl(): string 获取资源请求的URL信息。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ------------- | @@ -2942,7 +2990,7 @@ isMainFrame(): boolean 判断资源请求是否为主frame。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | ---------------- | @@ -2954,7 +3002,7 @@ isRedirect(): boolean 判断资源请求是否被服务端重定向。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | ---------------- | @@ -2966,7 +3014,7 @@ isRequestGesture(): boolean 获取资源请求是否与手势(如点击)相关联。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | -------------------- | @@ -2992,7 +3040,7 @@ getReasonMessage(): string 获取资源响应的状态码描述。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ------------- | @@ -3004,7 +3052,7 @@ getResponseCode(): number 获取资源响应的状态码。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ----------- | @@ -3016,7 +3064,7 @@ getResponseData(): string 获取资源响应数据。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | --------- | @@ -3028,7 +3076,7 @@ getResponseEncoding(): string 获取资源响应的编码。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ---------- | @@ -3040,7 +3088,7 @@ getResponseHeader() : Array\ 获取资源响应头。 -**返回值:** +**返回值:** | 类型 | 说明 | | -------------------------- | -------- | @@ -3052,7 +3100,7 @@ getResponseMimeType(): string 获取资源响应的媒体(MIME)类型。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ------------------ | @@ -3168,7 +3216,7 @@ getTitle(): string 获取文件选择器标题。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------ | ---------- | @@ -3180,7 +3228,7 @@ getMode(): FileSelectorMode 获取文件选择器的模式。 -**返回值:** +**返回值:** | 类型 | 说明 | | ---------------------------------------- | ----------- | @@ -3192,7 +3240,7 @@ getAcceptType(): Array\ 获取文件过滤类型。 -**返回值:** +**返回值:** | 类型 | 说明 | | --------------- | --------- | @@ -3204,7 +3252,7 @@ isCapture(): boolean 获取是否调用多媒体能力。 -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | ------------ | @@ -3611,7 +3659,7 @@ requestFocus() @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('requestFocus') @@ -3646,7 +3694,7 @@ accessBackward(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('accessBackward') @@ -3682,7 +3730,7 @@ accessForward(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('accessForward') @@ -3725,7 +3773,7 @@ accessStep(step: number): boolean struct WebComponent { controller: WebController = new WebController() @State steps: number = 2 - + build() { Column() { Button('accessStep') @@ -3755,7 +3803,7 @@ backward(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('backward') @@ -3784,7 +3832,7 @@ forward(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('forward') @@ -3818,7 +3866,7 @@ backOrForward(step: number): void struct WebComponent { controller: WebController = new WebController() @State step: number = -2 - + build() { Column() { Button('backOrForward') @@ -3854,7 +3902,7 @@ deleteJavaScriptRegister(name: string) struct WebComponent { controller: WebController = new WebController() @State name: string = 'Object' - + build() { Column() { Button('deleteJavaScriptRegister') @@ -3871,7 +3919,7 @@ deleteJavaScriptRegister(name: string) getHitTest(): HitTestType -获取当前被点击区域的元素类型。 +获取当前被点击区域的元素类型。 从API version 9开始不再维护,建议使用[getHitTest9+](../apis/js-apis-webview.md#gethittest)代替。 @@ -3889,7 +3937,7 @@ getHitTest(): HitTestType @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getHitTest') @@ -3922,7 +3970,7 @@ getHitTestValue(): HitTestValue @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getHitTestValue') @@ -3956,7 +4004,7 @@ getWebId(): number @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getWebId') @@ -3989,7 +4037,7 @@ getTitle(): string @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getTitle') @@ -4022,7 +4070,7 @@ getPageHeight(): number @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getPageHeight') @@ -4055,7 +4103,7 @@ getDefaultUserAgent(): string @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getDefaultUserAgent') @@ -4099,7 +4147,7 @@ baseUrl为空时,通过”data“协议加载指定的一段字符串。 @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('loadData') @@ -4143,7 +4191,7 @@ loadUrl(options: { url: string | Resource, headers?: Array\ }) @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('loadUrl') @@ -4172,7 +4220,7 @@ onActive(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('onActive') @@ -4201,7 +4249,7 @@ onInactive(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('onInactive') @@ -4236,7 +4284,7 @@ zoom(factor: number): void struct WebComponent { controller: WebController = new WebController() @State factor: number = 1 - + build() { Column() { Button('zoom') @@ -4268,7 +4316,7 @@ zoomIn(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('zoomIn') @@ -4301,7 +4349,7 @@ zoomOut(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('zoomOut') @@ -4331,7 +4379,7 @@ refresh() @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('refresh') @@ -4409,7 +4457,7 @@ registerJavaScriptProxy(options: { object: object, name: string, methodList: Arr } - + ``` ### runJavaScript(deprecated) @@ -4489,7 +4537,7 @@ stop() @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('stop') @@ -4518,7 +4566,7 @@ clearHistory(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('clearHistory') @@ -4605,7 +4653,7 @@ getCookieManager(): WebCookie @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getCookieManager') @@ -4945,7 +4993,7 @@ setCookie(url: string, value: string): boolean | url | string | 是 | - | 要设置的cookie所属的url。 | | value | string | 是 | - | cookie的值。 | -**返回值:** +**返回值:** | 类型 | 说明 | | ------- | ------------- | @@ -4959,7 +5007,7 @@ setCookie(url: string, value: string): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('setCookie') @@ -4992,7 +5040,7 @@ saveCookieSync(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('saveCookieSync') @@ -5032,7 +5080,7 @@ getCookie(url: string): string @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('getCookie') @@ -5073,7 +5121,7 @@ setCookie(url: string, value: string): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('setCookie') @@ -5107,7 +5155,7 @@ saveCookieAsync(): Promise\ @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('saveCookieAsync') @@ -5146,7 +5194,7 @@ saveCookieAsync(callback: AsyncCallback\): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('saveCookieAsync') @@ -5181,7 +5229,7 @@ isCookieAllowed(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('isCookieAllowed') @@ -5215,7 +5263,7 @@ putAcceptCookieEnabled(accept: boolean): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('putAcceptCookieEnabled') @@ -5248,7 +5296,7 @@ isThirdCookieAllowed(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('isThirdPartyCookieAllowed') @@ -5282,7 +5330,7 @@ putAcceptThirdPartyCookieEnabled(accept: boolean): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('putAcceptThirdPartyCookieEnabled') @@ -5315,7 +5363,7 @@ existCookie(): boolean @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('existCookie') @@ -5343,7 +5391,7 @@ deleteEntireCookie(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('deleteEntireCookie') @@ -5370,7 +5418,7 @@ deleteSessionCookie(): void @Component struct WebComponent { controller: WebController = new WebController() - + build() { Column() { Button('deleteSessionCookie') @@ -5670,7 +5718,7 @@ setPorts(ports: Array\): void struct WebComponent { controller: WebController = new WebController() ports: WebMessagePort[] = null - + build() { Column() { Button('setPorts') -- GitLab From 3c4d1aeba929f5a0c575feba1c6bf7482b543096 Mon Sep 17 00:00:00 2001 From: lichenchen Date: Fri, 6 Jan 2023 15:35:49 +0800 Subject: [PATCH 242/383] add account changelogs Signed-off-by: lichenchen --- .../changelogs-account_os_account.md | 36 ++++++++++++ .../changelogs-account_os_account.md | 57 +++++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md create mode 100644 zh-cn/release-notes/changelogs/v3.1-Release/changelogs-account_os_account.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md new file mode 100644 index 0000000000..4ef6169a1e --- /dev/null +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.3/changelogs-account_os_account.md @@ -0,0 +1,36 @@ +# 帐号子系统changeLog + +## cl.account_os_account.1 createOsAccountForDomain错误码变更 + +使用createOsAccountForDomain重复创建域帐号时,变更前返回的错误码为12300001,变更后返回的错误码为12300004。 +错误信息由通用系统报错细化为帐号已存在报错。 + +**变更影响** + +基于此前版本开发的应用,需适配变更后的错误码,否则会影响原有业务逻辑。 + +**关键接口/组件变更** +- AccountManager + - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>); + - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo>; + +**适配指导** + +重复创建域帐号的示例代码如下: + +```ts +import account_osAccount from "@ohos.account.osAccount" +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' + +let accountMgr = account_osAccount.getAccountManager(); +let domainInfo = { + accountName: "zhangsan", + domain: "china.example.com" +}; +try { + await accountMgr.createOsAccountForDomain(account_osAccount.OsAccountType.NORMAL, domainInfo); + await accountMgr.createOsAccountForDomain(account_osAccount.OsAccountType.NORMAL, domainInfo); +} catch (err) { + expect(err.code).assertEqual(12300004); +} +``` diff --git a/zh-cn/release-notes/changelogs/v3.1-Release/changelogs-account_os_account.md b/zh-cn/release-notes/changelogs/v3.1-Release/changelogs-account_os_account.md new file mode 100644 index 0000000000..b8baef9aa8 --- /dev/null +++ b/zh-cn/release-notes/changelogs/v3.1-Release/changelogs-account_os_account.md @@ -0,0 +1,57 @@ +# 帐号子系统changeLog + +## cl.account_os_account.1 系统帐号OsAccountInfo.type取值类型变更 + +变更前,OsAccountInfo.type取值的实际类型为Object,与d.ts中声明的OsAccountType枚举类型不一致;变更后,OsAccountInfo.type取值的实际类型为OsAccountType枚举。 + +**变更影响** + +基于此前版本开发的应用,需变更OsAccountInfo.type值的读取方式,否则影响原因业务逻辑。 + +**关键接口/组件变更** + +涉及的接口: +- AccountManager + - queryAllCreatedOsAccounts(callback: AsyncCallback<Array<OsAccountInfo>>): void; + - queryAllCreatedOsAccounts(): Promise<Array<OsAccountInfo>>; + - createOsAccount(localName: string, type: OsAccountType, callback: AsyncCallback<OsAccountInfo>): void; + - createOsAccount(localName: string, type: OsAccountType): Promise<OsAccountInfo>; + - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo, callback: AsyncCallback<OsAccountInfo>): void; + - createOsAccountForDomain(type: OsAccountType, domainInfo: DomainAccountInfo): Promise<OsAccountInfo>; + - queryCurrentOsAccount(callback: AsyncCallback<OsAccountInfo>): void; + - queryCurrentOsAccount(): Promise<OsAccountInfo>; + - getCurrentOsAccount(callback: AsyncCallback<OsAccountInfo>): void; + - getCurrentOsAccount(): Promise<OsAccountInfo>; + - queryOsAccountById(localId: number, callback: AsyncCallback<OsAccountInfo>): void; + - queryOsAccountById(localId: number): Promise<OsAccountInfo>; + + - getOsAccountTypeFromProcess(callback: AsyncCallback<OsAccountType>): void; + - getOsAccountTypeFromProcess(): Promise<OsAccountType>; + - getOsAccountType(callback: AsyncCallback<OsAccountType>): void; + - getOsAccountType(): Promise<OsAccountType>; + +**适配指导** +```ts +import account_osAccount from "@ohos.account.osAccount" +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' + +let accountMgr = account_osAccount.getAccountManager(); +accountMgr.createOsAccount('account_test', account_osAccount.OsAccountType.GUEST).then((accountInfo) => { + expect(accountInfo.type).assertEqual(account_osAccount.OsAccountType.GUEST); + accountMgr.activateOsAccount(accountInfo.localId).then(() => { + console.log('activateOsAccount successfully'); + accountMgr.getOsAccountTypeFromProcess().then((accountType) => { + expect(accountType).assertEqual(account_osAccount.OsAccountType.GUEST); + }).catch((err) => { + console.log('activateOsAccount err: ' + JSON.stringify(err)); + expect().assertFail(); + }); + }).catch((err) => { + console.log('activateOsAccount err: ' + JSON.stringify(err)); + expect().assertFail(); + }); +}).catch((err) => { + console.log('createOsAccount err: ' + JSON.stringify(err)); + expect().assertFail(); +}); +``` -- GitLab From 8ae909334e25aad8581235e91455cc63e2b3f74e Mon Sep 17 00:00:00 2001 From: ningning <3248127340@qq.com> Date: Fri, 13 Jan 2023 09:26:15 +0000 Subject: [PATCH 243/383] update zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md. Signed-off-by: ningning <3248127340@qq.com> --- .../apis/js-apis-deviceUsageStatistics.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md b/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md index ee7e3e072b..dfe87bb5e4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md +++ b/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md @@ -454,6 +454,20 @@ queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array< | infosBeginTime | number | 否 | BundleActiveInfo对象中第一条应用使用统计的记录时间。| | infosEndTime | number | 否 | BundleActiveInfo对象中最后一条应用使用统计的记录时间。| +### merge(deprecated) + +merge(toMerge: BundleStateInfo): void + +Merges the application usage information that has the same bundle name. + +**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App + +**Parameters** + +| Name | Type | Mandatory | Description | +| ------- | ----------------------------------- | ---- | -------------- | +| toMerge | [BundleStateInfo](#bundlestateinfo) | Yes | Application usage information to merge.| + ## BundleActiveState 提供应用事件的具体信息。 -- GitLab From 0c05b72a1a8bd0f56309491005504a61793e03c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Fri, 13 Jan 2023 10:29:52 +0000 Subject: [PATCH 244/383] update zh-cn/application-dev/database/database-mdds-guidelines.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 葛亚芳 --- zh-cn/application-dev/database/database-mdds-guidelines.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/database/database-mdds-guidelines.md b/zh-cn/application-dev/database/database-mdds-guidelines.md index fd675ecb11..3398928528 100644 --- a/zh-cn/application-dev/database/database-mdds-guidelines.md +++ b/zh-cn/application-dev/database/database-mdds-guidelines.md @@ -14,7 +14,7 @@ | 接口名称 | 描述 | | ------------------------------------------------------------ | ------------------------------------------------------------ | | createKVManager(config: KVManagerConfig, callback: AsyncCallback<KVManager>): void
createKVManager(config: KVManagerConfig): Promise<KVManager> | 创建一个`KVManager`对象实例,用于管理数据库对象。 | -| getKVStore<TextendsKVStore>(storeId: string, options: Options, callback: AsyncCallback<T>): void
getKVStore<TextendsKVStore>(storeId: string, options: Options): Promise<T> | 指定`Options`和`storeId`,创建并获取指定类型`KVStore`数据库。 | +| getKVStore<T extends KVStore>(storeId: string, options: Options, callback: AsyncCallback<T>): void
getKVStore<T extends KVStore>(storeId: string, options: Options): Promise<T> | 指定`Options`和`storeId`,创建并获取指定类型`KVStore`数据库。 | | put(key: string, value: Uint8Array\|string\|number\|boolean, callback: AsyncCallback<void>): void
put(key: string, value: Uint8Array\|string\|number\|boolean): Promise<void> | 插入和更新数据。 | | delete(key: string, callback: AsyncCallback<void>): void
delete(key: string): Promise<void> | 删除数据。 | | get(key: string, callback: AsyncCallback<Uint8Array\|string\|boolean\|number>): void
get(key: string): Promise<Uint8Array\|string\|boolean\|number> | 查询数据。 | -- GitLab From 71dd4aaff883e4b22d4b69f85279270715c4bbc2 Mon Sep 17 00:00:00 2001 From: zyjhandsome Date: Sat, 14 Jan 2023 09:42:02 +0800 Subject: [PATCH 245/383] =?UTF-8?q?@ohos.application.Ability=20(Ability)?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=8F=8F=E8=BF=B0=E4=B8=AD=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=A0=87=E5=BA=9F=E5=BC=83=E8=AF=B4=E6=98=8E=E3=80=82=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E4=BD=BF=E7=94=A8=E4=BD=8D=E7=BD=AE=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E4=B8=BA=E6=96=B0=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zyjhandsome --- .../apis/js-apis-application-ability.md | 35 ++++++++++--------- .../apis/js-apis-distributedKVStore.md | 7 ++-- 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md index 7da6408723..b5b953940a 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md @@ -8,14 +8,17 @@ Ability模块提供对Ability生命周期、上下文环境等调用管理的能 - [Callee](#callee):通用组件服务端注册和解除客户端caller通知送信的callback接口。 > **说明:** -> -> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> +> 从API Version 9开始,该接口不再维护,推荐使用新接口[`@ohos.app.ability.UIAbility (UIAbility)`](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md)。 +> +> 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> > 本模块接口仅可在Stage模型下使用。 ## 导入模块 ```ts -import UIAbility from '@ohos.app.ability.UIAbility'; +import UIAbility from '@ohos.application.Ability'; ``` ## 属性 @@ -72,7 +75,7 @@ onWindowStageCreate(windowStage: window.WindowStage): void **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { console.log('onWindowStageCreate'); } @@ -91,7 +94,7 @@ onWindowStageDestroy(): void **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onWindowStageDestroy() { console.log('onWindowStageDestroy'); } @@ -116,7 +119,7 @@ onWindowStageRestore(windowStage: window.WindowStage): void **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onWindowStageRestore(windowStage) { console.log('onWindowStageRestore'); } @@ -135,7 +138,7 @@ Ability生命周期回调,在销毁时回调,执行资源清理等操作。 **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onDestroy() { console.log('onDestroy'); } @@ -154,7 +157,7 @@ Ability生命周期回调,当应用从后台转到前台时触发。 **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onForeground() { console.log('onForeground'); } @@ -173,7 +176,7 @@ Ability生命周期回调,当应用从前台转到后台时触发。 **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onBackground() { console.log('onBackground'); } @@ -205,7 +208,7 @@ onContinue(wantParam : {[key: string]: any}): AbilityConstant.OnContinueResult; ```ts import AbilityConstant from "@ohos.application.AbilityConstant" - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onContinue(wantParams) { console.log('onContinue'); wantParams["myData"] = "my1234567"; @@ -233,7 +236,7 @@ onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void; **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onNewWant(want, launchParams) { console.log('onNewWant, want:' + want.abilityName); console.log('onNewWant, launchParams:' + JSON.stringify(launchParams)); @@ -258,7 +261,7 @@ onConfigurationUpdated(config: Configuration): void; **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onConfigurationUpdated(config) { console.log('onConfigurationUpdated, language:' + config.language); } @@ -282,7 +285,7 @@ dump(params: Array\): Array\; **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { dump(params) { console.log('dump, params:' + JSON.stringify(params)); return ["params"] @@ -307,7 +310,7 @@ onMemoryLevel(level: AbilityConstant.MemoryLevel): void; **示例:** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onMemoryLevel(level) { console.log('onMemoryLevel, level:' + JSON.stringify(level)); } @@ -338,9 +341,9 @@ onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any}) **示例:** ```ts -import AbilityConstant from '@ohos.application.AbilityConstant' +import AbilityConstant from '@ohos.application.AbilityConstant'; -class myAbility extends Ability { +export default class EntryAbility extends UIAbility { onSaveState(reason, wantParam) { console.log('onSaveState'); wantParam["myData"] = "my1234567"; diff --git a/zh-cn/application-dev/reference/apis/js-apis-distributedKVStore.md b/zh-cn/application-dev/reference/apis/js-apis-distributedKVStore.md index 1c74807e53..9290088c53 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-distributedKVStore.md +++ b/zh-cn/application-dev/reference/apis/js-apis-distributedKVStore.md @@ -271,9 +271,10 @@ createKVManager(config: KVManagerConfig): KVManager Stage模型下的示例: ```js -import AbilityStage from '@ohos.application.Ability' +import UIAbility from '@ohos.app.ability.UIAbility'; + let kvManager; -export default class MyAbilityStage extends AbilityStage { +export default class EntryAbility extends UIAbility { onCreate() { console.log("MyAbilityStage onCreate") let context = this.context @@ -294,7 +295,7 @@ export default class MyAbilityStage extends AbilityStage { FA模型下的示例: ```js -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; let kvManager; let context = featureAbility.getContext() const kvManagerConfig = { -- GitLab From cd76e0c10b8ed6fd1f28b6a54bba338d0cdf1cf0 Mon Sep 17 00:00:00 2001 From: zyjhandsome Date: Sat, 14 Jan 2023 09:43:57 +0800 Subject: [PATCH 246/383] =?UTF-8?q?=E6=96=B0=E6=8E=A5=E5=8F=A3@ohos.app.ab?= =?UTF-8?q?ility.UIAbility=20(UIAbility)=E9=93=BE=E6=8E=A5=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zyjhandsome --- .../reference/apis/js-apis-application-ability.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md index b5b953940a..7f84afda2b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-application-ability.md +++ b/zh-cn/application-dev/reference/apis/js-apis-application-ability.md @@ -9,7 +9,7 @@ Ability模块提供对Ability生命周期、上下文环境等调用管理的能 > **说明:** > -> 从API Version 9开始,该接口不再维护,推荐使用新接口[`@ohos.app.ability.UIAbility (UIAbility)`](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-app-ability-uiAbility.md)。 +> 从API Version 9开始,该接口不再维护,推荐使用新接口[`@ohos.app.ability.UIAbility (UIAbility)`](js-apis-app-ability-uiAbility.md)。 > > 本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > -- GitLab From 36512cf81162bd0e87ec485357e8c84918af6a3a Mon Sep 17 00:00:00 2001 From: wangtiantian Date: Sat, 14 Jan 2023 09:34:52 +0800 Subject: [PATCH 247/383] IssueNo:#I6AI7P Description:add bms changelog Sig:SIG_ApplicaitonFramework Feature or Bugfix:Bugfix Binary Source:No Signed-off-by: wangtiantian --- .../changelogs-bundlemanager.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md new file mode 100644 index 0000000000..a1521cfc0f --- /dev/null +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md @@ -0,0 +1,81 @@ +# 包管理子系统ChangeLog + +## cl.bundlemanager.1 底层能力变更,安装应用时增加签名证书中bundle-name的校验,需要与应用的bundleName相同,否则会安装失败。 + +安装应用时增加了对[签名证书profile文件](../../../application-dev/security/app-provision-structure.md)中bundle-name字段的校验,该字段内容需要配置为对应应用的bundleName。 + +如果bundle-name的内容与应用配置文件中的bundleName不一致,会出现安装失败。具体报错为: +``` +error: verify signature failed. +``` + +**变更影响**
+对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果未修改签名证书中的bundle-name字段,会出现应用安装失败问题。 + +**关键的接口/组件变更**
+不涉及接口及组件变更 + +**适配指导**
+原有应用在新的系统镜像上出现'error: verify signature failed',可以修改签名证书profile文件中的bundle-name为对应应用的bundleName,生成新的签名证书(后缀为.p7b),重新给应用签名即可。 +签名工具及签名证书的生成方式可以参考:[签名工具指导](../../../application-dev/security/hapsigntool-guidelines.md) + +## cl.bundlemanager.2 底层能力变更,增加对无图标应用的管控,如果应用未配置入口图标,则会在桌面上显示一个默认图标,点击后跳转至应用详情页。 + +增加对无图标应用的管控,如果应用未配置入口图标且未申请隐藏图标特权(AllowHideDesktopIcon),则会在桌面上显示一个默认图标,点击后跳转至应用详情页。此处的未配置入口图标规则如下: +1. 应用中未配置abilities字段 +2. 应用中配置了abilities字段,但是没有任何一个page类型的ability中skills如下,即同时包含"action.system.home"和"entity.system.home": + ```json + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + ``` +对于符合上面规则的应用,均属于无图标应用,通过hdc_std install 或者 bm install的方式安装,均会在桌面上显示一个默认图标。 + +如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 + +如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"action.system.home"和"entity.system.home"。 + +**变更影响**
+对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果应用未配置图标,通过命令行的安装方式会在桌面显示默认图标。 + +**关键的接口/组件变更**
+不涉及接口及组件变更 + +**适配指导**
+如果应用不需要再桌面显示图标,需要申请相应的隐藏图标特权AllowHideDesktopIcon,并在签名证书文件中或者白名单(install_list_capability.json)配置,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 + +如果应该需要在桌面显示图标,则需要在abilities中选择一个ability配置skills,同时包含"action.system.home"和"entity.system.home"。 + +## cl.bundlemanager.3 底层能力变更,特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。 + +特权AllowAppUsePrivilegeExtension、AllowAppMultiProcess和AllowFormVisibleNotify不支持通过签名证书配置,仅支持通过白名单install_list_capability.json申请这三个特权。对于在签名证书中申请使用上面三个特权的应用,在新版本上可能出现安装失败或者配置特权无效的问题。 + +如果出现了下面的报错,可能是因为特权整改导致的,应用需要适配新的规则,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 +``` +error: install parse profile prop check error. +``` + +对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 + +申请特权AllowAppUsePrivilegeExtension,通常是在应用的配置文件中使用了extensionAbilities字段,且其中的type属性为dataShare或者service。如果未配置特权,就会出现安装失败问题。 + +**变更影响**
+对之前的版本镜像无影响,对使用3.2.10.5版本及之后的系统镜像,如果未在白名单install_list_capability.json中申请所需的特权,可能会出现应用安装失败问题。 + +**关键的接口/组件变更**
+不涉及接口及组件变更 + +**适配指导**
+如果出现了下面的报错,可能是因为特权整改导致的,应用需要适配新的规则,可以参考:[应用特权配置指南](../../../device-dev/subsystems/subsys-app-privilege-config-guide.md)。 +``` +error: install parse profile prop check error. +``` + +对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 \ No newline at end of file -- GitLab From e8e8e7e115a6ba957e867f60a7aaa40d66e46633 Mon Sep 17 00:00:00 2001 From: x30034819 Date: Sat, 14 Jan 2023 15:51:54 +0800 Subject: [PATCH 248/383] avplayer avrecorder Signed-off-by: x30034819 Signed-off-by: x30034819 Change-Id: I78b944e2f8dee68e4d7a3f41dbea0440bdd17510 --- zh-cn/application-dev/reference/apis/js-apis-media.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index d35a9dd3f9..e149f9c8c5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -2478,7 +2478,7 @@ AVRecorder.off('error'); | audioSourceType | [AudioSourceType](#audiosourcetype9) | 否 | 选择录制的音频源类型。选择音频录制时必填。 | | videoSourceType | [VideoSourceType](#videosourcetype9) | 否 | 选择录制的视频源类型。选择视频录制时必填。 | | profile | [AVRecorderProfile](#avrecorderprofile9) | 是 | 录制的profile,必要参数。 | -| url | string | 是 | 录制输出URL:fd://xx (fd number) ![img](https://gitee.com/huang-xl/docs/raw/20221216_avplayer_doc/zh-cn/application-dev/reference/apis/figures/zh-cn_image_url.png),必要参数。 | +| url | string | 是 | 录制输出URL:fd://xx (fd number) ![img](figures/zh-cn_image_url.png),必要参数。 | | rotation | number | 否 | 录制的视频旋转角度,仅支持0,90,180,270。 | | location | [Location](#location) | 否 | 录制的地理位置。 | -- GitLab From 395efe1a798c6ac56d9dd59a23afad847055724e Mon Sep 17 00:00:00 2001 From: x30034819 Date: Sat, 14 Jan 2023 15:57:19 +0800 Subject: [PATCH 249/383] avplayer avrecorder Signed-off-by: x30034819 Signed-off-by: x30034819 Change-Id: Iab6f76e7f554c72b48f65a38f9f6fba1f3eaf61c --- zh-cn/application-dev/reference/apis/js-apis-media.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index e149f9c8c5..76c60fb79b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -363,7 +363,7 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla | surfaceId9+ | string | 是 | 是 | 视频窗口ID,默认无窗口,只允许在**initialized**状态下设置,静态属性。
使用场景:视频播放的窗口渲染,纯音频播放不用设置。
**使用示例**:
[通过Xcomponent创建surfaceId](../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid)。 | | loop9+ | boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | -| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认INDEPENDENT_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | +| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认SHARE_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | state9+ | [AVPlayerState](#avplayerstate9) | 是 | 否 | 音视频播放的状态,全状态有效,可查询参数。 | | currentTime9+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | | duration9+
| number | 是 | 否 | 视频时长,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。
直播场景默认返回(-1)。 | -- GitLab From 218d65ef189b2208480cf822de5cdd87628b5dd0 Mon Sep 17 00:00:00 2001 From: x30034819 Date: Sat, 14 Jan 2023 17:16:34 +0800 Subject: [PATCH 250/383] avplayer avrecorder Signed-off-by: x30034819 Signed-off-by: x30034819 Change-Id: I5f597205ab142aeb4cfbaad0227b4c42365fd5c2 --- .../reference/apis/js-apis-media.md | 3111 +++++++++-------- 1 file changed, 1563 insertions(+), 1548 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 76c60fb79b..9969373240 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -174,88 +174,6 @@ media.createAVRecorder().then((recorder) => { }); ``` -## media.createVideoRecorder9+ - -createVideoRecorder(callback: AsyncCallback\): void - -异步方式创建视频录制实例。通过注册回调函数获取返回值。 -一台设备只允许创建一个录制实例。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder - -**系统接口:** 该接口为系统接口 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | -| callback | AsyncCallback<[VideoRecorder](#videorecorder9)> | 是 | 回调函数。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------ | -| 5400101 | No memory. Return by callback. | - -**示例:** - -```js -let videoRecorder - -media.createVideoRecorder((error, video) => { - if (video != null) { - videoRecorder = video; - console.info('video createVideoRecorder success'); - } else { - console.info(`video createVideoRecorder fail, error:${error}`); - } -}); -``` - -## media.createVideoRecorder9+ - -createVideoRecorder(): Promise\ - -异步方式创建视频录制实例。通过Promise获取返回值。 -一台设备只允许创建一个录制实例。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder - -**系统接口:** 该接口为系统接口 - -**返回值:** - -| 类型 | 说明 | -| ----------------------------------------- | ------------------------------------------------------------ | -| Promise<[VideoRecorder](#videorecorder9)> | Promise对象。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ----------------------------- | -| 5400101 | No memory. Return by promise. | - -**示例:** - -```js -let videoRecorder - -media.createVideoRecorder().then((video) => { - if (video != null) { - videoRecorder = video; - console.info('video createVideoRecorder success'); - } else { - console.info('video createVideoRecorder fail'); - } -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` - ## AVErrorCode9+ [媒体错误码](../errorcodes/errorcode-media.md)类型枚举 @@ -2547,97 +2465,128 @@ AVRecorder.off('error'); | latitude | number | 是 | 地理位置的纬度。 | | longitude | number | 是 | 地理位置的经度。 | -## VideoRecorder9+ +## media.createAudioPlayer(deprecated) -> **说明:** -> AVRecorder9+发布后停止维护,建议使用[AVRecorder](#avrecorder9)替代。 +createAudioPlayer(): AudioPlayer -视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorder()](#mediacreatevideorecorder9)构建一个[VideoRecorder](#videorecorder9)实例。 +同步方式创建音频播放实例。 -视频录制demo可参考:[视频录制开发指导](../../media/video-recorder.md) +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 -### 属性 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**返回值:** -**系统接口:** 该接口为系统接口 +| 类型 | 说明 | +| --------------------------- | ------------------------------------------------------------ | +| [AudioPlayer](#audioplayerdeprecated) | 返回AudioPlayer类实例,失败时返回null。可用于音频播放、暂停、停止等操作。 | -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------ | -------------------------------------- | ---- | ---- | ---------------- | -| state9+ | [VideoRecordState](#videorecordstate9) | 是 | 否 | 视频录制的状态。 | +**示例:** -### prepare9+ +```js +let audioPlayer = media.createAudioPlayer(); +``` -prepare(config: VideoRecorderConfig, callback: AsyncCallback\): void; +## media.createVideoPlayer(deprecated) -异步方式进行视频录制的参数设置。通过注册回调函数获取返回值。 +createVideoPlayer(callback: AsyncCallback\): void -**需要权限:** ohos.permission.MICROPHONE +异步方式创建视频播放实例,通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------------------- | ---- | ----------------------------------- | -| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | -| callback | AsyncCallback\ | 是 | 异步视频录制prepare方法的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback<[VideoPlayer](#videoplayerdeprecated)> | 是 | 回调函数。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | -**错误码:** +**示例:** -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +```js +let videoPlayer -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 201 | Permission denied. Return by callback. | -| 401 | Parameter error. Return by callback. | -| 5400102 | Operation not allowed. Return by callback. | -| 5400105 | Service died. Return by callback. | +media.createVideoPlayer((error, video) => { + if (video != null) { + videoPlayer = video; + console.info('video createVideoPlayer success'); + } else { + console.info(`video createVideoPlayer fail, error:${error}`); + } +}); +``` + +## media.createVideoPlayer(deprecated) + +createVideoPlayer(): Promise\ + +异步方式创建视频播放实例,通过Promise获取返回值。 + +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9-1)替代。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**返回值:** + +| 类型 | 说明 | +| ------------------------------------ | ------------------------------------------------------------ | +| Promise<[VideoPlayer](#videoplayerdeprecated)> | Promise对象。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | **示例:** ```js -let videoProfile = { - audioBitrate : 48000, - audioChannels : 2, - audioCodec : 'audio/mp4a-latm', - audioSampleRate : 48000, - fileFormat : 'mp4', - videoBitrate : 48000, - videoCodec : 'video/mp4v-es', - videoFrameWidth : 640, - videoFrameHeight : 480, - videoFrameRate : 30 -} +let videoPlayer -let videoConfig = { - audioSourceType : 1, - videoSourceType : 0, - profile : videoProfile, - url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - orientationHint : 0, - location : { latitude : 30, longitude : 130 }, -} +media.createVideoPlayer().then((video) => { + if (video != null) { + videoPlayer = video; + console.info('video createVideoPlayer success'); + } else { + console.info('video createVideoPlayer fail'); + } +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` -// asyncallback -videoRecorder.prepare(videoConfig, (err) => { - if (err == null) { - console.info('prepare success'); - } else { - console.info('prepare failed and error is ' + err.message); - } -}) +## media.createAudioRecorder(deprecated) + +createAudioRecorder(): AudioRecorder + +创建音频录制的实例来控制音频的录制。 +一台设备只允许创建一个录制实例。 + +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 + +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder + +**返回值:** + +| 类型 | 说明 | +| ------------------------------- | ------------------------------------------------------------ | +| [AudioRecorder](#audiorecorderdeprecated) | 返回AudioRecorder类实例,失败时返回null。可用于录制音频媒体。 | + +**示例:** + +```js +let audioRecorder = media.createAudioRecorder(); ``` -### prepare9+ +## media.createVideoRecorder(deprecated) -prepare(config: VideoRecorderConfig): Promise\; +createVideoRecorder(callback: AsyncCallback\): void -异步方式进行视频录制的参数设置。通过Promise获取返回值。 +> **说明:** +> 从API version 9开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 -**需要权限:** ohos.permission.MICROPHONE +异步方式创建视频录制实例。通过注册回调函数获取返回值。 +一台设备只允许创建一个录制实例。 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder @@ -2645,960 +2594,967 @@ prepare(config: VideoRecorderConfig): Promise\; **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | -------------------------------------------- | ---- | ------------------------ | -| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | - -**返回值:** - -| 类型 | 说明 | -| -------------- | ---------------------------------------- | -| Promise\ | 异步视频录制prepare方法的Promise返回值。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback<[VideoRecorder](#videorecorder9)> | 是 | 回调函数。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | **错误码:** 以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 201 | Permission denied. Return by promise. | -| 401 | Parameter error. Return by promise. | -| 5400102 | Operation not allowed. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 错误码ID | 错误信息 | +| -------- | ------------------------------ | +| 5400101 | No memory. Return by callback. | **示例:** ```js -let videoProfile = { - audioBitrate : 48000, - audioChannels : 2, - audioCodec : 'audio/mp4a-latm', - audioSampleRate : 48000, - fileFormat : 'mp4', - videoBitrate : 48000, - videoCodec : 'video/mp4v-es', - videoFrameWidth : 640, - videoFrameHeight : 480, - videoFrameRate : 30 -} - -let videoConfig = { - audioSourceType : 1, - videoSourceType : 0, - profile : videoProfile, - url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - orientationHint : 0, - location : { latitude : 30, longitude : 130 }, -} +let videoRecorder -// promise -videoRecorder.prepare(videoConfig).then(() => { - console.info('prepare success'); -}).catch((err) => { - console.info('prepare failed and catch error is ' + err.message); +media.createVideoRecorder((error, video) => { + if (video != null) { + videoRecorder = video; + console.info('video createVideoRecorder success'); + } else { + console.info(`video createVideoRecorder fail, error:${error}`); + } }); ``` -### getInputSurface9+ - -getInputSurface(callback: AsyncCallback\): void; +## media.createVideoRecorder(deprecated) -异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 +createVideoRecorder(): Promise\ -应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 +> **说明:** +> 从API version 9开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 -只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 +异步方式创建视频录制实例。通过Promise获取返回值。 +一台设备只允许创建一个录制实例。 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder **系统接口:** 该接口为系统接口 -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | --------------------------- | -| callback | AsyncCallback\ | 是 | 异步获得surface的回调方法。 | +| 类型 | 说明 | +| ----------------------------------------- | ------------------------------------------------------------ | +| Promise<[VideoRecorder](#videorecorder9)> | Promise对象。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | **错误码:** 以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 错误码ID | 错误信息 | +| -------- | ----------------------------- | +| 5400101 | No memory. Return by promise. | **示例:** ```js -// asyncallback -let surfaceID = null; // 传递给外界的surfaceID -videoRecorder.getInputSurface((err, surfaceId) => { - if (err == null) { - console.info('getInputSurface success'); - surfaceID = surfaceId; - } else { - console.info('getInputSurface failed and error is ' + err.message); - } +let videoRecorder + +media.createVideoRecorder().then((video) => { + if (video != null) { + videoRecorder = video; + console.info('video createVideoRecorder success'); + } else { + console.info('video createVideoRecorder fail'); + } +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); ``` -### getInputSurface9+ +## MediaErrorCode(deprecated) -getInputSurface(): Promise\; +媒体服务错误类型枚举。 - 异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[媒体错误码](../errorcodes/errorcode-media.md)替代。 -应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 +**系统能力:** SystemCapability.Multimedia.Media.Core -只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 +| 名称 | 值 | 说明 | +| -------------------------- | ---- | -------------------------------------- | +| MSERR_OK | 0 | 表示操作成功。 | +| MSERR_NO_MEMORY | 1 | 表示申请内存失败,系统可能无可用内存。 | +| MSERR_OPERATION_NOT_PERMIT | 2 | 表示无权限执行此操作。 | +| MSERR_INVALID_VAL | 3 | 表示传入入参无效。 | +| MSERR_IO | 4 | 表示发生IO错误。 | +| MSERR_TIMEOUT | 5 | 表示操作超时。 | +| MSERR_UNKNOWN | 6 | 表示未知错误。 | +| MSERR_SERVICE_DIED | 7 | 表示服务端失效。 | +| MSERR_INVALID_STATE | 8 | 表示在当前状态下,不允许执行此操作。 | +| MSERR_UNSUPPORTED | 9 | 表示在当前版本下,不支持此操作。 | -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +## AudioPlayer(deprecated) -**系统接口:** 该接口为系统接口 +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 -**返回值:** +音频播放管理类,用于管理和播放音频媒体。在调用AudioPlayer的方法前,需要先通过[createAudioPlayer()](#mediacreateaudioplayerdeprecated)构建一个AudioPlayer实例。 -| 类型 | 说明 | -| ---------------- | -------------------------------- | -| Promise\ | 异步获得surface的Promise返回值。 | +### 属性 -**错误码:** +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | +| src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**需要权限:** ohos.permission.READ_MEDIA 或 ohos.permission.INTERNET。 | +| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
| +| loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | +| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | +| currentTime | number | 是 | 否 | 音频的当前播放位置,单位为毫秒(ms)。 | +| duration | number | 是 | 否 | 音频时长,单位为毫秒(ms)。 | +| state | [AudioState](#audiostate) | 是 | 否 | 可以查询音频播放的状态,该状态不可作为调用play/pause/stop等状态切换的触发条件。 | -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +### play + +play(): void + +开始播放音频资源,需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 + +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -// promise -let surfaceID = null; // 传递给外界的surfaceID -videoRecorder.getInputSurface().then((surfaceId) => { - console.info('getInputSurface success'); - surfaceID = surfaceId; -}).catch((err) => { - console.info('getInputSurface failed and catch error is ' + err.message); +audioPlayer.on('play', () => { //设置'play'事件回调 + console.log('audio play success'); }); +audioPlayer.play(); ``` -### start9+ - -start(callback: AsyncCallback\): void; +### pause -异步方式开始视频录制。通过注册回调函数获取返回值。 +pause(): void -在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 +暂停播放音频资源。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -**系统接口:** 该接口为系统接口 +**示例:** -**参数:** +```js +audioPlayer.on('pause', () => { //设置'pause'事件回调 + console.log('audio pause success'); +}); +audioPlayer.pause(); +``` -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步开始视频录制的回调方法。 | +### stop -**错误码:** +stop(): void -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +停止播放音频资源。 -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -// asyncallback -videoRecorder.start((err) => { - if (err == null) { - console.info('start videorecorder success'); - } else { - console.info('start videorecorder failed and error is ' + err.message); - } +audioPlayer.on('stop', () => { //设置'stop'事件回调 + console.log('audio stop success'); }); +audioPlayer.stop(); ``` -### start9+ +### reset7+ -start(): Promise\; +reset(): void -异步方式开始视频录制。通过Promise获取返回值。 +重置播放音频资源。 -在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**示例:** -**系统接口:** 该接口为系统接口 +```js +audioPlayer.on('reset', () => { //设置'reset'事件回调 + console.log('audio reset success'); +}); +audioPlayer.reset(); +``` -**返回值:** +### seek -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步开始视频录制方法的Promise返回值。 | +seek(timeMs: number): void -**错误码:** +跳转到指定播放位置。 -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ----------------------------------------------------------- | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围[0, duration]。 | **示例:** ```js -// promise -videoRecorder.start().then(() => { - console.info('start videorecorder success'); -}).catch((err) => { - console.info('start videorecorder failed and catch error is ' + err.message); +audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 + if (seekDoneTime == null) { + console.info('audio seek fail'); + return; + } + console.log('audio seek success. seekDoneTime: ' + seekDoneTime); }); +audioPlayer.seek(30000); //seek到30000ms的位置 ``` -### pause9+ - -pause(callback: AsyncCallback\): void; - -异步方式暂停视频录制。通过注册回调函数获取返回值。 +### setVolume -在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 +setVolume(vol: number): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +设置音量。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步暂停视频录制的回调方法。 | - -**错误码:** +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | - -**示例:** +**示例:** ```js -// asyncallback -videoRecorder.pause((err) => { - if (err == null) { - console.info('pause videorecorder success'); - } else { - console.info('pause videorecorder failed and error is ' + err.message); - } +audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 + console.log('audio volumeChange success'); }); +audioPlayer.setVolume(1); //设置音量到100% ``` -### pause9+ - -pause(): Promise\; - -异步方式暂停视频录制。通过Promise获取返回值。 - -在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder - -**系统接口:** 该接口为系统接口 - -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步暂停视频录制方法的Promise返回值。 | +### release -**错误码:** +release(): void -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +释放音频资源。 -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -// promise -videoRecorder.pause().then(() => { - console.info('pause videorecorder success'); -}).catch((err) => { - console.info('pause videorecorder failed and catch error is ' + err.message); -}); +audioPlayer.release(); +audioPlayer = undefined; ``` -### resume9+ - -resume(callback: AsyncCallback\): void; +### getTrackDescription8+ -异步方式恢复视频录制。通过注册回调函数获取返回值。 +getTrackDescription(callback: AsyncCallback\>): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过回调方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步恢复视频录制的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | +| callback | AsyncCallback\> | 是 | 音频轨道信息MediaDescription数组回调方法。 | **示例:** ```js -// asyncallback -videoRecorder.resume((err) => { - if (err == null) { - console.info('resume videorecorder success'); +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('audio key is ' + item); + console.info('audio value is ' + property); + } +} + +audioPlayer.getTrackDescription((error, arrList) => { + if (arrList != null) { + for (let i = 0; i < arrList.length; i++) { + printfDescription(arrList[i]); + } } else { - console.info('resume videorecorder failed and error is ' + err.message); + console.log(`audio getTrackDescription fail, error:${error}`); } }); ``` -### resume9+ - -resume(): Promise\; +### getTrackDescription8+ -异步方式恢复视频录制。通过Promise获取返回值。 +getTrackDescription(): Promise\> -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过Promise方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **返回值:** -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步恢复视频录制方法的Promise返回值。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | - -**示例:** - -```js -// promise -videoRecorder.resume().then(() => { - console.info('resume videorecorder success'); -}).catch((err) => { - console.info('resume videorecorder failed and catch error is ' + err.message); -}); -``` - -### stop9+ - -stop(callback: AsyncCallback\): void; - -异步方式停止视频录制。通过注册回调函数获取返回值。 - -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder - -**系统接口:** 该接口为系统接口 - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步停止视频录制的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 类型 | 说明 | +| ------------------------------------------------------ | ----------------------------------------------- | +| Promise> | 音频轨道信息MediaDescription数组Promise返回值。 | **示例:** ```js -// asyncallback -videoRecorder.stop((err) => { - if (err == null) { - console.info('stop videorecorder success'); +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('audio key is ' + item); + console.info('audio value is ' + property); + } +} +let arrayDescription = null +audioPlayer.getTrackDescription().then((arrList) => { + if (arrList != null) { + arrayDescription = arrList; } else { - console.info('stop videorecorder failed and error is ' + err.message); + console.log('audio getTrackDescription fail'); } +}).catch((error) => { + console.info(`audio catchCallback, error:${error}`); }); -``` - -### stop9+ - -stop(): Promise\; - -异步方式停止视频录制。通过Promise获取返回值。 - -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +for (let i = 0; i < arrayDescription.length; i++) { + printfDescription(arrayDescription[i]); +} +``` -**系统接口:** 该接口为系统接口 +### on('bufferingUpdate')8+ -**返回值:** +on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步停止视频录制方法的Promise返回值。 | +开始订阅音频缓存更新事件。仅网络播放支持该订阅事件。 -**错误码:** +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**参数:** -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 音频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | +| callback | function | 是 | 音频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | **示例:** ```js -// promise -videoRecorder.stop().then(() => { - console.info('stop videorecorder success'); -}).catch((err) => { - console.info('stop videorecorder failed and catch error is ' + err.message); +audioPlayer.on('bufferingUpdate', (infoType, value) => { + console.log('audio bufferingInfo type: ' + infoType); + console.log('audio bufferingInfo value: ' + value); }); ``` -### release9+ - -release(callback: AsyncCallback\): void; + ### on('play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange') -异步方式释放视频录制资源。通过注册回调函数获取返回值。 +on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +开始订阅音频播放事件。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | -------------------------------- | -| callback | AsyncCallback\ | 是 | 异步释放视频录制资源的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放事件回调类型,支持的事件包括:'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange'。
- 'play':完成[play()](#audioplayer_play)调用,音频开始播放,触发该事件。
- 'pause':完成[pause()](#audioplayer_pause)调用,音频暂停播放,触发该事件。
- 'stop':完成[stop()](#audioplayer_stop)调用,音频停止播放,触发该事件。
- 'reset':完成[reset()](#audioplayer_reset)调用,播放器重置,触发该事件。
- 'dataLoad':完成音频数据加载后触发该事件,即src属性设置完成后触发该事件。
- 'finish':完成音频播放后触发该事件。
- 'volumeChange':完成[setVolume()](#audioplayer_setvolume)调用,播放音量改变后触发该事件。 | +| callback | () => void | 是 | 播放事件回调方法。 | **示例:** ```js -// asyncallback -videoRecorder.release((err) => { - if (err == null) { - console.info('release videorecorder success'); - } else { - console.info('release videorecorder failed and error is ' + err.message); +import fileio from '@ohos.fileio' + +let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 +audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 + console.info('audio set source success'); + audioPlayer.play(); //开始播放,并触发'play'事件回调 +}); +audioPlayer.on('play', () => { //设置'play'事件回调 + console.info('audio play success'); + audioPlayer.seek(30000); //调用seek方法,并触发'timeUpdate'事件回调 +}); +audioPlayer.on('pause', () => { //设置'pause'事件回调 + console.info('audio pause success'); + audioPlayer.stop(); //停止播放,并触发'stop'事件回调 +}); +audioPlayer.on('reset', () => { //设置'reset'事件回调 + console.info('audio reset success'); + audioPlayer.release(); //释放播放实例资源 + audioPlayer = undefined; +}); +audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 + if (seekDoneTime == null) { + console.info('audio seek fail'); + return; } + console.info('audio seek success, and seek time is ' + seekDoneTime); + audioPlayer.setVolume(0.5); //设置音量为50%,并触发'volumeChange'事件回调 +}); +audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 + console.info('audio volumeChange success'); + audioPlayer.pause(); //暂停播放,并触发'pause'事件回调 +}); +audioPlayer.on('finish', () => { //设置'finish'事件回调 + console.info('audio play finish'); + audioPlayer.stop(); //停止播放,并触发'stop'事件回调 +}); +audioPlayer.on('error', (error) => { //设置'error'事件回调 + console.info(`audio error called, error: ${error}`); +}); + +// 用户选择视频设置fd(本地播放) +let fdPath = 'fd://'; +// path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/accounts/account_0/appdata" 命令,将其推送到设备上 +let path = '/data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3'; +fileio.open(path).then((fdValue) => { + fdPath = fdPath + '' + fdValue; + console.info('open fd success fd is' + fdPath); +}, (err) => { + console.info('open fd failed err is' + err); +}).catch((err) => { + console.info('open fd failed err is' + err); }); +audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调 ``` -### release9+ +### on('timeUpdate') -release(): Promise\; +on(type: 'timeUpdate', callback: Callback\): void -异步方式释放视频录制资源。通过Promise获取返回值。 +开始订阅音频播放时间更新事件。处于播放状态时,每隔1s上报一次该事件。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -**系统接口:** 该接口为系统接口 +**参数:** -**返回值:** +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放事件回调类型,支持的事件包括:'timeUpdate'。
- 'timeUpdate':音频播放时间戳更新,开始播放后自动触发该事件。 | +| callback | Callback\ | 是 | 播放事件回调方法。回调方法入参为更新后的时间戳。 | -| 类型 | 说明 | -| -------------- | ----------------------------------------- | -| Promise\ | 异步释放视频录制资源方法的Promise返回值。 | +**示例:** -**错误码:** +```js +audioPlayer.on('timeUpdate', (newTime) => { //设置'timeUpdate'事件回调 + if (newTime == null) { + console.info('audio timeUpadate fail'); + return; + } + console.log('audio timeUpadate success. seekDoneTime: ' + newTime); +}); +audioPlayer.play(); //开始播放后,自动触发时间戳更新事件 +``` -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +### on('error') -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400105 | Service died. Return by callback. | +on(type: 'error', callback: ErrorCallback): void + +开始订阅音频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 + +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':音频播放中发生错误,触发该事件。 | +| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | **示例:** ```js -// promise -videoRecorder.release().then(() => { - console.info('release videorecorder success'); -}).catch((err) => { - console.info('release videorecorder failed and catch error is ' + err.message); +audioPlayer.on('error', (error) => { //设置'error'事件回调 + console.info(`audio error called, error: ${error}`); }); +audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 ``` -### reset9+ +## AudioState(deprecated) -reset(callback: AsyncCallback\): void; +音频播放的状态机。可通过state属性获取当前状态。 -异步方式重置视频录制。通过注册回调函数获取返回值。 +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +| 名称 | 类型 | 说明 | +| ------- | ------ | ---------------------------------------------- | +| idle | string | 音频播放空闲,dataload/reset成功后处于此状态。 | +| playing | string | 音频正在播放,play成功后处于此状态。 | +| paused | string | 音频暂停播放,pause成功后处于此状态。 | +| stopped | string | 音频播放停止,stop/播放结束后处于此状态。 | +| error | string | 错误状态。 | -**系统接口:** 该接口为系统接口 +## VideoPlayer(deprecated) -**参数:** +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步重置视频录制的回调方法。 | +视频播放管理类,用于管理和播放视频媒体。在调用VideoPlayer的方法前,需要先通过[createVideoPlayer()](#createvideoplayer)构建一个VideoPlayer实例。 -**错误码:** +视频播放demo可参考:[视频播放开发指导](../../media/video-playback.md) -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +### 属性 -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | +| url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
| +| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 视频媒体文件描述,使用场景:应用中的视频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
视频1(地址偏移:0,字节长度:100)
视频2(地址偏移:101,字节长度:50)
视频3(地址偏移:151,字节长度:150)
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的视频文件: 请使用src=fd://xx
| +| loop8+ | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | +| videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式。 | +| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | +| currentTime8+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms)。 | +| duration8+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),返回-1表示直播模式。 | +| state8+ | [VideoPlayState](#videoplayerstate) | 是 | 否 | 视频播放的状态。 | +| width8+ | number | 是 | 否 | 视频宽,单位为像素(px)。 | +| height8+ | number | 是 | 否 | 视频高,单位为像素(px)。 | + +### setDisplaySurface8+ + +setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void + +通过回调方式设置SurfaceId。 + +*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| --------- | -------------------- | ---- | ------------------------- | +| surfaceId | string | 是 | SurfaceId | +| callback | AsyncCallback\ | 是 | 设置SurfaceId的回调方法。 | **示例:** ```js -// asyncallback -videoRecorder.reset((err) => { +let surfaceId = null; +videoPlayer.setDisplaySurface(surfaceId, (err) => { if (err == null) { - console.info('reset videorecorder success'); + console.info('setDisplaySurface success!'); } else { - console.info('reset videorecorder failed and error is ' + err.message); + console.info('setDisplaySurface fail!'); } }); ``` -### reset9+ - -reset(): Promise\; - -异步方式重置视频录制。通过Promise获取返回值。 +### setDisplaySurface8+ -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 +setDisplaySurface(surfaceId: string): Promise\ -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过Promise方式设置SurfaceId。 -**系统接口:** 该接口为系统接口 +*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 -**返回值:** +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步重置视频录制方法的Promise返回值。 | +**参数:** -**错误码:** +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | --------- | +| surfaceId | string | 是 | SurfaceId | -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**返回值:** -| 错误码ID | 错误信息 | -| -------- | -------------------------------- | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 类型 | 说明 | +| -------------- | ------------------------------ | +| Promise\ | 设置SurfaceId的Promise返回值。 | **示例:** ```js -// promise -videoRecorder.reset().then(() => { - console.info('reset videorecorder success'); -}).catch((err) => { - console.info('reset videorecorder failed and catch error is ' + err.message); +let surfaceId = null; +videoPlayer.setDisplaySurface(surfaceId).then(() => { + console.info('setDisplaySurface success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); ``` -### on('error')9+ +### prepare8+ -on(type: 'error', callback: ErrorCallback): void +prepare(callback: AsyncCallback\): void -开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 +通过回调方式准备播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':视频录制过程中发生错误,触发该事件。 | -| callback | ErrorCallback | 是 | 录制错误事件回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 准备播放视频的回调方法。 | **示例:** ```js -// 当获取videoRecordState接口出错时通过此订阅事件上报 -videoRecorder.on('error', (error) => { // 设置'error'事件回调 - console.info(`audio error called, error: ${error}`); -}) +videoPlayer.prepare((err) => { + if (err == null) { + console.info('prepare success!'); + } else { + console.info('prepare fail!'); + } +}); ``` -## VideoRecordState9+ +### prepare8+ -视频录制的状态机。可通过state属性获取当前状态。 +prepare(): Promise\ -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过Promise方式准备播放视频。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -| 名称 | 类型 | 说明 | -| -------- | ------ | ---------------------- | -| idle | string | 视频录制空闲。 | -| prepared | string | 视频录制参数设置完成。 | -| playing | string | 视频正在录制。 | -| paused | string | 视频暂停录制。 | -| stopped | string | 视频录制停止。 | -| error | string | 错误状态。 | +**返回值:** -## VideoRecorderConfig9+ +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 准备播放视频的Promise返回值。 | -表示视频录制的参数设置。 +**示例:** -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +```js +videoPlayer.prepare().then(() => { + console.info('prepare success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` -**系统接口:** 该接口为系统接口 +### play8+ -| 名称 | 类型 | 必填 | 说明 | -| --------------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | -| audioSourceType | [AudioSourceType](#audiosourcetype9) | 是 | 视频录制的音频源类型。 | -| videoSourceType | [VideoSourceType](#videosourcetype9) | 是 | 视频录制的视频源类型。 | -| profile | [VideoRecorderProfile](#videorecorderprofile9) | 是 | 视频录制的profile。 | -| rotation | number | 否 | 录制视频的旋转角度。 | -| location | [Location](#location) | 否 | 录制视频的地理位置。 | -| url | string | 是 | 视频输出URL:fd://xx (fd number)
![](figures/zh-cn_image_url.png) | +play(callback: AsyncCallback\): void; -## VideoRecorderProfile9+ +通过回调方式开始播放视频。 -视频录制的配置文件。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**参数:** -**系统接口:** 该接口为系统接口 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 开始播放视频的回调方法。 | -| 名称 | 类型 | 必填 | 说明 | -| ---------------- | -------------------------------------------- | ---- | ---------------- | -| audioBitrate | number | 是 | 音频编码比特率。 | -| audioChannels | number | 是 | 音频采集声道数。 | -| audioCodec | [CodecMimeType](#codecmimetype8) | 是 | 音频编码格式。 | -| audioSampleRate | number | 是 | 音频采样率。 | -| fileFormat | [ContainerFormatType](#containerformattype8) | 是 | 文件的容器格式。 | -| videoBitrate | number | 是 | 视频编码比特率。 | -| videoCodec | [CodecMimeType](#codecmimetype8) | 是 | 视频编码格式。 | -| videoFrameWidth | number | 是 | 录制视频帧的宽。 | -| videoFrameHeight | number | 是 | 录制视频帧的高。 | -| videoFrameRate | number | 是 | 录制视频帧率。 | +**示例:** -## media.createAudioPlayer(deprecated) +```js +videoPlayer.play((err) => { + if (err == null) { + console.info('play success!'); + } else { + console.info('play fail!'); + } +}); +``` -createAudioPlayer(): AudioPlayer +### play8+ -同步方式创建音频播放实例。 +play(): Promise\; -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 +通过Promise方式开始播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **返回值:** -| 类型 | 说明 | -| --------------------------- | ------------------------------------------------------------ | -| [AudioPlayer](#audioplayerdeprecated) | 返回AudioPlayer类实例,失败时返回null。可用于音频播放、暂停、停止等操作。 | +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 开始播放视频的Promise返回值。 | **示例:** ```js -let audioPlayer = media.createAudioPlayer(); +videoPlayer.play().then(() => { + console.info('play success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); ``` -## media.createVideoPlayer(deprecated) - -createVideoPlayer(callback: AsyncCallback\): void +### pause8+ -异步方式创建视频播放实例,通过注册回调函数获取返回值。 +pause(callback: AsyncCallback\): void -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 +通过回调方式暂停播放视频。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | -| callback | AsyncCallback<[VideoPlayer](#videoplayerdeprecated)> | 是 | 回调函数。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 暂停播放视频的回调方法。 | **示例:** ```js -let videoPlayer - -media.createVideoPlayer((error, video) => { - if (video != null) { - videoPlayer = video; - console.info('video createVideoPlayer success'); - } else { - console.info(`video createVideoPlayer fail, error:${error}`); - } +videoPlayer.pause((err) => { + if (err == null) { + console.info('pause success!'); + } else { + console.info('pause fail!'); + } }); ``` -## media.createVideoPlayer(deprecated) - -createVideoPlayer(): Promise\ +### pause8+ -异步方式创建视频播放实例,通过Promise获取返回值。 +pause(): Promise\ -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9-1)替代。 +通过Promise方式暂停播放视频。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **返回值:** -| 类型 | 说明 | -| ------------------------------------ | ------------------------------------------------------------ | -| Promise<[VideoPlayer](#videoplayerdeprecated)> | Promise对象。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 暂停播放视频的Promise返回值。 | **示例:** ```js -let videoPlayer - -media.createVideoPlayer().then((video) => { - if (video != null) { - videoPlayer = video; - console.info('video createVideoPlayer success'); - } else { - console.info('video createVideoPlayer fail'); - } +videoPlayer.pause().then(() => { + console.info('pause success'); }).catch((error) => { console.info(`video catchCallback, error:${error}`); }); ``` -## media.createAudioRecorder(deprecated) - -createAudioRecorder(): AudioRecorder +### stop8+ -创建音频录制的实例来控制音频的录制。 -一台设备只允许创建一个录制实例。 +stop(callback: AsyncCallback\): void -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 +通过回调方式停止播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**返回值:** +**参数:** -| 类型 | 说明 | -| ------------------------------- | ------------------------------------------------------------ | -| [AudioRecorder](#audiorecorderdeprecated) | 返回AudioRecorder类实例,失败时返回null。可用于录制音频媒体。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 停止播放视频的回调方法。 | **示例:** ```js -let audioRecorder = media.createAudioRecorder(); +videoPlayer.stop((err) => { + if (err == null) { + console.info('stop success!'); + } else { + console.info('stop fail!'); + } +}); ``` -## MediaErrorCode(deprecated) - -媒体服务错误类型枚举。 +### stop8+ -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[媒体错误码](../errorcodes/errorcode-media.md)替代。 +stop(): Promise\ -**系统能力:** SystemCapability.Multimedia.Media.Core +通过Promise方式停止播放视频。 -| 名称 | 值 | 说明 | -| -------------------------- | ---- | -------------------------------------- | -| MSERR_OK | 0 | 表示操作成功。 | -| MSERR_NO_MEMORY | 1 | 表示申请内存失败,系统可能无可用内存。 | -| MSERR_OPERATION_NOT_PERMIT | 2 | 表示无权限执行此操作。 | -| MSERR_INVALID_VAL | 3 | 表示传入入参无效。 | -| MSERR_IO | 4 | 表示发生IO错误。 | -| MSERR_TIMEOUT | 5 | 表示操作超时。 | -| MSERR_UNKNOWN | 6 | 表示未知错误。 | -| MSERR_SERVICE_DIED | 7 | 表示服务端失效。 | -| MSERR_INVALID_STATE | 8 | 表示在当前状态下,不允许执行此操作。 | -| MSERR_UNSUPPORTED | 9 | 表示在当前版本下,不支持此操作。 | +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -## AudioPlayer(deprecated) +**返回值:** -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 停止播放视频的Promise返回值。 | -音频播放管理类,用于管理和播放音频媒体。在调用AudioPlayer的方法前,需要先通过[createAudioPlayer()](#mediacreateaudioplayerdeprecated)构建一个AudioPlayer实例。 +**示例:** -### 属性 +```js +videoPlayer.stop().then(() => { + console.info('stop success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +### reset8+ -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | -| src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**需要权限:** ohos.permission.READ_MEDIA 或 ohos.permission.INTERNET。 | -| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
| -| loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | -| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | -| currentTime | number | 是 | 否 | 音频的当前播放位置,单位为毫秒(ms)。 | -| duration | number | 是 | 否 | 音频时长,单位为毫秒(ms)。 | -| state | [AudioState](#audiostate) | 是 | 否 | 可以查询音频播放的状态,该状态不可作为调用play/pause/stop等状态切换的触发条件。 | +reset(callback: AsyncCallback\): void -### play +通过回调方式重置播放视频。 -play(): void +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -开始播放音频资源,需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 +**参数:** -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 切换播放视频的回调方法。 | **示例:** ```js -audioPlayer.on('play', () => { //设置'play'事件回调 - console.log('audio play success'); +videoPlayer.reset((err) => { + if (err == null) { + console.info('reset success!'); + } else { + console.info('reset fail!'); + } }); -audioPlayer.play(); ``` -### pause +### reset8+ -pause(): void +reset(): Promise\ -暂停播放音频资源。 +通过Promise方式重置播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**示例:** +**返回值:** -```js -audioPlayer.on('pause', () => { //设置'pause'事件回调 - console.log('audio pause success'); +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 切换播放视频的Promise返回值。 | + +**示例:** + +```js +videoPlayer.reset().then(() => { + console.info('reset success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioPlayer.pause(); ``` -### stop +### seek8+ -stop(): void +seek(timeMs: number, callback: AsyncCallback\): void -停止播放音频资源。 +通过回调方式跳转到指定播放位置,默认跳转到指定时间点的上一个关键帧。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ------------------------------------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | +| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | **示例:** ```js -audioPlayer.on('stop', () => { //设置'stop'事件回调 - console.log('audio stop success'); +let seekTime = 5000; +videoPlayer.seek(seekTime, (err, result) => { + if (err == null) { + console.info('seek success!'); + } else { + console.info('seek fail!'); + } }); -audioPlayer.stop(); ``` -### reset7+ +### seek8+ -reset(): void +seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\): void -重置播放音频资源。 +通过回调方式跳转到指定播放位置。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ------------------------------------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | +| mode | [SeekMode](#seekmode8) | 是 | 跳转模式。 | +| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | **示例:** ```js -audioPlayer.on('reset', () => { //设置'reset'事件回调 - console.log('audio reset success'); +import media from '@ohos.multimedia.media' +let seekTime = 5000; +videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC, (err, result) => { + if (err == null) { + console.info('seek success!'); + } else { + console.info('seek fail!'); + } }); -audioPlayer.reset(); ``` -### seek +### seek8+ -seek(timeMs: number): void +seek(timeMs: number, mode?:SeekMode): Promise\ -跳转到指定播放位置。 +通过Promise方式跳转到指定播放位置,如果没有设置mode则跳转到指定时间点的上一个关键帧。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ----------------------------------------------------------- | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围[0, duration]。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------- | ---- | ------------------------------------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | +| mode | [SeekMode](#seekmode8) | 否 | 跳转模式。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------- | +| Promise\ | 跳转到指定播放位置的Promise返回值,单位ms。 | **示例:** ```js -audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 - if (seekDoneTime == null) { - console.info('audio seek fail'); - return; +import media from '@ohos.multimedia.media' +let seekTime = 5000; +videoPlayer.seek(seekTime).then((seekDoneTime) => { // seekDoneTime表示seek完成后的时间点 + console.info('seek success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); + +videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC).then((seekDoneTime) => { + console.info('seek success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` + +### setVolume8+ + +setVolume(vol: number, callback: AsyncCallback\): void + +通过回调方式设置音量。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------------------------------------------ | +| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | +| callback | AsyncCallback\ | 是 | 设置音量的回调方法。 | + +**示例:** + +```js +let vol = 0.5; +videoPlayer.setVolume(vol, (err, result) => { + if (err == null) { + console.info('setVolume success!'); + } else { + console.info('setVolume fail!'); } - console.log('audio seek success. seekDoneTime: ' + seekDoneTime); }); -audioPlayer.seek(30000); //seek到30000ms的位置 ``` -### setVolume +### setVolume8+ -setVolume(vol: number): void +setVolume(vol: number): Promise\ -设置音量。 +通过Promise方式设置音量。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** @@ -3606,43 +3562,86 @@ setVolume(vol: number): void | ------ | ------ | ---- | ------------------------------------------------------------ | | vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------- | +| Promise\ | 设置音量的Promise返回值。 | + **示例:** ```js -audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 - console.log('audio volumeChange success'); +let vol = 0.5; +videoPlayer.setVolume(vol).then(() => { + console.info('setVolume success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioPlayer.setVolume(1); //设置音量到100% ``` -### release +### release8+ -release(): void +release(callback: AsyncCallback\): void -释放音频资源。 +通过回调方式释放视频资源。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 释放视频资源的回调方法。 | **示例:** ```js -audioPlayer.release(); -audioPlayer = undefined; +videoPlayer.release((err) => { + if (err == null) { + console.info('release success!'); + } else { + console.info('release fail!'); + } +}); ``` -### getTrackDescription8+ +### release8+ + +release(): Promise\ + +通过Promise方式释放视频资源。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 释放视频资源的Promise返回值。 | + +**示例:** + +```js +videoPlayer.release().then(() => { + console.info('release success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` + +### getTrackDescription8+ getTrackDescription(callback: AsyncCallback\>): void -通过回调方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 +通过回调方式获取视频轨道信息。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | -| callback | AsyncCallback\> | 是 | 音频轨道信息MediaDescription数组回调方法。 | +| callback | AsyncCallback\> | 是 | 视频轨道信息MediaDescription数组回调方法。 | **示例:** @@ -3650,35 +3649,35 @@ getTrackDescription(callback: AsyncCallback\>): void function printfDescription(obj) { for (let item in obj) { let property = obj[item]; - console.info('audio key is ' + item); - console.info('audio value is ' + property); + console.info('video key is ' + item); + console.info('video value is ' + property); } } -audioPlayer.getTrackDescription((error, arrList) => { - if (arrList != null) { +videoPlayer.getTrackDescription((error, arrList) => { + if ((arrList) != null) { for (let i = 0; i < arrList.length; i++) { printfDescription(arrList[i]); } } else { - console.log(`audio getTrackDescription fail, error:${error}`); + console.log(`video getTrackDescription fail, error:${error}`); } }); ``` -### getTrackDescription8+ +### getTrackDescription8+ getTrackDescription(): Promise\> -通过Promise方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用 +通过Promise方式获取视频轨道信息。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **返回值:** | 类型 | 说明 | | ------------------------------------------------------ | ----------------------------------------------- | -| Promise> | 音频轨道信息MediaDescription数组Promise返回值。 | +| Promise> | 视频轨道信息MediaDescription数组Promise返回值。 | **示例:** @@ -3686,1301 +3685,1317 @@ getTrackDescription(): Promise\> function printfDescription(obj) { for (let item in obj) { let property = obj[item]; - console.info('audio key is ' + item); - console.info('audio value is ' + property); + console.info('video key is ' + item); + console.info('video value is ' + property); } } -let arrayDescription = null -audioPlayer.getTrackDescription().then((arrList) => { + +let arrayDescription; +videoPlayer.getTrackDescription().then((arrList) => { if (arrList != null) { arrayDescription = arrList; } else { - console.log('audio getTrackDescription fail'); + console.log('video getTrackDescription fail'); } }).catch((error) => { - console.info(`audio catchCallback, error:${error}`); + console.info(`video catchCallback, error:${error}`); }); - for (let i = 0; i < arrayDescription.length; i++) { printfDescription(arrayDescription[i]); } ``` -### on('bufferingUpdate')8+ +### setSpeed8+ -on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void +setSpeed(speed:number, callback: AsyncCallback\): void -开始订阅音频缓存更新事件。仅网络播放支持该订阅事件。 +通过回调方式设置播放速度。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 音频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | -| callback | function | 是 | 音频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ---------------------------------------------------------- | +| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | +| callback | AsyncCallback\ | 是 | 设置播放速度的回调方法。 | **示例:** ```js -audioPlayer.on('bufferingUpdate', (infoType, value) => { - console.log('audio bufferingInfo type: ' + infoType); - console.log('audio bufferingInfo value: ' + value); +import media from '@ohos.multimedia.media' +let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; + +videoPlayer.setSpeed(speed, (err, result) => { + if (err == null) { + console.info('setSpeed success!'); + } else { + console.info('setSpeed fail!'); + } }); ``` - ### on('play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange') +### setSpeed8+ -on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void +setSpeed(speed:number): Promise\ -开始订阅音频播放事件。 +通过Promise方式设置播放速度。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放事件回调类型,支持的事件包括:'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange'。
- 'play':完成[play()](#audioplayer_play)调用,音频开始播放,触发该事件。
- 'pause':完成[pause()](#audioplayer_pause)调用,音频暂停播放,触发该事件。
- 'stop':完成[stop()](#audioplayer_stop)调用,音频停止播放,触发该事件。
- 'reset':完成[reset()](#audioplayer_reset)调用,播放器重置,触发该事件。
- 'dataLoad':完成音频数据加载后触发该事件,即src属性设置完成后触发该事件。
- 'finish':完成音频播放后触发该事件。
- 'volumeChange':完成[setVolume()](#audioplayer_setvolume)调用,播放音量改变后触发该事件。 | -| callback | () => void | 是 | 播放事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------------------------------------------- | +| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | + +**返回值:** + +| 类型 | 说明 | +| ---------------- | ------------------------------------------------------------ | +| Promise\ | 播放速度Promise返回值,具体见[PlaybackSpeed](#playbackspeed8)。 | **示例:** ```js -import fileio from '@ohos.fileio' - -let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 -audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 - console.info('audio set source success'); - audioPlayer.play(); //开始播放,并触发'play'事件回调 -}); -audioPlayer.on('play', () => { //设置'play'事件回调 - console.info('audio play success'); - audioPlayer.seek(30000); //调用seek方法,并触发'timeUpdate'事件回调 -}); -audioPlayer.on('pause', () => { //设置'pause'事件回调 - console.info('audio pause success'); - audioPlayer.stop(); //停止播放,并触发'stop'事件回调 -}); -audioPlayer.on('reset', () => { //设置'reset'事件回调 - console.info('audio reset success'); - audioPlayer.release(); //释放播放实例资源 - audioPlayer = undefined; -}); -audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 - if (seekDoneTime == null) { - console.info('audio seek fail'); - return; - } - console.info('audio seek success, and seek time is ' + seekDoneTime); - audioPlayer.setVolume(0.5); //设置音量为50%,并触发'volumeChange'事件回调 -}); -audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 - console.info('audio volumeChange success'); - audioPlayer.pause(); //暂停播放,并触发'pause'事件回调 -}); -audioPlayer.on('finish', () => { //设置'finish'事件回调 - console.info('audio play finish'); - audioPlayer.stop(); //停止播放,并触发'stop'事件回调 -}); -audioPlayer.on('error', (error) => { //设置'error'事件回调 - console.info(`audio error called, error: ${error}`); -}); +import media from '@ohos.multimedia.media' +let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; -// 用户选择视频设置fd(本地播放) -let fdPath = 'fd://'; -// path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/accounts/account_0/appdata" 命令,将其推送到设备上 -let path = '/data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3'; -fileio.open(path).then((fdValue) => { - fdPath = fdPath + '' + fdValue; - console.info('open fd success fd is' + fdPath); -}, (err) => { - console.info('open fd failed err is' + err); -}).catch((err) => { - console.info('open fd failed err is' + err); +videoPlayer.setSpeed(speed).then(() => { + console.info('setSpeed success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调 ``` -### on('timeUpdate') +### on('playbackCompleted')8+ -on(type: 'timeUpdate', callback: Callback\): void +on(type: 'playbackCompleted', callback: Callback\): void -开始订阅音频播放时间更新事件。处于播放状态时,每隔1s上报一次该事件。 +开始监听视频播放完成事件。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放事件回调类型,支持的事件包括:'timeUpdate'。
- 'timeUpdate':音频播放时间戳更新,开始播放后自动触发该事件。 | -| callback | Callback\ | 是 | 播放事件回调方法。回调方法入参为更新后的时间戳。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ----------------------------------------------------------- | +| type | string | 是 | 视频播放完成事件回调类型,支持的事件:'playbackCompleted'。 | +| callback | function | 是 | 视频播放完成事件回调方法。 | **示例:** ```js -audioPlayer.on('timeUpdate', (newTime) => { //设置'timeUpdate'事件回调 - if (newTime == null) { - console.info('audio timeUpadate fail'); - return; - } - console.log('audio timeUpadate success. seekDoneTime: ' + newTime); +videoPlayer.on('playbackCompleted', () => { + console.info('playbackCompleted success!'); }); -audioPlayer.play(); //开始播放后,自动触发时间戳更新事件 ``` -### on('error') +### on('bufferingUpdate')8+ -on(type: 'error', callback: ErrorCallback): void +on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void -开始订阅音频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 +开始监听视频缓存更新事件。仅网络播放支持该订阅事件。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':音频播放中发生错误,触发该事件。 | -| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | +| callback | function | 是 | 视频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | **示例:** ```js -audioPlayer.on('error', (error) => { //设置'error'事件回调 - console.info(`audio error called, error: ${error}`); +videoPlayer.on('bufferingUpdate', (infoType, value) => { + console.log('video bufferingInfo type: ' + infoType); + console.log('video bufferingInfo value: ' + value); }); -audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 ``` -## AudioState(deprecated) - -音频播放的状态机。可通过state属性获取当前状态。 - -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer - -| 名称 | 类型 | 说明 | -| ------- | ------ | ---------------------------------------------- | -| idle | string | 音频播放空闲,dataload/reset成功后处于此状态。 | -| playing | string | 音频正在播放,play成功后处于此状态。 | -| paused | string | 音频暂停播放,pause成功后处于此状态。 | -| stopped | string | 音频播放停止,stop/播放结束后处于此状态。 | -| error | string | 错误状态。 | - -## VideoPlayer(deprecated) - -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 - -视频播放管理类,用于管理和播放视频媒体。在调用VideoPlayer的方法前,需要先通过[createVideoPlayer()](#createvideoplayer)构建一个VideoPlayer实例。 - -视频播放demo可参考:[视频播放开发指导](../../media/video-playback.md) - -### 属性 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer - -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | -| url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
| -| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 视频媒体文件描述,使用场景:应用中的视频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
视频1(地址偏移:0,字节长度:100)
视频2(地址偏移:101,字节长度:50)
视频3(地址偏移:151,字节长度:150)
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的视频文件: 请使用src=fd://xx
| -| loop8+ | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | -| videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式。 | -| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | -| currentTime8+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms)。 | -| duration8+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),返回-1表示直播模式。 | -| state8+ | [VideoPlayState](#videoplayerstate) | 是 | 否 | 视频播放的状态。 | -| width8+ | number | 是 | 否 | 视频宽,单位为像素(px)。 | -| height8+ | number | 是 | 否 | 视频高,单位为像素(px)。 | - -### setDisplaySurface8+ - -setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void +### on('startRenderFrame')8+ -通过回调方式设置SurfaceId。 +on(type: 'startRenderFrame', callback: Callback\): void -*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 +开始监听视频播放首帧送显上报事件。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| --------- | -------------------- | ---- | ------------------------- | -| surfaceId | string | 是 | SurfaceId | -| callback | AsyncCallback\ | 是 | 设置SurfaceId的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频播放首帧送显上报事件回调类型,支持的事件:'startRenderFrame'。 | +| callback | Callback\ | 是 | 视频播放首帧送显上报事件回调方法。 | **示例:** ```js -let surfaceId = null; -videoPlayer.setDisplaySurface(surfaceId, (err) => { - if (err == null) { - console.info('setDisplaySurface success!'); - } else { - console.info('setDisplaySurface fail!'); - } +videoPlayer.on('startRenderFrame', () => { + console.info('startRenderFrame success!'); }); ``` -### setDisplaySurface8+ - -setDisplaySurface(surfaceId: string): Promise\ +### on('videoSizeChanged')8+ -通过Promise方式设置SurfaceId。 +on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void -*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 +开始监听视频播放宽高变化事件。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| --------- | ------ | ---- | --------- | -| surfaceId | string | 是 | SurfaceId | - -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------------ | -| Promise\ | 设置SurfaceId的Promise返回值。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频播放宽高变化事件回调类型,支持的事件:'videoSizeChanged'。 | +| callback | function | 是 | 视频播放宽高变化事件回调方法,width表示宽,height表示高。 | **示例:** ```js -let surfaceId = null; -videoPlayer.setDisplaySurface(surfaceId).then(() => { - console.info('setDisplaySurface success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +videoPlayer.on('videoSizeChanged', (width, height) => { + console.log('video width is: ' + width); + console.log('video height is: ' + height); }); ``` -### prepare8+ +### on('error')8+ -prepare(callback: AsyncCallback\): void +on(type: 'error', callback: ErrorCallback): void -通过回调方式准备播放视频。 +开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 准备播放视频的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':视频播放中发生错误,触发该事件。 | +| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | **示例:** ```js -videoPlayer.prepare((err) => { - if (err == null) { - console.info('prepare success!'); - } else { - console.info('prepare fail!'); - } +videoPlayer.on('error', (error) => { // 设置'error'事件回调 + console.info(`video error called, error: ${error}`); }); +videoPlayer.url = 'fd://error'; //设置错误的播放地址,触发'error'事件 ``` -### prepare8+ +## VideoPlayState(deprecated) -prepare(): Promise\ +视频播放的状态机,可通过state属性获取当前状态。 -通过Promise方式准备播放视频。 +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**返回值:** +| 名称 | 类型 | 说明 | +| -------- | ------ | -------------- | +| idle | string | 视频播放空闲。 | +| prepared | string | 视频播放准备。 | +| playing | string | 视频正在播放。 | +| paused | string | 视频暂停播放。 | +| stopped | string | 视频播放停止。 | +| error | string | 错误状态。 | -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 准备播放视频的Promise返回值。 | +## AudioRecorder(deprecated) -**示例:** +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorder](#avrecorder9)替代。 -```js -videoPlayer.prepare().then(() => { - console.info('prepare success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` +音频录制管理类,用于录制音频媒体。在调用AudioRecorder的方法前,需要先通过[createAudioRecorder()](#mediacreateaudiorecorder) 构建一个AudioRecorder实例。 -### play8+ +音频录制demo可参考:[音频录制开发指导](../../media/audio-recorder.md) -play(callback: AsyncCallback\): void; +### prepare -通过回调方式开始播放视频。 +prepare(config: AudioRecorderConfig): void -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +录音准备。 + +**需要权限:** ohos.permission.MICROPHONE + +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 开始播放视频的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------------------- | ---- | ------------------------------------------------------------ | +| config | [AudioRecorderConfig](#audiorecorderconfigdeprecated) | 是 | 配置录音的相关参数,包括音频输出URI、编码格式、采样率、声道数、输出格式等。 | **示例:** ```js -videoPlayer.play((err) => { - if (err == null) { - console.info('play success!'); - } else { - console.info('play fail!'); - } +let audioRecorderConfig = { + audioEncoder : media.AudioEncoder.AAC_LC, + audioEncodeBitRate : 22050, + audioSampleRate : 22050, + numberOfChannels : 2, + format : media.AudioOutputFormat.AAC_ADTS, + uri : 'fd://1', // 文件需先由调用者创建,并给予适当的权限 + location : { latitude : 30, longitude : 130}, +} +audioRecorder.on('prepare', () => { //设置'prepare'事件回调 + console.log('prepare success'); }); +audioRecorder.prepare(audioRecorderConfig); ``` -### play8+ - -play(): Promise\; -通过Promise方式开始播放视频。 +### start -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +start(): void -**返回值:** +开始录制,需在[prepare](#audiorecorder_on)事件成功触发后,才能调用start方法。 -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 开始播放视频的Promise返回值。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -videoPlayer.play().then(() => { - console.info('play success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +audioRecorder.on('start', () => { //设置'start'事件回调 + console.log('audio recorder start success'); }); +audioRecorder.start(); ``` -### pause8+ - -pause(callback: AsyncCallback\): void - -通过回调方式暂停播放视频。 +### pause -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +pause():void -**参数:** +暂停录制,需要在[start](#audiorecorder_on)事件成功触发后,才能调用pause方法。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 暂停播放视频的回调方法。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -videoPlayer.pause((err) => { - if (err == null) { - console.info('pause success!'); - } else { - console.info('pause fail!'); - } +audioRecorder.on('pause', () => { //设置'pause'事件回调 + console.log('audio recorder pause success'); }); +audioRecorder.pause(); ``` -### pause8+ - -pause(): Promise\ - -通过Promise方式暂停播放视频。 +### resume -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +resume():void -**返回值:** +恢复录制,需要在[pause](#audiorecorder_on)事件成功触发后,才能调用resume方法。 -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 暂停播放视频的Promise返回值。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -videoPlayer.pause().then(() => { - console.info('pause success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +audioRecorder.on('resume', () => { //设置'resume'事件回调 + console.log('audio recorder resume success'); }); +audioRecorder.resume(); ``` -### stop8+ - -stop(callback: AsyncCallback\): void - -通过回调方式停止播放视频。 +### stop -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +stop(): void -**参数:** +停止录音。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 停止播放视频的回调方法。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -videoPlayer.stop((err) => { - if (err == null) { - console.info('stop success!'); - } else { - console.info('stop fail!'); - } +audioRecorder.on('stop', () => { //设置'stop'事件回调 + console.log('audio recorder stop success'); }); +audioRecorder.stop(); ``` -### stop8+ - -stop(): Promise\ - -通过Promise方式停止播放视频。 +### release -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +release(): void -**返回值:** +释放录音资源。 -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 停止播放视频的Promise返回值。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -videoPlayer.stop().then(() => { - console.info('stop success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +audioRecorder.on('release', () => { //设置'release'事件回调 + console.log('audio recorder release success'); }); +audioRecorder.release(); +audioRecorder = undefined; ``` -### reset8+ - -reset(callback: AsyncCallback\): void +### reset -通过回调方式重置播放视频。 +reset(): void -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +重置录音。 -**参数:** +进行重置录音之前,需要先调用[stop()](#audiorecorder_stop)停止录音。重置录音之后,需要调用[prepare()](#audiorecorder_prepare)设置录音参数项,才能再次进行录音。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 切换播放视频的回调方法。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -videoPlayer.reset((err) => { - if (err == null) { - console.info('reset success!'); - } else { - console.info('reset fail!'); - } +audioRecorder.on('reset', () => { //设置'reset'事件回调 + console.log('audio recorder reset success'); }); +audioRecorder.reset(); ``` -### reset8+ +### on('prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset') -reset(): Promise\ +on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void -通过Promise方式重置播放视频。 +开始订阅音频录制事件。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -**返回值:** +**参数:** -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 切换播放视频的Promise返回值。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 录制事件回调类型,支持的事件包括:'prepare' \| 'start' \| 'pause' \| ’resume‘ \| 'stop' \| 'release' \| 'reset'。
- 'prepare' :完成[prepare](#audiorecorder_prepare)调用,音频录制参数设置完成,触发该事件。
- 'start' :完成[start](#audiorecorder_start)调用,音频录制开始,触发该事件。
- 'pause': 完成[pause](#audiorecorder_pause)调用,音频暂停录制,触发该事件。
- 'resume': 完成[resume](#audiorecorder_resume)调用,音频恢复录制,触发该事件。
- 'stop' :完成[stop](#audiorecorder_stop)调用,音频停止录制,触发该事件。
- 'release' :完成[release](#audiorecorder_release)调用,音频释放录制资源,触发该事件。
- 'reset':完成[reset](#audiorecorder_reset)调用,音频重置为初始状态,触发该事件。 | +| callback | ()=>void | 是 | 录制事件回调方法。 | **示例:** ```js -videoPlayer.reset().then(() => { - console.info('reset success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +let audioRecorder = media.createAudioRecorder(); // 创建一个音频录制实例 +let audioRecorderConfig = { + audioEncoder : media.AudioEncoder.AAC_LC, + audioEncodeBitRate : 22050, + audioSampleRate : 22050, + numberOfChannels : 2, + format : media.AudioOutputFormat.AAC_ADTS, + uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + location : { latitude : 30, longitude : 130}, +} +audioRecorder.on('error', (error) => { // 设置'error'事件回调 + console.info(`audio error called, error: ${error}`); +}); +audioRecorder.on('prepare', () => { // 设置'prepare'事件回调 + console.log('prepare success'); + audioRecorder.start(); // 开始录制,并触发'start'事件回调 +}); +audioRecorder.on('start', () => { // 设置'start'事件回调 + console.log('audio recorder start success'); +}); +audioRecorder.on('pause', () => { // 设置'pause'事件回调 + console.log('audio recorder pause success'); +}); +audioRecorder.on('resume', () => { // 设置'resume'事件回调 + console.log('audio recorder resume success'); +}); +audioRecorder.on('stop', () => { // 设置'stop'事件回调 + console.log('audio recorder stop success'); +}); +audioRecorder.on('release', () => { // 设置'release'事件回调 + console.log('audio recorder release success'); +}); +audioRecorder.on('reset', () => { // 设置'reset'事件回调 + console.log('audio recorder reset success'); }); +audioRecorder.prepare(audioRecorderConfig) // 设置录制参数 ,并触发'prepare'事件回调 ``` -### seek8+ +### on('error') -seek(timeMs: number, callback: AsyncCallback\): void +on(type: 'error', callback: ErrorCallback): void -通过回调方式跳转到指定播放位置,默认跳转到指定时间点的上一个关键帧。 +开始订阅音频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ------------------------------------------------------------ | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | -| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':音频录制过程中发生错误,触发该事件。 | +| callback | ErrorCallback | 是 | 录制错误事件回调方法。 | **示例:** ```js -let seekTime = 5000; -videoPlayer.seek(seekTime, (err, result) => { - if (err == null) { - console.info('seek success!'); - } else { - console.info('seek fail!'); - } +let audioRecorderConfig = { + audioEncoder : media.AudioEncoder.AAC_LC, + audioEncodeBitRate : 22050, + audioSampleRate : 22050, + numberOfChannels : 2, + format : media.AudioOutputFormat.AAC_ADTS, + uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + location : { latitude : 30, longitude : 130}, +} +audioRecorder.on('error', (error) => { // 设置'error'事件回调 + console.info(`audio error called, error: ${error}`); }); +audioRecorder.prepare(audioRecorderConfig); // prepare不设置参数,触发'error'事件 ``` -### seek8+ +## AudioRecorderConfig(deprecated) -seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\): void +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 -通过回调方式跳转到指定播放位置。 +表示音频的录音配置。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -**参数:** +| 名称 | 类型 | 必填 | 说明 | +| ----------------------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | +| audioEncoder | [AudioEncoder](#audioencoderdeprecated) | 否 | 音频编码格式,默认设置为AAC_LC。
**说明:** 从API version 8开始废弃,建议使用audioEncoderMime替代。 | +| audioEncodeBitRate | number | 否 | 音频编码比特率,默认值为48000。 | +| audioSampleRate | number | 否 | 音频采集采样率,默认值为48000。 | +| numberOfChannels | number | 否 | 音频采集声道数,默认值为2。 | +| format | [AudioOutputFormat](#audiooutputformatdeprecated) | 否 | 音频输出封装格式,默认设置为MPEG_4。
**说明:** 从API version 8开始废弃,建议使用fileFormat替代。 | +| location | [Location](#location) | 否 | 音频采集的地理位置。 | +| uri | string | 是 | 音频输出URI:fd://xx (fd number)
![](figures/zh-cn_image_url.png)
文件需要由调用者创建,并赋予适当的权限。 | +| audioEncoderMime8+ | [CodecMimeType](#codecmimetype8) | 否 | 音频编码格式。 | +| fileFormat8+ | [ContainerFormatType](#containerformattype8) | 否 | 音频编码格式。 | -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ------------------------------------------------------------ | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | -| mode | [SeekMode](#seekmode8) | 是 | 跳转模式。 | -| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | +## AudioEncoder(deprecated) -**示例:** +> **说明:** +> 从API version 6开始支持,从API version 8开始废弃,建议使用[CodecMimeType](#codecmimetype8)替代。 -```js -import media from '@ohos.multimedia.media' -let seekTime = 5000; -videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC, (err, result) => { - if (err == null) { - console.info('seek success!'); - } else { - console.info('seek fail!'); - } -}); -``` +表示音频编码格式的枚举。 -### seek8+ +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -seek(timeMs: number, mode?:SeekMode): Promise\ +| 名称 | 值 | 说明 | +| ------- | ---- | ------------------------------------------------------------ | +| DEFAULT | 0 | 默认编码格式。
仅做接口定义,暂不支持使用。 | +| AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | +| AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | +| AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)编码格式。 | +| HE_AAC | 4 | HE_AAC(High-Efficiency Advanced Audio Coding)编码格式。
仅做接口定义,暂不支持使用。 | -通过Promise方式跳转到指定播放位置,如果没有设置mode则跳转到指定时间点的上一个关键帧。 +## AudioOutputFormat(deprecated) -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +> **说明:** +> 从API version 6开始支持,从API version 8 开始废弃,建议使用[ContainerFormatType](#containerformattype8)替代。 -**参数:** +表示音频封装格式的枚举。 -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ---------------------- | ---- | ------------------------------------------------------------ | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | -| mode | [SeekMode](#seekmode8) | 否 | 跳转模式。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -**返回值:** +| 名称 | 值 | 说明 | +| -------- | ---- | ------------------------------------------------------------ | +| DEFAULT | 0 | 默认封装格式。
仅做接口定义,暂不支持使用。 | +| MPEG_4 | 2 | 封装为MPEG-4格式。 | +| AMR_NB | 3 | 封装为AMR_NB格式。
仅做接口定义,暂不支持使用。 | +| AMR_WB | 4 | 封装为AMR_WB格式。
仅做接口定义,暂不支持使用。 | +| AAC_ADTS | 6 | 封装为ADTS(Audio Data Transport Stream)格式,是AAC音频的传输流格式。 | -| 类型 | 说明 | -| ---------------- | ------------------------------------------- | -| Promise\ | 跳转到指定播放位置的Promise返回值,单位ms。 | +## VideoRecorder(deprecated) -**示例:** +> **说明:** +> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorder](#avrecorder9)替代。 -```js -import media from '@ohos.multimedia.media' -let seekTime = 5000; -videoPlayer.seek(seekTime).then((seekDoneTime) => { // seekDoneTime表示seek完成后的时间点 - console.info('seek success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); +视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorder()](#mediacreatevideorecorder9)构建一个[VideoRecorder](#videorecorder9)实例。 -videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC).then((seekDoneTime) => { - console.info('seek success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` +视频录制demo可参考:[视频录制开发指导](../../media/video-recorder.md) -### setVolume8+ +### 属性 -setVolume(vol: number, callback: AsyncCallback\): void +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -通过回调方式设置音量。 +**系统接口:** 该接口为系统接口 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | -------------------------------------- | ---- | ---- | ---------------- | +| state9+ | [VideoRecordState](#videorecordstate9) | 是 | 否 | 视频录制的状态。 | + +### prepare9+ + +prepare(config: VideoRecorderConfig, callback: AsyncCallback\): void; + +异步方式进行视频录制的参数设置。通过注册回调函数获取返回值。 + +**需要权限:** ohos.permission.MICROPHONE + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------------------------------------------ | -| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | -| callback | AsyncCallback\ | 是 | 设置音量的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------------------- | ---- | ----------------------------------- | +| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | +| callback | AsyncCallback\ | 是 | 异步视频录制prepare方法的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 201 | Permission denied. Return by callback. | +| 401 | Parameter error. Return by callback. | +| 5400102 | Operation not allowed. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -let vol = 0.5; -videoPlayer.setVolume(vol, (err, result) => { +let videoProfile = { + audioBitrate : 48000, + audioChannels : 2, + audioCodec : 'audio/mp4a-latm', + audioSampleRate : 48000, + fileFormat : 'mp4', + videoBitrate : 48000, + videoCodec : 'video/mp4v-es', + videoFrameWidth : 640, + videoFrameHeight : 480, + videoFrameRate : 30 +} + +let videoConfig = { + audioSourceType : 1, + videoSourceType : 0, + profile : videoProfile, + url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + orientationHint : 0, + location : { latitude : 30, longitude : 130 }, +} + +// asyncallback +videoRecorder.prepare(videoConfig, (err) => { if (err == null) { - console.info('setVolume success!'); + console.info('prepare success'); } else { - console.info('setVolume fail!'); + console.info('prepare failed and error is ' + err.message); } -}); +}) ``` -### setVolume8+ +### prepare9+ -setVolume(vol: number): Promise\ +prepare(config: VideoRecorderConfig): Promise\; -通过Promise方式设置音量。 +异步方式进行视频录制的参数设置。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**需要权限:** ohos.permission.MICROPHONE + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------------------------------------------------------------ | -| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------------------- | ---- | ------------------------ | +| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | **返回值:** -| 类型 | 说明 | -| -------------- | ------------------------- | -| Promise\ | 设置音量的Promise返回值。 | +| 类型 | 说明 | +| -------------- | ---------------------------------------- | +| Promise\ | 异步视频录制prepare方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 201 | Permission denied. Return by promise. | +| 401 | Parameter error. Return by promise. | +| 5400102 | Operation not allowed. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -let vol = 0.5; -videoPlayer.setVolume(vol).then(() => { - console.info('setVolume success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +let videoProfile = { + audioBitrate : 48000, + audioChannels : 2, + audioCodec : 'audio/mp4a-latm', + audioSampleRate : 48000, + fileFormat : 'mp4', + videoBitrate : 48000, + videoCodec : 'video/mp4v-es', + videoFrameWidth : 640, + videoFrameHeight : 480, + videoFrameRate : 30 +} + +let videoConfig = { + audioSourceType : 1, + videoSourceType : 0, + profile : videoProfile, + url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + orientationHint : 0, + location : { latitude : 30, longitude : 130 }, +} + +// promise +videoRecorder.prepare(videoConfig).then(() => { + console.info('prepare success'); +}).catch((err) => { + console.info('prepare failed and catch error is ' + err.message); }); ``` -### release8+ +### getInputSurface9+ + +getInputSurface(callback: AsyncCallback\): void; + +异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 -release(callback: AsyncCallback\): void +应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 -通过回调方式释放视频资源。 +只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 释放视频资源的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | --------------------------- | +| callback | AsyncCallback\ | 是 | 异步获得surface的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -videoPlayer.release((err) => { +// asyncallback +let surfaceID = null; // 传递给外界的surfaceID +videoRecorder.getInputSurface((err, surfaceId) => { if (err == null) { - console.info('release success!'); + console.info('getInputSurface success'); + surfaceID = surfaceId; } else { - console.info('release fail!'); + console.info('getInputSurface failed and error is ' + err.message); } }); ``` -### release8+ +### getInputSurface9+ -release(): Promise\ +getInputSurface(): Promise\; -通过Promise方式释放视频资源。 + 异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 + +只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **返回值:** -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 释放视频资源的Promise返回值。 | +| 类型 | 说明 | +| ---------------- | -------------------------------- | +| Promise\ | 异步获得surface的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -videoPlayer.release().then(() => { - console.info('release success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +// promise +let surfaceID = null; // 传递给外界的surfaceID +videoRecorder.getInputSurface().then((surfaceId) => { + console.info('getInputSurface success'); + surfaceID = surfaceId; +}).catch((err) => { + console.info('getInputSurface failed and catch error is ' + err.message); }); ``` -### getTrackDescription8+ +### start9+ -getTrackDescription(callback: AsyncCallback\>): void +start(callback: AsyncCallback\): void; -通过回调方式获取视频轨道信息。 +异步方式开始视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | -| callback | AsyncCallback\> | 是 | 视频轨道信息MediaDescription数组回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步开始视频录制的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -function printfDescription(obj) { - for (let item in obj) { - let property = obj[item]; - console.info('video key is ' + item); - console.info('video value is ' + property); - } -} - -videoPlayer.getTrackDescription((error, arrList) => { - if ((arrList) != null) { - for (let i = 0; i < arrList.length; i++) { - printfDescription(arrList[i]); - } +// asyncallback +videoRecorder.start((err) => { + if (err == null) { + console.info('start videorecorder success'); } else { - console.log(`video getTrackDescription fail, error:${error}`); + console.info('start videorecorder failed and error is ' + err.message); } }); ``` -### getTrackDescription8+ - -getTrackDescription(): Promise\> - -通过Promise方式获取视频轨道信息。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer - -**返回值:** +### start9+ -| 类型 | 说明 | -| ------------------------------------------------------ | ----------------------------------------------- | -| Promise> | 视频轨道信息MediaDescription数组Promise返回值。 | +start(): Promise\; -**示例:** +异步方式开始视频录制。通过Promise获取返回值。 -```js -function printfDescription(obj) { - for (let item in obj) { - let property = obj[item]; - console.info('video key is ' + item); - console.info('video value is ' + property); - } -} +在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 -let arrayDescription; -videoPlayer.getTrackDescription().then((arrList) => { - if (arrList != null) { - arrayDescription = arrList; - } else { - console.log('video getTrackDescription fail'); - } -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -for (let i = 0; i < arrayDescription.length; i++) { - printfDescription(arrayDescription[i]); -} -``` +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -### setSpeed8+ +**系统接口:** 该接口为系统接口 -setSpeed(speed:number, callback: AsyncCallback\): void +**返回值:** -通过回调方式设置播放速度。 +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步开始视频录制方法的Promise返回值。 | -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**错误码:** -**参数:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ---------------------------------------------------------- | -| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | -| callback | AsyncCallback\ | 是 | 设置播放速度的回调方法。 | +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -import media from '@ohos.multimedia.media' -let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; - -videoPlayer.setSpeed(speed, (err, result) => { - if (err == null) { - console.info('setSpeed success!'); - } else { - console.info('setSpeed fail!'); - } +// promise +videoRecorder.start().then(() => { + console.info('start videorecorder success'); +}).catch((err) => { + console.info('start videorecorder failed and catch error is ' + err.message); }); ``` -### setSpeed8+ +### pause9+ -setSpeed(speed:number): Promise\ +pause(callback: AsyncCallback\): void; -通过Promise方式设置播放速度。 +异步方式暂停视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ---------------------------------------------------------- | -| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步暂停视频录制的回调方法。 | -**返回值:** +**错误码:** -| 类型 | 说明 | -| ---------------- | ------------------------------------------------------------ | -| Promise\ | 播放速度Promise返回值,具体见[PlaybackSpeed](#playbackspeed8)。 | +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -import media from '@ohos.multimedia.media' -let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; - -videoPlayer.setSpeed(speed).then(() => { - console.info('setSpeed success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +// asyncallback +videoRecorder.pause((err) => { + if (err == null) { + console.info('pause videorecorder success'); + } else { + console.info('pause videorecorder failed and error is ' + err.message); + } }); ``` -### on('playbackCompleted')8+ - -on(type: 'playbackCompleted', callback: Callback\): void - -开始监听视频播放完成事件。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +### pause9+ -**参数:** +pause(): Promise\; -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ----------------------------------------------------------- | -| type | string | 是 | 视频播放完成事件回调类型,支持的事件:'playbackCompleted'。 | -| callback | function | 是 | 视频播放完成事件回调方法。 | +异步方式暂停视频录制。通过Promise获取返回值。 -**示例:** +在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 -```js -videoPlayer.on('playbackCompleted', () => { - console.info('playbackCompleted success!'); -}); -``` +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -### on('bufferingUpdate')8+ +**系统接口:** 该接口为系统接口 -on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void +**返回值:** -开始监听视频缓存更新事件。仅网络播放支持该订阅事件。 +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步暂停视频录制方法的Promise返回值。 | -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**错误码:** -**参数:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 视频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | -| callback | function | 是 | 视频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -videoPlayer.on('bufferingUpdate', (infoType, value) => { - console.log('video bufferingInfo type: ' + infoType); - console.log('video bufferingInfo value: ' + value); +// promise +videoRecorder.pause().then(() => { + console.info('pause videorecorder success'); +}).catch((err) => { + console.info('pause videorecorder failed and catch error is ' + err.message); }); ``` -### on('startRenderFrame')8+ +### resume9+ -on(type: 'startRenderFrame', callback: Callback\): void +resume(callback: AsyncCallback\): void; -开始监听视频播放首帧送显上报事件。 +异步方式恢复视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 视频播放首帧送显上报事件回调类型,支持的事件:'startRenderFrame'。 | -| callback | Callback\ | 是 | 视频播放首帧送显上报事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步恢复视频录制的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -videoPlayer.on('startRenderFrame', () => { - console.info('startRenderFrame success!'); +// asyncallback +videoRecorder.resume((err) => { + if (err == null) { + console.info('resume videorecorder success'); + } else { + console.info('resume videorecorder failed and error is ' + err.message); + } }); ``` -### on('videoSizeChanged')8+ +### resume9+ -on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void +resume(): Promise\; -开始监听视频播放宽高变化事件。 +异步方式恢复视频录制。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**参数:** +**系统接口:** 该接口为系统接口 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 视频播放宽高变化事件回调类型,支持的事件:'videoSizeChanged'。 | -| callback | function | 是 | 视频播放宽高变化事件回调方法,width表示宽,height表示高。 | +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步恢复视频录制方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -videoPlayer.on('videoSizeChanged', (width, height) => { - console.log('video width is: ' + width); - console.log('video height is: ' + height); +// promise +videoRecorder.resume().then(() => { + console.info('resume videorecorder success'); +}).catch((err) => { + console.info('resume videorecorder failed and catch error is ' + err.message); }); ``` -### on('error')8+ +### stop9+ -on(type: 'error', callback: ErrorCallback): void +stop(callback: AsyncCallback\): void; -开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 +异步方式停止视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -**参数:** +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':视频播放中发生错误,触发该事件。 | -| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | +**系统接口:** 该接口为系统接口 -**示例:** +**参数:** -```js -videoPlayer.on('error', (error) => { // 设置'error'事件回调 - console.info(`video error called, error: ${error}`); -}); -videoPlayer.url = 'fd://error'; //设置错误的播放地址,触发'error'事件 -``` +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步停止视频录制的回调方法。 | -## VideoPlayState(deprecated) +**错误码:** -视频播放的状态机,可通过state属性获取当前状态。 +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**示例:** -| 名称 | 类型 | 说明 | -| -------- | ------ | -------------- | -| idle | string | 视频播放空闲。 | -| prepared | string | 视频播放准备。 | -| playing | string | 视频正在播放。 | -| paused | string | 视频暂停播放。 | -| stopped | string | 视频播放停止。 | -| error | string | 错误状态。 | +```js +// asyncallback +videoRecorder.stop((err) => { + if (err == null) { + console.info('stop videorecorder success'); + } else { + console.info('stop videorecorder failed and error is ' + err.message); + } +}); +``` -## AudioRecorder(deprecated) +### stop9+ -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorder](#avrecorder9)替代。 +stop(): Promise\; -音频录制管理类,用于录制音频媒体。在调用AudioRecorder的方法前,需要先通过[createAudioRecorder()](#mediacreateaudiorecorder) 构建一个AudioRecorder实例。 +异步方式停止视频录制。通过Promise获取返回值。 -音频录制demo可参考:[音频录制开发指导](../../media/audio-recorder.md) +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -### prepare +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -prepare(config: AudioRecorderConfig): void +**系统接口:** 该接口为系统接口 -录音准备。 +**返回值:** -**需要权限:** ohos.permission.MICROPHONE +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步停止视频录制方法的Promise返回值。 | -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**错误码:** -**参数:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------------------------------------------- | ---- | ------------------------------------------------------------ | -| config | [AudioRecorderConfig](#audiorecorderconfigdeprecated) | 是 | 配置录音的相关参数,包括音频输出URI、编码格式、采样率、声道数、输出格式等。 | +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -let audioRecorderConfig = { - audioEncoder : media.AudioEncoder.AAC_LC, - audioEncodeBitRate : 22050, - audioSampleRate : 22050, - numberOfChannels : 2, - format : media.AudioOutputFormat.AAC_ADTS, - uri : 'fd://1', // 文件需先由调用者创建,并给予适当的权限 - location : { latitude : 30, longitude : 130}, -} -audioRecorder.on('prepare', () => { //设置'prepare'事件回调 - console.log('prepare success'); +// promise +videoRecorder.stop().then(() => { + console.info('stop videorecorder success'); +}).catch((err) => { + console.info('stop videorecorder failed and catch error is ' + err.message); }); -audioRecorder.prepare(audioRecorderConfig); ``` +### release9+ -### start - -start(): void +release(callback: AsyncCallback\): void; -开始录制,需在[prepare](#audiorecorder_on)事件成功触发后,才能调用start方法。 +异步方式释放视频录制资源。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**示例:** +**系统接口:** 该接口为系统接口 -```js -audioRecorder.on('start', () => { //设置'start'事件回调 - console.log('audio recorder start success'); -}); -audioRecorder.start(); -``` +**参数:** -### pause +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | -------------------------------- | +| callback | AsyncCallback\ | 是 | 异步释放视频录制资源的回调方法。 | -pause():void +**错误码:** -暂停录制,需要在[start](#audiorecorder_on)事件成功触发后,才能调用pause方法。 +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400105 | Service died. Return by callback. | **示例:** ```js -audioRecorder.on('pause', () => { //设置'pause'事件回调 - console.log('audio recorder pause success'); +// asyncallback +videoRecorder.release((err) => { + if (err == null) { + console.info('release videorecorder success'); + } else { + console.info('release videorecorder failed and error is ' + err.message); + } }); -audioRecorder.pause(); ``` -### resume +### release9+ -resume():void +release(): Promise\; -恢复录制,需要在[pause](#audiorecorder_on)事件成功触发后,才能调用resume方法。 +异步方式释放视频录制资源。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**示例:** +**系统接口:** 该接口为系统接口 -```js -audioRecorder.on('resume', () => { //设置'resume'事件回调 - console.log('audio recorder resume success'); -}); -audioRecorder.resume(); -``` +**返回值:** -### stop +| 类型 | 说明 | +| -------------- | ----------------------------------------- | +| Promise\ | 异步释放视频录制资源方法的Promise返回值。 | -stop(): void +**错误码:** -停止录音。 +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400105 | Service died. Return by callback. | **示例:** ```js -audioRecorder.on('stop', () => { //设置'stop'事件回调 - console.log('audio recorder stop success'); +// promise +videoRecorder.release().then(() => { + console.info('release videorecorder success'); +}).catch((err) => { + console.info('release videorecorder failed and catch error is ' + err.message); }); -audioRecorder.stop(); ``` -### release +### reset9+ -release(): void +reset(callback: AsyncCallback\): void; -释放录音资源。 +异步方式重置视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -**示例:** +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -```js -audioRecorder.on('release', () => { //设置'release'事件回调 - console.log('audio recorder release success'); -}); -audioRecorder.release(); -audioRecorder = undefined; -``` +**系统接口:** 该接口为系统接口 -### reset +**参数:** -reset(): void +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步重置视频录制的回调方法。 | -重置录音。 +**错误码:** -进行重置录音之前,需要先调用[stop()](#audiorecorder_stop)停止录音。重置录音之后,需要调用[prepare()](#audiorecorder_prepare)设置录音参数项,才能再次进行录音。 +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -audioRecorder.on('reset', () => { //设置'reset'事件回调 - console.log('audio recorder reset success'); +// asyncallback +videoRecorder.reset((err) => { + if (err == null) { + console.info('reset videorecorder success'); + } else { + console.info('reset videorecorder failed and error is ' + err.message); + } }); -audioRecorder.reset(); ``` -### on('prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset') +### reset9+ -on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void +reset(): Promise\; -开始订阅音频录制事件。 +异步方式重置视频录制。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -**参数:** +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 录制事件回调类型,支持的事件包括:'prepare' \| 'start' \| 'pause' \| ’resume‘ \| 'stop' \| 'release' \| 'reset'。
- 'prepare' :完成[prepare](#audiorecorder_prepare)调用,音频录制参数设置完成,触发该事件。
- 'start' :完成[start](#audiorecorder_start)调用,音频录制开始,触发该事件。
- 'pause': 完成[pause](#audiorecorder_pause)调用,音频暂停录制,触发该事件。
- 'resume': 完成[resume](#audiorecorder_resume)调用,音频恢复录制,触发该事件。
- 'stop' :完成[stop](#audiorecorder_stop)调用,音频停止录制,触发该事件。
- 'release' :完成[release](#audiorecorder_release)调用,音频释放录制资源,触发该事件。
- 'reset':完成[reset](#audiorecorder_reset)调用,音频重置为初始状态,触发该事件。 | -| callback | ()=>void | 是 | 录制事件回调方法。 | +**系统接口:** 该接口为系统接口 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步重置视频录制方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | -------------------------------- | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -let audioRecorder = media.createAudioRecorder(); // 创建一个音频录制实例 -let audioRecorderConfig = { - audioEncoder : media.AudioEncoder.AAC_LC, - audioEncodeBitRate : 22050, - audioSampleRate : 22050, - numberOfChannels : 2, - format : media.AudioOutputFormat.AAC_ADTS, - uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - location : { latitude : 30, longitude : 130}, -} -audioRecorder.on('error', (error) => { // 设置'error'事件回调 - console.info(`audio error called, error: ${error}`); -}); -audioRecorder.on('prepare', () => { // 设置'prepare'事件回调 - console.log('prepare success'); - audioRecorder.start(); // 开始录制,并触发'start'事件回调 -}); -audioRecorder.on('start', () => { // 设置'start'事件回调 - console.log('audio recorder start success'); -}); -audioRecorder.on('pause', () => { // 设置'pause'事件回调 - console.log('audio recorder pause success'); -}); -audioRecorder.on('resume', () => { // 设置'resume'事件回调 - console.log('audio recorder resume success'); -}); -audioRecorder.on('stop', () => { // 设置'stop'事件回调 - console.log('audio recorder stop success'); -}); -audioRecorder.on('release', () => { // 设置'release'事件回调 - console.log('audio recorder release success'); -}); -audioRecorder.on('reset', () => { // 设置'reset'事件回调 - console.log('audio recorder reset success'); +// promise +videoRecorder.reset().then(() => { + console.info('reset videorecorder success'); +}).catch((err) => { + console.info('reset videorecorder failed and catch error is ' + err.message); }); -audioRecorder.prepare(audioRecorderConfig) // 设置录制参数 ,并触发'prepare'事件回调 ``` -### on('error') +### on('error')9+ on(type: 'error', callback: ErrorCallback): void -开始订阅音频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 +开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':音频录制过程中发生错误,触发该事件。 | +| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':视频录制过程中发生错误,触发该事件。 | | callback | ErrorCallback | 是 | 录制错误事件回调方法。 | +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | + **示例:** ```js -let audioRecorderConfig = { - audioEncoder : media.AudioEncoder.AAC_LC, - audioEncodeBitRate : 22050, - audioSampleRate : 22050, - numberOfChannels : 2, - format : media.AudioOutputFormat.AAC_ADTS, - uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - location : { latitude : 30, longitude : 130}, -} -audioRecorder.on('error', (error) => { // 设置'error'事件回调 +// 当获取videoRecordState接口出错时通过此订阅事件上报 +videoRecorder.on('error', (error) => { // 设置'error'事件回调 console.info(`audio error called, error: ${error}`); -}); -audioRecorder.prepare(audioRecorderConfig); // prepare不设置参数,触发'error'事件 +}) ``` -## AudioRecorderConfig(deprecated) +## VideoRecordState(deprecated) + +视频录制的状态机。可通过state属性获取当前状态。 > **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 +> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 -表示音频的录音配置。 +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统接口:** 该接口为系统接口 -| 名称 | 类型 | 必填 | 说明 | -| ----------------------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | -| audioEncoder | [AudioEncoder](#audioencoderdeprecated) | 否 | 音频编码格式,默认设置为AAC_LC。
**说明:** 从API version 8开始废弃,建议使用audioEncoderMime替代。 | -| audioEncodeBitRate | number | 否 | 音频编码比特率,默认值为48000。 | -| audioSampleRate | number | 否 | 音频采集采样率,默认值为48000。 | -| numberOfChannels | number | 否 | 音频采集声道数,默认值为2。 | -| format | [AudioOutputFormat](#audiooutputformatdeprecated) | 否 | 音频输出封装格式,默认设置为MPEG_4。
**说明:** 从API version 8开始废弃,建议使用fileFormat替代。 | -| location | [Location](#location) | 否 | 音频采集的地理位置。 | -| uri | string | 是 | 音频输出URI:fd://xx (fd number)
![](figures/zh-cn_image_url.png)
文件需要由调用者创建,并赋予适当的权限。 | -| audioEncoderMime8+ | [CodecMimeType](#codecmimetype8) | 否 | 音频编码格式。 | -| fileFormat8+ | [ContainerFormatType](#containerformattype8) | 否 | 音频编码格式。 | +| 名称 | 类型 | 说明 | +| -------- | ------ | ---------------------- | +| idle | string | 视频录制空闲。 | +| prepared | string | 视频录制参数设置完成。 | +| playing | string | 视频正在录制。 | +| paused | string | 视频暂停录制。 | +| stopped | string | 视频录制停止。 | +| error | string | 错误状态。 | -## AudioEncoder(deprecated) +## VideoRecorderConfig(deprecated)
+ +表示视频录制的参数设置。 > **说明:** -> 从API version 6开始支持,从API version 8开始废弃,建议使用[CodecMimeType](#codecmimetype8)替代。 +> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 -表示音频编码格式的枚举。 +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统接口:** 该接口为系统接口 -| 名称 | 值 | 说明 | -| ------- | ---- | ------------------------------------------------------------ | -| DEFAULT | 0 | 默认编码格式。
仅做接口定义,暂不支持使用。 | -| AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | -| AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | -| AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)编码格式。 | -| HE_AAC | 4 | HE_AAC(High-Efficiency Advanced Audio Coding)编码格式。
仅做接口定义,暂不支持使用。 | +| 名称 | 类型 | 必填 | 说明 | +| --------------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | +| audioSourceType | [AudioSourceType](#audiosourcetype9) | 是 | 视频录制的音频源类型。 | +| videoSourceType | [VideoSourceType](#videosourcetype9) | 是 | 视频录制的视频源类型。 | +| profile | [VideoRecorderProfile](#videorecorderprofile9) | 是 | 视频录制的profile。 | +| rotation | number | 否 | 录制视频的旋转角度。 | +| location | [Location](#location) | 否 | 录制视频的地理位置。 | +| url | string | 是 | 视频输出URL:fd://xx (fd number)
![](figures/zh-cn_image_url.png) | -## AudioOutputFormat(deprecated) +## VideoRecorderProfile(deprecated)
+ +视频录制的配置文件。 > **说明:** -> 从API version 6开始支持,从API version 8 开始废弃,建议使用[ContainerFormatType](#containerformattype8)替代。 +> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorderProfile](#avrecorderprofile9)替代。 -表示音频封装格式的枚举。 +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统接口:** 该接口为系统接口 -| 名称 | 值 | 说明 | -| -------- | ---- | ------------------------------------------------------------ | -| DEFAULT | 0 | 默认封装格式。
仅做接口定义,暂不支持使用。 | -| MPEG_4 | 2 | 封装为MPEG-4格式。 | -| AMR_NB | 3 | 封装为AMR_NB格式。
仅做接口定义,暂不支持使用。 | -| AMR_WB | 4 | 封装为AMR_WB格式。
仅做接口定义,暂不支持使用。 | -| AAC_ADTS | 6 | 封装为ADTS(Audio Data Transport Stream)格式,是AAC音频的传输流格式。 | +| 名称 | 类型 | 必填 | 说明 | +| ---------------- | -------------------------------------------- | ---- | ---------------- | +| audioBitrate | number | 是 | 音频编码比特率。 | +| audioChannels | number | 是 | 音频采集声道数。 | +| audioCodec | [CodecMimeType](#codecmimetype8) | 是 | 音频编码格式。 | +| audioSampleRate | number | 是 | 音频采样率。 | +| fileFormat | [ContainerFormatType](#containerformattype8) | 是 | 文件的容器格式。 | +| videoBitrate | number | 是 | 视频编码比特率。 | +| videoCodec | [CodecMimeType](#codecmimetype8) | 是 | 视频编码格式。 | +| videoFrameWidth | number | 是 | 录制视频帧的宽。 | +| videoFrameHeight | number | 是 | 录制视频帧的高。 | +| videoFrameRate | number | 是 | 录制视频帧率。 | \ No newline at end of file -- GitLab From 3c8292d531fc10e4cfd7a2eade8f85dc4fe03068 Mon Sep 17 00:00:00 2001 From: x30034819 Date: Sat, 14 Jan 2023 19:20:34 +0800 Subject: [PATCH 251/383] avplayer avrecorder Signed-off-by: x30034819 Signed-off-by: x30034819 Change-Id: Iec608d2446222c40150949da40a6154d46e23b25 --- .../reference/apis/js-apis-media.md | 3121 ++++++++--------- 1 file changed, 1553 insertions(+), 1568 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 9969373240..76c60fb79b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -174,6 +174,88 @@ media.createAVRecorder().then((recorder) => { }); ``` +## media.createVideoRecorder9+ + +createVideoRecorder(callback: AsyncCallback\): void + +异步方式创建视频录制实例。通过注册回调函数获取返回值。 +一台设备只允许创建一个录制实例。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback<[VideoRecorder](#videorecorder9)> | 是 | 回调函数。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------ | +| 5400101 | No memory. Return by callback. | + +**示例:** + +```js +let videoRecorder + +media.createVideoRecorder((error, video) => { + if (video != null) { + videoRecorder = video; + console.info('video createVideoRecorder success'); + } else { + console.info(`video createVideoRecorder fail, error:${error}`); + } +}); +``` + +## media.createVideoRecorder9+ + +createVideoRecorder(): Promise\ + +异步方式创建视频录制实例。通过Promise获取返回值。 +一台设备只允许创建一个录制实例。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 + +**返回值:** + +| 类型 | 说明 | +| ----------------------------------------- | ------------------------------------------------------------ | +| Promise<[VideoRecorder](#videorecorder9)> | Promise对象。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------- | +| 5400101 | No memory. Return by promise. | + +**示例:** + +```js +let videoRecorder + +media.createVideoRecorder().then((video) => { + if (video != null) { + videoRecorder = video; + console.info('video createVideoRecorder success'); + } else { + console.info('video createVideoRecorder fail'); + } +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` + ## AVErrorCode9+
[媒体错误码](../errorcodes/errorcode-media.md)类型枚举 @@ -2465,128 +2547,97 @@ AVRecorder.off('error'); | latitude | number | 是 | 地理位置的纬度。 | | longitude | number | 是 | 地理位置的经度。 | -## media.createAudioPlayer(deprecated) - -createAudioPlayer(): AudioPlayer - -同步方式创建音频播放实例。 +## VideoRecorder9+ > **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer - -**返回值:** - -| 类型 | 说明 | -| --------------------------- | ------------------------------------------------------------ | -| [AudioPlayer](#audioplayerdeprecated) | 返回AudioPlayer类实例,失败时返回null。可用于音频播放、暂停、停止等操作。 | - -**示例:** +> AVRecorder9+发布后停止维护,建议使用[AVRecorder](#avrecorder9)替代。 -```js -let audioPlayer = media.createAudioPlayer(); -``` - -## media.createVideoPlayer(deprecated) +视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorder()](#mediacreatevideorecorder9)构建一个[VideoRecorder](#videorecorder9)实例。 -createVideoPlayer(callback: AsyncCallback\): void +视频录制demo可参考:[视频录制开发指导](../../media/video-recorder.md) -异步方式创建视频播放实例,通过注册回调函数获取返回值。 +### 属性 -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统接口:** 该接口为系统接口 -**参数:** +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------ | -------------------------------------- | ---- | ---- | ---------------- | +| state9+ | [VideoRecordState](#videorecordstate9) | 是 | 否 | 视频录制的状态。 | -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | -| callback | AsyncCallback<[VideoPlayer](#videoplayerdeprecated)> | 是 | 回调函数。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | +### prepare9+ -**示例:** +prepare(config: VideoRecorderConfig, callback: AsyncCallback\): void; -```js -let videoPlayer +异步方式进行视频录制的参数设置。通过注册回调函数获取返回值。 -media.createVideoPlayer((error, video) => { - if (video != null) { - videoPlayer = video; - console.info('video createVideoPlayer success'); - } else { - console.info(`video createVideoPlayer fail, error:${error}`); - } -}); -``` +**需要权限:** ohos.permission.MICROPHONE -## media.createVideoPlayer(deprecated) +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -createVideoPlayer(): Promise\ +**系统接口:** 该接口为系统接口 -异步方式创建视频播放实例,通过Promise获取返回值。 +**参数:** -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9-1)替代。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------------------------------- | ---- | ----------------------------------- | +| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | +| callback | AsyncCallback\ | 是 | 异步视频录制prepare方法的回调方法。 | -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**错误码:** -**返回值:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 类型 | 说明 | -| ------------------------------------ | ------------------------------------------------------------ | -| Promise<[VideoPlayer](#videoplayerdeprecated)> | Promise对象。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 201 | Permission denied. Return by callback. | +| 401 | Parameter error. Return by callback. | +| 5400102 | Operation not allowed. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -let videoPlayer - -media.createVideoPlayer().then((video) => { - if (video != null) { - videoPlayer = video; - console.info('video createVideoPlayer success'); - } else { - console.info('video createVideoPlayer fail'); - } -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` - -## media.createAudioRecorder(deprecated) - -createAudioRecorder(): AudioRecorder - -创建音频录制的实例来控制音频的录制。 -一台设备只允许创建一个录制实例。 - -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder - -**返回值:** - -| 类型 | 说明 | -| ------------------------------- | ------------------------------------------------------------ | -| [AudioRecorder](#audiorecorderdeprecated) | 返回AudioRecorder类实例,失败时返回null。可用于录制音频媒体。 | +let videoProfile = { + audioBitrate : 48000, + audioChannels : 2, + audioCodec : 'audio/mp4a-latm', + audioSampleRate : 48000, + fileFormat : 'mp4', + videoBitrate : 48000, + videoCodec : 'video/mp4v-es', + videoFrameWidth : 640, + videoFrameHeight : 480, + videoFrameRate : 30 +} -**示例:** +let videoConfig = { + audioSourceType : 1, + videoSourceType : 0, + profile : videoProfile, + url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + orientationHint : 0, + location : { latitude : 30, longitude : 130 }, +} -```js -let audioRecorder = media.createAudioRecorder(); +// asyncallback +videoRecorder.prepare(videoConfig, (err) => { + if (err == null) { + console.info('prepare success'); + } else { + console.info('prepare failed and error is ' + err.message); + } +}) ``` -## media.createVideoRecorder(deprecated) +### prepare9+ -createVideoRecorder(callback: AsyncCallback\): void +prepare(config: VideoRecorderConfig): Promise\; -> **说明:** -> 从API version 9开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 +异步方式进行视频录制的参数设置。通过Promise获取返回值。 -异步方式创建视频录制实例。通过注册回调函数获取返回值。 -一台设备只允许创建一个录制实例。 +**需要权限:** ohos.permission.MICROPHONE **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder @@ -2594,967 +2645,960 @@ createVideoRecorder(callback: AsyncCallback\): void **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------------------------------------- | ---- | ------------------------------------------------------------ | -| callback | AsyncCallback<[VideoRecorder](#videorecorder9)> | 是 | 回调函数。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | -------------------------------------------- | ---- | ------------------------ | +| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | + +**返回值:** + +| 类型 | 说明 | +| -------------- | ---------------------------------------- | +| Promise\ | 异步视频录制prepare方法的Promise返回值。 | **错误码:** 以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 错误码ID | 错误信息 | -| -------- | ------------------------------ | -| 5400101 | No memory. Return by callback. | +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 201 | Permission denied. Return by promise. | +| 401 | Parameter error. Return by promise. | +| 5400102 | Operation not allowed. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -let videoRecorder - -media.createVideoRecorder((error, video) => { - if (video != null) { - videoRecorder = video; - console.info('video createVideoRecorder success'); - } else { - console.info(`video createVideoRecorder fail, error:${error}`); - } +let videoProfile = { + audioBitrate : 48000, + audioChannels : 2, + audioCodec : 'audio/mp4a-latm', + audioSampleRate : 48000, + fileFormat : 'mp4', + videoBitrate : 48000, + videoCodec : 'video/mp4v-es', + videoFrameWidth : 640, + videoFrameHeight : 480, + videoFrameRate : 30 +} + +let videoConfig = { + audioSourceType : 1, + videoSourceType : 0, + profile : videoProfile, + url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + orientationHint : 0, + location : { latitude : 30, longitude : 130 }, +} + +// promise +videoRecorder.prepare(videoConfig).then(() => { + console.info('prepare success'); +}).catch((err) => { + console.info('prepare failed and catch error is ' + err.message); }); ``` -## media.createVideoRecorder(deprecated) +### getInputSurface9+ -createVideoRecorder(): Promise\ +getInputSurface(callback: AsyncCallback\): void; -> **说明:** -> 从API version 9开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 +异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 -异步方式创建视频录制实例。通过Promise获取返回值。 -一台设备只允许创建一个录制实例。 +应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 + +只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 **系统能力:** SystemCapability.Multimedia.Media.VideoRecorder **系统接口:** 该接口为系统接口 -**返回值:** +**参数:** -| 类型 | 说明 | -| ----------------------------------------- | ------------------------------------------------------------ | -| Promise<[VideoRecorder](#videorecorder9)> | Promise对象。异步返回VideoRecorder实例,失败时返回null。可用于录制视频媒体。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | --------------------------- | +| callback | AsyncCallback\ | 是 | 异步获得surface的回调方法。 | **错误码:** 以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 错误码ID | 错误信息 | -| -------- | ----------------------------- | -| 5400101 | No memory. Return by promise. | +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -let videoRecorder - -media.createVideoRecorder().then((video) => { - if (video != null) { - videoRecorder = video; - console.info('video createVideoRecorder success'); - } else { - console.info('video createVideoRecorder fail'); - } -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +// asyncallback +let surfaceID = null; // 传递给外界的surfaceID +videoRecorder.getInputSurface((err, surfaceId) => { + if (err == null) { + console.info('getInputSurface success'); + surfaceID = surfaceId; + } else { + console.info('getInputSurface failed and error is ' + err.message); + } }); ``` -## MediaErrorCode(deprecated) - -媒体服务错误类型枚举。 - -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[媒体错误码](../errorcodes/errorcode-media.md)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.Core +### getInputSurface9+ -| 名称 | 值 | 说明 | -| -------------------------- | ---- | -------------------------------------- | -| MSERR_OK | 0 | 表示操作成功。 | -| MSERR_NO_MEMORY | 1 | 表示申请内存失败,系统可能无可用内存。 | -| MSERR_OPERATION_NOT_PERMIT | 2 | 表示无权限执行此操作。 | -| MSERR_INVALID_VAL | 3 | 表示传入入参无效。 | -| MSERR_IO | 4 | 表示发生IO错误。 | -| MSERR_TIMEOUT | 5 | 表示操作超时。 | -| MSERR_UNKNOWN | 6 | 表示未知错误。 | -| MSERR_SERVICE_DIED | 7 | 表示服务端失效。 | -| MSERR_INVALID_STATE | 8 | 表示在当前状态下,不允许执行此操作。 | -| MSERR_UNSUPPORTED | 9 | 表示在当前版本下,不支持此操作。 | +getInputSurface(): Promise\; -## AudioPlayer(deprecated) + 异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 +应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 -音频播放管理类,用于管理和播放音频媒体。在调用AudioPlayer的方法前,需要先通过[createAudioPlayer()](#mediacreateaudioplayerdeprecated)构建一个AudioPlayer实例。 +只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 -### 属性 +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统接口:** 该接口为系统接口 -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | -| src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**需要权限:** ohos.permission.READ_MEDIA 或 ohos.permission.INTERNET。 | -| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
| -| loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | -| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | -| currentTime | number | 是 | 否 | 音频的当前播放位置,单位为毫秒(ms)。 | -| duration | number | 是 | 否 | 音频时长,单位为毫秒(ms)。 | -| state | [AudioState](#audiostate) | 是 | 否 | 可以查询音频播放的状态,该状态不可作为调用play/pause/stop等状态切换的触发条件。 | +**返回值:** -### play +| 类型 | 说明 | +| ---------------- | -------------------------------- | +| Promise\ | 异步获得surface的Promise返回值。 | -play(): void +**错误码:** -开始播放音频资源,需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -audioPlayer.on('play', () => { //设置'play'事件回调 - console.log('audio play success'); +// promise +let surfaceID = null; // 传递给外界的surfaceID +videoRecorder.getInputSurface().then((surfaceId) => { + console.info('getInputSurface success'); + surfaceID = surfaceId; +}).catch((err) => { + console.info('getInputSurface failed and catch error is ' + err.message); }); -audioPlayer.play(); ``` -### pause +### start9+ -pause(): void +start(callback: AsyncCallback\): void; -暂停播放音频资源。 +异步方式开始视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 -**示例:** +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -```js -audioPlayer.on('pause', () => { //设置'pause'事件回调 - console.log('audio pause success'); -}); -audioPlayer.pause(); -``` +**系统接口:** 该接口为系统接口 -### stop +**参数:** -stop(): void +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步开始视频录制的回调方法。 | -停止播放音频资源。 +**错误码:** -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -audioPlayer.on('stop', () => { //设置'stop'事件回调 - console.log('audio stop success'); +// asyncallback +videoRecorder.start((err) => { + if (err == null) { + console.info('start videorecorder success'); + } else { + console.info('start videorecorder failed and error is ' + err.message); + } }); -audioPlayer.stop(); ``` -### reset7+ - -reset(): void +### start9+ -重置播放音频资源。 +start(): Promise\; -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +异步方式开始视频录制。通过Promise获取返回值。 -**示例:** +在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 -```js -audioPlayer.on('reset', () => { //设置'reset'事件回调 - console.log('audio reset success'); -}); -audioPlayer.reset(); -``` +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -### seek +**系统接口:** 该接口为系统接口 -seek(timeMs: number): void +**返回值:** -跳转到指定播放位置。 +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步开始视频录制方法的Promise返回值。 | -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**错误码:** -**参数:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ----------------------------------------------------------- | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围[0, duration]。 | +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 - if (seekDoneTime == null) { - console.info('audio seek fail'); - return; - } - console.log('audio seek success. seekDoneTime: ' + seekDoneTime); +// promise +videoRecorder.start().then(() => { + console.info('start videorecorder success'); +}).catch((err) => { + console.info('start videorecorder failed and catch error is ' + err.message); }); -audioPlayer.seek(30000); //seek到30000ms的位置 ``` -### setVolume +### pause9+ -setVolume(vol: number): void +pause(callback: AsyncCallback\): void; -设置音量。 +异步方式暂停视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------------------------------------------------------------ | -| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步暂停视频录制的回调方法。 | -**示例:** +**错误码:** -```js -audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 - console.log('audio volumeChange success'); +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | + +**示例:** + +```js +// asyncallback +videoRecorder.pause((err) => { + if (err == null) { + console.info('pause videorecorder success'); + } else { + console.info('pause videorecorder failed and error is ' + err.message); + } }); -audioPlayer.setVolume(1); //设置音量到100% ``` -### release +### pause9+ -release(): void +pause(): Promise\; -释放音频资源。 +异步方式暂停视频录制。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步暂停视频录制方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -audioPlayer.release(); -audioPlayer = undefined; +// promise +videoRecorder.pause().then(() => { + console.info('pause videorecorder success'); +}).catch((err) => { + console.info('pause videorecorder failed and catch error is ' + err.message); +}); ``` -### getTrackDescription8+ +### resume9+ -getTrackDescription(callback: AsyncCallback\>): void +resume(callback: AsyncCallback\): void; -通过回调方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 +异步方式恢复视频录制。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | -| callback | AsyncCallback\> | 是 | 音频轨道信息MediaDescription数组回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步恢复视频录制的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -function printfDescription(obj) { - for (let item in obj) { - let property = obj[item]; - console.info('audio key is ' + item); - console.info('audio value is ' + property); - } -} - -audioPlayer.getTrackDescription((error, arrList) => { - if (arrList != null) { - for (let i = 0; i < arrList.length; i++) { - printfDescription(arrList[i]); - } +// asyncallback +videoRecorder.resume((err) => { + if (err == null) { + console.info('resume videorecorder success'); } else { - console.log(`audio getTrackDescription fail, error:${error}`); + console.info('resume videorecorder failed and error is ' + err.message); } }); ``` -### getTrackDescription8+ +### resume9+ -getTrackDescription(): Promise\> +resume(): Promise\; -通过Promise方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用 +异步方式恢复视频录制。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **返回值:** -| 类型 | 说明 | -| ------------------------------------------------------ | ----------------------------------------------- | -| Promise> | 音频轨道信息MediaDescription数组Promise返回值。 | +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步恢复视频录制方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -function printfDescription(obj) { - for (let item in obj) { - let property = obj[item]; - console.info('audio key is ' + item); - console.info('audio value is ' + property); - } -} -let arrayDescription = null -audioPlayer.getTrackDescription().then((arrList) => { - if (arrList != null) { - arrayDescription = arrList; +// promise +videoRecorder.resume().then(() => { + console.info('resume videorecorder success'); +}).catch((err) => { + console.info('resume videorecorder failed and catch error is ' + err.message); +}); +``` + +### stop9+ + +stop(callback: AsyncCallback\): void; + +异步方式停止视频录制。通过注册回调函数获取返回值。 + +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步停止视频录制的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ------------------------------------------ | +| 5400102 | Operation not allowed. Return by callback. | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | + +**示例:** + +```js +// asyncallback +videoRecorder.stop((err) => { + if (err == null) { + console.info('stop videorecorder success'); } else { - console.log('audio getTrackDescription fail'); + console.info('stop videorecorder failed and error is ' + err.message); } -}).catch((error) => { - console.info(`audio catchCallback, error:${error}`); }); - -for (let i = 0; i < arrayDescription.length; i++) { - printfDescription(arrayDescription[i]); -} ``` -### on('bufferingUpdate')8+ +### stop9+ -on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void +stop(): Promise\; -开始订阅音频缓存更新事件。仅网络播放支持该订阅事件。 +异步方式停止视频录制。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -**参数:** +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 音频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | -| callback | function | 是 | 音频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | +**系统接口:** 该接口为系统接口 + +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步停止视频录制方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | ----------------------------------------- | +| 5400102 | Operation not allowed. Return by promise. | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -audioPlayer.on('bufferingUpdate', (infoType, value) => { - console.log('audio bufferingInfo type: ' + infoType); - console.log('audio bufferingInfo value: ' + value); +// promise +videoRecorder.stop().then(() => { + console.info('stop videorecorder success'); +}).catch((err) => { + console.info('stop videorecorder failed and catch error is ' + err.message); }); ``` - ### on('play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange') +### release9+ -on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void +release(callback: AsyncCallback\): void; -开始订阅音频播放事件。 +异步方式释放视频录制资源。通过注册回调函数获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder + +**系统接口:** 该接口为系统接口 **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放事件回调类型,支持的事件包括:'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange'。
- 'play':完成[play()](#audioplayer_play)调用,音频开始播放,触发该事件。
- 'pause':完成[pause()](#audioplayer_pause)调用,音频暂停播放,触发该事件。
- 'stop':完成[stop()](#audioplayer_stop)调用,音频停止播放,触发该事件。
- 'reset':完成[reset()](#audioplayer_reset)调用,播放器重置,触发该事件。
- 'dataLoad':完成音频数据加载后触发该事件,即src属性设置完成后触发该事件。
- 'finish':完成音频播放后触发该事件。
- 'volumeChange':完成[setVolume()](#audioplayer_setvolume)调用,播放音量改变后触发该事件。 | -| callback | () => void | 是 | 播放事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | -------------------------------- | +| callback | AsyncCallback\ | 是 | 异步释放视频录制资源的回调方法。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400105 | Service died. Return by callback. | **示例:** ```js -import fileio from '@ohos.fileio' - -let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 -audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 - console.info('audio set source success'); - audioPlayer.play(); //开始播放,并触发'play'事件回调 -}); -audioPlayer.on('play', () => { //设置'play'事件回调 - console.info('audio play success'); - audioPlayer.seek(30000); //调用seek方法,并触发'timeUpdate'事件回调 -}); -audioPlayer.on('pause', () => { //设置'pause'事件回调 - console.info('audio pause success'); - audioPlayer.stop(); //停止播放,并触发'stop'事件回调 -}); -audioPlayer.on('reset', () => { //设置'reset'事件回调 - console.info('audio reset success'); - audioPlayer.release(); //释放播放实例资源 - audioPlayer = undefined; -}); -audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 - if (seekDoneTime == null) { - console.info('audio seek fail'); - return; +// asyncallback +videoRecorder.release((err) => { + if (err == null) { + console.info('release videorecorder success'); + } else { + console.info('release videorecorder failed and error is ' + err.message); } - console.info('audio seek success, and seek time is ' + seekDoneTime); - audioPlayer.setVolume(0.5); //设置音量为50%,并触发'volumeChange'事件回调 -}); -audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 - console.info('audio volumeChange success'); - audioPlayer.pause(); //暂停播放,并触发'pause'事件回调 -}); -audioPlayer.on('finish', () => { //设置'finish'事件回调 - console.info('audio play finish'); - audioPlayer.stop(); //停止播放,并触发'stop'事件回调 -}); -audioPlayer.on('error', (error) => { //设置'error'事件回调 - console.info(`audio error called, error: ${error}`); -}); - -// 用户选择视频设置fd(本地播放) -let fdPath = 'fd://'; -// path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/accounts/account_0/appdata" 命令,将其推送到设备上 -let path = '/data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3'; -fileio.open(path).then((fdValue) => { - fdPath = fdPath + '' + fdValue; - console.info('open fd success fd is' + fdPath); -}, (err) => { - console.info('open fd failed err is' + err); -}).catch((err) => { - console.info('open fd failed err is' + err); }); -audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调 ``` -### on('timeUpdate') - -on(type: 'timeUpdate', callback: Callback\): void - -开始订阅音频播放时间更新事件。处于播放状态时,每隔1s上报一次该事件。 - -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer - -**参数:** +### release9+ -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ----------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放事件回调类型,支持的事件包括:'timeUpdate'。
- 'timeUpdate':音频播放时间戳更新,开始播放后自动触发该事件。 | -| callback | Callback\ | 是 | 播放事件回调方法。回调方法入参为更新后的时间戳。 | +release(): Promise\; -**示例:** +异步方式释放视频录制资源。通过Promise获取返回值。 -```js -audioPlayer.on('timeUpdate', (newTime) => { //设置'timeUpdate'事件回调 - if (newTime == null) { - console.info('audio timeUpadate fail'); - return; - } - console.log('audio timeUpadate success. seekDoneTime: ' + newTime); -}); -audioPlayer.play(); //开始播放后,自动触发时间戳更新事件 -``` +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -### on('error') +**系统接口:** 该接口为系统接口 -on(type: 'error', callback: ErrorCallback): void +**返回值:** -开始订阅音频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 +| 类型 | 说明 | +| -------------- | ----------------------------------------- | +| Promise\ | 异步释放视频录制资源方法的Promise返回值。 | -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer +**错误码:** -**参数:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':音频播放中发生错误,触发该事件。 | -| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400105 | Service died. Return by callback. | **示例:** ```js -audioPlayer.on('error', (error) => { //设置'error'事件回调 - console.info(`audio error called, error: ${error}`); +// promise +videoRecorder.release().then(() => { + console.info('release videorecorder success'); +}).catch((err) => { + console.info('release videorecorder failed and catch error is ' + err.message); }); -audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 ``` -## AudioState(deprecated) - -音频播放的状态机。可通过state属性获取当前状态。 - -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer - -| 名称 | 类型 | 说明 | -| ------- | ------ | ---------------------------------------------- | -| idle | string | 音频播放空闲,dataload/reset成功后处于此状态。 | -| playing | string | 音频正在播放,play成功后处于此状态。 | -| paused | string | 音频暂停播放,pause成功后处于此状态。 | -| stopped | string | 音频播放停止,stop/播放结束后处于此状态。 | -| error | string | 错误状态。 | - -## VideoPlayer(deprecated) - -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 - -视频播放管理类,用于管理和播放视频媒体。在调用VideoPlayer的方法前,需要先通过[createVideoPlayer()](#createvideoplayer)构建一个VideoPlayer实例。 - -视频播放demo可参考:[视频播放开发指导](../../media/video-playback.md) +### reset9+ -### 属性 +reset(callback: AsyncCallback\): void; -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +异步方式重置视频录制。通过注册回调函数获取返回值。 -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | -| url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
| -| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 视频媒体文件描述,使用场景:应用中的视频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
视频1(地址偏移:0,字节长度:100)
视频2(地址偏移:101,字节长度:50)
视频3(地址偏移:151,字节长度:150)
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的视频文件: 请使用src=fd://xx
| -| loop8+ | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | -| videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式。 | -| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | -| currentTime8+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms)。 | -| duration8+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),返回-1表示直播模式。 | -| state8+ | [VideoPlayState](#videoplayerstate) | 是 | 否 | 视频播放的状态。 | -| width8+ | number | 是 | 否 | 视频宽,单位为像素(px)。 | -| height8+ | number | 是 | 否 | 视频高,单位为像素(px)。 | +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -### setDisplaySurface8+ +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void +**系统接口:** 该接口为系统接口 -通过回调方式设置SurfaceId。 +**参数:** -*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ---------------------------- | +| callback | AsyncCallback\ | 是 | 异步重置视频录制的回调方法。 | -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**错误码:** -**参数:** +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -| 参数名 | 类型 | 必填 | 说明 | -| --------- | -------------------- | ---- | ------------------------- | -| surfaceId | string | 是 | SurfaceId | -| callback | AsyncCallback\ | 是 | 设置SurfaceId的回调方法。 | +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | **示例:** ```js -let surfaceId = null; -videoPlayer.setDisplaySurface(surfaceId, (err) => { +// asyncallback +videoRecorder.reset((err) => { if (err == null) { - console.info('setDisplaySurface success!'); + console.info('reset videorecorder success'); } else { - console.info('setDisplaySurface fail!'); + console.info('reset videorecorder failed and error is ' + err.message); } }); ``` -### setDisplaySurface8+ - -setDisplaySurface(surfaceId: string): Promise\ +### reset9+ -通过Promise方式设置SurfaceId。 +reset(): Promise\; -*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 +异步方式重置视频录制。通过Promise获取返回值。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 -**参数:** +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -| 参数名 | 类型 | 必填 | 说明 | -| --------- | ------ | ---- | --------- | -| surfaceId | string | 是 | SurfaceId | +**系统接口:** 该接口为系统接口 **返回值:** -| 类型 | 说明 | -| -------------- | ------------------------------ | -| Promise\ | 设置SurfaceId的Promise返回值。 | +| 类型 | 说明 | +| -------------- | ------------------------------------- | +| Promise\ | 异步重置视频录制方法的Promise返回值。 | + +**错误码:** + +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) + +| 错误码ID | 错误信息 | +| -------- | -------------------------------- | +| 5400103 | I/O error. Return by promise. | +| 5400105 | Service died. Return by promise. | **示例:** ```js -let surfaceId = null; -videoPlayer.setDisplaySurface(surfaceId).then(() => { - console.info('setDisplaySurface success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +// promise +videoRecorder.reset().then(() => { + console.info('reset videorecorder success'); +}).catch((err) => { + console.info('reset videorecorder failed and catch error is ' + err.message); }); ``` -### prepare8+ +### on('error')9+ -prepare(callback: AsyncCallback\): void +on(type: 'error', callback: ErrorCallback): void -通过回调方式准备播放视频。 +开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 准备播放视频的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':视频录制过程中发生错误,触发该事件。 | +| callback | ErrorCallback | 是 | 录制错误事件回调方法。 | -**示例:** +**错误码:** -```js -videoPlayer.prepare((err) => { - if (err == null) { - console.info('prepare success!'); - } else { - console.info('prepare fail!'); - } -}); -``` +以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) -### prepare8+ +| 错误码ID | 错误信息 | +| -------- | --------------------------------- | +| 5400103 | I/O error. Return by callback. | +| 5400105 | Service died. Return by callback. | -prepare(): Promise\ +**示例:** -通过Promise方式准备播放视频。 +```js +// 当获取videoRecordState接口出错时通过此订阅事件上报 +videoRecorder.on('error', (error) => { // 设置'error'事件回调 + console.info(`audio error called, error: ${error}`); +}) +``` -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +## VideoRecordState9+ -**返回值:** +视频录制的状态机。可通过state属性获取当前状态。 -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 准备播放视频的Promise返回值。 | +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**示例:** +**系统接口:** 该接口为系统接口 -```js -videoPlayer.prepare().then(() => { - console.info('prepare success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` +| 名称 | 类型 | 说明 | +| -------- | ------ | ---------------------- | +| idle | string | 视频录制空闲。 | +| prepared | string | 视频录制参数设置完成。 | +| playing | string | 视频正在录制。 | +| paused | string | 视频暂停录制。 | +| stopped | string | 视频录制停止。 | +| error | string | 错误状态。 | -### play8+ +## VideoRecorderConfig9+ -play(callback: AsyncCallback\): void; +表示视频录制的参数设置。 -通过回调方式开始播放视频。 +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统接口:** 该接口为系统接口 -**参数:** +| 名称 | 类型 | 必填 | 说明 | +| --------------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | +| audioSourceType | [AudioSourceType](#audiosourcetype9) | 是 | 视频录制的音频源类型。 | +| videoSourceType | [VideoSourceType](#videosourcetype9) | 是 | 视频录制的视频源类型。 | +| profile | [VideoRecorderProfile](#videorecorderprofile9) | 是 | 视频录制的profile。 | +| rotation | number | 否 | 录制视频的旋转角度。 | +| location | [Location](#location) | 否 | 录制视频的地理位置。 | +| url | string | 是 | 视频输出URL:fd://xx (fd number)
![](figures/zh-cn_image_url.png) | -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 开始播放视频的回调方法。 | +## VideoRecorderProfile9+ -**示例:** +视频录制的配置文件。 -```js -videoPlayer.play((err) => { - if (err == null) { - console.info('play success!'); - } else { - console.info('play fail!'); - } -}); -``` +**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder -### play8+ +**系统接口:** 该接口为系统接口 -play(): Promise\; +| 名称 | 类型 | 必填 | 说明 | +| ---------------- | -------------------------------------------- | ---- | ---------------- | +| audioBitrate | number | 是 | 音频编码比特率。 | +| audioChannels | number | 是 | 音频采集声道数。 | +| audioCodec | [CodecMimeType](#codecmimetype8) | 是 | 音频编码格式。 | +| audioSampleRate | number | 是 | 音频采样率。 | +| fileFormat | [ContainerFormatType](#containerformattype8) | 是 | 文件的容器格式。 | +| videoBitrate | number | 是 | 视频编码比特率。 | +| videoCodec | [CodecMimeType](#codecmimetype8) | 是 | 视频编码格式。 | +| videoFrameWidth | number | 是 | 录制视频帧的宽。 | +| videoFrameHeight | number | 是 | 录制视频帧的高。 | +| videoFrameRate | number | 是 | 录制视频帧率。 | -通过Promise方式开始播放视频。 +## media.createAudioPlayer(deprecated) -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +createAudioPlayer(): AudioPlayer + +同步方式创建音频播放实例。 + +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 + +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **返回值:** -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 开始播放视频的Promise返回值。 | +| 类型 | 说明 | +| --------------------------- | ------------------------------------------------------------ | +| [AudioPlayer](#audioplayerdeprecated) | 返回AudioPlayer类实例,失败时返回null。可用于音频播放、暂停、停止等操作。 | **示例:** ```js -videoPlayer.play().then(() => { - console.info('play success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); +let audioPlayer = media.createAudioPlayer(); ``` -### pause8+ +## media.createVideoPlayer(deprecated) -pause(callback: AsyncCallback\): void +createVideoPlayer(callback: AsyncCallback\): void -通过回调方式暂停播放视频。 +异步方式创建视频播放实例,通过注册回调函数获取返回值。 + +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9)替代。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 暂停播放视频的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------ | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback<[VideoPlayer](#videoplayerdeprecated)> | 是 | 回调函数。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | **示例:** ```js -videoPlayer.pause((err) => { - if (err == null) { - console.info('pause success!'); - } else { - console.info('pause fail!'); - } +let videoPlayer + +media.createVideoPlayer((error, video) => { + if (video != null) { + videoPlayer = video; + console.info('video createVideoPlayer success'); + } else { + console.info(`video createVideoPlayer fail, error:${error}`); + } }); ``` -### pause8+ +## media.createVideoPlayer(deprecated) -pause(): Promise\ +createVideoPlayer(): Promise\ -通过Promise方式暂停播放视频。 +异步方式创建视频播放实例,通过Promise获取返回值。 + +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVPlayer](#mediacreateavplayer9-1)替代。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **返回值:** -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 暂停播放视频的Promise返回值。 | +| 类型 | 说明 | +| ------------------------------------ | ------------------------------------------------------------ | +| Promise<[VideoPlayer](#videoplayerdeprecated)> | Promise对象。异步返回VideoPlayer实例,失败时返回null。可用于管理和播放视频媒体。 | **示例:** ```js -videoPlayer.pause().then(() => { - console.info('pause success'); +let videoPlayer + +media.createVideoPlayer().then((video) => { + if (video != null) { + videoPlayer = video; + console.info('video createVideoPlayer success'); + } else { + console.info('video createVideoPlayer fail'); + } }).catch((error) => { console.info(`video catchCallback, error:${error}`); }); ``` -### stop8+ +## media.createAudioRecorder(deprecated) -stop(callback: AsyncCallback\): void +createAudioRecorder(): AudioRecorder -通过回调方式停止播放视频。 +创建音频录制的实例来控制音频的录制。 +一台设备只允许创建一个录制实例。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[createAVRecorder](#mediacreateavrecorder9)替代。 -**参数:** +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 停止播放视频的回调方法。 | +**返回值:** + +| 类型 | 说明 | +| ------------------------------- | ------------------------------------------------------------ | +| [AudioRecorder](#audiorecorderdeprecated) | 返回AudioRecorder类实例,失败时返回null。可用于录制音频媒体。 | **示例:** ```js -videoPlayer.stop((err) => { - if (err == null) { - console.info('stop success!'); - } else { - console.info('stop fail!'); - } -}); +let audioRecorder = media.createAudioRecorder(); ``` -### stop8+ +## MediaErrorCode(deprecated) -stop(): Promise\ +媒体服务错误类型枚举。 -通过Promise方式停止播放视频。 +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[媒体错误码](../errorcodes/errorcode-media.md)替代。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.Core -**返回值:** +| 名称 | 值 | 说明 | +| -------------------------- | ---- | -------------------------------------- | +| MSERR_OK | 0 | 表示操作成功。 | +| MSERR_NO_MEMORY | 1 | 表示申请内存失败,系统可能无可用内存。 | +| MSERR_OPERATION_NOT_PERMIT | 2 | 表示无权限执行此操作。 | +| MSERR_INVALID_VAL | 3 | 表示传入入参无效。 | +| MSERR_IO | 4 | 表示发生IO错误。 | +| MSERR_TIMEOUT | 5 | 表示操作超时。 | +| MSERR_UNKNOWN | 6 | 表示未知错误。 | +| MSERR_SERVICE_DIED | 7 | 表示服务端失效。 | +| MSERR_INVALID_STATE | 8 | 表示在当前状态下,不允许执行此操作。 | +| MSERR_UNSUPPORTED | 9 | 表示在当前版本下,不支持此操作。 | -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 停止播放视频的Promise返回值。 | +## AudioPlayer(deprecated) -**示例:** +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 -```js -videoPlayer.stop().then(() => { - console.info('stop success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` +音频播放管理类,用于管理和播放音频媒体。在调用AudioPlayer的方法前,需要先通过[createAudioPlayer()](#mediacreateaudioplayerdeprecated)构建一个AudioPlayer实例。 -### reset8+ +### 属性 -reset(callback: AsyncCallback\): void +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -通过回调方式重置播放视频。 +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | +| src | string | 是 | 是 | 音频媒体URI,支持当前主流的音频格式(m4a、aac、mp3、ogg、wav)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
**需要权限:** ohos.permission.READ_MEDIA 或 ohos.permission.INTERNET。 | +| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 音频媒体文件描述,使用场景:应用中的音频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
音乐1(地址偏移:0,字节长度:100)
音乐2(地址偏移:101,字节长度:50)
音乐3(地址偏移:151,字节长度:150)
1. 播放音乐1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放音乐2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放音乐3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的音乐文件: 请使用src=fd://xx
| +| loop | boolean | 是 | 是 | 音频循环播放属性,设置为'true'表示循环播放。 | +| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | +| currentTime | number | 是 | 否 | 音频的当前播放位置,单位为毫秒(ms)。 | +| duration | number | 是 | 否 | 音频时长,单位为毫秒(ms)。 | +| state | [AudioState](#audiostate) | 是 | 否 | 可以查询音频播放的状态,该状态不可作为调用play/pause/stop等状态切换的触发条件。 | -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +### play -**参数:** +play(): void -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 切换播放视频的回调方法。 | +开始播放音频资源,需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 + +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -videoPlayer.reset((err) => { - if (err == null) { - console.info('reset success!'); - } else { - console.info('reset fail!'); - } +audioPlayer.on('play', () => { //设置'play'事件回调 + console.log('audio play success'); }); +audioPlayer.play(); ``` -### reset8+ +### pause -reset(): Promise\ - -通过Promise方式重置播放视频。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer - -**返回值:** - -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 切换播放视频的Promise返回值。 | - -**示例:** - -```js -videoPlayer.reset().then(() => { - console.info('reset success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` - -### seek8+ - -seek(timeMs: number, callback: AsyncCallback\): void - -通过回调方式跳转到指定播放位置,默认跳转到指定时间点的上一个关键帧。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +pause(): void -**参数:** +暂停播放音频资源。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ------------------------------------------------------------ | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | -| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -let seekTime = 5000; -videoPlayer.seek(seekTime, (err, result) => { - if (err == null) { - console.info('seek success!'); - } else { - console.info('seek fail!'); - } +audioPlayer.on('pause', () => { //设置'pause'事件回调 + console.log('audio pause success'); }); +audioPlayer.pause(); ``` -### seek8+ - -seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\): void - -通过回调方式跳转到指定播放位置。 +### stop -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +stop(): void -**参数:** +停止播放音频资源。 -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ------------------------------------------------------------ | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | -| mode | [SeekMode](#seekmode8) | 是 | 跳转模式。 | -| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -import media from '@ohos.multimedia.media' -let seekTime = 5000; -videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC, (err, result) => { - if (err == null) { - console.info('seek success!'); - } else { - console.info('seek fail!'); - } +audioPlayer.on('stop', () => { //设置'stop'事件回调 + console.log('audio stop success'); }); +audioPlayer.stop(); ``` -### seek8+ - -seek(timeMs: number, mode?:SeekMode): Promise\ - -通过Promise方式跳转到指定播放位置,如果没有设置mode则跳转到指定时间点的上一个关键帧。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer - -**参数:** +### reset7+ -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ---------------------- | ---- | ------------------------------------------------------------ | -| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | -| mode | [SeekMode](#seekmode8) | 否 | 跳转模式。 | +reset(): void -**返回值:** +重置播放音频资源。 -| 类型 | 说明 | -| ---------------- | ------------------------------------------- | -| Promise\ | 跳转到指定播放位置的Promise返回值,单位ms。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -import media from '@ohos.multimedia.media' -let seekTime = 5000; -videoPlayer.seek(seekTime).then((seekDoneTime) => { // seekDoneTime表示seek完成后的时间点 - console.info('seek success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); - -videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC).then((seekDoneTime) => { - console.info('seek success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +audioPlayer.on('reset', () => { //设置'reset'事件回调 + console.log('audio reset success'); }); +audioPlayer.reset(); ``` -### setVolume8+ +### seek -setVolume(vol: number, callback: AsyncCallback\): void +seek(timeMs: number): void -通过回调方式设置音量。 +跳转到指定播放位置。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------------------------------------------ | -| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | -| callback | AsyncCallback\ | 是 | 设置音量的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ----------------------------------------------------------- | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围[0, duration]。 | **示例:** ```js -let vol = 0.5; -videoPlayer.setVolume(vol, (err, result) => { - if (err == null) { - console.info('setVolume success!'); - } else { - console.info('setVolume fail!'); +audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 + if (seekDoneTime == null) { + console.info('audio seek fail'); + return; } + console.log('audio seek success. seekDoneTime: ' + seekDoneTime); }); +audioPlayer.seek(30000); //seek到30000ms的位置 ``` -### setVolume8+ +### setVolume -setVolume(vol: number): Promise\ +setVolume(vol: number): void -通过Promise方式设置音量。 +设置音量。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** @@ -3562,86 +3606,43 @@ setVolume(vol: number): Promise\ | ------ | ------ | ---- | ------------------------------------------------------------ | | vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | -**返回值:** - -| 类型 | 说明 | -| -------------- | ------------------------- | -| Promise\ | 设置音量的Promise返回值。 | - -**示例:** - -```js -let vol = 0.5; -videoPlayer.setVolume(vol).then(() => { - console.info('setVolume success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); -``` - -### release8+ - -release(callback: AsyncCallback\): void - -通过回调方式释放视频资源。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ------------------------ | -| callback | AsyncCallback\ | 是 | 释放视频资源的回调方法。 | - **示例:** ```js -videoPlayer.release((err) => { - if (err == null) { - console.info('release success!'); - } else { - console.info('release fail!'); - } +audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 + console.log('audio volumeChange success'); }); +audioPlayer.setVolume(1); //设置音量到100% ``` -### release8+ - -release(): Promise\ - -通过Promise方式释放视频资源。 +### release -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +release(): void -**返回值:** +释放音频资源。 -| 类型 | 说明 | -| -------------- | ----------------------------- | -| Promise\ | 释放视频资源的Promise返回值。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **示例:** ```js -videoPlayer.release().then(() => { - console.info('release success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); -}); +audioPlayer.release(); +audioPlayer = undefined; ``` -### getTrackDescription8+ +### getTrackDescription8+ getTrackDescription(callback: AsyncCallback\>): void -通过回调方式获取视频轨道信息。 +通过回调方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | -| callback | AsyncCallback\> | 是 | 视频轨道信息MediaDescription数组回调方法。 | +| callback | AsyncCallback\> | 是 | 音频轨道信息MediaDescription数组回调方法。 | **示例:** @@ -3649,35 +3650,35 @@ getTrackDescription(callback: AsyncCallback\>): void function printfDescription(obj) { for (let item in obj) { let property = obj[item]; - console.info('video key is ' + item); - console.info('video value is ' + property); + console.info('audio key is ' + item); + console.info('audio value is ' + property); } } -videoPlayer.getTrackDescription((error, arrList) => { - if ((arrList) != null) { +audioPlayer.getTrackDescription((error, arrList) => { + if (arrList != null) { for (let i = 0; i < arrList.length; i++) { printfDescription(arrList[i]); } } else { - console.log(`video getTrackDescription fail, error:${error}`); + console.log(`audio getTrackDescription fail, error:${error}`); } }); ``` -### getTrackDescription8+ +### getTrackDescription8+ getTrackDescription(): Promise\> -通过Promise方式获取视频轨道信息。 +通过Promise方式获取音频轨道信息。需在[dataLoad](#audioplayer_on)事件成功触发后,才能调用 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **返回值:** | 类型 | 说明 | | ------------------------------------------------------ | ----------------------------------------------- | -| Promise> | 视频轨道信息MediaDescription数组Promise返回值。 | +| Promise> | 音频轨道信息MediaDescription数组Promise返回值。 | **示例:** @@ -3685,1317 +3686,1301 @@ getTrackDescription(): Promise\> function printfDescription(obj) { for (let item in obj) { let property = obj[item]; - console.info('video key is ' + item); - console.info('video value is ' + property); + console.info('audio key is ' + item); + console.info('audio value is ' + property); } } - -let arrayDescription; -videoPlayer.getTrackDescription().then((arrList) => { +let arrayDescription = null +audioPlayer.getTrackDescription().then((arrList) => { if (arrList != null) { arrayDescription = arrList; } else { - console.log('video getTrackDescription fail'); + console.log('audio getTrackDescription fail'); } }).catch((error) => { - console.info(`video catchCallback, error:${error}`); + console.info(`audio catchCallback, error:${error}`); }); + for (let i = 0; i < arrayDescription.length; i++) { printfDescription(arrayDescription[i]); } ``` -### setSpeed8+ +### on('bufferingUpdate')8+ -setSpeed(speed:number, callback: AsyncCallback\): void +on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void -通过回调方式设置播放速度。 +开始订阅音频缓存更新事件。仅网络播放支持该订阅事件。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | ---------------------------------------------------------- | -| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | -| callback | AsyncCallback\ | 是 | 设置播放速度的回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 音频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | +| callback | function | 是 | 音频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | **示例:** ```js -import media from '@ohos.multimedia.media' -let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; - -videoPlayer.setSpeed(speed, (err, result) => { - if (err == null) { - console.info('setSpeed success!'); - } else { - console.info('setSpeed fail!'); - } +audioPlayer.on('bufferingUpdate', (infoType, value) => { + console.log('audio bufferingInfo type: ' + infoType); + console.log('audio bufferingInfo value: ' + value); }); ``` -### setSpeed8+ + ### on('play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange') -setSpeed(speed:number): Promise\ +on(type: 'play' | 'pause' | 'stop' | 'reset' | 'dataLoad' | 'finish' | 'volumeChange', callback: () => void): void -通过Promise方式设置播放速度。 +开始订阅音频播放事件。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ---------------------------------------------------------- | -| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | - -**返回值:** - -| 类型 | 说明 | -| ---------------- | ------------------------------------------------------------ | -| Promise\ | 播放速度Promise返回值,具体见[PlaybackSpeed](#playbackspeed8)。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放事件回调类型,支持的事件包括:'play' \| 'pause' \| 'stop' \| 'reset' \| 'dataLoad' \| 'finish' \| 'volumeChange'。
- 'play':完成[play()](#audioplayer_play)调用,音频开始播放,触发该事件。
- 'pause':完成[pause()](#audioplayer_pause)调用,音频暂停播放,触发该事件。
- 'stop':完成[stop()](#audioplayer_stop)调用,音频停止播放,触发该事件。
- 'reset':完成[reset()](#audioplayer_reset)调用,播放器重置,触发该事件。
- 'dataLoad':完成音频数据加载后触发该事件,即src属性设置完成后触发该事件。
- 'finish':完成音频播放后触发该事件。
- 'volumeChange':完成[setVolume()](#audioplayer_setvolume)调用,播放音量改变后触发该事件。 | +| callback | () => void | 是 | 播放事件回调方法。 | **示例:** ```js -import media from '@ohos.multimedia.media' -let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; +import fileio from '@ohos.fileio' -videoPlayer.setSpeed(speed).then(() => { - console.info('setSpeed success'); -}).catch((error) => { - console.info(`video catchCallback, error:${error}`); +let audioPlayer = media.createAudioPlayer(); //创建一个音频播放实例 +audioPlayer.on('dataLoad', () => { //设置'dataLoad'事件回调,src属性设置成功后,触发此回调 + console.info('audio set source success'); + audioPlayer.play(); //开始播放,并触发'play'事件回调 +}); +audioPlayer.on('play', () => { //设置'play'事件回调 + console.info('audio play success'); + audioPlayer.seek(30000); //调用seek方法,并触发'timeUpdate'事件回调 +}); +audioPlayer.on('pause', () => { //设置'pause'事件回调 + console.info('audio pause success'); + audioPlayer.stop(); //停止播放,并触发'stop'事件回调 +}); +audioPlayer.on('reset', () => { //设置'reset'事件回调 + console.info('audio reset success'); + audioPlayer.release(); //释放播放实例资源 + audioPlayer = undefined; +}); +audioPlayer.on('timeUpdate', (seekDoneTime) => { //设置'timeUpdate'事件回调 + if (seekDoneTime == null) { + console.info('audio seek fail'); + return; + } + console.info('audio seek success, and seek time is ' + seekDoneTime); + audioPlayer.setVolume(0.5); //设置音量为50%,并触发'volumeChange'事件回调 +}); +audioPlayer.on('volumeChange', () => { //设置'volumeChange'事件回调 + console.info('audio volumeChange success'); + audioPlayer.pause(); //暂停播放,并触发'pause'事件回调 +}); +audioPlayer.on('finish', () => { //设置'finish'事件回调 + console.info('audio play finish'); + audioPlayer.stop(); //停止播放,并触发'stop'事件回调 +}); +audioPlayer.on('error', (error) => { //设置'error'事件回调 + console.info(`audio error called, error: ${error}`); +}); + +// 用户选择视频设置fd(本地播放) +let fdPath = 'fd://'; +// path路径的码流可通过"hdc file send D:\xxx\01.mp3 /data/accounts/account_0/appdata" 命令,将其推送到设备上 +let path = '/data/accounts/account_0/appdata/ohos.xxx.xxx.xxx/01.mp3'; +fileio.open(path).then((fdValue) => { + fdPath = fdPath + '' + fdValue; + console.info('open fd success fd is' + fdPath); +}, (err) => { + console.info('open fd failed err is' + err); +}).catch((err) => { + console.info('open fd failed err is' + err); }); +audioPlayer.src = fdPath; //设置src属性,并触发'dataLoad'事件回调 ``` -### on('playbackCompleted')8+ +### on('timeUpdate') -on(type: 'playbackCompleted', callback: Callback\): void +on(type: 'timeUpdate', callback: Callback\): void -开始监听视频播放完成事件。 +开始订阅音频播放时间更新事件。处于播放状态时,每隔1s上报一次该事件。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ----------------------------------------------------------- | -| type | string | 是 | 视频播放完成事件回调类型,支持的事件:'playbackCompleted'。 | -| callback | function | 是 | 视频播放完成事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ----------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放事件回调类型,支持的事件包括:'timeUpdate'。
- 'timeUpdate':音频播放时间戳更新,开始播放后自动触发该事件。 | +| callback | Callback\ | 是 | 播放事件回调方法。回调方法入参为更新后的时间戳。 | **示例:** ```js -videoPlayer.on('playbackCompleted', () => { - console.info('playbackCompleted success!'); +audioPlayer.on('timeUpdate', (newTime) => { //设置'timeUpdate'事件回调 + if (newTime == null) { + console.info('audio timeUpadate fail'); + return; + } + console.log('audio timeUpadate success. seekDoneTime: ' + newTime); }); +audioPlayer.play(); //开始播放后,自动触发时间戳更新事件 ``` -### on('bufferingUpdate')8+ +### on('error') -on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void +on(type: 'error', callback: ErrorCallback): void -开始监听视频缓存更新事件。仅网络播放支持该订阅事件。 +开始订阅音频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 视频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | -| callback | function | 是 | 视频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':音频播放中发生错误,触发该事件。 | +| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | **示例:** ```js -videoPlayer.on('bufferingUpdate', (infoType, value) => { - console.log('video bufferingInfo type: ' + infoType); - console.log('video bufferingInfo value: ' + value); +audioPlayer.on('error', (error) => { //设置'error'事件回调 + console.info(`audio error called, error: ${error}`); }); +audioPlayer.setVolume(3); //设置volume为无效值,触发'error'事件 ``` -### on('startRenderFrame')8+ +## AudioState(deprecated) -on(type: 'startRenderFrame', callback: Callback\): void +音频播放的状态机。可通过state属性获取当前状态。 -开始监听视频播放首帧送显上报事件。 +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 -**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer +**系统能力:** SystemCapability.Multimedia.Media.AudioPlayer -**参数:** +| 名称 | 类型 | 说明 | +| ------- | ------ | ---------------------------------------------- | +| idle | string | 音频播放空闲,dataload/reset成功后处于此状态。 | +| playing | string | 音频正在播放,play成功后处于此状态。 | +| paused | string | 音频暂停播放,pause成功后处于此状态。 | +| stopped | string | 音频播放停止,stop/播放结束后处于此状态。 | +| error | string | 错误状态。 | -| 参数名 | 类型 | 必填 | 说明 | -| -------- | --------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 视频播放首帧送显上报事件回调类型,支持的事件:'startRenderFrame'。 | -| callback | Callback\ | 是 | 视频播放首帧送显上报事件回调方法。 | +## VideoPlayer(deprecated) -**示例:** +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayer](#avplayer9)替代。 -```js -videoPlayer.on('startRenderFrame', () => { - console.info('startRenderFrame success!'); -}); -``` +视频播放管理类,用于管理和播放视频媒体。在调用VideoPlayer的方法前,需要先通过[createVideoPlayer()](#createvideoplayer)构建一个VideoPlayer实例。 -### on('videoSizeChanged')8+ +视频播放demo可参考:[视频播放开发指导](../../media/video-playback.md) -on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void +### 属性 -开始监听视频播放宽高变化事件。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +| 名称 | 类型 | 可读 | 可写 | 说明 | +| ------------------------------- | ------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | +| url8+ | string | 是 | 是 | 视频媒体URL,支持当前主流的视频格式(mp4、mpeg-ts、webm、mkv)。
**支持路径示例**:
1. fd类型播放:fd://xx
![](figures/zh-cn_image_url.png)
2. http网络播放: http://xx
3. https网络播放: https://xx
4. hls网络播放路径:http://xx或者https://xx
| +| fdSrc9+ | [AVFileDescriptor](#avfiledescriptor9) | 是 | 是 | 视频媒体文件描述,使用场景:应用中的视频资源被连续存储在同一个文件中。
**使用示例**:
假设一个连续存储的音乐文件:
视频1(地址偏移:0,字节长度:100)
视频2(地址偏移:101,字节长度:50)
视频3(地址偏移:151,字节长度:150)
1. 播放视频1:AVFileDescriptor { fd = 资源句柄; offset = 0; length = 100; }
2. 播放视频2:AVFileDescriptor { fd = 资源句柄; offset = 101; length = 50; }
3. 播放视频3:AVFileDescriptor { fd = 资源句柄; offset = 151; length = 150; }
假设是一个独立的视频文件: 请使用src=fd://xx
| +| loop8+ | boolean | 是 | 是 | 视频循环播放属性,设置为'true'表示循环播放。 | +| videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式。 | +| audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型。 | +| currentTime8+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms)。 | +| duration8+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),返回-1表示直播模式。 | +| state8+ | [VideoPlayState](#videoplayerstate) | 是 | 否 | 视频播放的状态。 | +| width8+ | number | 是 | 否 | 视频宽,单位为像素(px)。 | +| height8+ | number | 是 | 否 | 视频高,单位为像素(px)。 | + +### setDisplaySurface8+ + +setDisplaySurface(surfaceId: string, callback: AsyncCallback\): void + +通过回调方式设置SurfaceId。 + +*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 视频播放宽高变化事件回调类型,支持的事件:'videoSizeChanged'。 | -| callback | function | 是 | 视频播放宽高变化事件回调方法,width表示宽,height表示高。 | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | -------------------- | ---- | ------------------------- | +| surfaceId | string | 是 | SurfaceId | +| callback | AsyncCallback\ | 是 | 设置SurfaceId的回调方法。 | **示例:** ```js -videoPlayer.on('videoSizeChanged', (width, height) => { - console.log('video width is: ' + width); - console.log('video height is: ' + height); +let surfaceId = null; +videoPlayer.setDisplaySurface(surfaceId, (err) => { + if (err == null) { + console.info('setDisplaySurface success!'); + } else { + console.info('setDisplaySurface fail!'); + } }); ``` -### on('error')8+ +### setDisplaySurface8+ -on(type: 'error', callback: ErrorCallback): void +setDisplaySurface(surfaceId: string): Promise\ -开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 +通过Promise方式设置SurfaceId。 + +*注意:SetDisplaySurface需要在设置url和Prepare之间,无音频的视频流必须设置Surface否则Prepare失败。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':视频播放中发生错误,触发该事件。 | -| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| --------- | ------ | ---- | --------- | +| surfaceId | string | 是 | SurfaceId | + +**返回值:** + +| 类型 | 说明 | +| -------------- | ------------------------------ | +| Promise\ | 设置SurfaceId的Promise返回值。 | **示例:** ```js -videoPlayer.on('error', (error) => { // 设置'error'事件回调 - console.info(`video error called, error: ${error}`); +let surfaceId = null; +videoPlayer.setDisplaySurface(surfaceId).then(() => { + console.info('setDisplaySurface success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -videoPlayer.url = 'fd://error'; //设置错误的播放地址,触发'error'事件 ``` -## VideoPlayState(deprecated) +### prepare8+ -视频播放的状态机,可通过state属性获取当前状态。 +prepare(callback: AsyncCallback\): void -> **说明:** -> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 +通过回调方式准备播放视频。 **系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -| 名称 | 类型 | 说明 | -| -------- | ------ | -------------- | -| idle | string | 视频播放空闲。 | -| prepared | string | 视频播放准备。 | -| playing | string | 视频正在播放。 | -| paused | string | 视频暂停播放。 | -| stopped | string | 视频播放停止。 | -| error | string | 错误状态。 | - -## AudioRecorder(deprecated) - -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorder](#avrecorder9)替代。 +**参数:** -音频录制管理类,用于录制音频媒体。在调用AudioRecorder的方法前,需要先通过[createAudioRecorder()](#mediacreateaudiorecorder) 构建一个AudioRecorder实例。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 准备播放视频的回调方法。 | -音频录制demo可参考:[音频录制开发指导](../../media/audio-recorder.md) +**示例:** -### prepare +```js +videoPlayer.prepare((err) => { + if (err == null) { + console.info('prepare success!'); + } else { + console.info('prepare fail!'); + } +}); +``` -prepare(config: AudioRecorderConfig): void +### prepare8+ -录音准备。 +prepare(): Promise\ -**需要权限:** ohos.permission.MICROPHONE +通过Promise方式准备播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------------------------------------------- | ---- | ------------------------------------------------------------ | -| config | [AudioRecorderConfig](#audiorecorderconfigdeprecated) | 是 | 配置录音的相关参数,包括音频输出URI、编码格式、采样率、声道数、输出格式等。 | +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 准备播放视频的Promise返回值。 | **示例:** ```js -let audioRecorderConfig = { - audioEncoder : media.AudioEncoder.AAC_LC, - audioEncodeBitRate : 22050, - audioSampleRate : 22050, - numberOfChannels : 2, - format : media.AudioOutputFormat.AAC_ADTS, - uri : 'fd://1', // 文件需先由调用者创建,并给予适当的权限 - location : { latitude : 30, longitude : 130}, -} -audioRecorder.on('prepare', () => { //设置'prepare'事件回调 - console.log('prepare success'); +videoPlayer.prepare().then(() => { + console.info('prepare success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioRecorder.prepare(audioRecorderConfig); ``` +### play8+ -### start +play(callback: AsyncCallback\): void; -start(): void +通过回调方式开始播放视频。 -开始录制,需在[prepare](#audiorecorder_on)事件成功触发后,才能调用start方法。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 开始播放视频的回调方法。 | **示例:** ```js -audioRecorder.on('start', () => { //设置'start'事件回调 - console.log('audio recorder start success'); +videoPlayer.play((err) => { + if (err == null) { + console.info('play success!'); + } else { + console.info('play fail!'); + } }); -audioRecorder.start(); ``` -### pause +### play8+ -pause():void +play(): Promise\; -暂停录制,需要在[start](#audiorecorder_on)事件成功触发后,才能调用pause方法。 +通过Promise方式开始播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 开始播放视频的Promise返回值。 | **示例:** ```js -audioRecorder.on('pause', () => { //设置'pause'事件回调 - console.log('audio recorder pause success'); +videoPlayer.play().then(() => { + console.info('play success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioRecorder.pause(); ``` -### resume +### pause8+ -resume():void +pause(callback: AsyncCallback\): void -恢复录制,需要在[pause](#audiorecorder_on)事件成功触发后,才能调用resume方法。 +通过回调方式暂停播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 暂停播放视频的回调方法。 | **示例:** ```js -audioRecorder.on('resume', () => { //设置'resume'事件回调 - console.log('audio recorder resume success'); +videoPlayer.pause((err) => { + if (err == null) { + console.info('pause success!'); + } else { + console.info('pause fail!'); + } }); -audioRecorder.resume(); ``` -### stop +### pause8+ -stop(): void +pause(): Promise\ -停止录音。 +通过Promise方式暂停播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 暂停播放视频的Promise返回值。 | **示例:** ```js -audioRecorder.on('stop', () => { //设置'stop'事件回调 - console.log('audio recorder stop success'); +videoPlayer.pause().then(() => { + console.info('pause success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioRecorder.stop(); ``` -### release +### stop8+ -release(): void +stop(callback: AsyncCallback\): void -释放录音资源。 +通过回调方式停止播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 停止播放视频的回调方法。 | **示例:** ```js -audioRecorder.on('release', () => { //设置'release'事件回调 - console.log('audio recorder release success'); +videoPlayer.stop((err) => { + if (err == null) { + console.info('stop success!'); + } else { + console.info('stop fail!'); + } }); -audioRecorder.release(); -audioRecorder = undefined; ``` -### reset +### stop8+ -reset(): void +stop(): Promise\ -重置录音。 +通过Promise方式停止播放视频。 -进行重置录音之前,需要先调用[stop()](#audiorecorder_stop)停止录音。重置录音之后,需要调用[prepare()](#audiorecorder_prepare)设置录音参数项,才能再次进行录音。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**返回值:** + +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 停止播放视频的Promise返回值。 | **示例:** ```js -audioRecorder.on('reset', () => { //设置'reset'事件回调 - console.log('audio recorder reset success'); +videoPlayer.stop().then(() => { + console.info('stop success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioRecorder.reset(); ``` -### on('prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset') +### reset8+ -on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void +reset(callback: AsyncCallback\): void -开始订阅音频录制事件。 +通过回调方式重置播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 录制事件回调类型,支持的事件包括:'prepare' \| 'start' \| 'pause' \| ’resume‘ \| 'stop' \| 'release' \| 'reset'。
- 'prepare' :完成[prepare](#audiorecorder_prepare)调用,音频录制参数设置完成,触发该事件。
- 'start' :完成[start](#audiorecorder_start)调用,音频录制开始,触发该事件。
- 'pause': 完成[pause](#audiorecorder_pause)调用,音频暂停录制,触发该事件。
- 'resume': 完成[resume](#audiorecorder_resume)调用,音频恢复录制,触发该事件。
- 'stop' :完成[stop](#audiorecorder_stop)调用,音频停止录制,触发该事件。
- 'release' :完成[release](#audiorecorder_release)调用,音频释放录制资源,触发该事件。
- 'reset':完成[reset](#audiorecorder_reset)调用,音频重置为初始状态,触发该事件。 | -| callback | ()=>void | 是 | 录制事件回调方法。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 切换播放视频的回调方法。 | **示例:** ```js -let audioRecorder = media.createAudioRecorder(); // 创建一个音频录制实例 -let audioRecorderConfig = { - audioEncoder : media.AudioEncoder.AAC_LC, - audioEncodeBitRate : 22050, - audioSampleRate : 22050, - numberOfChannels : 2, - format : media.AudioOutputFormat.AAC_ADTS, - uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - location : { latitude : 30, longitude : 130}, -} -audioRecorder.on('error', (error) => { // 设置'error'事件回调 - console.info(`audio error called, error: ${error}`); -}); -audioRecorder.on('prepare', () => { // 设置'prepare'事件回调 - console.log('prepare success'); - audioRecorder.start(); // 开始录制,并触发'start'事件回调 -}); -audioRecorder.on('start', () => { // 设置'start'事件回调 - console.log('audio recorder start success'); -}); -audioRecorder.on('pause', () => { // 设置'pause'事件回调 - console.log('audio recorder pause success'); -}); -audioRecorder.on('resume', () => { // 设置'resume'事件回调 - console.log('audio recorder resume success'); -}); -audioRecorder.on('stop', () => { // 设置'stop'事件回调 - console.log('audio recorder stop success'); -}); -audioRecorder.on('release', () => { // 设置'release'事件回调 - console.log('audio recorder release success'); -}); -audioRecorder.on('reset', () => { // 设置'reset'事件回调 - console.log('audio recorder reset success'); +videoPlayer.reset((err) => { + if (err == null) { + console.info('reset success!'); + } else { + console.info('reset fail!'); + } }); -audioRecorder.prepare(audioRecorderConfig) // 设置录制参数 ,并触发'prepare'事件回调 ``` -### on('error') +### reset8+ -on(type: 'error', callback: ErrorCallback): void +reset(): Promise\ -开始订阅音频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 +通过Promise方式重置播放视频。 -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**参数:** +**返回值:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':音频录制过程中发生错误,触发该事件。 | -| callback | ErrorCallback | 是 | 录制错误事件回调方法。 | +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 切换播放视频的Promise返回值。 | **示例:** ```js -let audioRecorderConfig = { - audioEncoder : media.AudioEncoder.AAC_LC, - audioEncodeBitRate : 22050, - audioSampleRate : 22050, - numberOfChannels : 2, - format : media.AudioOutputFormat.AAC_ADTS, - uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - location : { latitude : 30, longitude : 130}, -} -audioRecorder.on('error', (error) => { // 设置'error'事件回调 - console.info(`audio error called, error: ${error}`); +videoPlayer.reset().then(() => { + console.info('reset success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); -audioRecorder.prepare(audioRecorderConfig); // prepare不设置参数,触发'error'事件 ``` -## AudioRecorderConfig(deprecated) - -> **说明:** -> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 +### seek8+ -表示音频的录音配置。 +seek(timeMs: number, callback: AsyncCallback\): void -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +通过回调方式跳转到指定播放位置,默认跳转到指定时间点的上一个关键帧。 -| 名称 | 类型 | 必填 | 说明 | -| ----------------------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | -| audioEncoder | [AudioEncoder](#audioencoderdeprecated) | 否 | 音频编码格式,默认设置为AAC_LC。
**说明:** 从API version 8开始废弃,建议使用audioEncoderMime替代。 | -| audioEncodeBitRate | number | 否 | 音频编码比特率,默认值为48000。 | -| audioSampleRate | number | 否 | 音频采集采样率,默认值为48000。 | -| numberOfChannels | number | 否 | 音频采集声道数,默认值为2。 | -| format | [AudioOutputFormat](#audiooutputformatdeprecated) | 否 | 音频输出封装格式,默认设置为MPEG_4。
**说明:** 从API version 8开始废弃,建议使用fileFormat替代。 | -| location | [Location](#location) | 否 | 音频采集的地理位置。 | -| uri | string | 是 | 音频输出URI:fd://xx (fd number)
![](figures/zh-cn_image_url.png)
文件需要由调用者创建,并赋予适当的权限。 | -| audioEncoderMime8+ | [CodecMimeType](#codecmimetype8) | 否 | 音频编码格式。 | -| fileFormat8+ | [ContainerFormatType](#containerformattype8) | 否 | 音频编码格式。 | +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -## AudioEncoder(deprecated) +**参数:** -> **说明:** -> 从API version 6开始支持,从API version 8开始废弃,建议使用[CodecMimeType](#codecmimetype8)替代。 +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ------------------------------------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | +| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | -表示音频编码格式的枚举。 +**示例:** -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +```js +let seekTime = 5000; +videoPlayer.seek(seekTime, (err, result) => { + if (err == null) { + console.info('seek success!'); + } else { + console.info('seek fail!'); + } +}); +``` -| 名称 | 值 | 说明 | -| ------- | ---- | ------------------------------------------------------------ | -| DEFAULT | 0 | 默认编码格式。
仅做接口定义,暂不支持使用。 | -| AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | -| AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | -| AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)编码格式。 | -| HE_AAC | 4 | HE_AAC(High-Efficiency Advanced Audio Coding)编码格式。
仅做接口定义,暂不支持使用。 | +### seek8+ -## AudioOutputFormat(deprecated) +seek(timeMs: number, mode:SeekMode, callback: AsyncCallback\): void -> **说明:** -> 从API version 6开始支持,从API version 8 开始废弃,建议使用[ContainerFormatType](#containerformattype8)替代。 +通过回调方式跳转到指定播放位置。 -表示音频封装格式的枚举。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder +**参数:** -| 名称 | 值 | 说明 | -| -------- | ---- | ------------------------------------------------------------ | -| DEFAULT | 0 | 默认封装格式。
仅做接口定义,暂不支持使用。 | -| MPEG_4 | 2 | 封装为MPEG-4格式。 | -| AMR_NB | 3 | 封装为AMR_NB格式。
仅做接口定义,暂不支持使用。 | -| AMR_WB | 4 | 封装为AMR_WB格式。
仅做接口定义,暂不支持使用。 | -| AAC_ADTS | 6 | 封装为ADTS(Audio Data Transport Stream)格式,是AAC音频的传输流格式。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ------------------------------------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | +| mode | [SeekMode](#seekmode8) | 是 | 跳转模式。 | +| callback | AsyncCallback\ | 是 | 跳转到指定播放位置的回调方法。 | -## VideoRecorder(deprecated) +**示例:** -> **说明:** -> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorder](#avrecorder9)替代。 +```js +import media from '@ohos.multimedia.media' +let seekTime = 5000; +videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC, (err, result) => { + if (err == null) { + console.info('seek success!'); + } else { + console.info('seek fail!'); + } +}); +``` -视频录制管理类,用于录制视频媒体。在调用VideoRecorder的方法前,需要先通过[createVideoRecorder()](#mediacreatevideorecorder9)构建一个[VideoRecorder](#videorecorder9)实例。 +### seek8+ -视频录制demo可参考:[视频录制开发指导](../../media/video-recorder.md) +seek(timeMs: number, mode?:SeekMode): Promise\ -### 属性 +通过Promise方式跳转到指定播放位置,如果没有设置mode则跳转到指定时间点的上一个关键帧。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统接口:** 该接口为系统接口 +**参数:** -| 名称 | 类型 | 可读 | 可写 | 说明 | -| ------------------ | -------------------------------------- | ---- | ---- | ---------------- | -| state9+ | [VideoRecordState](#videorecordstate9) | 是 | 否 | 视频录制的状态。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ---------------------- | ---- | ------------------------------------------------------------ | +| timeMs | number | 是 | 指定的跳转时间节点,单位毫秒(ms),取值范围为[0, duration]。 | +| mode | [SeekMode](#seekmode8) | 否 | 跳转模式。 | -### prepare9+ +**返回值:** -prepare(config: VideoRecorderConfig, callback: AsyncCallback\): void; +| 类型 | 说明 | +| ---------------- | ------------------------------------------- | +| Promise\ | 跳转到指定播放位置的Promise返回值,单位ms。 | -异步方式进行视频录制的参数设置。通过注册回调函数获取返回值。 +**示例:** -**需要权限:** ohos.permission.MICROPHONE +```js +import media from '@ohos.multimedia.media' +let seekTime = 5000; +videoPlayer.seek(seekTime).then((seekDoneTime) => { // seekDoneTime表示seek完成后的时间点 + console.info('seek success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +videoPlayer.seek(seekTime, media.SeekMode.SEEK_NEXT_SYNC).then((seekDoneTime) => { + console.info('seek success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` -**系统接口:** 该接口为系统接口 +### setVolume8+ -**参数:** +setVolume(vol: number, callback: AsyncCallback\): void -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------------------- | ---- | ----------------------------------- | -| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | -| callback | AsyncCallback\ | 是 | 异步视频录制prepare方法的回调方法。 | +通过回调方式设置音量。 -**错误码:** +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**参数:** -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 201 | Permission denied. Return by callback. | -| 401 | Parameter error. Return by callback. | -| 5400102 | Operation not allowed. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------------------------------------------ | +| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | +| callback | AsyncCallback\ | 是 | 设置音量的回调方法。 | **示例:** ```js -let videoProfile = { - audioBitrate : 48000, - audioChannels : 2, - audioCodec : 'audio/mp4a-latm', - audioSampleRate : 48000, - fileFormat : 'mp4', - videoBitrate : 48000, - videoCodec : 'video/mp4v-es', - videoFrameWidth : 640, - videoFrameHeight : 480, - videoFrameRate : 30 -} - -let videoConfig = { - audioSourceType : 1, - videoSourceType : 0, - profile : videoProfile, - url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - orientationHint : 0, - location : { latitude : 30, longitude : 130 }, -} - -// asyncallback -videoRecorder.prepare(videoConfig, (err) => { +let vol = 0.5; +videoPlayer.setVolume(vol, (err, result) => { if (err == null) { - console.info('prepare success'); + console.info('setVolume success!'); } else { - console.info('prepare failed and error is ' + err.message); + console.info('setVolume fail!'); } -}) +}); ``` -### prepare9+ - -prepare(config: VideoRecorderConfig): Promise\; - -异步方式进行视频录制的参数设置。通过Promise获取返回值。 +### setVolume8+ -**需要权限:** ohos.permission.MICROPHONE +setVolume(vol: number): Promise\ -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过Promise方式设置音量。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| ------ | -------------------------------------------- | ---- | ------------------------ | -| config | [VideoRecorderConfig](#videorecorderconfig9) | 是 | 配置视频录制的相关参数。 | +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| vol | number | 是 | 指定的相对音量大小,取值范围为[0.00-1.00],1表示最大音量,即100%。 | **返回值:** -| 类型 | 说明 | -| -------------- | ---------------------------------------- | -| Promise\ | 异步视频录制prepare方法的Promise返回值。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 201 | Permission denied. Return by promise. | -| 401 | Parameter error. Return by promise. | -| 5400102 | Operation not allowed. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 类型 | 说明 | +| -------------- | ------------------------- | +| Promise\ | 设置音量的Promise返回值。 | **示例:** ```js -let videoProfile = { - audioBitrate : 48000, - audioChannels : 2, - audioCodec : 'audio/mp4a-latm', - audioSampleRate : 48000, - fileFormat : 'mp4', - videoBitrate : 48000, - videoCodec : 'video/mp4v-es', - videoFrameWidth : 640, - videoFrameHeight : 480, - videoFrameRate : 30 -} - -let videoConfig = { - audioSourceType : 1, - videoSourceType : 0, - profile : videoProfile, - url : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 - orientationHint : 0, - location : { latitude : 30, longitude : 130 }, -} - -// promise -videoRecorder.prepare(videoConfig).then(() => { - console.info('prepare success'); -}).catch((err) => { - console.info('prepare failed and catch error is ' + err.message); -}); -``` - -### getInputSurface9+ - -getInputSurface(callback: AsyncCallback\): void; - -异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 +let vol = 0.5; +videoPlayer.setVolume(vol).then(() => { + console.info('setVolume success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +``` -应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 +### release8+ -只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 +release(callback: AsyncCallback\): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过回调方式释放视频资源。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | ---------------------- | ---- | --------------------------- | -| callback | AsyncCallback\ | 是 | 异步获得surface的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------------------- | ---- | ------------------------ | +| callback | AsyncCallback\ | 是 | 释放视频资源的回调方法。 | **示例:** ```js -// asyncallback -let surfaceID = null; // 传递给外界的surfaceID -videoRecorder.getInputSurface((err, surfaceId) => { +videoPlayer.release((err) => { if (err == null) { - console.info('getInputSurface success'); - surfaceID = surfaceId; + console.info('release success!'); } else { - console.info('getInputSurface failed and error is ' + err.message); + console.info('release fail!'); } }); ``` -### getInputSurface9+ - -getInputSurface(): Promise\; - - 异步方式获得录制需要的surface。此surface提供给调用者,调用者从此surface中获取surfaceBuffer,填入相应的数据。 - -应当注意,填入的视频数据需要携带时间戳(单位ns),buffersize。时间戳的起始时间请以系统启动时间为基准。 +### release8+ -只能在[prepare()](#videorecorder_prepare1)接口调用后调用。 +release(): Promise\ -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过Promise方式释放视频资源。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **返回值:** -| 类型 | 说明 | -| ---------------- | -------------------------------- | -| Promise\ | 异步获得surface的Promise返回值。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 类型 | 说明 | +| -------------- | ----------------------------- | +| Promise\ | 释放视频资源的Promise返回值。 | **示例:** ```js -// promise -let surfaceID = null; // 传递给外界的surfaceID -videoRecorder.getInputSurface().then((surfaceId) => { - console.info('getInputSurface success'); - surfaceID = surfaceId; -}).catch((err) => { - console.info('getInputSurface failed and catch error is ' + err.message); +videoPlayer.release().then(() => { + console.info('release success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); ``` -### start9+ - -start(callback: AsyncCallback\): void; - -异步方式开始视频录制。通过注册回调函数获取返回值。 +### getTrackDescription8+ -在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 +getTrackDescription(callback: AsyncCallback\>): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过回调方式获取视频轨道信息。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步开始视频录制的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------------ | ---- | ------------------------------------------ | +| callback | AsyncCallback\> | 是 | 视频轨道信息MediaDescription数组回调方法。 | **示例:** ```js -// asyncallback -videoRecorder.start((err) => { - if (err == null) { - console.info('start videorecorder success'); +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('video key is ' + item); + console.info('video value is ' + property); + } +} + +videoPlayer.getTrackDescription((error, arrList) => { + if ((arrList) != null) { + for (let i = 0; i < arrList.length; i++) { + printfDescription(arrList[i]); + } } else { - console.info('start videorecorder failed and error is ' + err.message); + console.log(`video getTrackDescription fail, error:${error}`); } }); ``` -### start9+ +### getTrackDescription8+ -start(): Promise\; +getTrackDescription(): Promise\> -异步方式开始视频录制。通过Promise获取返回值。 +通过Promise方式获取视频轨道信息。 -在[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)后调用,需要依赖数据源先给surface传递数据。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**返回值:** -**系统接口:** 该接口为系统接口 +| 类型 | 说明 | +| ------------------------------------------------------ | ----------------------------------------------- | +| Promise> | 视频轨道信息MediaDescription数组Promise返回值。 | -**返回值:** +**示例:** -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步开始视频录制方法的Promise返回值。 | +```js +function printfDescription(obj) { + for (let item in obj) { + let property = obj[item]; + console.info('video key is ' + item); + console.info('video value is ' + property); + } +} -**错误码:** +let arrayDescription; +videoPlayer.getTrackDescription().then((arrList) => { + if (arrList != null) { + arrayDescription = arrList; + } else { + console.log('video getTrackDescription fail'); + } +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); +}); +for (let i = 0; i < arrayDescription.length; i++) { + printfDescription(arrayDescription[i]); +} +``` -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +### setSpeed8+ -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +setSpeed(speed:number, callback: AsyncCallback\): void + +通过回调方式设置播放速度。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ---------------------- | ---- | ---------------------------------------------------------- | +| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | +| callback | AsyncCallback\ | 是 | 设置播放速度的回调方法。 | **示例:** ```js -// promise -videoRecorder.start().then(() => { - console.info('start videorecorder success'); -}).catch((err) => { - console.info('start videorecorder failed and catch error is ' + err.message); +import media from '@ohos.multimedia.media' +let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; + +videoPlayer.setSpeed(speed, (err, result) => { + if (err == null) { + console.info('setSpeed success!'); + } else { + console.info('setSpeed fail!'); + } }); ``` -### pause9+ - -pause(callback: AsyncCallback\): void; - -异步方式暂停视频录制。通过注册回调函数获取返回值。 +### setSpeed8+ -在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 +setSpeed(speed:number): Promise\ -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +通过Promise方式设置播放速度。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步暂停视频录制的回调方法。 | - -**错误码:** +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ---------------------------------------------------------- | +| speed | number | 是 | 指定播放视频速度,具体见[PlaybackSpeed](#playbackspeed8)。 | -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**返回值:** -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 类型 | 说明 | +| ---------------- | ------------------------------------------------------------ | +| Promise\ | 播放速度Promise返回值,具体见[PlaybackSpeed](#playbackspeed8)。 | **示例:** ```js -// asyncallback -videoRecorder.pause((err) => { - if (err == null) { - console.info('pause videorecorder success'); - } else { - console.info('pause videorecorder failed and error is ' + err.message); - } +import media from '@ohos.multimedia.media' +let speed = media.PlaybackSpeed.SPEED_FORWARD_2_00_X; + +videoPlayer.setSpeed(speed).then(() => { + console.info('setSpeed success'); +}).catch((error) => { + console.info(`video catchCallback, error:${error}`); }); ``` -### pause9+ +### on('playbackCompleted')8+ -pause(): Promise\; +on(type: 'playbackCompleted', callback: Callback\): void -异步方式暂停视频录制。通过Promise获取返回值。 +开始监听视频播放完成事件。 + +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ----------------------------------------------------------- | +| type | string | 是 | 视频播放完成事件回调类型,支持的事件:'playbackCompleted'。 | +| callback | function | 是 | 视频播放完成事件回调方法。 | -在[start()](#videorecorder_start1)后调用。可以通过调用[resume()](#videorecorder_resume1)接口来恢复录制。 +**示例:** -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +```js +videoPlayer.on('playbackCompleted', () => { + console.info('playbackCompleted success!'); +}); +``` -**系统接口:** 该接口为系统接口 +### on('bufferingUpdate')8+ -**返回值:** +on(type: 'bufferingUpdate', callback: (infoType: BufferingInfoType, value: number) => void): void -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步暂停视频录制方法的Promise返回值。 | +开始监听视频缓存更新事件。仅网络播放支持该订阅事件。 -**错误码:** +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**参数:** -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频缓存事件回调类型,支持的事件:'bufferingUpdate'。 | +| callback | function | 是 | 视频缓存事件回调方法。
[BufferingInfoType](#bufferinginfotype8)为BUFFERING_PERCENT或CACHED_DURATION时,value值有效,否则固定为0。 | **示例:** ```js -// promise -videoRecorder.pause().then(() => { - console.info('pause videorecorder success'); -}).catch((err) => { - console.info('pause videorecorder failed and catch error is ' + err.message); +videoPlayer.on('bufferingUpdate', (infoType, value) => { + console.log('video bufferingInfo type: ' + infoType); + console.log('video bufferingInfo value: ' + value); }); ``` -### resume9+ - -resume(callback: AsyncCallback\): void; +### on('startRenderFrame')8+ -异步方式恢复视频录制。通过注册回调函数获取返回值。 +on(type: 'startRenderFrame', callback: Callback\): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +开始监听视频播放首帧送显上报事件。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步恢复视频录制的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | --------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频播放首帧送显上报事件回调类型,支持的事件:'startRenderFrame'。 | +| callback | Callback\ | 是 | 视频播放首帧送显上报事件回调方法。 | **示例:** ```js -// asyncallback -videoRecorder.resume((err) => { - if (err == null) { - console.info('resume videorecorder success'); - } else { - console.info('resume videorecorder failed and error is ' + err.message); - } +videoPlayer.on('startRenderFrame', () => { + console.info('startRenderFrame success!'); }); ``` -### resume9+ - -resume(): Promise\; - -异步方式恢复视频录制。通过Promise获取返回值。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder - -**系统接口:** 该接口为系统接口 +### on('videoSizeChanged')8+ -**返回值:** +on(type: 'videoSizeChanged', callback: (width: number, height: number) => void): void -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步恢复视频录制方法的Promise返回值。 | +开始监听视频播放宽高变化事件。 -**错误码:** +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**参数:** -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 视频播放宽高变化事件回调类型,支持的事件:'videoSizeChanged'。 | +| callback | function | 是 | 视频播放宽高变化事件回调方法,width表示宽,height表示高。 | **示例:** ```js -// promise -videoRecorder.resume().then(() => { - console.info('resume videorecorder success'); -}).catch((err) => { - console.info('resume videorecorder failed and catch error is ' + err.message); +videoPlayer.on('videoSizeChanged', (width, height) => { + console.log('video width is: ' + width); + console.log('video height is: ' + height); }); ``` -### stop9+ - -stop(callback: AsyncCallback\): void; - -异步方式停止视频录制。通过注册回调函数获取返回值。 +### on('error')8+ -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 +on(type: 'error', callback: ErrorCallback): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +开始监听视频播放错误事件,当上报error错误事件后,用户需处理error事件,退出播放操作。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步停止视频录制的回调方法。 | - -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | ------------------------------------------ | -| 5400102 | Operation not allowed. Return by callback. | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 播放错误事件回调类型,支持的事件包括:'error'。
- 'error':视频播放中发生错误,触发该事件。 | +| callback | ErrorCallback | 是 | 播放错误事件回调方法。 | **示例:** ```js -// asyncallback -videoRecorder.stop((err) => { - if (err == null) { - console.info('stop videorecorder success'); - } else { - console.info('stop videorecorder failed and error is ' + err.message); - } +videoPlayer.on('error', (error) => { // 设置'error'事件回调 + console.info(`video error called, error: ${error}`); }); +videoPlayer.url = 'fd://error'; //设置错误的播放地址,触发'error'事件 ``` -### stop9+ +## VideoPlayState(deprecated) -stop(): Promise\; +视频播放的状态机,可通过state属性获取当前状态。 -异步方式停止视频录制。通过Promise获取返回值。 +> **说明:** +> 从API version 8开始支持,从API version 9开始废弃,建议使用[AVPlayerState](#avplayerstate9)替代。 -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 +**系统能力:** SystemCapability.Multimedia.Media.VideoPlayer -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +| 名称 | 类型 | 说明 | +| -------- | ------ | -------------- | +| idle | string | 视频播放空闲。 | +| prepared | string | 视频播放准备。 | +| playing | string | 视频正在播放。 | +| paused | string | 视频暂停播放。 | +| stopped | string | 视频播放停止。 | +| error | string | 错误状态。 | -**系统接口:** 该接口为系统接口 +## AudioRecorder(deprecated) -**返回值:** +> **说明:** +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorder](#avrecorder9)替代。 -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步停止视频录制方法的Promise返回值。 | +音频录制管理类,用于录制音频媒体。在调用AudioRecorder的方法前,需要先通过[createAudioRecorder()](#mediacreateaudiorecorder) 构建一个AudioRecorder实例。 -**错误码:** +音频录制demo可参考:[音频录制开发指导](../../media/audio-recorder.md) -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +### prepare -| 错误码ID | 错误信息 | -| -------- | ----------------------------------------- | -| 5400102 | Operation not allowed. Return by promise. | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +prepare(config: AudioRecorderConfig): void + +录音准备。 + +**需要权限:** ohos.permission.MICROPHONE + +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------------------------------------------- | ---- | ------------------------------------------------------------ | +| config | [AudioRecorderConfig](#audiorecorderconfigdeprecated) | 是 | 配置录音的相关参数,包括音频输出URI、编码格式、采样率、声道数、输出格式等。 | **示例:** ```js -// promise -videoRecorder.stop().then(() => { - console.info('stop videorecorder success'); -}).catch((err) => { - console.info('stop videorecorder failed and catch error is ' + err.message); +let audioRecorderConfig = { + audioEncoder : media.AudioEncoder.AAC_LC, + audioEncodeBitRate : 22050, + audioSampleRate : 22050, + numberOfChannels : 2, + format : media.AudioOutputFormat.AAC_ADTS, + uri : 'fd://1', // 文件需先由调用者创建,并给予适当的权限 + location : { latitude : 30, longitude : 130}, +} +audioRecorder.on('prepare', () => { //设置'prepare'事件回调 + console.log('prepare success'); }); +audioRecorder.prepare(audioRecorderConfig); ``` -### release9+ -release(callback: AsyncCallback\): void; +### start -异步方式释放视频录制资源。通过注册回调函数获取返回值。 +start(): void -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +开始录制,需在[prepare](#audiorecorder_on)事件成功触发后,才能调用start方法。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -**参数:** +**示例:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | -------------------------------- | -| callback | AsyncCallback\ | 是 | 异步释放视频录制资源的回调方法。 | +```js +audioRecorder.on('start', () => { //设置'start'事件回调 + console.log('audio recorder start success'); +}); +audioRecorder.start(); +``` -**错误码:** +### pause -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +pause():void -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400105 | Service died. Return by callback. | +暂停录制,需要在[start](#audiorecorder_on)事件成功触发后,才能调用pause方法。 + +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -// asyncallback -videoRecorder.release((err) => { - if (err == null) { - console.info('release videorecorder success'); - } else { - console.info('release videorecorder failed and error is ' + err.message); - } +audioRecorder.on('pause', () => { //设置'pause'事件回调 + console.log('audio recorder pause success'); }); +audioRecorder.pause(); ``` -### release9+ +### resume -release(): Promise\; +resume():void -异步方式释放视频录制资源。通过Promise获取返回值。 +恢复录制,需要在[pause](#audiorecorder_on)事件成功触发后,才能调用resume方法。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -**系统接口:** 该接口为系统接口 +**示例:** -**返回值:** +```js +audioRecorder.on('resume', () => { //设置'resume'事件回调 + console.log('audio recorder resume success'); +}); +audioRecorder.resume(); +``` -| 类型 | 说明 | -| -------------- | ----------------------------------------- | -| Promise\ | 异步释放视频录制资源方法的Promise返回值。 | +### stop -**错误码:** +stop(): void -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +停止录音。 -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400105 | Service died. Return by callback. | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -// promise -videoRecorder.release().then(() => { - console.info('release videorecorder success'); -}).catch((err) => { - console.info('release videorecorder failed and catch error is ' + err.message); +audioRecorder.on('stop', () => { //设置'stop'事件回调 + console.log('audio recorder stop success'); }); +audioRecorder.stop(); ``` -### reset9+ +### release -reset(callback: AsyncCallback\): void; +release(): void -异步方式重置视频录制。通过注册回调函数获取返回值。 +释放录音资源。 -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**示例:** -**系统接口:** 该接口为系统接口 +```js +audioRecorder.on('release', () => { //设置'release'事件回调 + console.log('audio recorder release success'); +}); +audioRecorder.release(); +audioRecorder = undefined; +``` -**参数:** +### reset -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------- | ---- | ---------------------------- | -| callback | AsyncCallback\ | 是 | 异步重置视频录制的回调方法。 | +reset(): void -**错误码:** +重置录音。 -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +进行重置录音之前,需要先调用[stop()](#audiorecorder_stop)停止录音。重置录音之后,需要调用[prepare()](#audiorecorder_prepare)设置录音参数项,才能再次进行录音。 -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **示例:** ```js -// asyncallback -videoRecorder.reset((err) => { - if (err == null) { - console.info('reset videorecorder success'); - } else { - console.info('reset videorecorder failed and error is ' + err.message); - } +audioRecorder.on('reset', () => { //设置'reset'事件回调 + console.log('audio recorder reset success'); }); +audioRecorder.reset(); ``` -### reset9+ - -reset(): Promise\; - -异步方式重置视频录制。通过Promise获取返回值。 - -需要重新调用[prepare()](#videorecorder_prepare1)和[getInputSurface()](#getinputsurface9)接口才能重新录制。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder - -**系统接口:** 该接口为系统接口 +### on('prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset') -**返回值:** +on(type: 'prepare' | 'start' | 'pause' | 'resume' | 'stop' | 'release' | 'reset', callback: () => void): void -| 类型 | 说明 | -| -------------- | ------------------------------------- | -| Promise\ | 异步重置视频录制方法的Promise返回值。 | +开始订阅音频录制事件。 -**错误码:** +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) +**参数:** -| 错误码ID | 错误信息 | -| -------- | -------------------------------- | -| 5400103 | I/O error. Return by promise. | -| 5400105 | Service died. Return by promise. | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | ---- | ------------------------------------------------------------ | +| type | string | 是 | 录制事件回调类型,支持的事件包括:'prepare' \| 'start' \| 'pause' \| ’resume‘ \| 'stop' \| 'release' \| 'reset'。
- 'prepare' :完成[prepare](#audiorecorder_prepare)调用,音频录制参数设置完成,触发该事件。
- 'start' :完成[start](#audiorecorder_start)调用,音频录制开始,触发该事件。
- 'pause': 完成[pause](#audiorecorder_pause)调用,音频暂停录制,触发该事件。
- 'resume': 完成[resume](#audiorecorder_resume)调用,音频恢复录制,触发该事件。
- 'stop' :完成[stop](#audiorecorder_stop)调用,音频停止录制,触发该事件。
- 'release' :完成[release](#audiorecorder_release)调用,音频释放录制资源,触发该事件。
- 'reset':完成[reset](#audiorecorder_reset)调用,音频重置为初始状态,触发该事件。 | +| callback | ()=>void | 是 | 录制事件回调方法。 | **示例:** ```js -// promise -videoRecorder.reset().then(() => { - console.info('reset videorecorder success'); -}).catch((err) => { - console.info('reset videorecorder failed and catch error is ' + err.message); +let audioRecorder = media.createAudioRecorder(); // 创建一个音频录制实例 +let audioRecorderConfig = { + audioEncoder : media.AudioEncoder.AAC_LC, + audioEncodeBitRate : 22050, + audioSampleRate : 22050, + numberOfChannels : 2, + format : media.AudioOutputFormat.AAC_ADTS, + uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + location : { latitude : 30, longitude : 130}, +} +audioRecorder.on('error', (error) => { // 设置'error'事件回调 + console.info(`audio error called, error: ${error}`); +}); +audioRecorder.on('prepare', () => { // 设置'prepare'事件回调 + console.log('prepare success'); + audioRecorder.start(); // 开始录制,并触发'start'事件回调 +}); +audioRecorder.on('start', () => { // 设置'start'事件回调 + console.log('audio recorder start success'); +}); +audioRecorder.on('pause', () => { // 设置'pause'事件回调 + console.log('audio recorder pause success'); +}); +audioRecorder.on('resume', () => { // 设置'resume'事件回调 + console.log('audio recorder resume success'); +}); +audioRecorder.on('stop', () => { // 设置'stop'事件回调 + console.log('audio recorder stop success'); +}); +audioRecorder.on('release', () => { // 设置'release'事件回调 + console.log('audio recorder release success'); +}); +audioRecorder.on('reset', () => { // 设置'reset'事件回调 + console.log('audio recorder reset success'); }); +audioRecorder.prepare(audioRecorderConfig) // 设置录制参数 ,并触发'prepare'事件回调 ``` -### on('error')9+ +### on('error') on(type: 'error', callback: ErrorCallback): void -开始订阅视频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 +开始订阅音频录制错误事件,当上报error错误事件后,用户需处理error事件,退出录制操作。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------- | ---- | ------------------------------------------------------------ | -| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':视频录制过程中发生错误,触发该事件。 | +| type | string | 是 | 录制错误事件回调类型'error'。
- 'error':音频录制过程中发生错误,触发该事件。 | | callback | ErrorCallback | 是 | 录制错误事件回调方法。 | -**错误码:** - -以下错误码的详细介绍请参见[媒体错误码](../errorcodes/errorcode-media.md) - -| 错误码ID | 错误信息 | -| -------- | --------------------------------- | -| 5400103 | I/O error. Return by callback. | -| 5400105 | Service died. Return by callback. | - **示例:** ```js -// 当获取videoRecordState接口出错时通过此订阅事件上报 -videoRecorder.on('error', (error) => { // 设置'error'事件回调 +let audioRecorderConfig = { + audioEncoder : media.AudioEncoder.AAC_LC, + audioEncodeBitRate : 22050, + audioSampleRate : 22050, + numberOfChannels : 2, + format : media.AudioOutputFormat.AAC_ADTS, + uri : 'fd://xx', // 文件需先由调用者创建,并给予适当的权限 + location : { latitude : 30, longitude : 130}, +} +audioRecorder.on('error', (error) => { // 设置'error'事件回调 console.info(`audio error called, error: ${error}`); -}) +}); +audioRecorder.prepare(audioRecorderConfig); // prepare不设置参数,触发'error'事件 ``` -## VideoRecordState(deprecated) - -视频录制的状态机。可通过state属性获取当前状态。 +## AudioRecorderConfig(deprecated) > **说明:** -> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +> 从API version 6开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 -**系统接口:** 该接口为系统接口 +表示音频的录音配置。 -| 名称 | 类型 | 说明 | -| -------- | ------ | ---------------------- | -| idle | string | 视频录制空闲。 | -| prepared | string | 视频录制参数设置完成。 | -| playing | string | 视频正在录制。 | -| paused | string | 视频暂停录制。 | -| stopped | string | 视频录制停止。 | -| error | string | 错误状态。 | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -## VideoRecorderConfig(deprecated) +| 名称 | 类型 | 必填 | 说明 | +| ----------------------------------- | -------------------------------------------- | ---- | ------------------------------------------------------------ | +| audioEncoder | [AudioEncoder](#audioencoderdeprecated) | 否 | 音频编码格式,默认设置为AAC_LC。
**说明:** 从API version 8开始废弃,建议使用audioEncoderMime替代。 | +| audioEncodeBitRate | number | 否 | 音频编码比特率,默认值为48000。 | +| audioSampleRate | number | 否 | 音频采集采样率,默认值为48000。 | +| numberOfChannels | number | 否 | 音频采集声道数,默认值为2。 | +| format | [AudioOutputFormat](#audiooutputformatdeprecated) | 否 | 音频输出封装格式,默认设置为MPEG_4。
**说明:** 从API version 8开始废弃,建议使用fileFormat替代。 | +| location | [Location](#location) | 否 | 音频采集的地理位置。 | +| uri | string | 是 | 音频输出URI:fd://xx (fd number)
![](figures/zh-cn_image_url.png)
文件需要由调用者创建,并赋予适当的权限。 | +| audioEncoderMime8+ | [CodecMimeType](#codecmimetype8) | 否 | 音频编码格式。 | +| fileFormat8+ | [ContainerFormatType](#containerformattype8) | 否 | 音频编码格式。 | -表示视频录制的参数设置。 +## AudioEncoder(deprecated) > **说明:** -> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorderConfig](#avrecorderconfig9)替代。 - -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +> 从API version 6开始支持,从API version 8开始废弃,建议使用[CodecMimeType](#codecmimetype8)替代。 -**系统接口:** 该接口为系统接口 +表示音频编码格式的枚举。 -| 名称 | 类型 | 必填 | 说明 | -| --------------- | ---------------------------------------------- | ---- | ------------------------------------------------------------ | -| audioSourceType | [AudioSourceType](#audiosourcetype9) | 是 | 视频录制的音频源类型。 | -| videoSourceType | [VideoSourceType](#videosourcetype9) | 是 | 视频录制的视频源类型。 | -| profile | [VideoRecorderProfile](#videorecorderprofile9) | 是 | 视频录制的profile。 | -| rotation | number | 否 | 录制视频的旋转角度。 | -| location | [Location](#location) | 否 | 录制视频的地理位置。 | -| url | string | 是 | 视频输出URL:fd://xx (fd number)
![](figures/zh-cn_image_url.png) | +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -## VideoRecorderProfile(deprecated)
+| 名称 | 值 | 说明 | +| ------- | ---- | ------------------------------------------------------------ | +| DEFAULT | 0 | 默认编码格式。
仅做接口定义,暂不支持使用。 | +| AMR_NB | 1 | AMR-NB(Adaptive Multi Rate-Narrow Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | +| AMR_WB | 2 | AMR-WB(Adaptive Multi Rate-Wide Band Speech Codec) 编码格式。
仅做接口定义,暂不支持使用。 | +| AAC_LC | 3 | AAC-LC(Advanced Audio Coding Low Complexity)编码格式。 | +| HE_AAC | 4 | HE_AAC(High-Efficiency Advanced Audio Coding)编码格式。
仅做接口定义,暂不支持使用。 | -视频录制的配置文件。 +## AudioOutputFormat(deprecated) > **说明:** -> 从API version 9开始支持,从API version 9开始废弃,建议使用[AVRecorderProfile](#avrecorderprofile9)替代。 +> 从API version 6开始支持,从API version 8 开始废弃,建议使用[ContainerFormatType](#containerformattype8)替代。 -**系统能力:** SystemCapability.Multimedia.Media.VideoRecorder +表示音频封装格式的枚举。 -**系统接口:** 该接口为系统接口 +**系统能力:** SystemCapability.Multimedia.Media.AudioRecorder -| 名称 | 类型 | 必填 | 说明 | -| ---------------- | -------------------------------------------- | ---- | ---------------- | -| audioBitrate | number | 是 | 音频编码比特率。 | -| audioChannels | number | 是 | 音频采集声道数。 | -| audioCodec | [CodecMimeType](#codecmimetype8) | 是 | 音频编码格式。 | -| audioSampleRate | number | 是 | 音频采样率。 | -| fileFormat | [ContainerFormatType](#containerformattype8) | 是 | 文件的容器格式。 | -| videoBitrate | number | 是 | 视频编码比特率。 | -| videoCodec | [CodecMimeType](#codecmimetype8) | 是 | 视频编码格式。 | -| videoFrameWidth | number | 是 | 录制视频帧的宽。 | -| videoFrameHeight | number | 是 | 录制视频帧的高。 | -| videoFrameRate | number | 是 | 录制视频帧率。 | \ No newline at end of file +| 名称 | 值 | 说明 | +| -------- | ---- | ------------------------------------------------------------ | +| DEFAULT | 0 | 默认封装格式。
仅做接口定义,暂不支持使用。 | +| MPEG_4 | 2 | 封装为MPEG-4格式。 | +| AMR_NB | 3 | 封装为AMR_NB格式。
仅做接口定义,暂不支持使用。 | +| AMR_WB | 4 | 封装为AMR_WB格式。
仅做接口定义,暂不支持使用。 | +| AAC_ADTS | 6 | 封装为ADTS(Audio Data Transport Stream)格式,是AAC音频的传输流格式。 | -- GitLab From 9260e342d10771b27d399eed051e5e948ba70020 Mon Sep 17 00:00:00 2001 From: sqwlly Date: Sat, 14 Jan 2023 19:51:54 +0800 Subject: [PATCH 252/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- .../reference/apis/js-apis-media.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 9969373240..6939c61a8b 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1129,6 +1129,29 @@ off(type: 'availableBitrates'): void avPlayer.off('availableBitrates') ``` +### setAudioRendererInfo9+ + +`setAudioRendererInfo(contentType: audio.ContentType, streamUsage: audio.StreamUsage, rendererFlags: number): void;` + +设置音频渲染信息,只能在prepare之前调用。 + +**系统能力:** SystemCapability.Multimedia.Media.AVPlayer + +**参数:** + +| 参数名 | 类型 | 必填 | 说明 | +| ------ | ------ | ---- | ------------------------------------------------------------ | +| contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容,0代表未知,1代表语音,2代表音乐,3代表视频,4代表通知,5代表铃声。 | +| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。 0代表未知,1代表媒体音,2代表交流音,3代表助手音,6代表通知铃声音| |------ | ------ | ---- | ------------------------------------------------------------ | +| rendererFlags | number | 否 | 目前用不到,默认为0,后续扩展低功耗低时延可能会用到 | + +**示例:** + +```js +let contentType = 1, streamUsage = 2, rendererFlags = 0 +avPlayer.setAudioRendererInfo(contentType, streamUsage, rendererFlags) +``` + ### setVolume9+ setVolume(volume: number): void -- GitLab From 07416bb74192ce80c7ed59fe1e336444d73dd3fb Mon Sep 17 00:00:00 2001 From: sqwlly Date: Sat, 14 Jan 2023 19:54:40 +0800 Subject: [PATCH 253/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- zh-cn/application-dev/reference/apis/js-apis-media.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 6939c61a8b..7527536c54 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1142,7 +1142,7 @@ avPlayer.off('availableBitrates') | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------------------------------------------------------ | | contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容,0代表未知,1代表语音,2代表音乐,3代表视频,4代表通知,5代表铃声。 | -| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。 0代表未知,1代表媒体音,2代表交流音,3代表助手音,6代表通知铃声音| |------ | ------ | ---- | ------------------------------------------------------------ | +| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。 0代表未知,1代表媒体音,2代表交流音,3代表助手音,6代表通知铃声音| | rendererFlags | number | 否 | 目前用不到,默认为0,后续扩展低功耗低时延可能会用到 | **示例:** -- GitLab From 2a54416baa4eb3409280ccb7a816823bf154b0a4 Mon Sep 17 00:00:00 2001 From: sqwlly Date: Sat, 14 Jan 2023 20:11:16 +0800 Subject: [PATCH 254/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- zh-cn/application-dev/reference/apis/js-apis-media.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 7527536c54..2b180ded09 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1141,15 +1141,13 @@ avPlayer.off('availableBitrates') | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------------------------------------------------------ | -| contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容,0代表未知,1代表语音,2代表音乐,3代表视频,4代表通知,5代表铃声。 | -| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。 0代表未知,1代表媒体音,2代表交流音,3代表助手音,6代表通知铃声音| -| rendererFlags | number | 否 | 目前用不到,默认为0,后续扩展低功耗低时延可能会用到 | - +| contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容,0代表未知,1代表语音,2代表音乐,3代表电影,4代表加密类型,5代表铃声。 | +| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。 0代表未知,1代表音频,2代表语音通信,3代表语音播报,4代表闹钟,6代表通知铃声| **示例:** ```js -let contentType = 1, streamUsage = 2, rendererFlags = 0 -avPlayer.setAudioRendererInfo(contentType, streamUsage, rendererFlags) +let contentType = 5, streamUsage = 6 +avPlayer.setAudioRendererInfo(contentType, streamUsage) ``` ### setVolume9+ -- GitLab From 9e601ccff7bf9e99cce6ebe7a79123d1809a39d3 Mon Sep 17 00:00:00 2001 From: sqwlly Date: Sat, 14 Jan 2023 20:14:24 +0800 Subject: [PATCH 255/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- zh-cn/application-dev/reference/apis/js-apis-media.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 2b180ded09..a6327d026d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1131,7 +1131,7 @@ avPlayer.off('availableBitrates') ### setAudioRendererInfo9+ -`setAudioRendererInfo(contentType: audio.ContentType, streamUsage: audio.StreamUsage, rendererFlags: number): void;` +`setAudioRendererInfo(contentType: audio.ContentType, streamUsage: audio.StreamUsage): void;` 设置音频渲染信息,只能在prepare之前调用。 @@ -1141,8 +1141,8 @@ avPlayer.off('availableBitrates') | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------------------------------------------------------ | -| contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容,0代表未知,1代表语音,2代表音乐,3代表电影,4代表加密类型,5代表铃声。 | -| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。 0代表未知,1代表音频,2代表语音通信,3代表语音播报,4代表闹钟,6代表通知铃声| +| contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容。0代表未知,1代表语音,2代表音乐,3代表电影,4代表加密类型,5代表铃声。 | +| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。0代表未知,1代表音频,2代表语音通信,3代表语音播报,4代表闹钟,6代表通知铃声| **示例:** ```js -- GitLab From b94fa2a17411be2561a59ac6031236d2c376897f Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Sun, 15 Jan 2023 09:41:12 +0800 Subject: [PATCH 256/383] update docs Signed-off-by: Annie_wang --- .../reference/apis/Readme-EN.md | 15 ++-- .../apis/js-apis-abilityAccessCtrl.md | 2 +- .../reference/apis/js-apis-privacyManager.md | 2 +- .../apis/js-apis-system-capability.md | 79 +++++++++++++++++++ .../reference/apis/js-apis-system-cipher.md | 6 +- .../apis/js-apis-useriam-faceauth.md | 2 +- .../apis/js-apis-useriam-userauth.md | 2 +- 7 files changed, 94 insertions(+), 14 deletions(-) create mode 100644 en/application-dev/reference/apis/js-apis-system-capability.md diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md index 35e00ce945..bc4ba6d55f 100644 --- a/en/application-dev/reference/apis/Readme-EN.md +++ b/en/application-dev/reference/apis/Readme-EN.md @@ -187,13 +187,13 @@ - [@ohos.resourceschedule.usageStatistics](js-apis-resourceschedule-deviceUsageStatistics.md) - [@ohos.WorkSchedulerExtensionAbility](js-apis-WorkSchedulerExtensionAbility.md) - Security - - [@ohos.abilityAccessCtrl](js-apis-abilityAccessCtrl.md) - - [@ohos.privacyManager](js-apis-privacyManager.md) - - [@ohos.security.cryptoFramework](js-apis-cryptoFramework.md) - - [@ohos.security.huks ](js-apis-huks.md) - - [@ohos.userIAM.faceAuth](js-apis-useriam-faceauth.md) - - [@ohos.userIAM.userAuth ](js-apis-useriam-userauth.md) - - [@system.cipher](js-apis-system-cipher.md) + - [@ohos.abilityAccessCtrl (Ability Access Control)](js-apis-abilityAccessCtrl.md) + - [@ohos.privacyManager (Privacy Management)](js-apis-privacyManager.md) + - [@ohos.security.cryptoFramework (Crypto Framework)](js-apis-cryptoFramework.md) + - [@ohos.security.huks (HUKS)](js-apis-huks.md) + - [@ohos.userIAM.faceAuth (Facial Authentication)](js-apis-useriam-faceauth.md) + - [@ohos.userIAM.userAuth (User Authentication)](js-apis-useriam-userauth.md) + - [@system.cipher (Cipher Algorithm)](js-apis-system-cipher.md) - Data Management - [@ohos.data.dataAbility ](js-apis-data-ability.md) - [@ohos.data.dataShare](js-apis-data-dataShare.md) @@ -294,6 +294,7 @@ - [@ohos.sensor](js-apis-sensor.md) - [@ohos.settings](js-apis-settings.md) - [@ohos.stationary](js-apis-stationary.md) + - [@ohos.systemCapability (SystemCapability)](js-apis-system-capability.md) - [@ohos.systemParameterV9](js-apis-system-parameterV9.md) - [@ohos.thermal](js-apis-thermal.md) - [@ohos.update](js-apis-update.md) diff --git a/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md b/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md index d593cf5a61..ed59083949 100644 --- a/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md +++ b/en/application-dev/reference/apis/js-apis-abilityAccessCtrl.md @@ -1,4 +1,4 @@ -# Ability Access Control +# @ohos.abilityAccessCtrl (Ability Access Control) The **AbilityAccessCtrl** module provides APIs for application permission management, including authentication, authorization, and revocation. diff --git a/en/application-dev/reference/apis/js-apis-privacyManager.md b/en/application-dev/reference/apis/js-apis-privacyManager.md index cf518ed93a..4d7ffb05e8 100644 --- a/en/application-dev/reference/apis/js-apis-privacyManager.md +++ b/en/application-dev/reference/apis/js-apis-privacyManager.md @@ -1,4 +1,4 @@ -# Privacy Management +# @ohos.privacyManager (Privacy Management) The **privacyManager** module provides APIs for privacy management, such as management of permission usage records. diff --git a/en/application-dev/reference/apis/js-apis-system-capability.md b/en/application-dev/reference/apis/js-apis-system-capability.md new file mode 100644 index 0000000000..7949bae988 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-system-capability.md @@ -0,0 +1,79 @@ +# @ohos.systemCapability (SystemCapability) + +System capability (SysCap) refers to a relatively independent feature in the operating system. Different devices provide different system capabilities, and multiple APIs implement a system capability. You can determine whether an API can be used based on system capabilities. This module provides APIs for querying the set of system capabilities. + +> **NOTE** +> +> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - The APIs provided by this module are system APIs. + + +## Modules to Import + +```ts +import systemcapability from '@ohos.systemCapability' +``` + +## systemcapability.querySystemCapabilities + +querySystemCapabilities(callback: AsyncCallback): void; + +Queries system capabilities. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Developtools.Syscap + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback | Yes| Callback invoked to return the result.| + + +**Example** + +```ts +try { + systemcapability.querySystemCapabilities(function (err, data) { + if (err == undefined) { + console.log("get system capabilities:" + data) + } else { + console.log(" get system capabilities err:" + err.code) + }}); +}catch(e){ + console.log("get unexpected error: " + e); +} +``` + + +## systemcapability.querySystemCapabilities + +querySystemCapabilities(): Promise<string> + +Queries system capabilities. This API uses a promise to return the result. + +**System capability**: SystemCapability.Startup.SystemInfo + +**Return value** + +| Type| Description| +| -------- | -------- | +| Promise<string> | Promise used to return the result.| + +**Example** + +```ts +try { + var p = systemcapability.querySystemCapabilities(); + p.then(function (value) { + console.log("get system capabilities: " + value); + }).catch(function (err) { + console.log("get system capabilities error: " + err.code); + }); +}catch(e){ + console.log("get unexpected error: " + e); +} +``` + + +> **NOTE** +> - The system capabilities returned by the preceding APIs are in the form of an encoded numeric string. diff --git a/en/application-dev/reference/apis/js-apis-system-cipher.md b/en/application-dev/reference/apis/js-apis-system-cipher.md index 6812d87828..dddb6a685f 100644 --- a/en/application-dev/reference/apis/js-apis-system-cipher.md +++ b/en/application-dev/reference/apis/js-apis-system-cipher.md @@ -1,6 +1,6 @@ -# Encryption Algorithm +# @system.cipher (Cipher Algorithm) -> **NOTE**
+> **NOTE** > > The initial APIs of this module are supported since API version 3. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -31,7 +31,7 @@ Defines the input parameters of **cipher.rsa()**. | Name | Type | Mandatory| Description | | -------------- | ------------------------------------ | ---- | ------------------------------------------------------------ | | action | string | Yes | Action to perform. The options are as follows:
1. **encrypt**: Encrypts data.
2. **decrypt**: Decrypts data.| -| text | string | Yes | Text to be encrypted or decrypted.
The text to be encrypted must be a common text and cannot exceed the length calculated based on the formula (keySize/8 - 66). **keySize** indicates the key length. For example, if the key length is 1024 bytes, the text cannot exceed 62 bytes (1024/8 - 66 = 62). The text to be decrypted must be a binary value encoded in Base64. The default format is used for Base64 encoding.| +| text | string | Yes | Text to be encrypted or decrypted.
The text to be encrypted must be a common text and cannot exceed the length calculated based on the formula (keySize/8 - 66). **keySize** indicates the key length.
For example, if the key length is 1024 bytes, the text cannot exceed 62 bytes (1024/8 - 66 = 62). The text to be decrypted must be a binary value encoded in Base64. The default format is used for Base64 encoding. | | key | string | Yes | RSA key. It is a public key in encryption and a private key in decryption. | | transformation | string | No | RSA padding. The default value is **RSA/None/OAEPWithSHA256AndMGF1Padding**.| | success | (data: [CipherResponse](#cipherresponse)) => void | No | Called when data is encrypted or decrypted successfully. | diff --git a/en/application-dev/reference/apis/js-apis-useriam-faceauth.md b/en/application-dev/reference/apis/js-apis-useriam-faceauth.md index 9a45d1fe8f..81fac3a36b 100644 --- a/en/application-dev/reference/apis/js-apis-useriam-faceauth.md +++ b/en/application-dev/reference/apis/js-apis-useriam-faceauth.md @@ -1,4 +1,4 @@ -# Facial Authentication +# @ohos.userIAM.faceAuth (Facial Authentication) The **userIAM.faceAuth** module provides APIs for face enrollment. diff --git a/en/application-dev/reference/apis/js-apis-useriam-userauth.md b/en/application-dev/reference/apis/js-apis-useriam-userauth.md index ce73ba0bcd..64e92b13da 100644 --- a/en/application-dev/reference/apis/js-apis-useriam-userauth.md +++ b/en/application-dev/reference/apis/js-apis-useriam-userauth.md @@ -1,4 +1,4 @@ -# User Authentication +# @ohos.userIAM.userAuth (User Authentication) The **userIAM.userAuth** module provides user authentication capabilities in identity authentication scenarios, such as device unlocking, payment, and app login. -- GitLab From ac32fec2f345971537eafed7ee0c067f37f3b144 Mon Sep 17 00:00:00 2001 From: sqwlly Date: Mon, 16 Jan 2023 09:26:39 +0800 Subject: [PATCH 257/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- .../reference/apis/js-apis-media.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index a6327d026d..fbf2d7415c 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1129,9 +1129,9 @@ off(type: 'availableBitrates'): void avPlayer.off('availableBitrates') ``` -### setAudioRendererInfo9+ +### setAudioRendererInfo10+ -`setAudioRendererInfo(contentType: audio.ContentType, streamUsage: audio.StreamUsage): void;` +`setAudioRendererInfo(options: audio.AudioRendererInfo): void;` 设置音频渲染信息,只能在prepare之前调用。 @@ -1141,13 +1141,16 @@ avPlayer.off('availableBitrates') | 参数名 | 类型 | 必填 | 说明 | | ------ | ------ | ---- | ------------------------------------------------------------ | -| contentType| audio.ContentType | 是 | 指定音频内容,取值范围为[0, 5],分别代表不同音频内容。0代表未知,1代表语音,2代表音乐,3代表电影,4代表加密类型,5代表铃声。 | -| streamUsage | audio.StreamUsage | 是 | 指定音频用处,取值范围为[0, 1, 2, 3, 4, 6]这几个整数。0代表未知,1代表音频,2代表语音通信,3代表语音播报,4代表闹钟,6代表通知铃声| +| audioRendererInfo | audio.audioRendererInfo | 是 | 指定音频渲染信息。 | **示例:** ```js -let contentType = 5, streamUsage = 6 -avPlayer.setAudioRendererInfo(contentType, streamUsage) +let audioRendererInfo = { + content : audio.ContentType.CONTENT_TYPE_SONIFICATION, + usage : audio.StreamUsage.STREAM_USAGE_MEDIA, + rendererFlags : 0 +} +avPlayer.setAudioRendererInfo(audioRendererInfo) ``` ### setVolume9+ -- GitLab From 98bf609efa92f9ac789a363f4cc0c8fd9f45a2e3 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Mon, 16 Jan 2023 09:42:52 +0800 Subject: [PATCH 258/383] update docs Signed-off-by: zengyawen --- .../figures/zh-cn_image_0000001275586896.png | Bin 24367 -> 0 bytes .../figures/zh-cn_image_0000001285806330.png | Bin 14453 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001275586896.png delete mode 100644 zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001285806330.png diff --git a/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001275586896.png b/zh-cn/device-dev/quick-start/figures/zh-cn_image_0000001275586896.png deleted file mode 100644 index cee1d83517ee1fced5373f51cefb12e91346e947..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24367 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

m!8r83!pM8 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 bce%w)dZ&d}r~r2Wfedb&+(PTzfBHWF4QZ%M -- GitLab From 141fbfd608f773293c7f9fc73e65894c4792fb57 Mon Sep 17 00:00:00 2001 From: sqwlly Date: Mon, 16 Jan 2023 10:06:30 +0800 Subject: [PATCH 259/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- .../reference/apis/js-apis-media.md | 25 +------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index fbf2d7415c..bd6b6bff16 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -282,6 +282,7 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla | loop9+ | boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认SHARE_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | +| audioRendererInfo10+ | [audio.AudioRendererInfo](js-apis-audio.md#audioRendererInfo8) | 是 | 是 | 设置音频渲染信息。
只允许在**prepared**之前设置 | | state9+ | [AVPlayerState](#avplayerstate9) | 是 | 否 | 音视频播放的状态,全状态有效,可查询参数。 | | currentTime9+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | | duration9+
| number | 是 | 否 | 视频时长,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。
直播场景默认返回(-1)。 | @@ -1129,30 +1130,6 @@ off(type: 'availableBitrates'): void avPlayer.off('availableBitrates') ``` -### setAudioRendererInfo10+ - -`setAudioRendererInfo(options: audio.AudioRendererInfo): void;` - -设置音频渲染信息,只能在prepare之前调用。 - -**系统能力:** SystemCapability.Multimedia.Media.AVPlayer - -**参数:** - -| 参数名 | 类型 | 必填 | 说明 | -| ------ | ------ | ---- | ------------------------------------------------------------ | -| audioRendererInfo | audio.audioRendererInfo | 是 | 指定音频渲染信息。 | -**示例:** - -```js -let audioRendererInfo = { - content : audio.ContentType.CONTENT_TYPE_SONIFICATION, - usage : audio.StreamUsage.STREAM_USAGE_MEDIA, - rendererFlags : 0 -} -avPlayer.setAudioRendererInfo(audioRendererInfo) -``` - ### setVolume9+ setVolume(volume: number): void -- GitLab From 3868b6d91c00916fe1ea64daacfeab91a018da06 Mon Sep 17 00:00:00 2001 From: sqwlly Date: Mon, 16 Jan 2023 10:23:19 +0800 Subject: [PATCH 260/383] =?UTF-8?q?=E9=9F=B3=E9=A2=91=E6=B8=B2=E6=9F=93?= =?UTF-8?q?=E8=B5=84=E6=96=99=20Signed-off-by:=20s30029175=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: sqwlly --- zh-cn/application-dev/reference/apis/js-apis-media.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index bd6b6bff16..389679b960 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -282,7 +282,7 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla | loop9+ | boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认SHARE_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | -| audioRendererInfo10+ | [audio.AudioRendererInfo](js-apis-audio.md#audioRendererInfo8) | 是 | 是 | 设置音频渲染信息。
只允许在**prepared**之前设置 | +| audioRendererInfo10+ | [audio.AudioRendererInfo](js-apis-audio.md#audioRendererInfo8) | 是 | 是 | 设置音频渲染信息。
只允许在**initialized**状态下设置 | | state9+ | [AVPlayerState](#avplayerstate9) | 是 | 否 | 音视频播放的状态,全状态有效,可查询参数。 | | currentTime9+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | | duration9+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。
直播场景默认返回(-1)。 | -- GitLab From ad1181841cb71beaa45c5f7a38e527066e6cb1fd Mon Sep 17 00:00:00 2001 From: ningning <3248127340@qq.com> Date: Mon, 16 Jan 2023 02:52:28 +0000 Subject: [PATCH 261/383] update zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md. Signed-off-by: ningning <3248127340@qq.com> --- .../reference/apis/js-apis-deviceUsageStatistics.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md b/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md index dfe87bb5e4..5f8f053d7e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md +++ b/zh-cn/application-dev/reference/apis/js-apis-deviceUsageStatistics.md @@ -458,15 +458,15 @@ queryCurrentBundleActiveStates(begin: number, end: number): Promise<Array< merge(toMerge: BundleStateInfo): void -Merges the application usage information that has the same bundle name. +合并相同包名的应用使用信息。 -**System capability**: SystemCapability.ResourceSchedule.UsageStatistics.App +**系统能力**:SystemCapability.ResourceSchedule.UsageStatistics.App -**Parameters** +**参数**: -| Name | Type | Mandatory | Description | -| ------- | ----------------------------------- | ---- | -------------- | -| toMerge | [BundleStateInfo](#bundlestateinfo) | Yes | Application usage information to merge.| +| 参数名 | 类型 | 必填 | 说明 | +| -------- | -------- | -------- | -------- | +| toMerge | [BundleStateInfo](#bundlestateinfo) | 是 | 相同包名的应用使用统计信息。| ## BundleActiveState -- GitLab From e1a23c22e209bd928ec748179c170a48c5e5534e Mon Sep 17 00:00:00 2001 From: SoftSquirrel Date: Mon, 16 Jan 2023 11:12:45 +0800 Subject: [PATCH 262/383] =?UTF-8?q?Issue:#I6AOG3=20Description:=20?= =?UTF-8?q?=E5=8C=85=E7=AE=A1=E7=90=86=E4=B8=8D=E8=A7=A3=E5=8E=8B=E9=9C=80?= =?UTF-8?q?=E6=B1=82changelog=20Sig:=20SIG=5FApplicaitonFramework=20Featur?= =?UTF-8?q?e=20or=20Bugfix:=20Feature=20Binary=20Source:=20No?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: SoftSquirrel --- .../changelogs-bundlemanager.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md index a1521cfc0f..4a948f73fc 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md @@ -78,4 +78,17 @@ error: install parse profile prop check error. error: install parse profile prop check error. ``` -对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 \ No newline at end of file +对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 + +## cl.bundlemanager.4 底层能力变更,安装hap时,hap中的文件不再解压到安装目录。 + +安装hap后,安装目录下只会存在hap文件,应用不能再使用拼接路径访问解压后的资源文件,应用想要访问资源文件,需要使用标准的资源管理接口。 + +**变更影响**
+如果应用使用拼接路径的形式访问资源文件,会访问失败。需要修改成使用资源管理接口访问资源文件。 + +**关键的接口/组件变更**
+不涉及接口及组件变更 + +**适配指导**
+资源管理子系统提供Js接口访问资源文件。参考[访问资源文件](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-resource-manager.md#getrawfilecontent9) -- GitLab From 58bcde3ed60401b8c434bfe2dff74c497c977422 Mon Sep 17 00:00:00 2001 From: zengyawen Date: Mon, 16 Jan 2023 11:16:26 +0800 Subject: [PATCH 263/383] update docs Signed-off-by: zengyawen --- .../reference/native-apis/Readme-CN.md | 26 - ...ion_1_1_a_v_playback_state_1_1_position.md | 42 - ...a_v_session_1_1_a_v_controller_callback.md | 136 --- ...1_1_a_v_session_1_1_a_v_control_command.md | 400 -------- ...h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md | 926 ------------------ ..._1_1_a_v_session_1_1_a_v_playback_state.md | 502 ---------- ...o_h_o_s_1_1_a_v_session_1_1_a_v_session.md | 346 ------- ..._1_a_v_session_1_1_a_v_session_callback.md | 215 ---- ...1_1_a_v_session_1_1_a_v_session_manager.md | 300 ------ ...1_a_v_session_1_1_a_v_session_pixel_map.md | 154 --- ..._1_1_a_v_session_1_1_output_device_info.md | 25 - ..._s_1_1_a_v_session_1_1_session_listener.md | 95 -- ...h_o_s_1_1_a_v_session_1_1_session_token.md | 53 - .../reference/native-apis/av__session_8h.md | 24 - .../native-apis/avcontrol__command_8h.md | 24 - .../reference/native-apis/avmeta__data_8h.md | 24 - .../native-apis/avplayback__state_8h.md | 25 - .../reference/native-apis/avsession.md | 469 --------- .../native-apis/avsession__controller_8h.md | 24 - .../native-apis/avsession__descriptor_8h.md | 26 - .../native-apis/avsession__errors_8h.md | 268 ----- .../native-apis/avsession__info_8h.md | 75 -- .../native-apis/avsession__manager_8h.md | 24 - .../native-apis/avsession__pixel__map_8h.md | 44 - ..._a_v_session_1_1_a_v_session_basic_info.md | 37 - ..._a_v_session_1_1_a_v_session_controller.md | 328 ------- ..._a_v_session_1_1_a_v_session_descriptor.md | 41 - 27 files changed, 4653 deletions(-) delete mode 100644 zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md delete mode 100644 zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md delete mode 100644 zh-cn/application-dev/reference/native-apis/av__session_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession__info_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md delete mode 100644 zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md delete mode 100644 zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md delete mode 100644 zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md diff --git a/zh-cn/application-dev/reference/native-apis/Readme-CN.md b/zh-cn/application-dev/reference/native-apis/Readme-CN.md index 523617f1f2..7aa501d679 100644 --- a/zh-cn/application-dev/reference/native-apis/Readme-CN.md +++ b/zh-cn/application-dev/reference/native-apis/Readme-CN.md @@ -12,7 +12,6 @@ - [Rawfile](rawfile.md) - [MindSpore](_mind_spore.md) - [NeuralNeworkRuntime](_neural_nework_runtime.md) - - [Avsession](avsession.md) - [AudioDecoder](_audio_decoder.md) - [AudioEncoder](_audio_encoder.md) - [CodecBase](_codec_base.md) @@ -52,16 +51,6 @@ - [types.h](types_8h.md) - [neural_network_runtime_type.h](neural__network__runtime__type_8h.md) - [neural_network_runtime.h](neural__network__runtime_8h.md) - - [av_session.h](av__session_8h.md) - - [avcontrol_command.h](avcontrol__command_8h.md) - - [avmeta_data.h](avmeta__data_8h.md) - - [avplayback_state.h](avplayback__state_8h.md) - - [avsession_controller.h](avsession__controller_8h.md) - - [avsession_descriptor.h](avsession__descriptor_8h.md) - - [avsession_errors.h](avsession__errors_8h.md) - - [avsession_info.h](avsession__info_8h.md) - - [avsession_manager.h](avsession__manager_8h.md) - - [avsession_pixel_map.h](avsession__pixel__map_8h.md) - [native_avcodec_audiodecoder.h](native__avcodec__audiodecoder_8h.md) - [native_avcodec_audioencoder.h](native__avcodec__audioencoder_8h.md) - [native_avcodec_base.h](native__avcodec__base_8h.md) @@ -96,21 +85,6 @@ - [OH_NN_UInt32Array](_o_h___n_n___u_int32_array.md) - [OH_AVCodecAsyncCallback](_o_h___a_v_codec_async_callback.md) - [OH_AVCodecBufferAttr](_o_h___a_v_codec_buffer_attr.md) - - [OHOS::AVSession::AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md) - - [OHOS::AVSession::AVControllerCallback](_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md) - - [OHOS::AVSession::AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) - - [OHOS::AVSession::AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) - - [OHOS::AVSession::AVPlaybackState::Position](_1_a_v_session_1_1_a_v_playback_state_1_1_position.md) - - [OHOS::AVSession::AVSession](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md) - - [OHOS::AVSession::AVSessionBasicInfo](o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md) - - [OHOS::AVSession::AVSessionCallback](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md) - - [OHOS::AVSession::AVSessionController](o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md) - - [OHOS::AVSession::AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) - - [OHOS::AVSession::AVSessionManager](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md) - - [OHOS::AVSession::AVSessionPixelMap](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md) - - [OHOS::AVSession::OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) - - [OHOS::AVSession::SessionListener](_o_h_o_s_1_1_a_v_session_1_1_session_listener.md) - - [OHOS::AVSession::SessionToken](_o_h_o_s_1_1_a_v_session_1_1_session_token.md) - [OH_Huks_Blob](_o_h___huks___blob.md) - [OH_Huks_CertChain](_o_h___huks___cert_chain.md) - [OH_Huks_KeyInfo](_o_h___huks___key_info.md) diff --git a/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md b/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md deleted file mode 100644 index c9c21886df..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_1_a_v_session_1_1_a_v_playback_state_1_1_position.md +++ /dev/null @@ -1,42 +0,0 @@ -# OHOS::AVSession::AVPlaybackState::Position - - -## 概述 - -播放位置的相关信息。 - -**起始版本:** -9 - -## 汇总 - - -### 成员变量 - -| 名称 | 描述 | -| -------- | -------- | -| [elapsedTime_](#elapsedtime) {} | int64_t
媒体已经播放的时间点,第x ms,单位为ms  | -| [updateTime_](#updatetime) {} | int64_t
更新的时间戳,单位为ms  | - - -## 结构体成员变量说明 - - -### elapsedTime_ - - -``` -int64_t OHOS::AVSession::AVPlaybackState::Position::elapsedTime_ {} -``` -**描述:** -媒体已经播放的时间点,第x ms,单位为ms - - -### updateTime_ - - -``` -int64_t OHOS::AVSession::AVPlaybackState::Position::updateTime_ {} -``` -**描述:** -更新的时间戳,单位为ms diff --git a/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md b/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md deleted file mode 100644 index e22742620f..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md +++ /dev/null @@ -1,136 +0,0 @@ -# OHOS::AVSession::AVControllerCallback - - -## 概述 - -定义控制器相关回调操作的类的实现。 - -**起始版本:** -9 - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [OnSessionDestroy](#onsessiondestroy) ()=0 | AVSession会话销毁的抽象的回调方法。  | -| [OnPlaybackStateChange](#onplaybackstatechange) (const [AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) &state)=0 | 音视频的播放状态发生改变的抽象的回调方法。  | -| [OnMetaDataChange](#onmetadatachange) (const [AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) &data)=0 | 会话元数据内容发生变化的抽象的回调方法。  | -| [OnActiveStateChange](#onactivestatechange) (bool isActive)=0 | 当前会话激活状态发生改变的抽象的回调方法。  | -| [OnValidCommandChange](#onvalidcommandchange) (const std::vector< int32_t > &cmds)=0 | 控制命令的有效性发生变化的抽象的回调方法。  | -| [OnOutputDeviceChange](#onoutputdevicechange) (const [OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) &outputDeviceInfo)=0 | 注册会话输出设备更改。  | -| [~AVControllerCallback](#avcontrollercallback) ()=default | AVControllerCallback的默认的析构函数。  | - - -## 构造及析构函数说明 - - -### ~AVControllerCallback() - - -``` -virtual OHOS::AVSession::AVControllerCallback::~AVControllerCallback () -``` -**描述:** -AVControllerCallback的默认的析构函数。 - - -## 成员函数说明 - - -### OnActiveStateChange() - - -``` -virtual void OHOS::AVSession::AVControllerCallback::OnActiveStateChange (bool isActive) -``` -**描述:** -当前会话激活状态发生改变的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| isActive | 表示是否激活。  | - - -### OnMetaDataChange() - - -``` -virtual void OHOS::AVSession::AVControllerCallback::OnMetaDataChange (const AVMetaData & data) -``` -**描述:** -会话元数据内容发生变化的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 会话元数据内容,类型为[AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md)。  | - -**参见:** - -[AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) - - -### OnOutputDeviceChange() - - -``` -virtual void OHOS::AVSession::AVControllerCallback::OnOutputDeviceChange (const OutputDeviceInfo & outputDeviceInfo) -``` -**描述:** -注册会话输出设备更改。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| outputDeviceInfo | 输出设备信息 [OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md)。  | - - -### OnPlaybackStateChange() - - -``` -virtual void OHOS::AVSession::AVControllerCallback::OnPlaybackStateChange (const AVPlaybackState & state) -``` -**描述:** -音视频的播放状态发生改变的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| state | 音视频的播放状态的枚举值,类型为[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)。  | - - -### OnSessionDestroy() - - -``` -virtual void OHOS::AVSession::AVControllerCallback::OnSessionDestroy () -``` -**描述:** -AVSession会话销毁的抽象的回调方法。 - - -### OnValidCommandChange() - - -``` -virtual void OHOS::AVSession::AVControllerCallback::OnValidCommandChange (const std::vector< int32_t > & cmds) -``` -**描述:** -控制命令的有效性发生变化的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| cmds,媒体有效的指令列表,范围为{ | | - - \ No newline at end of file diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md deleted file mode 100644 index b6af07bf0f..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md +++ /dev/null @@ -1,400 +0,0 @@ -# OHOS::AVSession::AVControlCommand - - -## 概述 - -用于描述音视频播控命令工具类,播控命令的封装对象,支持设置和获取控制命令。 - - -## 汇总 - - -### Public 类型 - - | 名称 | 描述 | -| -------- | -------- | -| {
**SESSION_CMD_INVALID** = -1, **SESSION_CMD_PLAY** = 0, **SESSION_CMD_PAUSE** = 1, **SESSION_CMD_STOP** = 2, **SESSION_CMD_PLAY_NEXT** = 3, **SESSION_CMD_PLAY_PREVIOUS** = 4, **SESSION_CMD_FAST_FORWARD** = 5, **SESSION_CMD_REWIND** = 6, **SESSION_CMD_SEEK** = 7, **SESSION_CMD_SET_SPEED** = 8, **SESSION_CMD_SET_LOOP_MODE** = 9, **SESSION_CMD_TOGGLE_FAVORITE** = 10, **SESSION_CMD_MAX** = 11
} | 操作指令。 | - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Marshalling](#marshalling) (Parcel &parcel) const override | IPC通信数据序列化。 | - - -### 静态 Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Unmarshalling](#unmarshalling) (Parcel &data) | IPC通信数据反序列化。 | -| [localCapability](#localcapability) | 命令数组,用于分布式业务,判断是否支持某个命令。 | -| [IsValid](#isvalid) () const | 判断当前指令是否在有效范围内。 | -| [SetCommand](#setcommand) (int32_t cmd) | 设置操作指令。 | -| [GetCommand](#getcommand) () const | 获取操作指令。 | -| [SetSpeed](#setspeed) (double speed) | 设置媒体播放倍数。 | -| [GetSpeed](#getspeed) (double &speed) const | 获取媒体播放倍数 | -| [SetSeekTime](#setseektime) (int64_t time) | 设置媒体跳播时间。 | -| [GetSeekTime](#getseektime) (int64_t &time) const | 获取媒体跳播时间。 | -| [SetLoopMode](#setloopmode) (int32_t mode) | 设置媒体循环模式。 | -| [GetLoopMode](#getloopmode) (int32_t &mode) const | 获取媒体循环模式。 | -| [SetAssetId](#setassetid) (const std::string &assetId) | 设置媒体id。 | -| [GetAssetId](#getassetid) (std::string &assetId) const | 获取媒体id。 | - - -## 成员枚举类型说明 - - -### anonymous enum - - -``` -anonymous enum -``` -**描述:** -操作指令。 - - | 枚举值 | 描述 | -| -------- | -------- | -| SESSION_CMD_INVALID | 无效指令,内部用于判断指令是否有效 | -| SESSION_CMD_PLAY | 播放 | -| SESSION_CMD_PAUSE | 暂停 | -| SESSION_CMD_STOP | 停止 | -| SESSION_CMD_PLAY_NEXT | 播放下一首 | -| SESSION_CMD_PLAY_PREVIOUS | 播放上一首 | -| SESSION_CMD_FAST_FORWARD | 快进 | -| SESSION_CMD_REWIND | 快退 | -| SESSION_CMD_SEEK | 跳播 | -| SESSION_CMD_SET_SPEED | 设置播放倍数 | -| SESSION_CMD_SET_LOOP_MODE | 设置循环模式 | -| SESSION_CMD_TOGGLE_FAVORITE | 收藏 | -| SESSION_CMD_MAX | 无效指令,内部用于判断指令是否有效 | - - -## 成员函数说明 - - -### GetAssetId() - - -``` -int32_t OHOS::AVSession::AVControlCommand::GetAssetId (std::string & assetId) const -``` -**描述:** -获取媒体id。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| assetId | 保存媒体id。 | - -**参见:** - -[SetAssetId](#setassetid) - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### GetCommand() - - -``` -int32_t OHOS::AVSession::AVControlCommand::GetCommand () const -``` -**描述:** -获取操作指令。 - -**返回:** - -返回操作指令,范围在**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**之间。 - -**参见:** - -[SetCommand](#setcommand) - - -### GetLoopMode() - - -``` -int32_t OHOS::AVSession::AVControlCommand::GetLoopMode (int32_t & mode) const -``` -**描述:** -获取媒体循环模式。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mode | 保存媒体循环模式。 取值在[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)的**LOOP_MODE_SEQUENCE**到**LOOP_MODE_SHUFFLE**之间。 | - -**参见:** - -[SetLoopMode](#setloopmode) - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### GetSeekTime() - - -``` -int32_t OHOS::AVSession::AVControlCommand::GetSeekTime (int64_t & time) const -``` -**描述:** -获取媒体跳播时间。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| time | 媒体资源的位置,从媒体资源开头开始计算,单位为ms。取值需大于等于0。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[SetSeekTime](#setseektime) - - -### GetSpeed() - - -``` -int32_t OHOS::AVSession::AVControlCommand::GetSpeed (double & speed) const -``` -**描述:** -获取媒体播放倍数 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| speed | 媒体播放倍数,返回值。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[SetSpeed](#setspeed) - - -### IsValid() - - -``` -bool OHOS::AVSession::AVControlCommand::IsValid () const -``` -**描述:** -判断当前指令是否在有效范围内。 - -**返回:** - -如果cmd_在有效范围内,范围在**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**之间, 返回true;否则,返回false。 - - -### Marshalling() - - -``` -bool OHOS::AVSession::AVControlCommand::Marshalling (Parcel & parcel) const -``` -**描述:** -IPC通信数据序列化。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| parcel | 保存序列化值的对象**Parcel**。 | - -**返回:** - -成功返回true;否则,返回false。 - -**参见:** - -[Unmarshalling](#unmarshalling) - - -### SetAssetId() - - -``` -int32_t OHOS::AVSession::AVControlCommand::SetAssetId (const std::string & assetId) -``` -**描述:** -设置媒体id。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| assetId | 媒体id,不可为空。 | - -**参见:** - -[GetAssetId](#getassetid) - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SetCommand() - - -``` -int32_t OHOS::AVSession::AVControlCommand::SetCommand (int32_t cmd) -``` -**描述:** -设置操作指令。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| cmd | 操作指令,范围在**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**之间。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[GetCommand](#getcommand) - - -### SetLoopMode() - - -``` -int32_t OHOS::AVSession::AVControlCommand::SetLoopMode (int32_t mode) -``` -**描述:** -设置媒体循环模式。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mode | 媒体循环模式, 取值在[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)的**LOOP_MODE_SEQUENCE**到**LOOP_MODE_SHUFFLE**之间。 | - -**参见:** - -[GetLoopMode](#getloopmode) - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SetSeekTime() - - -``` -int32_t OHOS::AVSession::AVControlCommand::SetSeekTime (int64_t time) -``` -**描述:** -设置媒体跳播时间。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| time | 媒体资源的位置,从媒体资源开头开始计算,单位为ms。取值需大于等于0。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[GetSeekTime](#getseektime) - - -### SetSpeed() - - -``` -int32_t OHOS::AVSession::AVControlCommand::SetSpeed (double speed) -``` -**描述:** -设置媒体播放倍数。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| speed | 媒体播放倍数,需大于0。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[GetSpeed](#getspeed) - - -### Unmarshalling() - - -``` -static AVControlCommand* OHOS::AVSession::AVControlCommand::Unmarshalling (Parcel & data) -``` -**描述:** -IPC通信数据反序列化。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 序列化对象**Parcel**。 | - -**返回:** - -返回AVControlCommand的函数指针。 - -**参见:** - -[Marshalling](#marshalling) - - -## 结构体成员变量说明 - - -### localCapability - - -``` -const std::vector OHOS::AVSession::AVControlCommand::localCapability -``` -**Value:** - -``` -{ - SESSION_CMD_PLAY, - SESSION_CMD_PAUSE, - SESSION_CMD_STOP, - SESSION_CMD_PLAY_NEXT, - SESSION_CMD_PLAY_PREVIOUS, - SESSION_CMD_FAST_FORWARD, - SESSION_CMD_REWIND, - SESSION_CMD_SEEK, - SESSION_CMD_SET_SPEED, - SESSION_CMD_SET_LOOP_MODE, - SESSION_CMD_TOGGLE_FAVORITE, - } -``` -**描述:** -命令数组,用于分布式业务,判断是否支持某个命令。 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md deleted file mode 100644 index 2300db5d2d..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md +++ /dev/null @@ -1,926 +0,0 @@ -# OHOS::AVSession::AVMetaData - - -## 概述 - -会话元数据类,提供获取metadata进程间传递的序列化和反序列话及数据拷贝的接口方法。 - - -## 汇总 - - -### Public 类型 - - | 名称 | 描述 | -| -------- | -------- | -| {
**META_KEY_ASSET_ID** = 0, **META_KEY_TITLE** = 1, **META_KEY_ARTIST** = 2, **META_KEY_AUTHOR** = 3, **META_KEY_ALBUM** = 4, **META_KEY_WRITER** = 5, **META_KEY_COMPOSER** = 6, **META_KEY_DURATION** = 7, **META_KEY_MEDIA_IMAGE** = 8, **META_KEY_MEDIA_IMAGE_URI** = 9, **META_KEY_PUBLISH_DATE** = 10, **META_KEY_SUBTITLE** = 11, **META_KEY_DESCRIPTION** = 12, **META_KEY_LYRIC** = 13, **META_KEY_PREVIOUS_ASSET_ID** = 14, **META_KEY_NEXT_ASSET_ID** = 15, **META_KEY_MAX** = 16
} | 会话元数据具体枚举项。 | -| [MetaMaskType](#metamasktype) = std::bitset< META_KEY_MAX > | 引入掩码标记需要拷贝的会话元数据。 | - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [AVMetaData](#avmetadata) ()=default | 会话元数据默认构造函数。 | -| [~AVMetaData](#avmetadata) () override | 会话元数据默认析构函数。 | -| [Marshalling](#marshalling) (Parcel &data) const override | 实现会话元数据进程间传递的序列化。 | -| [SetAssetId](#setassetid) (const std::string &assetId) | 设置曲目ID。 | -| [GetAssetId](#getassetid) () const | 获取曲目ID。 | -| [SetTitle](#settitle) (const std::string &title) | 设置标题。 | -| [GetTitle](#gettitle) () const | 获取标题。 | -| [SetArtist](#setartist) (const std::string &artist) | 设置艺术家名称。 | -| [GetArtist](#getartist) () const | 获取艺术家名称。 | -| [SetAuthor](#setauthor) (const std::string &author) | 设置制作人名称。 | -| [GetAuthor](#getauthor) () const | 获取制作人名称。 | -| [SetAlbum](#setalbum) (const std::string &album) | 设置专辑名称。 | -| [GetAlbum](#getalbum) () const | 获取专辑名称。 | -| [SetWriter](#setwriter) (const std::string &writer) | 设置作词名称。 | -| [GetWriter](#getwriter) () const | 获取作词名称。 | -| [SetComposer](#setcomposer) (const std::string &composer) | 设置作曲名称。 | -| [GetComposer](#getcomposer) () const | 获取作曲名称。 | -| [SetDuration](#setduration) (int64_t duration) | 设置媒体时长。 | -| [GetDuration](#getduration) () const | 获取媒体时长。 | -| [SetMediaImage](#setmediaimage) (const std::shared_ptr< [AVSessionPixelMap](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md) > &mediaImage) | 设置媒体图片。 | -| [GetMediaImage](#getmediaimage) () const | 获取媒体图片。 | -| [SetMediaImageUri](#setmediaimageuri) (const std::string &mediaImageUri) | 设置媒体图片URI。 | -| [GetMediaImageUri](#getmediaimageuri) () const | 获取媒体图片URI。 | -| [SetPublishDate](#setpublishdate) (double date) | 设置曲目发布日期,时间戳,单位为ms。 | -| [GetPublishDate](#getpublishdate) () const | 获取曲目发布日期,时间戳,单位为ms。 | -| [SetSubTitle](#setsubtitle) (const std::string &subTitle) | 设置子标题。 | -| [GetSubTitle](#getsubtitle) () const | 获取子标题。 | -| [SetDescription](#setdescription) (const std::string &description) | 设置曲目描述。 | -| [GetDescription](#getdescription) () const | 获取曲目描述。 | -| [SetLyric](#setlyric) (const std::string &lyric) | 设置歌词。 | -| [GetLyric](#getlyric) () const | 获取歌词。 | -| [SetPreviousAssetId](#setpreviousassetid) (const std::string &assetId) | 设置上一曲曲目ID。 | -| [GetPreviousAssetId](#getpreviousassetid) () const | 获取上一曲曲目ID。 | -| [SetNextAssetId](#setnextassetid) (const std::string &assetId) | 设置下一曲曲目ID。 | -| [GetNextAssetId](#getnextassetid) () const | 获取下一曲曲目ID。 | -| [Reset](#reset) () | 重置所有会话元数据项。 | -| [GetMetaMask](#getmetamask) () const | 获取掩码。 | -| [CopyToByMask](#copytobymask) ([MetaMaskType](#metamasktype) &mask, AVMetaData &metaOut) const | 根据metadata掩码,将metadata项复制到metaOut。 | -| [CopyFrom](#copyfrom) (const AVMetaData &metaIn) | 根据metaIn元掩码的设置位从metaIn复制metadata项。 | -| [IsValid](#isvalid) () const | 会话元数据有效性判断。 | - - -### 静态 Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Unmarshalling](#unmarshalling) (Parcel &data) | 实现会话元数据进程间传递的反序列化。 | - - -### 静态 Public 属性 - - | 名称 | 描述 | -| -------- | -------- | -| [DURATION_ALWAYS_PLAY](#duration_always_play) = -1 | 持续时间全局变量宏定义。 | -| [localCapability](#localcapability) | 会话元数据数组,用于分布式业务,设置会话属性。 | - - -## 成员类型定义说明 - - -### MetaMaskType - - -``` -using OHOS::AVSession::AVMetaData::MetaMaskType = std::bitset -``` -**描述:** -引入掩码标记需要拷贝的会话元数据。 - - -## 成员枚举类型说明 - - -### anonymous enum - - -``` -anonymous enum -``` -**描述:** -会话元数据具体枚举项。 - - | 枚举值 | 描述 | -| -------- | -------- | -| META_KEY_ASSET_ID | 曲目ID | -| META_KEY_TITLE | 标题 | -| META_KEY_ARTIST | 艺术家 | -| META_KEY_AUTHOR | 制作人 | -| META_KEY_ALBUM | 专辑 | -| META_KEY_WRITER | 作词 | -| META_KEY_COMPOSER | 作曲 | -| META_KEY_DURATION | 媒体时长 | -| META_KEY_MEDIA_IMAGE | 媒体影像 | -| META_KEY_MEDIA_IMAGE_URI | 媒体影像路径 | -| META_KEY_PUBLISH_DATE | 曲目发布日期 | -| META_KEY_SUBTITLE | 子标题 | -| META_KEY_DESCRIPTION | 曲目描述 | -| META_KEY_LYRIC | 歌词 | -| META_KEY_PREVIOUS_ASSET_ID | 上一曲 | -| META_KEY_NEXT_ASSET_ID | 下一曲 | -| META_KEY_MAX | 无效指令,内部用来判断会话元数据是否有效 | - - -## 构造及析构函数说明 - - -### AVMetaData() - - -``` -OHOS::AVSession::AVMetaData::AVMetaData () -``` -**描述:** -会话元数据默认构造函数。 - - -### ~AVMetaData() - - -``` -OHOS::AVSession::AVMetaData::~AVMetaData () -``` -**描述:** -会话元数据默认析构函数。 - - -## 成员函数说明 - - -### CopyFrom() - - -``` -bool OHOS::AVSession::AVMetaData::CopyFrom (const AVMetaData & metaIn) -``` -**描述:** -根据metaIn元掩码的设置位从metaIn复制metadata项。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| metaIn | 会话元数据将要拷贝的入参。| - - -### CopyToByMask() - - -``` -bool OHOS::AVSession::AVMetaData::CopyToByMask (MetaMaskType & mask, AVMetaData & metaOut ) const -``` -**描述:** -根据metadata掩码,将metadata项复制到metaOut。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mask | metadata掩码[MetaMaskType](#metamasktype)。 | -| metaOut | metadata已拷贝成功的出参AVMetaData。 | - -**返回:** - -成功返回true;失败则返回false。 - - -### GetAlbum() - - -``` -std::string OHOS::AVSession::AVMetaData::GetAlbum () const -``` -**描述:** -获取专辑名称。 - -**返回:** - -返回专辑名称。 - -**参见:** - -[SetAlbum](#setalbum) - - -### GetArtist() - - -``` -std::string OHOS::AVSession::AVMetaData::GetArtist () const -``` -**描述:** -获取艺术家名称。 - -**返回:** - -返回艺术家名称。 - -**参见:** - -[SetArtist](#setartist) - - -### GetAssetId() - - -``` -std::string OHOS::AVSession::AVMetaData::GetAssetId () const -``` -**描述:** -获取曲目ID。 - -**返回:** - -返回曲目ID。 - -**参见:** - -[SetAssetId](#setassetid) - - -### GetAuthor() - - -``` -std::string OHOS::AVSession::AVMetaData::GetAuthor () const -``` -**描述:** -获取制作人名称。 - -**返回:** - -返回制作人名称。 - -**参见:** - -[SetAuthor](#setauthor) - - -### GetComposer() - - -``` -std::string OHOS::AVSession::AVMetaData::GetComposer () const -``` -**描述:** -获取作曲名称。 - -**返回:** - -返回作曲名称。 - -**参见:** - -[SetComposer](#setcomposer) - - -### GetDescription() - - -``` -std::string OHOS::AVSession::AVMetaData::GetDescription () const -``` -**描述:** -获取曲目描述。 - -**返回:** - -返回曲目描述。 - -**参见:** - -[SetDescription](#setdescription) - - -### GetDuration() - - -``` -int64_t OHOS::AVSession::AVMetaData::GetDuration () const -``` -**描述:** -获取媒体时长。 - -**返回:** - -返回媒体时长,单位为ms。 - -**参见:** - -[SetDuration](#setduration) - - -### GetLyric() - - -``` -std::string OHOS::AVSession::AVMetaData::GetLyric () const -``` -**描述:** -获取歌词。 - -**返回:** - -返回歌词。 - -**参见:** - -[SetLyric](#setlyric) - - -### GetMediaImage() - - -``` -std::shared_ptr OHOS::AVSession::AVMetaData::GetMediaImage () const -``` -**描述:** -获取媒体图片。 - -**返回:** - -返回媒体图片[AVSessionPixelMap](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md)。 - -**参见:** - -[SetMediaImage](#setmediaimage) - - -### GetMediaImageUri() - - -``` -std::string OHOS::AVSession::AVMetaData::GetMediaImageUri () const -``` -**描述:** -获取媒体图片URI。 - -**返回:** - -返回媒体图片URI。 - -**参见:** - -[SetMediaImageUri](#setmediaimageuri) - - -### GetMetaMask() - - -``` -MetaMaskType OHOS::AVSession::AVMetaData::GetMetaMask () const -``` -**描述:** -获取掩码。 - -**返回:** - -返回掩码[MetaMaskType](#metamasktype)。 - - -### GetNextAssetId() - - -``` -std::string OHOS::AVSession::AVMetaData::GetNextAssetId () const -``` -**描述:** -获取下一曲曲目ID。 - -**返回:** - -返回下一曲曲目ID。 - -**参见:** - -[SetNextAssetId](#setnextassetid) - - -### GetPreviousAssetId() - - -``` -std::string OHOS::AVSession::AVMetaData::GetPreviousAssetId () const -``` -**描述:** -获取上一曲曲目ID。 - -**返回:** - -返回上一曲曲目ID。 - -**参见:** - -[SetPreviousAssetId](#setpreviousassetid) - - -### GetPublishDate() - - -``` -double OHOS::AVSession::AVMetaData::GetPublishDate () const -``` -**描述:** -获取曲目发布日期,时间戳,单位为ms。 - -**返回:** - -返回曲目发布日期,时间戳,单位为ms。 - -**参见:** - -[SetPublishDate](#setpublishdate) - - -### GetSubTitle() - - -``` -std::string OHOS::AVSession::AVMetaData::GetSubTitle () const -``` -**描述:** -获取子标题。 - -**返回:** - -返回子标题。 - -**参见:** - -[SetSubTitle](#setsubtitle) - - -### GetTitle() - - -``` -std::string OHOS::AVSession::AVMetaData::GetTitle () const -``` -**描述:** -获取标题。 - -**返回:** - -返回标题。 - -**参见:** - -[SetTitle](#settitle) - - -### GetWriter() - - -``` -std::string OHOS::AVSession::AVMetaData::GetWriter () const -``` -**描述:** -获取作词名称。 - -**返回:** - -返回作词名称。 - -**参见:** - -[SetWriter](#setwriter) - - -### IsValid() - - -``` -bool OHOS::AVSession::AVMetaData::IsValid () const -``` -**描述:** -会话元数据有效性判断。 - -**返回:** - -有效返回true;无效则返回false。 - - -### Marshalling() - - -``` -bool OHOS::AVSession::AVMetaData::Marshalling (Parcel & data) const -``` -**描述:** -实现会话元数据进程间传递的序列化。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 保存序列化值的对象**Parcel**。 | - -**返回:** - -如果序列化成功,则返回true;如果操作失败,则返回false。 - -**参见:** - -[Unmarshalling](#unmarshalling) - - -### Reset() - - -``` -void OHOS::AVSession::AVMetaData::Reset () -``` -**描述:** -重置所有会话元数据项。 - - -### SetAlbum() - - -``` -void OHOS::AVSession::AVMetaData::SetAlbum (const std::string & album) -``` -**描述:** -设置专辑名称。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| album | 专辑名称。 | - -**参见:** - -[GetAlbum](#getalbum) - - -### SetArtist() - - -``` -void OHOS::AVSession::AVMetaData::SetArtist (const std::string & artist) -``` -**描述:** -设置艺术家名称。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| artist | 艺术家名称。 | - -**参见:** - -[GetArtist](#getartist) - - -### SetAssetId() - - -``` -void OHOS::AVSession::AVMetaData::SetAssetId (const std::string & assetId) -``` -**描述:** -设置曲目ID。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| assetId | 曲目ID,不可为空。 | - -**参见:** - -[GetAssetId](#getassetid) - - -### SetAuthor() - - -``` -void OHOS::AVSession::AVMetaData::SetAuthor (const std::string & author) -``` -**描述:** -设置制作人名称。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| author | 制作人名称。 | - -**参见:** - -[GetArtist](#getartist) - - -### SetComposer() - - -``` -void OHOS::AVSession::AVMetaData::SetComposer (const std::string & composer) -``` -**描述:** -设置作曲名称。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| composer | 作曲名称。 | - -**参见:** - -[GetComposer](#getcomposer) - - -### SetDescription() - - -``` -void OHOS::AVSession::AVMetaData::SetDescription (const std::string & description) -``` -**描述:** -设置曲目描述。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| description | 曲目描述。 | - -**参见:** - -[GetDescription](#getdescription) - - -### SetDuration() - - -``` -void OHOS::AVSession::AVMetaData::SetDuration (int64_t duration) -``` -**描述:** -设置媒体时长。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| duration | 媒体时长,必须大于等于-1,单位为ms 。 | - -**参见:** - -[GetDuration](#getduration) - - -### SetLyric() - - -``` -void OHOS::AVSession::AVMetaData::SetLyric (const std::string & lyric) -``` -**描述:** -设置歌词。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| lyric | 歌词。 | - -**参见:** - -[GetLyric](#getlyric) - - -### SetMediaImage() - - -``` -void OHOS::AVSession::AVMetaData::SetMediaImage (const std::shared_ptr< AVSessionPixelMap > & mediaImage) -``` -**描述:** -设置媒体图片。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mediaImage | 媒体图片[AVSessionPixelMap](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md)。 | - -**参见:** - -[GetMediaImage](#getmediaimage) - - -### SetMediaImageUri() - - -``` -void OHOS::AVSession::AVMetaData::SetMediaImageUri (const std::string & mediaImageUri) -``` -**描述:** -设置媒体图片URI。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mediaImageUri | 媒体图片URI。 | - -**参见:** - -[GetMediaImageUri](#getmediaimageuri) - - -### SetNextAssetId() - - -``` -void OHOS::AVSession::AVMetaData::SetNextAssetId (const std::string & assetId) -``` -**描述:** -设置下一曲曲目ID。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| assetId | 下一曲曲目ID。 | - -**参见:** - -[GetNextAssetId](#getnextassetid) - - -### SetPreviousAssetId() - - -``` -void OHOS::AVSession::AVMetaData::SetPreviousAssetId (const std::string & assetId) -``` -**描述:** -设置上一曲曲目ID。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| assetId | 上一曲曲目ID。 | - -**参见:** - -[GetPreviousAssetId](#getpreviousassetid) - - -### SetPublishDate() - - -``` -void OHOS::AVSession::AVMetaData::SetPublishDate (double date) -``` -**描述:** -设置曲目发布日期,时间戳,单位为ms。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| date | 曲目发布日期,时间戳,单位为ms。 | - -**参见:** - -[GetPublishDate](#getpublishdate) - - -### SetSubTitle() - - -``` -void OHOS::AVSession::AVMetaData::SetSubTitle (const std::string & subTitle) -``` -**描述:** -设置子标题。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| subTitle | 子标题。 | - -**参见:** - -[GetSubTitle](#getsubtitle) - - -### SetTitle() - - -``` -void OHOS::AVSession::AVMetaData::SetTitle (const std::string & title) -``` -**描述:** -设置标题。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| title | 标题。 | - -**参见:** - -[GetTitle](#gettitle) - - -### SetWriter() - - -``` -void OHOS::AVSession::AVMetaData::SetWriter (const std::string & writer) -``` -**描述:** -设置作词名称。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| writer | 作词名称。 | - -**参见:** - -[GetWriter](#getwriter) - - -### Unmarshalling() - - -``` -static AVMetaData* OHOS::AVSession::AVMetaData::Unmarshalling (Parcel & data) -``` -**描述:** -实现会话元数据进程间传递的反序列化。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 序列化对象**Parcel**。 | - -**返回:** - -如果反序列化成功,返回AVMetaData类型指针;失败则返回nullptr。 - -**参见:** - -[Marshalling](#marshalling) - - -## 结构体成员变量说明 - - -### DURATION_ALWAYS_PLAY - - -``` -constexpr std::int64_t OHOS::AVSession::AVMetaData::DURATION_ALWAYS_PLAY = -1 -``` -**描述:** -持续时间全局变量宏定义。 - - -### localCapability - - -``` -const std::vector OHOS::AVSession::AVMetaData::localCapability -``` -**Value:** - -``` -{ - META_KEY_ASSET_ID, - META_KEY_TITLE, - META_KEY_ARTIST, - META_KEY_AUTHOR, - META_KEY_ALBUM, - META_KEY_WRITER, - META_KEY_COMPOSER, - META_KEY_DURATION, - META_KEY_MEDIA_IMAGE, - META_KEY_MEDIA_IMAGE_URI, - META_KEY_PUBLISH_DATE, - META_KEY_SUBTITLE, - META_KEY_DESCRIPTION, - META_KEY_LYRIC, - META_KEY_PREVIOUS_ASSET_ID, - META_KEY_NEXT_ASSET_ID, - } -``` -**描述:** -会话元数据数组,用于分布式业务,设置会话属性。 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md deleted file mode 100644 index 8183b4b57c..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md +++ /dev/null @@ -1,502 +0,0 @@ -# OHOS::AVSession::AVPlaybackState - - -## 概述 - -音视频播放状态类,提供获取和设置播放界面的信息。 - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [Position](_1_a_v_session_1_1_a_v_playback_state_1_1_position.md) | struct
播放位置的相关信息。 | - - -### Public 类型 - - | 名称 | 描述 | -| -------- | -------- | -| {
**PLAYBACK_STATE_INITIAL** = 0, **PLAYBACK_STATE_PREPARING** = 1, **PLAYBACK_STATE_PLAYING** = 2, **PLAYBACK_STATE_PAUSED** = 3, **PLAYBACK_STATE_FAST_FORWARD** = 4, **PLAYBACK_STATE_REWIND** = 5, **PLAYBACK_STATE_STOP** = 6, **PLAYBACK_STATE_MAX** = 7
} | 描述播放状态的枚举。 | -| {
**PLAYBACK_KEY_STATE** = 0, **PLAYBACK_KEY_SPEED** = 1, **PLAYBACK_KEY_POSITION** = 2, **PLAYBACK_KEY_BUFFERED_TIME** = 3, **PLAYBACK_KEY_LOOP_MODE** = 4, **PLAYBACK_KEY_IS_FAVORITE** = 5, **PLAYBACK_KEY_MAX** = 6
} | 播放界面信息的枚举。 | -| { **LOOP_MODE_SEQUENCE** = 0, **LOOP_MODE_SINGLE** = 1, **LOOP_MODE_LIST** = 2, **LOOP_MODE_SHUFFLE** = 3 } | 循环模式的枚举。 | -| **PlaybackStateMaskType** = std::bitset< PLAYBACK_KEY_MAX > | | - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Marshalling](#marshalling) (Parcel &parcel) const override | IPC通信数据序列化。 | -| [IsValid](#isvalid) () const | 验证当前信息的有效性。 | -| [SetState](#setstate) (int32_t state) | 设置音视频的播放状态。 | -| [GetState](#getstate) () const | 获取当前音视频的播放状态。 | -| [SetSpeed](#setspeed) (double speed) | 设置播放倍速。 | -| [GetSpeed](#getspeed) () const | 获取当前播放倍速。 | -| [SetPosition](#setposition) (const [Position](_1_a_v_session_1_1_a_v_playback_state_1_1_position.md) &position) | 设置播放位置,通过更新时间与经过时间来计算,单位ms。 | -| [GetPosition](#getposition) () const | 获取播放位置。 | -| [SetBufferedTime](#setbufferedtime) (int64_t time) | 设置缓冲时间,单位为ms。 | -| [GetBufferedTime](#getbufferedtime) () const | 获取当前缓冲时间,单位为ms。 | -| [SetLoopMode](#setloopmode) (int32_t mode) | 设置循环模式。 | -| [GetLoopMode](#getloopmode) () const | 获取当前循环模式。 | -| [SetFavorite](#setfavorite) (bool isFavorite) | 设置是否收藏。 | -| [GetFavorite](#getfavorite) () const | 获取是否收藏。 | -| [GetMask](#getmask) () const | 获取掩码。 | - - -### 静态 Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Unmarshalling](#unmarshalling) (Parcel &parcel) | IPC通信数据反序列化。 | -| [localCapability](#localcapability) | 内联函数指针数组AVPlaybackState,用于分布式业务,设置播放界面信息。 | -| [CopyToByMask](#copytobymask) (PlaybackStateMaskType &mask, AVPlaybackState &out) const | 通过掩码拷贝信息到新的AVPlaybackState对象。 | -| [CopyFrom](#copyfrom) (const AVPlaybackState &in) | 根据当前对象的mask_掩码,将输入的AVPlaybackState类型的信息复制到当前对象。 | - - -## 成员枚举类型说明 - - -### anonymous enum - - -``` -anonymous enum -``` -**描述:** -描述播放状态的枚举。 - - | 枚举值 | 描述 | -| -------- | -------- | -| PLAYBACK_STATE_INITIAL | 初始状态 | -| PLAYBACK_STATE_PREPARING | 缓冲状态 | -| PLAYBACK_STATE_PLAYING | 播放状态 | -| PLAYBACK_STATE_PAUSED | 暂停状态 | -| PLAYBACK_STATE_FAST_FORWARD | 快进状态 | -| PLAYBACK_STATE_REWIND | 快退状态 | -| PLAYBACK_STATE_STOP | 停止状态 | -| PLAYBACK_STATE_MAX | 无效类型,内部用于判断状态是否有效 | - - -### anonymous enum - - -``` -anonymous enum -``` -**描述:** -播放界面信息的枚举。 - - | 枚举值 | 描述 | -| -------- | -------- | -| PLAYBACK_KEY_STATE | 播放状态,包括正在播放、暂停、快进等 | -| PLAYBACK_KEY_SPEED | 播放倍数 | -| PLAYBACK_KEY_POSITION | 播放位置 | -| PLAYBACK_KEY_BUFFERED_TIME | 缓冲时间 | -| PLAYBACK_KEY_LOOP_MODE | 循环模式 | -| PLAYBACK_KEY_IS_FAVORITE | 设置喜欢(收藏) | -| PLAYBACK_KEY_MAX | 无效类型,内部用于判断key是否有效 | - - -### anonymous enum - - -``` -anonymous enum -``` -**描述:** -循环模式的枚举。 - - | 枚举值 | 描述 | -| -------- | -------- | -| LOOP_MODE_SEQUENCE | 顺序播放 | -| LOOP_MODE_SINGLE | 单曲循环 | -| LOOP_MODE_LIST | 列表循环 | -| LOOP_MODE_SHUFFLE | 随机播放 | - - -## 成员函数说明 - - -### CopyFrom() - - -``` -bool OHOS::AVSession::AVPlaybackState::CopyFrom (const AVPlaybackState & in) -``` -**描述:** -根据当前对象的mask_掩码,将输入的AVPlaybackState类型的信息复制到当前对象。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| in | AVPlaybackState类型。 | - -**返回:** - -如果有至少一个播放界面信息被拷贝,返回true;如果一个播放界面信息都没有被拷贝,返回false。 - -**参见:** - -[CopyToByMask](#copytobymask) - -[GetMask](#getmask) - - -### CopyToByMask() - - -``` -bool OHOS::AVSession::AVPlaybackState::CopyToByMask (PlaybackStateMaskType & mask, AVPlaybackState & out ) const -``` -**描述:** -通过掩码拷贝信息到新的AVPlaybackState对象。 - -mask对应位上有值的对象拷贝给out。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mask | 输入的掩码**}。 out 输出的音视频的播放状态 AVPlaybackState}。 如果有至少一个播放界面信息被拷贝,返回true;如果一个播放界面信息都没有被拷贝,返回false。 CopyFrom 9 1.0 ** | - - -### GetBufferedTime() - - -``` -int64_t OHOS::AVSession::AVPlaybackState::GetBufferedTime () const -``` -**描述:** -获取当前缓冲时间,单位为ms。 - -**返回:** - -返回缓冲时间。 - -**参见:** - -[SetBufferedTime](#setbufferedtime) - - -### GetFavorite() - - -``` -bool OHOS::AVSession::AVPlaybackState::GetFavorite () const -``` -**描述:** -获取是否收藏。 - -**返回:** - -是否收藏,是则返回true,否则返回false。 - -**参见:** - -[SetFavorite](#setfavorite) - - -### GetLoopMode() - - -``` -int32_t OHOS::AVSession::AVPlaybackState::GetLoopMode () const -``` -**描述:** -获取当前循环模式。 - -**返回:** - -返回循环模式,范围**LOOP_MODE_SEQUENCE**到**LOOP_MODE_SHUFFLE**之间。 - -**参见:** - -[SetLoopMode](#setloopmode) - - -### GetMask() - - -``` -PlaybackStateMaskType OHOS::AVSession::AVPlaybackState::GetMask () const -``` -**描述:** -获取掩码。 - -**返回:** - -返回播放界面信息的掩码**PlaybackStateMaskType**。 - -**参见:** - -[CopyFrom](#copyfrom) - - -### GetPosition() - - -``` -Position OHOS::AVSession::AVPlaybackState::GetPosition () const -``` -**描述:** -获取播放位置。 - -**返回:** - -返回播放位置[Position](_1_a_v_session_1_1_a_v_playback_state_1_1_position.md)。 - -**参见:** - -[SetPosition](#setposition) - - -### GetSpeed() - - -``` -double OHOS::AVSession::AVPlaybackState::GetSpeed () const -``` -**描述:** -获取当前播放倍速。 - -**返回:** - -返回当前播放倍速。 - -**参见:** - -[SetSpeed](#setspeed) - - -### GetState() - - -``` -int32_t OHOS::AVSession::AVPlaybackState::GetState () const -``` -**描述:** -获取当前音视频的播放状态。 - -**返回:** - -返回当前音视频的播放状态,范围**PLAYBACK_STATE_INITIAL**到**PLAYBACK_STATE_MAX**之间。 - -**参见:** - -[SetState](#setstate) - - -### IsValid() - - -``` -bool OHOS::AVSession::AVPlaybackState::IsValid () const -``` -**描述:** -验证当前信息的有效性。 - -**返回:** - -有效返回true;无效则返回false。 - - -### Marshalling() - - -``` -bool OHOS::AVSession::AVPlaybackState::Marshalling (Parcel & parcel) const -``` -**描述:** -IPC通信数据序列化。 - -将AVPlaybackState类型的信息,序列化为**Parcel**类型的信息,用来进行IPC通信。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| parcel | 保存序列化值的对象**Parcel**。 | - -**返回:** - -成功返回true;失败返回false。 - -**参见:** - -[Unmarshalling](#unmarshalling) - - -### SetBufferedTime() - - -``` -void OHOS::AVSession::AVPlaybackState::SetBufferedTime (int64_t time) -``` -**描述:** -设置缓冲时间,单位为ms。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| time | 缓冲时间。 | - -**参见:** - -[GetBufferedTime](#getbufferedtime) - - -### SetFavorite() - - -``` -void OHOS::AVSession::AVPlaybackState::SetFavorite (bool isFavorite) -``` -**描述:** -设置是否收藏。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| isFavorite | 是否收藏,是则为true,否则false。 | - -**参见:** - -[GetFavorite](#getfavorite) - - -### SetLoopMode() - - -``` -void OHOS::AVSession::AVPlaybackState::SetLoopMode (int32_t mode) -``` -**描述:** -设置循环模式。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mode | 循环模式,范围**LOOP_MODE_SEQUENCE**到**LOOP_MODE_SHUFFLE**之间。 | - -**参见:** - -[GetLoopMode](#getloopmode) - - -### SetPosition() - - -``` -void OHOS::AVSession::AVPlaybackState::SetPosition (const Position & position) -``` -**描述:** -设置播放位置,通过更新时间与经过时间来计算,单位ms。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| position | 播放位置[Position](_1_a_v_session_1_1_a_v_playback_state_1_1_position.md)。 | - -**参见:** - -[GetPosition](#getposition) - - -### SetSpeed() - - -``` -void OHOS::AVSession::AVPlaybackState::SetSpeed (double speed) -``` -**描述:** -设置播放倍速。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| speed | 播放倍速。 | - -**参见:** - -[SetSpeed](#setspeed) - - -### SetState() - - -``` -void OHOS::AVSession::AVPlaybackState::SetState (int32_t state) -``` -**描述:** -设置音视频的播放状态。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| state | 音视频的播放状态,范围**PLAYBACK_STATE_INITIAL**到**PLAYBACK_STATE_MAX**之间。 | - -**参见:** - -[GetState](#getstate) - - -### Unmarshalling() - - -``` -static AVPlaybackState* OHOS::AVSession::AVPlaybackState::Unmarshalling (Parcel & parcel) -``` -**描述:** -IPC通信数据反序列化。 - -将通过IPC接收的**Parcel**类型的信息,反序列化为AVPlaybackState类型的信息。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| parcel | 序列化对象**Parcel**。 | - -**返回:** - -如果反序列化成功,则返回AVPlaybackState对象; 如果反序列化失败,则返回nullptr。 - -**参见:** - -[Marshalling](#marshalling) - - -## 结构体成员变量说明 - - -### localCapability - - -``` -const std::vector OHOS::AVSession::AVPlaybackState::localCapability -``` -**Value:** - -``` -{ - PLAYBACK_KEY_STATE, - PLAYBACK_KEY_SPEED, - PLAYBACK_KEY_POSITION, - PLAYBACK_KEY_BUFFERED_TIME, - PLAYBACK_KEY_LOOP_MODE, - PLAYBACK_KEY_IS_FAVORITE, - } -``` -**描述:** -内联函数指针数组AVPlaybackState,用于分布式业务,设置播放界面信息。 diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md deleted file mode 100644 index 342eada497..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md +++ /dev/null @@ -1,346 +0,0 @@ -# OHOS::AVSession::AVSession - - -## 概述 - -会话对象,支持配置会话属性,并可主动更新播放状态和会话元数据。 - - -## 汇总 - - -### Public 类型 - - | 名称 | 描述 | -| -------- | -------- | -| { **SESSION_TYPE_INVALID** = -1, **SESSION_TYPE_AUDIO** = 0, **SESSION_TYPE_VIDEO** = 1 } | 会话类型的枚举。 | - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [GetSessionId](#getsessionid) ()=0 | 获取会话的标识。 | -| [GetAVMetaData](#getavmetadata) ([AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) &meta)=0 | 获取会话元数据。 | -| [SetAVMetaData](#setavmetadata) (const [AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) &meta)=0 | 设置会话元数据。 | -| [GetAVPlaybackState](#getavplaybackstate) ([AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) &state)=0 | 获取音视频的播放状态。 | -| [SetAVPlaybackState](#setavplaybackstate) (const [AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) &state)=0 | 设置音视频的播放状态。 | -| [SetLaunchAbility](#setlaunchability) (const AbilityRuntime::WantAgent::WantAgent &ability)=0 | 设置一个WantAgent用于启动会话的Ability。 | -| [GetController](#getcontroller) ()=0 | 获取会话控制器。 | -| [RegisterCallback](#registercallback) (const std::shared_ptr< [AVSessionCallback](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md) > &callback)=0 | 注册会话回调。 | -| [Activate](#activate) ()=0 | 激活会话。 | -| [Deactivate](#deactivate) ()=0 | 去激活会话。 | -| [IsActive](#isactive) ()=0 | 获取会话是否被激活。 | -| [Destroy](#destroy) ()=0 | 销毁会话。 | -| [AddSupportCommand](#addsupportcommand) (const int32_t cmd)=0 | 添加支持的控制命令。 | -| [DeleteSupportCommand](#deletesupportcommand) (const int32_t cmd)=0 | 删除支持的控制命令。 | - - -## 成员枚举类型说明 - - -### anonymous enum - - -``` -anonymous enum -``` -**描述:** -会话类型的枚举。 - - | 枚举值 | 描述 | -| -------- | -------- | -| SESSION_TYPE_INVALID | 无效会话 | -| SESSION_TYPE_AUDIO | 音频会话 | -| SESSION_TYPE_VIDEO | 视频会话 | - - -## 成员函数说明 - - -### Activate() - - -``` -virtual int32_t OHOS::AVSession::AVSession::Activate () -``` -**描述:** -激活会话。 - -激活成功后,会话才可以接收控制指令。 - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[Deactivate](#deactivate) - -[IsActive](#isactive) - - -### AddSupportCommand() - - -``` -virtual int32_t OHOS::AVSession::AVSession::AddSupportCommand (const int32_t cmd) -``` -**描述:** -添加支持的控制命令。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| cmd | 待添加的控制命令,范围为**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### Deactivate() - - -``` -virtual int32_t OHOS::AVSession::AVSession::Deactivate () -``` -**描述:** -去激活会话。 - -去激活成功后,表示会话还不能接收控制指令。 - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[Activate](#activate) - -[IsActive](#isactive) - - -### DeleteSupportCommand() - - -``` -virtual int32_t OHOS::AVSession::AVSession::DeleteSupportCommand (const int32_t cmd) -``` -**描述:** -删除支持的控制命令。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| cmd | 待删除的控制命令,范围为**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### Destroy() - - -``` -virtual int32_t OHOS::AVSession::AVSession::Destroy () -``` -**描述:** -销毁会话。 - -如果应用要创建一个新会话,必须要销毁之前的会话,否则会创建失败。 - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### GetAVMetaData() - - -``` -virtual int32_t OHOS::AVSession::AVSession::GetAVMetaData (AVMetaData & meta) -``` -**描述:** -获取会话元数据。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| meta | 用于保存会话的元数据[AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md)对象。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[SetAVMetaData](#setavmetadata) - - -### GetAVPlaybackState() - - -``` -virtual int32_t OHOS::AVSession::AVSession::GetAVPlaybackState (AVPlaybackState & state) -``` -**描述:** -获取音视频的播放状态。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| state | 用于保存播放状态的[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)对象。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[SetAVPlaybackState](#setavplaybackstate) - - -### GetController() - - -``` -virtual std::shared_ptr OHOS::AVSession::AVSession::GetController () -``` -**描述:** -获取会话控制器。 - -**返回:** - -返回会话控制器,[AVSessionController](o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md)类型智能指针。 - - -### GetSessionId() - - -``` -virtual std::string OHOS::AVSession::AVSession::GetSessionId () -``` -**描述:** -获取会话的标识。 - -**返回:** - -返回会话的标识。 - - -### IsActive() - - -``` -virtual bool OHOS::AVSession::AVSession::IsActive () -``` -**描述:** -获取会话是否被激活。 - -**返回:** - -如果是激活状态,则返回true;否则返回false。 - -**参见:** - -[Activate](#activate) - -[Deactivate](#deactivate) - - -### RegisterCallback() - - -``` -virtual int32_t OHOS::AVSession::AVSession::RegisterCallback (const std::shared_ptr< AVSessionCallback > & callback) -``` -**描述:** -注册会话回调。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| callback | 用于注册会话回调的[AVSessionCallback](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md)对象。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SetAVMetaData() - - -``` -virtual int32_t OHOS::AVSession::AVSession::SetAVMetaData (const AVMetaData & meta) -``` -**描述:** -设置会话元数据。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| meta | 用于修改会话的元数据[AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md)对象。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[GetAVMetaData](#getavmetadata) - - -### SetAVPlaybackState() - - -``` -virtual int32_t OHOS::AVSession::AVSession::SetAVPlaybackState (const AVPlaybackState & state) -``` -**描述:** -设置音视频的播放状态。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| state | 用于修改播放状态的[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)对象。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[GetAVPlaybackState](#getavplaybackstate) - - -### SetLaunchAbility() - - -``` -virtual int32_t OHOS::AVSession::AVSession::SetLaunchAbility (const AbilityRuntime::WantAgent::WantAgent & ability) -``` -**描述:** -设置一个WantAgent用于启动会话的Ability。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| ability | 具体的应用对应的能力,类型为**AbilityRuntime::WantAgent::WantAgent**。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[AVSessionController::GetLaunchAbility](o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md#getlaunchability) diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md deleted file mode 100644 index f29d9b05cc..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md +++ /dev/null @@ -1,215 +0,0 @@ -# OHOS::AVSession::AVSessionCallback - - -## 概述 - -定义AVSession回调类的实现 - -**起始版本:** -9 - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [OnPlay](#onplay) ()=0 | AVSession多媒体播放的抽象的回调方法。 | -| [OnPause](#onpause) ()=0 | AVSession多媒体播放暂停的抽象的回调方法。 | -| [OnStop](#onstop) ()=0 | AVSession多媒体播放停止的抽象的回调方法。 | -| [OnPlayNext](#onplaynext) ()=0 | AVSession播放下一首多媒体的抽象的回调方法。 | -| [OnPlayPrevious](#onplayprevious) ()=0 | AVSession播放上一首多媒体的抽象的回调方法。 | -| [OnFastForward](#onfastforward) ()=0 | AVSession快进播放多媒体的抽象的回调方法。 | -| [OnRewind](#onrewind) ()=0 | AVSession多媒体快退的抽象的回调方法。 | -| [OnSeek](#onseek) (int64_t time)=0 | AVSession多媒体跳播操作的抽象的回调方法。 | -| [OnSetSpeed](#onsetspeed) (double speed)=0 | AVSession设置多媒体倍速播放操作的抽象的回调方法。 | -| [OnSetLoopMode](#onsetloopmode) (int32_t loopMode)=0 | AVSession设置多媒体循环播放模式的抽象的回调方法。 | -| [OnToggleFavorite](#ontogglefavorite) (const std::string &mediald)=0 | AVSession设置多媒体切换收藏操作的抽象的回调方法。 | -| [OnMediaKeyEvent](#onmediakeyevent) (const MMI::KeyEvent &keyEvent)=0 | AVSession多媒体按键事件处理的抽象的回调方法。 | -| [OnOutputDeviceChange](#onoutputdevicechange) (const [OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) &outputDeviceInfo)=0 | 注册会话输出设备变更监听。 | -| [~AVSessionCallback](#avsessioncallback) ()=default | AVSessionCallback的默认的析构函数。 | - - -## 构造及析构函数说明 - - -### ~AVSessionCallback() - - -``` -virtual OHOS::AVSession::AVSessionCallback::~AVSessionCallback () -``` -**描述:** -AVSessionCallback的默认的析构函数。 - - -## 成员函数说明 - - -### OnFastForward() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnFastForward () -``` -**描述:** -AVSession快进播放多媒体的抽象的回调方法。 - - -### OnMediaKeyEvent() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnMediaKeyEvent (const MMI::KeyEvent & keyEvent) -``` -**描述:** -AVSession多媒体按键事件处理的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| keyEvent | 按键事件码,类型为**MMI::KeyEvent**。 | - - -### OnOutputDeviceChange() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnOutputDeviceChange (const OutputDeviceInfo & outputDeviceInfo) -``` -**描述:** -注册会话输出设备变更监听。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| outputDeviceInfo | 输出设备信息 [OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md)。 | - - -### OnPause() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnPause () -``` -**描述:** -AVSession多媒体播放暂停的抽象的回调方法。 - - -### OnPlay() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnPlay () -``` -**描述:** -AVSession多媒体播放的抽象的回调方法。 - - -### OnPlayNext() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnPlayNext () -``` -**描述:** -AVSession播放下一首多媒体的抽象的回调方法。 - - -### OnPlayPrevious() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnPlayPrevious () -``` -**描述:** -AVSession播放上一首多媒体的抽象的回调方法。 - - -### OnRewind() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnRewind () -``` -**描述:** -AVSession多媒体快退的抽象的回调方法。 - - -### OnSeek() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnSeek (int64_t time) -``` -**描述:** -AVSession多媒体跳播操作的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| time | 媒体资源的位置,从媒体资源开头开始计算,单位为ms。取值需大于等于0。 | - - -### OnSetLoopMode() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnSetLoopMode (int32_t loopMode) -``` -**描述:** -AVSession设置多媒体循环播放模式的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| loopMode | 多媒体循环播放模式, 范围在[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)的**LOOP_MODE_SEQUENCE**到**LOOP_MODE_SHUFFLE**之间。 | - - -### OnSetSpeed() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnSetSpeed (double speed) -``` -**描述:** -AVSession设置多媒体倍速播放操作的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| speed | 多媒体播放的倍速值。 | - - -### OnStop() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnStop () -``` -**描述:** -AVSession多媒体播放停止的抽象的回调方法。 - - -### OnToggleFavorite() - - -``` -virtual void OHOS::AVSession::AVSessionCallback::OnToggleFavorite (const std::string & mediald) -``` -**描述:** -AVSession设置多媒体切换收藏操作的抽象的回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| mediald | 多媒体ID号标识。 | - - diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md deleted file mode 100644 index 1b6f5216da..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md +++ /dev/null @@ -1,300 +0,0 @@ -# OHOS::AVSession::AVSessionManager - - -## 概述 - -实现会话管理器对外接口功能的类的实现。 - -**起始版本:** -9 - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [CreateSession](#createsession) (const std::string &tag, int32_t type, const AppExecFwk::ElementName &elementName)=0 | 创建AVSession会话的接口方法。 | -| [GetAllSessionDescriptors](#getallsessiondescriptors) (std::vector< [AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) > &descriptors)=0 | 获取AVSession全部的会话描述的接口方法。 | -| [GetActivatedSessionDescriptors](#getactivatedsessiondescriptors) (std::vector< [AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) > &activatedSessions)=0 | 获取AVSession全部处于活动状态的会话描述的接口方法。 | -| [GetSessionDescriptorsBySessionId](#getsessiondescriptorsbysessionid) (const std::string &sessionId, [AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) &descriptor)=0 | 通过会话ID获得会话描述的方法。 | -| [CreateController](#createcontroller) (const std::string &sessionId, std::shared_ptr< [AVSessionController](o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md) > &controller)=0 | 创建AVSession会话控制器的接口方法。 | -| [RegisterSessionListener](#registersessionlistener) (const std::shared_ptr< [SessionListener](_o_h_o_s_1_1_a_v_session_1_1_session_listener.md) > &listener)=0 | 注册AVSession会话监听器的接口方法。 | -| [RegisterServiceDeathCallback](#registerservicedeathcallback) (const [DeathCallback](avsession__info_8h.md#deathcallback) &callback)=0 | 注册AVSession服务器的死亡回调的接口方法。 | -| [UnregisterServiceDeathCallback](#unregisterservicedeathcallback) ()=0 | 注销AVSession服务器的死亡回调的接口方法。 | -| [SendSystemAVKeyEvent](#sendsystemavkeyevent) (const MMI::KeyEvent &keyEvent)=0 | 发送系统按键事件的接口方法。 | -| [SendSystemControlCommand](#sendsystemcontrolcommand) (const [AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md) &command)=0 | 发送系统控制命令的接口方法。 | -| [CastAudio](#castaudio) (const [SessionToken](_o_h_o_s_1_1_a_v_session_1_1_session_token.md) &token, const std::vector< AudioStandard::AudioDeviceDescriptor > &descriptors)=0 | 将媒体会话投射到远程设备或投射回本地设备。 | -| [CastAudioForAll](#castaudioforall) (const std::vector< AudioStandard::AudioDeviceDescriptor > &descriptors)=0 | 将此设备的所有媒体会话投播到远程设备。 | - - -### 静态 Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [GetInstance](#getinstance) () | 获取会话管理器实例。 | - - -## 成员函数说明 - - -### CastAudio() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::CastAudio (const SessionToken & token, const std::vector< AudioStandard::AudioDeviceDescriptor > & descriptors ) -``` -**描述:** -将媒体会话投射到远程设备或投射回本地设备。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| token | 需要投播的会话令牌。 | -| descriptors | 指定要转换的音频设备。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### CastAudioForAll() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::CastAudioForAll (const std::vector< AudioStandard::AudioDeviceDescriptor > & descriptors) -``` -**描述:** -将此设备的所有媒体会话投播到远程设备。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| descriptors | 指定要转换的音频设备。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### CreateController() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::CreateController (const std::string & sessionId, std::shared_ptr< AVSessionController > & controller ) -``` -**描述:** -创建AVSession会话控制器的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| sessionId | AVSession的会话ID。 | -| controller | 会话控制器实例,类型为[AVSessionController](o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md)。 | - -**返回:** - -返回成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### CreateSession() - - -``` -virtual std::shared_ptr OHOS::AVSession::AVSessionManager::CreateSession (const std::string & tag, int32_t type, const AppExecFwk::ElementName & elementName ) -``` -**描述:** -创建AVSession会话的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| tag | AVSession的会话标签,不可为空。 | -| type | AVSession的会话类型, 入参为[AVSession](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md)的**SESSION_TYPE_AUDIO**,**SESSION_TYPE_VIDEO**。 | -| elementName | AVSession的会话名称**AppExecFwk::ElementName**。 | - -**返回:** - -返回已创建的会话对象的智能指针。 - - -### GetActivatedSessionDescriptors() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::GetActivatedSessionDescriptors (std::vector< AVSessionDescriptor > & activatedSessions) -``` -**描述:** -获取AVSession全部处于活动状态的会话描述的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| activatedSessions | 处于活动状态的会话描述,类型为[AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md)。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### GetAllSessionDescriptors() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::GetAllSessionDescriptors (std::vector< AVSessionDescriptor > & descriptors) -``` -**描述:** -获取AVSession全部的会话描述的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| descriptors | AVSession的会话描述,类型为[AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md)。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### GetInstance() - - -``` -static AVSessionManager& OHOS::AVSession::AVSessionManager::GetInstance () -``` -**描述:** -获取会话管理器实例。 - -**返回:** - -返回会话管理器实例。 - - -### GetSessionDescriptorsBySessionId() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::GetSessionDescriptorsBySessionId (const std::string & sessionId, AVSessionDescriptor & descriptor ) -``` -**描述:** -通过会话ID获得会话描述的方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| sessionId | AVSession的会话标签。 | -| descriptor | AVSession的会话描述,类型为[AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md)。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### RegisterServiceDeathCallback() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::RegisterServiceDeathCallback (const DeathCallback & callback) -``` -**描述:** -注册AVSession服务器的死亡回调的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| callback | 死亡回调的方法,类型为**DeathCallback**。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[UnregisterServiceDeathCallback](#unregisterservicedeathcallback) - - -### RegisterSessionListener() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::RegisterSessionListener (const std::shared_ptr< SessionListener > & listener) -``` -**描述:** -注册AVSession会话监听器的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| listener | 会话监听器的智能指针,类型为[SessionListener](_o_h_o_s_1_1_a_v_session_1_1_session_listener.md)。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SendSystemAVKeyEvent() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::SendSystemAVKeyEvent (const MMI::KeyEvent & keyEvent) -``` -**描述:** -发送系统按键事件的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| keyEvent | 按键事件码,类型为**MMI::KeyEvent**。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SendSystemControlCommand() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::SendSystemControlCommand (const AVControlCommand & command) -``` -**描述:** -发送系统控制命令的接口方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| command | 系统控制命令[AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md)。 | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### UnregisterServiceDeathCallback() - - -``` -virtual int32_t OHOS::AVSession::AVSessionManager::UnregisterServiceDeathCallback () -``` -**描述:** -注销AVSession服务器的死亡回调的接口方法。 - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[RegisterServiceDeathCallback](#registerservicedeathcallback) diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md deleted file mode 100644 index 39038f5b3f..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md +++ /dev/null @@ -1,154 +0,0 @@ -# OHOS::AVSession::AVSessionPixelMap - - -## 概述 - -读取、设置图片及图片信息。 - - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Marshalling](#marshalling) (Parcel &data) const override | 实现图片及图片信息的序列化。  | -| [GetPixelData](#getpixeldata) () const | 获取图片数据。  | -| [SetPixelData](#setpixeldata) (const std::vector< uint8_t > &data) | 设置图片数据。  | -| [GetImageInfo](#getimageinfo) () const | 获取图片信息。  | -| [SetImageInfo](#setimageinfo) (const std::vector< uint8_t > &imageInfo) | 设置图片信息。  | - - -### 静态 Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [Unmarshalling](#unmarshalling) (Parcel &data) | 实现图片及图片信息的反序列化。  | - - -## 成员函数说明 - - -### GetImageInfo() - - -``` -std::vector OHOS::AVSession::AVSessionPixelMap::GetImageInfo () const -``` -**描述:** -获取图片信息。 - -**返回:** - -返回图片信息。 - -**参见:** - -[SetImageInfo](#setimageinfo) - - -### GetPixelData() - - -``` -std::vector OHOS::AVSession::AVSessionPixelMap::GetPixelData () const -``` -**描述:** -获取图片数据。 - -**返回:** - -返回图片数据。 - -**参见:** - -[SetPixelData](#setpixeldata) - - -### Marshalling() - - -``` -bool OHOS::AVSession::AVSessionPixelMap::Marshalling (Parcel & data) const -``` -**描述:** -实现图片及图片信息的序列化。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 保存序列化值的对象**Parcel**。  | - -**返回:** - -如果序列化成功,则返回true;失败则返回false。 - -**参见:** - -[Unmarshalling](#unmarshalling) - - -### SetImageInfo() - - -``` -void OHOS::AVSession::AVSessionPixelMap::SetImageInfo (const std::vector< uint8_t > & imageInfo) -``` -**描述:** -设置图片信息。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| imageInfo | 图片信息。  | - -**参见:** - -[GetImageInfo](#getimageinfo) - - -### SetPixelData() - - -``` -void OHOS::AVSession::AVSessionPixelMap::SetPixelData (const std::vector< uint8_t > & data) -``` -**描述:** -设置图片数据。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 图片数据。  | - -**参见:** - -[GetPixelData](#getpixeldata) - - -### Unmarshalling() - - -``` -static AVSessionPixelMap* OHOS::AVSession::AVSessionPixelMap::Unmarshalling (Parcel & data) -``` -**描述:** -实现图片及图片信息的反序列化。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 保存反序列化值的对象**Parcel**。  | - -**返回:** - -如果反序列化成功,则返回true;失败则返回false。 - -**参见:** - -[Marshalling](#marshalling) diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md deleted file mode 100644 index f1aa54fa9b..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md +++ /dev/null @@ -1,25 +0,0 @@ -# OHOS::AVSession::OutputDeviceInfo - - -## 概述 - -描述分布式设备的相关信息。 - -**起始版本:** -9 - -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 成员变量 - - | 名称 | 描述 | -| -------- | -------- | -| [isRemote_](avsession.md#isremote) {} | bool | -| [deviceIds_](avsession.md#deviceids) | std::vector< std::string > | -| [deviceNames_](avsession.md#devicenames) | std::vector< std::string > | diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md deleted file mode 100644 index f4d8988dc3..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_listener.md +++ /dev/null @@ -1,95 +0,0 @@ -# OHOS::AVSession::SessionListener - - -## 概述 - -定义与AVSession相关监听器的类的实现。 - -**起始版本:** -9 - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [OnSessionCreate](#onsessioncreate) (const [AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) &descriptor)=0 | 创建AVSession会话的抽象的接口回调方法。  | -| [OnSessionRelease](#onsessionrelease) (const [AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) &descriptor)=0 | 释放AVSession会话的抽象的接口回调方法。  | -| [OnTopSessionChange](#ontopsessionchange) (const [AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) &descriptor)=0 | AVSession的TOP会话发生变化的抽象的接口回调方法。  | -| [~SessionListener](#sessionlistener) ()=default | SessionListener的默认的析构函数。  | - - -## 构造及析构函数说明 - - -### ~SessionListener() - - -``` -virtual OHOS::AVSession::SessionListener::~SessionListener () -``` -**描述:** -SessionListener的默认的析构函数。 - - -## 成员函数说明 - - -### OnSessionCreate() - - -``` -virtual void OHOS::AVSession::SessionListener::OnSessionCreate (const AVSessionDescriptor & descriptor) -``` -**描述:** -创建AVSession会话的抽象的接口回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| descriptor | AVSession的会话描述对象,类型为[AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md)。  | - -**参见:** - -[OnSessionRelease](#onsessionrelease) - - -### OnSessionRelease() - - -``` -virtual void OHOS::AVSession::SessionListener::OnSessionRelease (const AVSessionDescriptor & descriptor) -``` -**描述:** -释放AVSession会话的抽象的接口回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| descriptor | AVSession的会话描述对象,类型为[AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md)。  | - -**参见:** - -[OnSessionCreate](#onsessioncreate) - - -### OnTopSessionChange() - - -``` -virtual void OHOS::AVSession::SessionListener::OnTopSessionChange (const AVSessionDescriptor & descriptor) -``` -**描述:** -AVSession的TOP会话发生变化的抽象的接口回调方法。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| descriptor | AVSession的会话描述对象,类型为[AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md)。  | - - \ No newline at end of file diff --git a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md b/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md deleted file mode 100644 index 66fe6a463a..0000000000 --- a/zh-cn/application-dev/reference/native-apis/_o_h_o_s_1_1_a_v_session_1_1_session_token.md +++ /dev/null @@ -1,53 +0,0 @@ -# OHOS::AVSession::SessionToken - - -## 概述 - -会话令牌的信息。 - -**起始版本:** -9 - -## 汇总 - - -### 成员变量 - - | 名称 | 描述 | -| -------- | -------- | -| [sessionId](#sessionid) | std::string
会话id  | -| [pid](#pid) | pid_t
会话的进程id  | -| [uid](#uid) | uid_t
用户id  | - - -## 结构体成员变量说明 - - -### pid - - -``` -pid_t OHOS::AVSession::SessionToken::pid -``` -**描述:** -会话的进程id - - -### sessionId - - -``` -std::string OHOS::AVSession::SessionToken::sessionId -``` -**描述:** -会话id - - -### uid - - -``` -uid_t OHOS::AVSession::SessionToken::uid -``` -**描述:** -用户id diff --git a/zh-cn/application-dev/reference/native-apis/av__session_8h.md b/zh-cn/application-dev/reference/native-apis/av__session_8h.md deleted file mode 100644 index d66bfd2434..0000000000 --- a/zh-cn/application-dev/reference/native-apis/av__session_8h.md +++ /dev/null @@ -1,24 +0,0 @@ -# av_session.h - - -## 概述 - -会话的设置、获取等声明。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVSession](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md) | class
会话对象,支持配置会话属性,并可主动更新播放状态和会话元数据。 | diff --git a/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md b/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md deleted file mode 100644 index 4cc45e9019..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avcontrol__command_8h.md +++ /dev/null @@ -1,24 +0,0 @@ -# avcontrol_command.h - - -## 概述 - -音视频控制指令的设置、获取、拷贝等声明。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md) | class
用于描述音视频播控命令工具类,播控命令的封装对象,支持设置和获取控制命令。 | diff --git a/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md b/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md deleted file mode 100644 index bbaa050e9c..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avmeta__data_8h.md +++ /dev/null @@ -1,24 +0,0 @@ -# avmeta_data.h - - -## 概述 - -会话元数据设置、获取、拷贝等接口声明。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) | class
会话元数据类,提供获取metadata进程间传递的序列化和反序列话及数据拷贝的接口方法。 | diff --git a/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md b/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md deleted file mode 100644 index d8099b9ab1..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avplayback__state_8h.md +++ /dev/null @@ -1,25 +0,0 @@ -# avplayback_state.h - - -## 概述 - -音视频播放状态声明。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) | class
音视频播放状态类,提供获取和设置播放界面的信息。 | -| [OHOS::AVSession::AVPlaybackState::Position](_1_a_v_session_1_1_a_v_playback_state_1_1_position.md) | struct
播放位置的相关信息。 | diff --git a/zh-cn/application-dev/reference/native-apis/avsession.md b/zh-cn/application-dev/reference/native-apis/avsession.md deleted file mode 100644 index 95409373aa..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession.md +++ /dev/null @@ -1,469 +0,0 @@ -# Avsession - - -## 概述 - -音视频媒体会话,提供系统内媒体的统一控制能力。 - -功能包括媒体会话,媒体会话管理,媒体会话控制。 - -@syscap SystemCapability.Multimedia.AVSession.Core - -**起始版本:** - -9 - -**Version:** - -1.0 - - -## 汇总 - - -### 文件 - - | 名称 | 描述 | -| -------- | -------- | -| [av_session.h](av__session_8h.md) | 会话的设置、获取等声明。 | -| [avcontrol_command.h](avcontrol__command_8h.md) | 音视频控制指令的设置、获取、拷贝等声明。 | -| [avmeta_data.h](avmeta__data_8h.md) | 会话元数据设置、获取、拷贝等接口声明。 | -| [avplayback_state.h](avplayback__state_8h.md) | 音视频播放状态声明。 | -| [avsession_controller.h](avsession__controller_8h.md) | 控制器对象的描述,可获取会话的播放状态和会话元数据,远程发送控制命令到会话端也可以通过订阅监听会话段的更新事件。 | -| [avsession_descriptor.h](avsession__descriptor_8h.md) | 会话的相关描述信息。 | -| [avsession_errors.h](avsession__errors_8h.md) | 定义了avsession错误码。 | -| [avsession_info.h](avsession__info_8h.md) | 定义了与avsession相关的监听器以及回调功能的实现。 | -| [avsession_manager.h](avsession__manager_8h.md) | 定义了会话管理器对外接口的功能的实现。 | -| [avsession_pixel_map.h](avsession__pixel__map_8h.md) | 读取、设置图片及图片信息。 | - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) | struct
描述分布式设备的相关信息。 | -| [OHOS::AVSession::AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) | struct
会话的相关描述信息。 | -| [OHOS::AVSession::AVSessionBasicInfo](o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md) | struct
会话基础信息描述。 | - - -### 函数 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVSessionDescriptor::WriteToParcel](#writetoparcel) (Parcel &out) const | bool
将会话相关描述信息写进包里。 | -| [OHOS::AVSession::AVSessionDescriptor::ReadFromParcel](#readfromparcel) (Parcel &in) | bool
对会话相关描述信息进行解包。 | - - -### 变量 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::OutputDeviceInfo::isRemote_](#isremote) {} | bool
是否连接 | -| [OHOS::AVSession::OutputDeviceInfo::deviceIds_](#deviceids) | std::vector< std::string >
分布式设备的id集合 | -| [OHOS::AVSession::OutputDeviceInfo::deviceNames_](#devicenames) | std::vector< std::string >
分布式设备的名称集合 | -| [OHOS::AVSession::AVSessionDescriptor::sessionId_](#sessionid) | std::string
会话的id | -| [OHOS::AVSession::AVSessionDescriptor::sessionType_](#sessiontype) {} | int32_t
会话的类型 | -| [OHOS::AVSession::AVSessionDescriptor::sessionTag_](#sessiontag) | std::string
会话的自定义名称 | -| [OHOS::AVSession::AVSessionDescriptor::elementName_](#elementname) | AppExecFwk::ElementName
会话所属应用的信息包含bundleName,abilityName等 | -| [OHOS::AVSession::AVSessionDescriptor::pid_](#pid) {} | pid_t
进程id | -| [OHOS::AVSession::AVSessionDescriptor::uid_](#uid) {} | pid_t
用户id | -| [OHOS::AVSession::AVSessionDescriptor::isActive_](#isactive) {} | bool
会话是否为激活状态 | -| [OHOS::AVSession::AVSessionDescriptor::isTopSession_](#istopsession) {} | bool
会话是否是最新的会话 | -| [OHOS::AVSession::AVSessionDescriptor::isThirdPartyApp_](#isthirdpartyapp) {} | bool
是否是第三方应用 | -| [OHOS::AVSession::AVSessionDescriptor::outputDeviceInfo_](#outputdeviceinfo) | [OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md)
分布式设备相关信息 | -| [OHOS::AVSession::AVSessionBasicInfo::deviceName_](#devicename) {} | std::string
设备名称 | -| [OHOS::AVSession::AVSessionBasicInfo::networkId_](#networkid) {} | std::string
设备id | -| [OHOS::AVSession::AVSessionBasicInfo::vendorId_](#vendorid) {} | std::string
供应商id | -| [OHOS::AVSession::AVSessionBasicInfo::deviceType_](#devicetype) {} | std::string
设备类型 | -| [OHOS::AVSession::AVSessionBasicInfo::systemVersion_](#systemversion) {} | std::string
系统版本 | -| [OHOS::AVSession::AVSessionBasicInfo::sessionVersion_](#sessionversion) {} | int32_t
会话版本 | -| [OHOS::AVSession::AVSessionBasicInfo::reserve_](#reserve) {} | std::vector< int32_t >
备注信息 | -| [OHOS::AVSession::AVSessionBasicInfo::feature_](#feature) {} | std::vector< int32_t >
特征信息 | -| [OHOS::AVSession::AVSessionBasicInfo::metaDataCap_](#metadatacap) {} | std::vector< int32_t >
会话元数据 | -| [OHOS::AVSession::AVSessionBasicInfo::playBackStateCap_](#playbackstatecap) {} | std::vector< int32_t >
支持播放状态数组 | -| [OHOS::AVSession::AVSessionBasicInfo::controlCommandCap_](#controlcommandcap) {} | std::vector< int32_t >
系统控制命令 | -| [OHOS::AVSession::AVSessionBasicInfo::extendCapability_](#extendcapability) {} | std::vector< int32_t >
扩展能力 | -| [OHOS::AVSession::AVSessionBasicInfo::systemTime_](#systemtime) {} | int32_t
系统时间 | -| [OHOS::AVSession::AVSessionBasicInfo::extend_](#extend) {} | std::vector< int32_t >
扩展信息 | - - -## 函数说明 - - -### ReadFromParcel() - - -``` -bool OHOS::AVSession::AVSessionDescriptor::ReadFromParcel (Parcel & in) -``` - -**描述:** - -对会话相关描述信息进行解包。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| in | 读出的会话相关描述信息对象**Parcel**。 | - -**返回:** - -成功返回true;失败则返回false。 - -**参见:** - -[WriteToParcel](#writetoparcel) - - -### WriteToParcel() - - -``` -bool OHOS::AVSession::AVSessionDescriptor::WriteToParcel (Parcel & out) const -``` - -**描述:** - -将会话相关描述信息写进包里。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| out | 写入的会话相关描述信息对象**Parcel**。 | - -**返回:** - -成功返回true;失败则返回false。 - -**参见:** - -[ReadFromParcel](#readfromparcel) - - -## 变量说明 - - -### controlCommandCap_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::controlCommandCap_ {} -``` - -**描述:** - -系统控制命令 - - -### deviceIds_ - - -``` -std::vector OHOS::AVSession::OutputDeviceInfo::deviceIds_ -``` - -**描述:** - -分布式设备的id集合 - - -### deviceName_ - - -``` -std::string OHOS::AVSession::AVSessionBasicInfo::deviceName_ {} -``` - -**描述:** - -设备名称 - - -### deviceNames_ - - -``` -std::vector OHOS::AVSession::OutputDeviceInfo::deviceNames_ -``` - -**描述:** - -分布式设备的名称集合 - - -### deviceType_ - - -``` -std::string OHOS::AVSession::AVSessionBasicInfo::deviceType_ {} -``` - -**描述:** - -设备类型 - - -### elementName_ - - -``` -AppExecFwk::ElementName OHOS::AVSession::AVSessionDescriptor::elementName_ -``` - -**描述:** - -会话所属应用的信息包含bundleName,abilityName等 - - -### extend_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::extend_ {} -``` - -**描述:** - -扩展信息 - - -### extendCapability_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::extendCapability_ {} -``` - -**描述:** - -扩展能力 - - -### feature_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::feature_ {} -``` - -**描述:** - -特征信息 - - -### isActive_ - - -``` -bool OHOS::AVSession::AVSessionDescriptor::isActive_ {} -``` - -**描述:** - -会话是否为激活状态 - - -### isRemote_ - - -``` -bool OHOS::AVSession::OutputDeviceInfo::isRemote_ {} -``` - -**描述:** - -是否连接 - - -### isThirdPartyApp_ - - -``` -bool OHOS::AVSession::AVSessionDescriptor::isThirdPartyApp_ {} -``` - -**描述:** - -是否是第三方应用 - - -### isTopSession_ - - -``` -bool OHOS::AVSession::AVSessionDescriptor::isTopSession_ {} -``` - -**描述:** - -会话是否是最新的会话 - - -### metaDataCap_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::metaDataCap_ {} -``` - -**描述:** - -会话元数据 - - -### networkId_ - - -``` -std::string OHOS::AVSession::AVSessionBasicInfo::networkId_ {} -``` - -**描述:** - -设备id - - -### outputDeviceInfo_ - - -``` -OutputDeviceInfo OHOS::AVSession::AVSessionDescriptor::outputDeviceInfo_ -``` - -**描述:** - -分布式设备相关信息 - - -### pid_ - - -``` -pid_t OHOS::AVSession::AVSessionDescriptor::pid_ {} -``` - -**描述:** - -进程id - - -### playBackStateCap_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::playBackStateCap_ {} -``` - -**描述:** - -支持播放状态数组 - - -### reserve_ - - -``` -std::vector OHOS::AVSession::AVSessionBasicInfo::reserve_ {} -``` - -**描述:** - -备注信息 - - -### sessionId_ - - -``` -std::string OHOS::AVSession::AVSessionDescriptor::sessionId_ -``` - -**描述:** - -会话的id - - -### sessionTag_ - - -``` -std::string OHOS::AVSession::AVSessionDescriptor::sessionTag_ -``` - -**描述:** - -会话的自定义名称 - - -### sessionType_ - - -``` -int32_t OHOS::AVSession::AVSessionDescriptor::sessionType_ {} -``` - -**描述:** - -会话的类型 - - -### sessionVersion_ - - -``` -int32_t OHOS::AVSession::AVSessionBasicInfo::sessionVersion_ {} -``` - -**描述:** - -会话版本 - - -### systemTime_ - - -``` -int32_t OHOS::AVSession::AVSessionBasicInfo::systemTime_ {} -``` - -**描述:** - -系统时间 - - -### systemVersion_ - - -``` -std::string OHOS::AVSession::AVSessionBasicInfo::systemVersion_ {} -``` - -**描述:** - -系统版本 - - -### uid_ - - -``` -pid_t OHOS::AVSession::AVSessionDescriptor::uid_ {} -``` - -**描述:** - -用户id - - -### vendorId_ - - -``` -std::string OHOS::AVSession::AVSessionBasicInfo::vendorId_ {} -``` - -**描述:** - -供应商id diff --git a/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md deleted file mode 100644 index 38446db715..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession__controller_8h.md +++ /dev/null @@ -1,24 +0,0 @@ -# avsession_controller.h - - -## 概述 - -控制器对象的描述,可获取会话的播放状态和会话元数据,远程发送控制命令到会话端也可以通过订阅监听会话段的更新事件。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVSessionController](o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md) | class
控制器对象,可获取会话的播放状态和会话元数据,远程发送控制命令到会话端也可以通过订阅监听会话段的更新事件。 | diff --git a/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md deleted file mode 100644 index 73c87d3892..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession__descriptor_8h.md +++ /dev/null @@ -1,26 +0,0 @@ -# avsession_descriptor.h - - -## 概述 - -会话的相关描述信息。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) | struct
描述分布式设备的相关信息。 | -| [OHOS::AVSession::AVSessionDescriptor](o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md) | struct
会话的相关描述信息。 | -| [OHOS::AVSession::AVSessionBasicInfo](o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md) | struct
会话基础信息描述。 | diff --git a/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md deleted file mode 100644 index 649a7edbf8..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession__errors_8h.md +++ /dev/null @@ -1,268 +0,0 @@ -# avsession_errors.h - - -## 概述 - -定义了avsession错误码。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 变量 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVSESSION_ERROR](#avsession_error) = -1 | constexpr int32_t
存在错误 | -| [OHOS::AVSession::AVSESSION_SUCCESS](#avsession_success) = 0 | constexpr int32_t
操作成功 | -| [OHOS::AVSession::AVSESSION_ERROR_BASE](#avsession_error_base) = 1000 | constexpr int32_t
avsession错误码的基定义 | -| [OHOS::AVSession::ERR_NO_MEMORY](#err_no_memory) = -(AVSESSION_ERROR_BASE + 1) | constexpr int32_t
无可用内存 | -| [OHOS::AVSession::ERR_INVALID_PARAM](#err_invalid_param) = -(AVSESSION_ERROR_BASE + 2) | constexpr int32_t
传递的参数无效 | -| [OHOS::AVSession::ERR_SERVICE_NOT_EXIST](#err_service_not_exist) = -(AVSESSION_ERROR_BASE + 3) | constexpr int32_t
服务不存在 | -| [OHOS::AVSession::ERR_SESSION_LISTENER_EXIST](#err_session_listener_exist) = -(AVSESSION_ERROR_BASE + 4) | constexpr int32_t
Session监听器已存在 | -| [OHOS::AVSession::ERR_MARSHALLING](#err_marshalling) = -(AVSESSION_ERROR_BASE + 5) | constexpr int32_t
数据序列化操作错误 | -| [OHOS::AVSession::ERR_UNMARSHALLING](#err_unmarshalling) = -(AVSESSION_ERROR_BASE + 6) | constexpr int32_t
数据反序列化操作错误 | -| [OHOS::AVSession::ERR_IPC_SEND_REQUEST](#err_ipc_send_request) = -(AVSESSION_ERROR_BASE + 7) | constexpr int32_t
IPC发送数据失败 | -| [OHOS::AVSession::ERR_SESSION_EXCEED_MAX](#err_session_exceed_max) = -(AVSESSION_ERROR_BASE + 8) | constexpr int32_t
超过允许会话最大数量 | -| [OHOS::AVSession::ERR_SESSION_NOT_EXIST](#err_session_not_exist) = -(AVSESSION_ERROR_BASE + 9) | constexpr int32_t
会话不存在 | -| [OHOS::AVSession::ERR_COMMAND_NOT_SUPPORT](#err_command_not_support) = -(AVSESSION_ERROR_BASE + 10) | constexpr int32_t
会话命令不支持 | -| [OHOS::AVSession::ERR_CONTROLLER_NOT_EXIST](#err_controller_not_exist) = -(AVSESSION_ERROR_BASE + 11) | constexpr int32_t
控制器不存在 | -| [OHOS::AVSession::ERR_NO_PERMISSION](#err_no_permission) = -(AVSESSION_ERROR_BASE + 12) | constexpr int32_t
无权限 | -| [OHOS::AVSession::ERR_SESSION_DEACTIVE](#err_session_deactive) = -(AVSESSION_ERROR_BASE + 13) | constexpr int32_t
会话未激活 | -| [OHOS::AVSession::ERR_CONTROLLER_IS_EXIST](#err_controller_is_exist) = -(AVSESSION_ERROR_BASE + 14) | constexpr int32_t
控制器存在 | -| [OHOS::AVSession::ERR_START_ABILITY_IS_RUNNING](#err_start_ability_is_running) = -(AVSESSION_ERROR_BASE + 15) | constexpr int32_t
元能力正在运行 | -| [OHOS::AVSession::ERR_ABILITY_NOT_AVAILABLE](#err_ability_not_available) = -(AVSESSION_ERROR_BASE + 16) | constexpr int32_t
元能力启动超失败 | -| [OHOS::AVSession::ERR_START_ABILITY_TIMEOUT](#err_start_ability_timeout) = -(AVSESSION_ERROR_BASE + 17) | constexpr int32_t
元能力启动超时 | -| [OHOS::AVSession::ERR_COMMAND_SEND_EXCEED_MAX](#err_command_send_exceed_max) = -(AVSESSION_ERROR_BASE + 18) | constexpr int32_t
指令发送次数超过最大值 | -| [OHOS::AVSession::ERR_RPC_SEND_REQUEST](#err_rpc_send_request) = -(AVSESSION_ERROR_BASE + 19) | constexpr int32_t
RPC发送数据失败 | - - -## 变量说明 - - -### AVSESSION_ERROR - - -``` -constexpr int32_t OHOS::AVSession::AVSESSION_ERROR = -1 -``` -**描述:** -存在错误 - - -### AVSESSION_ERROR_BASE - - -``` -constexpr int32_t OHOS::AVSession::AVSESSION_ERROR_BASE = 1000 -``` -**描述:** -avsession错误码的基定义 - - -### AVSESSION_SUCCESS - - -``` -constexpr int32_t OHOS::AVSession::AVSESSION_SUCCESS = 0 -``` -**描述:** -操作成功 - - -### ERR_ABILITY_NOT_AVAILABLE - - -``` -constexpr int32_t OHOS::AVSession::ERR_ABILITY_NOT_AVAILABLE = -(AVSESSION_ERROR_BASE + 16) -``` -**描述:** -元能力启动超失败 - - -### ERR_COMMAND_NOT_SUPPORT - - -``` -constexpr int32_t OHOS::AVSession::ERR_COMMAND_NOT_SUPPORT = -(AVSESSION_ERROR_BASE + 10) -``` -**描述:** -会话命令不支持 - - -### ERR_COMMAND_SEND_EXCEED_MAX - - -``` -constexpr int32_t OHOS::AVSession::ERR_COMMAND_SEND_EXCEED_MAX = -(AVSESSION_ERROR_BASE + 18) -``` -**描述:** -指令发送次数超过最大值 - - -### ERR_CONTROLLER_IS_EXIST - - -``` -constexpr int32_t OHOS::AVSession::ERR_CONTROLLER_IS_EXIST = -(AVSESSION_ERROR_BASE + 14) -``` -**描述:** -控制器存在 - - -### ERR_CONTROLLER_NOT_EXIST - - -``` -constexpr int32_t OHOS::AVSession::ERR_CONTROLLER_NOT_EXIST = -(AVSESSION_ERROR_BASE + 11) -``` -**描述:** -控制器不存在 - - -### ERR_INVALID_PARAM - - -``` -constexpr int32_t OHOS::AVSession::ERR_INVALID_PARAM = -(AVSESSION_ERROR_BASE + 2) -``` -**描述:** -传递的参数无效 - - -### ERR_IPC_SEND_REQUEST - - -``` -constexpr int32_t OHOS::AVSession::ERR_IPC_SEND_REQUEST = -(AVSESSION_ERROR_BASE + 7) -``` -**描述:** -IPC发送数据失败 - - -### ERR_MARSHALLING - - -``` -constexpr int32_t OHOS::AVSession::ERR_MARSHALLING = -(AVSESSION_ERROR_BASE + 5) -``` -**描述:** -数据序列化操作错误 - - -### ERR_NO_MEMORY - - -``` -constexpr int32_t OHOS::AVSession::ERR_NO_MEMORY = -(AVSESSION_ERROR_BASE + 1) -``` -**描述:** -无可用内存 - - -### ERR_NO_PERMISSION - - -``` -constexpr int32_t OHOS::AVSession::ERR_NO_PERMISSION = -(AVSESSION_ERROR_BASE + 12) -``` -**描述:** -无权限 - - -### ERR_RPC_SEND_REQUEST - - -``` -constexpr int32_t OHOS::AVSession::ERR_RPC_SEND_REQUEST = -(AVSESSION_ERROR_BASE + 19) -``` -**描述:** -RPC发送数据失败 - - -### ERR_SERVICE_NOT_EXIST - - -``` -constexpr int32_t OHOS::AVSession::ERR_SERVICE_NOT_EXIST = -(AVSESSION_ERROR_BASE + 3) -``` -**描述:** -服务不存在 - - -### ERR_SESSION_DEACTIVE - - -``` -constexpr int32_t OHOS::AVSession::ERR_SESSION_DEACTIVE = -(AVSESSION_ERROR_BASE + 13) -``` -**描述:** -会话未激活 - - -### ERR_SESSION_EXCEED_MAX - - -``` -constexpr int32_t OHOS::AVSession::ERR_SESSION_EXCEED_MAX = -(AVSESSION_ERROR_BASE + 8) -``` -**描述:** -超过允许会话最大数量 - - -### ERR_SESSION_LISTENER_EXIST - - -``` -constexpr int32_t OHOS::AVSession::ERR_SESSION_LISTENER_EXIST = -(AVSESSION_ERROR_BASE + 4) -``` -**描述:** -Session监听器已存在 - - -### ERR_SESSION_NOT_EXIST - - -``` -constexpr int32_t OHOS::AVSession::ERR_SESSION_NOT_EXIST = -(AVSESSION_ERROR_BASE + 9) -``` -**描述:** -会话不存在 - - -### ERR_START_ABILITY_IS_RUNNING - - -``` -constexpr int32_t OHOS::AVSession::ERR_START_ABILITY_IS_RUNNING = -(AVSESSION_ERROR_BASE + 15) -``` -**描述:** -元能力正在运行 - - -### ERR_START_ABILITY_TIMEOUT - - -``` -constexpr int32_t OHOS::AVSession::ERR_START_ABILITY_TIMEOUT = -(AVSESSION_ERROR_BASE + 17) -``` -**描述:** -元能力启动超时 - - -### ERR_UNMARSHALLING - - -``` -constexpr int32_t OHOS::AVSession::ERR_UNMARSHALLING = -(AVSESSION_ERROR_BASE + 6) -``` -**描述:** -数据反序列化操作错误 diff --git a/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md deleted file mode 100644 index 5d2eda467f..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession__info_8h.md +++ /dev/null @@ -1,75 +0,0 @@ -# avsession_info.h - - -## 概述 - -定义了与avsession相关的监听器以及回调功能的实现。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::SessionListener](_o_h_o_s_1_1_a_v_session_1_1_session_listener.md) | class
定义与AVSession相关监听器的类的实现。 | -| [OHOS::AVSession::AVSessionCallback](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_callback.md) | class
定义AVSession回调类的实现 | -| [OHOS::AVSession::AVControllerCallback](_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md) | class
定义控制器相关回调操作的类的实现。 | -| [OHOS::AVSession::SessionToken](_o_h_o_s_1_1_a_v_session_1_1_session_token.md) | struct
会话令牌的信息。 | - - -### 类型定义 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::DeathCallback](#deathcallback) = std::function< void()> | using | - - -### 枚举 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::SessionDataCategory](#sessiondatacategory) {
**OHOS::AVSession::SESSION_DATA_CATEGORY_INVALID** = -1, **OHOS::AVSession::SESSION_DATA_META** = 0, **OHOS::AVSession::SESSION_DATA_PLAYBACK_STATE** = 1, **OHOS::AVSession::SESSION_DATA_CONTROL_COMMAND** = 2, **OHOS::AVSession::SESSION_DATA_CATEGORY_MAX** = 3
} | 会话元数据处理标识 | - - -## 类型定义说明 - - -### DeathCallback - - -``` -using OHOS::AVSession::DeathCallback = typedef std::function -``` -**描述:** -AVSession死亡回调 - - -## 枚举类型说明 - - -### SessionDataCategory - - -``` -enum OHOS::AVSession::SessionDataCategory -``` -**描述:** -会话元数据处理标识 - - | 枚举值 | 描述 | -| -------- | -------- | -| SESSION_DATA_CATEGORY_INVALID | 无效类型,内部用于类型是否有效 | -| SESSION_DATA_META | 会话元数据 | -| SESSION_DATA_PLAYBACK_STATE | 会话播放状态 | -| SESSION_DATA_CONTROL_COMMAND | 会话控制命令 | -| SESSION_DATA_CATEGORY_MAX | 会话数据类型的数量 | diff --git a/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md deleted file mode 100644 index 86b408d3bb..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession__manager_8h.md +++ /dev/null @@ -1,24 +0,0 @@ -# avsession_manager.h - - -## 概述 - -定义了会话管理器对外接口的功能的实现。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVSessionManager](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md) | class
实现会话管理器对外接口功能的类的实现。 | diff --git a/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md b/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md deleted file mode 100644 index 0843e8fad6..0000000000 --- a/zh-cn/application-dev/reference/native-apis/avsession__pixel__map_8h.md +++ /dev/null @@ -1,44 +0,0 @@ -# avsession_pixel_map.h - - -## 概述 - -读取、设置图片及图片信息。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 结构体 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::AVSessionPixelMap](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_pixel_map.md) | class
读取、设置图片及图片信息。 | - - -### 变量 - - | 名称 | 描述 | -| -------- | -------- | -| [OHOS::AVSession::DEFAULT_BUFFER_SIZE](#default_buffer_size) = 160 \* 1024 | constexpr size_t
初始化容器大小为160KB | - - -## 变量说明 - - -### DEFAULT_BUFFER_SIZE - - -``` -constexpr size_t OHOS::AVSession::DEFAULT_BUFFER_SIZE = 160 * 1024 -``` -**描述:** -初始化容器大小为160KB diff --git a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md deleted file mode 100644 index 7f80f23b75..0000000000 --- a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_basic_info.md +++ /dev/null @@ -1,37 +0,0 @@ -# OHOS::AVSession::AVSessionBasicInfo - - -## 概述 - -会话基础信息描述。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### 成员变量 - - | 名称 | 描述 | -| -------- | -------- | -| [deviceName_](avsession.md#devicename) {} | std::string | -| [networkId_](avsession.md#networkid) {} | std::string | -| [vendorId_](avsession.md#vendorid) {} | std::string | -| [deviceType_](avsession.md#devicetype) {} | std::string | -| [systemVersion_](avsession.md#systemversion) {} | std::string | -| [sessionVersion_](avsession.md#sessionversion) {} | int32_t | -| [reserve_](avsession.md#reserve) {} | std::vector< int32_t > | -| [feature_](avsession.md#feature) {} | std::vector< int32_t > | -| [metaDataCap_](avsession.md#metadatacap) {} | std::vector< int32_t > | -| [playBackStateCap_](avsession.md#playbackstatecap) {} | std::vector< int32_t > | -| [controlCommandCap_](avsession.md#controlcommandcap) {} | std::vector< int32_t > | -| [extendCapability_](avsession.md#extendcapability) {} | std::vector< int32_t > | -| [systemTime_](avsession.md#systemtime) {} | int32_t | -| [extend_](avsession.md#extend) {} | std::vector< int32_t > | diff --git a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md deleted file mode 100644 index 337f6045d9..0000000000 --- a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_controller.md +++ /dev/null @@ -1,328 +0,0 @@ -# OHOS::AVSession::AVSessionController - - -## 概述 - -控制器对象,可获取会话的播放状态和会话元数据,远程发送控制命令到会话端也可以通过订阅监听会话段的更新事件。 - - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [GetAVPlaybackState](#getavplaybackstate) ([AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md) &state)=0 | 获取音视频的播放状态。  | -| [GetAVMetaData](#getavmetadata) ([AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md) &data)=0 | 获取会话元数据。  | -| [SendAVKeyEvent](#sendavkeyevent) (const MMI::KeyEvent &keyEvent)=0 | 发送系统按键事件。  | -| [GetLaunchAbility](#getlaunchability) (AbilityRuntime::WantAgent::WantAgent &ability)=0 | 获取Ability。  | -| [GetValidCommands](#getvalidcommands) (std::vector< int32_t > &cmds)=0 | 获取媒体有效的指令。  | -| [IsSessionActive](#issessionactive) (bool &isActive)=0 | 获取session的激活状态。  | -| [SendControlCommand](#sendcontrolcommand) (const [AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md) &cmd)=0 | 发送媒体控制指令。  | -| [RegisterCallback](#registercallback) (const std::shared_ptr< [AVControllerCallback](_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md) > &callback)=0 | 注册回调。  | -| [SetMetaFilter](#setmetafilter) (const [AVMetaData::MetaMaskType](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md#metamasktype) &filter)=0 | 设置会话元数据过滤。  | -| [SetPlaybackFilter](#setplaybackfilter) (const AVPlaybackState::PlaybackStateMaskType &filter)=0 | 设置音视频的播放状态回调过滤。  | -| [Destroy](#destroy) ()=0 | 释放控制器。  | -| [GetSessionId](#getsessionid) ()=0 | 获取sessionId。  | -| [GetRealPlaybackPosition](#getrealplaybackposition) ()=0 | 获取播放的实时位置,第 x ms。  | -| [IsDestroy](#isdestroy) ()=0 | 是否释放控制器。  | - - -## 成员函数说明 - - -### Destroy() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::Destroy () -``` -**描述:** -释放控制器。 - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### GetAVMetaData() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::GetAVMetaData (AVMetaData & data) -``` -**描述:** -获取会话元数据。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| data | 会话元数据[AVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md)。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[AVSession::SetAVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#setavmetadata) - -[AVSession::GetAVMetaData](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#getavmetadata) - - -### GetAVPlaybackState() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::GetAVPlaybackState (AVPlaybackState & state) -``` -**描述:** -获取音视频的播放状态。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| state | 音视频的播放状态[AVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_playback_state.md)。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[AVSession::SetAVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#setavplaybackstate) - -[AVSession::GetAVPlaybackState](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#getavplaybackstate) - - -### GetLaunchAbility() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::GetLaunchAbility (AbilityRuntime::WantAgent::WantAgent & ability) -``` -**描述:** -获取Ability。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| ability | 类型为**AbilityRuntime::WantAgent::WantAgent**。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[AVSession::SetLaunchAbility](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#setlaunchability) - - -### GetRealPlaybackPosition() - - -``` -virtual int64_t OHOS::AVSession::AVSessionController::GetRealPlaybackPosition () -``` -**描述:** -获取播放的实时位置,第 x ms。 - -**返回:** - -返回播放的实时位置,第x ms,经过校正过的时间,单位为ms。 - - -### GetSessionId() - - -``` -virtual std::string OHOS::AVSession::AVSessionController::GetSessionId () -``` -**描述:** -获取sessionId。 - -**返回:** - -返回sessionId。 - - -### GetValidCommands() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::GetValidCommands (std::vector< int32_t > & cmds) -``` -**描述:** -获取媒体有效的指令。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| cmds | 媒体有效的指令列表,范围为**SESSION_CMD_INVALID**到**SESSION_CMD_MAX**。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[SendControlCommand](#sendcontrolcommand) - -[AVSession::AddSupportCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#addsupportcommand) - -[AVSession::DeleteSupportCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#deletesupportcommand) - - -### IsDestroy() - - -``` -virtual bool OHOS::AVSession::AVSessionController::IsDestroy () -``` -**描述:** -是否释放控制器。 - -**返回:** - -true:释放;false:不释放。 - - -### IsSessionActive() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::IsSessionActive (bool & isActive) -``` -**描述:** -获取session的激活状态。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| isActive | session是否激活。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[AVSession::Activate](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#activate) - -[AVSession::Deactivate](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#deactivate) - -[AVSession::IsActive](_o_h_o_s_1_1_a_v_session_1_1_a_v_session.md#isactive) - - -### RegisterCallback() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::RegisterCallback (const std::shared_ptr< AVControllerCallback > & callback) -``` -**描述:** -注册回调。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| callback | 需要注册的回调,类型为[AVControllerCallback](_h_o_s_1_1_a_v_session_1_1_a_v_controller_callback.md)。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SendAVKeyEvent() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::SendAVKeyEvent (const MMI::KeyEvent & keyEvent) -``` -**描述:** -发送系统按键事件。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| keyEvent | 按键事件码,类型为**MMI::KeyEvent**。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[AVSessionManager::SendSystemAVKeyEvent](_o_h_o_s_1_1_a_v_session_1_1_a_v_session_manager.md#sendsystemavkeyevent) - - -### SendControlCommand() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::SendControlCommand (const AVControlCommand & cmd) -``` -**描述:** -发送媒体控制指令。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| cmd | 媒体控制指令,类型为[AVControlCommand](_o_h_o_s_1_1_a_v_session_1_1_a_v_control_command.md)。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - -**参见:** - -[GetValidCommands](#getvalidcommands) - - -### SetMetaFilter() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::SetMetaFilter (const AVMetaData::MetaMaskType & filter) -``` -**描述:** -设置会话元数据过滤。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| filter | 会话元数据过滤,类型为[AVMetaData#MetaMaskType](_o_h_o_s_1_1_a_v_session_1_1_a_v_meta_data.md#metamasktype)。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 - - -### SetPlaybackFilter() - - -``` -virtual int32_t OHOS::AVSession::AVSessionController::SetPlaybackFilter (const AVPlaybackState::PlaybackStateMaskType & filter) -``` -**描述:** -设置音视频的播放状态回调过滤。 - -**参数:** - - | 名称 | 描述 | -| -------- | -------- | -| filter | 音视频播放状态回调过滤,类型为**AVPlaybackState\#PlaybackStateMaskType**。  | - -**返回:** - -成功返回**AVSESSION_SUCCESS**;失败则返回对应错误码。 diff --git a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md b/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md deleted file mode 100644 index c68f7cf388..0000000000 --- a/zh-cn/application-dev/reference/native-apis/o_h_o_s_1_1_a_v_session_1_1_a_v_session_descriptor.md +++ /dev/null @@ -1,41 +0,0 @@ -# OHOS::AVSession::AVSessionDescriptor - - -## 概述 - -会话的相关描述信息。 - -**起始版本:** -9 -**Version:** -1.0 -**相关模块:** - -[Avsession](avsession.md) - - -## 汇总 - - -### Public 成员函数 - - | 名称 | 描述 | -| -------- | -------- | -| [WriteToParcel](avsession.md#writetoparcel) (Parcel &out) const | 将会话相关描述信息写进包里。  | -| [ReadFromParcel](avsession.md#readfromparcel) (Parcel &in) | 对会话相关描述信息进行解包。  | - - -### 成员变量 - - | 名称 | 描述 | -| -------- | -------- | -| [sessionId_](avsession.md#sessionid) | std::string | -| [sessionType_](avsession.md#sessiontype) {} | int32_t | -| [sessionTag_](avsession.md#sessiontag) | std::string | -| [elementName_](avsession.md#elementname) | AppExecFwk::ElementName | -| [pid_](avsession.md#pid) {} | pid_t | -| [uid_](avsession.md#uid) {} | pid_t | -| [isActive_](avsession.md#isactive) {} | bool | -| [isTopSession_](avsession.md#istopsession) {} | bool | -| [isThirdPartyApp_](avsession.md#isthirdpartyapp) {} | bool | -| [outputDeviceInfo_](avsession.md#outputdeviceinfo) | [OutputDeviceInfo](_o_h_o_s_1_1_a_v_session_1_1_output_device_info.md) | -- GitLab From fb706f6f156900fe2d9ede00b2ea294a0482a9f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Mon, 16 Jan 2023 03:59:18 +0000 Subject: [PATCH 264/383] update zh-cn/application-dev/quick-start/start-with-ets-fa.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 葛亚芳 --- zh-cn/application-dev/quick-start/start-with-ets-fa.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/quick-start/start-with-ets-fa.md b/zh-cn/application-dev/quick-start/start-with-ets-fa.md index 6e2818d8f7..611b5049b5 100644 --- a/zh-cn/application-dev/quick-start/start-with-ets-fa.md +++ b/zh-cn/application-dev/quick-start/start-with-ets-fa.md @@ -223,7 +223,10 @@ .height('5%') // 跳转按钮绑定onClick事件,点击时跳转到第二页 .onClick(() => { - router.pushUrl({ url: 'pages/second' }) + router.push({ url: 'pages/second' }) + // 若为API 9工程,则可使用以下接口 + // router.pushUrl({ url: 'pages/second' }) + }) } .width('100%') -- GitLab From 01ddc4c394217b0a8e31409b2958e759756926ba Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Mon, 16 Jan 2023 12:01:29 +0800 Subject: [PATCH 265/383] update docs Signed-off-by: Annie_wang --- .../reference/apis/js-apis-cryptoFramework.md | 1216 +++++++++++------ .../security/cryptoFramework-guidelines.md | 133 +- .../security/cryptoFramework-overview.md | 2 +- 3 files changed, 840 insertions(+), 511 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-cryptoFramework.md b/en/application-dev/reference/apis/js-apis-cryptoFramework.md index 30d79a6724..4b6210a187 100644 --- a/en/application-dev/reference/apis/js-apis-cryptoFramework.md +++ b/en/application-dev/reference/apis/js-apis-cryptoFramework.md @@ -1,9 +1,9 @@ -# Crypto Framework +# @ohos.security.cryptoFramework (Crypto Framework) -The **cryptoFramework** module shields underlying hardware and algorithm libraries and provides unified APIs for crytographic operations. +The **cryptoFramework** module shields underlying hardware and algorithm libraries and provides unified APIs for cryptographic operations. > **NOTE** -> +> > The initial APIs of this module are supported since API version 9. ## Modules to Import @@ -18,20 +18,23 @@ import cryptoFramework from "@ohos.security.cryptoFramework" **System capability**: SystemCapability.Security.CryptoFramework -| Name | Default Value | Description | -| --------------------------------------| -------- | -------------------------| -| INVALID_PARAMS | 401 | Invalid parameters. | -| NOT_SUPPORT | 801 | This operation is not supported. | -| ERR_OUT_OF_MEMORY | 17620001 | Memory error. | -| ERR_RUNTIME_ERROR | 17620002 | Runtime error. | -| ERR_CRYPTO_OPERATION | 17630001 | Crypto operation error. | +| Name | Value | Description | +| ------------------------------------- | -------- | ---------------------------- | +| INVALID_PARAMS | 401 | Invalid parameters. | +| NOT_SUPPORT | 801 | Unsupported operation. | +| ERR_OUT_OF_MEMORY | 17620001 | Memory error. | +| ERR_RUNTIME_ERROR | 17620002 | Runtime error. | +| ERR_CRYPTO_OPERATION | 17630001 | Cryptographic operation error. | ## DataBlob + Defines a binary data array. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| -------------- | -------------- | ---- | ---- | ----------------| -| data | Uint8Array | Yes | Yes | Data. | + +| Name| Type | Readable| Writable| Description | +| ---- | ---------- | ---- | ---- | ------ | +| data | Uint8Array | Yes | Yes | Data.| + ## cryptoFramework.createMac @@ -53,6 +56,12 @@ Creates a **Mac** instance for message authentication code (MAC) operations. | ---- | --------------------------------------- | | Mac | [Mac](#mac) instance created.| +**Error codes** + +| ID| Error Message | +| -------- | ------------------ | +| 17620001 | memory error | + **Example** ```javascript @@ -60,6 +69,7 @@ import cryptoFramework from "@ohos.security.cryptoFramework" var mac; try { + // Set algName based on the algorithm supported. mac = cryptoFramework.createMac("SHA256"); } catch (error) { console.error("[Promise]: error code: " + error.code + ", message is: " + error.message); @@ -70,7 +80,7 @@ try { Provides APIs for MAC operations. Before using any API of the **Mac** class, you must create a **Mac** instance by using [createMac](#cryptoframeworkcreatemac). -### **Attributes** +### Attributes **System capability**: SystemCapability.Security.CryptoFramework @@ -88,10 +98,16 @@ Initializes the MAC computation using a symmetric key. This API uses an asynchro **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| key | SymKey | Yes | Shared symmetric key. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------ | +| key | SymKey | Yes | Shared symmetric key.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | + +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | **Example** @@ -118,8 +134,6 @@ symKeyGenerator.convertKey(KeyBlob, (err, symKey) => { }); ``` - - ### init init(key : SymKey) : Promise\; @@ -136,10 +150,16 @@ Initializes the MAC computation using a symmetric key. This API uses a promise t **Return value** -| Type | Description | -| --------------- | ------------ | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -149,9 +169,7 @@ var mac; try { mac = cryptoFramework.createMac("SHA256"); } catch (error) { - AlertDialog.show({message: "[Promise]: error code: " + error.code + ", message is: " + error.message}); console.error("[Promise]: error code: " + error.code + ", message is: " + error.message); - } console.error("Mac algName is: " + mac.algName); @@ -175,10 +193,18 @@ Updates the MAC computation data. This API uses an asynchronous callback to retu **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ---------- | -| input | DataBlob | Yes | Message to pass in. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------- | +| input | DataBlob | Yes | Data to pass in.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | + +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | **Example** @@ -190,7 +216,6 @@ var mac; try { mac = cryptoFramework.createMac("SHA256"); } catch (error) { - AlertDialog.show({message: "[Callback]: error code: " + error.code + ", message is: " + error.message}); console.error("[Callback]: error code: " + error.code + ", message is: " + error.message); } var symKeyGenerator = cryptoFramework.createSymKeyGenerator("AES128"); @@ -220,16 +245,26 @@ Updates the MAC computation data. This API uses a promise to return the result. **System capability**: SystemCapability.Security.CryptoFramework +**Parameters** + | Name| Type | Mandatory| Description | | ------ | -------- | ---- | ---------- | -| input | DataBlob | Yes | Message to pass in.| +| input | DataBlob | Yes | Data to pass in.| **Return value** -| Type | Description | -| --------------- | ----------- | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | + +**Example** + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" @@ -237,14 +272,11 @@ var mac; try { mac = cryptoFramework.createMac("SHA256"); } catch (error) { - AlertDialog.show({message: "[Promise]: error code: " + error.code + ", message is: " + error.message}); console.error("[Promise]: error code: " + error.code + ", message is: " + error.message); } console.error("Mac algName is: " + mac.algName); -AlertDialog.show({message: "Mac algName is: " + mac.algName}); var KeyBlob; - var symKeyGenerator = cryptoFramework.createSymKeyGenerator("AES128"); var promiseConvertKey = symKeyGenerator.convertKey(KeyBlob); promiseConvertKey.then(symKey => { @@ -260,8 +292,6 @@ promiseConvertKey.then(symKey => { ``` - - ### doFinal doFinal(callback : AsyncCallback\) : void; @@ -270,10 +300,19 @@ Finalizes the MAC computation. This API uses an asynchronous callback to return **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Mandatory| Description | -| -------- | ------------------------- | ---- | -------- | +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | -------- | | callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17620001 | memory error | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -284,7 +323,6 @@ var mac; try { mac = cryptoFramework.createMac("SHA256"); } catch (error) { - AlertDialog.show({message: "[Callback]: error code: " + error.code + ", message is: " + error.message}); console.error("[Callback]: error code: " + error.code + ", message is: " + error.message); } var symKeyGenerator = cryptoFramework.createSymKeyGenerator("AES128"); @@ -323,10 +361,17 @@ Finalizes the MAC computation. This API uses a promise to return the result. **Return value** -| Type | Description | -| ------------------- | ----------- | +| Type | Description | +| ------------------ | ----------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17620001 | memory error | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -339,7 +384,6 @@ try { console.error("[Promise]: error code: " + error.code + ", message is: " + error.message); } console.error("Mac algName is: " + mac.algName); -AlertDialog.show({message: "Mac algName is: " + mac.algName}); var KeyBlob; var symKeyGenerator = cryptoFramework.createSymKeyGenerator("AES128"); @@ -375,6 +419,12 @@ Obtains the MAC length, in bytes. | ------ | ------------------------- | | number | MAC length obtained.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -387,7 +437,6 @@ try { console.error("[Promise]: error code: " + error.code + ", message is: " + error.message); } console.error("Mac algName is: " + mac.algName); -AlertDialog.show({message: "Mac algName is: " + mac.algName}); var KeyBlob; var symKeyGenerator = cryptoFramework.createSymKeyGenerator("AES128"); @@ -405,7 +454,7 @@ promiseConvertKey.then(symKey => { }).then(macOutput => { console.error("[Promise]: HMAC result: " + macOutput.data); let macLen = mac.getMacLength(); - AlertDialog.show({message: "MAC len: " + macLen}); + console.error("MAC len: " + macLen); }).catch(error => { console.error("[Promise]: error: " + error.message); }); @@ -431,6 +480,12 @@ Creates an **Md** instance for message digest operations. | ---- | ------------------------------------- | | Md | [Md](#md) instance created.| +**Error codes** + +| ID| Error Message | +| -------- | ------------------ | +| 17620001 | memory error | + **Example** ```javascript @@ -438,6 +493,7 @@ import cryptoFramework from "@ohos.security.cryptoFramework" var md; try { + // Set algName based on the algorithm supported. md = cryptoFramework.createMd("SHA256"); } catch (error) { console.error("[Promise]: error code: " + error.code + ", message is: " + error.message); @@ -448,27 +504,34 @@ try { Provides APIs for message digest operations. Before using any API of the **Md** class, you must create an **Md** instance by using [createMd](#cryptoframeworkcreatemd). -### **Attributes** +### Attributes **System capability**: SystemCapability.Security.CryptoFramework | Name | Type | Readable| Writable| Description | | ------- | ------ | ---- | ---- | -------------------- | -| algName | string | Yes | No | Digest algorithm to use.| +| algName | string | Yes | No | Digest algorithm.| ### update update(input : DataBlob, callback : AsyncCallback\) : void; -Updates the message digest data with the message passed in. This API uses an asynchronous callback to return the result. +Updates the message digest data. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------ | -| input | DataBlob | Yes | Message to pass in. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +**Parameters** +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------- | +| input | DataBlob | Yes | Data to pass in.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | + +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | **Example** @@ -495,20 +558,26 @@ md.update(blob, (err,) => { update(input : DataBlob) : Promise\; -Updates the message digest data with the message passed in. This API uses a promise to return the result. +Updates the message digest data. This API uses a promise to return the result. **System capability**: SystemCapability.Security.CryptoFramework | Name| Type | Mandatory| Description | | ------ | -------- | ---- | ---------- | -| input | DataBlob | Yes | Message to pass in.| +| input | DataBlob | Yes | Data to pass in.| **Return value** -| Type | Description | -| --------------- | ------------ | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -539,10 +608,17 @@ Generates a message digest. This API uses an asynchronous callback to return the **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Mandatory| Description | -| -------- | ------------------------- | ---- | -------------------- | +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | -------- | | callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17620001 | memory error | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -581,10 +657,17 @@ Generates a message digest. This API uses a promise to return the result. **Return value** -| Type | Description | -| ------------------- | ----------- | +| Type | Description | +| ------------------ | ----------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17620001 | memory error | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -622,7 +705,13 @@ Obtains the message digest length, in bytes. | Type | Description | | ------ | ------------------------ | -| number | Message digest length obtained. | +| number | Message digest length obtained.| + +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17630001 | crypto operation error | **Example** @@ -645,7 +734,7 @@ promiseMdUpdate.then(() => { }).then(mdOutput => { console.error("[Promise]: MD result: " + mdOutput.data); let mdLen = md.getMdLength(); - AlertDialog.show({message: "MD len: " + mdLen}); + console.error("MD len: " + mdLen); }).catch(error => { console.error("[Promise]: error: " + error.message); }); @@ -665,6 +754,12 @@ Creates a **Random** instance for generating random numbers and setting seeds. | ------ | --------------------------------------------- | | Random | [Random](#random) instance created.| +**Error codes** + +| ID| Error Message | +| -------- | ------------ | +| 17620001 | memory error | + **Example** ```javascript @@ -679,7 +774,7 @@ try { ## Random -Provides APIs for computing random numbers. Before using any API of the **Random** class, you must create a **Random** instance by using [createRandom](#cryptoframeworkcreaterandom). +Provides APIs for computing random numbers and setting seeds. Before using any API of the **Random** class, you must create a **Random** instance by using [createRandom](#cryptoframeworkcreaterandom). ### generateRandom @@ -689,10 +784,19 @@ Generates a random number of the given length. This API uses an asynchronous cal **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Mandatory| Description | -| -------- | ------------------------- | ---- | -------------------- | -| len | number | Yes | Length of the random number to generate.| -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | -------------------- | +| len | number | Yes | Length of the random number to generate.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | + +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17620001 | memory error | +| 17630001 | crypto operation error | **Example** @@ -722,16 +826,25 @@ Generates a random number of the given length. This API uses a promise to return **System capability**: SystemCapability.Security.CryptoFramework +**Parameters** + | Name| Type | Mandatory| Description | | ------ | ------ | ---- | -------------------- | | len | number | Yes | Length of the random number to generate.| **Return value** -| Type | Description | -| ------------------- | ----------- | +| Type | Description | +| ------------------ | ----------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message | +| -------- | ---------------------- | +| 17620001 | memory error | +| 17630001 | crypto operation error | + **Example** ```javascript @@ -754,16 +867,21 @@ promiseGenerateRand.then(randData => { ### setSeed -setSeed(seed : DataBlob, callback : AsyncCallback\) : void; +setSeed(seed : DataBlob) : void; Sets a seed. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Mandatory| Description | -| -------- | -------------------- | ---- | ------------ | -| seed | DataBlob | Yes | Seed to set. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | --------------------- | ---- | ---------- | +| seed | DataBlob | Yes | Seed to set.| + +**Error codes** + +| ID| Error Message | +| -------- | ----------------- | +| 17620001 | memory error | **Example** @@ -782,94 +900,70 @@ rand.generateRandom(12, (err, randData) => { console.error("[Callback] err: " + err.code); } else { console.error("[Callback]: generate random result: " + randData.data); - rand.setSeed(randData, (err1, data) => { - if (err1) { - console.error("[Callback] err: " + err1.code); - } else { - console.error("[Callback]: setSeed success"); - } - }); + try { + rand.setSeed(randData); + } catch (error) { + console.log("setSeed failed, errCode: " + error.code + ", errMsg: " + error.message); + } } }); ``` -### setSeed - -setSeed(seed : DataBlob) : Promise\; - -Sets a seed. This API uses a promise to return the result. - -**System capability**: SystemCapability.Security.CryptoFramework - -| Name| Type | Mandatory| Description | -| ------ | -------- | ---- | ---------- | -| seed | DataBlob | Yes | Seed to set.| - -```javascript -import cryptoFramework from "@ohos.security.cryptoFramework" - -var rand; -try { - rand = cryptoFramework.createRandom(); -} catch (error) { - console.error("[Callback]: error code: " + error.code + ", message is: " + error.message); -} - -var promiseGenerateRand = rand.generateRandom(12); -promiseGenerateRand.then(randData => { - console.error("[Promise]: rand result: " + randData.data); - var promiseSetSeed = rand.setSeed(randData); - return promiseSetSeed; -}).then(() => { - console.error("[Promise]: setSeed success"); -}).catch(error => { - console.error("[Promise]: error: " + error.message); -}); -``` - ## ParamsSpec -Defines the parameters for encryption and decryption. For the symmetric encryption and decryption modes that require parameters such as the initialization vector (IV), you need to construct a child class object and pass it to [init()](#init-2). You do not need to construct the child class object if the IV is not required. +Defines the parameters used for encryption and decryption.
For the symmetric encryption and decryption modes that require parameters such as the initialization vector (IV), you need to construct a child class object and pass it to [init()](#init-2). If the IV is not required (for example, the ECB mode), pass in **null** in [init()](#init-2). **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------- | -| algoName | string | Yes | Yes | Symmetric encryption and decryption parameters.
Options:
- **IvParamsSpec**: applicable to the CBC, CTR, OFB, and CFB modes.
- **GcmParamsSpec**: applicable to the GCM mode.
- **CcmParamsSpec**: applicable to the CCM mode. | +| Name | Type | Readable| Writable| Description | +| -------- | ------ | ---- | ---- | ----------------------- | +| algoName | string | Yes | Yes | Symmetric encryption and decryption parameters. Options:
- **IvParamsSpec**: applicable to the CBC,|CTR,|OFB, |and CFB modes.
- **GcmParamsSpec**: applicable to the GCM mode.
- **CcmParamsSpec**: applicable to the CCM mode.| + +> **NOTE** +> The **params** parameter in [init()](#init-2) is of the **ParamsSpec** type (parent class), while a child class object (such as **IvParamsSpec**) needs to be passed in. When constructing the child class object, you must set **algoName** for the parent class **ParamsSpec** to let the algorithm library know the child class object to pass in in **init()**. ## IvParamsSpec -Defines the parameters for the CBC, CTR, OFB, and CFB modes, which require only an IV for each encryption operation. For the symmetric encryption and decryption that use the CBC, CTR, OFB, or CFB mode, you need to construct **IvParamsSpec** and pass it to [init()](#init-2). +Defines the child class of [ParamsSpec](#paramsspec). It is used as the parameters of [init()](#init-2) during symmetric encryption and decryption.
**IvParamsSpec** applies to the encryption and decryption modes such as CBC, CTR, OFB, and CFB, which use only the IV. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------- | -| iv | [DataBlob](#datablob) | Yes | Yes | IV for encryption and decryption.
Options:
- AES CBC, CTR, OFB, or CFB mode: 16-byte IV
- 3DES CBC, OFB or CFB mode: 8-byte IV | +| Name| Type | Readable| Writable| Description | +| ---- | --------------------- | ---- | ---- | ------------------------------------------------------------ | +| iv | [DataBlob](#datablob) | Yes | Yes | IV for encryption and decryption. Options:
- AES CBC, |CTR, |OFB, |or CFB mode: 16-byte IV
- 3DES CBC,|OFB, or |CFB mode: 8-byte IV| + +> **NOTE** +> Before passing [init()](#init-2), specify **algoName** for its parent class [ParamsSpec](#paramsspec). ## GcmParamsSpec -Defines the parameters for the GCM mode. For the symmetric encryption and decryption that use the GCM mode, you need to construct **GcmParamsSpec** and pass it to [init()](#init-2). +Defines the child class of [ParamsSpec](#paramsspec) for the GCM mode. It is used as the parameters of [init()](#init-2) during symmetric encryption and decryption.
**GcmParamsSpec** applies to the GCM mode. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------- | -| iv | [DataBlob](#datablob) | Yes | Yes | IV, which is of 12 bytes.| -| aad | [DataBlob](#datablob) | Yes | Yes | Additional authenticated data (AAD), which is of 8 bytes.| -| authTag | [DataBlob](#datablob) | Yes | Yes | AuthTag, which is of 16 bytes.
When the GCM mode is used for encryption, the last 16 bytes of the [DataBlob](#datablob) returned by [doFinal()](#dofinal-2) are used as the **authTag** in [GcmParamsSpec](#gcmparamsspec) for decryption.| +| Name | Type | Readable| Writable| Description | +| ------- | --------------------- | ---- | ---- | ------------------------------------------------------------ | +| iv | [DataBlob](#datablob) | Yes | Yes | IV, which is of 12 bytes. | +| aad | [DataBlob](#datablob) | Yes | Yes | Additional authenticated data (AAD), which is of 8 bytes. | +| authTag | [DataBlob](#datablob) | Yes | Yes | Authentication tag, which is of 16 bytes.
When the GCM mode is used for encryption, [DataBlob](#datablob) output by [doFinal()](#dofinal-2) is required. The last 16 bytes of [DataBlob](#datablob) are used as as **authTag** in [GcmParamsSpec](#gcmparamsspec) of [init()](#init-2). | + +> **NOTE** +> Before passing [init()](#init-2), specify **algoName** for its parent class [ParamsSpec](#paramsspec). ## CcmParamsSpec -Defines the parameters for the CCM mode. For the symmetric encryption and decryption that use the CCM mode, you need to construct **CcmParamsSpec** and pass it to [init()](#init-2). +Defines the child class of [ParamsSpec](#paramsspec) for the CCM mode. It is used as the parameters of [init()](#init-2) during symmetric encryption and decryption.
**CcmParamsSpec** applies to the CCM mode. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | -------- | ---- | ---- | -------------------------------| +| Name | Type | Readable| Writable| Description | +| ------- | --------------------- | ---- | ---- | ------------------------------------------------------------ | | iv | [DataBlob](#datablob) | Yes | Yes | IV, which is of 7 bytes. | | aad | [DataBlob](#datablob) | Yes | Yes | AAD, which is of 8 bytes. | -| authTag | [DataBlob](#datablob) | Yes | Yes | AuthTag, which is of 12 bytes.
When the CCM mode is used for encryption, the last 12 bytes of the [DataBlob](#datablob) returned by [doFinal()](#dofinal-2) are used as the **authTag** in [CcmParamsSpec](#ccmparamsspec) for decryption.| +| authTag | [DataBlob](#datablob) | Yes | Yes | Authentication tag, which is of 12 bytes.
When the CCM mode is used for encryption, [DataBlob](#datablob) output by [doFinal()](#dofinal-2) is required. The last 12 bytes of [DataBlob](#datablob) are used as as **authTag** in [CcmParamsSpec](#ccmparamsspec) of [init()](#init-2).| + +> **NOTE** +> Before passing [init()](#init-2), specify **algoName** for its parent class [ParamsSpec](#paramsspec). ## CryptoMode @@ -877,22 +971,22 @@ Enumerates the cryptographic operations. **System capability**: SystemCapability.Security.CryptoFramework -| Name | Value | Description | -| ------------ | -------- | -------------------------------- | -| ENCRYPT_MODE | 0 | Encryption. | -| DECRYPT_MODE | 1 | Decryption. | +| Name | Value | Description | +| ------------ | ---- | ---------------- | +| ENCRYPT_MODE | 0 | Encryption.| +| DECRYPT_MODE | 1 | Decryption.| ## Key -Provides APIs for key operations. Before performing cryptographic operations (such as encryption and decryption), you need to construct a child class object of **Key** and pass it to [init()](#init-2) of the [Cipher](#cipher) instance. Keys can be generated by a key generator. +Provides APIs for key operations. Before performing cryptographic operations (such as encryption and decryption), you need to construct a child class object of **Key** and pass it to [init()](#init-2) of the [Cipher](#cipher) instance.
Keys can be generated by a key generator. ### Attributes **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------- | -| format | string | Yes | No | Format of the key.| +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| format | string | Yes | No | Format of the key. | | algName | string | Yes | No | Algorithm name (including the key length).| ### getEncoded @@ -905,48 +999,50 @@ Obtains the key in hexadecimal format. This API returns the result synchronously **Return value** -| Type |Description | -| ------- | ----------- | +| Type | Description | +| --------------------- | ------------------------ | | [DataBlob](#datablob) | Key obtained.| **Example** ```js +import cryptoFramework from "@ohos.security.cryptoFramework" function uint8ArrayToShowStr(uint8Array) { return Array.prototype.map .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)) .join(''); } -let key; // The key is generated by a symKeyGenerator. The generation process is omitted here. +let key; // The key is generated by a symKeyGenerator. The generation process is omitted here. let encodedKey = key.getEncoded(); console.info("key hex:" + uint8ArrayToShowStr(encodedKey.data)); ``` ## SymKey -Provides APIs for symmetric key operations. It is a child class of [Key](#key). Its objects need to be passed to [init()](#init-2) of the [Cipher](#cipher) instance in symmetric encryption and decryption. Symmetric keys can be generated by a [SymKeyGenerator](#symkeygenerator). +Provides APIs for symmetric key operations. It is a child class of [Key](#key). Its objects need to be passed to [init()](#init-2) of the [Cipher](#cipher) instance in symmetric encryption and decryption.
Symmetric keys can be generated by a [SymKeyGenerator](#symkeygenerator). ### clearMem clearMem() : void -Clears the keys from the memory. This API returns the result synchronously. +Clears the keys in the memory. This API returns the result synchronously. You are advised to use this API when symmetric key instances are no longer used. **System capability**: SystemCapability.Security.CryptoFramework **Example** ```js +import cryptoFramework from "@ohos.security.cryptoFramework" function uint8ArrayToShowStr(uint8Array) { return Array.prototype.map .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)) .join(''); } -let key; // The key is generated by a symKeyGenerator. The generation process is omitted here. +let key; // The key is generated by a symKeyGenerator. The generation process is omitted here. let encodedKey = key.getEncoded(); -console.info("key hex: "+ uint8ArrayToShowStr(encodedKey.data)); // Display key content. +console.info("key hex: "+ uint8ArrayToShowStr(encodedKey.data)); // Display key content. key.clearMem(); encodedKey = key.getEncoded(); console.info("key hex:" + uint8ArrayToShowStr(encodedKey.data)); // Display all 0s. @@ -954,15 +1050,15 @@ console.info("key hex:" + uint8ArrayToShowStr(encodedKey.data)); // Display a ## PubKey -Provides APIs for public key operations. It is a child class of [Key](#key). Its objects need to be passed in during asymmetric encryption and decryption, signature verification, and key agreement. Public keys can be generated by an **AsyKeyGenerator**. +Provides APIs for public key operations. It is a child class of [Key](#key). Its objects need to be passed in during asymmetric encryption and decryption, signature verification, and key agreement.
Public keys can be generated by an **AsyKeyGenerator**. ### Attributes **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------- | -| format | string | Yes | No | Format of the key.| +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| format | string | Yes | No | Format of the key. | | algName | string | Yes | No | Algorithm name (including the key length).| @@ -976,30 +1072,37 @@ Obtains the key in binary format. This API returns the result synchronously. The **Return value** -| Type |Description | -| ------- | ----------- | +| Type | Description | +| --------------------- | ------------------------ | | [DataBlob](#datablob) | Key obtained.| **Example** ```js +function uint8ArrayToShowStr(uint8Array) { + return Array.prototype.map + .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)) + .join(''); +} + +let key; // The key is a public key generated by the asymmetric key generator. The generation process is omitted here. console.info("key format:" + key.format); console.info("key algName:" + key.algName); var encodedKey = key.getEncoded(); -console.info("key encoded:" + Uint8ArrayToShowStr(encodedKey.data)); +console.info("key encoded:" + uint8ArrayToShowStr(encodedKey.data)); ``` ## PriKey -Provides APIs for private key operations. It is a child class of [Key](#key). Its objects need to be passed in during asymmetric encryption and decryption, signature verification, and key agreement. Private keys can be generated by an **AsyKeyGenerator**. +Provides APIs for private key operations. It is a child class of [Key](#key). Its objects need to be passed in during asymmetric encryption and decryption, signature verification, and key agreement.
Private keys can be generated by an **AsyKeyGenerator**. ### Attributes **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------- | -| format | string | Yes | No | Format of the key.| +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| format | string | Yes | No | Format of the key. | | algName | string | Yes | No | Algorithm name (including the key length).| ### getEncoded @@ -1012,52 +1115,74 @@ Obtains the key in binary format. This API returns the result synchronously. The **Return value** -| Type |Description | -| ------- | ----------- | +| Type | Description | +| --------------------- | ------------------------ | | [DataBlob](#datablob) | Key obtained.| **Example** ```js +function uint8ArrayToShowStr(uint8Array) { + return Array.prototype.map + .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)) + .join(''); +} + +let key; // The key is a private key generated by the asymmetric key generator. The generation process is omitted here. console.info("key format:" + key.format); console.info("key algName:" + key.algName); var encodedKey = key.getEncoded(); -console.info("key encoded:" + Uint8ArrayToShowStr(encodedKey.data)); +console.info("key encoded:" + uint8ArrayToShowStr(encodedKey.data)); ``` ### clearMem clearMem() : void -Clears the keys from the memory. This API returns the result synchronously. +Clears the keys in the memory. This API returns the result synchronously. **System capability**: SystemCapability.Security.CryptoFramework **Example** ```js +let key; // The key is a private key generated by the asymmetric key generator. The generation process is omitted here. key.clearMem(); ``` +## KeyPair + +Defines an asymmetric key pair, which includes a public key and a private key.
Asymmetric key pairs can be generated by the **AsyKeyGenerator**. + +### Attributes + +**System capability**: SystemCapability.Security.CryptoFramework + +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ------------ | +| priKey | [PriKey](#prikey) | Yes | No | Private key. | +| pubKey | [PubKey](#pubkey) | Yes | No | Public key. | + + ## cryptoFramework.createSymKeyGenerator createSymKeyGenerator(algName : string) : SymKeyGenerator -Creates a **SymKeyGenerator** instance based on the specified algorithm. For details about the supported symmetric key parameters, see "String for Generating a Key" in [Key Generation Specifications](../../security/cryptoFramework-overview.md#key-generation-specifications). +Creates a **symKeyGenerator** instance based on the specified algorithm.
For details about the supported specifications, see [Key Generation Specifications](../../security/cryptoFramework-overview.md#key-generation-specifications). **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| ------- | ------ | ---- | ----------------------------- | -| algName | string | Yes | Algorithm used by the **symkeyGenerator**.| +| Name | Type | Mandatory| Description | +| ------- | ------ | ---- | ------------------------------------------------------------ | +| algName | string | Yes | Algorithm used to create the **symKeyGenerator** instance.
For details, see "String for Generating a Key" in [Key Generation Specifications] (../../security/cryptoFramework-overview.md#key-generation-specifications).| **Return value** -| Type | Description | +| Type | Description | | ----------------------------------- | -------------------------- | -| [SymKeyGenerator](#symkeygenerator) | **SymKeyGenerator** instance created.| +| [SymKeyGenerator](#symkeygenerator) | **symKeyGenerator** instance created.| **Example** @@ -1068,29 +1193,35 @@ let symKeyGenerator = cryptoFramework.createSymKeyGenerator('3DES192'); ## SymKeyGenerator -Provides APIs for using the **symKeyGenerator**. Before using any API of the **SymKeyGenerator** class, you must create a **symKeyGenerator** instance by using [createSymKeyGenerator](#cryptoframeworkcreatesymkeygenerator). +Provides APIs for using the **symKeyGenerator**.
Before using any API of the **SymKeyGenerator** class, you must create a **symKeyGenerator** instance by using [createSymKeyGenerator](#cryptoframeworkcreatesymkeygenerator). ### Attributes **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| ------- | ------ | ---- | ---- | ---------------------------- | +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ------------------------------ | | algName | string | Yes | No | Algorithm used by the **symKeyGenerator**.| ### generateSymKey generateSymKey(callback : AsyncCallback\) : void -Generates a key randomly. This API uses an asynchronous callback to return the result. +Generates a key randomly. This API uses an asynchronous callback to return the result.
This API can be used only after a **symKeyGenerator** instance is created by using [createSymKeyGenerator](#cryptoframeworkcreatesymkeygenerator).
**RAND_priv_bytes()** of OpenSSL can be used to generate random keys. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------- | ---- | ------------------- | -| callback | AsyncCallback\<[SymKey](#symkey)> | Yes | Callback invoked to return the symmetric key generated.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------------- | ---- | ------------------------------------------------------------ | +| callback | AsyncCallback\<[SymKey](#symkey)> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the symmetric key generated. Otherwise, **err** is an error object.| + +**Error codes** + +| ID| Error Message | +| -------- | ------------- | +| 17620001 | memory error. | **Example** @@ -1099,11 +1230,11 @@ import cryptoFramework from '@ohos.security.cryptoFramework'; let symAlgoName = '3DES192'; let symKeyGenerator = cryptoFramework.createSymKeyGenerator(symAlgoName); symKeyGenerator.generateSymKey((err, symKey) => { - if (err) { - console.error('Failed to generate symKey'); - return; - } - console.log('Generate symKey success, algName: ' + symKey.algName); + if (err) { + console.error(`Generate symKey failed, ${err.code}, ${err.message}`); + } else { + console.info(`Generate symKey success, algName: ${symKey.algName}`); + } }) ``` @@ -1111,24 +1242,33 @@ symKeyGenerator.generateSymKey((err, symKey) => { generateSymKey() : Promise\ -Generates a key randomly. This API uses a promise to return the result. +Generates a key randomly. This API uses a promise to return the result.
This API can be used only after a **symKeyGenerator** instance is created by using [createSymKeyGenerator](#cryptoframeworkcreatesymkeygenerator).
**RAND_priv_bytes()** of OpenSSL can be used to generate random keys. **System capability**: SystemCapability.Security.CryptoFramework **Return value** -| Type | Description | -| --------------------- | ------------------------------- | +| Type | Description | +| --------------------------- | --------------------------------- | | Promise\<[SymKey](#symkey)> | Promise used to return the symmetric key generated.| +**Error codes** + +| ID| Error Message | +| -------- | ------------- | +| 17620001 | memory error. | + **Example** ```js import cryptoFramework from '@ohos.security.cryptoFramework'; let symAlgoName = 'AES128'; let symKeyGenerator = cryptoFramework.createSymKeyGenerator(symAlgoName); -symKeyGenerator.generateSymKey().then((symKey) => { - console.log('Generate symKey success, algName:' + symKey.algName); +symKeyGenerator.generateSymKey() +.then(symKey => { + console.info(`Generate symKey success, algName: ${symKey.algName}`); +}, error => { + console.error(`Generate symKey failed, ${error.code}, ${error.message}`); }) ``` @@ -1136,16 +1276,22 @@ symKeyGenerator.generateSymKey().then((symKey) => { convertKey(key : DataBlob, callback : AsyncCallback\) : void -Converts a key. This API uses an asynchronous callback to return the result. +Converts data into a symmetric key. This API uses an asynchronous callback to return the result.
This API can be used only after a **symKeyGenerator** instance is created by using [createSymKeyGenerator](#cryptoframeworkcreatesymkeygenerator). **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ----------------- | ---- | ---------------------- | -| key | [DataBlob](#datablob) | Yes | Key to convert. | -| callback | AsyncCallback\<[SymKey](#symkey)> | Yes | Callback invoked to return the symmetric key generated.| +| Name | Type | Mandatory| Description | +| -------- | --------------------------------- | ---- | ------------------------------------------------------------ | +| key | [DataBlob](#datablob) | Yes | Data to convert. | +| callback | AsyncCallback\<[SymKey](#symkey)> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined** and **data** is the symmetric key generated. Otherwise, **err** is an error object.| + +**Error codes** + +| ID| Error Message | +| -------- | --------------------------------------------------- | +| 17620001 | memory error. | **Example** @@ -1164,12 +1310,12 @@ function genKeyMaterialBlob() { let symAlgoName = '3DES192'; let symKeyGenerator = cryptoFramework.createSymKeyGenerator(symAlgoName); let keyMaterialBlob = genKeyMaterialBlob(); -symKeyGenerator.convertKey(keyMaterial, (err, symKey) => { - if (err) { - console.error('Failed to convert symKey'); - return; - } - console.log('Convert symKey success, algName:' + symKey.algName); +symKeyGenerator.convertKey(keyMaterialBlob, (err, symKey) => { + if (err) { + console.error(`Convert symKey failed, ${err.code}, ${err.message}`); + } else { + console.info(`Convert symKey success, algName: ${symKey.algName}`); + } }) ``` @@ -1177,22 +1323,28 @@ symKeyGenerator.convertKey(keyMaterial, (err, symKey) => { convertKey(key : DataBlob) : Promise\ -Converts a key. This API uses a promise to return the result. +Converts data into a symmetric key. This API uses a promise to return the result.
This API can be used only after a **symKeyGenerator** instance is created by using [createSymKeyGenerator](#cryptoframeworkcreatesymkeygenerator). **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name| Type | Mandatory| Description | -| ---- | -------- | ---- | -------------------- | -| key | [DataBlob](#datablob) | Yes | Key to convert.| +| Name| Type | Mandatory| Description | +| ---- | --------------------- | ---- | -------------------- | +| key | [DataBlob](#datablob) | Yes | Data to convert.| **Return value** -| Type | Description | -| --------------------- | ------------------------------- | +| Type | Description | +| --------------------------- | --------------------------------- | | Promise\<[SymKey](#symkey)> | Promise used to return the symmetric key generated.| +**Error codes** + +| ID| Error Message | +| -------- | --------------------------------------------- | +| 17620001 | memory error. | + **Example** ```js @@ -1210,14 +1362,18 @@ function genKeyMaterialBlob() { let symAlgoName = '3DES192'; let symKeyGenerator = cryptoFramework.createSymKeyGenerator(symAlgoName); let keyMaterialBlob = genKeyMaterialBlob(); -symKeyGenerator.convertKey(keyMaterial).then((symKey) => { - console.log('Convert symKey success, algName:' + symKey.algName); +symKeyGenerator.convertKey(keyMaterialBlob) +.then(symKey => { + console.info(`Convert symKey success, algName: ${symKey.algName}`); +}, error => { + console.error(`Convert symKey failed, ${error.code}, ${error.message}`); }) ``` ## cryptoFramework.createAsyKeyGenerator createAsyKeyGenerator(algName : string) : AsyKeyGenerator + Creates an **AsyKeyGenerator** instance based on the specified algorithm. **System capability**: SystemCapability.Security.CryptoFramework @@ -1226,12 +1382,12 @@ Creates an **AsyKeyGenerator** instance based on the specified algorithm. | Name | Type | Mandatory| Description | | ------- | ------ | ---- | -------------------------------- | -| algName | string | Yes | Algorithm used by the **symkeyGenerator**.| +| algName | string | Yes | Algorithm used to create the **symkeyGenerator**.| **Return value** -| Type | Description | -| --------------- | -------------------------- | +| Type | Description | +| --------------- | ---------------------------- | | asyKeyGenerator | **AsyKeyGenerator** instance created.| **Example** @@ -1250,23 +1406,22 @@ Provides APIs for using the **AsKeyGenerator**. Before using any API of the **As **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable| Writable| Description | -| -------------- | -------------- | ---- | ---- | ----------------------------------| -| algName | string | Yes | No | Algorithm used by the **AsKeyGenerator**. | - - +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | -------------------------------- | +| algName | string | Yes | No | Algorithm used by the **AsKeyGenerator**.| ### generateKeyPair generateKeyPair(callback : AsyncCallback\) : void; + Generates a key pair randomly. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------------- | ---- | ---------------------------- | +| Name | Type | Mandatory| Description | +| -------- | ----------------------- | ---- | ------------------------------ | | callback | AsyncCallback\ | Yes | Callback invoked to return the key pair obtained.| **Example** @@ -1288,14 +1443,15 @@ asyKeyGenerator.generateKeyPair((err, keyPair) => { ### generateKeyPair generateKeyPair() : Promise\ + Generates a key pair randomly. This API uses a promise to return the result. **System capability**: SystemCapability.Security.CryptoFramework **Return value** -| Type | Description | -| --------------------- | ------------------------------- | +| Type | Description | +| ----------------- | --------------------------------- | | Promise\ | Promise used to return the key pair generated.| **Example** @@ -1315,23 +1471,25 @@ keyGenPromise.then( keyPair => { ### convertKey convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\) : void -Converts an asymmetric key. This API uses an asynchronous callback to return the result. For details, see **Key Conversion**. + +Converts data into an asymmetric key. This API uses an asynchronous callback to return the result. For details, see **Key Conversion**. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | -------------------------- | ---- | ---------------------------- | -| pubKey | DataBlob | No | Public key material to convert. | -| priKey | DataBlob | No | Private key material to convert. | +| Name | Type | Mandatory| Description | +| -------- | ----------- | ---- | ------------------------------ | +| pubKey | DataBlob | Yes | Public key material to convert. If no public key is required, set this parameter to **null**. | +| priKey | DataBlob | Yes | Private key material to convert. If no private key is required, set this parameter to **null**. | | callback | AsyncCallback\ | Yes | Callback invoked to return the key pair obtained.| **Example** ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" - +let pubKey; // Public key data in DER format complying with X.509 specifications. The data is omitted here. +let priKey; // Private key data in DER format complying with PKCS#8 specifications. The data is omitted here. let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("ECC256"); asyKeyGenerator.convertKey(pubKey, priKey, (err, keyPair) => { if (err) { @@ -1345,21 +1503,22 @@ asyKeyGenerator.convertKey(pubKey, priKey, (err, keyPair) => { ### convertKey convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\ -Converts an asymmetric key. This API uses a promise to return the result. For details, see **Key Conversion**. + +Converts data into an asymmetric key. This API uses a promise to return the result. For details, see **Key Conversion**. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name| Type | Mandatory| Description | -| ---- | -------- | ---- | -------------------- | -| pubKey | DataBlob | No | Public key material to convert. | -| priKey | DataBlob | No | Private key material to convert. | +| Name | Type | Mandatory| Description | +| ------ | -------- | ---- | ---------------- | +| pubKey | DataBlob | Yes | Public key material to convert. If no public key is required, set this parameter to **null**.| +| priKey | DataBlob | Yes | Private key material to convert. If no private key is required, set this parameter to **null**.| **Return value** -| Type | Description | -| --------------------- | ------------------------------- | +| Type | Description | +| ----------------- | --------------------------------- | | Promise\ | Promise used to return the key pair generated.| **Example** @@ -1368,6 +1527,8 @@ Converts an asymmetric key. This API uses a promise to return the result. For de import cryptoFramework from "@ohos.security.cryptoFramework" let asyKeyGenerator = cryptoFramework.createAsyKeyGenerator("ECC256"); +let pubKey; // pubKey is a public key generated by the asymmetric key generator. The generation process is omitted here. +let priKey; // priKey is a private key generated by the asymmetric key generator. The generation process is omitted here. let keyGenPromise = asyKeyGenerator.convertKey(pubKey, priKey); keyGenPromise.then( keyPair => { console.info("convertKey success."); @@ -1378,28 +1539,32 @@ keyGenPromise.then( keyPair => { **Key Conversion** -- After **getEncoded()** is called for the asymmetric public and private keys (RSA and ECC), binary data in X.509 and PKCS #8 formats is returned, respectively. The data can be used for cross-application transfer or persistent storage. +- After **getEncoded()** is called for the asymmetric public and private keys (RSA and ECC), binary data in X.509 format and binary data in PKCS #8 format are returned, respectively. The data can be used for cross-application transfer or persistent storage. - The public key returned by **convertKey()** must comply with the ASN.1 syntax, X.509 specifications, and DER encoding format, and the private key must comply with the ASN.1 syntax, PKCS #8 specifications, and DER encoding format. -- In **convertKey()**, **pubKey** and **priKey** are optional. Either **pubKey** or **priKey** can be passed in. As a result, the returned **KeyPair** instance contains only the key converted from the data you passed in. +- In **convertKey()**, you can pass in either **pubKey** or **priKey**, or both of them. If one of them is passed in, the returned **KeyPair** instance contains only the key converted from the data you passed in. ## cryptoFramework.createCipher createCipher(transformation : string) : Cipher -Creates a [Cipher](#cipher) instance based on the specified algorithm. -For details about the supported algorithms, see "Algorithm String" in [Encryption and Decryption Specifications](../../security/cryptoFramework-overview.md#encryption-and-decryption-specifications). + +Creates a [Cipher](#cipher) instance based on the specified algorithm.
For details about the supported specifications, see [Encryption and Decryption Specifications](../../security/cryptoFramework-overview.md#encryption-and-decryption-specifications). **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory | Description | -| -------------- | ------ | -------- | ------------------------------------------------------------ | -| transformation | string | Yes | Combination of the algorithm name, encryption mode, and padding algorithm of the **Cipher** instance to create. For example, **RSA1024\|PKCS1** or **RSA1024\|PKCS1_OAEP\|SHA256\|SHA256**.| +| Name | Type | Mandatory| Description | +| -------------- | ------ | ---- | ------------------------------------------------------------ | +| transformation | string | Yes | Combination of the algorithm name (including the key length), encryption mode, and padding algorithm of the **Cipher** instance to create.
For details about, see **Algorithm String** in [Encryption and Decryption Specifications](../../security/cryptoFramework-overview.md#encryption-and-decryption-specifications). | + +> **NOTE** +> 1. In symmetric encryption and decryption, the implementation of PKCS #5 is the same as that of PKCS #7. PKCS #5 and PKCS #7 use the same padding length and block length. That is, data is padded with 8 bytes in 3DES and 16 bytes in AES. **noPadding** indicates that no padding is performed.
You need to understand the differences between different block cipher modes and use the correct parameter specifications. For example, padding is required for ECB and CBC. Otherwise, ensure that the plaintext length is an integer multiple of the block size. No padding is recommended for other modes. In this case, the ciphertext length is the same as the plaintext length. +> 2. If RSA is used for asymmetric encryption and decryption, two **Cipher** objects must be created to perform encryption and decryption separately. For symmetric encryption and decryption, one **cipher** object can be used to perform both encryption and decryption as long as the algorithm specifications are the same. **Return value** -| Type | Description | -| ------ | ------------------------ | +| Type | Description | +| ----------------- | ------------------------ | | [Cipher](#cipher) | [Cipher](#cipher) instance created.| **Example** @@ -1414,39 +1579,51 @@ try { console.info(`cipher algName: ${cipher.algName}`); } catch (error) { console.error(`createCipher failed, ${error.code}, ${error.message}`); - return; } ``` ## Cipher -Provides APIs for cipher operations. The [init()](#init-2), [update()](#update-4), and [doFinal()](#dofinal-2) APIs in this class are called in sequence to implement symmetric encryption or decryption and asymmetric encryption or decryption. For details about the complete encryption and decryption process, see [Encryption and Decryption Operations](../../security/cryptoFramework-guidelines.md#encryption-and-decryption-operations). +Provides APIs for cipher operations. The [init()](#init-2), [update()](#update-4), and [doFinal()](#dofinal-2) APIs in this class are called in sequence to implement symmetric encryption or decryption and asymmetric encryption or decryption.
For details about the complete encryption and decryption process, see [Encrypting and Decrypting Data](../../security/cryptoFramework-guidelines.md#encrypting-and-decrypting-data). + +A complete symmetric encryption/decryption process is slightly different from the asymmetric encryption/decryption process. + +- Symmetric encryption and decryption: **init()** and **doFinal()** are mandatory. **update()** is optional and can be called multiple times to encrypt or decrypt big data. After **doFinal()** is called to complete an encryption or decryption operation, **init()** can be called to start a new encryption or decryption operation. +- RSA asymmetric encryption and decryption: **init()** and **doFinal()** are mandatory, and **update()** is not supported. **doFinal()** can be called multiple times to encrypt or decrypt big data. **init()** cannot be called repeatedly. If the encryption/decryption mode or padding mode is changed, a new **Cipher** object must be created. ### Attributes **System capability**: SystemCapability.Security.CryptoFramework -| Name | Type | Readable | Writable | Description | -| ------- | ------ | -------- | ----------- | ---------------------------- | -| algName | string | Yes | No | Algorithm to use.| +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| algName | string | Yes | No | Algorithm.| ### init init(opMode : CryptoMode, key : Key, params : ParamsSpec, callback : AsyncCallback\) : void -Initializes a [cipher](#cipher) instance. This API uses an asynchronous callback to return the result. +Initializes a [cipher](#cipher) instance. This API uses an asynchronous callback to return the result. **init()**This API can be used only after a [Cipher](#cipher) instance is created by using [createCipher](#cryptoframeworkcreatecipher). **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ------------------------ | ------- | ------------------------ | -| opMode | [CryptoMode](#cryptomode) | Yes | Operation (encryption or decryption) to perform. | -| key | [Key](#key) | Yes | Key for encryption or decryption. | -| params | [ParamsSpec](#paramsspec) | Yes | Parameters for encryption or decryption. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------- | ---- | ------------------------------------------------------------ | +| opMode | [CryptoMode](#cryptomode) | Yes | Operation (encryption or decryption) to perform. | +| key | [Key](#key) | Yes | Key for encryption or decryption. | +| params | [ParamsSpec](#paramsspec) | Yes | Parameters for encryption or decryption. For algorithm modes without parameters (such as ECB), **null** can be passed in.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. If the initialization is successful, **err** is **undefined**. Otherwise, **err** is an error object. | + +**Error codes** + +| ID| Error Message | +| -------- | --------------------------------------------------------- | +| 17620001 | memory error. | +| 17620002 | runtime error. | +| 17630001 | crypto operation error.| **Example** @@ -1454,13 +1631,14 @@ Initializes a [cipher](#cipher) instance. This API uses an asynchronous callback import cryptoFramework from '@ohos.security.cryptoFramework'; let symKey; // The process of generating the symmetric key is omitted here. let cipher; // The process of creating a Cipher instance is omitted here. + cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null, (err, ) => { if (err) { - console.error('Failed to init cipher'); - return; + console.error(`Failed to init cipher, ${err.code}, ${err.message}`); + } else { + console.info(`Init cipher success`); + // Perform subsequent operations such as update. } - console.log('Init cipher success'); - // Perform subsequent operations such as update. }) ``` @@ -1468,23 +1646,31 @@ cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null, (err, ) => { init(opMode : CryptoMode, key : Key, params : ParamsSpec) : Promise\ -Initializes a [cipher](#cipher) instance. This API uses a promise to return the result. +Initializes a [cipher](#cipher) instance. This API uses a promise to return the result.
**init()**This API can be used only after a [Cipher](#cipher) instance is created by using [createCipher](#cryptoframeworkcreatecipher). **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| ------ | ---------- | ---- | ---------------------- | -| opMode | [CryptoMode](#cryptomode) | Yes | Operation (encryption or decryption) to perform. | -| key | [Key](#key) | Yes | Key for encryption or decryption.| -| params | [ParamsSpec](#paramsspec) | Yes | Parameters for encryption or decryption. For algorithm modes without parameters (such as ECB), **null** can be passed in. | +| Name | Type | Mandatory| Description | +| ------ | ------------------------- | ---- | ------------------------------------------------------------ | +| opMode | [CryptoMode](#cryptomode) | Yes | Operation (encryption or decryption) to perform. | +| key | [Key](#key) | Yes | Key for encryption or decryption. | +| params | [ParamsSpec](#paramsspec) | Yes | Parameters for encryption or decryption. For algorithm modes without parameters (such as ECB), **null** can be passed in.| **Return value** -| Type | Description | -| ------------------- | --------------------------- | -| Promise\ | Promise used to return the result.| +| Type | Description | +| -------------- | -------------------------------------- | +| Promise\ | Promise that returns no value.| + +**Error codes** + +| ID| Error Message | +| -------- | ------------------------------------------------- | +| 17620001 | memory error. | +| 17620002 | runtime error. | +| 17630001 | crypto operation error.| **Example** @@ -1492,9 +1678,12 @@ Initializes a [cipher](#cipher) instance. This API uses a promise to return the import cryptoFramework from '@ohos.security.cryptoFramework'; let symKey; // The process of generating the symmetric key is omitted here. let cipher; // The process of creating a Cipher instance is omitted here. -cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null).then(() => { - console.log('Init cipher success'); +cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null) +.then(() => { + console.info(`Init cipher success`); // Perform subsequent operations such as update. +}, error => { + console.error(`Failed to init cipher, ${error.code}, ${error.message}`); }) ``` @@ -1502,16 +1691,29 @@ cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, symKey, null).then(() => { update(data : DataBlob, callback : AsyncCallback\) : void -Updates the data to encrypt or decrypt by segment. This API uses an asynchronous callback to return the encrypted or decrypted data. The number of times that **update()** is called varies depending on the data volume. +Updates the data to encrypt or decrypt by segment. This API uses an asynchronous callback to return the encrypted or decrypted data.
This API can be called only after the [Cipher](#cipher) instance is initialized by using [init()](init-2). + +> **NOTE** +> - If you are not familiar with the block modes for symmetric encryption and decryption, add a judgment to determine whether the result of each **update()** and **doFinal()** is null. If the result is not null, obtain the data to concatenate the complete ciphertext or plaintext. The reason is the block mode and the related specifications affect the **update()** and [doFinal()](#dofinal-2) results.
For example, in ECB and CBC modes, data is encrypted or decrypted by block no matter whether the data passed in by **update()** is an integer multiple of the block length, and the encrypted/decrypted block data generated by this **update()** is output.
That is, encrypted/decrypted data is returned as long as the data passed in by **update()** reaches the size of a block. Otherwise, **null** is returned and the data will be retained until a block is formed in the next **update()**/**doFinal()**.
When **doFinal()** is called, the data that has not been encrypted or decrypted will be padded based on the padding mode set in [createCipher](#cryptoframeworkcreatecipher) to an integer multiple of the block length, and then encrypted or decrypted.
For a mode in which a block cipher can be converted into a stream cipher, the length of the ciphertext may be the same as that of the plaintext. +> - **update()** may be called multiple times or may not be called ([doFinal()](#dofinal-2) is called after [init](#init-2)), depending on the size of the data to encrypt or decrypt.
The algorithm library does not set a limit on the amount of data that can be passed in by **updated()** (once or accumulatively). For symmetric encryption and decryption of a large amount of data, you are advised to call **update()** multiple times to pass in the data by segment. +> - RSA asymmetric encryption and decryption do not support **update()**. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ---------------------------- | ---- | ------------------------------------------ | -| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt. | -| callback | AsyncCallback\<[DataBlob](#datablob)> | Yes | Callback invoked to return the encrypted or decrypted data.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | +| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt. It cannot be **null** or {data:Uint8Array (null)}. | +| callback | AsyncCallback\<[DataBlob](#datablob)> | Yes | Callback invoked to return the result. If the operation is successful, **err** is **undefined**, and **data** is **DataBlob** (containing the encrypted or decrypted data). Otherwise, **err** is an error object.| + +**Error codes** + +| ID| Error Message | +| -------- | ------------------------------------------- | +| 17620001 | memory error. | +| 17620002 | runtime error. | +| 17630001 | crypto operation error. | **Example** @@ -1531,11 +1733,14 @@ let cipher; // The process of creating a Cipher instance is omitted here. let plainText = {data : stringToUint8Array('this is test!')}; cipher.update(plainText, (err, output) => { // Example of the encryption process. if (err) { - console.error('Failed to update cipher'); - return; + console.error(`Failed to update cipher`); + } else { + console.info(`Update cipher success`); + if (output != null) { + // Concatenate output.data to the ciphertext. + } + // Perform subsequent operations such as doFinal(). } - console.log('Update cipher success'); - // Perform subsequent operations such as doFinal. }) ``` @@ -1543,21 +1748,34 @@ cipher.update(plainText, (err, output) => { // Example of the encryption p update(data : DataBlob) : Promise\ -Updates the data to encrypt or decrypt by segment. This API uses a promise to return the result. The number of times that **update()** is called varies depending on the data volume. +Updates the data to encrypt or decrypt by segment. This API uses a promise to return the encrypted or decrypted data.
This API can be called only after the [Cipher](#cipher) instance is initialized by using [init()](init-2). + +> **NOTE** +> - If you are not familiar with the block modes for symmetric encryption and decryption, add a judgment to determine whether the result of each **update()** and **doFinal()** is null. If the result is not null, obtain the data to concatenate the complete ciphertext or plaintext. The reason is the block mode and the related specifications affect the **update()** and [doFinal()](#dofinal-2) results.
For example, in ECB and CBC modes, data is encrypted or decrypted by block no matter whether the data passed in by **update()** is an integer multiple of the block length, and the encryption/decryption block result generated by this **update()** is output. That is, encrypted/decrypted data is returned as long as the data passed in by **update()** reaches the size of a block. Otherwise, **null** is returned and the data will be retained until a block is formed in the next **update()**/**doFinal()**.
When **doFinal()** is called, the data that has not been encrypted or decrypted will be padded based on the padding mode set in [createCipher](#cryptoframeworkcreatecipher) to an integer multiple of the block length, and then encrypted or decrypted.
For a mode in which a block cipher can be converted into a stream cipher, the length of the ciphertext may be the same as that of the plaintext. +> - **update()** may be called multiple times or may not be called ([doFinal()](#dofinal-2) is called after [init](#init-2)), depending on the size of the data to encrypt or decrypt.
The algorithm library does not set a limit on the amount of data that can be passed in by **updated()** (once or accumulatively). For symmetric encryption and decryption of a large amount of data, you are advised to call **update()** multiple times to pass in the data by segment. +> - RSA asymmetric encryption and decryption do not support **update()**. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name| Type | Mandatory| Description | -| ---- | -------- | ---- | -------------------- | -| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt.| +| Name| Type | Mandatory| Description | +| ---- | --------------------- | ---- | -------------------- | +| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt. It cannot be **null** or {data:Uint8Array (null)}.| **Return value** -| Type | Description | -| ----------------------- | --------------------------- | -| Promise\<[DataBlob](#datablob)> | Promise used to return the result.| +| Type | Description | +| ------------------------------- | ------------------------------------------------ | +| Promise\<[DataBlob](#datablob)> | Promise used to returns the **DataBlob** (containing the encrypted or decrypted data).| + +**Error codes** + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 17620001 | memory error. | +| 17620002 | runtime error. | +| 17630001 | crypto operation error. | **Example** @@ -1575,9 +1793,15 @@ function stringToUint8Array(str) { let cipher; // The process of creating a Cipher instance is omitted here. // The init() process is omitted here. let plainText = {data : stringToUint8Array('this is test!')}; -cipher.update(data).then((output) => { - console.log('Update cipher success'); - // Perform subsequent operations such as doFinal. +cipher.update(plainText) +.then((output) => { + console.info(`Update cipher success.`); + if (output != null) { + // Concatenate output.data to the ciphertext. + } + // Perform subsequent operations such as doFinal(). +}, error => { + console.info(`Update cipher failed.`); }) ``` @@ -1585,23 +1809,33 @@ cipher.update(data).then((output) => { doFinal(data : DataBlob, callback : AsyncCallback\) : void -Finalizes the data encryption or decryption operation. This API uses an asynchronous callback to return the result. + (1) Encrypts or decrypts the remaining data (generated by the block ciper mode) and the data passed in by **doFinal()** to finalize the symmetric encryption or decryption. This API uses an asynchronous callback to return the encrypted or decrypted data.
If a small amount of data needs to be encrypted or decrypted, you can use **doFinal()** to pass in data without using **update()**. If all the data has been passed in by [update()](#update-4), you can pass in **null** in **data** of **doFinal()**.
The output of **doFinal()** varies with the symmetric encryption/decryption mode in use. -The output of **doFinal** varies depending on the symmetric encryption and decryption mode. +- Symmetric encryption in GCM and CCM mode: The result consists of the ciphertext and **authTag** (the last 16 bytes for GCM and the last 12 bytes for CCM). If **null** is passed in by **data** of **doFinal()**, the result of **doFinal()** is **authTag**.
**authTag** must be [GcmParamsSpec](#gcmparamsspec) or [CcmParamsSpec](#ccmparamsspec) used for decryption. The ciphertext is the **data** passed in for decryption. +- Symmetric encryption and decryption in other modes and symmetric decryption in GCM and CCM modes: The result is the complete plaintext/ciphertext. -- For symmetric encryption in GCM or CCM mode, **doFinal** returns the combination of the remaining ciphertext and **authTag**. **authTag** is the last 16 bytes for the GCM mode or the last 12 bytes for the CCM mode. If **data** of **doFinal** is **null**, **doFinal** returns **authTag**. After **doFinal** is complete, **authTag** needs to be temporarily stored and filled in [**GcmParamsSpec**](#gcmparamsspec) or [**CcmParamsSpec**](#ccmparamsspec) during decryption. -- For symmetric encryption and decryption in other modes, the output can be either of the following: - (1) **Update()** returns part of the encryption and decryption result, and **doFinal()** returns the remaining encryption and decryption result. - (2) **Update()** returns all the encryption and decryption result, and **doFinal()** returns no value. + (2) Encrypts or decrypts the input data for RSA asymmetric encryption/decryption. This API uses an asynchronous callback to return the result. If a large amount of data needs to be encrypted/decrypted, call **doFinal()** multiple times and concatenate the result of each **doFinal()** to obtain the complete plaintext/ciphertext. + +> **NOTE** +> - In symmetric encryption or decryption, calling **doFinal()** means the end of an encryption or decryption process, and the [Cipher](#cipher) instance state will be cleared. To start a new encryption or decryption operation, you must call [init()](#init-2) to pass in a complete parameter list for initialization.
For example, if the same symmetric key is used for a **Cipher** instance to perform encryption and then decryption. After the encryption is complete, the **params** in **init** for decryption must be set instead of being **null**. +> - If a decryption fails, check whether the data to be encrypted and decrypted matches the parameters in **[init](#init-2)**. For the GCM mode, check whether the **authTag** obtained after encryption is obtained from the **GcmParamsSpec** for decryption. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ---------------------------- | ---- | ------------------------------------------ | -| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt.
If data is already passed in by [update()](#update-4), **data** can be **null**. | -| callback | AsyncCallback\<[DataBlob](#datablob)> | Yes | Callback invoked to return the encrypted or decrypted data.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------------------- | ---- | ------------------------------------------------------------ | +| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt. It can be **null** in symmetric encryption or decryption, but cannot be {data:Uint8Array(null)}. | +| callback | AsyncCallback\<[DataBlob](#datablob)> | Yes | Callback invoked to return the result. If the data is successfully encrypted or decrypted, **err** is **undefined**, and **data** is the **DataBlob** (encryption or decryption result of the remaining data). Otherwise, **err** is an error object.| + +**Error codes** + +| ID| Error Message | +| -------- | ----------------------- | +| 17620001 | memory error. | +| 17620002 | runtime error. | +| 17630001 | crypto operation error. | **Example** @@ -1613,10 +1847,13 @@ let data; // The process of preparing the data to encrypt or decrypt i // The init() and update() processes are omitted here. cipher.doFinal(data, (err, output) => { if (err) { - console.error('Failed to final cipher'); - return; + console.error(`Failed to finalize cipher, ${err.code}, ${err.message}`); + } else { + console.info(`Finalize cipher success`); + if (output != null) { + // Concatenate output.data to obtain the complete plaintext/ciphertext (and authTag). + } } - console.log('Final cipher success'); }) ``` @@ -1624,31 +1861,38 @@ cipher.doFinal(data, (err, output) => { doFinal(data : DataBlob) : Promise\ -Finalizes the data encryption or decryption operation. This API uses a promise to return the result. - -The output of **doFinal** varies depending on the symmetric encryption and decryption mode. - -- For symmetric encryption in GCM or CCM mode, **doFinal** returns the combination of the remaining ciphertext and **authTag**. **authTag** is the last 16 bytes for the GCM mode or the last 12 bytes for the CCM mode. If **data** of **doFinal** is **null**, **doFinal** returns **authTag**. After **doFinal** is complete, **authTag** needs to be temporarily stored and filled in [**GcmParamsSpec**](#gcmparamsspec) or [**CcmParamsSpec**](#ccmparamsspec) during decryption. + (1) Encrypts or decrypts the remaining data (generated by the block ciper mode) and the data passed in by **doFinal()** to finalize the symmetric encryption or decryption. This API uses a promise to return the encrypted or decrypted data.
If a small amount of data needs to be encrypted or decrypted, you can use **doFinal()** to pass in data without using **update()**. If all the data has been passed in by [update()](#update-4), you can pass in **null** in **data** of **doFinal()**.
The output of **doFinal()** varies with the symmetric encryption/decryption mode in use. -- For symmetric encryption and decryption in other modes, the output includes the following: +- Symmetric encryption in GCM and CCM mode: The result consists of the ciphertext and **authTag** (the last 16 bytes for GCM and the last 12 bytes for CCM). If **null** is passed in by **data** of **doFinal()**, the result of **doFinal()** is **authTag**. **authTag** must be [GcmParamsSpec](#gcmparamsspec) or [CcmParamsSpec](#ccmparamsspec) used for decryption. The ciphertext is the **data** passed in for decryption. +- Symmetric encryption and decryption in other modes and symmetric decryption in GCM and CCM modes: The result is the complete plaintext/ciphertext. - (1) **Update()** returns part of the encryption and decryption results, and **doFinal()** returns the remaining encryption and decryption results. + (2) Encrypts or decrypts the input data for RSA asymmetric encryption/decryption. This API uses a promise to return the result. If a large amount of data needs to be encrypted/decrypted, call **doFinal()** multiple times and concatenate the result of each **doFinal()** to obtain the complete plaintext/ciphertext. - (2) **Update()** returns all the encryption and decryption result, and **doFinal()** returns no value. +> **NOTE** +> - In symmetric encryption or decryption, calling **doFinal()** means the end of an encryption or decryption process, and the [Cipher](#cipher) instance state will be cleared. To start a new encryption or decryption operation, you must call [init()](#init-2) to pass in a complete parameter list for initialization.
For example, if the same symmetric key is used for a **Cipher** instance to perform encryption and then decryption. After the encryption is complete, the **params** in **init** for decryption must be set instead of being **null**. +> - If a decryption fails, check whether the data to be encrypted and decrypted matches the parameters in **[init](#init-2)**. For the GCM mode, check whether the **authTag** obtained after encryption is obtained from the **GcmParamsSpec** for decryption. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name| Type | Mandatory| Description | -| ---- | -------- | ---- | -------------------- | -| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt. If data is already passed in by [update()](#update-4), **data** can be **null**. | +| Name| Type | Mandatory| Description | +| ---- | --------------------- | ---- | -------------------- | +| data | [DataBlob](#datablob) | Yes | Data to encrypt or decrypt. It can be **null**, but cannot be {data:Uint8Array(null)}.| **Return value** -| Type | Description | -| ----------------------- | --------------------------- | -| Promise\<[DataBlob](#datablob)> | Promise used to return the result.| +| Type | Description | +| ------------------------------- | ------------------------------------------------ | +| Promise\<[DataBlob](#datablob)> | Promise used to return the **DataBlob**, which is the encryption or decryption result of the remaining data.| + +**Error codes** + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 17620001 | memory error. | +| 17620002 | runtime error. | +| 17630001 | crypto operation error. | **Example** @@ -1658,22 +1902,37 @@ import cryptoFramework from '@ohos.security.cryptoFramework'; let cipher; // The process of creating a Cipher instance is omitted here. let data; // The process of preparing the data to encrypt or decrypt is omitted here. // The init() and update() processes are omitted here. -cipher.doFinal(data).then((output) => { - console.log('Final cipher success'); +cipher.doFinal(data) +.then(output => { + console.info(`Finalize cipher success`); + if (output != null) { + // Concatenate output.data to obtain the complete plaintext/ciphertext (and authTag). + } +}, error => { + console.error(`Failed to finalize cipher, ${error.code}, ${error.message}`); }) ``` -**Callback example**: +**RSA encryption example (callback)** ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" +function stringToUint8Array(str) { + let arr = []; + for (let i = 0, j = str.length; i < j; ++i) { + arr.push(str.charCodeAt(i)); + } + return new Uint8Array(arr); +} + let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024|PRIMES_2"); let cipher = cryptoFramework.createCipher("RSA1024|PKCS1"); rsaGenerator.generateKeyPair(function (err, keyPair) { let pubKey = keyPair.pubKey; cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, pubKey, null, function (err, data) { - let input = {data : stringToUint8Array(plan) }; + let plainText = "this is cipher text"; + let input = {data : stringToUint8Array(plainText) }; cipher.doFinal(input, function (err, data) { AlertDialog.show({ message : "EncryptOutPut is " + data.data} ); }); @@ -1681,11 +1940,19 @@ rsaGenerator.generateKeyPair(function (err, keyPair) { }); ``` -**Promise example**: +**RSA encryption example (promise)** ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" +function stringToUint8Array(str) { + let arr = []; + for (let i = 0, j = str.length; i < j; ++i) { + arr.push(str.charCodeAt(i)); + } + return new Uint8Array(arr); +} + let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024|PRIMES_2"); let cipher = cryptoFramework.createCipher("RSA1024|PKCS1"); let keyGenPromise = rsaGenerator.generateKeyPair(); @@ -1693,13 +1960,16 @@ keyGenPromise.then(rsaKeyPair => { let pubKey = rsaKeyPair.pubKey; return cipher.init(cryptoFramework.CryptoMode.ENCRYPT_MODE, pubKey, null); // Pass in the private key and DECRYPT_MODE to initialize the decryption mode. }).then(() => { - let input = { data : stringToUint8Array(plan) }; + let plainText = "this is cipher text"; + let input = { data : stringToUint8Array(plainText) }; return cipher.doFinal(input); }).then(dataBlob => { console.info("EncryptOutPut is " + dataBlob.data); }); ``` +> **NOTE** +> For more encryption and decryption examples, see [Encrypting and Decrypting Data](../../security/cryptoFramework-guidelines.md#encrypting-and-decrypting data). ## cryptoFramework.createSign @@ -1717,9 +1987,9 @@ Creates a **Sign** instance. **Return value** -| Type| Description | -| ---- | ------------------------------ | -| Sign | **Sign** instance created.| +| Type| Description | +| ---- | -------------------------------- | +| Sign | **Sign** instance created.| **Example** @@ -1728,46 +1998,58 @@ import cryptoFramework from "@ohos.security.cryptoFramework" let signer1 = cryptoFramework.createSign("RSA1024|PKCS1|SHA256"); -let singer2 = cryptoFramework.createSign("RSA1024|PKCS1_OAEP|SHA256|MGF1_SHA256") +let singer2 = cryptoFramework.createSign("RSA1024|PSS|SHA256|MGF1_SHA256") ``` ## Sign -Provides APIs for signing. Before using any API of the **Sign** class, you must create a **Sign** instance by using **createSign()**. +Provides APIs for signing. Before using any API of the **Sign** class, you must create a **Sign** instance by using **createSign()**. The **Sign** class does not support repeated initialization. When a new key is used for signing, you must create a new **Sign** object and call **init()** for initialization. +The signing mode is determined in **createSign()**, and the key is set by **init()**. +If the data to be signed is short, you can call **sign()** to pass in the data for signing after **init()**. +If the data to be signed is long, you can use **update()** to pass in the data by segment, and then use **sign()** to sign the entire data. +If **update()** is used to pass in data by segment, **data** of **sign()** can be **null**. + +### Attributes + +**System capability**: SystemCapability.Security.CryptoFramework + +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| algName | string | Yes | No | Algorithm to use.| ### init init(priKey : PriKey, callback : AsyncCallback\) : void -Initializes a **Sign** instance using a private key. This API uses an asynchronous callback to return the result. +Initializes a **Sign** instance using a private key. This API uses an asynchronous callback to return the result. The **Sign** class does not support repeated calling of **init()**. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| priKey | Key |Yes| Private key used for the initialization.| -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------------- | +| priKey | PriKey | Yes | Private key used for the initialization.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | ### init -init(opMode : CryptoMode, key : Key, params : ParamsSpec) : Promise\ +init(priKey : PriKey) : Promise\ -Initializes a **Sign** instance using a private key. This API uses a promise to return the result. +Initializes a **Sign** instance using a private key. This API uses a promise to return the result. The **Sign** class does not support repeated calling of **init()**. **System capability**: SystemCapability.Security.CryptoFramework **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| priKey | Key |Yes| Private key used for the initialization.| +| Name| Type| Mandatory| Description | +| ------ | ---- | ---- | ---------------- | +| priKey | PriKey | Yes | Private key used for the initialization.| **Return value** -| Type | Description | -| ------------- | ----------- | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| ### update @@ -1780,10 +2062,10 @@ Updates the data to be signed. This API uses an asynchronous callback to return **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| data | DataBlob | Yes | Message to pass in. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------- | +| data | DataBlob | Yes | Data to pass in.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | ### update @@ -1797,12 +2079,12 @@ Updates the data to be signed. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ------ | -------- | ---- | ---------- | -| data | DataBlob | Yes | Message to pass in. | +| data | DataBlob | Yes | Data to pass in.| **Return value** -| Type | Description | -| ------------- | ----------- | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| ### sign @@ -1815,10 +2097,10 @@ Signs the data. This API uses an asynchronous callback to return the result. **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| data | DataBlob | Yes | Message to pass in. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------- | +| data | DataBlob | Yes | Data to pass in.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | ### sign @@ -1832,53 +2114,92 @@ Signs the data. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ------ | -------- | ---- | ---------- | -| data | DataBlob | Yes | Message to pass in. | +| data | DataBlob | Yes | Data to pass in.| **Return value** -| Type | Description | -| ------------- | ----------- | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| **Callback example**: + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" -let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024|PRIMES_2"); -let signer = cryptoFramework.createSign("RSA1024|PKCS1|SHA256"); -rsaGenerator.generateKeyPair(function (err, keyPair) { - globalKeyPair = keyPair; - let priKey = globalKeyPair.priKey; - signer.init(priKey, function (err, data) { - signer.update(input1, function (err, data) { - signer.sign(input2, function (err, data) { - SignMessageBlob = data; - console.info("sign output is " + SignMessageBlob.data); +function stringToUint8Array(str) { + var arr = []; + for (var i = 0, j = str.length; i < j; ++i) { + arr.push(str.charCodeAt(i)); + } + var tmpArray = new Uint8Array(arr); + return tmpArray; +} + +let globalKeyPair; +let SignMessageBlob; +let plan1 = "This is Sign test plan1"; // The first segment of the data. +let plan2 = "This is Sign test plan2"; // The second segment of the data. +let input1 = { data : stringToUint8Array(plan1) }; +let input2 = { data : stringToUint8Array(plan2) }; + +function signMessageCallback() { + let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024|PRIMES_2"); + let signer = cryptoFramework.createSign("RSA1024|PKCS1|SHA256"); + rsaGenerator.generateKeyPair(function (err, keyPair) { + globalKeyPair = keyPair; + let priKey = globalKeyPair.priKey; + signer.init(priKey, function (err, data) { + signer.update(input1, function (err, data) { // Add the first segment of the data. + signer.sign(input2, function (err, data) { // Add the second segment of the data, and sign input1 and input2. + SignMessageBlob = data; + AlertDialog.show({message : "res" + SignMessageBlob.data}); + }); }); }); }); -}); +} ``` **Promise example**: + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" -let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024|PRIMES_2"); -let signer = cryptoFramework.createSign("RSA1024|PKCS1|SHA256"); -let keyGenPromise = rsaGenerator.generateKeyPair(); -keyGenPromise.then( keyPair => { - globalKeyPair = keyPair; - let priKey = globalKeyPair.priKey; - return signer.init(priKey); -}).then(() => { - return signer.update(input1); -}).then(() => { - return signer.sign(input2); -}).then(dataBlob => { - SignMessageBlob = dataBlob; - console.info("sign output is " + SignMessageBlob.data); -}); +function stringToUint8Array(str) { + var arr = []; + for (var i = 0, j = str.length; i < j; ++i) { + arr.push(str.charCodeAt(i)); + } + var tmpArray = new Uint8Array(arr); + return tmpArray; +} + +let globalKeyPair; +let SignMessageBlob; +let plan1 = "This is Sign test plan1"; // The first segment of the data. +let plan2 = "This is Sign test plan2"; // The second segment of the data. +let input1 = { data : stringToUint8Array(plan1) }; +let input2 = { data : stringToUint8Array(plan2) }; + +function signMessagePromise() { + let rsaGenerator = cryptoFramework.createAsyKeyGenerator("RSA1024|PRIMES_2"); + let signer = cryptoFramework.createSign("RSA1024|PKCS1|SHA256"); + let keyGenPromise = rsaGenerator.generateKeyPair(); + keyGenPromise.then( keyPair => { + globalKeyPair = keyPair; + let priKey = globalKeyPair.priKey; + return signer.init(priKey); + }).then(() => { + return signer.update(input1); // Add the first segment of the data. + }).then(() => { + return signer.sign(input2); // Add the second segment of the data, and sign input1 and input2. + }).then(dataBlob => { + SignMessageBlob = dataBlob; + console.info("sign output is " + SignMessageBlob.data); + AlertDialog.show({message : "output" + SignMessageBlob.data}); + }); +} ``` ## cryptoFramework.createVerify @@ -1897,9 +2218,9 @@ Creates a **Verify** instance. **Return value** -| Type| Description | -| ---- | ------------------------------ | -| Verify | **Verify** instance created.| +| Type | Description | +| ------ | ---------------------------------- | +| Verify | **Verify** instance created.| **Example** @@ -1908,11 +2229,27 @@ import cryptoFramework from "@ohos.security.cryptoFramework" let verifyer1 = cryptoFramework.createVerify("RSA1024|PKCS1|SHA256"); -let verifyer2 = cryptoFramework.createVerify("RSA1024|PKCS1_OAEP|SHA256|MGF1_SHA256") +let verifyer2 = cryptoFramework.createVerify("RSA1024|PSS|SHA256|MGF1_SHA256") ``` + ## Verify Provides APIs for signature verification. Before using any API of the **Verify** class, you must create a **Verify** instance by using **createVerify()**. +The **Verify** class does not support repeated initialization. When a new key is used for signature verification, you must create a new **Verify** object and call **init()** for initialization. +The signature verification mode is determined in **createVerify()**, and key is set by **init()**. +If the data to be verified is short, you can call **verify()** to pass in the signature data and original data after **init()**. +If the data to be verified is long, you can use **update()** to pass in the data by segment, and then use **verify()** to verify the entire data. +If **update()** is used to pass in data by segment, **data** of **verify()** can be **null**. + +### Attributes + +**System capability**: SystemCapability.Security.CryptoFramework + +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| algName | string | Yes | No | Algorithm to be used for signature verification.| + + ### init @@ -1924,12 +2261,13 @@ Initializes the **Verify** instance using a public key. This API uses an asynchr **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| pubKey | Key |Yes| Public key used for the initialization.| -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------------------------- | +| pubKey | PubKey | Yes | Public key used for the initialization.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | ### init + init(pubKey : PubKey) : Promise\ Initializes the **Verify** instance using a public key. This API uses a promise to return the result. @@ -1938,14 +2276,14 @@ Initializes the **Verify** instance using a public key. This API uses a promise **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| pubKey | Key |Yes|Public key used for the initialization.| +| Name| Type| Mandatory| Description | +| ------ | ---- | ---- | ---------------------------- | +| pubKey | PubKey | Yes | Public key used for the initialization.| **Return value** -| Type | Description | -| --------------- | ------------ | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| ### update @@ -1958,10 +2296,10 @@ Updates the data for signature verification. This API uses an asynchronous callb **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| data | DataBlob | Yes | Message to pass in. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ---------- | +| data | DataBlob | Yes | Data to pass in.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | ### update @@ -1975,12 +2313,12 @@ Updates the data for signature verification. This API uses a promise to return t | Name| Type | Mandatory| Description | | ------ | -------- | ---- | ---------- | -| data | DataBlob | Yes | Message to pass in. | +| data | DataBlob | Yes | Data to pass in.| **Return value** -| Type | Description | -| ------------- | ----------- | +| Type | Description | +| -------------- | ----------- | | Promise\ | Promise used to return the result.| ### verify @@ -1993,11 +2331,11 @@ Verifies the signature. This API uses an asynchronous callback to return the res **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| data | DataBlob | Yes | Message to pass in. | -| signatureData | DataBlob | Yes | Signature data. | -| callback | AsyncCallback\ | Yes | Callback invoked to return the result.| +| Name | Type | Mandatory| Description | +| ------------- | -------------------- | ---- | ---------- | +| data | DataBlob | Yes | Data to pass in.| +| signatureData | DataBlob | Yes | Signature data. | +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. | ### verify @@ -2009,25 +2347,30 @@ Verifies the signature. This API uses a promise to return the result. **Parameters** -| Name| Type | Mandatory| Description | -| ------ | -------- | ---- | ---------- | -| data | DataBlob | Yes | Message to pass in.| -| signatureData | DataBlob| Yes| Signature data.| +| Name | Type | Mandatory| Description | +| ------------- | -------- | ---- | ---------- | +| data | DataBlob | Yes | Data to pass in.| +| signatureData | DataBlob | Yes | Signature data. | **Return value** -| Type | Description | -| --------------- | ------------ | +| Type | Description | +| ----------------- | ---------------------------- | | Promise\ | Promise used to return the result.| **Callback example**: + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" +let globalKeyPair; // globalKeyPair is an asymmetric key object generated by the asymmetric key generator. The generation process is omitted here. +let input1 = null; +let input2 = null; +let signMessageBlob = null; // Signed data, which is omitted here. let verifyer = cryptoFramework.createVerify("RSA1024|PKCS1|SHA25"); verifyer.init(globalKeyPair.pubKey, function (err, data) { verifyer.update(input1, function(err, data) { - verifyer.verify(input2, SignMessageBlob, function(err, data) { + verifyer.verify(input2, signMessageBlob, function(err, data) { console.info("verify result is " + data); }) }); @@ -2035,19 +2378,25 @@ verifyer.init(globalKeyPair.pubKey, function (err, data) { ``` **Promise example**: + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" +let globalKeyPair; // globalKeyPair is an asymmetric key object generated by the asymmetric key generator. The generation process is omitted here. let verifyer = cryptoFramework.createVerify("RSA1024|PKCS1|SHA256"); let verifyInitPromise = verifyer.init(globalKeyPair.pubKey); +let input1 = null; +let input2 = null; +let signMessageBlob = null; // Signed data, which is omitted here. verifyInitPromise.then(() => { return verifyer.update(input1); }).then(() => { - return verifyer.verify(input2, SignMessageBlob); + return verifyer.verify(input2, signMessageBlob); }).then(res => { console.log("Verify result is " + res); }); ``` + ## cryptoFramework.createKeyAgreement createKeyAgreement(algName : string) : KeyAgreement @@ -2058,15 +2407,15 @@ Creates a **KeyAgreement** instance. **Parameters** -| Name | Type | Mandatory| Description | -| ------- | ------ | ---- | ------------------------------------------------------------ | -| algName | string | Yes | Key agreement algorithm to use. Only ECC is supported. | +| Name | Type | Mandatory| Description | +| ------- | ------ | ---- | ------------------------------- | +| algName | string | Yes | Key agreement algorithm to use. Only ECC is supported.| **Return value** -| Type| Description | -| ---- | ------------------------------ | -| KeyAgreement | **KeyAgreement** instance created.| +| Type | Description | +| ------------ | ---------------------------------------- | +| KeyAgreement | **KeyAgreement** instance created.| **Example** @@ -2079,7 +2428,15 @@ let keyAgreement = cryptoFramework.createKeyAgreement("ECC256"); ## KeyAgreement -Provides APIs for key agreement operations. Before using any API of the **keyAgreement** class, you must create a **KeyAgreement** instance by using **createKeyAgreement()**. +Provides APIs for key agreement operations. Before using any API of the **KeyAgreement** class, you must create a **KeyAgreement** instance by using **createKeyAgreement()**. + +### Attributes + +**System capability**: SystemCapability.Security.CryptoFramework + +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | ---------------------------- | +| algName | string | Yes | No | Algorithm used for key agreement.| ### generateSecret @@ -2091,13 +2448,14 @@ Generates a shared secret. This API uses an asynchronous callback to return the **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| priKey | PriKey |Yes| Private key used for key agreement.| -| pubKey | PubKey |Yes| Public key used for key agreement.| -| callback | AsyncCallback\ | Yes | Callback invoked to return the shared secret generated. | +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | ---------------------- | +| priKey | PriKey | Yes | Private key used for key agreement.| +| pubKey | PubKey | Yes | Public key used for key agreement.| +| callback | AsyncCallback\ | Yes | Callback invoked to return the shared secret.| ### generateSecret + generateSecret(priKey : PriKey, pubKey : PubKey) : Promise\ Generates a shared secret. This API uses a promise to return the result. @@ -2106,21 +2464,23 @@ Generates a shared secret. This API uses a promise to return the result. **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------- | ---- | ------------------ | -| priKey | PriKey |Yes| Private key used for key agreement.| -| pubKey | PubKey |Yes| Public key used for key agreement.| +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| priKey | PriKey | Yes | Private key used for key agreement.| +| pubKey | PubKey | Yes | Public key used for key agreement.| **Return value** -| Type | Description | -| --------------- | ------------ | -| Promise\ | Promise used to return the shared secret generated. | +| Type | Description | +| ------------------ | -------- | +| Promise\ | Promise used to return the shared secret.| **Callback example**: + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" +let globalKeyPair; // globalKeyPair is an asymmetric key object generated by the asymmetric key generator. The generation process is omitted here. let keyAgreement = cryptoFramework.createKeyAgreement("ECC256"); keyAgreement.generateSecret(globalKeyPair.priKey, globalKeyPair.pubKey, function (err, secret) { if (err) { @@ -2132,9 +2492,11 @@ keyAgreement.generateSecret(globalKeyPair.priKey, globalKeyPair.pubKey, function ``` **Promise example**: + ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" +let globalKeyPair; // globalKeyPair is an asymmetric key object generated by the asymmetric key generator. The generation process is omitted here. let keyAgreement = cryptoFramework.createKeyAgreement("ECC256"); let keyAgreementPromise = keyAgreement.generateSecret(globalKeyPair.priKey, globalKeyPair.pubKey); keyAgreementPromise.then((secret) => { diff --git a/en/application-dev/security/cryptoFramework-guidelines.md b/en/application-dev/security/cryptoFramework-guidelines.md index 3578428054..1d61382eb5 100644 --- a/en/application-dev/security/cryptoFramework-guidelines.md +++ b/en/application-dev/security/cryptoFramework-guidelines.md @@ -32,8 +32,8 @@ The table below describes the APIs used in this guide. |AsyKeyGenerator|generateKeyPair() : Promise\|Generates an asymmetric key pair randomly. This API uses a promise to return the result.| |SymKeyGenerator|generateSymKey(callback : AsyncCallback\) : void|Generates a symmetric key randomly. This API uses an asynchronous callback to return the result.| |SymKeyGenerator|generateSymKey() : Promise\|Generates a symmetric key randomly. This API uses a promise to return the result.| -| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\) : void | Converts binary data into a key pair. This API uses an asynchronous callback to return the result.
(**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the return **KeyPair** instance contains only the public or private key.) | -| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\ | Converts the binary public key and private key data into a key pair. This API uses a promise to return the result.
(**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the returned **KeyPair** instance contains only the public or private key.) | +| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\) : void | Converts binary data into a key pair. This API uses an asynchronous callback to return the result.
(**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the return **KeyPair** instance contains only the public or private key.)| +| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\ | Converts the binary data into a key pair. This API uses a promise to return the result.
(**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the returned **KeyPair** instance contains only the public or private key.)| | SymKeyGenerator | convertKey(key : DataBlob, callback : AsyncCallback\) : void| Converts binary data into a symmetric key. This API uses an asynchronous callback to return the result.| | SymKeyGenerator |convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\| Converts binary data into a symmetric key. This API uses a promise to return the result.| | Key | getEncoded() : DataBlob; | Obtains the binary data of a key. (The child class instances of **Key** include **SymKey**, **PubKey**, and **PriKey**.)| @@ -264,14 +264,14 @@ function stringToUint8Array(str) { return new Uint8Array(arr); } -// Convert byte streams into strings in plaintext. +// Output the byte streams in hexadecimal format. function uint8ArrayToShowStr(uint8Array) { return Array.prototype.map .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)) .join(''); } -// Output the byte streams in hexadecimal format. +// Convert byte streams into strings in plaintext. function uint8ArrayToString(array) { let arrayString = ''; for (let i = 0; i < array.length; i++) { @@ -383,14 +383,14 @@ function stringToUint8Array(str) { return new Uint8Array(arr); } -// Convert byte streams into strings in plaintext. +// Output the byte streams in hexadecimal format. function uint8ArrayToShowStr(uint8Array) { return Array.prototype.map .call(uint8Array, (x) => ('00' + x.toString(16)).slice(-2)) .join(''); } -// Output the byte streams in hexadecimal format. +// Convert byte streams into strings in plaintext. function uint8ArrayToString(array) { let arrayString = ''; for (let i = 0; i < array.length; i++) { @@ -500,7 +500,7 @@ Example 2: Encrypt and decrypt data using an asymmetric key pair. Call **createCipher()** to create a **Cipher** instance, and set the key and encryption/decryption mode. -3. Perform encryption and decryption operations. +3. Perform encryption and decryption operations. Call **doFinal()** provided by the **Cipher** instance to encrypt data or decrypt data. @@ -573,38 +573,24 @@ For details about the APIs, see [Crypto Framework](../reference/apis/js-apis-cry |Sign|init(priKey : PriKey) : Promise\|Sets a key and initializes the **Sign** instance. This API uses a promise to return the result.| |Sign|update(data : DataBlob, callback : AsyncCallback\) : void|Updates the data for signing. This API uses an asynchronous callback to return the result.| |Sign|update(data : DataBlob) : Promise\|Updates the data for signing. This API uses a promise to return the result.| -|Sign|sign(data : DataBlob, callback : AsyncCallback) : void|Signs the data. This API uses an asynchronous callback to return the result.| -|Sign|sign(data : DataBlob) : Promise|Signs the data. This API uses a promise to return the result.| +|Sign|sign(data : DataBlob, callback : AsyncCallback\) : void|Signs the data. This API uses an asynchronous callback to return the result.| +|Sign|sign(data : DataBlob) : Promise\|Signs the data. This API uses a promise to return the result.| |cryptoFramework|function createVerify(algName : string) : Verify|Creates a **Verify** instance.| |Verify|init(priKey : PriKey, callback : AsyncCallback\) : void|Sets a key and initializes the **Verify** instance. This API uses an asynchronous callback to return the result.| |Verify|init(priKey : PriKey) : Promise\|Sets a key and initializes the **Verify** instance. This API uses a promise to return the result.| |Verify|update(data : DataBlob, callback : AsyncCallback\) : void|Updates the data for signature verification. This API uses an asynchronous callback to return the result.| |Verify|update(data : DataBlob) : Promise\|Updates the data for signature verification. This API uses a promise to return the result.| -|Verify|verify(data : DataBlob, signatureData : DataBlob, callback : AsyncCallback) : void|Verifies the signature. This API uses an asynchronous callback to return the result.| -|Verify|verify(data : DataBlob, signatureData : DataBlob) : Promise|Verifies the signature. This API uses a promise to return the result.| +|Verify|verify(data : DataBlob, signatureData : DataBlob, callback : AsyncCallback\) : void|Verifies the signature. This API uses an asynchronous callback to return the result.| +|Verify|verify(data : DataBlob, signatureData : DataBlob) : Promise\|Verifies the signature. This API uses a promise to return the result.| **How to Develop** Example 1: Use RSA to sign data and verify the signature. -1. Generate an RSA key pair. - - Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an RSA asymmetric key pair. - -2. Create a **Sign** instance. - - Call **createSign()** to create a **Sign** instance, initialize the **Sign** instance, and set a private key for signing. - -3. Generate a signature. - - Call **update()** provided by the **Sign** class to add the data for signing and call **sign()** to generate a signature. - -4. Create a **Verify** instance. - - Call **createVerify()** to create a **Verify** instance, initialize the instance, and set a public key for signature verification. - -5. Verify the signature. - - Call **update()** provided by the **Verify** class to add signature data and call **verify()** to verify the signature. +1. Generate an RSA key pair.
Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an RSA asymmetric key pair. +2. Create a **Sign** instance.
Call **createSign()** to create a **Sign** instance, initialize the **Sign** instance, and set a private key for signing. +3. Generate a signature.
Call **update()** provided by the **Sign** class to add the data for signing and call **sign()** to generate a signature. +4. Create a **Verify** instance.
Call **createVerify()** to create a **Verify** instance, initialize the instance, and set a public key for signature verification. +5. Verify the signature.
Call **update()** provided by the **Verify** class to add signature data and call **verify()** to verify the signature. ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" @@ -684,25 +670,11 @@ function verifyMessageCallback() { ``` Example 2: Using ECC to sign data and verify the signature. -1. Generate an ECC key. - - Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an ECC asymmetric key pair. - -2. Create a **Sign** instance. - - Call **createSign()** to create a **Sign** instance, initialize the **Sign** instance, and set a private key for signing. - -3. Generate a signature. - - Call **update()** provided by the **Sign** class to add the data for signing and call **doFinal()** to generate a signature. - -4. Create a **Verify** instance. - - Call **createVerify()** to create a **Verify** instance, initialize the instance, and set a public key for signature verification. - -5. Verify the signature. - - Call **update()** provided by the **Verify** class to add signature data and call **doFinal()** to verify the signature. +1. Generate an ECC key.
Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an ECC asymmetric key pair. +2. Create a **Sign** instance.
Call **createSign()** to create a **Sign** instance, initialize the **Sign** instance, and set a private key for signing. +3. Generate a signature.
Call **update()** provided by the **Sign** class to add the data for signing and call **doFinal()** to generate a signature. +4. Create a **Verify** instance.
Call **createVerify()** to create a **Verify** instance, initialize the instance, and set a public key for signature verification. +5. Verify the signature.
Call **update()** provided by the **Verify** class to add signature data and call **doFinal()** to verify the signature. ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" @@ -792,7 +764,7 @@ Typical message digest operations involve the following: 1. Create an **Md** instance. 2. Add one or more segments of data for generating a digest. -3. Compute a digest. +3. Compute a digest. 4. Obtain the algorithm and length of a digest. **Available APIs** @@ -802,10 +774,10 @@ For details about the APIs, see [Crypto Framework](../reference/apis/js-apis-cry | Instance | API | Description | | --------------- | ------------------------------------------------------------ | -------------------------------------------------- | | cryptoFramework | function createMd(algName : string) : Md; | Creates an **Md** instance. | -| Md | update(input : DataBlob, callback : AsyncCallback\) : void; | Updates the data for a digest. This API uses an asynchronous callback to return the result.| -| Md | update(input : DataBlob) : Promise\; | Updates the data for a digest. This API uses a promise to return the result. | -| Md | digest(callback : AsyncCallback\) : void; | Generates the digest. This API uses an asynchronous callback to return the result. | -| Md | digest() : Promise\; | Generates the digest. This API uses a promise to return the result. | +| Md | update(input : DataBlob, callback : AsyncCallback\) : void; | Updates the data for a digest. This API uses an asynchronous callback to return the result.| +| Md | update(input : DataBlob) : Promise\; | Updates the data for a digest. This API uses a promise to return the result. | +| Md | digest(callback : AsyncCallback\) : void; | Generates the digest. This API uses an asynchronous callback to return the result. | +| Md | digest() : Promise\; | Generates the digest. This API uses a promise to return the result. | | Md | getMdLength() : number; | Obtains the digest length based on the specified digest algorithm. | | Md | readonly algName : string; | Obtains the digest algorithm. | @@ -907,10 +879,7 @@ For details about the APIs, see [Crypto Framework](../reference/apis/js-apis-cry **How to Develop** -1. Generate an ECC key. - - Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an ECC asymmetric key pair. - +1. Generate an ECC key.
Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an ECC asymmetric key pair. 2. Generate a shared secret by using the private and public ECC keys. ```javascript @@ -966,15 +935,15 @@ For details about the APIs, see [Crypto Framework](../reference/apis/js-apis-cry | Instance | API | Description | | --------------- | ------------------------------------------------------------ | --------------------------------------------------- | -| cryptoFramework | function createMac(algName : string) : Md; | Creates a **Mac** instance. | -| Mac | init(key : SymKey, callback : AsyncCallback\) : void; | Initializes the MAC operation. This API uses an asynchronous callback to return the result.| -| Mac | init(key : SymKey) : Promise\; | Initializes the MAC operation. This API uses a promise to return the result. | -| Mac | update(input : DataBlob, callback : AsyncCallback\) : void; | Updates the data for the MAC operation. This API uses an asynchronous callback to return the result. | -| Mac | update(input : DataBlob) : Promise\; | Updates the data for the MAC operation. This API uses a promise to return the result. | -| Mac | doFinal(callback : AsyncCallback\) : void; | Finalizes the MAC operation to generate a MAC. This API uses an asynchronous callback to return the result. | -| Mac | doFinal() : Promise\; | Finalizes the MAC operation to generate a MAC. This API uses a promise to return the result. | +| cryptoFramework | function createMac(algName : string) : Mac; | Creates a **Mac** instance. | +| Mac | init(key : SymKey, callback : AsyncCallback\) : void; | Initializes the MAC operation. This API uses an asynchronous callback to return the result.| +| Mac | init(key : SymKey) : Promise\; | Initializes the MAC operation. This API uses a promise to return the result. | +| Mac | update(input : DataBlob, callback : AsyncCallback\) : void; | Updates the data for the MAC operation. This API uses an asynchronous callback to return the result. | +| Mac | update(input : DataBlob) : Promise\; | Updates the data for the MAC operation. This API uses a promise to return the result. | +| Mac | doFinal(callback : AsyncCallback\) : void; | Finalizes the MAC operation to generate a MAC. This API uses an asynchronous callback to return the result. | +| Mac | doFinal() : Promise\; | Finalizes the MAC operation to generate a MAC. This API uses a promise to return the result. | | Mac | getMacLength() : number; | Obtains the length of the MAC based on the specified algorithm. | -| Mac | readonly algName : string; | Obtains the algorithm. | +| Mac | readonly algName : string; | Obtains the digest algorithm. | **How to Develop** @@ -1089,8 +1058,8 @@ function doHmacByCallback(algName) { Typical random number operations involve the following: -1. Generate a random number. -2. Set a seed based on the random number generated. +- Generate a random number. +- Set a seed based on the random number generated. **Available APIs** @@ -1099,10 +1068,9 @@ For details about the APIs, see [Crypto Framework](../reference/apis/js-apis-cry | Instance | API | Description | | --------------- | ------------------------------------------------------------ | ---------------------------------------------- | | cryptoFramework | function createRandom() : Random; | Creates a **Random** instance. | -| Random | generateRandom(len : number, callback: AsyncCallback\) : void; | Generates a random number. This API uses an asynchronous callback to return the result. | -| Random | generateRandom(len : number) : Promise\; | Generates a random number. This API uses a promise to return the result. | -| Random | setSeed(seed : DataBlob, callback : AsyncCallback\) : void; | Sets a seed. This API uses an asynchronous callback to return the result.| -| Random | setSeed(seed : DataBlob) : Promise\; | Sets a seed. This API uses a promise to return the result. | +| Random | generateRandom(len : number, callback: AsyncCallback\) : void; | Generates a random number. This API uses an asynchronous callback to return the result. | +| Random | generateRandom(len : number) : Promise\; | Generates a random number. This API uses a promise to return the result. | +| Random | setSeed(seed : DataBlob) : void; | Sets a seed. | **How to Develop** @@ -1124,10 +1092,11 @@ function doRandByPromise(len) { var promiseGenerateRand = rand.generateRandom(len); promiseGenerateRand.then(randData => { console.error("[Promise]: rand result: " + randData.data); - var promiseSetSeed = rand.setSeed(randData); - return promiseSetSeed; - }).then(() => { - console.error("[Promise]: setSeed success"); + try { + rand.setSeed(randData); + } catch (error) { + console.log("setSeed failed, errCode: " + error.code + ", errMsg: " + error.message); + } }).catch(error => { console.error("[Promise]: error: " + error.message); }); @@ -1146,13 +1115,11 @@ function doRandByCallback(len) { console.error("[Callback]: err: " + err.code); } else { console.error("[Callback]: generate random result: " + randData.data); - rand.setSeed(randData, (err1,) => { - if (err1) { - console.error("[Callback] err: " + err1.code); - } else { - console.error("[Callback]: setSeed success"); - } - }); + try { + rand.setSeed(randData); + } catch (error) { + console.log("setSeed failed, errCode: " + error.code + ", errMsg: " + error.message); + } } }); } diff --git a/en/application-dev/security/cryptoFramework-overview.md b/en/application-dev/security/cryptoFramework-overview.md index afaa9658f3..4037a163e5 100644 --- a/en/application-dev/security/cryptoFramework-overview.md +++ b/en/application-dev/security/cryptoFramework-overview.md @@ -1,5 +1,5 @@ # Crypto Framework Overview -The crypto framework shields the implementation differences of third-party cryptographic algorithm libraries and implements encryption and decryption, signing and signature verification, message authentication code (MAC), hash, and secure random number. You can use the APIs provided by this framework to implement cipher development quickly. +The cryptographic (crypto for shot) framework shields the implementation differences of third-party cryptographic algorithm libraries and implements encryption and decryption, signing and signature verification, message authentication code (MAC), hash, and secure random number. You can use the APIs provided by this framework to implement cipher development quickly. ## Working Principles The crypto framework provides components in the following layers: -- GitLab From d9f9d622f504f50b67bc5be81732fcae214a840d Mon Sep 17 00:00:00 2001 From: zwx1072417 Date: Mon, 16 Jan 2023 06:29:25 +0000 Subject: [PATCH 266/383] =?UTF-8?q?update=20zh-cn/release-notes/changelogs?= =?UTF-8?q?/OpenHarmony=5F3.2.10.1/changelogs-url.md.=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AD=90=E7=B3=BB=E7=BB=9F=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zwx1072417 --- .../changelogs/OpenHarmony_3.2.10.1/changelogs-url.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md index 6fda579d33..c9ea0328d4 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-url.md @@ -1,9 +1,9 @@ -# url系统JS API变更Changelog +# 公共基础类库子系统JS API变更Changelog OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,url子系统的API变更如下 -## cl.url.1.URLParams类接口变更 -url子系统URLParams类构造函数存在变更: +## cl.commonlibrary.1.URLParams类接口变更 +公共基础类库子系统url模块URLParams类构造函数存在变更: constructor(init?: string[][] | Record | string | URLSearchParams) 改为 constructor(init?: string[][] | Record | string | URLParams);参数类型为原来的URLSearchParams类改为URLParams类。 @@ -37,8 +37,8 @@ try { console.error(`Fail to ceate URLParams.codeis${err.code},message is ${err.message}`); } ``` -## cl.url.2.URL类属性变更url子系统URLParams类构造函数存在变更: -url子系统URL类属性存在变更: +## cl.commonlibrary.2.URL类属性变更url子系统URLParams类构造函数存在变更: +公共基础类库子系统url模块URL类属性存在变更: 废弃searchParams: URLSearchParams属性,新增params: URLParams属性 -- GitLab From 0538ce3bfefc2eb27c27fd49f09287c5e6648c92 Mon Sep 17 00:00:00 2001 From: "zhangyafei.echo" Date: Mon, 16 Jan 2023 14:32:42 +0800 Subject: [PATCH 267/383] IssueNo:#I6APKJ Description:Use let instead of var. Sig:SIG_ApplicationFramework Feature or BugFix: Feature Binary Source: No Signed-off-by: zhangyafei.echo Change-Id: I402dade402ffef399f628f6bbea3f9eda192cc23 --- ...apis-inner-application-uiAbilityContext.md | 142 +++++++++--------- 1 file changed, 71 insertions(+), 71 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md b/zh-cn/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md index 0740e38c53..3705107c58 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md @@ -61,7 +61,7 @@ startAbility(want: Want, callback: AsyncCallback<void>): void; **示例:** ```ts - var want = { + let want = { bundleName: "com.example.myapp", abilityName: "MyAbility" }; @@ -126,12 +126,12 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void& **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var options = { + let options = { windowMode: 0 }; @@ -200,11 +200,11 @@ startAbility(want: Want, options?: StartOptions): Promise<void>; **示例:** ```ts - var want = { + let want = { bundleName: "com.example.myapp", abilityName: "MyAbility" }; - var options = { + let options = { windowMode: 0, }; @@ -267,7 +267,7 @@ startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" @@ -333,12 +333,12 @@ startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var options = { + let options = { windowMode: 0, }; @@ -409,11 +409,11 @@ startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityRes **示例:** ```ts -var want = { +let want = { bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; -var options = { +let options = { windowMode: 0, }; @@ -481,12 +481,12 @@ startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncC **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var accountId = 100; + let accountId = 100; try { this.context.startAbilityForResultWithAccount(want, accountId, (error, result) => { @@ -555,13 +555,13 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOp **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var accountId = 100; - var options = { + let accountId = 100; + let options = { windowMode: 0 }; @@ -636,13 +636,13 @@ startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartO **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var accountId = 100; - var options = { + let accountId = 100; + let options = { windowMode: 0 }; @@ -697,7 +697,7 @@ startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" @@ -753,7 +753,7 @@ startServiceExtensionAbility(want: Want): Promise\; **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" @@ -813,12 +813,12 @@ startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" }; - var accountId = 100; + let accountId = 100; try { this.context.startServiceExtensionAbilityWithAccount(want, accountId, (error) => { @@ -873,16 +873,16 @@ startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\ **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" }; - var accountId = 100; + let accountId = 100; try { this.context.startServiceExtensionAbilityWithAccount(want, accountId) - .then((data) => { + .then(() => { // 执行正常业务 console.log('startServiceExtensionAbilityWithAccount succeed'); }) @@ -929,7 +929,7 @@ stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" @@ -984,7 +984,7 @@ stopServiceExtensionAbility(want: Want): Promise\; **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" @@ -992,7 +992,7 @@ stopServiceExtensionAbility(want: Want): Promise\; try { this.context.stopServiceExtensionAbility(want) - .then((data) => { + .then(() => { // 执行正常业务 console.log('stopServiceExtensionAbility succeed'); }) @@ -1043,12 +1043,12 @@ stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" }; - var accountId = 100; + let accountId = 100; try { this.context.stopServiceExtensionAbilityWithAccount(want, accountId, (error) => { @@ -1102,16 +1102,16 @@ stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\< **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" }; - var accountId = 100; + let accountId = 100; try { this.context.stopServiceExtensionAbilityWithAccount(want, accountId) - .then((data) => { + .then(() => { // 执行正常业务 console.log('stopServiceExtensionAbilityWithAccount succeed'); }) @@ -1250,13 +1250,13 @@ terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<voi **示例:** ```ts - var want = { + let want = { bundleName: "com.example.myapplication", abilityName: "EntryAbility" } - var resultCode = 100; + let resultCode = 100; // 返回给接口调用方AbilityResult信息 - var abilityResult = { + let abilityResult = { want, resultCode } @@ -1314,20 +1314,20 @@ terminateSelfWithResult(parameter: AbilityResult): Promise<void>; **示例:** ```ts - var want = { + let want = { bundleName: "com.example.myapplication", abilityName: "EntryAbility" } - var resultCode = 100; + let resultCode = 100; // 返回给接口调用方AbilityResult信息 - var abilityResult = { + let abilityResult = { want, resultCode } try { this.context.terminateSelfWithResult(abilityResult) - .then((data) => { + .then(() => { // 执行正常业务 console.log('terminateSelfWithResult succeed'); }) @@ -1378,12 +1378,12 @@ connectServiceExtensionAbility(want: Want, options: ConnectOptions): number; **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" }; - var options = { + let options = { onConnect(elementName, remote) { console.log('----------- onConnect -----------') }, @@ -1395,7 +1395,7 @@ connectServiceExtensionAbility(want: Want, options: ConnectOptions): number; } } - var connection = null; + let connection = null; try { connection = this.context.connectServiceExtensionAbility(want, options); } catch (paramError) { @@ -1444,13 +1444,13 @@ connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "ServiceExtensionAbility" }; - var accountId = 100; - var options = { + let accountId = 100; + let options = { onConnect(elementName, remote) { console.log('----------- onConnect -----------') }, @@ -1462,7 +1462,7 @@ connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options } } - var connection = null; + let connection = null; try { connection = this.context.connectServiceExtensionAbilityWithAccount(want, accountId, options); } catch (paramError) { @@ -1505,11 +1505,11 @@ disconnectServiceExtensionAbility(connection: number): Promise\; ```ts // connection为connectServiceExtensionAbility中的返回值 - var connection = 1; + let connection = 1; try { this.context.disconnectServiceExtensionAbility(connection) - .then((data) => { + .then(() => { // 执行正常业务 console.log('disconnectServiceExtensionAbility succeed'); }) @@ -1553,7 +1553,7 @@ disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback\ { @@ -1623,10 +1623,10 @@ startAbilityByCall(want: Want): Promise<Caller>; 后台启动: ```ts - var caller = undefined; + let caller = undefined; // 后台启动Ability,不配置parameters - var wantBackground = { + let wantBackground = { bundleName: "com.example.myservice", moduleName: "entry", abilityName: "EntryAbility", @@ -1654,10 +1654,10 @@ startAbilityByCall(want: Want): Promise<Caller>; 前台启动: ```ts - var caller = undefined; + let caller = undefined; // 前台启动Ability,将parameters中的"ohos.aafwk.param.callAbilityToForeground"配置为true - var wantForeground = { + let wantForeground = { bundleName: "com.example.myservice", moduleName: "entry", abilityName: "EntryAbility", @@ -1731,12 +1731,12 @@ startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\< **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var accountId = 100; + let accountId = 100; try { this.context.startAbilityWithAccount(want, accountId, (error) => { @@ -1804,13 +1804,13 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var accountId = 100; - var options = { + let accountId = 100; + let options = { windowMode: 0 }; @@ -1879,19 +1879,19 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): **示例:** ```ts - var want = { + let want = { deviceId: "", bundleName: "com.example.myapplication", abilityName: "EntryAbility" }; - var accountId = 100; - var options = { + let accountId = 100; + let options = { windowMode: 0 }; try { this.context.startAbilityWithAccount(want, accountId, options) - .then((data) => { + .then(() => { // 执行正常业务 console.log('startAbilityWithAccount succeed'); }) @@ -1994,9 +1994,9 @@ setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\): void; ```ts import image from '@ohos.multimedia.image'; - var imagePixelMap; - var color = new ArrayBuffer(0); - var initializationOptions = { + let imagePixelMap; + let color = new ArrayBuffer(0); + let initializationOptions = { size: { height: 100, width: 100 @@ -2047,9 +2047,9 @@ setMissionIcon(icon: image.PixelMap): Promise\; **示例:** ```ts - var imagePixelMap; - var color = new ArrayBuffer(0); - var initializationOptions = { + let imagePixelMap; + let color = new ArrayBuffer(0); + let initializationOptions = { size: { height: 100, width: 100 @@ -2094,7 +2094,7 @@ restoreWindowStage(localStorage: LocalStorage) : void; **示例:** ```ts - var storage = new LocalStorage(); + let storage = new LocalStorage(); this.context.restoreWindowStage(storage); ``` @@ -2122,6 +2122,6 @@ isTerminating(): boolean; **示例:** ```ts - var isTerminating = this.context.isTerminating(); + let isTerminating = this.context.isTerminating(); console.log('ability state :' + isTerminating); ``` -- GitLab From 23be0ed6915d27d373aabd71e6442f9f9dad6581 Mon Sep 17 00:00:00 2001 From: BeanWilliams Date: Mon, 16 Jan 2023 15:02:34 +0800 Subject: [PATCH 268/383] Update ohos.stationary's docs Signed-off-by: BeanWilliams --- zh-cn/application-dev/reference/apis/js-apis-stationary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-stationary.md b/zh-cn/application-dev/reference/apis/js-apis-stationary.md index 12a01a7632..e53ad32448 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-stationary.md +++ b/zh-cn/application-dev/reference/apis/js-apis-stationary.md @@ -4,7 +4,7 @@ > **说明:** > -> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。x86模拟器不支持。 ## 导入模块 -- GitLab From 359baa00be934764127a36a857073ab36e179afc Mon Sep 17 00:00:00 2001 From: sqwlly Date: Mon, 16 Jan 2023 15:08:02 +0800 Subject: [PATCH 269/383] \Signed-off-by: s30029175 Signed-off-by: sqwlly --- zh-cn/application-dev/reference/apis/js-apis-media.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index 389679b960..70b81873d8 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -282,7 +282,7 @@ Audio/Video播放demo可参考:[AVPlayer开发指导](../../media/avplayer-pla | loop9+ | boolean | 是 | 是 | 视频循环播放属性,默认'false',设置为'true'表示循环播放,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | videoScaleType9+ | [VideoScaleType](#videoscaletype9) | 是 | 是 | 视频缩放模式,默认VIDEO_SCALE_TYPE_FIT_CROP,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | | audioInterruptMode9+ | [audio.InterruptMode](js-apis-audio.md#interruptmode9) | 是 | 是 | 音频焦点模型,默认SHARE_MODE,动态属性。
只允许在**prepared**/**playing**/**paused**/**completed**状态下设置。 | -| audioRendererInfo10+ | [audio.AudioRendererInfo](js-apis-audio.md#audioRendererInfo8) | 是 | 是 | 设置音频渲染信息。
只允许在**initialized**状态下设置 | +| audioRendererInfo10+ | [audio.AudioRendererInfo](js-apis-audio.md#audiorendererinfo8) | 是 | 是 | 设置音频渲染信息。
只允许在**initialized**状态下设置 | | state9+ | [AVPlayerState](#avplayerstate9) | 是 | 否 | 音视频播放的状态,全状态有效,可查询参数。 | | currentTime9+ | number | 是 | 否 | 视频的当前播放位置,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。 | | duration9+ | number | 是 | 否 | 视频时长,单位为毫秒(ms),可查询参数。
返回为(-1)表示无效值,**prepared**/**playing**/**paused**/**completed**状态下有效。
直播场景默认返回(-1)。 | -- GitLab From 92d300fe0ecd4d5f2808e12c62d3cb4197b0dc8c Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Mon, 16 Jan 2023 15:08:46 +0800 Subject: [PATCH 270/383] Update doc (13373) Signed-off-by: ester.zhou --- .../reference/arkui-ts/ts-universal-attributes-location.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/application-dev/reference/arkui-ts/ts-universal-attributes-location.md b/en/application-dev/reference/arkui-ts/ts-universal-attributes-location.md index 8425cf2944..a603c54bc5 100644 --- a/en/application-dev/reference/arkui-ts/ts-universal-attributes-location.md +++ b/en/application-dev/reference/arkui-ts/ts-universal-attributes-location.md @@ -17,7 +17,7 @@ The location attributes set the alignment mode, layout direction, and position o | position | [Position](ts-types.md#position8) | Offset of the component's upper left corner relative to the parent component's upper left corner. This offset is expressed using absolute values. When laying out components, this attribute does not affect the layout of the parent component. It only adjusts the component position during drawing.| | markAnchor | [Position](ts-types.md#position8) | Anchor point of the component for positioning. The upper left corner of the component is used as the reference point for offset. Generally, this attribute is used together with the **position** and **offset** attributes. When used independently, this attribute is similar to **offset**.
Default value:
{
x: 0,
y: 0
} | | offset | [Position](ts-types.md#position8) | Offset of the component relative to itself. This offset is expressed using relative values. This attribute does not affect the layout of the parent component. It only adjusts the component position during drawing.
Default value:
{
x: 0,
y: 0
} | -| alignRules9+ | {
left?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };
right?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };
middle?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };
top?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) };
bottom?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) };
center?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) }
} | Alignment rules relative to the container.
- **left**: left-aligned.
- **right**: right-aligned.
- **middle**: center-aligned.
- **top**: top-aligned.
- **bottom**: bottom-aligned.
- **center**: center-aligned.
**NOTE**
- **anchor**: ID of the component that functions as the anchor point.
- **align**: alignment mode relative to the anchor component.| +| alignRules9+ | {
left?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };
right?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };
middle?: { anchor: string, align: [HorizontalAlign](ts-appendix-enums.md#horizontalalign) };
top?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) };
bottom?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) };
center?: { anchor: string, align: [VerticalAlign](ts-appendix-enums.md#verticalalign) }
} | Alignment rules relative to the container. This attribute is valid only when the container is [\](ts-container-relativecontainer.md).
- **left**: left-aligned.
- **right**: right-aligned.
- **middle**: center-aligned.
- **top**: top-aligned.
- **bottom**: bottom-aligned.
- **center**: center-aligned.
**NOTE**
- **anchor**: ID of the component that functions as the anchor point.
- **align**: alignment mode relative to the anchor component.| ## Example -- GitLab From 337f2656a801cb3425751b570434cacea70577b0 Mon Sep 17 00:00:00 2001 From: BeanWilliams Date: Mon, 16 Jan 2023 15:21:42 +0800 Subject: [PATCH 271/383] Update ohos.stationary's docs Signed-off-by: BeanWilliams --- zh-cn/application-dev/reference/apis/js-apis-stationary.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-stationary.md b/zh-cn/application-dev/reference/apis/js-apis-stationary.md index e53ad32448..6d70a3cccb 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-stationary.md +++ b/zh-cn/application-dev/reference/apis/js-apis-stationary.md @@ -4,7 +4,9 @@ > **说明:** > -> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。x86模拟器不支持。 +> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 +> +> x86模拟器不支持。 ## 导入模块 -- GitLab From a9953a17622343c5fc30ddb8db351edfb874513e Mon Sep 17 00:00:00 2001 From: dwx1032708 Date: Mon, 16 Jan 2023 07:43:03 +0000 Subject: [PATCH 272/383] =?UTF-8?q?update=20zh-cn/release-notes/changelogs?= =?UTF-8?q?/OpenHarmony=5F3.2.10.1/changelogs-container.md.=20=E5=AD=90?= =?UTF-8?q?=E7=B3=BB=E7=B5=B1=E5=90=8D=E7=A7=B0=E6=8F=8F=E8=BF=B0=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dwx1032708 --- .../changelogs/OpenHarmony_3.2.10.1/changelogs-container.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md index 23f4ce5add..44cfb4d87f 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.1/changelogs-container.md @@ -2,8 +2,8 @@ OpenHarmony 3.2.10.1(Mr)版本相较于OpenHarmony 3.2.beta4版本,container子系统的API变更如下 -## cl.commonlibrary.1 错误码及信息变更 -commonlibrary子系统中ArrayList、List、LinkedList、Stack、Queue、Deque、PlainArray、LightWeightMap、LightWeightSet、HashMap、HashSet、TreeMap、TreeSet类的接口抛出的错误码及信息变更: +## cl.公共基础类库子系统.1 错误码及信息变更 +公共基础类库子系统子系统中ArrayList、List、LinkedList、Stack、Queue、Deque、PlainArray、LightWeightMap、LightWeightSet、HashMap、HashSet、TreeMap、TreeSet类的接口抛出的错误码及信息变更: 变更后的错误码详细介绍请参见[语言基础类库错误码](../../../application-dev/reference/errorcodes/errorcode-utils.md)。 -- GitLab From 24c114199d2d363afb344b7b8ab7f56bd8f0dd36 Mon Sep 17 00:00:00 2001 From: du-wenboboo Date: Mon, 16 Jan 2023 15:29:28 +0800 Subject: [PATCH 273/383] =?UTF-8?q?=E4=BF=AE=E6=94=B9normalize=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: du-wenboboo --- zh-cn/application-dev/reference/apis/js-apis-uri.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uri.md b/zh-cn/application-dev/reference/apis/js-apis-uri.md index 57115ef96b..3c08e32b72 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uri.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uri.md @@ -35,7 +35,7 @@ import uri from '@ohos.uri' 标准uri定义由以下三个部分组成 [scheme:]scheme-specific-part[#fragment] -- Scheme: 协议名,必填。例如http、https、ftp、datashare、dataability等。 +- Scheme: 协议名,根据需要填写。例如http、https、ftp、datashare、dataability等。 - scheme-specific-part: URI的特定解码方案特定部分,由[//][authority][path][?query]组成,根据需要填写。 - authority: URI的解码权限组件部分。由[userinfo@]host[:port]组成,根据需要填写。 - userinfo: 用户信息,根据需要填写。 @@ -226,7 +226,9 @@ checkIsAbsolute(): boolean ```js const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080?query=pppppp'); -uriInstance.checkIsAbsolute(); +console.log(uriInstance.checkIsAbsolute()); // true +const uriInstance1 = new uri.URI('xxx.com/suppliers.htm'); +console.log(uriInstance1.checkIsAbsolute()); // false ``` @@ -248,6 +250,7 @@ normalize(): URI ```js const uriInstance = new uri.URI('https://username:password@www.qwer.com:8080/path/path1/../path2/./path3?query=pppppp'); +console.log(uriInstance.path); // /path/path1/../path2/./path3 let uriInstance1 = uriInstance.normalize(); -uriInstance1.path; +console.log(uriInstance1.path); // /path/path2/path3 ``` -- GitLab From 802777790e9049530e7b71ea4058afbe643d8c83 Mon Sep 17 00:00:00 2001 From: BeanWilliams Date: Mon, 16 Jan 2023 16:01:25 +0800 Subject: [PATCH 274/383] Update ohos.stationary's docs Signed-off-by: BeanWilliams --- zh-cn/application-dev/reference/apis/js-apis-stationary.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-stationary.md b/zh-cn/application-dev/reference/apis/js-apis-stationary.md index 6d70a3cccb..acb4c1767e 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-stationary.md +++ b/zh-cn/application-dev/reference/apis/js-apis-stationary.md @@ -6,7 +6,7 @@ > > 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > -> x86模拟器不支持。 +> 本模块不支持x86模拟器。 ## 导入模块 -- GitLab From a1a05614445cc05a33b038e23fc31371bfdc48e5 Mon Sep 17 00:00:00 2001 From: SoftSquirrel Date: Mon, 16 Jan 2023 16:12:31 +0800 Subject: [PATCH 275/383] =?UTF-8?q?Issue:#I6AOG3=20Description:=20?= =?UTF-8?q?=E5=8C=85=E7=AE=A1=E7=90=86=E4=B8=8D=E8=A7=A3=E5=8E=8B=E9=9C=80?= =?UTF-8?q?=E6=B1=82changelog=20Sig:=20SIG=5FApplicaitonFramework=20Featur?= =?UTF-8?q?e=20or=20Bugfix:=20Feature=20Binary=20Source:=20No?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: SoftSquirrel --- .../changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md index 4a948f73fc..7ca77c26ed 100644 --- a/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md +++ b/zh-cn/release-notes/changelogs/OpenHarmony_3.2.10.5/changelogs-bundlemanager.md @@ -78,7 +78,7 @@ error: install parse profile prop check error. error: install parse profile prop check error. ``` -对于xts或者本地调试的demo,无法修改板子上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 +对于xts或者本地调试的demo,无法修改开发板上install_list_capability.json的,可以修改应用的bundleName,需要以"com.acts."为开头,同时在签名证书中申请对应的特权。 ## cl.bundlemanager.4 底层能力变更,安装hap时,hap中的文件不再解压到安装目录。 -- GitLab From 07e5f3f0d4cda22f058cd07a1f57f60a237ff27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=9B=E4=BA=9A=E8=8A=B3?= Date: Mon, 16 Jan 2023 08:26:01 +0000 Subject: [PATCH 276/383] update zh-cn/application-dev/napi/drawing-guidelines.md. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 葛亚芳 --- zh-cn/application-dev/napi/drawing-guidelines.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zh-cn/application-dev/napi/drawing-guidelines.md b/zh-cn/application-dev/napi/drawing-guidelines.md index f89cfa3224..b746e15978 100644 --- a/zh-cn/application-dev/napi/drawing-guidelines.md +++ b/zh-cn/application-dev/napi/drawing-guidelines.md @@ -118,9 +118,9 @@ Native Drawing模块提供了一系列的接口用于基本图形和字体的绘 // 在画布上画path的形状,五角星的边框样式为pen设置,颜色填充为Brush设置 OH_Drawing_CanvasDrawPath(cCanvas, cPath); // 销毁创建的对象 - OH_Drawing_BrushDestory(cBrush); - OH_Drawing_PenDestory(cPen); - OH_Drawing_PathDestory(cPath); + OH_Drawing_BrushDestroy(cBrush); + OH_Drawing_PenDestroy(cPen); + OH_Drawing_PathDestroy(cPath); ``` 6. **获取像素数据**。使用 **drawing_bitmap.h** 的 **OH_Drawing_BitmapGetPixels** 接口获取到画布绑定bitmap实例的像素地址,该地址指向的内存包含画布刚刚绘制的像素数据。 @@ -133,9 +133,9 @@ Native Drawing模块提供了一系列的接口用于基本图形和字体的绘 LOGI("memcpy_s failed"); } // 销毁canvas对象 - OH_Drawing_CanvasDestory(cCanvas); + OH_Drawing_CanvasDestroy(cCanvas); // 销毁bitmap对象 - OH_Drawing_BitmapDestory(cBitmap); + OH_Drawing_BitmapDestroy(cBitmap); ``` ## 文本绘制开发步骤 -- GitLab From 81ea116dc21853a64074f31b37e22951dcd94811 Mon Sep 17 00:00:00 2001 From: heyinshen Date: Mon, 16 Jan 2023 16:36:49 +0800 Subject: [PATCH 277/383] modify apis doc of cert Signed-off-by: heyinshen --- .../reference/apis/js-apis-cert.md | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-cert.md b/zh-cn/application-dev/reference/apis/js-apis-cert.md index 946f6009db..c629d49bab 100755 --- a/zh-cn/application-dev/reference/apis/js-apis-cert.md +++ b/zh-cn/application-dev/reference/apis/js-apis-cert.md @@ -203,7 +203,7 @@ cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); } else { console.log("createX509Cert success"); - // 业务需通过AsyKeyGenerator生成PubKey或通过上级X509Cert证书对象的getPublicKey获取PubKey + // 业务需通过上级X509Cert证书对象的getPublicKey获取PubKey let pubKey = null; x509Cert.verify(pubKey, function (error, data) { if (error != null) { @@ -355,8 +355,7 @@ getPublicKey() : cryptoFramework.PubKey | 类型 | 说明 | | ------ | ---------------- | -| cryptoFramework.PubKey | X509证书公钥对象 | - +| cryptoFramework.PubKey | X509证书公钥对象:仅用于X509Cert的verify接口 | **示例:** @@ -398,8 +397,7 @@ checkValidityWithDate(date: string) : void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------- | ---- | ---------- | -| date | string | 是 | 日期 | - +| date | string | 是 | 日期(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,时间必须以Z结尾:表示标准时间) | **示例:** @@ -584,9 +582,9 @@ getNotBeforeTime() : string **返回值**: -| 类型 | 说明 | -| ------ | -------------------------- | -| string | 表示X509证书有效期起始时间 | +| 类型 | 说明 | +| ------ | ------------------------------------------------------------ | +| string | 表示X509证书有效期起始时间(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,时间以Z结尾:表示标准时间) | **示例:** @@ -620,9 +618,9 @@ getNotAfterTime() : string **返回值**: -| 类型 | 说明 | -| ------ | -------------------------- | -| string | 表示X509证书有效期截止时间 | +| 类型 | 说明 | +| ------ | ------------------------------------------------------------ | +| string | 表示X509证书有效期截止时间(格式:YYMMDDHHMMSSZ 或 YYYYMMDDHHMMSSZ,时间以Z结尾:表示标准时间) | **示例:** -- GitLab From a04dc9f4c65193a1bdeb5fe1b7488a4298349512 Mon Sep 17 00:00:00 2001 From: fanchenxuan Date: Mon, 16 Jan 2023 16:42:21 +0800 Subject: [PATCH 278/383] =?UTF-8?q?=E6=96=87=E6=A1=A3=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: fanchenxuan --- .../apis/js-apis-abilityAccessCtrl.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md index 80afc88d66..6d9e94b028 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md +++ b/zh-cn/application-dev/reference/apis/js-apis-abilityAccessCtrl.md @@ -48,7 +48,7 @@ checkAccessToken(tokenID: number, permissionName: Permissions): Promise<Grant | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------- | ---- | ------------------------------------------ | -| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 需要校验的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | **返回值:** @@ -71,7 +71,7 @@ checkAccessToken(tokenID: number, permissionName: Permissions): Promise<Grant import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 try { atManager.checkAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => { console.log(`checkAccessToken success, data->${JSON.stringify(data)}`); @@ -95,7 +95,7 @@ verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------- | ---- | ------------------------------------------ | -| tokenID | number | 是 | 要校验应用的身份标识。 | +| tokenID | number | 是 | 要校验应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 需要校验的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | **返回值:** @@ -116,7 +116,7 @@ verifyAccessTokenSync(tokenID: number, permissionName: Permissions): GrantStatus ```js let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let data = atManager.verifyAccessTokenSync(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); console.log(`data->${JSON.stringify(data)}`); ``` @@ -137,7 +137,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permiss | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------- | ---- | ------------------------------------------------------------ | -| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 被授予的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | @@ -165,7 +165,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permiss import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let permissionFlag = 1; try { atManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => { @@ -194,7 +194,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permiss | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------- | ---- | ------------------------------------------------------------ | -| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。| +| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。| | permissionName | Permissions | 是 | 被授予的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | callback | AsyncCallback<void> | 是 | 授予应用user grant权限。当授予权限成功时,err为undefine;否则为错误对象。 | @@ -217,7 +217,7 @@ grantUserGrantedPermission(tokenID: number, permissionName: Permissions, permiss import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let permissionFlag = 1; try { atManager.grantUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => { @@ -248,7 +248,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permis | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------- | ---- | ------------------------------------------------------------ | -| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 被撤销的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | @@ -276,7 +276,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permis import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let permissionFlag = 1; try { atManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag).then(() => { @@ -305,7 +305,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permis | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------- | ---- | ------------------------------------------------------------ | -| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 被撤销的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | | permissionFlag | number | 是 | 授权选项,1表示下次仍需弹窗,2表示允许、禁止后不再提醒,3表示系统授权不允许更改。 | | callback | AsyncCallback<void> | 是 | 撤销应用user grant权限。当撤销权限成功时,err为undefine;否则为错误对象。 | @@ -328,7 +328,7 @@ revokeUserGrantedPermission(tokenID: number, permissionName: Permissions, permis import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let permissionFlag = 1; try { atManager.revokeUserGrantedPermission(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", permissionFlag, (err, data) => { @@ -359,7 +359,7 @@ getPermissionFlags(tokenID: number, permissionName: Permissions): Promise<num | 参数名 | 类型 | 必填 | 说明 | | --------- | ------------------- | ---- | ------------------------------------------------------------ | -| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 查询的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | **返回值:** @@ -386,7 +386,7 @@ getPermissionFlags(tokenID: number, permissionName: Permissions): Promise<num import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 try { atManager.getPermissionFlags(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS").then((data) => { console.log(`getPermissionFlags success, data->${JSON.stringify(data)}`); @@ -537,7 +537,7 @@ verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<Gran | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------- | ---- | ------------------------------------------ | -| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | Permissions | 是 | 需要校验的权限名称,合法的权限名取值可在[系统权限定义列表](../../security/permission-list.md)中查询。 | **返回值:** @@ -552,7 +552,7 @@ verifyAccessToken(tokenID: number, permissionName: Permissions): Promise<Gran import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); promise.then(data => { console.log(`promise: data->${JSON.stringify(data)}`); @@ -662,7 +662,7 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStat | 参数名 | 类型 | 必填 | 说明 | | -------- | ------------------- | ---- | ------------------------------------------ | -| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)获得。 | +| tokenID | number | 是 | 要校验的目标应用的身份标识。可通过应用的[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)获得。 | | permissionName | string | 是 | 需要校验的权限名称。 | **返回值:** @@ -677,7 +677,7 @@ verifyAccessToken(tokenID: number, permissionName: string): Promise<GrantStat import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; let atManager = abilityAccessCtrl.createAtManager(); -let tokenID = 0; // 可以通过getApplicationInfo获取accessTokenId +let tokenID = 0; // 系统应用可以通过bundleManager.getApplicationInfo获取,普通应用可以通过bundleManager.getBundleInfoForSelf获取 let promise = atManager.verifyAccessToken(tokenID, "ohos.permission.GRANT_SENSITIVE_PERMISSIONS"); promise.then(data => { console.log(`promise: data->${JSON.stringify(data)}`); -- GitLab From 5096844ce99bffc321a07e893fe02258e10f3081 Mon Sep 17 00:00:00 2001 From: wangkai Date: Mon, 16 Jan 2023 16:43:10 +0800 Subject: [PATCH 279/383] change1_16 Signed-off-by: wangkai --- .../database/database-mdds-guidelines.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/zh-cn/application-dev/database/database-mdds-guidelines.md b/zh-cn/application-dev/database/database-mdds-guidelines.md index 3398928528..21b949d08d 100644 --- a/zh-cn/application-dev/database/database-mdds-guidelines.md +++ b/zh-cn/application-dev/database/database-mdds-guidelines.md @@ -71,22 +71,22 @@ import UIAbility from '@ohos.app.ability.UIAbility'; let context = null; - - function grantPermission() { - class EntryAbility extends UIAbility { - onWindowStageCreate(windowStage) { + + class EntryAbility extends UIAbility { + onWindowStageCreate(windowStage) { let context = this.context; - } + } } - - let permissions = ['ohos.permission.DISTRIBUTED_DATASYNC']; - context.requestPermissionsFromUser(permissions).then((data) => { + + function grantPermission() { + let permissions = ['ohos.permission.DISTRIBUTED_DATASYNC']; + context.requestPermissionsFromUser(permissions).then((data) => { console.log('success: ${data}'); - }).catch((error) => { + }).catch((error) => { console.log('failed: ${error}'); - }); + }); } - + grantPermission(); ``` -- GitLab From 382e9bcf958ef95a0122b6460d3b925d0162b28e Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Mon, 16 Jan 2023 13:35:53 +0800 Subject: [PATCH 280/383] Update docs (12269) Signed-off-by: ester.zhou --- en/application-dev/notification/Readme-EN.md | 17 +- .../notification/assistant-guidelines.md | 134 --------- .../notification/common-event.md | 172 ------------ .../notification/figures/anm-dump-A.png | Bin 528 -> 0 bytes .../notification/figures/anm-help.png | Bin 2272 -> 0 bytes .../notification/figures/ans.png | Bin 16690 -> 0 bytes .../notification/figures/cem-dump-e.png | Bin 7086 -> 0 bytes .../notification/figures/cem-help.png | Bin 2915 -> 0 bytes .../notification/figures/cem-publish-all.png | Bin 1450 -> 0 bytes .../figures/cem-publish-event.png | Bin 1319 -> 0 bytes .../notification/figures/ces.png | Bin 29367 -> 0 bytes .../figures/en-us_image_0000001416585590.png | Bin 0 -> 39648 bytes .../figures/en-us_image_0000001416745530.png | Bin 0 -> 211840 bytes .../figures/en-us_image_0000001417062434.png | Bin 0 -> 491759 bytes .../figures/en-us_image_0000001417062446.png | Bin 0 -> 254711 bytes .../figures/en-us_image_0000001466462297.png | Bin 0 -> 260199 bytes .../figures/en-us_image_0000001466462305.png | Bin 0 -> 418390 bytes .../figures/en-us_image_0000001466582017.png | Bin 0 -> 153360 bytes .../figures/en-us_image_0000001466582045.png | Bin 0 -> 133946 bytes .../figures/en-us_image_0000001466782025.png | Bin 0 -> 220558 bytes .../figures/en-us_image_0000001466782033.png | Bin 0 -> 37334 bytes .../figures/notification-with-wantagent.png | Bin 0 -> 41097 bytes .../notification/figures/notification.png | Bin 67444 -> 0 bytes .../notification/notification-brief.md | 20 -- .../notification/notification-enable.md | 49 ++++ .../notification/notification-guidelines.md | 258 ------------------ .../notification/notification-overview.md | 27 ++ .../notification/notification-subscription.md | 82 ++++++ .../notification-with-wantagent.md | 121 ++++++++ .../notification/progress-bar-notification.md | 69 +++++ .../notification/text-notification.md | 160 +++++++++++ 31 files changed, 517 insertions(+), 592 deletions(-) delete mode 100644 en/application-dev/notification/assistant-guidelines.md delete mode 100644 en/application-dev/notification/common-event.md delete mode 100644 en/application-dev/notification/figures/anm-dump-A.png delete mode 100644 en/application-dev/notification/figures/anm-help.png delete mode 100644 en/application-dev/notification/figures/ans.png delete mode 100644 en/application-dev/notification/figures/cem-dump-e.png delete mode 100644 en/application-dev/notification/figures/cem-help.png delete mode 100644 en/application-dev/notification/figures/cem-publish-all.png delete mode 100644 en/application-dev/notification/figures/cem-publish-event.png delete mode 100644 en/application-dev/notification/figures/ces.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001416585590.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001416745530.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001417062434.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001417062446.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001466462297.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001466462305.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001466582017.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001466582045.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001466782025.png create mode 100644 en/application-dev/notification/figures/en-us_image_0000001466782033.png create mode 100644 en/application-dev/notification/figures/notification-with-wantagent.png delete mode 100644 en/application-dev/notification/figures/notification.png delete mode 100644 en/application-dev/notification/notification-brief.md create mode 100644 en/application-dev/notification/notification-enable.md delete mode 100644 en/application-dev/notification/notification-guidelines.md create mode 100644 en/application-dev/notification/notification-overview.md create mode 100644 en/application-dev/notification/notification-subscription.md create mode 100644 en/application-dev/notification/notification-with-wantagent.md create mode 100644 en/application-dev/notification/progress-bar-notification.md create mode 100644 en/application-dev/notification/text-notification.md diff --git a/en/application-dev/notification/Readme-EN.md b/en/application-dev/notification/Readme-EN.md index dccfc8dbc4..bf85581053 100644 --- a/en/application-dev/notification/Readme-EN.md +++ b/en/application-dev/notification/Readme-EN.md @@ -1,9 +1,10 @@ -# Common Event and Notification +# Notification + +- [Notification Overview](notification-overview.md) +- [Notification Subscription (Open Only to System Applications)](notification-subscription.md) +- [Enabling Notification](notification-enable.md) +- Publishing a Notification + - [Publishing a Basic Notification](text-notification.md) + - [Publishing a Progress Notification](progress-bar-notification.md) + - [Adding a WantAgent Object to a Notification](notification-with-wantagent.md) -- [Common Event and Notification Overview](notification-brief.md) -- [Common Event Development](common-event.md) -- [Notification Development](notification-guidelines.md) -- Agent-Powered Scheduled Reminder - - [Agent-Powered Scheduled Reminder Overview](background-agent-scheduled-reminder-overview.md) - - [Agent-Powered Scheduled Reminder Development](background-agent-scheduled-reminder-guide.md) -- [Debugging Assistant Usage](assistant-guidelines.md) diff --git a/en/application-dev/notification/assistant-guidelines.md b/en/application-dev/notification/assistant-guidelines.md deleted file mode 100644 index 5d83cf443c..0000000000 --- a/en/application-dev/notification/assistant-guidelines.md +++ /dev/null @@ -1,134 +0,0 @@ -# Debugging Assistant Usage - -The common event and notification module provides debugging tools to facilitate your application development. With these tools, you can view common event and notification information, publish common events, and more. These tools have been integrated with the system. You can run related commands directly in the shell. - -## cem Debugging Assistant - -### publish - -* Function - - Publishes a common event. - -* Usage - - `cem publish []` - - The table below describes the available options. - - | Option | Description | - | ------------ | ------------------------------------------ | - | -e/--event | Indicates the name of the common event to publish. Mandatory. | - | -s/--sticky | Indicates that the common event to publish is sticky. Optional. By default, non-sticky events are published. | - | -o/--ordered | Indicates that the common event to publish is ordered. Optional. By default, non-ordered events are published. | - | -c/--code | Indicates the result code of the common event. Optional. | - | -d/--data | Indicates the data carried in the common event. Optional. | - | -h/--help | Indicates the help Information | - -* Example - - `cem publish --event "testevent"` - - Publish a common event named **testevent**. - - ![cem-publish-event](figures/cem-publish-event.png) - - - - `cem publish -e "testevent" -s -o -c 100 -d "this is data" ` - - Publish a sticky, ordered common event named **testevent**. The result code of the event is **100** and the data carried is **this is data**. - - ![cem-publish-all](figures/cem-publish-all.png) - -### dump - -* Function - - Displays information about common events. - -* Usage - - `cem dump []` - - The table below describes the available options. - - | Option | Description | - | ---------- | -------------------------------------------- | - | -a/--all | Displays information about all common events that have been sent since system startup. | - | -e/--event | Displays information about a specific event. | - | -h/--help | Displays the help information. | - -* Example - -​ `cem dump -e "testevent"` - -​ Display information about the common event testevent. - -​ ![cem-dump-e](figures/cem-dump-e.png) - -### help - -* Function - - Displays the help information. - -* Usage - - `cem help` - -* Example - - ![cem-help](figures/cem-help.png) - - - -## anm Debugging Assistant - -### dump - -* Function - - Displays information about notifications. - -* Usage - - `anm dump []` - - The table below describes the available options. - - | Option | Description | - | ---------------- | ---------------------------------------- | - | -A/--active | Displays information about all active notifications. | - | -R/--recent | Displays information about the recent notifications. | - | -D/--distributed | Displays information about distributed notifications from other devices. | - | --setRecentCount | Indicates the number of the cached recent notifications to be displayed. Optional. | - | -h/--help | Displays the help information. | - -* Example - - `anm dump -A` - - Display information about all active notifications. - - ![anm-dump-A](figures/anm-dump-A.png) - - - - `anm dump --setRecentCount 10` - - Set the number of the cached recent notifications to be displayed to **10**. - -### help - -* Function - - Displays the help information. - -* Usage - - `anm help` - -* Example - - ![anm-help](figures/anm-help.png) diff --git a/en/application-dev/notification/common-event.md b/en/application-dev/notification/common-event.md deleted file mode 100644 index dfb611ea57..0000000000 --- a/en/application-dev/notification/common-event.md +++ /dev/null @@ -1,172 +0,0 @@ -# Common Event Development -## Introduction -OpenHarmony provides a Common Event Service (CES) for applications to subscribe to, publish, and unsubscribe from common events. - -Common events are classified into system common events and custom common events. - -+ System common events: The system sends an event based on system policies to the apps that have subscribed to this event when it occurs. This type of event is typically system events published by key system services, such as HAP installation, update, and uninstallation. - -+ Custom common event: customized by applications to implement cross-application event communication. - -Each application can subscribe to common events as required. After your application subscribes to a common event, the system sends it to your application every time the event is published. Such an event may be published by the system, other applications, or your own application. - -## Common Event Subscription Development - -### When to Use -You can create a subscriber object to subscribe to a common event to obtain the parameters passed in the event. Certain system common events require specific permissions to subscribe to. For details, see [Required Permissions](../reference/apis/js-apis-commonEvent.md#support). - -### Available APIs -| API | Description| -| ---------------------------------------------------------------------------------------------- | ----------- | -| createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback) | Creates a subscriber. This API uses a callback to return the result.| -| createSubscriber(subscribeInfo: CommonEventSubscribeInfo) | Creates a subscriber. This API uses a promise to return the result. | -| subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback) | Subscribes to common events.| - -### How to Develop -1. Import the **commonEvent** module. - -```js -import commonEvent from '@ohos.commonEvent'; -``` - -2. Create a **subscribeInfo** object. For details about the data types and parameters of the object, see [CommonEventSubscribeInfo](../reference/apis/js-apis-commonEvent.md#commoneventsubscribeinfo). - -```js -// Used to save the created subscriber object for subsequent subscription and unsubscription. -private subscriber = null - -// Subscriber information -var subscribeInfo = { - events: ["event"], -} -``` - -3. Create a subscriber object and save the returned object for subsequent operations such as subscription and unsubscription. - -```js -// Callback for subscriber creation. -commonEvent.createSubscriber(subscribeInfo, (err, subscriber) => { - if (err.code) { - console.error("[CommonEvent]CreateSubscriberCallBack err=" + JSON.stringify(err)) - } else { - console.log("[CommonEvent]CreateSubscriber") - this.subscriber = subscriber - this.result = "Create subscriber succeed" - } -}) -``` - -4. Create a subscription callback, which is triggered when an event is received. The data returned by the subscription callback contains information such as the common event name and data carried by the publisher. For details about the data types and parameters of the common event data, see [CommonEventData](../reference/apis/js-apis-commonEvent.md#commoneventdata). - -```js -// Callback for common event subscription. -if (this.subscriber != null) { - commonEvent.subscribe(this.subscriber, (err, data) => { - if (err.code) { - console.error("[CommonEvent]SubscribeCallBack err=" + JSON.stringify(err)) - } else { - console.log("[CommonEvent]SubscribeCallBack data=" + JSON.stringify(data)) - this.result = "receive, event = " + data.event + ", data = " + data.data + ", code = " + data.code - } - }) - this.result = "Subscribe succeed" -} else { - prompt.showToast({ message: "Need create subscriber" }) -} -``` - -## Common Event Publishing Development - -### When to Use -You can use the **publish** APIs to publish a custom common event, which can carry data for subscribers to parse and process. - -### Available APIs -| API | Description| -| ---------------------------------- | ------ | -| publish(event: string, callback: AsyncCallback) | Publishes a common event.| -| publish(event: string, options: CommonEventPublishData, callback: AsyncCallback) | Publishes a common event with given attributes.| - -### How to Develop -#### Development for Publishing a Common Event -1. Import the **commonEvent** module. - -```js -import commonEvent from '@ohos.commonEvent'; -``` - -2. Pass in the common event name and callback, and publish the event. - -```js -// Publish a common event. -commonEvent.publish("event", (err) => { - if (err.code) { - console.error("[CommonEvent]PublishCallBack err=" + JSON.stringify(err)) - } else { - console.info("[CommonEvent]Publish1") - } -}) -``` - -#### Development for Publishing a Common Event with Given Attributes -1. Import the **commonEvent** module. - -```js -import commonEvent from '@ohos.commonEvent' -``` - -2. Define attributes of the common event to publish. For details about the data types and parameters in the data to publish, see [CommonEventPublishData](../reference/apis/js-apis-commonEvent.md#commoneventpublishdata). - -```js -// Attributes of a common event. -var options = { - code: 1, // Result code of the common event - data: "initial data";// Result data of the common event -} -``` - -3. Pass in the common event name, attributes of the common event, and callback, and publish the event. - -```js -// Publish a common event. -commonEvent.publish("event", options, (err) => { - if (err.code) { - console.error("[CommonEvent]PublishCallBack err=" + JSON.stringify(err)) - } else { - console.info("[CommonEvent]Publish2") - } -}) -``` - -## Common Event Unsubscription Development - -### When to Use -You can use the **unsubscribe** API to unsubscribe from a common event. - -### Available APIs -| API | Description| -| ---------------------------------- | ------ | -| unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback) | Unsubscribes from a common event.| - -### How to Develop -1. Import the **commonEvent** module. - -```js -import commonEvent from '@ohos.commonEvent'; -``` - -2. Subscribe to a common event by following instructions in [Common Event Subscription Development](#common-event-subscription-development). -3. Invoke the **unsubscribe** API in **CommonEvent** to unsubscribe from the common event. - -```js -if (this.subscriber != null) { - commonEvent.unsubscribe(this.subscriber, (err) => { - if (err.code) { - console.error("[CommonEvent]UnsubscribeCallBack err=" + JSON.stringify(err)) - } else { - console.log("[CommonEvent]Unsubscribe") - this.subscriber = null - this.result = "Unsubscribe succeed" - } - }) -} -``` diff --git a/en/application-dev/notification/figures/anm-dump-A.png b/en/application-dev/notification/figures/anm-dump-A.png deleted file mode 100644 index 368e6f2d810976486e786a4c8f0603a87ad48540..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528 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 diff --git a/en/application-dev/notification/figures/cem-help.png b/en/application-dev/notification/figures/cem-help.png deleted file mode 100644 index 8ca4bc0605f9c1f75a8cb45f8ab77c9c5d6f04e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2915 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 diff --git a/en/application-dev/notification/figures/cem-publish-all.png b/en/application-dev/notification/figures/cem-publish-all.png deleted file mode 100644 index 99526e1f7245d101914354e2a89d5e97d710c27f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1450 zcmV;b1y%ZqP) zOLnU;3_!^{9kM8v&H}QhzClk?;@XyE`3KxPY5~hamcKI2V_nzpeczXD+ZF(TQP2(n z{P1`_pWm;4s1yLun|=n0001b@NcvNa2{SWoA7VYf&IV({xdf< z%ZH8`R2<`f!~*SLKk$J6%uVg``RJG#k>$zRWZ!pe1~3>;9ldiMZvF0ewrvStqZJs9 zX5&d~hn4al4Wo4**sncO9hJ(UXBk=Ryhpb)v@f;k{mw0X=k`n48Y6DoCO)TmrZoT2 z9CaKufaxLMOG-bj{h*v&{Riu)iSagtww7PZKV$OF6pL?NJ`x)L)B3L_ZSGk~zZUYP^pbB` z+m{}`S*2r+DcZYI#bQJyooi`&D>dzPmIlniZ0|HupOU;weZK{g{2AI04`S-&9Dd zS9&W|W6U}3-cYn$N-oL2H=2;d5zmT838U@fWwd|6wQ22NE#-SXXk%2l=cRmd>0^Z<#T~TwQ=6P(ay;}}>eSlM zVn46^<1>=nFuk>Wv_4xCi~VZl(R!0xjZlWQY+9CGuKj6|kHvqz?VDDoR`Np`G5c!! z6{&q`S$0P*@#|77+W`Q;RXF|0U$KpA0001I&+%slP1>UxE{GM@- z??GW4bP#!7pB-9{9hB;BY2606E5w)q;16`90OR0vqjMx2}$BF%hqr|;xW%!%nIVLkb+rheM;wdfz_X{jHn{5}3v>-4$YiAkwvJoGyG z4&Y2Y)^+`kRmQL)<_;N`(&yx8?pyQM2J&Zl>FTLTi;E3Kd=93 z(pa$SU-C}1%D+^<)U_JvYsm+=3-6`uVGGvH9a(fUiI;`IP`vS^xk507*qoM6N<$ Ef}@4z%>V!Z diff --git a/en/application-dev/notification/figures/cem-publish-event.png b/en/application-dev/notification/figures/cem-publish-event.png deleted file mode 100644 index f0ca7e73093f1be72c743bd7c08467f11e2a0e05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1319 zcmV+?1=#wDP)Bj00009a7bBm000ie z000ie0hKEb8vpeh4bY)!^&fNe21iVQ^K~#90?VYi4 zc!h1^m>ZqaU~hkE07T$6#1s5l900z2HVd{AF2KSP=3(Jsywm z@9(d#uh-Ytx3{-tS**3j82DaD|j!IaW4*k$s5F3>WlY6f!}uaZle0i z-aE_KQ;S#~cQgfHF8-daKu=aD6vxXh{+W?~RVJE_KC}#>vd^3_g*z-2Dl!f_Znk11P{*D{rtZFJAv_UGex*aH3(Vrw_-|_ z=E0*lL*`fQWbEclu|(C6^XD@+t^zW0VtwNDC90Z6&VY6}m#6mcd;M&w-^S_6Qheiz z1;z5k{Nk@N=^FV(<(H_-F6n_xX}8R^UQcDq7OApZMuBZ|#<9a$wC-93_20u5PNwnV zf{yvCbXY3un96)Wry03l9;w^Nc4$Oi_xf?g=E}#@%S0G2+**$90ixa9NF+{Ehv=mx zqrZRKB4-La96+CSugL6U-dQ15Z9${iSrcwl#ZZmqUYOQ5M!}ex8vk0x#bO{32)|O` z5X@H_mf3pwEfm{bS&*jxjBJO4>9A|H)bBYPZyPz-SBNF2@}#7R`Ge;1w=wkTK{dr% zx08u5#TLoiIllFO)vkHo)I~ej%5jfIv%@I}-a8aWhO7W{(Hc4Lisdik0i+rFoHMg7 zK!%~`UI55|_X5nyzTPV?S*^7!W#LNf@uE~i)4Dga+ulX*{oZN-$ed5g zOqlvpO)h8gc$QeMvbAc@mieScbn#e{FULsVscMvr^$|r?m7BM7QJ+Q8&6ae#SG8lR zUy12ry^4A&(VYFN&z$0{C~l8(H8GTE=SKUd@*ief-$!ioDd17gTA9JVr@a7~xZNE7 zee414t68U{W}34`#zsc*-esQeX=kC=ywr=m+gCHM`sJS3-!`wD1BA%AII{6mZdrgo(cCDCo0d}RYi*ZsCU{>&6fLW2fx47XB z0H?#;3ot8qFTkwu|MvpSN;vnfJKDw=cX6~v0HA}&8DLiMUVvE%z1JO<QytFXOx%~K2VSjouGa_bLCv$0+7)ehl+z+SR=7QF%fZcJHLN$->DYgGv7joIPU zFyaA`igzbNVk+W7GG#giC1hncZk1(m7Zh1MF69;7z7<`OxooOadaw5+e+V5sDDY(^ z_)t1v+ecyhmrKjxh3DZ^z{l-V`HYFuGL!e5kiMD+x5|?_Ax(DkN#N-4KO9%8z3V@` zo(qx;Jo`OI{>w7p%P%4O{!A>z6_z5>rDRtKTk-tmWHmeU>lqKs zfaDx0hgt&Z#;+=h;H8rD-`24YlrtVaM@>AnVmX`(xpKca_(lIJsSn*=?E7SXDqy<> zO{K<66?|BiPx~ot{23{;lu)I4!$Se{FO}}`My!Vz{cpdWKYX;dQ!`kp^H}U|B!AyG z(9Qu#_8j_udt8(6PGDi8IL~}urj=#TSnusOc<5&d;j^Dl`ka*~9}snugs!uAy4-H5 zFAa){Acn3E7e)r85e)G{SUTD{5QCdjbvBLcSX-a%S^0jrIDdb>qGF|4J<|Onr!fUy zV#$%|H{X|-nJY$xK)=dE%3#N+qAZuS(b7nBNsQ;=8$RVJ`x+zmdtx4pM*gEGoM#N_ zuDwM~@q9*aD4a0jV;kj>*LWa8Sasysx7XW#(^Xb&3<7sVg3pirWW1L9{owBYz3Ig?_gD ztIlXDlM>D+1gsDrqI(gzpAT?hK;#{Q>Y+zy1QH@P!jvev|QBU7~x2HBp9>gUvvtE9^R1?e{hCWY>=m;U$Vy zpVmUQRu8-J6!s-=eU|h5+slw(u*4sy$5Qwbh;>zSf@o`_^MvvixDZBkS!LB}xN%EM|l#R5qFsByzg<7~=c@EU1jr zJ}st5DpfBF`aSB7GAVoHx{k*jQ(m!O$*<0L)J&Tpct~}luv%ko_^{ulYsfu_GcWkD zfno2*e(aeg3St7Jd-i{gYsTXy+Cr}U;8?k?3y=3fPF6!zRwq6@l{%ge|D!U*%YBXWb0eRA5CJIzr7rygGaB7e z&l(g5Lc2^ipOs%c+2}jCIEZ3%`bj+XEa}O+%`+Bm{Cq895os8vQdawTcXx@0b{sC?7 z)jeYQ?LRKLeyfd55 z*L_fCqtbmT?P>Q9gC+*Q@lO?4(mP`J&kw3X$Q<(g?M>T)TWDDk)CIgGPoMi3OJUpb z(4e?53u-P|&+C7?hu!?P-HM6kNFV|m_r3)`qE2ePq8RnnX9G1_s!8%oeF<7_S1)_G zZ;FAe2Tra*CRh$g7nep)B8L7!fGukL}mODd< zEV5tR6BBv@mV?v{#6__cn{N&`8M$@yn4O)S7f>g1QF)Oh^ic{yr!)^I+@@;np#7P` zJ6@}^EdiN|A;G3io_3isKF%1{{eD-S1YkexSC?%l--GJY`P9Zc`Uj~d@KS+ zN~1n&r$*8ku|HLfe5fUF^Dm>y^L?{Fjl{XmENi!gXm#k`6o5YtoI1ek>2Y;O^2bL#M2Gv$}`!J6Uhf_VS1G{lyY4aTv2xw20M>uzO!%moCa*=ixI5x}d58c0$mW%4 zkZgbSEoB?p%Nsqb+-?z5b3R?znU~+06>=Od_}V7>M=+qZwdZXc*PreaahIQ+d&#MU z1gypp7&OcKO4Evac5W_64tI%&()Xw{XWlS|s{AmsTe>etKAJa}e*AtZzb3yc z)2ypt9;S;l6F+2t^vU8S_QmLRs7n8i=q!ldt2Jf`Gg^1l z6deL}aM7PqrZzVwJGQK9U#^*cHo%ah%5it$fEwO1diHm_U_BZB4IcaJug99#{B}Qq z8vL|kzGPWI>;Rlc6r3kPL*+};yFL6oBdS6T6)Wmj07h83?joz6#bO^v^2k#d(87|e zBHns4t&BNVr_T#Vl40l%bs5zjJwWgK-sxl zqug;_m<-cGy-BK;jC__c9Z$v~QsP?!MMn*Pcv|I-?I7%l|5!3;*Z%hUj`v8>lN}>I zdj9|A)#CrT8u5L5`21_L1EZ|3E9U2V*PKwm;U=o|)Fa?Dd!)``$S=4rm3PNe8r!;u zJ<&8s4^^Xueoy8qEGsK}^{o1ZQVO(ibVqXk-=A;ph~QXyL2`f(5<>Qn#vf39Y5a>P zJBvN^|JWgXH}MkrM&~=i(Qt8>TN#&CyB)ROYomUDh6`0T_}C+EzFMTQ$p2_i(qq4k z-gD1d!F*;vXz_g`Z^`i|oy>72u?L5OEOn}qTG$eEC0?3k3PF{dThtO+ci#LIghU9lJ+;vt$7m>O+xy-x_-Ey_oiE-B0YNWcM3>K>?)!bp2PH&qh&Q8SOYZ3# zt)M$^w$k{YcJIw3Z0?2qh;QLeBuvyDO3D-clb#mz(p{m&El>91qeX`0hngO&Wa;nG z4SU7y{k)Pd>vL@(7A2l_sN$Gm0Jpw6<7vKBCki?{jBn6?nJMLAEoa4)W6c%8M?CO^ z-=s47*O-`?(`d<8N6-cwM8c!={+PA~`h&at zBmDtMv1)wG3h3Rx{NQAU0=#jyRJEg9d&>hZyY)=U^BNP>dh$;Evm~_e&AIjf{1B2t zK4VbvUV+jxKE>c?v_nLJfJDd3FddDPKJf{+hbx5>bp3Gs>!hsF;FZ;$Br{*8(>m~R zR_t(^tk543a&;N0$u1#WYA$#nfSl|E8n*oo1Q3uKxiID4ueWjjeDMhCy>U40FUf6b3#7i*dV6a$dgIJm8j*- z!7W0zK=({>7ZZ#bB)9ABb-abOq9?Hn2&0E4ew+}4e~kajkK_L&Tqh}Kk6MptA41l( zzD!!j;)vcyP3?~;f5czYkps|bH*0@9#O(eMq;PAy@SSY*u)&x>{JV5?aQrgMA&*gE zHz_f~e{Y%g|KOJg|GsTU;ci8?TdVZ>$xui_KtS@Y;7c=w(~-m|uR&>^^LawW=!{ZN zVZdQ`4&MAtQbUOj$x&MdY>DF~j=#g6%{i6lqFT@XF&+MPYeUr=_yef=>eyL-G@TPM zGxNvfoA9Q3GGFBX1g48WbJi16Lln-jXefYln3^8eST8~G9uxDIwB!oM^X|tO7z~eG zssJ#@dK`0wQ${74hiN)CYpG0x5V`7<}xwWfGW@V9U~PAI9gYEuyV48L0q2spdk$=?(Vb^h_=;|2OQhSuG*s)(0grpnwC zPr+_-*{Ofka_|#-x={rK#Z$6%wmY7QJo3NY0mv{$h3!;tGUVz4{j}|L zqWX{TZ`yxc5Hi5&V{nKPt9!Mt>%)#OA8<%2`>)aFc{OkMdUyfKvzHwfL9HXj&g?U; zFPtg1EEsa4X$o*i&R5JL_mX9#Z*<}whQmpl#7T$cr3|Zt zpa3E!x8@zyO<9%URU%#a10&bnuX}^Civj;}^rcio>#lbS%3^g81FvV8r165bi!C<{ zSY~3$8Fv*qU7yHcnLpoNCt}Lw&$q8G-TV%x9MCz^UMRoIKk!e^jBNdcHoL^%@~$kc2lqMsna=zB7~^U ze&Cj2nHF)tzb1#xa<3VWp2)AAVwySoz{QE)-4R=M-tj5gA%J;f_(a;f>ZQW-$ZTxq-9XhW4|Sl+=Knyj%|B>FI3m^Jd8`AZlCKR@_%4ZGzQBAWyL;;WH9 z&JIqe5f=W&Q|{B%<@Qy=ML-@{iQ!_kME8YvJl%amTMcupum(|05wCT<>(h1_&o`?$ z5GuIZ&G;dS#$t6?D`f%|Nn$erv+?v`AtWs|+*?t+I+^^%^IgFtc^YUc2Hy&ZUH;89 zc?7d0WL)Ad)CM{ltdk2NO@x z)AcTBwo5F`FVDu z?gQeiaU)QxA2jdw@q4fjyJxwhNBW5Q&m+c?jpuyu;jWYHtJSt2gyub_+EbJ%Lf;vF z(mi@2V-@)P@YFl+?c=-mm_6WhC@K07mRYR9d4M&n-hP4yv6ekk$4BaK9X6 zhUFXH=JVYjHAwWS z$@REMnH~~5#r$HMcySn zzdUNAz?Bg6cJR?R?1t5qOjHyo<@~G>bpc2JphNOUaccBDtCXaVe7L{qL3kCkC(;aT z4w9Y|z3f_%)?Oioh}G{j7}P9?-ITiVXMN&>&COUWdhYnUZm`JZg#ak`ZlJiy->MRT zJg}Kh>Wf(K1uyAXgO4%TPHNrGTST;^r>(=AXywQ#Bq1%+r}8x(Ut(TYGeY@o-p+hJ64)~=qluR%A7{v7DFZRbUO)Gh^ z#$ z9>-*t35JmUe2A@R0&dcm~Crz=AF}I2>{+S;__*jWZ`Bw)%oAojZc#`zMGRZIH%-QoD5ON zN+=;Kk!HHUJMHKQR@FCDffYm}YWL&Gi)(k^=?2~-FrZUyA9)&$yrsD=kf%&=Bsg)E zgjLBeJ&igvY$;mktPWPK-)Z%4lZ$F|`1SmC{MhZ`#CJ!!1)3cR?>htjirqxeph^aN z+d0x0Cc+SgMbRQKcIxAB21 z6|dW&cbUj*%kg2GPKcU2WxABc1>R=OdMp|fTsLlq5MIAewp|X{j-=uQgDx~=C8@U`` z=`|sKX5|tq_B%bMy>A?5pvZ}$?6@Dv^H0-@A;fDaPkw_A`P9GxI-hi>gCLx1E7S}A zyq!1TQcQdX;4=&;CLWu`UH~D$(B!h9z^yy(I}}+_8$UprTX3K2?LZ&jrM=7T%ZX2Q zjd*FFB6+v3ons>0JwrM^d5QzHea&EhJ*O#H4NBAIe}Z4sS(dOqxtU1oZEQ~!kh7%N}4 z_a&8wfOUyrf*z#_&ySo(Y2@t1y@6yPCT;m8b86YuX+aMV@wP2Z5e||g5_D2`zr&qF zrX;ugH$^ugWsd9oGc#?mM)&Le%d_poy~o1H_uIm`jcb2rfI0S+TacFmNFy47FUOSU z3uMqG!TW~ul=%HeV%fNEh>9O$E?OgZ!!)b>-PNcZH$DrZj(t-py~=E>xCodGeUD56D$Tnp zE-v5G8KE8`E??C&x!qol9XX{ktG3`BAu{Isqj+u_rD_x201jXPJ&4n8E6?>cliKN| zCTY-^=mN^g<7YuQ3{Bs5{3Pdhl=DD2=)O`m!Xy*Se3D|CBafe?q?U{pCu_7dx&>{R z@3_;UVH6ZStO1n+ZAclQQq!C+xK|HYU93O#*iK$#tVy;rF;$J*Umf9Kl~gzADH`q?CM>oYW)h-WH=4KpNwX-((pXlV|Zk663?cnFavla4tmFG z_c62SAnAZ+&9e8`{qaV~Swl$d-lF^C9RSWHeHF@Fbzrt?k?Ko5Nmn5!Kdic!{{m_* zdYGSrjEt}5!$dC)C*FWb-b76J~` zDT#hhIfucVN#U$fDN)+|H|q%DV|Aq5KEft~6INQlXolnlALZuWictO_&Z|yz5q~-T z*}Y%5XY#2U@&zg93kb|O3Hff$H0>tgPRSmJ8ja%FW}OWphg-n7>Zdp1XA-Cnlm;mE z{5C0~FerFyZn`m@uH4RJsqN;yg+SK+jSi}A<0;4Pd3QYKzVMSo$K=0vQ?wpuNCa!q zog6PF_9(FS$B>x_@1qw|*#|&Bc_G)!2NNhTXtxOl&9yt+RHRs<<25>pY==PykC6QH z`cozQ!5l_=;QFj|F1-FWq;N*_Dv56{{mKF`#&x0p2*XZd2y=qs<+1y?z8dW(R%iAO8vsTGx(TKpZ_aQ^F&yf;THWRRkYK$o%3 z1U$}R;X<05+L-Osg#{oH;bWoxtO9h+Nbqh-e&??R;RsHd+N+JWOBd2d_`GQpbq}r< z6)$aE2d!URhk2h2!xW4fjgjPFJ-cx94S)>YNMLkz#+zG{xGVu@K^zu815_^SiO6t> zXCp-z3H4(U=wB5Id84B%8=GFLjb{~??jdv!$IjDEU8wS;;)qmoDdhKuu}O)6oC<<- zWbjs^F1aH>#&2&|C8&wJEp)!aAsdp5vm=V~{NOj|7a9}Y?Zve((5hZ^7s^s`_BLz5a`Q^meDd?*=pHcZ-mm9yOeNbMc9 zZLa>mnpXvYLw|CQm$^NViDN&m-PYE6H+X3k;6kO&wrt=!C4Re7C&qW(@;TXE@>uNK zscp1OvjHS}=l%h6O{E}gabJAL#0E$aw6j?e_Dh3Mm%W;Xt}r5P6%#JLS~!2z4*PbT7HSO+o% zWVb#WHYXZ=tOUO2GwH0X^K7gp%#_Jmwiw&-b$2Kj|gqasT_vD%EHk7Kzm#ef-NE>R=4 z8twK9L^W!Vd-LHG-B*iH7z-U9PlxEil(07v{tTnv_2Tm&j{2_nLph0p0yDS6$+(zQ zmtCPAk-vpa#VIWSN1&BWzXCKRP9-UJgdWx^8DSWOu<{xZuSpRe&%$CueV{-RL&rV4YK{J3wco?y;bUG=^ZB*8wfc!|O!hJn;NT8~xFqgN3XTxchLiCY2Ti7wXT{PAly5#8EkWJS0}&ocIbhFwSkj*|3^yh3 z${sl(Ph#UMCkoRGYgOCGZ}2cFD{FmWqoBRZ=M`65+(wvdh9ICaavUr=K`NZHO*R_n z7krPql85one~p;RU|b)3{dUD8{CDv2Iq`?UK_F1aT#>+OPhO5VW!XPGeKxY$?;|EG zgZBlA^D$t^8~heXdGB=F8!{%ft`^VMZU?SD)})P&jDKK!ZP^RDm_v7HIwf1mM#S%i z*4ZdY^70laUq?AWu9eoRT(c`-x#Fi&=DFhF<|=8588MD9xYT8q2%CRw2YZ3u+YMRr zy=<^hn|pAYg7ve1zMQ(<4s;9_tEXGxS2sgp!+n98`@aiMlJ(G62^th>vSmE#Z4ZzE zh<8(2)y8C-=;D~}Un%i-`JWEfg>r6|L{ceKMj#HWt;=d3<+G_03U{zDIg;C8f!12^ z{nq+J{WB{l^@y#HWpgJGqdPM*i5#nAZoSfe ze0W#XNViQ}Y{24GzYgJqaVud2tG)Fr=k*&13jo{9@bAD)9QmM6a`@z39h>r;DVcOt zbA@1W0R>yJ#t_YHGV?tKV}f8eql=1T$|&M8d?P+T{OPhXq4zTIP&MOs@>(*2Ui(`h zHPJn+GDbT#XXx=l-TUa@9~KRMpKHt5LP+wp&ggGA7nh48%~$_ zZx>uj_0RtJe6;@qb2q9V)t@7u%tyh&4NwUqw@wZN4w?%A-+mJDjE@K4s5^Vr7M|a^ zJpR)59AYX4n18{bed*sz`?}_@pYEUcgq*A8yazHzRh%07==BHBo$T_ME(|dPfp#0q zA-VKJYGW4e0kf!^;p|9wW(rRo$-poE+h&Mu- zGKB1QFRl}Ym-?IW(Sy^|?F9;X2~Mz3@ZUA&A)s}~J}pan(f#VbWiusJDW}ny^oVXU zYRTjd<91dx)xgDax~!K?qVmT+cjd??BgcU2!kFDKT6RXK)LV1O^g{a{v$Rk-f$oNgq&>eADzu{;C^mTV@luPeuE$7+EQ4g2_I z8tJZ!Sd<>CMc%+faX;u=#Al5{if-&;U~HC+uo6#e9sugY2Hk-4A;lpBOT($i%;^u) zvcb*_=MWLi=)sx8>^zg^wta6BG6$hNlPRg=!kHprDy?z=qt{Hu_}5invEMd9mg;!C zT!EIq?p*a{mDPQ!gp-JR!ca_ z7?;>|)$72dF5v`sITO0#syu+882pao|A7t)oo^3?V&^+{8txn422Z=rEk!Nc!(kPQ zu9zVZ*kQuSlYTRKLm`)YHQ#}VYB_kuUO)1os`XADPTL$e)QtppU&L1x;4l~(kQ{nK z+Q4Pe{CCB?h*iBQNH)y}8Kf9^B{KHG4f*wo$WP|Y#AjO|gU9l~^A|ru?%m-wV<8`=2 zxvQ`>0i|0WM7?cdavUpP$_3h za%G-0t#&x;pa>RfzPi{>TnbL#f8&%W-SSZTm7HKzHvCqF+zz~%4XKSwV$L*T;SqNe zSX2%1SQHt5YDyWds1gQo&ssFPLpRG+^BG%3oes3`>yXT;oqj5fEPIY3pL_bS{LD6E z;jBFJcS$qY!DH-3!<_BPSoI4!BCdUxYy79K#^rwBH8NsDG%P;3u`}#2C{u^RTAWbi zyfqD6|uwj<-Gl?YjAV6$UNsoXL?kx@{|g zEulo)L9!YAO70=h-0acZLUa;RM$aoIOD@U87>AA8qljEBMrXyK%Q!#FRi;2B6;A5- z@NOsNtI50K5!{Wy#}O8IR?GP>OSI!&z@c|@Szo8uo>?CSGCZ*1I8Q&agg1Tu2kPn) z04fSl(F4yF)Sab)@)L0ljnXYX7W;NLmm4via`-j&sI^YhhR8rpl4Fp;Hw32%COJlw z7OKFy7jIA1NL#I>H05C>;NfnkeZBV!tJ2@9O@7kMY2C~e?jVt+Jn`{&! zV#mh!Rrd(I3WPR;uP%;`)W?mZ_;ldEqNZY;21~vt+v})4q4JbkUFK0dft-!1bG?{P zLgIt$skBrX1Bp^}u)I^I5L54XlMLCnhI@L9L>1na4u#)imJL)_b`(ph$T6_NHGEU< z0l9@}j$4VTMtnflyroa}!UlrHyp1Pqawvv4n2^^gsX36>cT@+Qo>c@gkg5Cpd);>S z+yW<;`l-{L+EBT#=67AivCp%TKXFzB3J)u~lkwhQl%g&Z&FM+Wh+Uk7jSgE>v*_Qv z$aub>$kij25VizUZQ4+0%G@$zGb4|RpC$fjj=_IZ6MDVH=77$>;MgoicD;PciNf_u z@^nV1T9Zm+;i(eLO4Yok2AWF3lvXA~@>Ddq4^UlKxlRHm^FdKmT$zw+Y^ij_D5}#7 zK`ijVq6f7#&CIbks@^g#mIg}x=}gG03%3skysp-85Q-+qy!Lp-6mD$5u#kEwZxrOH0S(u>8HU6op}i|J zRCW?wTl}LoW6WRYgSHCCj+8b@Mpp1!ca<@kG*P6ZKwyJ`aePy5#W~T^n)x=ltm8A*pVGcDUPS`i zP={>+;VR;llemfk;fC9Dbz*hG<@m~wCC~~d3S~N!Q^-h|+zz{^?$;zi|K85^!6ipw zE;w1F5cGh-aYN#NBp*!uSd%-lvC*ZChtNNh8cLS9bYhRF z1w{E$Pypea%BKnrmi!OaLUQT&0ug;`1)8uUbxZ>JtN;R}`qYQ=E&0#jQ+v&7@MDIP z^aR-_hA(af2>42*^W_5^A5Ufm|C323eBmi|_kPOf5$`7{Hzt@>zm}*74fAGP(!>Qy zgBpqkMzIQ7ho359RJg~KNZlxkNR9V?>HEj+cY8||l)DOHk-rVGkkInh;cyzM_hhob z=pmEk#g-HpT1`SRZ%!vD%?#c`A;$bVV>{y&?jDMei6H>bR96=NBQn6ptkES;V~MgX zk9@0=Vmy7nM#(O`+x8W`r608NUmTOA{*ZGaJ7_!uki<)>@*mK4fG<4ovZZ2*5 zBqMPb9~n%&k1kAkK&Vqvlpcm$-;0f)&Yg9Giw12%7FdCDgW>le z$<&W4R7zUu_6v_e44ma3$lXjHMez;(CtOQmBHa6U%On0nD#S4mteF?-{TsAt96*cF zO6CL*n_Oua%1KM8Rq`%|yx03a&LL-21p?FQ(KZ_luYq>Jnlx+qBt}+L6Umll5_^G* zw#twe!kV;k;~;}_d;OC=QOi8=293zVjedF+m|Y?vmpFytO`)_$*2ns+;KpDW3@)37 zf*yik@jY_+tC7TDn(U%!K9<{W3(&R^z9#ALLl7~5;lkf6Nw@~XD%p=Y>nnb6)dccZ z<50(0YkWGdB_ZWl6-IZtd&?6}1AXZ&h9)y{$3;_dt&fuL^gK>_Y8B+uxK@_EphKAQ z*x(PeJampdMN-2bIS@O%$d06^_X2=EXo zK?;@8rUdM$#Rrp*F&CkkXjs#0GnvCfuyyN12?N7P^dY5wp~3q>$bo*Yk9 z1=HfJFjM)ZBd2^RW7#thYd38wTjUF6-+WN-yEQGly>hy#q)@DM#1@of0Kh$Ru3Zs2B z<$cZa24%|YV34?pP0Pg@(HKI-W2Hvmk}tMjOGx21W^ynynG&)Z{MC9`UybVn-;Y5! zV;c>ih|w>ntSb92cwRe85yc3v>fsElVCi$T;<*ZQVQGTOBxbK1;t3S?0oGBilqFn@ z7Njgu`f4o3jV3IZxy!A&h3zQD!M1~sZe84ePn!>ZntMcf!{ZPH!qEGK0W2Wbf{Ui- z=xQSAz^v1=Vd><;>NuqJXF3*c-g0WkQG%2`qwAB=qoK8h$RWYtomi>q*j8CwU~dwj zagv4#4!y!cvqx9_hvzs;Q-y~GDs7>@qs&INY;zB55WlE*kD0+_EAfhULN7P~KjR%W zPxlo>WuVt6z;XQ^rH6+4Qb>PjFk8T84MS98FpS0bzML}B!USw~Q;Y~{dgTCyvtrY| zT94+bN2YYvCEiNzYs+wzfi@5>>ika9#HMEa+6dBP26Ahzmjx6PAUj73K<@L#QmCs~ zxpp>PVzln0^kSUot%eHuk@FuNJ|~+_Ulsy2N0@!V;&!u8@yQvzAs}aF$WCGOpMop+ z8K_~i5#&#J)K70{<;h9sfThMT%^j;gpH!0A><3dw3C*BSm7{PX+$%7hf_jiWoT^+J zP5y)Vb*x4bv^=naVVDQjDyI#-r2qHBX57Q^kSnKl@6pQNpLfSa;yZ`Hv>Ait)(!m3o~ zlh|vIy9NnaPpEG#y-uUJQoNz%rA&HM(>PPJTF}1@`+hS~{&3Q-x#{Qp-F7jiG5nxu zr}C~j9*!2rpPY|tQj}>We_Yk`g@&rJgr#luXNlTOL@6-uPZhS2@eh3#Dfy~WU1$ZA z%ggJV?}FDft#08mHk*&WABcH{&ZGSkVlK0W0=X@D5W#@5k>gB;^A=&5zmk#YwFkg7d*GYAQw1ac!Bn9x zIln%<`BB?@pv@{K&|xOcarSMHTBc?Mc}fHigv@65kutINJ8EvNXbw*4^ygmiyV=TK zA_Eq23)Uq|x+vS23X!$+yST(;-8oed%yp?5U%6* z+O6i%kXpE$lJ*(BmCZMT%cE=6hy~?(k3wo5SM3(~$1G-2xgx%>fK-{bgrLE*d10|C z_xn_8PW6h*V}(}(@7YxrYBpIxa0z&LlATBjZKF7(rkQyfwDTvZ4U8&7AoIu!Ecs9= z4|bMm#;g_6Rh+6aO=kFWOvw}Eu|4|U@QF00b>hP5Z6SzvC_kmWcZdj%Dvm8B5l@fx;_${bsXBJVjLB;tA? zU8yN-X_Fsx_)cZ&$GXY=jU+mbaJw4cET!t12_%PUJs6ddn z-mQZRk=YpYL{h*DDhfotCePiw0Ap6M_Ke7J#y9s zHV-LB1uoh6-#D4PD!gWWqYm!|)san?29E~3W>s?7Xj19WSE4#9cUJ`a7w<|oxT+=K zC?NwkKDW|u?Q4JIR-34dLPLEB#T*5)Zhs5-P2E<&Z)s@&q2w%4(@JH>Tbaz$PEEm@=-L0({?8yPjR$h*7RdiZSQPn7Cm&U_p# z(=kYc^$@iQ7!{m3C-ql>=a1J#AGMtfgu#A@^Oum)IN1)lI%`}}oy26C@HX3ikkC@? z9`*w6JsSlz$+Sn!S4O|x$T??ZIG7_1HoOeC*Ihjc%gW)}0n`41eu9L;m8zCQ zGu-6d!gZzWF$cA@f%X)u2uiT0$J5HfU%b6OU~#^EeBtSs@kNZ^P~Up~x}lD{-ZN#2 zjc9tSK;c&Mp@FmNEX|i7F7QDZaW^+13+e+#Om`}l$i!_%q?4*uMCp!-MZK&i5w8gH z&WnlHtI^~n;e-?kS5+WA$}w2fznw)sV9^sa9d?~)pUt|2TUK3iF3?LZm2^%J-sG42 z8IP+zDpc*GGEAkc+<{;o3e;~5D(=gWxk&j$_KT(FhpfXY(gEfGLio#t zN%wU3y{fEbk1AZj=SY}9Gs`lY-H6H!6vle%M6kfCox&C*wd*sSc!@Y8sAM?yWXr9` zrsrfaF}Zx?68-)O16`;$(XA?hb3|%#Z5uS=!0orU2|vWeb3IBWz{IUoPEMarGMNYv zGuQAN` zATq)`G*I&HyBCx*;{WrY7SQr=S)XJqzgYvYI%4s-S zS~JK}(~GRHC#kW%;}BzX9+Y`2q`c~+*#%4ZVHALa{Aa`lPs*}lTU9D;R)3`|Qzh4K zu76S$W+SM(X9Zwo4Pz|kFBxcj)S|H1`P77d=0{>6%%9tXb0~Fy+vpB*N0B&DIq`a? zLg1!=a8B;JuK7-m)#+%4wfKpe;;H`e539@D*)!55WQ1IoAe?8`SpNAPEvtC+)O+cD zJnDEdFwBk{6#UmxicS7FEo7T2E$Vn`-S}1X{%ckfKcl#V8zdZ+tIhrW8|R5x-(sEk zq*C#z8AUpCma9ri(_Z}36s4bIM=CIvg;724Cm1-2-DVuH`UqB}6_g~w<^C-B0ACB~ znj-7kcJIb$S5Z1HJFv(l>f+J%0?U7EhICc{#GQQQxebtNnid&1aNd7QZz0VWV0T6lEP*4Szh z+C@ciPo>>f8A5Ch>x6VOI&^w^T2HQlu%|QmPr^#IC{o7TAB4q%tUzKC3fgQ9aoqOx zi{Ri@B4**9#Re9K^-+iw?!r z<$@E9;AS-KU}V2aASnx-VXWI_;A2&A8Hh*Od;WY7_qoW5;sRIi`k!E(_$|XZYU_qm zyM_D{P6)ZRKO1_j*v#v*^!4LnzBbgf)G?)nE4>mnEkKC#*?Uo)Bnw1%8?Ija%E9mL z#p%}1JF0hC<==D$OBy{Vk`*geJY6lWK?@hcwhc!|eMqX5u2`0@TienXH?9h3Q_~lB z`;jT@@}km^;h}0HI7^#{#x`{V%*~;}6qikYF6Xx*u)BJOFsZv@#e(;#n0#db1Tl+k zS88MWDb1V^=HI$H+k|Zr-pe9tN$Ajl!#Dfg z8W~BvM2%2B!ony%(hE1D>v1>iUf|1`Mc~0ZR{dt~RQC9hAvOAc_E!$$-))Wceg)Y5 zxBrI6KWI$NkL9JgaBG*0cCt&4UxErgIi{<~l3fFKIQ5SfExOF*DTtycorL4(4`Xp% zq<#JFeL-7w9N;0)5L2Rh%+Ni^tWfDC_4sDT+ilG|);gk3U9t;^?;wKOl&aAdx-m<0K0%)WDnaZ}iGonRe`jPsJvsZ}KKZ zVj39~rvGgJSK-%`V>~cAzZE*KV)*krPd;<@Bm(O`3CC$8zEa#YJ3%fkZA_;}!>Ou~ z*)fvn$?e9)gyU1Oy83$Fj|w0Hq{Ey(bpPoM3QTN_VL)^GWnySKbo}3%Z-cOFQ@E3 z{WQu&EDM>%n&Wl-_-3?fB4Gn!~X0s(|@5EeH*bqRG*Lk=#3bhfd(TI zr`HGuLKZD=?-{zgGI3vDRLgwXT{P1ddPO8#X*7wqFnn9W29XJ_H~xUUBkCQ=NrFDc zf2WJyCPeuLaYyK|GF$#nlfa5q${Zs32qvTuSlEsfClm9ASI?h=yRT+k>cfAL%s}-+ zCbRFh7rsaPL=-`6g;>t3T59N0yCoIjv@A}|`voFK48F;((S<{UI9fLOX<*okPx&2G z&7g^tLFg{d0j-hFb0)obaS8JD3jcbAD_KYnUOiaGU;o|UmZOzsLp=KT0H+|a;-~rC zgGLt2n)Qo6o`Z0!l;q#8Q>Gp@a5p@wL5)GGkF*^zlcrktdz0dvx;55ax~>1Bj@qs+ z+(#ii(z+3MY$MfJ;t!}M7{b2eQgWu(zXFB8=6ylT!0VXOj}`lRk?gkmm=oZ$F;aX( zCrxFIzegI5&h$y{kqX}=Dz=!~DH#(p=2VT=SL*weVQfZ_r!x-}4l>-_?S=bfF)jx- zyH~sb>$9X{Ni`IutK*^eb?r8=0jQi1Uf^iCphx4xAUntN(`&O*U#ZYc#nEZ&YwWKV z`!s2s@E@l1qvKsQO_@n~;VB{uvD@xmmf?NUp|G-AT*Qj%ze~7_NPa)X=u8Ov zm)WplOd)W>_-U8T^LX$d4?NtYfn|z?i|~`4Zeqi2b^EG|yTJpb6LI?ng`vyv`C|r5 zqXnsW`E3<-_SDY@1%=-C%ZfU8+Wg35bgq^q+upIfCw?MO$?vat;14Vgn-qpZ*t1PU zt>Fli<;QB}RGmZ5k*swm(XWQB&h``=fG=HpQ(v_0#JhElnDz_7Z9|Nl3_7?p)4@w` zJ)QF%gfP&;V?f|qT0&7jtIS4}ki>5F2uH$T!436UvF(q$R)H%Pr|ne91a95nWR7Yb zjq%;64Eicj;wPKx22SOCxa?o&5s+b|{h3oJZ^u-aj#&H}cT<1hF#nxbmDa+0iQ_as4X`?FYvO9wJc z`TWOxDT`|}#cCL~!xfYwxP4`awfG+3>E65-try1SE;i0O^B&jyFo2v9fvE*2*Y1TE z1?TfAuF=q5X%%V4w5~uo=7;x$H!GSz9K)!x$8mY#Z6R}O=r$im2@$Q)|5n|ZM??L; zf4?GIglyR(`z~W2qf&%WjIAu$mk1#=h8D{wLiUK6?8cI8Q5YeF7;DyyCHo%6&i#6K zfB*TN`;Yr`&V8TXIlq58r;TCWuIu%BUeD*_YM^G3D5g`RCfW$y{QWf#mXo7F>ZVSa zl?dzTvwVg~7%M>_bEs~^8f5w0KJl0I%B&+V1qr;q@?K4mTP|1mV&YZ#@VZx^n5#XB z=m<-98wlg&?KE57UT1kf+~Ftzo$Lpm1zowltO%$uW&t)g#EjWek6cK$0w%qwG>S)F zyT@`>>`Vd|vYlsBfe_<1%c11?fGa}3Igf97zIRxqlcy79vT)H~jDhpCN`u#yRch+) z2CVY54gHH()$_aH79})QP{J(8uu;yDo@A-Ic%ehCu<;pctj8h;42% z)p=EoaJ$s_YJ>YKw0-sAJ@-O*Qj7DuZ4=tSK zpHJ3d;RFBx%0-X-;}Y{Izqe_etUT%plSo#f$UDc5jA4eRF-Dl3Y+76_t&gETt*R>> zn8DL68SP748Hw1I)U((M$o`@~kx?!;`SMghN0Dv-U20E$+2)bsP@s_|^X{+pA*eM| z@Qh=1S~YZ$mlU|TDx#k_MVDLwVvACfu=-cqt$8O3hckv8`WQOZs zm@n7JbHpUao&jBh8Cdl0<=8CK8aZj}S#k|7LaD9{G9)^6G`Z}eae5Lgc0+|$#D-F_ z^UqjsgLna!1w*63#EN#Cw`i@H_VKYJygc9bqqj}K)JMh*Y3+A|BTOcJH&2+KsrFOh2 z%8v2{wd=)n=PUmWLwrw`J?&Gt-3+5N@H zx%-`iZ2u8x>Rx*HG_9@Fd3@^G`yUatAZ-OC_S%358ph4#?mdt{HHgj``sOI1?aE%T z^25F5YYf23d^`2$&*VK5m99lxT5vu@7FP(-@^88@rM&g zu~4A4<;oU8R41C{y}-d`J5Z?z3v*4e0m`@11#m0*yJWZK??z^uVp za(Oqw^`i0sDpxSzZ?sVpw*pb0Ma$5OiaPa+ z*+~*jqF`9N94D+Ve%I226FgDxOFE%Lt7?brpuYF4rO2Ze+g*Xp6^6I-#HN+QtDw;v z89L{xpAk3BZE~`iDsN%U)qU`Vtg8=Ko-_ZtEjB0M5E?uWdk+o@p;5z-AJzP3PsO%Gsh5aM-xZ#uaL`jNMY;( zmvJ=7!K?D_Ho28~H;YGX<&SL15U8L1n0LMzwX_vi)F7@gZ$P z#F_-U69WRFn)LZpR^jQV3bbo^g_P{S@f*qcKf9UO2QXk4Rbg^NA;*bamlBkHbe{7q z_{1F(fPlXHD=(`8xEPF1ix~GFcO0t1Zh9qbCcP))MzL}kMAo?pb=v-PAYIL#<@euI zvkw4Mq-l|B`;k4#&(@pTtMCJ7Z9;Ou;jvVuZ9XnnECEXRAL9FHJ1DX;1{n0Hw(e)) zlBr=Sl%YMZk+LcA5kjGc?iSfenS?IrHko%a@rGgRoj`4J+2VKma9YF3XPK{S9Wd{c z6nGypfqrNPd@H*kAA2$UlHp_qe8lhvbpzv1WldI2YMtVcJXmr}KeL!Tj7heYYQ|ek z^tQ`Y!BED_IgMg@Ih^EYE*jsNO|pG@Hd@YaxwN&#rZH!%`j%uVfRYUbq$qo90zaA` z!w6a8s$KSK| zCmgH7`+|)7A9lg-HhS~I8qadu66#FAwUQ)p|H2*Td($;PBqrS~-a5zMl|9s-Cq5Xu z`?)*s_2nW$ikvV-ESRw3Z?^t$r7nOUvd#a; zIyG>?6PNE?cSVpHq}}(%N2uB$Xy;9?i*-CMz&=IeLrZL!a{_| zg;HE~1;cpxkEG^hbS8ik%hFcv)TYLr8NRKd1|vPu^B0gl^Bqk)5yxsFjAwvn8M@+Y zJw30oE_Y$(fOrxVNT(o#L`14ia6UmwAqfl8ZKqTA+ykdMiOzS2GHlx$zodq~AvF5J z71MY3xIJkl#R`$JL;9X6i$avKj#BSQMItka=}8^0?+OJrq+|vHgPuDLoGU!C?$r6a z4OAByJcl?Zlq{A-M=NrEX40P?V7m?*VB7DO`7D@~GjcD*9>F^sn>nT3C&4Y3VuBTt z-?2BQHWZnwX+M2~`Vi*O6M+9rrGWgE;vKcU4cx;FY@bdeiF@3oOxK2_t*S9(sfJz- zf6NDGz!_PT3FLeIqn~xL?GzM#py55)ZJln%e-_CzT(r-4Dat7jcF@~Ew~YSS@PPa@ z3vbZv&Xn#uuC(G#x!2yeB?t+dG~SNZ)SCL6PAHkRLGYYmM*S$MKYm)IW4MsL*B+fx z0P~@*Uc(^iI^yp#>fmtzZgA){hZF^e z_G37kcS84#+3uT_!UeCOYrLKXR}_{JNo$kG-`5|JLU)RjzI~hPd}uT<4-K7$0{=8S zabo9wk@W^TIi>rW9O9W==T)_x`F_j93Y|lH3@JZoO_~);%`(%<3*|n``ou?Bexgbp zdQF8ZET$HWg)o>yX_*JDgMnt7XRTyv(U2K~^V?rZj1q1FBBi}aKU%_gALtg`G}JA< z;B@w+hIk|ejSz#h7VZQb@6EL$?C7@3C%pobfy406P;gZ2D_CUDZyh4}!Cd}@QrsbM zTyYMLg2YdxY6>~0mX3R%HWc zN-2!nn@itf7629HRi2yK)pF)@C~|TxRv;s5cxz-le*fCwnGHfzpWU)?-Aky)K5140 zzXM1y(M+6weu1EihMhI{3lvWC^Q|1s?XdF)v^Sl8-F67ymSpkUFS}cs5d*l4I09W~ zjfBPEPqNxq+Th2NlA{0X>)gcHKO=2d3CM| z%0bycz%h{p$@KagaRTz#=XqqZJ5)_Q$}^W<|9ElR$-YZBE}LXGv2ZnEm%U6E%jNVV zK>#-mZ~=hIqgY)8sNIk3GXz`Qp!|N zdZ9p>@cXT8KqYu5L7;;^1bCkKc;v^3VH{0jDdxj|pjvu@pmmsCw6YLSVC6kY5Tb;H z{35G56{}grOY#Ef6TeaSs=vGgFhpf}biLG>r# z8zGW+83+LEh}{Ny)(?rPB!Jmz{p#JPr`SBbYFr3}jZmN~92}WOGW;Q)9PfmKepcqG zH<~E1{&DarkfXw(j2}dum9P*Wh>?~fraUL3Y?+Su1*~t=bL{J|dNFE`;+>C(K zQV<_{B4TkL?Of)VHwz?Baf{1Pu+T+zEBVTLLWS(W?+-~+9k;P1@aZ*ObW--Lt=1*_ zBfdROozFdnbKN`vjpKIzC*kSe{7L7xhPAgF2@Zh!6#8(K2xRH$hqK$==L+-z9|U)x z<`c5KRJx8z5YyB05RM3D)Uwo4?j$?*FEZXWg2SIBK zcWt5vz5~E%iViT|%9FAdtt%GT)ux#cB5l1QV9UWVq&1>CMkg^ltBMICxm^=Jl8XCa zS;N`|H!?;zTD_XQ=Wz^j>IUaTt>2fmtqwOVnr6#WRcU!z#<43UzHffiDuDm1T zHTBKkQe%L1_1&3s)jxFLk)uXmDUj6SL|uxGL9$ov|Bz6w}5I#>k~kzu#RAM?bMD021FIUu4ZK{rtVtpy4i zw}JWR3qfVibIkTJo9S8`I$Vb)KyxBnKPV`PIdAi7a7sRM$1UfvXzLSx^S|)n+_^hV z;B(zVeF%&-G>?^*U0h0NVZ%tP_O_fFmUh@^S2?-`czR3*IXa0XGiu3&oj2EYHX<$} z#p0L!5H+?=O>am#ePL&$@w>KgJt|dEiMw6NVmFnmnBa&SjaYY{zFF|$oh4+e{PJKR z`fb>&Q;S#`4p8QN(mVbEDGJ`w1`pY@h1q^<;~V|y&%@aLIbum>+COncZ&^v#m&B$2 zG#j8wa6evEP)1I*=J4ub5omxMd)13^U9?WJ9O5i4VHX<>OvG=FDX#qDKd5%g*Ae&R zNyZ2tVX}4ZMz4_9W05R6=&8j*0T*uyjApi)$(@MV<=8Do#z@-|8O>P(~B_VCNR_=HUBjaPL)l#;ptyRW*%$_foSj zrh+1aPi%X$wKrh$(s}7GeCozKzV(me@07`6f&k|^ew>?m?dgfgcaI9!bZPMk3y7#XiYhPOLUl1=d~hJW5rb$_khDaz z|Lrfu89m|P*^Wm?ZGG96qyu#=D*>e%TbJIva%1|xLT&})bRwe?hdIR$bOYj2^Et!@ zF3X$B|Kz$f^J?@J@I>5-%N_%OC-AGd%R~V2VBAzmSf0Ro-;Gh>(U@6vg25pgif2s5 z^}~w{HoGetcCf_H{TEhZg}?M4zt#Ek&~_?ISGo=sc(i0q51?`Y$U7j7PEnqc7jJ@G z?^a!$K~~uP{=BKX(NOlIwF4XpA5EGp)R`q;c+(oi$p(!y{-#a9I0oZ_hyo(vwa6Gy!C3+ z6hTztU=`>BA3@(4v=o*PBep`PTQEbR3;`%NH8;R)3B6xHfXGAsLoY3#3=3M34oY&@ zkH9m7HmiE{3w54YUZ?LU)X_iGmv5JQT1e)zp}?}05^m_ zhcFXaaYKE+p(QOJ%be)_Kol3M{#3wS={NMKW`(B81Pj za7KtO(^%l4Nqe36%g z&Jp07w`mar5q39APu~ak+er?bi>XzB1N^t9s2_vwNc@lX=z9@$b^W!8rpWT;Dlp+h zr-pao5Anr|`8gw(4HC8n?QvF;&3-~_&nb@;`VALUjaKUE$Loo~l}J>e6PLKi{|jdQ zf6)Ieu{}db5H*5G^^2@h$s?dyj?M(AiX(IpM%r;=mN&^U;2aVT0g_WwQ@@0EgfVHy zA!%3`{aK~0xFA4jbwwL!4^6;Eb}m^VG!uE$X2Js5ij#fr1JK90Dz`@TQVo6xgwGby z(aYNs)NA1f4%VtDqMMm+a-Tc=Q^rmr8o%t#T+cekX-ITR9OulVPW~)?Z-4J`@bv`{ zB;!O&#|apRq+XcBN!2WuHRdFl143$GAZWWZgKkp4@Q-KO{ZkGGC^G%=3L@@LIOhOG zjfLQi-AWtla$oRju8tZ!O-KQW-+LNiw6Ep@qLv?esY?Nht0zJ&dafNIg+d%uZw2+C zruO=XhKB+6@+9*Op5BK!2M&b6owvCN;+9{f2}D_rGv!o#RI~sd%T6!}wE#~m1{~D} zmcb!U9-^a7rYs`zIE{a~>lX9FcY0diQQt1w_nwNq_D%zkD%tt_6hrVkz1vVEDEoGGnC0 z-7DU`Jivp*e5fvW*6z_KO*rL}~Q+$E%zL!h%-vfv5>#3bljwrNAh?1B&vVsbMGwdJv->-ua%=J?Hf5+cW zQ_A2U2z)XEc!0 zYw{k>rAT)UO!}e3;YToYW&2Q!2snuJ(dYitdT0m4GV)!pX_@XmTvzhw(a6%?0Q^v@d?_p%M8?Fv z1JGO(u&jfM<$lqK#TiHw@7&!!y90{!h5}E#!jGa`5SzYa4t5YoP529S!LXbFvo7Ru zpV|Y=_W?C&!oZ#8S4-e$k7up*2;zB^%%O|SN;6mY882(Pee#<0xV;uN>d%!NKtIef zQQ^{OyF0zVw>cLMQP&SP#sPL6S#A2ynj%`Wc}?*^2~pza-{v|mH(j?8#58WOuljC3 zt;TnWgxTpJ#;FYmEqLEPhc(wA)_l?-n(Gg=^&d~`zR3Fm*swIo*|Q4}$N7&d@X^Wx zY(RlBm`9u&Jj9OBc^>|Hcc*r0Hp<`13ZoNVwiJ6mKP|z>az-Q6M_YK}$H{iCk<=WqC8FSE6b=KT!^3gVyBp;Pa5$nr=>)?ZtoYUGyYGT` zSNnLLgLhb*zJ4)~p}q zj&j%7bV-$OJ~(L;Vpp-~m}acC2^z~D(}@orXWP;3J+N!T3rjg!C%5vUPQu2|1-uy5 zZKDAXYNa@3P>(O_5P3NcGH+U8bq*`V-!@8a+r{`oB{A?Rtu8u@o|gyvuDt^oua*i} zp=}z*v0G*Z!kvkvw|&H3M*n*Efgz_BBC_W3`Hp1i7_g{9)rvSqFfVTMizBFIlxd%h zBGS~SEbqjPLOB4x`vtV}q_-ih8~3P*N3oZ+S~fdz2`>ux>a(^~b6u%ZWrc6QWhj|e z5K9`S5vuY+uTZFue|oyT=$}%5Fck@+;1ByyzzJjfYcnrGWbM@w)3FsEyYOii$rUNT zm9mjy|84~L^v^IKdK|#Qa;h`mAviHH_3WUG6&70cRej6?5mB12VU_+lV<0+QZTP?; z){;ZKc?}$)HY#>yw~LXzVQGo(P=?+34o~TeVG7)+Q^s=O$b8W{5A|E`(AccTCgU?Tb6;RvUpDF>Q+w`dgCW zPBs0B1}524HVCY5;motpN0*iXXqr`3(^rr9wbL|Fm(X z*D3y|>~MW?7CZQY8)(83Z;sgMh^JJ<&BBZ?m<4#=zZbB6kBTha?j>I6dmi_M{h%_YTR|j4zMn(%@!bQQ9aO)|@0~OGw-qxS)r2 zbjkWoY*@+=#FnQfiHS;FIuu@zo7tR|bDRtwXE;{uMAO#Gt~Q;-tUab-axb26AZlpc zTC0*w-Ty)59H<#+GVDvSW1}Uh7Dm*DmXolA)EOy!a3Skz54qDA5z<$2#@0b&PpLR< zs6z+!ZMiN-&C%q>m~?SkSufAM5i*UZ;}vJ712{%Fe{T=fNCt6}q^PwQ_DNFr^RB3r zw4ypqC{jUhmvCq9;|b^;BPd6X21v0s-973(kwYWEE3Ls^XVj&^Zo9PEIXBv9bonWt z-84k5r|wH77(T6c@9B5aboeJ%Ld)KC}8Am6KPju%4KuJ2ltFi^?CaP*i=$lE`x@|JiNV8=wz%@od_ADc4E!B%^P$ zmfR&SF{_7dF6?m}psEe_N0qT?>+QNcfrGR$;a?_)h+S0V$R#FK-cp?Runrj>AUW>0&vh@el<>N~PGQLHXIf~#Q$*{> zbwx!Jv~GUU#);0ra&&iSzmXDA=rE)5l|)+b@gCUpluHK;Sr{px`C(@1)Jw?d;WEpW zgI1G(7As{TE+6H)0D)|w8R#cs&_QG6fbd$qS7l6xbUhr3pm}lM6Z`MNiT_(@x$mtB zc7Xq#@6G8zB^ei*u&my_2lqfB>QnQa2pAjE@^GkboIs*MxUv6#wzMoJ$=bDq0H`?Y zBgta0TcLGu0vRWObJM#Av7Z1jN7`Z}B;snpG0;UTJXeH5r1<3D|cK20ATl-%3Dxk;>s599s1N4)~%LBNcyn zenmf^6;)dRzu?)C`=63LBBS`9lFauIfOa?FoLk6%sf4)#dQPv#vpc$+ULX0e&>n~A z(OkWEpUf{#D15L6w~bnNX!*#M;2p4)z@mCEcLxSEurG7Gkmf=_P3?!&C%2n@Dc(JL zvh-7Oyag=;HTNgppkM_GL6iTvQgFcE{ZFk9tykwf-{;h{xuIwWgpmwrWyBXKiMj;f ztM5kWjJ4O1$(B#dCwpgI71uXNQ-YBlm7E8SIjN~5Q4V@5Emy2e1MjO4(^~rFuJM@71-0j!7U7_GAM0s9?eeMj z;arnHNHcFH#2$_IZsu$*1dRz>(vPE_#*9g;;den7ui*o4Y>cjz`&e~pF33j9LogC> z)eZpgY}0Z`U8vn?;S7CPU^E^)?aKR``jc=DG6@0C|HaT^l6?==r|aVWRWDw# zYYVc?da>Y6@udvrA}Q+1+V;rINW>Pp_SE7Lk^!`ON^alt0EH9avYARoeFrV4T}a>~ zx&&#jWn9kQ8D#|(d#f;0^dT_QLXgT06^1vvps2}#h6K3p0>=0)my>6b#($+j4SuwO#85yn2b{d%dr0lEl7)9T*880{B+zacZRePXkf+;$)>ialza9RSTk=xxlOpOBSr|PkS!d+isvL zFK|BqG8p%6%C0=~@uauW0JXEy(H|E2Lqpp!HzYrEg= z{kr*_KJdM#zAHxZ(-1$v)#E)yvAYNV+4ay_4(35~Q&kPbuWJ^ruSnmSEM0eabjl7O zjPhTuJD1lt#z~+Gf*vyv!}0)H_V8bq3AV8XSwVabe_#u1Vs}boRB#)b;HgQyF$BV) z_ZuNYDU_B13A&m_$$>ct=K-kNd@!zq97&<>I^tvJw`Xi6wzK zvtS5%e{vL=zKh;eEm`yM0e{P9@J3t*XU_uQ+u1q}O$GmIX!n1606sGutB*zw2W0)8 TVgbu0Pif!OzwzPvgBSk`5|Axq diff --git a/en/application-dev/notification/figures/en-us_image_0000001416585590.png b/en/application-dev/notification/figures/en-us_image_0000001416585590.png new file mode 100644 index 0000000000000000000000000000000000000000..9da6812580fd6c7d785391c652104ef0698ce2bc GIT binary patch literal 39648 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

  • =_`NO`T2cTK)_y}#eG zQdQkPd;8!FreHAalqCId{%~Hn@&2pkN9iIL4)kFelLOP~8y`JMsdwgOwadX4o9cvJ zD4jaHDbLmBUh1TFQ@V7^BgbAq{ft9&ZnQ;DJkj((#8(Ex03&%_JXi&-Gz;$DG=UfA zq}EnkKyW__=P=JWQ#8G1!s8bKeWWn{uXruF=HJGC=0iy&FhFNl3xF0wt4qaPeQrjwIF2=WSbZmy9@h3_Epa zJB=J)N$j}r{#Z4vk3S+!D!1|UBQBq!1qU+wY`X?t&q&Ewvh+t3q42LOi|DYJ zEux}a)eu^u;*~mo7!?|A+*T!?ANEYn!gfC6D!qu8&!E!W9hDhtXTA7Q$mGPMs3AYG zFbgZuL>m8Rou7DK0TH0hyD)NQVNqG=)px-j;vwXJ+Jp+yfL zy_#xjzfZnDaUt&t%l-LA==$?O@hoCaE-;P+s|W4p#~>=8v`7B1s%QsPHf{AM1!fe( zMfQ~`p0M)ZtJ zs6{jx<-eau*XR>|31Qt-BNFt1DCOpH`v%dSsOO3~I8T&CL;2`y!AJOn-GjZzUY%6F zxcg=tr6|%~RmfOIRJU0}N+j60db6B<=q1m*9v`PAT0x_Ik5|uim_B3dwrP3lAJgLn z>uQ*ow3vx4O~BftWE}>CTpo@Oeh6hrqOZB2S0Xn_V$cYnSyAQ`<3dNi)!>LMg6frZj;bHwX0wS%`@ZHr8f(;6FE1X6xEIIXalxA`P zwc`34Oqs8EEU`1TZ=Io|OG~m-Ig(0)x%JBYM23AmM8%FI962k&5+)(x^6y~I&MK0- zI();2OC>yY>wnM{-)1qs;lQ#1=I!HO_atf3$<)>HVWlb!V+xmlOEh4mRGtlMhcSE)1o~*8j7~Q%+)z|!-tm!sROt?f`Fl5+Cn&@Io6~$|1ifhjO z{P_Nfyx=zK#ZusqZoeffpwFL}#P{OUBb(gZwZP3y9x-U64+C^n*?55{9fpoh^4i9znE_ta10fG{WcalmP92Oo%r?gX~ zxd>LLVEjpd8CAqAlkvS)ARH{uE@8A&ba$K)e zVd{TGd<6lGIu!GWe#zQFk zK{!eL_%|IVC5*H#M`kz9!c%u^5PMpg3)>5blt2A^{;F7bL}23UzBOP-<;l+{C!Vbh zPK1+@%1%&)GQPVzRCC@CkUpA%1mxyPQ{wL#6&1T!$6zs;@XpYzzk;7Fm&F@J3j=yu z8}u1F9rAcN8nx4wPh{lJ^A>SVX%5mk#~JGFQ*_2^(`S;HBJ{c*ugMnMx@EPn6U0h$ z{Lv>wyj@9FQn)6IvW&H;wvL+B5S6bftBC9{o7gbHAz(d{KtH>rgcv6Yr6p;`O95et zpb%uBw-v}oGJ5*ZS|FKS2S-PDS0$LrcyiJvMve55SQ8@o_37sZIdn^0CODI*+CA#! zQ33{wBpy8-+S?zlwW`a@GQ6rxM_#0_wqn7&AB)ajKGNj8ItbXop-HZ&fK>Y?Zig27 z8Y{Zzm<@`0{~qzl{Z};mW&Jb_ZZE$<>CThZ^(Ic#K>B-kx#p;&;vYG6oVZ^`hX4Hu zw^-~nfetsG)$O-vv9ubM3R zVlGaOl%o<|Ns_*&sb;UX#%3;V*sB0J2jufY+x2EaFwE6|CU&*~>23>Xxcm*Rx<1NW zUVn4^olltFCY^lRQvYbG>gQplQd|5!P0^m4ef=IDkkQiG5iY9%?k|p;po#S?VXexT zH7Vi=GaN-zrZ({(fux%F{h+k70MliRq!-JwjQ7q zeq|!E+atA`35UdClU2cU*5mN0Ub5Tn_X(e=7Tx2v!X;n4JyMYBkx$ z=6K%`IiGf#9QLqDOx-By4IjCuOu*xrPBzh|dR$g}Plfu$pv`&_9)t(tuI56vVPJq^ zV|nSNHVh5Eiv}R>>DtRn%JY6Hc0OHzA5Qzpn5I90o}$8y$9JWSM?ya)!aSv?FHh~m zB~k(Um$|o7FnRu^`P4-uTa_4gI7w=t9ta?A;-goYUA=|0SS6;\{NBV(*riv<&G zQ&MRVF3Tg~FNs%W8{b`&t2Lpq#YK3{AIqj5vB8c8W~a*%EdigJn_DDsykq0gqu zhmvaP{h@F%RMZmP_Q-87Q|9CtHgo)?d#Wj0Jo&C+WQywLVr`8$G&Dj%jhl{D2{jSV zB{gL#%gAR`@^L1SYpOAR+E<&a>#JzPZFN11CW|#O)+}mXKj6lkv}dRqCs5G*@zqo4 zyyui_+Ac42iWWDiFGeOH&=KBpx-PfEF={%HrL0?U&xbZHwj;G7En0PyLyVk??lG0j z#}j$6C3n~|)Gb{-h*nuWmsmQ*W%cA~paI6*3_6SBWC!8UqgWLC&waY%irw?e>>h&g z-(4&lJExQsWv3!Jjfi)9qLRqZ@us_qo>m&FdV0Gg4~-Q`^02K?F)wBGcxkcUQW#E7 zx#AG3Hv>RfOI0s=9GJ3vKFrEm7gmcs^NFd6M3Lvfy{m}(TfC4X+TD_ zpx+3a*R0Xkkx&*xwWa2`uAmXXlsFsd+8sKWqQps(5u|z2GloutAlRWN1cx6=`X?v% zn1&uwb4lqSjQg|llKAP|DK+qBwsV%L^Z*cOc-oN0^^3KoG2aF)WX_L@Us+xarGjhf zVI?~{N>e!cV^&tkNgYV0uyaJwU{90s6N0n!;q>1YZ>Q!1XcCN52j-qHm)qrKMCLLU zSS~f`XU?8%jFdOYL{$lGNh?}|vx1sGEwkw>kjxv6-jOSmMo0&XEiMeDT6W7q|SY*=T?P=rY5lOpx2-rrR(FmqiGEM-uRAe~)* zG%OC>@Yq(m}L*eDXzbo5cGqt*A;g#37Wy36R~zh5{<-DFmYQIe=U zeDt<7kRs6?#)?EaNtE0-;v$S;6fBGKGLj&Sw)2oi{oG$G<)(>b2A~5qw~2Yo7)pX< z+^|wq%1P2rXbck0V5Hpsntg|mHiyNb*{&S-58SDXT^*WFe+d%&x-h32 zE7DH0g_U(u>AIi)GV+njJC{n6;k>$_s#bv6k}NWcZf<{TtY zeEk-h#4qJA<%VWGEMZordaYE>wc5)HG(&me(bu6+h^5`7M_4^6g4O56A{mQrayG!PkxBARjv~ zc^_6gM0bVmjX08biJ|@jbiQ&Oz*oQcUdKd?eAwR+YJ?+l_m+-tdOI5UV3$Z2Z}3C< z%hwjV^KF;Yd5C4}=q&k7CVP+sLkVFVn}3!CGwuq@uh#I=m!O#Pnw`p=;3E1W>XEGKOn}AA~l7%1twqa)7CwtxM2l|3>7^pF0>U}kR7tH)Hf#Z5AQ_Q@ zhmQdFf77Z;<3 zo|~8%qv1IpWg$JsJ%;%GZeN!|Rc9}x)f=2uZlYcdo6}|Ok`_jdE8k-MZT)QWd$d|p zV=v(5r&8>Pi*j$vI9B<2UEhY9{b$jeu}mG@4qH>DKL^t&d2yPe6T3}j&dB$NqCt}KU|EjlOC zKBRUj%48BVBuR|bC!IxUdydMX#e4s%D}L5n;BqEdrKfnvSS4Q?#q>)I4~3sr)}=1&o-e!xr5I2e zw)*zSgjH(2ws*YV|F<|?5$4@d%*@?J`Re$qLS51hZ?|+FfdN%y#<=_=HTabA^GywKp&XS4l?F;OmeWIU!t`u~2SXC(UnUN#Q~Pa6`6elCs>xF3g_095M6Ou`yKdT@m+R4`mC*ox=DO|V0^EZ7 zV=>_*Y{`BcO0#Eq(9XlZ?oB&^SV`%Y30loq6N8X+r8?PI&c{k3rlKbWhg^0ESTG7E zQlSa>W6x`>G^h?n=+`NC7Q1jJbR`8=jJygsnjH23oM|db z6Cg}Un3BH$`1!adA(|;^^*N&-wg}7PV5R-a*_3)Z$6LXcr`WT02f$6$$Dc8dA;e3b z^mI(;b;=(z(WH)6v3BkbZ#VrbD8N{$P4A)Ekt;j@$J|hpf)#61LZb!{8t06MM8yuE zq)l{G&ah6|?^<323)5fa+2hqfaEzM>m|T7_LUG)Vej6 zX+C!hdk%SduN4B=U}))UF{L85F0!H}64~iU2^lFK+gGIjsq$VgmB2sM-gR9*h;ch= zs-mLu+h|P_vb&>zc2XZjXLZr5?0dA5JaJzn9m~clQkOmIXd_)vu&zEgA*ry zG3ZFm88c=G`-5>TVvL73j*b%Z&BdNM=+!YGPn4WNtyjzBxz6s>3~wB!dp zK1se!byi7bo%+wiBgy!uk;R|bL>2ePLavm&^<(PM0@a)xl5TdzA-l_M4l48vGJ{P; zJ^EFg>cz+{DQyW$j{2f$X%c2qR;?{ev#EQzQKa=a55n%9Z3)PsOm(&ikY>w^oobCS zXR0AUrnvLsA0M}HWn+c3a;yqC|7J3rwqOmxl~5h6BY(*bX*}OQ%Pn^d!lx=?@*8;) z`1Xs!I|xjtLk_NyO4?V!PEx=Ij~S?s0Jh;nvCqJ~l(BbJ8$6`+WhtN+?qG>O2P{L5 zult=xm;#uym{^hf`)~Q_uib8+b%B_AvnA7W)5N3l^Fg7PZIvXQ0oH`<5QCpz3wqCHhMfZj`?Rl z4Y?*|sPTZs+E`q+97rU}wS8v{xs1VV>Lhj3uF?pf8Z<9O1N5FanACr8`U-588SE%C zwqENf`a!%9ikgblT0r07NS?BP-9#q84Bi!n)2%4~GCQKcUg~?r1iWCsMW37r?J$h; zaN#bpFr5a)fJ2~Y&Kc`4s(7_G!G7Z1!pMglwqRBVCk#>e`|~)zDiLtzQ2FhV_ZS{C z%)Iy)f3QP{>>wc*;t4IK8^SCPYFP*3WL`m;z2ADx(i1R{Lg{M9CZ*h64R(@F1}v^7-J;ClCdqT>iN;zSmrM+;XEwTfX{|tWu@Yi6f8ylX-(& zuC2MM)yHKoxGedlBJwzBN3&O@M>0Je_48=q@@U4r(q*V zQw;b>%iUmEN#;J+8EZ}}(n<^t`0B;xz!|6H4RULCV$?;OP$-Bkg27dQtj>en^~!xn zbs2)0D>cJ}CI^j4k6;4QG)rK*Uy_1~Txei*RqIL-ME@d&6vV*2%Hi#TLbzC-c3#jH znH5koNa@R9TH;v!$biTG8yH`G!c8GFQ03&3V7E;bDHLZ6lRhmafCbKtC@lY)l&lKV zG`=Hv2v-gv%Vw%zVHcDzpqeXBPOhydL@byOOR7sUusq0;dW5kv6YKgz3-3 zP=F8*#lUOdoN&C*X2Tp(b*AK{6-8MkT?6FeoS>knTO!Qau)=;Eo?=&hpPOl>fACPtS00n(pbdUU}6prE~@~AJ`nAA4; zk)N;p_T7p^)H&9?fhRtAnRa>TI`)q~cqebIgFz5v@L3Ap-;OY-q`4TTDtsy*8dBl~ z6dKnDz6nr78Y}@b*{jzv#8B>YZsmj5WxrAMsY}QHa*)J2ydjFmCF`hCd3&hy>Gw5` zW@i-@9%@zL(?H|Q1^Qd`gxr>qtCj8v{rgd1wP?Dp9k+`sJ^~G@mg&j8>!gnz2nP2< zK38Z!2-XX5R_Yx&8mWh;ee5r@@W38tI2J&aJ|BIJv_s74R{PjAGKo32pTR!tSF~N<>|ZcDNECb+0_#{wfMEmePP5b)uWlc{?vWD z6ZwD3vfJ~M|2gBv)ENDL#v=FsnGRlEwUDtCW?*1+UrekoMY=&iFW3D2l+0HzDyaZHb_RTLa@}sED4-Bp*o_M zkmQSgJEPh$4K%6^2~e|AC?&rLgGl`1VS^q#a^>mv*LUg)Fl59mJ{RrHYgTPi zx}`f-GGFvBETA0zX!*2v2;cpID~Vz*BP6%1MGphx+LI>kS#5za(^_#R=CP@6AAHN0 zN`tfNWtx3kCz;n@>jb;IGKzUxF_6kT5_P)RdY?@TX{QGKF!^Oc%ruvMo7#w;IvURW zGM$>%vDih~mX&rO@6o{$#yc08+)--tN4sMwVDlCfe#7}5o^ozW+HJ*>Vc9!XxiMxW z>3p*@QwK~lhmX4z%}dorbcKn(V0}nG;grB8=A4A0K)+sz9s>nN0}l}A%b9|0BHry@ zynxHc;CH87F4pmk8_f+Q#~5VLeb2~hw4`~M3Z7G8EbuOVoZ)O+I>Fuk!)5^^b&>A^ zHvs+1+n#~K%!fq^?vR9xWU#2gUvO|Adtl{X^(>J~#}l|q1c@X#XqJlDlJo*ri5-0D zBf8EKob{HAu%Xz=lVcl--Pa~YH6a%A9#z8=n;cz5d)C^Mz{+(opPYxRBCtQF$nW!m zmF3TH0g7mZyb$eSCf@4j&-1Jzx7J@8CV8KmnRDVy!hYfA z*rWsd2}u4!u1Q-T7MfA3OEhw{nOHMCv{DlpO|Zu zF_Zddj~R%fCK(0VUTrh5e{=sLxyy^;t7&NqtvGVdKR1WLdXCbOeEZYXlBa%MUi3a- z(qMI^SAN_*Cthx|n45EfC>_<`YxB?V&yg3OQ6KUmaNslY_a-`~u$Ub5Fjc*2PDQ!w zEa3)P2}Z#HOHTcpafqF0nI#>TFq)~N+-dqRcFe`n+(Llbhc!-|)HEkYCv#ljQ66@_NdZf*5*e7VkSASXw1Dw>CJ+cpcMz_RrUcdF<4%hLsvchH&()Opt z#_D4}$OQr?A5;V|%qtKewkO6jchx@*0as03J2Y2cIb zZ}*yqo5RZi(le*-}d2I3g%KQJ&Xj+#1c*m86WW1M2MV>*6Uz+%LWm_e z*|KjyKuAFTbNml?8X=o=zJ>&I3H9*!%(E+XW!e4{y--HNcmL>+>iaUA*;{JIXTei6 zx#N6z;wj|vS6!2-kf*lj>WX9*-~bNXu?r$W{2-donVxOqn$45X%4}*QPZaz?-DQbw zYE5<s+HZ4hgx_~1nf^-+mq@V2$NMUc1d%Yw2X~_aD+OJ5DD{Y1|icQ zfOx?A5*A?`fHeUqYC#ziX@$ls zD5bYj$~Hx<5QQ~UETffJY>4Gls_kD_OBGEs#c9MS5Z8X&0d!BX?I1I9G&xPwTk}tJ zi;__mb=1ItokKbsg4u(=0~<;F%950?tSl*+TDP{)WI%&uI4@FK(2f{oz#EGIgaI=^ z{06O!QloyeH*D?3qAPX7#7PkDFbHx8Y0Gizf{y}ca3xRxSqr9qdlyf%XmJAJ)2g7M zJqm=C;jGhD%x0V=y@?R_MsahbbWPx1_C)|06 z**(rm;LH}nZ`C+3X6`itRLbFwiRELC5NV-d9Q5KuO+W%z%?!%n6^?pPY!C4c?BZ?{ z@-&BeIf(O$lzpw3=KN?;iVRiDc5tGHt+DpMw&EHd=dG=--}T%kr!AM=WY2k+W?Mxn zFJ{#vde#0)(f=?D2TVy^5WwUvgab^G26ZHB-JY??+N;gMicx9kPzOJ{5}|!jB&lQeVJjpPt8PC%tW>8C_2Ly9bL3FbG zLZ)T~hH^mLHLWm4Tx?OtH>*_+T{&5CsQ|6VO_eOWEN311DncC|!e0Rejg(T-!_KUY zfj6}^WkLr_`MJkZN1Q>F%sMnp+R|r&e7iOBH_Yi2+Xzal8S^A|fBPbn_$~bR*UjM0 zte6)xl%lC}A57IjJG zLn=_BX@yU=YZj*?PYBGV1O^T>HxjXvv^&)LCJG8$k{H}u8JmrxWp!>XfQnZx|;Q< z3s5cgBN5$;1;4~8m5;7S0|;LfhHLVNa~iF6zy;? zout-kwJRA=M9XMyApqyU+F+vMu)ket3B$uQIUQiHR(zRZVEiS;$xwiX0?7F7#SsFj zb-X1Xo*CF>m1d}dV@!c21}2?k)n3u^!t4w$+}W{$Ye*15FG*S{>W9GsVP75(8n$0yG8n(qpf@}~!6>#T z%NE|Y40CC%#`UJ8skQr_vo5MVud*Y&)y>^;I-_sf~vukjv-7NDqXBqj?NvugCt6n8tkG^c!VYUKC=b^I*NN`_`! z5~1B}6PFD$1WAx#)3enIZ+9&&!c%>MA8zjHwgYOO1Sz|C-FzKnZ>QCpm3UbSazW*!_#KVqSBPd>pf zH(YI$GB0BEe#cg%nN)|!p&Z4gw*6dcIW=`vRkdBFyKF#irMh!>vV*Dn>VJ=Ko|9rZ zCpJM)Z#ghj-fdldz7Ll0AC7zxmKURI7z}*i;HmBJvaVj;o0N<)~>z5 z%MEf5{i$>&L+`Hu%F7n@e|xCNicd*fgda>4MZ<5cbK3^YC^YLzp-BSF&?8erd(`9N{+z-6&Ao`}(%)5NnKazb zxCON&Xp|9MI2@?R{1#q^nOu$5u!(#Vi0Sl)v-r`&R`O^kICwoQMV%*O^^RwzlVc8j zVR>fr8UVqcuuigZlxbka5HO(_cqzi5_tK6B#|#7&geQFlIs5aPgX!1A2lWnD7LK48 zzO_q3$qna!G0>}^#YSZb?ng0V@*eJ+t<%eC-!fXl)Gz}3U>I?NfKf8uit2A*(bLk` zh${>I?|E@?vPDam^37|Z;*vW-2Yffv=$n>$S3mn{D`3<7WeoKaU`rgI`}t`VNvF*T*^@43@3K}9Mqu*|WTqrTPN z`XZxLQNV!QDx%T5(U{8^_s8fDA91p;_J1c9A0yOlH$XW|{(lp-ADxM8bFbyX;yM5xh^J+&5^^=06))3O1_74^TPi!Mjh|?(qjGz*Wvq!;<1gf6kW!| z9ajM2+W7t&-1Fu<*>bvXK*T%UZ;|e}!0Z}LMv1vVO#x7h?N=rfPE0NU8bjfS?Zs7N z-%Ls(qjO9=amnAtj>R`W)IB0#o&UB=OjqbvsVB0C;;)hNa(!pX^R|at$S5l7n%HM_ zMm4DsT8AQ2E@|rDe*JHC~A!#K)XyA;thFc+1+<{bj^7of^1LkN_dA@bBbyFljf|0 zTnIdRfBQji{$p*t@n9nJ!W^5jn+Z z0J5 z5aj#n2pJDzrL}=l@bSOE47@yC* zu`7|yZnu>j_uCq*DVJ0U%33WZu;cfXtGY22og%GxikWy0XM#EkypSnd3Yusr4ysU@ z&`FwcO+un|Dx;lt*5=7VW*VkFDDWBo^00K)LVJK}1qEnRU{$!wP#TFQN;?=qpcJAi zM6le@CYlwD8fJ_}-V8+<^?7 zpuT(8TMq;geW8JIMHNiSe!a~Klr9_!MM0tIc^HGZ%a~se4T^283537Z4H235jlyZW zK$VHLq#Gc?cc`3Hkr5Sgafq}302-z_x!+pd@p>kP@C+8axy%$xA$>?gI;hRcd;-&~ zWN2?hamZ4TAh?jOo!G}V!wRAHnk_ca_bK29aCYU|GWr5z4dM(88rJ~-TO$ssAEWJ<+{J{zsEyhCO$|_+ApwHbue?}Rh(Q^{ z`CXHN_U!YWg;-khl0R||ACi*6sOe=TSZLdZwSpO=5Wq{tZq9nZhu_&>Uq%qDHEo^Y zsD!1)%Y@1Sslvd};NHLHTgIno38UqOD-8%w@ZRSfbr;aBt@#@Aa!w1{IB{E_g@$`? zh|DRrLfL>iEf(2l2vzE`ifVi5P^&0h-L8)G!fd7kpE-@ruO~4KXkQ*AT(<|_*7=OE z3NWRNL2#FFM^5Nt9L6|wL{r>~3}J-i{z|Bik0aW6{%5#iHI&~k{dbff18uJek7lBr zr5KbncEG9)Jyk(ae5Szo07t}sZ#VvNv-JBG0{kN%E%^eSL>iZW;NaBXihvxp7;NMa zW%FVK9@>>K9VRk~Q|a~QOUBs8-aq3#-z0{Z}O zrUK~wjm3yjQi)B|orXrBb}BnSh9d1?zWTWPL40xq2E7qzjns~U?%B|L%y16;*rCpG~^C7U`bHe9y1B7F?1$+Z)Tb9wcP?=HpY_Z-vVme1HJianAA?PKZ>N#?}f7H z11#4o)?FDynlme`iWs$fbU3eR)3kwS5Cv#O|?CI(TE3@x`01bU{85&EPKR>DD zaA##|;=4|#Muij>@G*s+6l3A*6u3}i5=M<{EjgUIdC2B0ltXd8Q%{T)vwIGPcQ0uQ za)cm=Sa!r1sUJVSn?X)tL!=fe%Q8&at8k@$&ybL-4wt}>-)^NQO?r#^W-XZ@E>=OY zNtv3EZH(L=j5Vw%N76@!4~!#-gislqiZ;8v+Y|95C~mM#j(Y}o*U>c5W_{OnM0oor z#3PA`!s_{40*fb@k1_#R9OmP=W!BwZavj#7;TODL$5K;wra_|*7_r-|k74E{cza!5 zOS;{Lluf%>nE=CNGD=}>m2Z;sUBZx0l+H+-#}pDOlU+Ig_-F+XZNdu(DDA(PBD?7r zRp^!lI0k};@09=tWkpTV@Z4fa$mAFfI!(1-aPV%vonj13Q`31J4k(W;Vu8-dQ4Ml^VPy)VI0ul+1V1&Dwa(JM5 z;^#Nr6lE(JUY*bF%|Ih$YJw>R2^KE&?W8ecfS1mC^~(}s5li8qNsrFS``yFBDiZl~ z+`0M;3hm9OQ1QyxTG+`|Jou6f6H{J(@U#-DGY!Fw@*zD7D99+*&|RX*%PY8=s1&C_ zaFD%$-;>3#Kgx0cIxjuIy5mNkA6BWN@|za6^v%ik5mD9(*NrD0QnLo*VHA(e8SVl> zIyG|~lY@N1Hg&;RyiAa8hjMn--hcpR8uNd|hSd;`nH@*gS=`z4_^;HLUA%d{o(usK zMH2ItWrIt(`6?4dV#Bm-9Qk;oax$(ELp)CLxT$Ix36Da7NC<0>H87OG^ImkHG#b-nD(Xd_r90L20q98!!W-{>|p>4>f%P4JJJ@d9M9 zEB2IbU&(kC83rDJor)%!G)kB}bOa_ck%c>u{%v#xQp080I=#YF#iG)#EujfZ6xB%2 zgVu4T#QbCf8tj^SmZ3F=7n4xyWyK85*e@Ao2`)>2vHE4rE!elfB7-rPyeOiW?dG5V zJH_{3d)l4bh&s2>O&|H;0jp9$bDJQ0&sATD?1$$fv%VYvqf3i_r}Jg2ksg(K6M0p) zF)p(&#mAjs@6|f=6S`~7%{9ooHhzx5i6aCaOB&;ETF^Ns(?KvibS5Li0Y(sz;7t}W z8Gn8VLv=WVrg5tOQ-O%OmMY`N=rALm>~T94BdsX>9i%x zXwZzZ6!-{V2qFkxQU;@%B3{Zy!ystmjNdJ#m0Brn!4MfrCQe!kk$nKSFT&;}6;YA; z=-^bu{^K0{+Tf3yq{U;217{Gnr_!I<(RP@SnC}8uj`1t2<`Vdps4U(Ndr|eYs9zL) z`mkX8%&Ab5SHon|cX|G0^499f!p{|)2RTN0uCUy8t)ptk&7v8O5&LRjxk-v$a5Wa=E_(VC3(yebFBENC$mA9dI%GK| zJ?qU7aja5vFAhbgfxzft$~X!qv=T)NGU7Dl|DxL%f$vZgBLM|88XMVVW|R!S3C>S? z3122jc~}(+na?jHjMMd5bQmAoSTU(agR|50KgSa)SGY%ls~t#zt>Q{fWplXMM=GG%Rzm@P z3y=tu3epOr0xc6LPA(!XRjDdYC59(Bqa!#*e~6osa=xibQA8iwoYeNa3={#3+sE0$ z{e9v4C=qIINw(8^++d$uTW4_EQU@y$9*3dRWBEWhN#jDZ2D2^_q(ZB~92O)c23;_8 z5^L_L7WC-M-WnTSH!v9VMV!0f7gwfVO6?CTRRqI89XzH2xop1eJ=>2|u2<6#NZYDympd31fna zMP?LP8C2OVDov>u<4eLU0TaZ|T%MqwWV!Q9C}aSk!5Hc$!iNLftE`m3T)QiZ6#sca zqJ{Js%5T5M+J6?+%w5tiikLS}BKMB-H%_Y+M*R_)#e`ami~+ni=;9CA7QV?FF_M!l*_<&?xt`}W%o03t_ZvB zKGU60Z!cXDOwcIQ=GHKTVv221*SYG?2(mxY997ylj&02kcBt@bKMH3!N*C<&TF5p1 zc}#UgYb=j=7I#*Q6D7_0KogTJiZC~91m<5Cb!?<1)rzF_Ql=GjG&VG4j`zx%jkW0- zPYR7@IQua2pyf~y?@6r7l|&Cu5gG=yEP8pn>}GK8A#3s`vXK;LWvYLTg{7aQJjwA( zjJs*hoZgyKgjo*;oh1d`I|IP~kCxOKiZu^H25UJ3jBOeY0zPERtW#A6F`;D3Q)ii7+5_jGkQF?-H`{qmf1kK}O%YbgsMs9Yi$ zghpvyLa${`KLT63R@c$fK&U~hWsxn1^$OiILl#Z1k{YTKd8x`B+1oIcbSb$at3+lt zivd6r0ss4obp4*^()8oHmk%XH1o!Why#TQ~xabZM0Y2I7I|K{FeIt&nMr=9*BVqg^v#wzOUMi_yQs?saWnuZU z4{W=o>IfGZ!scgFXk#X!Rd^rFk$P7R%bH8f|JD4WoO01kYi!iHeY`fHBzD*02|B@xC&(2nh3E#A?A$+k$UA3%?__h2HFNj#{1vKmowVJ} z+JgYmziDEg+dd_2`T;j2Xi$V&cCn_yNf6uNr>2@+GP*cWRX*h}35J~vpFoHq?po3$ z7X;WWq$4h$vfb&|E`73-(6oX|yip}|TV(;@$H}hlHD~gOPKpfp9dLw=DsETxgg5PX zrqzOjkuH=L&||#@Ks|s~&6paTeU36jYunrJyk@ixx!t7K$K~o9&^wBiH;4z6-arT!;cQk3kET53Z1Zyva>U5pQ&h9^+H- zn^+bCuweU3LYDb`Ul4k{`3}Y$Z0Dm9WyI25$_e5HUh=@g;Th}u2TjL=%f?P0?bO|QyX8imQMm=y%$m1J*y5^)j1eEUA_jFX9LMJe zk6hBd9;s~}2FX$2#m#|zgec6aOH>4w(3Ls#a3#(~IQ>5t3&U#&zZu=I*5{zqQ6-$` zqZ^LBmobd4rdG)gP$`ffY9Hb(=GHX5tPAlG%#p~3^c=~O_AjUyRGp^m&Zc~^fryBR z5kqWn*Nop*&(z@=(o`-eQTX@WI81RblH(EE!Nf`#QAH;cPBj{s?Pqpj_WjHrIkUUI zNHPN`!iJV%DU3NAd7V2 zYSEP*zL#M(HJux|X5LUvoO;lBo4Jm!ZE`WPoOk(^Vdke;+u(_SZ=Ar#7gT)=oN!CZ z!o5yDT_?yc70Og^rS=ANvq-)kOj;JD{|)VjrCp*+aJc8|v0K|E8loZ>63;EYo3*;^ ztl^G9JC$Cp86tSLJ46U*jgKQ0E2Brn9W#&bTK_g&%s6bZAT715b`jDjOJO(mbPsSM zL6GF>=LN`IpHuG4pN36?{XUh-8W|xUr58N}8Hns{^s{-alD0~s0?5@Et$f$lAq%4x zmD|JDpl|^Qx^iiHqzXsTs6P!UL!Re$lO54Iw4L&B4RJZP5Y@R)A4)x-Wy9H^Uas^Z zq`Ax`F=_nZSmRn?P@=LKoOfT{xzkG{ARu@i|MdcVWm~=^9SpbN%Us=b%|y4Pvx0ab zk6V$w_yXmRPggibEW?e#>fl+-RWW73df4#xq4oCfST)+0tVg9`r*eZ>5*`g7A6SoP zNDpWo&-NkHunO%#SS=mCjBPcH##K~&(pehgPV`}I!wK4TZl_Q9BbkiKgPfoadWH{i zZO}da=vtrUx;KFtNU{rpG=@_HHkhg-aBds}EJY_0Yl?wx&A7^X%g&2536m4X;A>fM zGGc$;Q@s`!o?%vEZV|k0)#FcA>zXndlyRnpkn=4-a*RVNxe78BLxk|~5PwraE<_3T zE1OhC5!pa}9ky2YJdSSoTEP0V{ligUNUvFoVMNvNnaoIxrJ{Ea4>6yf0pS8-bM4Mx z?>S@pAHmYd{zN6-;4_YebRZw_4vG{#Sl6krQN0tBFK`8!GlCHv1a|taa{7#aXZYFj zYmW`vg1xPh|J+NK5JN6irA%B9+QV<8LvokzYaF)sZR&rG&l2bCH`<5Se=I`szX|5M z?Vi_*ZTp_cb-7w@g4vuS20YE=?7WKo9R>~EDm9O`{OJkjt%kIRL0aFTZg)SqY?HB1 zV6^XbQA|i{xH=$?#MP8D<1|9-J9giDVn0Md4o~RYC}QH#AV`QHXOU`$h2sXN--9?M zCXPG0c8t{#M5a@~4B6@w@a$JH&ho#o6h}ZZnXz5^mHjm13Qm=a>3_C2_scK$^5>ZL zl=05({E=$PHUu&$G(n>i;CTczO-vS?l8^*#Lr<4~aCj&o$4v(XTiVjbgNL}#Dlmqg zEk<|1ziCDQQ7o;FWQT#}|+w7L^+4k%+ zf+{LnYUvomeW1o;%bdtk;0%KtR5$1-5+`qsT0^#$EU|qoL%{1+%b3r-`p^c~s#jxM zPcoD7CRy>fCb+s|YSlSJlV=gJH)eBFzT+RpQZXP*QhFw0;$ZcWE?_;Qv=M) zOfX@dMUxXZbJnlkRWPV{`KlHPJ3ykFy?a&AKYl2^9lGW)p87yk`S+(Ft+Q`ySFQWre1{(M?U`}iJugS0lB-BD zFlTYW;_yVoHh%pP50VOg(09N?HrEC*C_g$1iGU8sZ=1;ZTJJz`SQHv?3R$%u+^l@Lzur9d z5y+gM+g*SsJhP2l4QLwJ$WHwCWI?VT&^%ST>?-opj@8Ho{NURss5715zzA9e@%6#t z`al**?DAAo;@GCiGkK(MZ*m=!SnGosKAG*II;N2a@yPFiZOG9>k|ur49B8wBw>no> zo=UV-=rmQClsiEZMN2VqrhNuebg6bxhmt zfT(3f^|2VvcxRIzNC}UsKtslfX9-pqQWPlXu8IHi|7z~b-=Tb?|3k>Wui1sjzVExJ z8B39+6f@)9@U~`WY$J^9l4?Y<4I+^>%UB!4P=heCy=P==P?(WH-*J6^`TPZ+>+}5b z{BWN0oO531b?*CquIF6$t!s}U#dT7~cvb2-K;xX~rLyf88^h%C47v}u3@_2uJKv^A zc$0oO&Yk{Rc=ibReSRf>sxEF7vaaZ9XVX5)!Vgr4cnoR_@vBayZ>;p2i=vze8Z4nw z*B2I-5%g~X;^9rIsWYvY;lXkH_dFN>?YPyzd%Ql{Jq$F?tZs9^Kcb%))Mw@K!YqN! zvK7m)9(#h(a*ICVchNbS*Sm(M4060JTOEWNog52EmN#GO{cCH~-Q7F}2wwV;m~cq{ z_aL)6`XFvJ+vvHd0c^rl&2WNJJ2; z|8|~=Ru%&~jO}bs?r3Zs6zGo(JLD{NS2>z>EG6WtDyyTw<6oZf%i~l;E!!)9I=pP` zpCM&Hm%GP9g#?+@i~54@?7OLTW3j8EsbR{tlNt7aRHO(UqE5+=eKu+`M)2q$Jl$tiX6F%FVNqY z<0R2!>yMBreA0EWAp4Z%SqIn3tt`BA6%pl5eandK#=U zPeQvpcZ8?b;cRJu^)f4|D1o&~$M+iS7@bIHi8HOUrE!EcKS$?cLEGt4`NURNA#n|LJyQiV2pgr zjas$QYq7-YK|}}fdNC>5b*$xJ*BAe5>cdAyf45msOW(g5V4Y>+=CH%B$``# zeZmiVuLRzSmVc(vC+Ue`Kg4|dl9O{{)f45W(qf`uJ+0;&k_Dh5wKo_G#1gbl9TiAOl zLLkrIfocPJ1=s^Q?i7%RCI9>t%ZJ(01_?p7Z`UE zCRBga2Jq!+RRR!CFL}y+xFMzP{RCaAE(PgVY3^cCLx&dVHSBr|N)p)|U;ikL7gdb} znX@*RxbHifHuaIPwtsfLV2`)kgTq=2oCCeejX4NnOL#nybQtC9`J!;=<*?~9(^(J; z%5Lmf5I6<@ymFPrd`j1;PB|;7T_LA8dQ+EnKucM>)mp!Rc&EqUn%tO-Q)-*L9k97d zw0o`ctN&exXWV5CDn2Gf4{~=>`*1P(Jz<&7YzC!&iL747(@Bn{$*JyDNKChtGHxAe zj*uR@{M}4{((U!e`O>y4IIANjK6|vXY+yC}lb}H+0PsDkbd>;gJDUC{gwwK-h+>X_ zvpuKYJo>EA=@TFQADpxI;G(CddU~Y^s#W0!9Yizh2DGp^)i|k6ccdqmH0WlUi0pL#VY__F<7gWCoLLQ} zAXEW)^hahgPIvvQt!Tz0Z1r&n-G&b5R8rvf?RWhC9SImqbfHpYi?|)6%L?@9g3zS$ zho-RXlGTOqWGD#KN60msSZ`2ffUr8>247|12Ps6Xs*4V+5x>-VIEWSWca+5FQT<=C!>wP__Ot30+h5-((zZg76tM;N=NZ2WP6&y8uiz`{^p z5;?<)O)8YA562}5%W9k6?xZggD`NE|vT3Dxiw zniMH4M*co388nSGD&O9 z$!T?jh4gDkESlDoLGtRcT%#R@c(1Idh3#mBchkirt@x?TPEs!inZM&SzSKHLkIypQ zXfWUPY$w@n$iwyl(FX~ejp4KRS%gWWTuTa5S!%r^NYehe+joUFJ~ry+C-mvli?o5i@jeSkZkM}5{d2jGD-uK(U6WJ1D+*+=XCi2( z4i&S=N8&!MoA`+6k2R#;lb+!x#Wu=LCfA8T~l>u>eb z64KXb)z4(Y>bYS);&-*S@gk0*&QoNlIi$X0J~{Y#LdV_np9LS~BNg8u^8}`!xUZ+Z zf0(yIv@?=|>F?Yp#D}ftfPbS8Vd7ZYx7L3Q?6!IGrq`H+v&N=O8(1$zycL=vkLOIq zBCJ_|AFSWtM6<X_E5a%+clKhlE&Y}y|` z7H$7Nq%mXC+|RDTTwzPYP_uWVJ~xZVU$a_j_Potnw|n|T**T^GK5cLK`iqiR#3x)f zcXYJ8WwO;20}ZbVTpN+;$YFftoExcFU$L8%cQ^gNh23EPMk{%H?3?zRTh}F_3tXNi z4ghHlSqSh4evKk5HBI!W^gj;pR^-^c{L1B3$CI3K;$884zVpe2fBlVKQZmocWp0@I zjyf`2eNl|oe#de2HSd8dI12!XkAZ9XA&nzaN8w@_+GCnmQfDoMZxeO&XD9l6j=U9( z`M)On?Wy9d0fAwL9-?LC0Kzi}PZ5iTH4rp%9B33ETHov!eAkyNY)HIboUrkQ4yQZI z#LD1trLwt`NRpKq_Ud{d!GY07LAR@W78q7W8k-3e?nY~NUH``U@E&p2V{T_kD?V;dVHW5qJQXHz-My~5yQ|*t%4D;3J~aG`NnfZWY&*yQP3$e^O-usrcc7*r0T_=KX6cb6|oY>Q1)KKQO*fPMpCl~-0H=BZdMa)XO! z0&g(9yHS^?8?P2%c=$!n4?J!DR>FL1y~Om6)zf0_hu;d7vDYL#b?p;PJwXH9wU@H+ zN>wpizJeTIyx|gZ;?9+W4uqnOw=LHYZEsTf_f!~2j;6Ak+DCSax*!Q zEY^@(%LN&2K&!R0$%Pm4z=~?9_(XCrUXrC@>P)y+N_*P68?b1uLPDj;qb34pF8Yfv zF?$~08hBaE8-7hmA%mQ^WP`Ul?$3MZjM7pO1b5{?$((@7guNC9LD=80hqD&GnNmgb zIjskG@TR}Nq|Nkb9?D}prbvDTj#hTfuQ6?25Z8~1B53KGdPZn|~^9I|` zeC5U8sqxFGQv)!*vnD@4_wm9RNBU43p{Kv{9=3&4^341qtDESMznM%^r1g?v7 z#qC-NEi47r#LtF(r~Y}mxLH6pII>xW+1A`(R`vs+pA)4^hF?sK@4B&0AvQk;xa<(NL0+36-(tzrHKYh=WP- zK3QG4|4bt+&hp#}T7+S0)o5swebciP_oNU@WhuUbil4`HB;NJ9;bLt~?0A*Et$EJ(vQ|=V0_EO-om2&Qcnl`~gP&H2&g?QW;<{=| zggyydrRSr5X`_*pDPEddsq@7+LhW`Mw+zaJzx*Sv3jnj*E#J%xkNqqmqu~yoE|Wix zz_0Va`5kGU3n&wva$xMNZ`y&X7N&9*N*&<1+bl#g(e>+RiPho-rA}!Dfwzkt2#% z^D@%Y#f zcrGP(a%u+K7+k+}xt&8;4tI`eR6fW{B;6{QXAkXHeMVy_@v#ynostkNfAHnr-Husn z++w8&t^$Yd$kuT8=ThFxq(yh~Q!=+2G!1)y=Z`E+Dyv;`R=ODRgeGCev}oo~Ua!P& zi744x!Vj)~>S1tb*5p0UHk_LiD2AoZpA43p$EKhZ_PZ(C+2jIREOAc2LEkCuTAP~4 z8F58MoUBg?!y7+Q?9+3Z`Oi}2qUV0auPJ#IW#+Ly<3Ck!I|>|dZW#pEuXCF{VJlza zQn(?pY@3uzTO6@NG$1b7!|<00>E;B6e5Q4=pjZX6#QVhif;2aFmrLYh!BoH%fnJK~ zxWkO&u0iib4RV9{}E=qE?oV@1fWUcuB{+zxK z3fnvVN^S93!KJQ-kXU*v5?|9|P_WOMk~?Nvj*i7Ox#U#XN~JJD|zW z7>Zvk1gP|vUv>!*KC64*GDNW2h34LGbd~xRW#)n-p-yABhgF33ml?lctUxKE-{iR& z1&WFWwMT)d3J$W5B3IpmH~3>%n-LAK{XnNii>s&g!!%rSGJE~&Gc~~PdI;3IPWhuY zwD0$ORmJgDgIZ-x@h6;h$k1IHNYY^;gbj;d6Ow!oDQjQR$E}g%$hor|$0;^f3tHJY zBvXpA{&?g%DnxWsYTt6uNUtSvTtYe0|G3U?mkSq`wV$fITSc|p)P8x^-LG}HHN&Vt zBR(a;^>E1_6^?%jON0eQY?w;Wo@Uu)Xn{G=IBcLtrBFIy-BX&FX9G3oR6MEI*mS5% zqDrz!k1vrCUk_LWv5^UTG?@4>K!9rsgHUPfbK}Wnft#%XYP4K@niL(gyfhtQa#^Sv zW?Q|ks%;T#ObdsPs)pITzkC*A$Wcjsu`h7l#+rBqnTFj2Zk+vdd>Y(r)rYC+JJq0Z z8aOU$_Z?IVj+@4z{JXxnE|E}rUQeT|Au&hs2!;)iC?Q9I5eEU|?FSlnEsb1I z;Jd@xyl;BKw1s~gJ4yy|d~?t02~%;Q4PhTM0xMo}votL-i|EeJv;boBB+!paXHE~ iL50R0nNaKhyEEAT?#y~78H<|v=>OUG+yC6S;r{`)d0GYl literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/en-us_image_0000001416745530.png b/en/application-dev/notification/figures/en-us_image_0000001416745530.png new file mode 100644 index 0000000000000000000000000000000000000000..7a6fd0d9304abef2eb240a3c78a93b73bb9237af GIT binary patch literal 211840 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 z zeL-IbLc?FF6-xi@l}+rhuLHPH*{LEPK!ZM~WFo%``yPW|4sj&#%qI8?H{{IPU%| zm-4AIGkildq9!z@$*OaNcHR3gP8Z561ha#|YZ%X>7&Z#JeiJdEgUc-cmg7~-RAdxs z345Y=H!pPK$P8+#Q*Eyl3~Gu78()S`vN&LLi|rkqFSCu5(}qtjrc#z1C}Q!b8mQHc zZTipPurpKzB_kqrCbU5++UZE=;V#`Sem9Be zb~2~Yt&ZLgE_P?Pt~aKMt7o(cr1k*@ApO=Kn=I*5?*|={J|i&flV#Y2lyx=HYY%}{ ze{RBCXWT3~ch|8Knz$n#4weXH9iQp2xZPit|Nkco=2HT*3GEMkRI_r7<2;jiJp|tS zpZO1%B!b@UHB%QaSqlmp)nJ+>A_{CIg|iOT|EFDH_XoD|gF2gAb?kb{D>|Z_o1r@p zx9hisD*UJztME45W|1bpXLD;kg;TUG18`PEt8D&#`7HM@!?^c_gU=+sRq?B0pyOw; z7R{SgM$)pFlhb4IvkxGXj(fgJ{$0*l3broFs->Q*RVEyXs1X8KhV?UpiO)GlRtU`s z7E<$10_o1isc(5o0{j7jan#f}KI}&ffc?{K8iVAMtkK~EaWa4u<$Q`)v+EOGB%hK? z`OgIf=Ql8*a$2d<+b(;3@jD_r4i{(!p6uuZyQxQ(?dZ3vE+OAvAK>@s)z#Akq!VbV zpGlm&d?s2h?&t$o;KtJceJLPwJKg$AE(YcW06u_ZGG;p8np4cx0v`epmTFw0>q#~g ziCPf_J5)9XO5sMDMY9eXKqYeatw$&q_LuNmW>w4zu$o$|iY=(VE~hbOe_;wH<)K!u z1QWv=*dSW$0i~Iom2FdT^K@XBU36r{LDPt}$kx_vtXs(Uz*hi#3RSJ~l@oMEv{AbC!5srvC!hBEJ;(%$3_w%;z1TpkO6vsIh1^yfq}lQkb%v%s_LZ*KNVTC zSa`B5F3|v=yPW!HYaClIJ&0?|}Vo#!IDowF%b) z_H}8ddUg_NLPi9bDw{etdV4sC)HTUCm04ngCRS()si~?q-zHSj&TihOet3G2<073L z14J>F@k*~az=sw9y@(C+@1cOEFo{B1*5RhIWUbCeTS(pn$0>(s^kcWJ5y6H|C~bOPKW`>Y1T>i3V*ftLx6#TChaI=PnHy<^Jkfd%94 zVDql0EWk>Wx+vhs*z8GW0>T>b4@kvA&nmPKe;T|!wL9D#z>6$?Y9am=e~C7Hd58#x zNE{O;(p(eo{H4gke(!X0*MkhQzxT602WSTGX+pl(tN^!c`3ChikYn{6!k2_svWp@t$BsgBCxFb^Kk*Nm}RcS+Z68v!H@9r`J50PW`+ z51tczDADqk=PND~r4r0biBx26n!TkcwQLXYU!aTnn#;9ekq;;t8g)~_qr|1U=M6MU z{>R0i0qMiC*NxF4Tt6kkbErR21|SsRqTPyEic#_APkf(_04J9K$^-18m|4w4`h-b* z?beQY>Q$n|g-Bmx9G#Y~Y$7!Iq_0m^;SCaxr4nMgXxCk$=Y1O)B))V7|Dm~M{roUU z2mw47X+faUSiek2i}~VLAd@&h0z`AKIR+DDmnIcqXGRW)BHd*zoyY#i8FZ0=N$4@B zq9)lAt27M0xkcb@>zJUgx@}03ylxsj>y};*v*e@T&395#?<}?eR-|1u&$iz(G24#fne)rVBdHG}a3dHL~!hQNN!4Tao2Dw0OsS_X|4vYlnfw;Y`~3c*?p+b4caG70KQqe>RPPZn2AVaRU)VcYHHLQN>W=akOb)1CLuwJvrM4czcH zN7#YFsq2CYi^nu$IVaQnxZBI3H1#fOqKMjNqDlM@tmm7ZUMj%9UynC9H*&PEYVh?e zr@A->%nlmTG5O}s8UDR|=Hqs5^UiX-%|n&oj_S`6c_shYMTTI`nGzL91w2EG8wnkO z{cpE``1bc(_4T!jbUI&$KT8!pVF3~4;`)yQUY8F^tITlbV*0GR6^{Ok75?+$&+?Hq z!SrhtfKsewEtW}~_~k{rm|11T_Kn6l8eb(F-d*US#%fHd zY7-~Y{FRSEPkPSbHbo^xsZnK)71vq6i|ZNtq8BkA0bMO}Olt$f^i~ex-{|t7 zDS)9Y;5eQ5ypqL74XO=O6Z!tD$~)LBotXqn^Jbv+PjSq1sP|~U^Id@hJ20%X?+PZ& z=JSdz0!&df6^Y-)$|REjJ3|CLccfGoQ<=q^4X`jkWXU?`Z(kg=vKe`A^?o8V4kF^mDn6Uveh?)^q#83 zUU;;^r{9}$o^$-ZeU8xkJMt{dKDz{wslxqkR{P#!G-sJx>jU2f1F7f($RNEGX#4{b zqh>|W+em7Vp77?M+2HQIBQ20St!OQ6WNwBRnk8Mv+R3^Ig=cvB8&0jjhBF1{~FQW4&YRLuS13l zo5V&-U(xL9mBIyU)mjx|>Bzr^gFK55%s@hKW%k@ty5<;nXEsP=zBQ@}n0z~N_8+NH zweJFhN6OjlqM`~Nz3AMRABRC)L&RS|kF!w9{%)MEEn=0qHjBxfLM}A4D6&gX+T~)c z`uy#WR|L>@X`*$ZHx}7wVd2sh$@L|` z#OC+WZnfS`Y4xF(rj(B$p6p2Tso01fKn-%^01`rinb&6E%tf93ZeugswA4&idMkDf z#P(AeE)A&ihZgEcUE=rSoW_dt18&e4s12~g1P|ZlF0b(yXRy&A%xd9=m$8a2H|Amq zN%!o*@69i>==8LO8?8S*BRAjggMSLVnmhcLmTk0?)=eMCu(MM*cI&z{@$N|w+%MXn z*~}7pk#%%~=Ay0>di4%RMICuqFh9PhP6O>hEdSzexWB7)1iy6L ziceVXmyTtQWQ3}L&nrc(*0~AW{Y5Y5 zlac7LMYCqrz}~kmNn`HxmOMq(Y5l6RrP#WkjHnnoj02cMgWm9(YV6lDQK5qe>5E=n zT|q1Jy`R|yv&zD3ESg~V1Uq*5bInZiuL5!32r>cD1~`v26oOq$+Ni16J8G^vS6-4MG?8*Ng97G-aFWzD7uIkuV z8I8W|RdBVM?`kupIDDsJ7Si#8KEA?9O^CRt3A04W(WMl;e%W9Gvz;+3i>M$##Y#exS*hu>HOE5HK*MA+ z6i_Akv*6`59Jyc9J4<^l*}auT0(5P_efSH_xu;J zP{QdLHgDz?5PaXMIf4r9=DhGLT8l`er|Ri~OQIqq7*?KZSNxQaP^P~M$3BN%zpf$J zPo8*$wos={ePe4P8~O)%7-D|k9#Pt8gft-RN~&G#$Yz)#uKh8h7%8;eKA^BRP27=` zyN#@0OY*MptKe6fktq>lnJcVmWi6T^7(ks&V=bNGLP2hdq~-d`HOr|XFZz?Xl5^+E zO`o1oAis*=JYq9+Ou;hf1XlVUCidm;b*#&T#w_1d1_yjr5SSyiJFB`o7&5)ObE))B zQsdaY7kr!P);8YL*zXd!c=#~8Pf{eO`@)GXD5OYR@9ut;qsi#vQ{-$`DzptfT0#*_ zTN^yRbg65RU_t_?ICL67b&pg(U~$ z!=e4Fvz5hLdx5OgsLF#__5MhC^%sf`e}aQ6iSl=OsEle6opE&nJCYSJP)&c z!^57`F7n#td*%7QG}!|g6>oH}yuNgo;B%WG_CBK!!K{F-mDWPD1ogmT$K@)Y#=Kt= zgA@xlyC&{gTSn)d(@n^@*4%SLDUi>k(UToX26=Vk*gReCx=UcJE>&+*lj>XWQfU6u z&JF8S7@_a&5q_H0(2;SbXlXg9#bi3@dM)-sj3p9FE2cH%j%|qfjL!O@SPv=1v>Q^i zx;tR1*J5whI_)z5H9OO;#?7rn5L{Dq71H&|at_sVvN?$|B0;c)w=zD@uH=q)|4+@N zz1^Kgg*~AE+Do0wwCnkh)k41j+4TJCBHB}x{xylsF+vyyp9)qokiAg1o+t9{2^`YJ9g^C#YX3i41*pbt?Bbkwf~;l&eF9Wo3vFs2)}U2l)~?>Tcio%N zT&)LxpGblm4Te9Of7=#rNH$YtzCGu|= z7(V0&yON}qEyvG4wa!;3PKeEaw7o_@{7}|lw4u20bJpH#t2gM@tncbT@CHK-_QB_y z%tq3(leNgWM|AOgR-Ky7jb)$P#$roTdB9@VpSznM8s^I@OG#FuUsovW0sP3+CDZoI zv1Az@>=;CI+PR$DI%n5!ZdI-w95VYv_vlEI<;G`vV>4jab$)K9(Ja_ia5f}uFC=jq-ZVArySajPte(@+PYV?!KmhGp>t7_!4^$#~^py;#Nz@JE^;;BFy z?PV&u{x5RsFAj}A5L6aE5i4)CweIktH6gDLalZ;M(F{UTxr?kg7)Q5zi`UvbES>*c za=4Xx*Q@?O-bPCiAcy@F5HVU>(hZI zh!iSZ1>qbgf?XzyS7EUe#@c1^VXditLo)Q95+QQKxzw`T+$5fP8hZyK&?>xJ4bi^E!4&4LJOdyiWp4;oOcXl=Uo zqW8O35AM&A9+l3Ao1;)el7Cp;=_{=_n@N3ei+{M+5CK=5**zt~=fBtiYX zy_905|3S{hbmd-^@~S^FAjsiP8%fva&${OPw!dO7;LJC4@%_#9qmALQoWb0fyfT+DRIH-lVUu37)gJ5poz(1{O#cnp*UV zr}if)^98bQq){RWDax>i1bz{#OZKH_RGug>NkH4U8M-9=ay553=p#^UND~g%f8Frk zZ>~O&K@f^#bWeTn7oUjqJ|5l1a!Y@QVVV}^?TudWbnih%;#$g~XT&X?72d(v2MdZn2>$mI19+IQMsrai z3M=}EU{A-xvr6pK6|#{sg%#cc^A8bbK}*=skXf=KIXoV_RKq+^;qM{SSRoD9xl&1 z+IUm(ir}*rCae{B+6qaV&twVq^KT?C4Jq?$gUl%Qs>FU?nF;qFOrI^Y)2YEHN^1`> z$4tO0wCQL14t4i69Vu^eR^HJ>eLpuAnO&1^xb_%qdGwXbypo8@y zi~KPnHjh9|KuCKsv}Y zSk3r{3xK!b)n7KpTe7L7AxueZlb; zxk~9Shd1X>RySqu#8>i;;I#R5Tx|>9@n&B}_<26&VLme!Zn$soR(mPjB2hjoZtdX^ z6hz1Wb%1O{Z~M}%`wa7PmTS&&UVQ4_E_zPxhMc=xbb_23`r%;7{z38*S@k!rmP)nN zi#zDBuuv(i3gS^^I&wZ9OKx94S%+hj4|)hbz2m%|E%37gNkAt zic2uSfyIPD9}&)n>E4QV=fMy$ca!w|1)5BW$M2zGS?oaHWg)E6@aF}M7WAhVSsc>i zoYQ(-fJaqqlHGOht)XOY5hdbBJP6Wj{hjnKFD7gZM?d7hw4&ta`_YPc&)I1htg#7zmVO5ejR~pOl<`1s8g@GFdbdS z&1WLsEk=`2p#NZ}6eY>>5(~40X5GWj_AU=!| zGs8YKc}NZp{~+K@ih_;+=I}O}1?yz=C~w*DVCei5tc8!B=LdLcs5Wua%bSBVi`Y5- zfFnXtv`=g@%1Fb{de!Ur35F;mxFqt(y+c=Gj(ombL@$b-#U|Vtg*>B`;*dzl4vP@f z7HzrJSDfrPQ+0;V*n0Qhwv3ea{nneeFc~d<)zJBiyw>FC@qFKfm*>lotd29?eF^6Fm>^coJQEfs5$S-r|35T7oN?%)En>jaovq9KAOw=!-KP$D9~8 zc(n+tt4l_C^**9*FyN9nEuxV26$PCJ4&1o!D;~ey`DDbHSYO4j4lLn$-z1+_3RJ<3 zoR=q}PH>D;(g@sU^#D<0j{|e-#f6fr-Co4f;rl9^8(%1;5mWNB_iam53AKNqbzd7 zRVsCEM5@Omg*z= z*vx6h0Z4ub!;(|KXteOj(H&jLV}1%e7=``G3XKkIlt@M+jcHId^bEowROd=h?|XS3 z6MYD+r+v)aaG;NVe&1QWEN->DP%dJ8UKiBYd+(o+E>44#RMds9ANf)Bn)IzE99>DN zQAZoOfj7z?uH3wbrGg)xKr6lLyiDlQ`|g|emvqD<9S|MVhyet&CBTtuCc)^;7O1+t zMOGkz1V;u7em18(z@sou9)|MU^rH8FkH$`*kK2rOe3CXeMY;sHCDw2^6Qnh*CFARl;)4Cw}V&%4v%E8I7g!TG*0AG z?e-y0zT4B_=4-=1mZ8G(G-uXNWoek{mx;W}R>%83d@^$X@e>k9#xTP9Lwx6Cq z6rb!EhkXPPk5LRmK(71Y3eUGBT&^HniI8ERT3#TZ_J7ov4m^K8UKL7jUGit=O_xJ} zqU28`Ive@6`eHDWJM~MBbw2Pd$awd`ZLr@sat>qVbFKLj%Dmem?CMC~+*M1SJr;v8 z6rsy2(qgfEvRd_*DyG?a$Y(mYiJ++pAO!teewN6@XS}s_uNxq}-{;BwovuMkGC9=m`f=(hK zKO%s#EWkecZ)Pt$@sk3!+YvV&KGE(Kr`0*vj6ae}=y0jdg-nr2+W&htwNjW> zQ3%m)iBCLRx#h7lcimie#?G@mj0^aeW`-uW3I;%pFrX*FG*(^E=L*5J?IN#BD5$5){z|XM6 zd$>5S1_N9pO}2NFT3f=IxXHH#Nkh-?Mb1_gpt;cvsLrzRPq_7qHi5hDhUTVpZRd6b z7=vDBQo2}b67%XDPn52Gj^3GmUt^){ zje^daeo|=K5W0HpG6)prNKYQ;C>k~i?s)fp8f`mchp6Fsk{Z&it{Mu_c7^+&Pn96m zBJH{kTGtU;=!7!Q63h492N-;rgnywIq=sv?vQ$*2VB@<87~K)k6XwXiuT2Od;qxG4 zDu}P-)IA%HH3e3Y~03r1A^FqcDlEytgB)4Vuu z?`mZ$*Ci*RN7KFDSceXP0F4DoMVgqz1uI!YtBwm?zYv<=oyjK+O%2>UDbT}(X^~Yq zbr#14oi0jYkFgoOe1rzoy|K4(w<1BX_+c*$p+;*|3%#3jUjF5EX5zRe3HMkITUNt} zK6^$7&0A;juxmM#^atnKZyFxflGLq+EP3@MIFFRlzO%|Sygv!-?VL?G(CN}Xq>-IT z>}fL2T3s6O{9JeQQ6P)EzlBE5?EBHF*YgUiTIif-2Q;@;I6%K_J zk2CccPiWd3gt3E#HYkntxO>NlIEwX{2E-I;Vxvj_$x?0+1!OS5^GQKK=VG~8m1lUe z?I6pI6Gv3h2HR8@Oi=sPN++S%qQ8D@;x?NIi$l>??y&&%uZsGIJLVw8s z>BXPHOUgG=2^@+9_*wae54Lf>o$&J&b~L2gb%+Z;!6>lG!-wzH->ZePy#vtvzP`a)maNT<{1yHs!Wi;t z40BFN5e(CeU!E6f#pX$4Wf0@e*W!kBgbJVh@~v%#I3_&>j3L%}0Z9qQ4QaWsc+=Cv<%T*x!p_5j_^4 zGNn;K3FZ7@zL3_eip^SFZ}J#u=>WAUQltQLS^f9fM0buD&mjxdgyaJQvJf7LjdOm zFjy|6l?8j=W1FTn{Vtbx9s`XEQw0)XV`N_D2Fr~#<^LCHZTW1H*!qiYl@JCzEK$jz z42S|5fhJPFujfsJb{>PecB;)hVBG^l-_yJDU$!0)rCEK9nuJC%f;#zBLWzO6PUM(V zo+dIT{AKt!l@jT5WfGlImAIEbz4hLqH2(5^)+i9xr*GM+-|uZq5rsOfbj6s+L&B<@ zInIKEhQ3EuWX{1au$lR4OAWtqOoi#2m_ZJ`85ge^*RN|y6-e@Y_#ok4n;wv143Y~t zt=}=3x}l%}f=71c61VC`YE7)~Dk^c&k1yjej92?EF-<3AqX0bHTGcYv4|@8&N#`A8 zou-2jYnFOONYGR!G?SSI`T>O}ME`A4l18x%%6p(vihZS+#uyWhvN%JfN%%aDgv~$M zff+^aZ^Ak^w*E*nGQUAwix}il^*c35$py=#m0;;oTifG|QoQ?t7UdjHrSk67a^EiB z55(}%(n-&;`;O_GX#}CK2i<*O)TsIQWYS;n;%4gfzAh4eTM0z9H-_q=y`v!foIv}I z=Q55G4;E@;MA&L4=c$Q}9S}sD;c*Z#4deHypc>F2_CZPT3|) z41QmE=Edz=gw=p3r=ThEfDc*t0gT=vxx9C8im*Ti{ob^seua%rX2lY4Y|iZ9yHBG; zfKC~B>XCamu2N>76|h-Lhq6MN)9_KI&z-$SiBZaI2D5K6q_~bwM}&RL-1et6?RX6xweKhY$Hpp{l0~5>a^D()h%AkzmWrP90 z9dx=1bq%@2kBepjf@i4lyo+8043;5|@(u7C*g}#GT;to*0O}E}iJ1hmicS<6w)lRz z_GR-{ljqQ2^Q+VNZ$rhTcBO3V^wRC7FH}j`2#AX)ho3_=o{GMCp6FM#2o-%?Olrdw zXBn=0{UgOfuGh{=vQ zW$WkHkahWUwX<)EDEyL(GyrdnSuUB9(D+KX`dSkbbZ?;!%;s z87;!HF{Ov{&E-8B#v6Oe&XFb!nPOW^w~Zuzb@z1&*N)i*o47%~{Mu zpB2OllDO&b{$0J-qceT$N$bW^lqtCQVwY#1&D(Ve;!j<4WqCZBumI(IW_88r`s9;> zhkR|#>XoxE0=Gq+$|%#>@LF4>4uwgFJ~dPeQ)Wj|_^9lSS@!W!1(Z1A&8phQMh9gJ zHwk-J=V{*;z-f{*b+tZg`(gT2mYzKUxY{rnX8TqMon1^*kFK7%Y1r>6vT z9p#L2vGJU^wTKUTOh5+7D`h7kd0dJf#nAMEa+oV6WsRm*>I1UfJgSiIS>*v1>I8?i zefan_{$4tHb?{vzBhCQE<3iGeJ)na_kpeS3`U@c0alg2|c~+(H<$W|SkX~4AMnhNt zvEZ@5YYL}^;H${-MUH94s5P20n^8`gC^mV?(bw8vBIC0bTr{6Xx|eC{w?0DQ0sf}L z4|-%7_63|csiTFDQ2wI9cPWK-EDP)JZTUPV1<%LP(W5N-&w@w|2nZOoV{J1%g|k&+b#kXkWUgKrq!q#z!1Rw&S#5Zw>eZG~G+)too#?&`KHNugzlOFtY`beq_lQK^eVF)VS&F zSe0PN2|ZpDy0dBaic*|5-Y8>ccU?}!#Wabg9A4coP$^<;bUek^>93umLTc}W|86{e zAR?A{`5Bmozde)r@5H}#6p3}AM&_#g{W*Z{YyME=k5u}s-9C>-;xJEd=H!DpZ+vd$ zVy+t{q}br~btLcYNfZko8i`|bHtqhY@0Hjx8j-#P4GP*a-ASK3btiyO#_W?*MhZQK zMEC0h-A6W2AioO%IlT~CPSU2%&YnLLqG_TS?qZo^wN~)~Q5y*LU;?NhNhj7&u2%G+ zWGY%D2B*j&Bp`-nEf8J?vG7*$RT}}3hlBSo zdJLhH5D+8d#tt0Q+0uX={2x722lx@{b$g&;bcBRVFYY5oc3|xw;;UK4pWk&aS4Ya= zo|IQ|?ITNBrd;B?JRiS3_9d18Y$?@mhl^wXS1DXL5XeagQxyqUhML}ru27EKM2kFlgD~J7 zY~1n@rUg*;cCkDVf=|3Ik%S1}{K&IP{EK)mU0mtL5O z54vm)=EKlp-j;7??Z&jYe6KV6vLfgI!=6W7pLCz1Qie=?BsIIbMb*s&Sb0d^*4800 z+K%n02w5mdE9JV4Mm>Z(4hkynVBp5LJvpc`e%wd;)=w@+;g6WErqS0t+mkB_G5SE@ zG_1%{XXESb^eo&_37!KRv3P>3=%&68JrZ&toXC67A@;#~YP zfPY`CgjCrmK|&ibL;y~Pf^iZ?e4QHdkvAd0z0~LJvHYKHm}uJmVRt?5X_Zq$!6cIx zZ7AgUp?m@c_{^X13}2tgJJL$wQg?tzjUK<@2URn_z&X+y!&|6zqdJZz1$d=a9O?~v zC{bWR62&`54}xU9zC%M-T>Ad+b96$=IkA)`5lRpy8l^}=0Zcq#8S3-|w+aTDE>3); zQNz0&Z>C2}7{;os3_6~z_w*c`ix;i;^a-&SG>#DupjOmeVjN0V+a{fCCT>7CLrdL} zgGPf(lKYU+$PBw?2L;u7Y}%^74Zx)KUd)1LA*s-wg+3hT4kRHM!Ws(!jr$P+S#4Zn zV2<9GSZ;X=xNwVAV08fGEPCyP>9F46)-mpd#&7CmNfzn$WdO@cv@aJjDyFxFh9A%g z`S_2{k#Cgz`QDiPCz4tfhrbtfh!fbc7rp>J>p=D}c7`AS!FjdilnCfmHx7SKu|#~i zLLIUS0y-ey03cal#{1_HAizjC#RPXvU zf*Yz&TYsESUXe27KcMj5=e<2*!e#L&O%Cp~kpo+e{szExQ^Wc?jJ3OCjYHMbqcuF< zpjH`)LQ|gK8$A9{S`DiR>WfhKUEL1;1C$+*;)=yfBCV2gs4`{fh zKQR(y?LV#0-Pt30f}@|n&RTd^C%SQdYYPwM`FtC2<}WmGWd|Bddbf@xf(|r=SiLap zs0a*eD`jJMuoGLZ_zwr}=Tf<5YXBMBt9xS(6t2vXXt~5&$bPlCrN<$~mZh%Sg_k;kLsr*yD2L)& zI$h$e*n}?8DxJ3s*HlCG30OIx-NmvTKv&)k2VK`)Nkldx#Eye!q9q*$Gn=zFr%y~!<7R6i$@9Xf<6ZX@*@aRH(5A%k-y#*<_(u`?_)0 zXG&zMa}CS+&my8*Mz1d$=jSKLVHOodms*d`GMns}rS?OOb_}>w3510cFvk!+f>dOG zk?`ZMAP}%ZmYo5{Os+`h!zC~DFa80ex0?+>8GE}tdqc5g$JLFaM{0PziJCq}@yZ-% zwD);R>)Uy76gBR0;Cg?c&mQ6%%Kc`gd6M(~~jJd9QHSx+baJ znV^0+iQe6)8d*jKVP5C0ZP@7EuekDtTb1c^*YSDhZ&QZ#zpZpD%ADB*dx_h23_E>A z(Fr$|5Wf+8mF-&O*I$0^Q8K&g*eN2ul^i`3Ob#jctX>Ikmag{;wh;t^ zptiQeW7Y270V2Ziu$ShJ8-7793$jWOm~O8&7|mAkN)3M{iq zlGWNpw@$^3G(T6qW1UD0KT z?OcQ)FQsd(C!~_uv~|~2kB-W?sV2^u4zXOkh(fqkWhAJ2QsM{60vIV<)gL+4IR6Vr zuU5|^xrDJcS)0ZaWbU<4rRYr**b8$tvGhWIqy|{iIaM|hi^~m!fM6^Vsee0w?Az$0 zNn$wKUrDa^V4p_-01biPUA_S3fDu?QW@!d4n+7r~C&(mzU}O{fJ6rGL?eLjRtF^GQ za~1d9gP9$ONbs6G&~nlx(Sd!4smDB&jKOb?0g=Zy7172`rVggt&qWXDJMVx+jhWrW`u@ypJU+$tc%M5Q4znTQ~eS1M2|yNsb=BEZ}IKr(qimuwM9 z#g;J25p;tPW@CJD4MiCsG-%aWr$n8jy?s#|yBLC;ZfsAph}~w=@4{7`?c{iT_GuS&CW_VKm2J zZh@bHB^jnY#**!G?9(*CySAKP>$yCt!|VE_Ge0?0>>!D+$T6r z+GnCM$RsmAS>A{u5$636x5?*J6dmr>l}>l*F3q?5e=Rj4V9OtygQfW$W2ZFPiGk>d(Dq z_t-W-{W(~dKD)>&0xQKxb*w_A#$!M|{Rss0A1>I-+K;oc@jG-|hGB<>D+NHV%eOmG zSY~T?ZQGURPPPfd8!r%aWN_ZAspP=vLHI4eAhn!S0>zBqvG6*H9*#bAkH6jkKgWqT_(z_&YL zlTWel?&opPCM3pDS`s+*5VmjrdRM|SFz5Fci47S?qWI~|zhGMba`Crad7b>sL!dji zIo{YdIv?ury7Eab0^2MRsHh>fqAJR%EEG$$1kwlHBtRGd#=kC`LOY7U9{kHu%DHC? z7qY$4_zwWFHSQpg6JZ8^qERgI02nGHZP@S3?50m)Ebxx3S5y)yjyp)SbO z9z&e{wgZW+as2b3xJtY_WAgQh$>xY319GL?(OhI!-P6lfDKZi0S|)h&9o7CwNIy%E z^x*436~^kPlQbC@RMr!Oj#NGAtC8}d<1mLc{LY4|n{f*%{CNSx#;~R)j?;I-2NNQ2 zU;2jXUuxM7dzik@Zh9&Ii7H~m*UM1L60$nE?+=b&Iee#Z&j<6$rBGbe!* z80CT+sx+2U68Sp;8|b2#NDHW`nLCI1aWbp+t9$Bp(zyVz(XwEeE&oS^O6FQ@W;0!& zK${`hjfL*CM=0R{3JEf`T`V5GS@{HZ>+v}CN;)Oq%h4G7^ct2QsEeYb$iM;B^7QXh zvT(R2---gSH=p)Vv^S+%3f^V6SnlG^XK^GPn4_hx>324`icAI@5tU7q3cI?s`;n4J z7>3#!YAJxe15?VLMLUWHyFLXZj}g3-6NOUkiDUS+{ymh)W&&@z7&A=3@Ti9!*mtV& zPQLhIHm=?}ck+Klg`VB+Vs0(}$BpsNMKkm#lA=FhsNeveV^keHwc(;yqPH5Zg-UbO z&sRV;-*?t5-&LRXJ`&Alnc9F&uB&%#4+cix$!TVR16=6VoHm8cI{w;C62TlWBOFsc!`QQG!LT(yj1QG6sKZCT9c@z_M#__h zRVOe3nBiO@elKsMdvl-J3f*ed1~Q#<-H-Egi*kCc^Fn_Avb+y5=dGTkjPJM59z=R6VPAQD- z>RtNhyQO5CQB`iHj;{4l#0k>A(|n^G46@rUvbLR@oZ~c+<`oxm;pLfT=P`57omxO= zG}tp+Gim-IdPZ$J9T^Q%P!Ep+3g)h>_q$2R(l|Yz{RDq+y9%6 z@IaC0N~KH>aHc|!cA%b)ouX&F_x|t@w&t-VK>Z1oi}m5tP7;@Q=8od^JR6)WAO%Eg zL>WfGglGU=v5b2p5-r%7ZO_sh%oeK}r4lXVz7co<-5(Sf<{1<^8a^%%mm)ig$fg1# zeOQ7_gN?hyQ%lBw!EO1#I*Nqvc>hDo_LJ8$sqmA{=H5H*b>3y=buGJpnz|ryDV;yM zZ%(Gx?W3O!kOCVk)fmAV+NmHI;OXA-rfw1;REnLw;L)>++18GviAu2QaPyDEQ-5r z*`J}75;}9LNSU9tts43ac{JC+rda3D{vjj>*sP$J&uHi}4jN&nS331Bv zTNNH+QEZhD@M2h7NCDD2H2G{;4^;?eMv@&1dLskYIvL! zRm`Yb+Q^35({9Ne1YyWS$)Z#2{qr0qXHVY65rrDP@rBIlj2ltcMqrD)Acm*LH3a%^ zW2snFO(_RnVU5gyhz8Ik7}U64??-5%qL?K~q?c+T^p`#mxbc3@$yO5rgnT#F|6E^M3o6$%2SY%9!mf-nrDi6LdC*~R^hm`7h({@BzR!lqgT5{}--Xetb}9UB2XQ2>J5QG5qP zB~3e&lTE$ihBX9=7B|eMA8f}SytQ_hLv&C`uU_2oSrDoSH*7$x;u;D(qmG9+Xdl6^ zlyDH5=}0k)Dy1HD^Ch~FUd!!QFyI`WMCb+>I3zk_F-0iVV zfen@mlw$GR(swu|qy+TtTnlH(tdbfzam5|~S1X93+r~%mh zVF(+D69A7}EYL^;UB?It9=H+WpA@iE^qS8-=`;=lMi;V8*pS@ueERP>7X6fa3^__; zghYZqoCjuieeyFplo9LqVvtr*j{uf5b~t?_ntHu@5E;yXz%TyMI{#P9!D$)YWK+aR zcYwGE5Y_9y@J%OGm-|*Nk1U@=BST`BAVt~84Riuzl#IPrmcxpIhg|)m@VrGL?1O*a z{f-w@*Uq&7v_3%m#UA5~Zp9W31pQ0bmHBHC{Tl-KvIfAygg^cbFBSvD;uVKPTI3{t z86sJ^WFu4w3Jhu_Xy6*oHSW^m9L9rv$!Gnaq5VY=wKGa)FgJ<34O|Vsj-|afP}o!e zCBH{5v=5+(Nq8TL`*^NkaY7XvF?l0A_0FZe7tPo_x%YTxE4yf%6Cf2oiW>EY_HQ4m zKPFp>z#Sm*=>d8nm_Yu`oL1T*8JnOKdbMF|#xh-$8JJp@E^iJrolbpPyl;N`1TL13 z0_=k%QoxP2Fbr_1ZIlOCba=oj$Yz<&asa3T-PNFQEZ_}*reh?ky(0elL4>3ILT)2g zW1yV7Cp9SDs_+SqbXvlo1q47nRODQ)Qy>G&R^Xy$q#{G^>OJ-Qv%Wg%>qTJ;Wd606 zHl)x&boMEP)7BnfC$Nkr?0tJ77MjzXKEeF3qfZg3(f#}oL=zc+{T0=i%y(@vsJ=?x`fNttQR8Y?6dF%Q~j3W2D z&tXF`dSL4FOJL&KF{@jjUms~%?>c$}2_vM(kN$`K7mD9YVuJ;@Xse<%zw3LB^+ngW z)u7g52@PIKRs?`1B$Y3UX?-_72Ial+k4L3pP_sWi9? z5##-eyE>Q1&;uW`39>H1rqdvhE`P*7^6Y}mONGL^g#R|a0}D;qv(LH@P>>(2k=F3E zXHXRw>>z=C>1G$#5meu>JhZg~v4EDeThmtO@3;;(iKrC>ZGOcWe2siK?0dcL8lQLL zT1;#?EAQYnYn$}N$Q_E&^quuMsq#zm4WI8#;W+6%@pW%c1!EMOJnekk^&Hd48?x4a zs3=;6^j5@mKJ9s|Q7XG~=LqY=A|P;`$JqCWk{E0^)kZVb9e@40sl!seR$H zyBV;VT|GHrI>f0?3!)@q63so1S2d1fjZyMCvLOYdPXH1VEnwsM{wvvv0r*iwkg{g3 z3kD=FPy=PI85k&P+-eKrBzDuKoYasK51>z2?*B$FmRm|cX{tIrNDy2grD~ID+^S>x zkJ&L`pG(*-?jeHf|EKk1j{zbL+%X^UGVVC7RTgKDqdUiUnM!rx&qW<-7K=B(g`s2=)S(=a z>@x%!22F9RAbT=2Mb#LtgR1#zl=e8UFlphYxQ&QEP7!AXLDTbuogQXy*Y0|1w$h?5%Tq#m8 zXfjbK2Kc~u0h7fuDnQJ0CuaCErl^;H7n-r)eLq1^NYU@!Gw9PGb>1GcrdFu;V&$EP4wQP;6`8IFEgDE&tCTu z+Tg24jZD336INNR#ar=lgI<~>1Rw?qm67}f#-2?A0WQnFb^I4vvbv{>QRF)7UI>k> z-$q+al07usrbQ@ss@d&v-`k*ji+Jun{Q{OpP_)5Ep1^(jF>7Lzt`*bP^sNWSS>Urr z?CoH;X7X9G^XJC$bE~J&7E(x*#KF1>AtqxplkL}MtTos5e#4STI1n)O@7;ok8l6A7 zgjO3$ra(|=@#R+BL%xQyr(Vl$_3 zJh_uHE9CMvgGD}WSs^^5=5qOa6PMzVClEdd`{yy296#T~J7C4;C5K3kUrW_LV68b| zP|?W0b5He1vhP2(0tsk`JXRPRQ(yAe9zD#v#`Umv*ZkipQ5&RryC(pXR67n33ORJ% znLd(-*PhKeiUKjCmlp*I%J1nEGL?n7(Asmu!w=4YXv5CprScT0Sz6ZT?1JjWoM|!8 ze6nZ@mv0@XSv41iKS|=1OEt@hs~ZMznD04~_$6==IJX_Uq_L$r8>_36zXi)T%&vzA z&lMHY`0C9!%o^ni%d6%5jGPy+Ljq)up*E|jJTf3tr#BN`!_V1>Y-BlDV^?0Pg`MNJ zD7Jj^COoI77MheOaa7fsPXVAXkQ*v$Wbk&;Q!sYf9G`r;tGMF2eM}86H?ZS=y18EC zeZMbz$O5V9bCh``<(?S$?abZ_sU5ie_5%KU)pjRPtU?;!izVRpSXyW1e7&WEsL@7V z_90Wn*Qc__jKHB%dPv}&KikP{NabxtE!J8RDe>(mI?*^&lFLr0SuSR zPv#DE>B{G0pmG)hgg!;`gbBvA2t&_MZe>8|HGR26tx7YJD+B@VRgR@vCN3W?SPG2< z%@p`3eanw1O}G|`lljb){RFl_%@GRz1}S(zg4(`jdh>|7+Q!GA1rxr<&(4AxRT2VTX22CAL8fVjD83T#3-VX8A2O4Ue1W}r`jx7o%Ai(4^I}1*!1;Dy}Moa|* zB0_`U<*9d5*iUly69d~Uv6xS3F zYoZYjYAM$)Z>NjByyH_^bv)C++`B5HI-M6E@%D9qB?Kv$2=by$YPrex5!4m;G0i$_ zIog`rl&*ZFh_&dq)J@(j!F{)uxzFFlJ+$u@3ivU$Zf5a^O=y}fxDWsn1$XRwYQZ}G ziN>U3UN%r^!BlaH3KVd%Q^xsHsci;`wP%Cw79a1pRj?eWyI*fA*YV#gO(vWP^6X~2 z;Ce+`Gc^g-7(pV606mcJirr{ti=X$O8It&QO7gWiz=VkYvhX1g3U~=&8;K&y3Pn7> zd5mdkRfVr4QSG7yyamKLEw&Keb+n-YGIgt>30E=yx}@A4I{;Of4aSjALp& z4QW`S6BRspLttU{IjusvpB0<^`Hyi)+=FzB?hfTaA=m`Tga68(O0qwRD5Sg-n$=+N zL}}%W0u~wIH5_tk1K;`T#K8{IFD1IWx(Sj`77QKgWNA&U`r*SB2gpTsmuFU?&?3x*)O1lqcQ ze!{Ma64Bj(87;3q(Mv9O6Q+=-31ouE)EQWl+`tu1XTb-)>V*-Le_BohG|*z7VWJfB zFMjcU-q`lCci9VO(h;~@TG9ZI)bPjvZ?NSZEi^4g82q1NCQc|ZrUMeb4g)-vUX+NrcfiyC+fHPFxvPNHbe_eFGwQmQb8SfwWm3gbTm z#3Ya|nTLSp8iT;MRQ)kR^nqbjiL{ylx0 z^(XR>Ds-R8pU%jm8~YffKcDu(9y#2E``#YEKZuWm5q}k|-H|Hqg!{iKfOp#_&tFZ+ z^;Q$8ztjsI9-kfTab1fm>16n(jxIm^CB6u}_1C#`*fkdD=>2xqOlSBePw;n||k=v^-1||AIWx4aF5RT4%n(`z~J9)8{p?hj}0*0Glzs zr)Z)a#97Z62Xf%kh`~kBFy5OzzdsQq%k49HxJHBA4WPk>j4P>DkPmTNAe2-xVueBj z%2m5ApspHs)uP}wxi421A%O{i$xKc&fY18h|9^aiy$Y9IYGv`ommo8+T4qf*DM$N& z3~;H-`N^{ryh>{ClU1k|Ay=O5hKYfg((t{)

      )z)Cr1%KLx!1bL|4LqOgOVzqtxEyw!VL;jZWz81kn=Hg&-AI707vsS+ zJCVO(>OK+#K-I)IMBiRz6}CJvQfC!``Q$VT>hEY9xrf|aMpoU6cDgY+M^G6M&PoY@}@LHmh zt8S2U7*7M?^FG6kxhG7&8kR`ZlIpp2-PZ1rSZFgqr&wppBx|Ta zElsY_7z<(mq7w*a%QBc*F`?}8zKcpxop+mgfqY)}W&s5jx|Vksw4H8wY&pMO*LpAR z^wVxB>mUw4wUBO3BQg5jKUAOkAH}l&LWtd)x#?HIA9k$e(3MA;Pve!x}(^OLv# zaSwjA4KSq!+vw_uhz>fFBumHfM*x0KN({hX^yyMZaxyv5_f7PxW9RyZI2Kd{OO;GJ zD@*O1t**7RH#Og6GfG)RZsz{A*7 z<_TafcE*|d(!!dfjBXInkdQn-k@&D8!2QqB&18s4?;VIQv514&uxNM)dzPWl5zjXAMDdHd~}E<-HT8?V$M6Z-L?U~ zYx6he%n|_OSPivgYYxk!jNWg)N(s2=t7`)b5{_^rf$=u*>pKHT0kex%iU*4Z%C`&` zQw2IrDfMRga9R40D0TyOIa(}Qj?7Mk5;XNBikz7+T#s7C#aYR>opySOww%tfK;x{M zizK$Mc>&o&Uw^D9pX=%Ic|Ll@hm+4Rj1N+&XfmHVTs#4LXlb;7RB^w6#||}Is>ZNk z0PYADP`7!%Lznyd9NB79zh%c-@jqUGZhx2q5^!d_SJ8Y4)o%zs)FPAwBM5d}-%$;q3;oU@DsS<5O1TJdBT_H6t)p=<;Y!K@sq8QXE zhlBg4w@1~fGl%S^#9fLI49zkA@F;2;n<)Coi~9p%ve)OWUju|=fuFCR9(@-Nd6)`H z9nP<>uvA6K)KgOM=||chUf#Xk`oAGswz)W+o_#vfF&iaJViw0`8kZCQ8eV3aQe^X) z&0C{a3C@<8ezT2~^d zlWdW{J$O97-fbilH|zkt^@ICi7Qsm`E+HBlM#mb<>Iwt=Zh>iLKXD$JVZ#NU%tScH zwlOi_w@()R?K&`0{F!R;bUeCq73;dnSC|a%s*=7N(K_!3KV4{ty|{gFhI4fF`H-2h zlf^IMt8qhTc7J-@BzPIUT~+NOCf3gu$VTPeNh1Zu#WzO|`%w)!-$(q@@$y@$70vt` zelx*YZ&55li5)*$+!Jq10?3IHR7O~MgI#q%){N=z%tNC9KFr)Xoor>tl2e% z^<{xe7JZ($*iLmzEJu-ZmVnP!q~i*RV~BAGKXf`rtx?ZC@}Cji)iA)0!#+Ssjf^*z zzzAa|(Ahe4w1up|P&|h$X1WoZCc@hjFirqlBj~Dp{5QYI8V4*px&z%=I&x$aSw?=R zBP?9Rsu%#G`G)5I{3Hre<;1Px$sHE1>=x71_I!MR0_YZQaB=#k@ooyY2X$cfPXvS2 z0$ZNyWx}CNTwc>!mF&B@iJa({n^SBmHsln^knirkjzXz1`-h!7BD}r9d+ze<)IEY9 zH%@QT{2h80g>qz}dhU)73_Tvtb{TKTnE1M19T1aFa;|)(w9odCT#s%L4d3cvcT6jy|0H@=7$S~Ojh9AkwHbpnSY%CWk`@Z%1m~BG&ru-9&tvgVmz`_PV@t3M9!$V z|B$WWZWETdPsxp2a4VECb7rZ#%_CW^{tE9*qRRX9b!PS+U5YFfC2}ZL++7nzP$Zf2ZJvI z2Ry||=`5w|>Q$qc;81`>a?_Qh4?HvtTHSDD@5>NZ;Bbl;k#gRAv}Pmvo5$3{UWqTs z!HeS4A{xP{r&V zhHaK0s)a2JU~yX9dmxgrmBZ`s;vphW8pFFHfY?{O{vJ;*($9EvCbr_jO{7uTto5^qLl5P z`<8$W&ZL^r*gfVsYLx2L7nh5)gN%>e1g8s9GU>rIX9k{#%`u~y$q-CR6NI^Gu%oy zw4v*u|B?+#U(9E)1z=OFP5!FGW_&fBeizd1XYp?a1tP7?1= zNb~fMglh!nQ+E1ePQ#$Y=}fmbW4Z!_$s<1P+e*p9ObCSF=EvAi6Islx**GO%1Vx{C z9m<}rS#FXxBjSzrcb@2TWya&X^qk#Ddai!JX~YU`(GI@3!XEj84i&Ktx9k(;`XN-y zc}Ux2D#sqCfM6%$8{DC5kSnLSCWIa$0B9lxAFZ<%Bf}Ar+?rbJ-JR$aN^yYgiZN2Q zR!wlHd1gyq21OlPTnfcCr>MfV+3f@d^{JPTuXiT8@aUJo3fBy~!BkFgN74)j8JnpP zVgcD6+99{3Cd5+-C%KB}i@iI)Y2($#LG9%ItH5>dS!xULw7cmRG1_u#!>-xLl>jeK znC495tglA!Xqk>Xf&UtC$X&=S!72YQ9NO=BO_YkSHvj3wh|y?ks{!s>oBwaX&wL4! zqk7e5xOe{`dN=+_V5L>ESHEbA2?UyQ+;4wcC4Jw7#+aHr*3wI7Ze_mevibFBgXpE} z>hC&+)mrY|TGy^xz-EIe;uuMu`|+~<+h=~aPd)S=0g^o*^M6M}zP~!>;r;PAJ;tBC zN`&ecq+fNl>Op@apB)GFIp2CDf(ru;oGNfE0eXp(lOERgj($i26`ig@3wR zg-7Q98tKy^rTHl$39j#LXM>}!BUAyKojexc{!ZTxj6D5(08Is)f?D#z$EFSx8ztBtUe?G~3 zee!}^9&j#GxeA@UKo_Nh?~cM0N$hRuz+4SDaKHW}uxw--*!v^|WY*pA@7A+-CZ)Mv z2Kh^`koW`YxYZ5&8{Be5)trCOCiL9tvgsUUB4{7}F045aTWOWfI0%3zz?aNlX-d0j#{~fx7y^;SK0v8YP%@lOp5OsP7Lnt{l34M;5E_Iv8h!|$LS^Jn!j4Q zPWkIo`4BvC@$EiprlYEHNGlkk3W6U;fk*59@b1SCf6V<#vm$b-PR8aKPwV zoX$Aqj;a5%XBFc@qZ?Fv;^g81J4aZZYCEqT8=e;z+`5u)|5?WtfC}&0T&5fkfXE)> zay_^MIZMnv{`$SCavM*9bx_mUOLBb}*A1=67Kz8;E<5(ihD{d4C85WMUEZGqeTX z@+gwYF(4kDjw9nysx(oeILQ@QkzP<1heT1ym8hlBu9V93>Ptv-#4M^cC?1pwqAM_H z{iQ-li4qg=#lmx~aieOc`)yiI4^x6$gC7HCfI^jOa9KF2DGSv|pR!5-!@=-(opFmV zDj}jezWiO>d^muOS+qVz0H=P~9@7gaHv8e0qbPm1LpC`^hg*eLNJIDw{_}AJtSxh9 z=jfwX;_R$-B@w5yZ^oN@_@OBV>)LNr22dG;C113OK~*6D{0L)QtmIi~Lz3b) z2?ntAekFcZ2-*#$ru-z3drEFx?Iyu|Gz##HQMl%~;-e_PS2Gd+2XX#eA7LWR-*p7d zX&+e!LjpWTmphl{U>8(m-{4<)Job2C{bx|2nh{spTJg1;|74Dq#24Y(Ynt6$N0ip~ zhh7WK`hkaK#x;r<6`S3FOFqkU$U+u{8fnfcZjdq#QFNU}zg$33)-I@J+?_<;{tl;} zB*p;0147OxqQDRVY=aUq6X4inesyK-qKcfQ@z0GG^K*hCSPB%y0m*TEg~_qMU`)Bs z%<0cGK#i37I8G|pi_!j@p&mUEWfeIQ;n-qiTz>j7Ml!Rpq-E3&e-<70Et!g1M8nEG{tzRzif z<;~#VkeskZOU1tjL4-N?$8G-4yww+vUa<$^d&Y2Mp*RE64rS>Z(;OMffUn106=Qbt zkgL^*z)gV#F()fdDCk55n$z3L{~>;0%UuQ4Sda&F_Qw-rYGcxS=1I@Py?-qOV$ekn zu|4b&tswhy;5q)+>&BM@ZOy0b_12$lBfDg~=h0*Bi1n=B>g-$HFU)wwE|*KcC)1si z3+XOA5U3szB2wx%)o@qYUi;^eK-I}X7_n}ZB$FA+p5=qT_4>PEpX;b@yIInY$i*7z zET=zs(Np8^fW&fg>?^l+r0ESB>n?@&wgy$!Og}$j8g>AFo?NIM=g9P#e*kCH-VW?h zB~ETDORMfg6NFx^;?s#5c8%xtfB|J&`k*`%!g>5qx5<8d|94Y#hk zGa&;*Y%#>gt3vL4Br zly0ZT2f(w0Twiyib&u42v+Gsz?Kt|&xiv(M;?#-w{rbG4a$G%}aoE$)v5lG8vue<3Us zH08UH4{>3DF+~7s%-+rZI42^T-D*hRP7&-K&N4x7eFo)UFU;v=9^#4bwEF4vUhgh5 zv;kqo+Imf3%tN6+edmqfY)m%H)&EJ)RZ*1zK5eEZTMfmQdwk(+b?58I=a>+AqQ%Ss zgPIBt4arkN#f>-|5nWe1Pa z5%Lg7^phl{vHwc@KFK=Be%;xd^7|RE8}Q%5h-_o=@cYTgEmy6sMhC#-yf+Diw@IN#hE6z$u}I<;Ram!oAAs3KY^26)j@S zd5SZr`=Ldf-WEq@_gxS2z63~1(^(zZb2j)tl_%ohP{L_2D(y#8uB|*iAS<6x{rym* zju+~2ODO_VFF7~Az9mno!ZqdKz>&iSqK#}?F3k#VqVAw6q!}^q6@#?a-y#D!4lBTB zp`L!nuMu?2V!G5nfLRp|u1pFLb?zKg?Wziy`{LVRb>X4v9 zmyj5}eq3}u(Jhv7V10y;+(BOpz(mV7zF^vxP{Mm9KGp-ykGle$rB`rD;Q-`MmYUht zmseGIuofGA?kpYO=W1Rj>#iZz@(OIN?b(d(x8_>PmbF1En%;WASdzGxpriP|$7US{ zDxLSyv#L`Jdiy%^;r5TeOfCLsMwInsz}y=ZP8DOba43Nf&-DX)R*pJKqPRyvHoU-~m!d?RQY%S~Uq^DsFz^68xORIgtexe{OBOxUK%2tys7*J9}2aNb!B zeZUC(GJ4geK$TMru$R^o2yTbJ{$g$GcQr1!A}M|gOrPmhUM#kVH7;tset-maT~BFF3y zK5XP`>w0SSf6I@!tAX|{Go^F-ySkNgck`*so>k-{$*Q9j@45Qw)yfT!nLN9lBXf_n z;Ry@yCzULSRk1WTurEH8+P$6dhZ?s#^o6o27<0}6JHKGN50crI ztlPDD%rNW>2`caNV}ih8{K^f6B1NnU&Gx~q_CL7s9;um2aI+QVNqQlBKXad2#03}KkTB*x`SSs{pZzy z&4d8=0=tL;>hQ9w3qyaq({4A1aVokpcqUPa&UkP+j&2$5_`r%ytFp(~RMymv;z^0~W?+$m_C+uO3<<}vcQiKVaHws{)ETGwz z4_iKor8X$XVRKWCc0S4O4C8h;cIfFgW}4BM^6!EznL=$}WOd8qwLZ3_u(#`*@x{$+ z_$q>wqliYv=s_gzj5HRn_q4h}tEA%S-_`4zhjS9GQHH}s=YRTpi%3<}p?CdF60!>W z^7g0fvg3s0eTZS+mKlVU&TfXfSB0)N&cOf6n~LpO%}XcA#tYo7?u+Q+smB?l<>}4v z>Oyy?1D9M{D>s7aB8FTB&i9)0_2>lN=j*lJs800aXIFRsmFfUYvGi-$dljP^GCirf zW=~4y-!3@^j3HWbzt9-te7(7VqT2B-qpw?9nLuVmV(20M35JGJeMANg*J~DbYb8K%VsKzC11kCtu&LhZ+r-dE_ILlW`K^vh_tE_KMQ8G_Ex)rlik05A+`i+w-?CdK zL)y#ATpO1kQT|J1-Md}%NUIK$QV81rw4w97v=qDlg2qsS#;5`X^^q8fQoTBDUA!W= z(&bG&Oy57af#sPkC4o5aDTQQsG57PyL~xP);wCY$?}>{Odce zIteDLs&I$+W_DD0AuJ_ragY|)gb#o;eO_`@M-HmTOJejVx|t<2l>sUdN63r#h$S*a zR1LKxL8Z*_uVj89f!j$Wvwe2GoRgG%5Wg~I3K7+kO8o!f>OG+0Y`6b!y+k*94Us4b zLUhq<2%{5SM33G((L%I{gy_B3sG}1hdKqTI7&Us2(GCAQ=bY!9-}~NcS=yR04vo zDkZsI9^zAuky#PVG8gk~pa&-=E^AFka0u}G@1gxf$gKhK@|Lg(9fIQfsfr?B?`OY> zcrY_kFYckp6YC}6ex0B*V?*eK!S|4WAiiFTH6jO>Ewxp|R#&C&DW@?ovce21me1xs zT>w>>lj-R*4pThfX`rnB|)N~JD;%5@cua$<^!hT((Vtd zILJ}l1!3=m=5lRA>I!z1kF_6bzi^!h$IafeIaq*tmoi%nh>Ot^%JF4TXehGh=X%B9&PJRlo5`3y0uSh z_nPM(j(DaMuUo#u0JnVg)OCdCcg@%p>3NhHPb{JvY31{bwRO6F%OOc`;zRm^t5ggR z@c*Tv+vLZIM+?`{I3o&-Xt_=(2QH`r2MU}dQvG9j_<Y_oaJicB(;O{Y#fg`cFLQQm1j-k?mI*%irqhxFkf1Yp z9s+K*$OVFwGezB381e3kFLq2rQgAe&#F{z-tyFI#$vG)0u}sA_xq-Udva~bef~$>J zwjf?knGXxB8aotpU{)J2av+_dCI932e!=`fO)Zp?>8xrIl6j^aaETp%E?XKYp$&@{ zgBNd8nL%Y+7zP+*?x;*9KI&wZEL#s&xqC)lbv*;zxJYin@qtHD zX6ZcWVT^g756tGipFt|rD0w(oD`{|dy*x83X?k#)lcP?RZE|3|ZeiXXYI=yQRj=(9 z5jaC1xqy>FBcZdP3y9vi;qD!ubl~$Pn;g>RO0T)4H zhae5qQqEzTR`SZ--eNwAQ*t03MDAbe(c>JKT z5j@Dweqa)e3o=02J<=-!LKXF<{c~_ZX;)uJ7e-jXcT9~IPTkQWQk6`h_l8O%_PFUrNjT_1z|~p=RN`NBu%{s z3Z5~Ra!QgGT~gl1hV+Z$TaOk;d;o0@3+en3t9-qZm9@1JPOf&p4D^G5+v+7264))~ zFF464Od=%pz{Z_|ayY=)imZE^_C-|e)mDws0>S;M51JR`5X`Hhr%61LJ)g+=m)$S7 z9=_h+=reluJ}0XzF5Ht;Z7$jR)}}wl^|!wM`PNvyh(nUo%%tc59!1jByd*EAjljE) zbNJWOMC2LrDFK&Vo_YEkugDtcgI=iZcO5XQwRv0lNMz@MH8F?Ivd(?A(aAJ(p;Lyp z;Pe;bs6mFcp${6&Z|c+#rmaopz^^IkkR+P=_m9v=yFao_=q_pc-DHI(x8wd{0c8KV zdhEXU#pW2_o!nYL@PkZDpOke7^&b^ZG`W&QEfoHtH~fJ8;2WcKBoXF#r)29f7Goi1 z>wR&)$Ti)w_c_t);yt+gcuo|*!e!VnWC^*lc0p@QeLQ7i$`W5K1uZOn0zZ^q=U$w2 z-%i{QGUiW9-+&OQorH&IKEX12-BS8S;Vbi;{3fnucDGCW?>Uht%h(g_tU{_*3GRKx z%}Tn4_L&2?qZA_VGtYXBiK>O?OO$r8kE;ao-bvbdJd`SJe4%!pLr3J5zKL#iGc7wt z?=g2&?LRQJ$c0N=)>S(;>SGr+ZO%MZd*Z#!Hlz)_ezOA1B^# z4tUh%;RxhHTFhAk(*Lq2Cr}^_!ve7;G)(%Zk zSVMPRkXqN#?u{x4XB$lTCW(np-+>tyKQl=CL%ZMsq339K43(JEu>tg08zVXS5pAD| zLmXMp;QO5M5UpHkPgtTN*fz70$S*fc%!=533e2>z zZm><(X`N3)ukLVGjbd4KpsGIeI31EDjo&>S5>uNy>v%165TbdW;-C3ZY&D!zz6RYq z#wd9R)M+y%WHFS*e{uc!O6-aHMiv-=E03v`B|GNQ-QW;7L76zX{GL4g_CkcXsijY* zQ=un^8d9}jvMXMDJ2u}Lf*cuK+TCaMsG1KBJ^3TD;<@D>__i@~30!$-)J@jpYtLfw zMUuo7&9MAS{K_babTafo@~2_uZ^P0v6Knf9hPTyl3*$pz9=J?M6KGu}Y4g{o%|e2% zq?*H8`RC?@OTi3_Z_DpAFAh!^$iw!Zb%cBRPhU(wABOjd-p>i4Pd*M!=D*&0xaJ9o ziSm{M2gg+^VEPo1*;0;&o2q$Ldm20LGMFKVN#zC=!ND2z0v3%UFJ3uM(z9x^kHT9|9w4_LFNpi~PfZ1B@PeE{v2(zR}BMWyaVHn8klWxjH`=WwJ@SyGhM*8`J|u zgEHE}<2Y!1iGHdUlsi&YVu5WUg7lYHHXlU(K2SN5V)btEU+iVh!GIaj0Xh7u`#0S8 z{6bN=^w@s^i+^1M7cfmQPFOvSx1E+RUR#UQ?Q_`b8?E{FKYMrYCb2U44HJV>mu7_f z44N_n&cqp+qa}a2z`@FQZ_iz!oA5|5KO(QO_LK8@yUbG)-!KugP1THVvhXIAuHSRi z(QmsKK@NNcyjY-X-mI1ZX-a_vWZK@)VD*%d?=FH}oV4~6=#lu!w1{TQjZa@G8fTyT z(G36Q8_&}t3%mV>|Fb7_3toXfH`6rT2@LYxBWR^dBVY~4iHPrVmy&>+B&ZwQN0BCf9|i>EFC0i^=((j&p+b0MD-|Ir%$RS2o8KhHu# zFQu4o$iuwXxZ6=+;X?aNyrfWRF+=pvPSLHM7|0w>DkL>ByWJN-8cA8EO5(8PqXHA* zH2|wG+)ZHTgh=O)suOTO{i<<%es>|cD%7{*AEj~|R#ByuCLD6Ri;wZ)O^R4JePP}k zixAbf{U364g<$f&^L8w5uP~dxk>!Otrleu|m`r4MR_~7=XhQa{d}_Oc2F=y!d^zg& zBP?Xj+n}LKtXsY=Qk?knorrTOgd{MGdY+Z~y|-;1A_jNEv^-yz^*OvoW?3;(wf3(G zSYWY|*PYiFls4Q+GxPjXNui)4(yNx6vTvMMN)N;6PXWz~pJJ~x)lrNRucpv`=%^io z`}T!|53#In6dWfT;ym#wz1`nU41K-uKEs@*<$hsv0<0{K5_~RmTzhvO3KYgk^-oEa zOwbaOON-TNTv2aDe%u_8cB9d*s){hXSwz?Bcx6N%NBhYir_)zVFsf|T zgDRApEE=(=2SXlm*#R3!29we7|10O-ifop<$j;roH40m;+zc8%|R z@78o>d)j;dRt2bF1wwcOlKnx~&S=d3@tEcl!)RnyVu0D$xMN9>WVIDhhBc^uJzg>RRqy_O(ive z&dzBoh$m0L@rhfHDZ=w$p(I`oI^!48s#0&>YrntKESq9u`A$3>wtTgp^)}%6%M{<~ zSCEyM=x&11_gp(d+_i;-H1f?zT~T|-P4Zbq3Nh>ZUf*RX+5GFKUx;7-3Hrfs2jH9l(k4?gKZVYe zAUUG_W)EgWX=IF?^1Wl)p40^e0slGl#z;xTNRSanNdW=OSkWD;`gHO_ zdIjp^ZJ0Ib1V5*zi}{`GD*fgEI9YIbl)5wA_`|UA%EwB-5#;xr03@Jq=aNvK;0=^MGHwzikg9dq-=DP{qeVc^ zmN}+v_|RYi3=ktgA+g=dJ2lUV5kQ+#<9f?zNho^g5^9`*GJ)U4G3TH4XFC=0S&uH( zmTo~O2$M+;V0;LSLC+>UM&=HGg6#b1ze)6_6S6jZ3C?otD8 zUE|f|tr|i8O{=KpVk$WSTkw_0h7yCO)~8wn^K{C;&`1JpC8|ImK(XwYRPDQV>iB($ zdK!7PCn4<-FknR_++5OM29U^S|EzX425?HfBH1!fk&zfnbve%y*4(3$?z`Ca@1UJ; zk;#+*vj-?&itfb2mxS*Q%<7?toJkx;EBZAi_b>OeHIp@;ZPh5~r~2LalRXmif?It{ zSNQP}s^;IDdLSXBpKuDLJiohI88l2{5Vv_52s<28-@$pQ^WvqeEdV2}1HynPmw`Bj ztQsNG=jR5fObp8!9pX9uc7X2p2-Er9P595V43d0%A@csRQ2>Z8 zCdei(jwe_FmXn~6H|5C>`IWH_I-n0m#IM3GDa6c>+vj84eWmBV zK>>_>B$1Nmr%p|wSBEiJ^x*IHVg0nNZsJ(F=*pFd2f>T;3o*_;o|0FUiZ9LnN1{m4 zQcFJzx=$)@Yl^v~hnfNDY8Fj9d?;zMm;5kpM5o>Xp2Q5gTKcXY`|;eT4k(bWr7LjL z6O?mloLhX0f-8Y_xM|1E*bNu#swaxqrQ2@RciRoR7eym4y-Ewt5D{UMHRHMocIeS_B49JTe{Ua5)PabJMwWYO-4jLVJhG&~DaFTsM3A zkCiTN+fkC+1yi)tF5`zTLs}tDV{4)ho^%a6>@<|@j)*auwJ0e|WpYa0!gwy=LV) zVH&W1x}o#M8Jr>6DPi?RNf$1SW>G@SlnoQ=QAN0O4t#qG{27~%f8hk439G8`c=rBR zc+@K7@-9pto^+@x$SDcDp#n$*fSfa}WT9$2$XlhGArhl21XOFD#QXw+tUuYHgVST< z=cae=k?x6aQml;O0A~8s_!`1>j5=X4gBI|qmx=kv(;b@5HuF|IAH4G4#*x#<<>Q#% zrUI~3K*4=eM0&47*`s^^*5&jl6;hws_H!gDG*#elvYBo9%}Calp>op>h`u*-$tJUv zbw%G#|N3xZY6Gli9<|>i!UjnbWtH;~R_@ql7e0$--9{bGFv1oWXJmmNGWwj ziBhU!I&!?O)x=UTS6+1`QeTbzD@Xd$_*4_~PKDgpG$ZMn9{TTIBH`pr+C@FM*veVt zHdNYG#cXt>Q7XfUT|-QEYG4>@nW%g?2w15|0}UxyhLq+)-FqR zan3O<7y%>yJ;_>~fNAWkEyAE*NI`gYxs;1ziplt=|CKZm$E#?B%&lw|(D8pl3@)%j zs*DaC70nk#?e3~^g4}vVtD_P?99Kj# z;1@_A;k2gKu;l9SX1;X4zGk(Ie|>ooRsn1!A@bV4f9B@q7yN>73E&YCA)Cr70qz&b zoiO@KwKLh&DBZZ_2#>k9x%5&kj}eC$m^mT0KqsR@TRYc_e0I(^1*tto5kO6tM!cf0 zn8;fGKF|~ih^(CDzFvQ5gkhv>04WHBNNGuq6T9*9^Aj#6I*0I$`+U@iMcot z(^UKT)3{MCtt%PnMxkZQlr&RwiEowKBhUhR-_1$bmSu7p0j>M@3o1MWNt@ZZ=brSxR;UAr!ASn+Pxos zB0gDiL5{!*j5dF!Iq|?f#+%eYUps%4s0YiP z!MZJ-eT?$w&wWpzT|fsgs1p_-sF>6fj-&z@8Tac!=8_NG1!5k3imtBwpZoS~@sJKc zH*d4^lpcw}gwxGUF20ts`w0Roe$d1u%srYzBU$5F(W`gB@Fhc%xPrdB8+fjf6ffIn z^#r&GuU?hg`8C!Dgt(a9a#rVs;P(2OZ>TJ?USIMbW&*m3>S?<@g$D*1WwpvY1qQ0O zt)1o?ESX?0@{#OGw%kC#m;BrzA%;P2mdK&m4&mg3pQpLaleBnRAynmFG!h`#diu@Jg~(O6f)1+!!;LO-+(&=c=im2cz3NG&GZ5Lt(pjdfm!Ase`yA@1>zd5&c8H+Jon2@qMo)?a}E15`9N^dLLlFmn?skd&HXo{VQ(I)mn!0ZW7S;hcp z>+x3=yISspg!I+f-*uVt#{`Y6uN-S8awyVx;@w3En#5@Hq<<{e$PUK#6BKau0Zm6h zQ<_?R$Oh2Q0CY_8+!N9l7GrxwWS{Gj9Clxm67XYlND^C7qN0X!^?jA0$sAnSDn{?z z9k3r86YWAVn(@@xr01KIE>6wFOE)*}?EC6shIPmKutU)n+6OOb8&&y;>C;*J>4VjihwzMbF1iljej;3tMLm zq$ByF#m!`RwW-&W2WqPspZ3bp<5qPi&66rKx{b3v0FsWlOC;71z)|)UH|o78NJ;XLYiy?VgL^7Uc72p3EoHt`W;_yUv9 z6qsov%0mC5=o8LKCVgAY_bYJ~Xd^JDxZ1VbH$bh8bdEy~(foAa?J@J_Z9@0&jIg9$ z!)r;p|M+mXdrvyHhEB8)m>QT%6c#2ZFUp1dHehUkjy1KD*FYB$H^q_v79lww$Lf<4 zj_;~J8>6rvgZB&w5h^yuAQs#I1Ce5~#@}+4Vpeq=l{XFE;9+4&6KVc}`nR|{XHiRI z&P|mu5k)~lx(D|Eswq8hLa^ntL04+ZTya2oHd=(i*omB6OSv;F8e&|9TLtO}!;n{d zY5RI2wdFr3j~ueGyD&Mij?G|sIr^An0O^(Ybu1=WkAx_tYFeoC;hUTwqNN* zJeT`=spzwpwm_o;jwwNpu~)XTernkW0}M-02T*>;4qN`V-5^5(OSp?Ib?y&QF5LL6 zSv;`crJ1MG(@&_V0?IwZbOG56n7CFn?hGpjt}V;&)&v6j0=^cOGj3@XI=9OeiE3v4 zI;k^(CcsNh)`P9jJFfmXwBLo?{2N>#wG0gY&fI?Bw>;;M`7RA_zVpfdAs3|Ne>Yr( zRv`};YY!>&PXBTX7Ej!OiI+iM3!5tZYqg7j`lZrs)7WIc5($=jbN8aP;BLsKptSa^ zhh5e#3kt26o*YmjeD&*b@Nnm9d?8@68fwUs{F~Z(^T#f^f)iFK4`@8UNqFzHqbHjA+p}F)S@tWaQ9zCDb7UO#uy=S{*(5As2_J1< z1W0Ic5BgsL%~AlF^*-gNIJY*I(@n4<^0^(9*quR6E&Q#BoXFVy2e>T}Et_A-Tcm+h zdgGJT!EOa!u}ep4efGNhbzL`@^8`2tZuuRXCcB~L&+~HAvoYH*t8{fVruPWA&EmQgPOpAx%5%SA3co@{R$C<1cslf7QANeq=bM*PwURSxQ`9Y; zE?f!Os#ytUh7)006YCY-|BM6b3#C0$BcO8Udp%vcrv8n%ZMP>%-AdHO$u!|~+&Hq$ zDVv;EUNSeo+L4oZN6AxqKTB`=&?>5e%PQgYdYWkTS99{tGJ28doGUzznx=cna{6Vq z2_4W{@Oye#n-eeK<5Zv!$N3dkm}hGe0r2VweObLf*pfe|N7f<+wqK~G&1^3lLG9W?^Btfz5%csmfpkP(quIjxv>nNhxzq}DyR@qBjp#(>)> z=^eRzK0Dz67yCm2iT~HyLsTD?yc7HauY(F)-}7fdz^Dt{V?k>u5Iw#&rAzm%cF+D6SIwNj4rivnLzrx ziofU=o#n_j_cF*m>iSH63d(3Aec9`IMFYhvirjI3cGbcfBWPXZR>hB^AC7zuX{D(5y2n`H_+(h7gSX{9Wm=ar(r; zOyEjqQUfL{77>4dAdR`ns?gJ1WIgZ2Ge%6hP0P{P`+7{@>Gm6m%zKvmshLs*$mQ!p zIr#LcOR?fT0ZpGhjeUY)Ux|yRvyw8ODpla=ux!WoaVI{>gW!8SMYR^a>0Ke5li%tT zq&gYNtrv<9BamI)XF|fQTH3(;^_P_2?MbXf!A$aI6*2?qxnzQ-ftGO=UqjnlvY5x( zkJdi(yu-yiFIlwO(dxv(;KD3)agHL_at98CeI}Nyy)!+defVo#XOme5m$I8*Z*QUC zNtN%7hv(fD4*8wTA&nAHA@612ys~=NEmnFUL}uCG8%6$98zd zArz&Y#M(UiPDgrP>HWkX6vG54Re$`?C;t74KYHBwIb(#KwN^k{>FtN@u&@vA&B-V) zCF4WX3}`c^i*i+xuda=UBg#j1^^M!;bcC~x?a#eG6kX2@sGoVd5OlxknqOK4{H zE?|e9Jj{qQgk7`jdn;16`)=Y^{MZqVSYtEqP$Iy@J_%RA?~5bo?V=8*k3(H$xKQTL z<=Y=lE70L$|41G?C=x$8Y27G!^7bV{=&MGeu-h=X<@eCG9^2w!nWFmX!4< z;=bb{bsdb9R0B+eE@$}1cPckb9SdZcfuqIcYq!Sj-mY(J0{6SlY`CM6sorD-cz9jH zK-R6}Sdncr!Krd#hg6LUG6SLT2{IG{_jvsb|JFGz;MJ<%^5SkQio2`H*P{CTl!ck> z%>&NQ4fyloGZQU%lV;bz+LLPPJRhv3IsT)M1+SS+a!T4PygsemuO&K0mRem9|M`J; zgxnOqkCEy8{C!RpvmzLibNSg;0_Yf0P+Ca#Q}-^+`aQd&=Jn?`H=f1J8FmuYw&QWV*EDRHDgQdt@<~CBvQx?t)A1CSc*~hB{?hPMwV?Vc;hkCy*0UNqmb*8OO`-`{a zrq!6pCRwxgEC#$oLT*=g7BhcJG<81XzteX=^?q)!M{BKvB|}esgoQJ{zHRPwBZOBi zg`!^Ik3KJX*u}Gdj9d}M7%&#fmP0al4Fvdp!RAQ>4=VqvrwH0ZdH=p@5S^W4>2PD8 zpA9EI{q<>=$xv}yGiq%Dukb2+{QK+Y@rQXdRe*_mA*L{WR@&3Q%n-1aQ7axkZ}Bs6$i%PXy!W62@CmAZwOtzssP^nA^o0twuRnZ@*I&a(+E# zehyJ1>K@2ixPqp%XKo5xo`Kz6|tV7{Lv6w30_uAAnwVs7Oze3;q3c!iTtGnwG zDXJ# zhPy8T{@IgX@v*gCesv2Uy-MRGF zo9${^gg5WDH_-?J&3zj{bQrUAdramgK(7;>Eu&r=zxn%8!gL8nU`}0`RZ_R0S6`at zi#ZJ>G*o~l5ypCV%I{_NVd!<@_88WOC6^Ay6r!$qTGA;I-aqU2DhKWKl)`HqtQzsw zn1(nM1cywGJC7H#IwoqVds=kI6N_GkWIs83A9^j-;uCQr< zfru+t7Ik=+ zOcMEP$zsjU11$*hij+c@e*_piU6QkZ1@3fFsM@=eJv#G;P-=3xkamW?*OEZp_WJk~ znvyl0-!+_Npz_suW&5^%O;1 z+2{4~Gi+N2ZejP8B$&x}>-4V6*99P^l1)jgkZ%1--JotN-BDsM6!xy^xpRFjbdIM= zulEP>=)CCG=;GYr-81gf7T9)+!I!hU>1!grLGr0CBEI0+jIMJTXBAp62<~Cr?H_N` z?bt1wT8Gf5GmZ-FBxwOLMQ?zKA=0(ubkol2uC@HABeZ1j-HpHB7Z5u6lby@qL79UH zY6Z$U-PUwAh9Y%Zx#dxssz(oyGn3*61pDU?9?ER3Z^tg0FWKKUb1FrXcJDd(1}bFk zpQSS)yfa|D%xCxkA%1zTp&=!;z(?99Eqn3S!J1U?%_RsKdL!H7+cKCtXCiEiGE8h~ zB0G;FX2tl|75CKZ#-Tm9ds??8A#izQ!_gpMXDVY$pE1DCc^d)HZf%I^iSsxSL^QcH z?!O;`fiWJ#UI3%J$`=OSIZI=S;j?pNB8->$U>|`u#8X|uD4(Y&7=whp#{Ao#Em&i* z<*~V+Kq?c$?hZAve8s0WTjgsLd(OU+ZP!QPi{=*KSdnpgInIRu5{i!kUY>#KExzZC z?GX1+7B^wg$oOuI4vFwsbaOi|z4g}0h-g4yNHKckG5Q8ki-Ok5K=)$;9h)<)S3e0f zh9aOR-yfha{v>qW9@7E`6KcBhyEeAB=Uaqaf4)6qy~}G)8q95eoI5FY7|HAZI-}ck z`mmgrwE=2zxe)7C9~-QLUWxTK)%-SrPHl8zUDA6Tk<}dq0sWcgY}Tj*U$L!D6Z+}4 zcn--(pTKlo#7|#>rM`P|4r_FJtj||J$f@!&E$utXNK%OAWT35P4bOsXt{E;ZjBSuM?x@3$P>K>|;YK8KGA1{qp!@D5 z7qwEF`(n=Gb>X4F_8gL&`L1x^Mdh4TW^yn$v}E5$bjIh5)^+oT*Bv9}=)v|HzYKK6 zEpPCU40Uz$a_LqOb@fLcn5DF}ad4K3dJ~`j9g$<6le4{k9Lv%zqZKGNIff(&zFD`s z+Rwd{>%O(N0_O8HhM9VUoxB$4-hP8-*cve~1%0?hC9SeDiG z40R5cY+DkZ5eon6`;Xybq?0Hp#_-jlUO8PA2zOGLD`1DuKC~ru%3x~DXXWQb`?+kF zwj1X+{lrNhLJJ(m38!_h>UK|PHOv98hZ)_5m@3T;Wvgy#lE;7(a!8$q@+ghjDrAmD zi?lmi{Crt$BaeIsIwbzcrcg0Ai9}0HEeX+E+czL}fG2={$L{Rvm^@i~5R67At-WD? ztUc;As7RsR;IMV}ojLewo%3p)HMBJJ=I|~L+|Bf9G||JeNiu1b&@I-ds3HH01?2Yp zF*diH#bQnSDroTYNG3UhjGF&r_8(;;Y~bX|*_?%dP1_yCpYx})wcNf%oI7TtiqsD8 zbT2sKw*^G&CPMu-^WXWqjCJL@fzJE#w`s?B!@ z@&_zSeO8@+IDvoV-d)@*yme41|4~OVb8G{3;)9+j_im@}(>7f5uzq@Lj>5iVj-8dC;rDKUqIW&3nH>de)(hzwuQcI&vr!M*`8IkwM>3~ntYlL;=! zy*vB2o7vvX-99_u6Idbqw;{Rhqmn%E*{>EKN;Ai!u)CJ0TfY^Rh8r*jNZAMYIc%S- zg&(wi&Jod2NRYsLdi0a%ANw0kdQ@O&y;TYOYk>K}okk8qwNR5H`^fO;u6%h z#Rl!HulGB2aYp!3P|$g`wEd6v{3QT#uV3+N+^A$!r{Rn4hGF{j(5slzn%n4)S{aUxJ7RC>>$Mcb>zY0DNd>GHtr@d#@; zhfK*fxXJT?I^JW~#PLU|X}8CE2}^B`CvK10DXeW(H^=-*-P)q-rNYzWhppdJ@qhMt z=o$va`S)Vm*BADoE4;JIsV$8IqBy@ceoRHWtXw{s4e{xIQ^Td7H1n}buhYrOW*?mJ z(hiY?!(nT^KiFNGlG~Ko{^h{r11pB<)3`)JaJ2xcNEkhb4itk z71bcC7r=I}>Gn@Xz zCKz3&JtM?8f6(06-kG0yE!o!DUW{lrnSWa=v_SH21K}DVpUO!D{b9Lkr7~FQWT-je zuKOTJ&mJI2cXj2Jho~;dJ#6u6cPfL-X*DQu-TTL^(lcRn0V2`BGR|$!Z4MNUZWK@@ z!ocMD;hX|8f~r_o#u`^|Z#NYWrhUngv2Q~PH#&P5q{eDH{U|JdB23{@bCs4OW-xMV z{HTU^DRitPKf5h|-$mV*RXTZ!x5-)E*hz3cYxJB@2l$n31KX@nQNiZr0*D2=msXpV zDiY3bzz0tgIZgtjKEOZ07Sqjxa$dHEa%_v)JQjN~qgFhs0U6CsPjimR4ugR19E+1{ z4i^P|haC>k;F`sSKc3r4d*bb!nyHxy!>9VJM?~ic6p_%gRIxRYz${Y&C+0JZs>m;G zk(}0BLv#U&#FrX4GZ|eaUlT<&@qE4mqPpYIi{$T438QN zbzaHM8W}iXETZ0kuewgjp2w^(y_WLCCx%m!o7e(Bi@sL6i&OCs=X^3~s65Qf>wXhn zMW=uszUton8U!1ZcmEpr$&ls`(HA_^9b6Ae!}vHwA9a>j-T6xy`vS1Ye3Bla)B@W=)pCtAMXR6o(CRktcpWaCBC3y$R0*rJ0~}T3|B1l- zz+CJSbP7xDv3~qW9&F13n#uCE*BmOpenGc_Si}AXH zULmxZ7d_XEf<1h0CgmCP(17a9h-^y5P`qu--sgF#CZ-s)-L-?ApJ}tRy2U}g~Y*<64 z2WxfOb$WP&wM2fAu%=y1)p$y|H$e^jG9;6A7=H28g6o}05xMkbABM)fY3tryS13B- z>wF23H*4)Op0y!Mo~MS#2~`QR3w*K|vQ@`60r}g-V23dgGl#+se$ZW&2%{I9QHF@= z1_7`8#9+5M)Y|zZ!_^;PClVz=pQJHf6_E(1bKjE{epe|{&DBGSVMLR4_V<>m{viK& zu&SHe{yFC?vUR4(9r;*l%Kbj0LL)qy#oVOLUk`Qc0|v|>!O&1Ul0es6vfLI7xsHK{n*V9`kxQU z)U^CM{lqKw;G?wmljrUlRVq=Zn(H59T_B)&k5kY68R@vqTZ3xNW3iqlc5XB;wPiu8kX+t1mQt2^%C<1TQ7zM~E+eG#_23 zQ54sm*4^jtQPtQ&C!~%;73F4zeK@2>eU#jmA(fU z1~u8nn6*uKWooCjLUrCge+FK>-9CWC!dXeZ+#xqTl)&80=RY5a%6@8F`b>14#+0r$ zGm!?~?Vc`t<{P-t>>2z9ugKQKN{!SzZMI#g>82|9IbZSJmq+y$lff9Hacu0>R8kHa zcfn$l-Sb~Uj0nMTZdc*EvQ7mNBB+a!?UA({X{5^*oJ?}wCFAIx@PF@7I<=A_zV%i+ z4E2L9U?yWRzE`sN@$VhO0Ct9V<@0m_b52)(yz+p6rnDUx+xM^Sp+(A2?Z0c?O$t~c zGV%FKh%X`V3~46~K&m@9d$2b(#ZR>KPpt zu>vI8{K2n{>*g%~;>>56Uq|QAV(r-eqas?H2l&7yTI7jZc${5LU3Gyo9#&u-zw@8$ zgX6gwFKrGg^{xlus4(H0AuYpX5AB$iW4sEzo0_a{I`g|cpMn^ah@Z!ajo^?E?_2&T z6}nU>$|^o>XcyF;J6<_gsV{DQ$RXK(6F;jW@Bd_3;caIfjU^rbn~Z*pd(SfU^* zgzxXju#{B~n^Q2-e7;6;TmSHntGs7!9nR$tnPVEw^74k{wVGIcTx~ym{3}*nqER`k zA>7{#B>*_7t52xwZmu02F-S>BqH6hQImx zE;PJLnt2PjnS%%tVaBDhS}DLmQ^z@Oj|p4Vp7pmncH|Q(}t%%hu z`ely1FfZ9Tr|^;%;PZWF9uORoq>FeF`!{MQv`opp1Wnuocxq&=tq=YA3ZhoOzHH16 z!VYkF2HyD7GTq-fbXsCT@krm3kNB=|CLfXr|N3Z>_l>Pc;0Yrh#v8Z1wW1DJW2j;E z-|epho|~T=h|YrSbGkiz0X`O1daG^ozEK2)D%n1dkpe=U0H^J{+x;&g=(^(lXjN{d zH(w+~Hc7Q+zxmc+^qHQ)8S*NMEf5C~EIlaJm+3eq-B{c=Fxy=GDxDPB4aG3s>&1LWPhuwhl|8LeZTC!Jt|;D-UHuB zFm3r(ZlBpAOXf9dcyfYONDdg4QWDlR* zhWmdlusm7-6^=_$IF=Izt5;v7?i$uC%&g5mOGB%F)k@9_oQbxw|NlqFV$ttO2PQwkP%$u+ohWzh!~T*Q{~x7~!2xkHTFuBfFc5vb z;4au~`Eq*#UyB2yM>{;PC3CYOScJfOE&bp{yGdvTGP4hM>!_N%!JMON!Fy% zCQEF;AhLaPW%Hyv$h#CT!|%o0ADrC=WhH`Y)xYtKJ+QT#_S0aWD$-btbYeXm&R`Re z+~?M(VB(%E4e2yb))*(7jgW*4aMhh@%u+e+8aW0~s7i;9Lhc+)u6z;G76wnZ-6ixj`qJ9qgfs)tDGPKf(-~{&lPKQokh1 z71>p9X9}R~5YwT)gy1COTmwHWO9ox|lUFnfiulf3$JNEaZhN)6A}flBb`gnd&K#>3 zexYIP_V=BNms1jxAm&dp~pm*xVoGvv-7zUm=kkn{1)kZNmYY;G>dpI z_xTM;LG6pUrQfyu``9d2iDz(2C;a8^B0gKSg}N%DG@P!~ovx;Tl#{CZwFLkLtm@l$ zG!QxMLF!x}z?j}h$2mpKPs^N(q7bFb=pdCwhm5H{=@s3zX)HZYe9G6OovXUMotoxj z>vj$p<;|=qLE!x!m`*tGx`+1jgWd{vb{X{ybU*s^;E-zoOMCm40nD9!w(PpT2v1-%`f+sJ?WN7is~=a7GqQ8)Ju{0h)H>WoK24RZbD z_5bX?9BUKfL*A8loS$`D?KJv=5md4Nd z+Ux&SBHtb>T9vUNt+S+?<*d<}D!2nkg)6t9`_UqqSq+7-NQn{13m-@DsPV31=R&N1 zF=%8XM@#hlc%0cHt!ou36fElc{9gg9!>#|0q70v?x4dbMnS*?uSM$%)=p^+UdpIQL zC+N1%mHOnlKlY>Vbhd&oFl?r#71rO?G#->O zRQskO_FWS)=s)2qDCa7-=^EI8YMYDgss+Rkv$fJuMarz(Rr?0XGHN{2(OajMTL@3} z>X70=_?M85x7&xgKBy$H?$7RRHVgV=slcXp4It z6P&;2qZ3ORW!LJhhP=z5dz!HI=`57g_>(GUh5~LcRyU!rU+<6CU56mvwv?$KA2y!< zxcM9RDwirlEp%#&jGOv3o?ix}-^v4QQd5#L%|l3o<^Kzbr~t#}kMwx>jq^YYL{24N zCP08sO92V$TN8NfmkzB;9P!Q(x;geZXl9IFjTg4*B-$-^E~glVD7PgRp8q22%f*K% z?lkfO-k2U*^g=@R&fD>!;f?JdWabaEb=!O{G`U``cQGDBCmd)S8%3<*ZAh>6py^-6 z>~i|gRGFsouGY_A&}^kw=NtLFRYQe4O-;;!27=qIDI+$UK%+&)G(f+UR>yHid{|w4 z$UlO_oJ2EiTQ)gVjgWfsf@Uu0F^-zq8-j<${A!Wv_`3v-P}gjGq1EVf5vO3p1o;5(EUN)Y(MY}q zCmZyZ1w~H>VaQTK)6In+?sAry3K4q+8>b?w8NQlH-pe`{Ff~W7Srh9W;^l++9PUahgiNfN`X|(aCrd zoq`KnPcL+6ryV$Sy_5zR`pfLwS0oir)BlG*n)&}hYB~K;jJhYzJC5ZR!&2CNp?m)w zoAo;gIV0$V9yIi8V9+cSiYA~SI4Xmr8uPxMVVm3pK6}x|h|ZonTzY?ra3|dH}UsI{SQV&X>S(r7->sg&&XR$ET(r|208ot+fAi(NKo|FMl!?&&9Kxq zFml-gQB2Pbz?AU0BfW{H_ulg4fCjH~9(oyT_yhAe|L227g}3C$G0h00&)?sH0yp8r z1{KFIn+KW3o><+Ww};m%Q)2c~1)IujN9rZjecAMo)Y}CKh_{T~}x0{=w8(aega# zh?cEBPX~Bz|LP9CcX&s~y%h-;gj4^gxGnLoZ;k)DEHY-Vx&Gs7*x36nI`0v9>Ql`E zYioA$DdFLC#;9A*jM!~0*wdyU%j40B^oOD8@C$~-jAG>91zk*Yk7W+{+pu{i|8P^P zb9sE8RO8hPZzWWR_X6~Q@@ZeV+?H*su#eHuP@wWiE zGxZ;eX1!h7z-o3I$GtBrfUU)w(qdttjX{*1_$&VUhi^a&+G--Iogisd zoLeim8>I){HGlP=szhhJI=kE`G%CH{^;*xNUZm%WM;b7W50n+aL;b*Lr&8nRrA}ah zuI%BzG>-L#(Z&TEKkiLM{S_R43jIl1=Ycm54r6CCR?LrdmFf+REp}&y3h8?o!if+1 zG6N(0C5%Rg>d;C)3Fnf>6}vfjgPq&U_(t|7AEgOt#m-)jdwygEwABhEUcKo!c1H@= zRM>2OVVWH+=&(DGg}wSG=h0K;hz=cTS?AKa;xWyX=6P(+?tm?rLFaRKuMJ3C^@^=#FZR%?D7t|p`}Z&6#ESU zod?8mJ^Bcsz1L=C97x?oL&vL?OGWJs$yg!RK%3KycCldRiMLpjRtWoR&MxLno`#}3yYG91^;93d~C*3yvybdn%m5m30HClZIrJ~ zm*Mw=73if4>tUcH$hJq%z0RyO`h`Q=YvrGlRR3S%VNhpfzy5Z8^6I}5NXJAN`t1#1 z1~DnCN1_%fuQpb`Wfc9?IuWRyjGgN&&QUPZaImG2#(t4=E~<68Qx1>m5}N|O)m?WD zH-ygp!>d@NQO-dLS77CR_QQ_}-dnLad5*=*kYGT;pLZ(?JHkrTA7M+qX6yK|X3-a@ zPn&0A-mK(i*sWw8^%sGr0Be6ipHaKtLtILEM&D0vWH^&Lpk*C18?rZAq8HUA$pUdP z(?UO0ygApy(cTiS`!W{Fjn8+?>N0s`$1aZ>Cl*MIZzK^>YjuDsmw+zGrtJXyqYZ3e zYan%q*0nNtNMkAZZr*>Dqk4TOea`5tL8Z=wU);O3ZS}7)J>Vt|oy8BBZSwh@Fyov{ zQ1@HZeIl%RzT-DBoR%T2Vc9O#YO?1DhV3Rdck?8EtTrn0AmG9$f{a_l$k#V5ir&vV zXYuh?2b+ecZLALf^`!4rtLX`n7Xvm6l^7!f0Isq`FaOV7 zJqhT~d9D%3A#Wf9PnG<-uvxh~*o{lQ&qQsPHPd?^KMXew9XYn1F6l3A%NsASKMY)BfZ5GNax-(-CU5;Tr!uo(z@`=JOyK1wXt|lQbsLUBjrx) zss|ca1)y_-(kT}v@hQY~>QQ?D&0qCE`X+3sHRU_vu0K-e2Vg3)`up}og75jLVrSJ2 zI{jH8N2~P0{R_fC4L1}{PfL$I2zI}ndj&nR>POqV&hBh=b!T9~Rrqb8mEBJd)YvZkw@k2# zC=!Ha|Fd6AeRxG6UKpcF743A;N(*ENa~_5c=9EgUsqK`jKUtkpx;*{YE8jO#`H9c5 ztcf~SRTz`Xw@RYmJy32icrO>E(N&&4s#y6bS1#EMRWW-P(&?1WBXHla&H67xt+lEH(0c`xTk-~ z%$9=(%IOj3jj39nI0>J4FVKzzx1ae80n{v1bf+(=wz{*j6Ku8Uz-Rb-QKJ$xlHW!P z3H=ZL66ERhB! zL&|))MDa;I=G0nQNDsy67hCek1HlK>(&payz3s;@RRuPxK$baDs%qyI1TeyAF}&WUwRM! z1S&D@8j^qAv}}a)jkYbEKJfiHs8TjMtp~{+hWM(1OLSg6a=EKzQ=9-Fo(jIy;zUxT z9!|fvk~WF7$Oc&U?5jPG4|g_sDrr)diBz=)56%|YI(Q&K*+?Bj#Bbyr&!JG^i_tdc zk~#4&Aklv9jSB@#%OHK7!A}brOCFo^c%XYzfm)_n`&2pbcJ^Zj2`eG6JG$*`QB`&D zH(YzO?P&SQG(d$w$SQmrTLSl%gQMsj&aac0LbFd)JqF7mJX86~(_pL0Fh@N z#%(BROM|VM?zV`9c45Zs$5}^UVnMSjWVzB~W1|{zw(_7H4aiK}zM_aGL*}6o($VT!gi97#%n{!uG4Yb5`2|CnJlGXu1JPevh*}vR41J zb@kwXWTaHp2qXyi(o7fk<_Tkzac2)V@KNcb3{-!&O@Gq##1t&S0+~&MO#+HcvW}F^ z8>EvB$dMA;owV(%DlwmNbP|9rLetp{*w)%+S74n~_!~g&gX~s<*hha+H7R+D7|CUC zh;!pq9Sc{6a(35sR<}<$w;H#s2F&@7da#NqUooJ-L_=r$+ymrh=OF1dCu zz{AFaG8boAC)AYVRsu4ryOEK1d|+!q*4_4{169}qF$+`J#Jw2{!yp%fB(KB`8F+9k zsR`4Rppn$GZzZs-aj4+Xt8aWC7kCll^VVV-1rd11i_4TbBR0S5NPVih8cSe_bk@~) z^};KhcQog3TR~cBg#6*C(lJtl*Y)b#WZF2pi8F>qMG+4zKbyh*yoaveUzE*yX!3}5 zXRjC-L}=TQeYKq~E&q;i!7j64g+$2= ztrw!O?>O8kvp*rK3c*>1P(FF#=x&U$UPR1`yCHFOls=fa$jSRLn-#&7ZCIQv(xMbUMAUJZt_-{tSoF1Z%48=a1!%w zHX%iD1Ll9K&^ZiT`U39``iLDsm}(%e7?23l{_K^^X7<2RBy^bSB$fSAthD@Kf8p;B zTZi}iC6v40)d`MX+I)Bmb&>l@O%n%~DTLkqyqh@OdfXb|Zwv`dvU?(q=uH`!s?8w# zzU>a-<~Dlj@r$LP(|dOPqj!qtqOhMD9Q3ETE_~=O)S<$8qP?&vf8rhqyf{Kq8qj%N zxO*$0d0_5OE5B-lbWbsbcv2`rf3FPvHZ z^BEseFbE3SYYhip|QN ziys(}R7t9uu|(A$Q|#0xz2Z>C^IN|08^JAVb)!9c+b8AIKR9qLi}RAI1CqWuxY8+G zTd0I;P}Xgjy;jMqJr*5TTEk3nX!X&W(pYRO-oO=+eCp*D zL6Rgh=?0q-?@41W^1Vy3#R2S{ z7sQn4lJqy*dsA{(<-_B4ul`C@apn)JmdCTB( zws^|VRY?~>=}+-z5n%oN!;A0PS2m5*rNi?2L$2nL`JJB^1V)ngx@tJ69TwW3M06fy zXN8X#AS=kc>?*g%5P;Q}e=boc{JJ9XZYD#pG0Ni2MU`ho=MjzO3{fH!1Dnct2XgEs zLNwiX0->{fPuCH0`^|LnALnf#=*`#}xlOlxJzFA5{2yP$NrRLZW8bZg*o?oH z*)O%7#U)Jb)BE^Q`nuJg)|VPAo{M^82dubK%lgB|ti zu^D``cdLs!hw5_Lysr7K3|lArz(uw~n!``bGu%&;T8n%%K=t+L%^Bm`ZMz?$)N4Vn zq0hu*O9$hD-&N!7?jw)FHeKoSWj$k-T1lR!}TO z0NF!Rr_~A6c}+`)uEZw9w7YYip#3j};)9tt*%p7CsV)_$+-u_PG+(RQ$A_-Otq874 zt?6kmvRCy{3x(H+026Q#lcqn>pzlE0T_!_n|8VJlmA)yoA!!Qe)1=6qC*-z$hjKWDQ zG_Z1`b?v2sZqjTZ+p||j0K%EUu%Dsb-X?`KNGt97L=IY^iWF>&tjbNK!Jj>E{4vy; z-()X_%3p1bxV{~FmO2J#9@?cpmjM+_x2tg2I?i=)gKQW4%1iKO+~z!1t8-|)dAF(< z@X4*_qFSfhKhG5sGCvl1>}POt;Pxo8-Kue+{L}5UzmsCHwNlz0#EBWve%$1K5?gWR!#daSUUqMRS>5jFK-SXT(!>L7dbA_Pt1#Ts#f{fv46`F zwo5JEi&xb7uxX%$aL+K=$Dbx( zoBY-o*jSMB_>@`=mBG zM&w-Q(w*NN->m2h^G^S@Q~tJ~S4`wO6-GPBxRjumxJnr5`hn$qH)P<&@4gA)_d!bu zt|VD`M`T(|2S-H0)VW!N*s>qA#|_Q>ifig~t79`L0&`%!b$NPI-|l6@@QNn@0?oox;nIVUfA+y zGkwFz{s1wC=GXeSH?2$qZ!?l7niWpGu=$8^*ymPW^ayPD{@wZ;iuQy-9cMj{htRm@>Y}K28R&%>2gVb8haawpsM%tsW4c8h$AWM> z64$-uzj+l|JGiqce#n>`5IS%4rAqgEe&$g996Ovj{@Ih9=WBjV8k^2dvs?2^)-#CFodLg_d$*;iPrdGjs z1H>SHHOU{}k5%Pz(7v1gDl2u^DPhX&fU*Xo7$W~rl<0p{D3ReG+vI`*ZwVCuUrpN$ z8;9&ALFMO|+KsaYfq;WR3A1Vk*v>r?JZB?W1RW`{hDz?7=OKP!Rc`Nc?7l>d+eB%+ z`KdbvrUD)|`LDXq=KL%%>$Gc~3qufwtC}sVtJLVR!QbO* zlZB>)>$BE|=6T@i0?ZcVrZVjpSQ!@{`(#U9+foZ5btemaP zT;QpJi#}}-2Y`7>X}C7kl+e^|#eqH$jnFW87Rp8gNVY1 zZ#jF(ID=?`*>Ge5*JW&Py+f{@(g4)EvlKcpCJ7LDFLl@aBJQZ7%4&`+ivr9a3(HP+ zxzmbgRBbqUz9C&)*bBTYCIB1zZHq_Ee~02i6i){-FqqJ__P)#X=?!|QZ_}e)g6>tJ z2YpziOixWLD`=o0mv(6f)EEpTL23)C}Vl0Cj+40(6z z?3dCENs4b-349{1FSpz5kr3%2*Z2@owv4B3pm9h`VL%3X!R3_#vXzL!v(6e2g)d+As3ykAM@wjYCEyNS;*2xcV`} z`Z#v+V&I{GDP(b$kY?HS(X`xFs2UvDHu8rQ>TyI{iW%)_csN-SRG=@z z)34JXkkTks4KqAhsqVyZqF!!>MhvH6SB+oZ_{*FWh+{|JXjnTZtg1|Fs`3#`iK2B4 z?;4~gaPZ~S0Z#Z2chwcX-4MlFo4z)+4V{R7bkQz+umWYh=M35Kyz3mg)m-KCmil|p zRP*N@4YO6np!SZta$An28{1G8>Jk=d1me_hJlB3R;)I0ucWtYvS}am8Q>D+d^JyUnx_&=3nJaaW z@X*jByMdg)?7V#Q5uRVp2W390Ie}i3PLh}a$OHC7zmicsEI*{htOn;vUp)`Hyxy*7 z&bzcBZU1?y!#6OJ>}q^kAe(VEx*AJ14+1XWLGo7xKAicof9ACID|M?Oxu*81B*pWx zmxM~7GHd+?^(5?@Z5bgy^!CiDyIrya=U2sp%!q!gaQy$PwnX$e%nW;g>0@uFJ2o$N zBEl)h5g+JU@Q>TVa2=8AGrjO6WMt+e_hShLK-oA-d5@P z9or8c5shDBMA|i61P?|9E`)lIv=l|zPf~wd%Fn6J=2#~2rrcRe|3L8zl(=VzQM%yX zfdM@|6ArS@>cZSn+MYH$VD(eHWI5uE$y=HgIGg7@{Qv{Kj|!oPmL~6Na^Ur(*d7`< zTgByem1Nk0bTPbl>bAq7Dm=7hW13UWN{RF39aD-hVBOW8CWhGTnGkv zcwEw@nV-I;#X+ZjAy3Ae8G$f|>7#USa)h(F<4SleYxN^eqWJbh=ff)SI{XNYnDeN)-V(ryKYpbLZvlI`CX_fy%f}6pq++w?jBzP9J z2@**?LXh$J$7RLs3$a^4bP_&!_1}QOrx(p?&}8W8lzs@XVw0C~ zXS*UZT>Cf*zkVLX(e;FqoJcDf!tc)+@5nv+6Y!H4q*SRgw-r?_yzLfjnV;vm*9q0N zydj!qa5z|n74*z!P65^s-fG-;f>P&~sPpi!hq1azk-5nz>-n<7jmDwy@cCFLNQF+? zhq}mQ?+3PC*U6UC%@4AMGGpMm1g>G-CtU)fi7y>t97(3Rh4W9q$0p)Nz^XIO$|zI`*lG6yX{Y`WqfL5EX1#msAHvx&ezHk=?!CO$CD8w zs8^k4smlS`nf-fEa>jOXZ%fb8aEv|TvG%9Oj4cExTE%6IQ@;yvP(6H(niHkgD3JW>m(Tc^47e=OySY$?PtfCdXOJ zV_Fx*%NEP?Se5W*rYRpk1`kMr2oBQ1=9@BKt_oBx*DyXBJ=65XuPmpCwKrTlm3;3r z2+u4gEG`C|QZjB^M`QcSDRm12XUQoLUQxHu^tYR)j^P1wq!{H8r}588T}=%!B1&gR zg0tCGE(zF+W`?hp(0Vp?sgS$BWnav&4oJdbubO(=O4T{>0TKP5g+o=ughd4pKQ4$j znUh5i{&ars@f1sr6A3R@7N_+LY0)ZQL?Az%$-5lwFB@bWZWxbRL?^yA+HQ4KU3;;# zXzQ*;(7Mu)A;G5-Xy(Tdu2fy4N;RXMc3`C|`jis*F?@4zJ@ni0iV0U<9mxam^x-z?ymp~fGoU57L;>eo` zo*pyE%6Vm4UAV((_zqkQ-90w$mJV;}Px(&etUucAu9^QiHz~EcxQPw^4Rv@z zWQgK6rS6`$yGRo*kwJC)p?Ns5 zUzicZo&;7ujA2Einp=PLz%TeLqyxu>ZesDif(OvGRRhgz^t;2mW1NGXG{B^z8jTw9 z_i*Xp%7%)LnO_!2`sHT&#?I{9#O4Y3Q53R*PD4znv2r%KCJ{fc9ZwWIGoNkiLU;`8 zp``e7QoO8J-|6gWv%_vf+N7xkf4|++RsDe@Mzd7Abbt_MZ_Dx!8a`kWT!P zk$ineM9x^X!P21~{V_(F=`q>xrB0R;n$+z}Vn%YSd3Z88rwfu_ zY23iC)R}-AAJwjNehB!e#^C-ctEl_kRgIM|aiT|i3o<3^CeZ@c?|)JCFiRo0i&ulenUd51w>$7?>vylktwTej%{}D?Dv=4|EIou01(~a`_eWc?kpCS zh+>6*6G{_bIkp$ciI{85(9j{4bOQ@uhJ@9UZ9x0Ucl~pNb>9UuvmAkMRMEn{shtxg zg2LN^v+)C>bHT}+9vKJq`i9fzhk7~QYg5^kd^;YF8>Fvf{(@r#rSr92w00lROYr55)*jxbZI@(ti@plD}K+Ydt54S(2Fu& zKJX&R)-~%A!4|Mt`iG20k;MBoVUd^4t-L~)hNWwqT~*I37{7_~j`zM;NRIk#plLl| z5)=GzDPlN(KR|}(%)n@=u@P0QTsxTxB&?a{m7kK=(?DoIf+#?5mGc?+NW-6`gh?DC zXKBOzXpg-TI5}cQZ4Kj4B0aOMCe2iP(yX1@;QNkuzgmOGuu$TFzRrX{&GG>xc5*al zmK3UzWsYs3sl)uLxwIrKTOg`WZ!&%OHl1OCiSQGDwp$B-x0$nf%cqs=*R`E#z)duH zsMm9s!2#FYKNhwjN^EOwR01=Im438ia)*G7yjq^7oLq^%rBOHcx!Vjg5^tzBoUvha z&$@NCmwR~Y-;B&<)UVyVrpRi7K_Qy`nTJRw8U1tU!f%~8^zJ~Crwl!#v*#G;Df4=f z%UVws%tv&SyfCuZTOzto__>bX>+0Qg{${UEs1%>=q60C08cVq~iS-$3se+zt5~6R8 z$$7FV!V!T5eSUS^{fulc48PV&^$sRJMyl2GD>=mPp;97>@{D`4o1NvoKmNM0-9Y$@ zp^f%HBa0Ss{mDmW)w>;rP}?;WYd8R)HLq*_$;*Ckg$4 zHL6GxMj~^tGmHcnj~6vb!gEIKXQ>XvjBvq_^;!k4Y0}Wz3LGcfCe)e?z`ms}P<(wxOM7^e2PMX`cj;R-3yE zD!Vpj-W(!SrOZWC)?!UjLcu3%<&OnR2Bnmer&d*I+YOJ$)mylBEdCv1l&tV^qP~Re z!q-1-qJw|0|6TAUZ#!l_t|`{!S<5z{dLYRxosY2FgMLkqi1j?y`XR-uGYRYBwu;z? z4u&b)&CLX!Kw+iDKfm}Sw=~G`W*9EmFd2=de5AcCP;83up{V*WKcdMU^IO^}(@b38 zld#a(;r^83f}!j7yc+|OlHyGdIGZ={bvZw^}HG;MG%n&i&s~tG> zBi+t+z$uA32h*Wv^)r6Ov*$GY|if{V1Dx(FLMNJd)C>q0x-U{NMu&8>Lb z>OtfU;K9QsRXvcE>^I>@)}GIC{koG0hoXe%tG$x9L@Df5KS4$V{H-+Wp_+2yD*lHTQs?AZB43kQW?yoOy+BP(bG442vzh>xKco2F>YQU}K-Fhc zLUq;RiLc23*^ZlZhZvUTnndM(ZJ=i()9P#D%x}m%o3W{j(n>c#EbAl8$vKlQI5-|;*P)-4#&WL;P*vih4Ulxtcxuw!Ct`)4)K zNuWYwval2cil18$Xix}lpB}5BN0+6R;_rBk8vWI&CZ}&-CyQ=7?!wn1NSsIdbC+hx zhrQ^GId7N)=p&6i`j|`+om^}17&?=jGA-EKB&y^_o%bUh7iB`5&8a^MUMRF$kjc{iKb9R^feUIMF`J29@cx{_# zTaVB(tvy)Z7vVqKnL*pzkfpvGY9&6$DS5MoJt6gad8fb%Q73=Bw&HH1_|~WY4x|NZ zqmJWSyByGw!C7B?7rx7H1Gm^~VAS`D4zKkh>$x3@B-dze$~F9$ zni#)iuyp3|GoGO^N554OYAZ3DVoK-HW{B`#hH@o;E1MkLG%WB)PyLPZRj}iUh2T;i zO~W>rnJ~QdM;`?bILM~RkZWtaG+fz$RSXQL@M3DB;1@!#27r;FwWk}WlduWM z$s`@D_FWwTt9$HfX6k23A~Z7jQtZAEaa0t`SA$bBIgOfp7->Sytgq!trBP(x8&b{$ zj6$>1cW1b<8$KxRp!iGVQcEi>SLJCVmn_qI*}0JHOD_#Oud7%UG)$}a?_iljx~wM-GT@RI)%CqXfX(@>yPxJm2Irs4 zrC3c)I4Z{%o^y zuBe0o^g}Yio~hc}|8?SjbXHVgS_t?Gw=Lc{41cE0PQy8@mGgt{Ew;m~yUbF7r|obt z6?C5};O!4j4YzNO_cg);y_`@Qt{Q>!!)lJe6%RG!GAFh#teRVHY)MkT6al=q`*YE9 z3QQU_E$)GTZTB^>r~Y2K1&(~;aDj98?GQ7qoBE{d7;c{evi%nEVc+Ydry=B(MaTp6 z4Ve7yk2;uQ4M5IUQsJvdg+n#niQ(t8wiaI8DCkbFL&t_;1B`d;1Php7A@u%#m{`l+ zZ+f6KNsFzsw?p5+N_C0wpc@tUH03hv_V3Fm+(`HEasMEUsxi4-o-LSns&ly;Gk>Z? ziP4lp^pu3a)ALO4=S%xgrwU9$TsnL_Q=FMn`%VE)cn!QY-BbC{d*s(#7t|2#;WyH) zB5Wva_xcKWZ=7xUjF$&yFe-a93~lXZG9)u^rkt%EV+4hQ`~4$XKuzGIsC%o-_X5u5 zvf#qPq+KuFduZj2Z!+?Ra8gIF)%riW>yGQ)dR-F5hdk*o2cp(`y1^4Jr6j{k-M9H~ zF*4Y(d9b`@FiASb5j%ao2whF2FImMfEzqYUS*s#U9csmlpi5fhEPo!)-#jo5njFf4 zRWMbjkwbL;%_}d>(`T3%#9n`vz4iUly&trnW0yo`OQzyblXrrI%#1Z}tyP%PA6BiR z*Xut_7-{-nxRy|?hFf8@wL-od=;%n?!u?3gTgvDSdj2v%K|DGt&2tM)tQAabAV0CzTymmzRtzbZZDXw&&mm_^_mBvYm1-U%{hrAL1*c#Un%v5sp zgG`<%My3PqaVwkg9wp9$PsgGVX!?O%5NI z^gPRUV=rH)e*(u8W-c+cD#Bn6{VB?%QL~9lw4#MiiZ zsECwl(aoHBu*DN^yrLfS`_-8tG+kf2)N-p%@aUxq!RaZp;ukOf z=xyDA89OdHHc`JAQsGfnV3WDzc}>%ghszYd0ajHJw0KgnxFTJ2u2sIC98;xs2uV~@}X0aV0AL$d3*4zls@Oay~ zu}?hX21#o@`=ucuL+LUAZY|wbaGKHMEL$f1sOc*w=!rv9?sA|*@&;>>RG~mL3Zx+_ z?4j#aA&DMB!&+}V{lEFRMeYWTCBv$x_`+a(Prfx?Yq;y)Gf_)eW^}izhJR=soTzFGx^~<^tas0y? zMX+K7DKv2-OANJvmDDO91;6eL&`*gB5#oFFZo9;LZE(^chE5R}I0=FmSbhJ4 zdD(f@iib(^(*E7v+`=zms#axY8kJ}3&5;1}>!0}@6^>FSC>*p~0tYNeJ!{HCJ&A@C zj4ZP5D~m9L=E&JH)sB=B`1;xR*IUbZ0-pC4=4y-!d>LaDPh$!jt;zKY<@?^@sb=49 zS$klWYT(J_OXb5qVIMPpHd}P|L|M5L>%!h4dHl1pl&K6agyx0aRwdr|AOPg8bm}bI^OQ7 zGML*P@aa@u`qJzw+25OD1@dmQ9*)ZtDK}WM6TX=l!X?Qvdz)D`>rA9R<>GxY22Hig z*7UeBiBC9GjyE!TQgLhzsp|=Nx0xc^0_PY95kQXVb9#k<2h+yCMsREx^T;3Z9^xct zsIU9s6L$?O(8mdAi>2G?Y>&?TTfw}^uS=@LakBz5>BTXkTYpU*0{2K43`s5>zAWdI zw%`$+=aX~=L^GQR@o(mTwoL5`sHgqfrrZ9!mrcF%xR`jG9=}8u^p^`YuCb zh@vVH>Xy<58&x@jqZs!;W;MnLKtZq2Ulvf0zu1J{9%p6Jh1*10LI1>e)z(Gr*9}O! zC-gN^47Coa`!2#icdEH^qNJHqjH^mdi;c?+~)Vw)Gk2eR`t?Y;p%g zKSnq6(@sjzO#EShR*>1y5gO9+K>Y#~c`&w2Q#O2UY3;**;Hzbc8v9zI@#`LG?2I~7 zp5yARMSbe1nd*DJX=e16;?BM5(dWL3I?5UagUZe=yYYe56g0t&ca=gUG_KG`$-?siF<-+Z7OaeF2r>lsTA_ zjcS@U+`5&=>yx%DZ%$a<%GsIRZiucN4`*Zx`4=>~=hBNb&z0&u$uTClG`8+nN2h-n z%{^k?>jvKgb|O->nJ^)3Sdk_7=lv!Ug%O#`yyVvkqk2ir z&z#nf_ihS#jug(U0Tk+Pbyex0)9vubr?@jEt3VIjQ(UGe4G@A;w(8Z0fF8LZ+5lqQ z+#OVlEey%rx&F+WHp}_Jb=l&2We#;iVi^0#SIrz{Ksesod_RmW#Q(H$cssF0%I$1L zcV#0vyH(kd~E4gb^buX@;51WlnN|iDmkYUF^ z?n+8^*fjoQ#%NS9kIk57gXD_yfA)p&eMwwpz36fOkPfteWAR%=a*jPl@ui%%IGf9% zRjtsV{gWRHd;)A^`X*){q^^AMUHwL>8|7weNmL^aP*1WME!ANUpm6~Jrq~&Or{S)E zh-|i7zJ4$UkF#$%^yGb9_lozAqc(sO;8`w;@TGa#vp*>sTq-gKgsRn@g13pE2B0-f zzn|IJFaZ1JmMa+SILrk;(cvt~|L{HDwi3M5uS790X5}5)2^mvV7nx0_S@6T@ue9JY zw(LOta%o}hQ=fnDzAsQT(LZvNXoVX6Lm>2@4iNq8oaydO=a}!;tF9Eg1%H6%8!^^5c)cpn=P7Zn{S2#A{oU_Y;2xmwgQxTaq-6Szj=3h zF;(+k;5@a2dQS`tsRp}R2-E;oh3wT}5u11?&}M^qBbU#Jn?O&TSvUm&zy$S zJN)6~7xKGZU&W0(F`r`;m;R8n)=>$cNQzSTG|07}(g{pndtGiWt(3~c@N#lOFD#7A zQ&O64Q>GdPUw=fB)brkodRQ?(e2QJ>W%dV;>6;{HZJ>1@ZTAo{hV`|1pE*!CY^Vk* zJInibTb7B6?M|4##67D~9qFm@(0fy`CYmWxD7q|TverS_S!02|Ri4q}+o^QQW7fCl zM}BNIadoF1o!?kJ=Ut*{76vg)A-6B@IhLKvoce3m)dZ;e2C(1e`0byH2AfkA$a+e$ z4C(e@@p9y;rky>VrL{RfC2r8c`R2n*0|cifPo+ zd35Lv}9LQMpaD7A4!d;W_XbW>Trt|FN@ zR=}I8wClYbbo=)}ExSxl1P{S07y{DXl(`Yqzk{nLg9 zVKztKzZ znT|1~Ijv!9gU=HV@KTV?to?Jqqf_$aTXEFc-PdPhk2b6h-T8S?I$8m}fYIcW^_bJj zeUd!tgE#q_1e({ziIV_4Ga>u5ZFvb^iX_!J$5cPTbTlEG&*XCEZvrPpJ@~!$PI@nzJ0>%D+=t6n!Txw9IO$cfysIFOViNLNI_K z@a;N&%b;SK`eA|OBey^8>@o}tynK4v_bu!`Hww^84UBw5pbHVxY?fiCpZaDSC%1pN zH#}ME2`lYXSBs7FGe29lIEXd9QJCJH49tBTKJj~)Y2*KC?>eKJUbcM@#bd=I*r*<= zG*JN&DM3Xs2m}K{gg_7wBnU|8!2~$Ag9vIcgc?+u5eXs?h?IClq)8`)j!KDu^n?-& z+==JhyY5}Xz*!Q_=H(OuSBC;)ulzn6r^=Hwnt)@Pra3_Y9PE~+l)M@xzjrT<7){2m>$Cz z8_8R=awsVFon&Yr=cvch(_Vj-Fc7%QNcR(xiiZ`OmL74lZ>vcwYIR6+Z%NtG^g*Isx)!>Qng zmr;{e_Rftp8}z7)K9ei6^hT2T@TfLQYf$Dk>%^UEfp{nBfwx`PDJf~ZC z4@`ZImhSP_d&A+^7~2i3layrAqvf zq7kLbYQ8@ct6tcpTG9?dwxq#l1*}hAP+kPaV&ECyV#=(69ikwq{VV0bBPW=V9wt}S zz)ziv9-noby!vyEq48(@#;BFD2L!tNnW{c>bohA3mHH{QCHTB;d$}ie_&B0MRVhOu zRmw}9MII43AwTnFt8j%|A^*Bv0^*g4z{(^&Hn`=aOdt60Ea1JZRFzVWWV%{(zE6(F z?d9LCOU$KcyM(F-S#tC@QJaa|rJa0*qZ?`oQ%JLMGrf9~xY6f?5xN&O<_04Ky#FZi zY2Mm4P-IHCCoD<4O(RGyOL;Rd&=8& z%!%|tTf}}_^>1pHRLx**+(GxR9tFc?Y7|Z|DSsONAU3yGX zTv;~sLG1$4AC)`hf4x31@XhBTxy_Ovuf)%~KQ&tWsO)aAG9j}~GkcTfXwj+grCc$D z^;Jv-eCwwZi#>ri-%x5FN;0^nHkYHm-$Z@8m0pL4zK?L@S?w5kGQr_r!g#48qF%N( zqX;LXTPf7&5^s!G5!wgoav9b31@QwQFp;FS}UkZRM(9~5eO|hWk?9Eu8qJ!eE$AK#mWjs-w>P} zvK=3ti@Lc5)-kfsTYNXl7B*loit?O}V)bKx;sgA1u{(7((f`IPd3@_j+1NwrFZRAv zR01V<9KUWO=-dXYLiDjJrAl4sy?i9zeRcYS z9!*(Z+^L$^PeJHsnejBv?&!N318<*$!JZs5YYzTB7su!uUhYMcGS5vTHq)n<1azeo2rh)~^w7 zEA1`%DvJlRi@FHbkEIXK4)4DRyIE7^{pn^|4r!$&3$cW<1y)P4^0JQ8D=YaN!_QT4=6LNS;5 zk$0d4twvzrDp6EC)kKGXA^a+8XoU1!vPfsKb*0T%?|RQDs+qE^PnVJtM|^1FwfLW% z*gU+_n43Y2lI*f|VNh{Ic_Mm_|Najgrb4zzTQ*~%mVqcpMTC3b)_a`Xlxx^pG<&CbdPy)M^>&z_ac7#O& zDo5;w#nfx8*PYyKL5kWz1u;5ya`=s!;E~kr#}f&4TPD&pOh<>)2zN$DGO}zfQ`Si| z_U0QOD-W)Yi!1S*+>K2vhASU;p(~lygEyisx%{3sTq+@Mx-x1jYW0Q!eS{@S+zr+Q z*P!7%@CA&KcQ$?yHNAr>N7wQ2iD1tO2@CJ2t6K1L21D-8=G$=>rfNrSL(XbNxP`kt z&FUto>%=vFtwwiO^}utj3z;^t{0kWcq{-Cr;tdeg!R#xWA)fc3Q`V&NZ_C-Fwimd#GJ<{P+D*mY>xQIL{a3_)tXP@anIX=Ig~S(tY|fskOWXj~SvROhc!;;1d` zwRgL(Qjup~-kjK|0CVUrP+}}tN2S19ygrhbJ0&LBYb|Lw{G$8RNau8c9mA~B_N!rn zVRAB#lC`WXU;Cqi_h(glN-NxSo7D@QKLtMuf(-i1Da&SwXb-{Fg6*R|54Fq{w{_5N zO>a0rk~**56~FImKNjqTw%9?fsG}x%?!#nb4Zi>JgReq=qIqY-6bP ze1U0glb=)5Kz#pNN-y)MpgS1)Jn?6izXe;Px?Nt?+fUN=#LY&Hq*bFw@tgBFpQ=5N zc8!TcTuHAC$Gv&`UZG*3+!5*W(_j?CQ{%x+fU{ z!gaslM=6n)GE9q^clbq1Y~EEv+9mn5JxM6<>b0$ROq}ZjT+h!p?$ialJVO>%*O0C- znwlnA3If}awZH3q*ug^;=^O@6+(@h$a<^@}`1k(@y@h8?ic-yP>S9*s9H)V`{4xi#hh7v$$(Py`nhDi&3bL00Wh8LCa0dDf_SW9lI;YCcL|2WHfKP>$V z5$CDHU=^2h8|;cq;NkNSRGFeIGp9@b0Guk(|7NmYm#oPia@aG-w(|U$uD_DI`rz_+ z!q2}gg>(JSmeZcr_xCR8|9k*})QJdX@?Tn1?1uk;@_$tZ%jI>vE3Hhb;N&OZ%0TP+qsetG3ua0h{erOIrTRdhLnJ>-6Q z$4UFM?)~w8cd6^O@tWPgJxR+6_g;t0?8?fJXr!kh6D650uCFsVZ43A+6G9kN{%`ng zmwcxBPq4W@{l)lSs1!Z>?eBXZAdvlsPX7y&?@WKi{k5?TbQ8PZ`ma)8M{I6W{y9=q zv;z0%dPVrfPZCjbjF2fuYl>0N9N(=liNRp#O2r+f{9VkSKeW!{gP+F6#;(lO%9jSW zR7Na$-n@C!X{q0uh0$a3Sp`I;7NZ4A>-3W)U-+QAojM789z1y9;pyqA8ZYE^_Ct4^ z-iz9c`SuA)Xu`_X#i>5B{$N;Ut?C9ySSy7Dnv47fNcX_~8aH)P1AY4PAxXqxGW!90 zl836q1v_Pw^xAKL1qKEtr>9#H`^y3pB_t$#*;>7~&3#>z5iZDG z_x03E*Z?M2vJ@2Iq+HnGV>#W5?+1 zm+Bs7WaRWfxhl{FcMs6>Q-4(1jVl9w=IJl(^9*p@Z*LbOmZq(q*&uZWD{8tlN3Lgu zE53G){?6b~oQkTDnzV9<%(m_u1J$LIF5#o3;3ajE1^l`pINb*3@J2%Kg_5t2O=QAeV!aS-yNveNn^9fn%SNt(JtdboDCEJDR`q zg0KB83_*5iZn(CTdnqK3WRY#YrU@}+N&r~$Klb@EE4A`#R-59a^+QGs+}+&`=Y{(~ zqE0Plbv=bZLZpAnA*g-o+Ad?i@*v^J^p*t2TL2fn0KidI0W0&PGDcxHnwH6ELb8$p zcBC$aF~eLp37zh*ud6#xA@Ik$mIo^%%0pYti_6NAy^*Lqo%7EagiEg8C#mIhmF*7x1aM zIR`<#{&xDyLEA#4@On^??&h5` zKzrA8d+81{N{9X~omXBD$KgR=7C`#q_nw7!@Q&)?h{f;T19o5_XB~ZgeRdwZyA=r0 z78t+}0E=gAb75BBy(i?%4t1DCHp1TCp3d70d5Zofgb#^BiSTPe7Ij<{qNTLB_=#hF z7d@iAuC7ir64+0FWdt~6>_1eMK0+wX#+3B7U1kav`+_;WCFg~){V6o4NQ`w&cYYvr zs02Sffou2FdjWtyLKpyNQh}Nd$jJ@fkcUL6l7y0SSo^_&798*yEY=`5`iy~g%+N4( zxb`8ZlWHqHjpt3Uy7DV{nwpv;-`X-|(|Jw$L#R-{OecSK0ovbiaJ!4pk+nJxygG$n z8VHqTkx%BIa()}6Mn3F}F$^947)K}10MlT%4MHHdEP<7j*S9aRhKQIrt$pIk}#s;eh3H z$Lab4d!IqR(~Qc1=hi!?Ra8~k4~DAn5d%&U!qJT==`T-NSz5m8+w|j>xJg~Ae^v6C zdpk$F@|~n9nMh55fh;?9-(F{oF?4;UC80ku*V^zx$-;}^BakS+-2mn|ntk41{KPpC z3fN=i9nV`M*H?#>>Z|ap$DLQp0LeZI)iHnTPk$Z+gLXbmK^y8D8C8t;*0yaA6L3Mv zlZikG1P23C|0bP{pz>Dl$rF+s^Ajahtw)l*DB-Txak!H$Cac%`jDeuYK;0=&?8tfZ zmMUQBL=O*-k$|5^1182`om{PZtO(rEwY_`y&X+O;zD;pun35E>ON17fev>2i@@fV1rc~qrFvk1!xhbU*LVey%CNh4 z@4g+pxE1o0EVOG1X73f?Z;Qu!V`5^`P6Q|bBv=3|W1yO6XKw(unkmM87%dld65Z}P zp95V_RyrUnJB9g^N<~o1eiLH&^)3E0v68Z~?umEY_uI6M-a7@2b-`&KMqya!jn0_ZecEF{t(TF=^M%MylLbsl=wP@in1-6A?Rz9lA)e|062jm*Ql9{u4uwQMX|+=o0>nT^M+f)=mm*JZZ#58(WoH=0#l^lH zQDB)r?GZ$4y?TLL%em-GKt0c)V60jkY6<4WUKokkHy=0_XDhvW3+ zx+8)=kGDQMEvB6j5DwM zxNpRGH$IQYYFAzB!+RUr<*~XhTW6S5`jz=yyLJeK*Xgh!R`4N66hTqw&p(*U-jG{c8YE7@S$j#;%9Bm6rgB#&O&3u3}N$Q7a3&)$B1hhg*W7qor5cMGm8EG#erIo9zq z2JM&#mwbD9WCu+aSLxC+P#!A3Us_sv@-kBRKEd@7_oZ0yRBuTIughr#oS>Fdo9(0} z7AK#}Y+E!=K@aF3JN8E92dn-7-ElKO-WGtoceG*`kza(oHT?zHGR}f-L zV->~c`{VuNT<>+g?{l4V?&sXkeLpAhk(oXnH3u~S0H8B8cxV9tkU#(c(ifEE007X5 zGHK%G1u)P;UmH+^=GwX$ka}pDY5@TC=`{b`$Zp0|{s#7e008T)|3AQC;ll?2!1Y(d zhgwz;=iSSMK(5og+H@jATMJs{N8=8k8HKF)lPswrXO-a{c<-D|&c{GaJ^%^dYjgm4 z3>-uSQ^E7Oi>vxA1veir;V(l@Ki}iZ_^=zey;Lz$VLl4rIywShLM_b`$U^q?@`~G! zyQbos-lSEFiZZD;D$=V>ovwj(UqBB--q_f5IpyM9&W=|HGqNu@zm&Fjb- zrjAPI-Fr_I`uOx@xz{#Te~edm+XVLivko|2WWtXXta3qh zs-F41i}+`n2!~i!z4uEDJeR6B@62=XSY|x^_hi)>cedmAE--Ik2k9Jq=o8@EDLBO` zd3)Bc0eszd<$Uep;^DOR{htqxDJo2FdB?{d0-xrMu-u6An5?1loK){^oNrF%Hf61x zNSL*lRi1Ji#}g zg&w<=@aSu7JgpU01;6wmE}TF~&oDjguF@VBx%bi2W=n;UW>` za^4_W?IdC>VLNOrH);WS{jh85gHY-L4``G64E-`M`qZ_T-2OLC?LeBaTQk?u6F6Xo ziS{`7!GE&yq@{a;(J20oDDA-?;|JLkm}`^!QO8dbyF`ecI|svGBz|Q1UE`w$y?&fC zK#!GvWXcEgwqK{V2;p0zGU)uS9T1SUQj4qH)8`YlkuvE#Y7)ujVF$S|k7@7Qm2WB; z9(}hbrllDl`1uZ_q82}7MsdsG}fldvuNWRw62vbX70+mx~r5zlil5V|vB2Q9H1}S`cdIIu$2#@v*pg2uZe{EG& zf14=}2|$iK-TUE=RY}NN`SX!fG9x%&f7Cp3Ci3rZwN>X#ne?{1T@QQOxD)^7|D ze-aK-zr*Iw4@nkRGIlsqZL57%_)y%|n8U53>|jLoWwB);=|g!V?NX_A1BWPq)-ub;vgNA#3L_SbrC932P;%->PzVr4SOy?IFXf zHQM&SodlA@DxL@U6_y--Cuz9-@{$~(ZnBxiL(1dnc4{B+4GlaT zJQNf0f~aYpD!JpABXr4~r8pzusUx_WW|E}dY`&W)_;gQ2X#WT*=Bxrp!1cjxybcRqI~)`F*+BhoJ}#-AAuNj zK{ZNHxnS90p|Pd=Apd!C-X&psu6Y6DwRv1O$@AY&km8g~y6SyjvN?zkcR zvvm$_5YSI^;W71q@_vCb0C{^A4JTW8A&3`U3Hvui5nqb7r1X0^8AbjexJjkILLgx75#2ZVnCgxl_A6IYdeOkG=^(p|5zvut7Ig}+5*0^52M1sg2F22krK8lKwgaq1M6(q2MKARe9mI=| zbXtG)28(In7Fj9{#*N`GAma0HUp~+#2w3CP9-NL+n0L4BF=uW%*z-8aq=)$Cn143! zYZ>-vms<}6{0l!YJM;ES1gk%iHmCh>Bu2-lA^fhiXK|}v)>t8&$?N=cYgjty0Nl6w zlmua8Z|P~NMNy9-Ae=d?`Z>JZ~BEw#8WnB9QZ72UAoSAvp3}< zc?KEk$3I;h!$Btna+H`_;W!?39k*XhygHboBNkQI;--ln^&>9X*W+ClR{~ME>uZxw zrP!$z)i*jpQQn>4TTetjrPStPg8g!2g8i~(K&dyZ&Fn>W(t$X)9e+ub1y;hraru zET_MD07y986}0uV6y*>pZx`7*MHBe(?-)J+1~AleRERXYQ)<5z&KBIW2bXb@9mg^a z`b+O=qORUccA1$&4hu=alO!ItnRiKl3bo}u_3+DL01@sZIL;=Y5MBF(&p#Y;ZK-Y(iRv@0U~McttC#qDA`;)&mtOS~TS)@IbDFFg_-di|ni$Nya za8(!h6+GRk=e+GKB6IAU!}_LWgyFmq_augl*thcf?7x?(;oeBy{pHa?#qSLGTMb=@ zHCG#__YZ5YQx7TaN1;Ve>(5hNFwwcYU|XjIX2;k%xxTl0%CKBoX&7r8)RO+n9@p#V zlFKWLcDh`1!9|T36sXIU0Pw+axdU}PqCZGqcHojbl7#%0Ka}hZXRedYKR@?qd45)t z+E5oRsE$>Ix0qek5XjC%txt8bWk$YjNzdM26k7)W7EPX?8YDJn6P4QtmfW>Nxle0{ zThv_M^M+Pu*tXja5ARPlRCvTx?Jf$)(3OllpxgaWOUF9mF;Ib9drwEi?$g(oo+dS( zGNRS^(JPJ02U&IlR89}@?8IB2c;tL0G4iZOW^W0M_Tt^oN4W{K*g?-s`lTQDh5@5NLBWazzExq|1fpl zUFKir6wi=JUG1vpfI=Efb4-Jc=j2TfyQl&fR(b^WxBi$VM`TT{Ge4W(N)9?lf%VBW z!np0^$2?fXpTW_eHNd9Z!VgxMjh&P*k;t=>Yu=?6*4vGTp0F~XY_RT3WX&4Ona#imaShG-LieALeL{0k zr@)f{>;~ev;agNAvSOc8;53zaNbXrSab{o7UXlBKQ(k1iDTqK|_Mw&rqyGyaf$>Ag z`3PWG6GInMpMb&sA<8)WpobdEzDNL&w^`=4p@wQ$v$HK3P!3pYD7_V=6~iC2r=7o< z<#QBe!q+4dqQL0&udtMk6Q-}MTk z{mB&q!R9+`hvK`A8``5P!4H~ry6#zse&VUk5TRV8_%`=q+@x0dB0gF_P5sxPJGQXI zHG{(3G8*H2|1}yUv!cn1IB|>K$!N#LppyR{)*4--tzNBZ)V`MS50OtE9`?Nl5S&$L z1RR#3m~VB+>ca(U6GKKkKOX>>CiWz7yz?&E2LsL@a=*w7IV`kDT_K+bcZ#Yk${5>V zyc)hneXrVC7L}oM9}Lwe;%J`f690Rc3YJ}zOg`!Fn>C+*{qlq2i~R7=jHg<+{;b%0 zl%Wg>Ol}uSZ%f++!D^M(R_L@lTr;kYo4EhpWj_hw1Xs#iN^0AN^4U!)*XM|pAjC@C zQ3S)Mw{0_X+< zZNp)rR0!d}54$P%Oxsu?=c+Q{XZAGYBkvrAemFk^H_8>SmUF*D(3rB}(e0R}YzCyG zFeCN5G+%3Wu@x!b#g|z1xn_r}=vS45tHe4w?A~U$8S#CgTvjU z#NHy4v*As%v;Q9Ef$uv>7@sziq<=db8{>jxS|To(5fo!IE<3yb2ph@=px%Nf%HFS+ zNy5TPmA8&;*zWxhpjB@c3RSbb^47o;GDw*hvp zL{E^<@A{0}ya-D#gC9Bbu<+f4IGY*?EF$r`JxcmT5dNguQeYib*&Q7`FJv+BOfas* zv$Ev7Z#ISh@-x(hNst1;W-#5;(tQPrwuHnnXH@afEh@zBsX`-V3%_Jaed1jdN;k89 z98mClWyPi~s+||s3xG4?e>&Tnto+@yUkKf3Jk1Bs|MYXG?!g0$apY1JJvr~(XAj4hL`v2pj(<|$3&WZ z%B6Ou+B1rrel_&4@sw>RA zKyzhWz}Qg9a1A*bux)n{!(2s~MK?`PXmn?=0TapRg7E|zHB-tbv!kfuxS`5#{#Jn6 zcagP^s$R$GQ%+kv+%E4)Wj}&$HIzve)-94EN96~1)^~ojK1izu@K{npr3;1&64r=R z>u>jMaV*BN{l zv;QflX@UaBeCWRS<2o7n=BP|k{Y@Hm75}a^_H(oi#54CVp`GRm)MH5oNPWvq1D399 z&M?pD43-3r#nx@0yps&*>3LsX$!c6!T)cPtw&q1k83;0c(hAJ|Bh}ktJDwhMFVyvEzTa|+qEqp`b zBG%9EovEZNjjdgjZUXh!J4(|>V)Rdj1YR#k;52JVDnU9E2^;F#N-z&VJht4T+sH;7 zQbBg|&9Gk4>|H0B54Ym$=G#5&i>TgcYJU;3yFaw5w8i}cR8(s1sz|~8t>g}Q{oE#O z_6^E*Va+deju8$ z9VS;~JQIIfv9ROKDM~Bjs0`C*(V23e1Fm&F#scqkx>Qw3Gr0N|C__z~B!gG)*cz5p zIaV2Q*_l#K?|+%QpD4dE{3XZHekn&N{b5TOK~?cLzB-dNV0rE@_3Xk~Ly6@JIbb>6 zp?m)N_s&Y(*JuS|%!(;-@-f3w@lB<4C59dS)zg^Xpy3c~{&I3rBFDyw7jcX5UxaE` z9zi|Av?_4=HsOvl@B{s^)=Vb@q{1E&*-e1!pZYfG!$&RqqtS{z5H)^y94Is>xlvBs zS7S8D?Y5gSeN`E`bDpvSph|+A2T)Me4b=M(%j>y7=7lXUzu7EAAn`>XAJRAS=qCuheo6wX z!Y4*px#%^&S8aX_HbanzszP%Fw6D}6`Xo5;RP)9y$OwOOp7c3iQrRVsr2;7~Wz5{o z=8|iiYv6>ep*V|Pj(v7NT|s_qg>o~AJ&%>>k6sV9S`e>)}l(TZokofdvh-5-DX#RxTzv|aE4Eb4h>7_v#A7M!ttLJbn) zHn;d4&2E*Gy3z&uM+gy&@??!Z`XoO$e9{FT%aq_vcOR0g-y!fZ7X(cb1Zx)$*sru( z5*+*~f_UEyDZX#dv5}l&iJFKsU&*VZ0UDBLTe$ffB%?{Z)ImxON=)PhcI;S{C$kmQ zGBE;KDm`U-WatAjp0ipuR;wnaW;ztemD|Szlo}M+)><8oRn)E#bm2+f`|MB+B?Bb3A*_juU6aJ`-N!`9!#z2{JmL%_4P2+@a>tZ4xg+U3C>FoaG%q&>IIJ zf_Jl8Z^~0N#=TnruE8{Sg!SYanJ_Jj9+|^Czu?1KSOa-B9ATV-@zqF@km}pJ`SuN@( zsc0{0n2?Gg1x19u?1K;y|6Wr=z~tzTb)X^HD~+2Ks4e{^=mk=r=zj)NqgHNSRkXPa zg4tKiq|P+{VzD{(BJKLYLIbptIzj_vSOp0)h-HE8e9Mw z8|DKh$YYQd_*WMYSs(TuJl|-jL4))-R~#OoXdW8yUjjYLYxq#-)Z|gBjA}f|NirR; zqnBObdJ5teKH%PWL$6<^kI``nhck?GW5M__peql_DisPrvaK7C?(}Wj`Rl<%r)0}Z z`z82@8GVPlPms7j=*KmZU%J&kBEX zPrFR$8YSMX2@3}dWFGLa4P^)^``tnZp5V?2!?fV}*7V2&zJmZ!vz?xJH4{=Uo;AE- z?^|GI*d@0nUEOnv+~ffpTTdZN6FeaVlabZl2_$|gJW7o+D;rjdwc2h6APUI_ zy=|V0oYiH3?H;;`6;+FsvR08irAvLa*Q$K{tJgHc~J zryYZ-x&uF@dgHQ>Y$j2a1z)WBDHLz`$?r3z+eUjhRLH`uVuszS+ak_F#;Zq>g>em4 z68brz9z#ULp5Dm$?-xUw?X5Af5_GTU>~bjl?%VEef$QCqej>^l!+0%!Y2*ZdW`ERr z02n<7TJ!-OqhNF`pO7u-Uz*d=0Q@Y)yBtt>ydd7wYxDFivUJ%8U``WX$#N>4;Iv>W zw$e7gH8vr3ifRlck>&jyr(FN>sYMb<~X4&k!$7~fT}Vr1W<9o z?Aj)|C7s>32yJLhuqhF-%z32zn{u}AavqOrjP@`sI}BMO$1Is!M#83EM*TuHo*p`1 zl(*lUK^HR_7pF$gWio-_KsXIl2IfIr;({DR{cvtzB2;DU{Qhm&tOocPp(oH5v;+N> z9EXwuK3942JxR9a8};<>{{M>OJ?rxaW2##jAvT=+EJEP{pC)H1!NPGhOaUDsh7Jts zjtBGs0foc+%fj@Gdu~J?6%6<3%8G`UJ1betm&_YFv0uu!SE?{)UeJ`D=ph3*UG3_` zb#{6isQ2q0E=5ug@N1tA3b{M)o%+7}szwDX-Ajs$UR(HB4KK$on9`8Er1E(Xvx7Fe z`(y=p%Rl4_s+}`%U(<$gE)KH=)u;Wl2!;Jgk@fwu`hBdac{Mf!pw|(tf13`h?qg*B z>2>?yvsTR3&>b3>4euDty%#3~OHdfJA$F?1(BRbGe7j#^OZKC3RRI;aBPu}m&r~oSh@4^v z5Vce{fyLBy#sc;6_7Ger0AV`*=tio-GVKeVk`b!ZJ7~dDTvH}=Bz%NjPvR2u2x9xs z$_moc@t}7iM(}_Pv7djAC4~DA5d=_{_`D1$QdhCW7A^`KLZE{G&LefV-QHyR@t&p( zFNdw~s)Op}Jf@O_U9%oZG{y9UUPp3tZZ3>f=uOkZ5S8fF5g5c zfXPZbodB36sMZ1)o&9N90I3gmCfARu^$aR*L<0J6Sbq5!sPicpEf zjOqFcR~yie-us>5^pWAGb_GjckJS1te>0)BTJn$7bqE%(&(unFS*Db*5Q)CxRCgAL z%>bKx>IdzJCqy7z=pBMhASt54-v5Eh0wHzTBeyrl7Ow1Jr#4Nt& zQ170{fEYEI^a51|398(`a6_#!#eE_HZw0Ek^YNHfhy+||NOt6I(@X|y#k?x@-1|sa zS?OxEaiUvf0%5k6sE{T-Y=SqZAK< zS3lO=2br4}wY2BG=!h;s@66uyec+~6XDATE(Pg#z_(}$*WK_hC_Z!Gl?teuG_JZ59 zLQa%NJ`u3G!iKE;kW3IYgB*NJkgDcg;Ggz~H4CIm1*nT1y(Tgn;oitQzJCfm)(P$= zEH)aCLVz`tnnH7YhYJa;A&5x>N={&V-oJ9d{70GjtqawUN@{GgP22fM{V(ZqxZCY- z$Xh3MYbn5$9*qy%m69g#aWz8`4iO1re7(5-aqoJ4VjsK29gilsd;XVuHW&QTO8VJsj^iP9?}Tu3^{FfC7bjK<1Xo2)`@DE>MBtc(R+l zKy)GD;ryB4F|c_R0lDSAc!n)MOo6ffk*MuyOrYGmwQ%EOe~9#J{Qx)koBsPC)gnM& z?WNBu6FcWWO+wHQXMl`-IV|pmOkC^*omxH@adXsMn%C`hq#Q&AuRC|qU}ukyB1CC1 zo-2M1Gk|K^jXkR+dTRX-SIJ}FRmC{m=gP7T77FC$gBF#g3|U#G01LYvnD^?fg&TRp zY6izZH_`839qmCUhd(C>;5x&iTL{MmtIjXl#}4Fv@vNV%lv_kw zO4T(CnXAlj+P59Og3|sYi(Qf?1qUPIt9vGH)Ym5Kdss@R%Ev&GhD2H4jqj-BM*&i! zVcbXIkI7FyHcK|$7C!JC=i8F|2DR-1n6MVjR|7n)0c_(WOesE~f7h`6hpuyMd_fdR zecaE{+*P+c>ZoAVtr_mnDh5~#4_LgWQH0d|2cv4Yca6Te6H<8p>&^zuTTuPKsR!GJ z>9G4GcK3gMAaG&J1=JOg0c(+)pc8hK6yu20F zc(HX#K3E7!ZOu{%eK*Fv#S)tGEj%2qF;);z7-0gYxb&MKfxOx77Q#R`T3IF}FMdC> zOJT;Tg_5@FAs-IvxtGGN4ng5G2EglCyk{v+(#Tq(jzb$erLnkA{z@0u?K zHoX`xBrR;*w}fn?0L~>!i-X%=UmpFQJIWNfh^9vxJlN+X!145JU|xhOW;S(Rhp<~* zWl6GRUGIDfFHLROpOD+9$#-9l(<>rZWzk#%+v?nbAP(8eSRC&G@X`32EE=ll-H9v( zu<%69>q#rH*dFrm_TxIGO9E?JLT3YAG|Y|`JiPV~!yZgrk3Zzx;$ict2#cN`DVrKu zCc$i#KIVCD!s#s%)Is%xdgAA%6V{1hsp^nP&R2Xz`|>Gx7e(Or47@=X{OwvxcjE}A z>jC7OQyaJQ-C@A;5V#^NSB|GD z3#D#q3oo#`{rXq#gbfK{D#(=C5^6BU1MfAHC6WZ0V2T^y%&j~OvSpU5v6xr6oni z#k4|8lARgwi)08o@ad`~I3mabW;}?Aaf1L+Kd2Gbq0xUN0fPqx_HB&d$~{+VNPB3W z><#<4hl!vbOBK^h(*7^uBPj;(-x9%(6mx=~@8~{U2vq}HlQ`dH$Yo~i8Wh9Dl*Wdp z)sb-!nBhi?czFoHDpSwdPna%FN$s2Gro&?gDu+7~{Z^>5Z$8P3hJQW(_QQS~+VxYK zcZNIK{XZV>GGYVoZ#F_QsCf@PQti9@VmFqZf0i zSQ&HD&yYB5rd&q>Etmo_<&Wv?rcp6p{MLax*7Pf`qdC4lx`#ulNFQNu*+9cl;Y7>s zA{9av(}rW5t=8Y|Tn%f@{|;necSKxdB8Tv?9?w|x$~tNkuA{|Uz%7R zi$DLMC}=dnReh@^=FzUJ_m1dFaO}5=m;hQ8fOXrr1$JxcB{ok&b9DiTfl|wSl-(6m z{O?F3;CK_b$e!N=J-@6Tf1w%6+$y`<|AGD?4fDbx)_y(qfEx=1_$7ES@8(ZmhWVIq z?9m>ak2-{L$?pAI7{(l%2+5=Oa6c4@E*&IR_e}Z7Dl8y0-%$%d=jY+SP!qL$APD;2 z)O14LGgeE;L7 z*$Bf*i%Yrf95n*t4M2uyx#eXZK5lMz^|VF}k+x-iu{k>CW2ZQs}d~1vs=ih>#r)`oQ zP?Yy3V+&?lK^VwxJ|t}dBN@acXmHQ8#zy(#v)hCsO`iusOunS8s{bllkE zM8A*Yxk~RZH0p`+5b<=3W0ZiP5Vg~vnHiX!DUyMaK>8!DbiFnViuey%zD5pkii%xSIG7QnV*iTIO2!O$3J;yc(L%*R^t6QVAF&5txc&JP8BSv z3I=}qa4@yBr4xk1kKg_NrU-hJ?$cZl@VSDFqWM3PwmD2-TFX035(}dT% zVIO~hl_og0QY3x>AP~9Hhi~Qh_l%W|%|$vhwBK~)UtRBLg1#Ukv;Fy09?i1{ufX5B z;ZC8M+S*E_G5|Jogm~qNcb4d#?@i+0|Cy>s&7)p(P=3zl&ki{uFcS2Bv1+0}gf@Ku zfp=tg!r;t-M!hFQNwE6Q6Q1X1^t8+&t4=FqfS4R1_=Uw#^~&`t7%f;mr*H5<{&4xS zu}&w2>AQK^VL{(VxBHs`ntM8W;V9#WsS;J4vyI#3&RHw6N*yubV`NHGo*CIRo z-P3&LDRxVvTNdnL0Gjl`e-jKU9e>g{qHqW-Qqd zC$X8Lu4+^(LSw8Na({ZKIbT^)}jl}=$U<9j=;hnLbGs1j@Ad{@4)5Es0r$&Z1<~zF( z)(yJY_(e_E7`9@3+Q0^U#J?nbdv5#DRWr%o!3sX_O2{W_?UwwCCuEw|3YT_teZ~0< z&b_$D#q>XQHG{T0I>GM*Mw!VRIO14~>ZcaZ%xrV*)Kj1!P?qAu&GeLHIgPzu!SsW* z&e4~84l3QdK4_goGxvLhaLtYO0cxX9pWG01o@iZK5Q-nxh^7IY6OI7BaULH?AHB%_ za-VBpjVqgsUL75nvkpr6a2PFaAIVZvW&t}lIIe!W{RlW#@$Guz_A?UJEQ;?O9a3`) zOuzS9t6~P&SlW}R=SRHGDf+lMinRK>pINr_s%@_$2MrJ2K?23I5o2HYNQ7L{WhAc^ zfSSQYDnk4$;6=JxwTIOtOI)XmbWdOXQN6v*oN}Koj8C8xz785M=R2^*B478kyj?94 z>9aChHFI}aj$4}5y>wRa?M|##wkXX?bEc+vFmM)u$ta;CoVzWk^)Ii15B`D`v*P#o zr*ttSsvF&M`aeHy#8i?fU+L0}PV&Wg$z0?Is;n@}M&qOY#321J5KAok8G$6PR>1n| zlr!{0m)_ymTV%zg8Ps(jQmxW|^Y$eAbJEl%O17)S=C z#l3l}(I`?f5I(H|*ndirUM~quU;R4mI6gsTwms<^fN(y0ydo6cUU2mGeB;Zxh6&wP zM-L4M4icu_R=m~RUoF|2;9=F1pq-WzB~dp*Eg62?7#$AZ;tv0_ zH!^-G8&3A1;93G;V;6WO%vfW&wcv;Y%9pyaKYnNg{m-(2(t`n^>Yswt7o7r?WsZ4I zb>0(P4FS|yuKc-he$xj`Ld#+Y27}iwqV*j<7HJ_=`XC_=znd_Ykb#;<%7bA56UWxc zcNv|@yU_iPdd==d8YDEB0umhXi6U646OCztQY z4oz=klm9PZbhzdlz6>75AQ5|LtklTwHRmSEydYQCH_|5bFFJk&ep0EePRjVk`d{F@ zRi-e}p^?Iz;bYKKKq{!(g8}N79?F|~FX<5pkBSW$^4*=(Ue=!~A&CnVtpALb1}_ z*SPlRq9m@)V0|GStCt((MgYeQSOz06`W?R9m28g6M9_6n_~2Uo6iQF4IpyT_#d#Ie}=P|kinzO40<~Kp;cXzOH&X@57{S;YAl#GA7=t$ z=5`9TUvR793)2JMjj5Y-yp=?i{h~8EqL&GM40yrrBvltjZ|hck%A1n^z+N9_dQ|M~)!y<~9>A0$4^k3VM6VOo!Vob@~I$pI>Ez#d`RA zRCa8JK(53l{3(Uc%$uno zE!%%I)_E@&*MnVXwjsJvpq_%$L6xkJA}DT*Z4HuzfGa-%DjuWx8cCt1n`jl;)neb#LJr2*UJ8y$HpB`qb8Q)T>P#!B2W{H_GWwc481-_`;oq5 zz@%B2M&pArm%|~RF`9JUjUk5)SkHaAzGwNT*08Xlu!}O}g+HRLh4IYq0X-=qyX1@y z9hV!0V7P4o%m`OGqfTW=t11K#U*NyJ&31SrJP!YHoa^Dh6S&aGke)Zg#abNpqT*$L zCA3Oi%opUA@=Gb8I`%cQejng>FeyaY3((rjoZzMjG=HIO3p6_;`Fw{V?0_9Kmd76i z+}!O8MkVhGo^pR?G2|y>SJ8B%()w>%Y>=4%7789HI^Ga`LI|)BcVbIK=wd z=h$zkqb8irJdbZCPYrt)62ePwidqXuS-|(o{caY5DS`g6=R62px^WVm?|9``bR4ul zJX!6!Z1s82W_}>yiCU58@!|bU<+GgmX4x>p(RHt#Ph4FK11|~XG`K_|#Tr7yDd}8z zB9z}Kwi=n=JC zZ$VT}rpk8L+hyBTw79e70D0xWN-D}5_(}phzcs(wT3^6ZlYmqPXi~?kl@R>%-X3zg zla<{EP(AZds$J||-dB;>mydgv)N_vx^r;9MYN2}UZ(}DBMCjyv{*90 zjY3^GvV6B&ZX}PwdDSufE+kDwD*011zNv^F7LT31ys=i$d~P>AoL__g0LgDUFNGP* zhz`7n&V()oNX{)^A~60dpt{rVD|s1Vw`V#65}3`^pVKoxgb_#mV(_*hZ(@i@3xak) zOvNFC6+fdV!Bc-`P+mu*d3Si`XYC&6%qFh2n?cb#I+r*tY+J7hy8$qMT_wW^Y~~B+ z3m5Sx_$vPN)edF25lRLhyOMLEQa0XN#Q`}W|R0*uMwBpU-x9J~??L`Uo(dPYpo# z&;a5KTTx4W$WkNVxESFBt&IP&6HBD}{r%%y7SzNJYwK5}pV)zAJV*lK!y+wD`1_-O zT8vH8C!#Q8{h;`ti-_mvWV#6uiWHor9R^N;ZvJOPW?q{gpacn_*^y-ccjR)BgGa;k z+QVM?pDXGz^G(ih2%e@sR{k&ISxG@a4g;8h4_)vx+7KXh88H|Q{Amvno>1mOY&d*^}I)&Y1x!0ZjMbB}0sV5Q!^QGp76HsaYZ6`Rrf+ z91r;w?dC|H2B}^omD^0KcOrhHc|Ul0(ekFGBvbXn-pd!Uy1-sENW7z0QtQ5{Mo@ zWQs9L&BR!Kn5ZYlg*pTYzU{%1ZJ+0 zd$wp-dm+gVu9sbh0t!f%Y6^@e37i45@7npaRo3hy2(vwvWc(M1*#bJV?inam8!C;Z z2%la03N}u&E6ugj(B#fJJSP|B(uuvM+)@42s`$FlpL|JFaE`66-{0}32NNax^M=jo z+&~b2Mu3B_4tTIas51gGqmvu)m=ZyC({mqNy*RA;6^0L*xVh7`PtHZym4@Sc8{36b zn4eyWM5fQ<}pN4S$1B%1m~UPM$}%-?-jp+T1WR)>L1mB36;8 zK49s^U)2CxJn41%j&^>q;O&HcgT0mGPUbX?ihaHvN^lrkD8ov-+rl>sJeko7>IcWt z-hKg%%x-&FG~Nm*L4_C!H6*00;*ipMP11Y-vlo40w5Z>;A|Nr7$`Mc*mR56-l?}D? zKq3>k0FK?EpnSsnS>f$}5rza33X*hXrFOL&82sbPI&-3ixcQ6wn7_T#_dB!7uKUkv z1@-60l2xy)D))8hkfDME2ftYC3cY23I>d|%Qh4{;timUSU6C4m`Rez(jLF+yM~8l& z2e0#B@`Rfd9uPy7r}x!#*g$?T%sv0xB23MI6k4Fs&DOK#hnr{NYms9gsk>mbU=wUA5Imh)rRO;I@Nh1K4pQ|jfnqH2&(hFOs zdrVv@7XTqHHUhCEl`s}MF?LrrhgXntT%5PjK%8SPEvAMvqo=ZXxk4nIgX)tok>Tdr z8Zsn~j(gp2epa?U%t(fO9Ec3*X-*ZNBWG5(?}y9k1Rt-f+zK9}(F3L!2d6hJ4wbq0 zdeLRE!5tB&;TutNgbR&B`- zHUwf`oxn>8lCM8ab}xg>LsRk#i}!HS>h~Nlbw?Qaq^68zhfvNq{(L#vQTvavQUrnV z;?|5LZb60t`%lt}^n?Xx$LXE8nx14@kQAvo=jJ>-R0*Q>afuxfU!^#u0bX3k?VLF3 zBPw0v0t)GrE6HC{qZ9D*jl}IP_ejOj`+W0ukrJ;CPoxVPhc73Z?kGMsEy%l@0-Jmo z*7J2m#2J!%wS&{bsq4BIK zfzfL{*nLt=d0)UGs<8k$ra*$2RjI)Klb{qs8puWPG~`p-3%V8=2*&kLuz7X|15%n+ z9t8?06mvi)`k`(Ry+veg{C+qA9&Qtv_Lni58Ik4|_?gUz4wK?fhN6yp#RfO(wtqow z7Fb9jV*xFEs`ZWo5}RC+`6&}v`kP?=y)Naa{W{=3nS^|QgvtaZUSU;Q@HJNh2LS&d zUA{t4L58RrD6EPWJnCF@D#;SvKfrauJc2EKsGQciv?{6@WJJ06A^b1-A?4lW8$AWV z1tKy(ZV)Kj#1tvrH~B)@pgVg_+FHoXqSt7$0^*DZHgW!K1H$xLi!vE$J#u=Mt?n;7nY>9J^{^~Lq4e2`~K z7$k}r*X6&`Dv11VjAXQj26bZ#Y9qYVUZ)clsJUzuSP|m>t^mv{zUneSsqN&u%{Ydg z0B6vi9(U1`T78?xy2qaf>wYQhPDb;91q1)l6fHgMemQjzC&q?4q-J^y09RV-61u!&>%=GZ%#WXA9v*iKmD#1-; ztz)-&zoo77w`_cg>R-19aD%|64Loe}`myeGaas%?Oi&965~pi=juor}zISoQ=eDEa z2pcJb@codf(wJ2CHT8(oug47*-!W7MKJAivTli}ssgaW&ErRg7-{aKKZ) z(ee)Za{Jlm_uCi%4aKH#D?Zqk&nwx)yLsMQ|QCV zj`KLHvIx-Z7bfbR=F|F zJe~BvD&QuM4xW-g3l++ZcwC)`|@*x$mwM|eJ=sVSp`*(`k4H*`ob7sY^@#JW|i*)UI;dwi0|! zmoEjeFww*4Y^o3JpnVBS^I2->%jX`HNOlmnCF~8uTT0Ov}M<*e;K!I44M=|K!g;&T9n`!t~o}wUBHMWWj9p(^12&i$`Md z`%^|}-7)D8i=Irwa{y|bWQEX3rCTO!a z`nh+do}2Epr4bpLo|2lg>B1HZ#Tflv>RaTl-%ODd! zv&A}@aEV;Q1upuSFuej|v};xb&`-9YGkzi%+uk!RS(~)V-!9>9&WtdYB_Ds$%x}?u z2)ExnF5!-WJWpV6a;>W)WlFi6zfyL_%9*CC3rYz-=#rpaIy=nudh05;#TDqpB&8yR zM5SzKN@^a@Km9X$qxWhljk&bf8|0M*pYHJkyYYzYh(P~tPT+M|#wvD>M>4U0E0_p9 zbfAmV0lQJj($nLOIfENewnQ%_hF2Bq>bB47e%2}f93Gs)W>n-=YY}0LGLXwi4Qu_{ zLA$VbyL_uU`6p2vyG7RCnZ3V$|9k#8zLR?K6T2scY^)q6^e}oX+fq9-Ka#>n>t`(7 z(DAp=^NDoXhB-sHRr}gAR`OFu%cc;`Wi=m(bCX(r`&HP}s+wPk-$LyT>2>qr4`z*79|-PS&E4p0iq*;k+R-1*_$1-DD|waXF9Cb_%j~_ zw%+%;0YcP1joo`AeayOQ3PmbP#}$Y;eG*vQYS*>37X_(-ddD#r+t=)~J{D;exLbSN zYZ-7F7^RD{wUj=NLga>CuiHUB1;kBU3_Lt_SoYCD##Wy+&eyM_f6zXfbNu@CZ$8_k zUByCzSm{XonmqUm2z z%fj-PhW+>2oH>0CVM28oJs)Rf!bVnt2aB`UYL^)K>`KB`k9 znXxAU0~z1Ca#FhGh~U6K=+czpHboEN$Q;wU*U{)I3sUYoJEoiAdm3pjbEZ9X7dJA}`oV4Oy)FcGH3InwgxTg2nDQVz{` z!W@0-$|Tbk@KT2w4spAi7W=PHE_OiZvYu67F&lSQw5C*vv{$}mnr883L@>rKVED(M z8bLcxTyKBje4xKFp}2B+;k)H8JN)YI`gPUoj zSnsuI5<|Pke}aIFj@uOXzdm<1oEWAxyplQ|hPL1&aNmL8AJCHnTc>d6+dSuLKKsHu zxL2Ru^M!1>S?gLWD8z>X=N}|JVKLb(*ftV>h7<87bA4e$)@y}*SU-z{OzdRUL1!qr zJ4JO~S|%5YUgkLmiA4YD=s-}nA~r`uw03^tC0D-JU1ajfBk$W}DYh+b&CTk0YkK2V zu`cX+ciq!(55@Nnn5W$Df!(2EPB^!1NJur8g%ijO=}Jz1T+0(Ue0`C5IPbMN$qv{fAmpO*^MzcnL}O$+^|K!aqi|kwuU_ ztL=@vhQV%M21>?SbD06Ld@>rocNJbNN(vFoxqq~pVKETdc>Ubieb$V<0QJ(J=IkDY zB*>xi^(GM3*tB0)O=StSckB1)59CyHZYO@eTDmL=X->tS0C5wMrQSMJ)smLUez|K$ zb)&Xf&X<{*M4(F=P?m~Q&+g8|I?%PgZg1gWd7~+lLG1Z`alN?wc}3L=qwW(kPBz$k zhW7TPl;46B{pl-ieSh=AZ)$ftHM5jS7ueqhpD4cJ1?sP}I>0$bu z!FStZ`gz2>b9~(xzFp|&cFf$y-}uyRGB5tGzbE0ruGlT>zfvo~Q{L7;NQtyZ-B&wj zgh-hVLsY%f+-QPf*Oolg2fvFN(>U7W`D>d0&Iot6A5N?zNsRE|1w}TUDHJjEoJ%T3+!OEgw*4T7n8fbt+LG0S>`()W~pa)Ym zaX*P^>YPoq3EZikmRkzbVhU#}?=&Z@fYDUhbDhT7aV~e~C_D;U)rRq{IE~Agp_|th zlnq2bV&0&3!Hb_1C;K=TMb9UAFa|aK+Du6?=F_MJ9TLuWBg7_oB;7is;$K2fBxe}! zrR{C1@8+1e(v-Eh4V~qJbwWCXFFGz$za5n@jad7IdAYBPUk+B@e>b`5YdiV9d9!om z0fSEUDKoOT^TBQ{3NN*o@`Lpf(PeJ3$d^O%&rl1jHqdu+Dd#QYs@yIz6HG< zBKmFVXyLB_C|Ad6>fYbEl|j1uD~X!pR*A#6H(`&fa*|?$Z>VAWCJ4@e97gPz??z|y zN^<{$PXWhM443DUx6e{@yTrI2_?XGxoCH7J*g=0+O(Q^8&1;x+%z%KNw^tnx7k6e7 zRi^p4s;pz#=Ay_a&=*@eXBkUV*CR>C4y{~mzh!FKw{PiiW*#;q2m>*lJ*Yg6EMfUs z=ZowERu2X%eYWvve79E>H>5p2AFKZ5`D(27nSS1TEs@j8o6tdz*YPQoTE7~*(cK>Q zh>2WR*;l9Y!^f{4mmD6|mMLdlH;u{H2l~gG*82(Zoe|~B0p^{5CA(fgk5yd>t5<~@<16qXAVdq@+&{QFZ_&r+rr9$*_EwPLCGnIKUXeG3(fFRyPKkVg#0LCT%7v8-l z}m`2tR(g+hBGdKJ(frH&cMql^7u={oB>{yq>qS72Yu|5uJua-cyYaFTz-G_z{}mkp`)oito(h{Ly#ogM;Y?#4w>d- zH-WFg#d8{Vu>L?X>uNzV$S*QJ_D@$3+Mcqf>=6`@mB2&d<*7gNsKSvjP(XvIA!l!3 zyzgP6rk~EnWTzP{uj^qd)nnVq=hZEIy)CZyalbFlrKES{o}XJvF`=i*<6BYnNfI}{ zY&A6jK)nhd-Bqqucd`|URn|Xz{4`~DvxUjMN@6-Vo=}g4vXT~7#*Sr4_+t$60y29d zLPW;l?}Y;7yc&&b*)B6IN>+CpD(RX7JHC0p|MI=|*@s{(Ba8$d@8gmd?`uCS=vTL~ zjbMk>H9zM(EdLUDRlXV0{nAvP{eCm6*I873lFV18#Cs-~d8}oi?rI^2?N>!@t2QS0 zpuvx;EOXnIgg>4sNP--($#mP>e_Fg3V3r~lX z#UKksR&bq|(klui04XiDT5-m>BoC}-ZEXKxgb@)3F+#0D%l22to6~`X#~W%X5b2+H zsVOvVj~u#Mwzf1I#BU;w_Wu==E_ikV8rQ8^?rM2|(GN>Zgc}ir3&Mobsa{Ivzh5B$_>jDyX70Ef%_f9f{Q!n7nM9^IdBRlGc&VvD$YLbuS(mx)Sz`Gs<;y zpzAJ1+{Idynzk+8w<^K@O*s%<)N>Uc#xIvavqR+;0C z7a%vD*yA_Hmi;Ls$Je_ih38BUk|HHKc z^{bo7m0Lk>YkOc)8PP0}F(Fr9MeQD9_*?`LWjjC4d&w7kntyC@$@lG05}jD6Siadk zYJBX_&3Y-`6>U_>kOecjIp$>WO%am_HvSvzr*YtHMv649D+z2|q(%+EFQ_L|j^k@n zj&sISjtl;Xz-pZW?_*HuPlxw zlAW>#qE^&vwG<9{(F}{WU2m3qm)02&SLX{K&e6dM2e;R5h6+}ZL&u)>9qmWpiAmGT z#Ga9Inu2TT*6Ny9H`d0=wzv8#Da7Q*8@+|wb+8uwS?UJb9`n&3w54YD*(S16;t78n zU&wN%jV^g;=k9?31*&KCiUx<+dnKG3UHPSYz$%HW-(-;dXztyUIT6$Oj+ZaJ-IC}2 zHVvJGWgPE!TORK@WI$951mkt(M~+o25htS&M`$Tyi{uDRN0aM-``EUFvW*E!MM-zd zji{dW!_x!Uuh7MASjbIo?lR3qgfoJtq&!Dl!tx3~o(!N}XQ)$oHsdt-mnRcVu)b9%*SgiTWWY92t zuYNLZbD`E`Lola$kgTD~IpY0qGhw#&*`ds3@nfgpw(Dt>-sLZ?gaB8h86y2Xft69J z?ghSk@lKE~mYt^*HUYUmDoDd!JQTCx5k2uXPmN z9XQf(*%5YvM+nCrtekusnFbIy&)q({lcGnXqEDU>h!MbxkwJuNKHIWyh~RoHASno$|vkp$NBjrcf3C?j`Qvc2OXAv=Hds-Ux*UCUd;&JiH}vI z0JbJidxLDCopwu_db+5ENih-8c2nMYxlVk1cso2T@(T1S)FBTa+ID-Whf}2seAYR6 zRCj&%Z)nA*4xuciVBYN`rn~LC{6pJ8rc?eV!&^7rbzg(auN{OmJEb*N?i=vL@7ul0 za%8f%zK?S-r_#rBle|2T8t3ym1WA%CbP+;kaxkTgKTRvYO4HP{8C1S%Ww81qg2bb= zCQRdhnQ;&}nM1Oys#Z_j7DSiS4*);O-^HCbLz?7{kIvy}a|&bFD~6ic+sl6GofvIjOZHLi-A5xtr-XX7l>6=&JbyNo6xy7?kHi!6lXjp? zMh)h1^V&oJL(xR|n!8s}mc8nBTRbM7FR+GJaUJ)z4h=$-|o zyBZ5x;|qQs+#Epy(>+vV+HurUU1ZR3H-r3Fn?@_c7SvYaR270TY^1BH`?^f#8>{DI zx=d`F;&?yoO9rPR@de+Vl};aTt`BUI@%^}Ya67-D zhCNjT`5FH-vbp`3zV)*F#`57A{)!7k=jC1ct%tqu|Ee~ieo2dn_>2CM7aI4mNPn1{ z@`MB{gc2Yl29b+?7nVrUa?Jn9uz_;=U;|tPy2yB_jSndYT6lUe(&Mcx%v|Ps<7Fiv z5i@+_DRVqLVdn^atE;O1TXjB{4;}ksyadV`tl`GG;TSzv5sUcVbkob`g`1-3(ImvkGKxK}<^rD8K&Ozvg6 zd`?_Xm#*{37YPe;W7{9jT%IvnpghjWuheBxc1R{4gz@XL7$-JWf6g9IVn3k0AW>P- zrd)FTt5S*7q^%s$<_seXNaV!PzxLmXdWA(!JX?I2v5jiYpAIEn3+tY)+4Sv%H)|Tr zZh2r5(wk%diy*{U)z&G2e}W;P11B{(R5<~sjJtPji#MT>xnK83h(}hPt+oy$t`6Qj z6WNRqfbn~Z%ZPg($oDtIjHmG%4#+Mx*J6!LC!3!J$+lQ^-m5e21R;wB$v5&*YG{W=YeEb-CA(4FuQd#^j#LLiG&=FnBlbD^5U6kgTi=?Y+EU^iB%2)FAz zCGuX`AqkG?`!et)KO@05u0m9`Jn&yf1Kt3*e7LVPpKOj{4QUzf!ilTfKJgi(K;OqJZXLd97y+g!QM%u9d9carqFO!*|FlTWi?A(`~rtM+D zUbp}4xFHL)^Uip^Jjj(#CE4jDM!{S#Bocpme#-P;gIKsOfc50XTE){=C10CZsdsY| z&l-cO(w%m@b(}|1H#x{84H2JRlO(^(PwZAEV3kdVoLk&n09R<`tZvfD;zC5`ApWn( zh;O<_mn`y`s!W@@s%nBL^`3Cz_i0;Hd0NB24a-F=`|H{7f#V)8MvsJlrFIl~d+4#t z<(Df{RnQgx;V@>pFfFc%^6bx2IBlAGSYI(vzPL@EcS(=5V%Si{>@%eh$1?zxdzZJn zuJ-&uhx!=j9l-aO+aIkTQwiZmDH{*i=KvJxiR2pc@S-xsjpBt3$%1~Y?eKsPy2tZkmLD@8 z>2C-)SzH-Rh`_&@+n0DyI}=E&q{TzSkf()4K+3N1Ca+{K_Eay6G*Z062yZ#PMOh== zn{)-w5A{_qTl1#efvTG?oGl|Fi)Hf{nXRL;A~{sw$8H$=c45Q$=s%!|@;IpqK$-$l zkaw(KpT3zBxxB}7H5Sr%TnIpb^Q&Gkr+`R^QmtX?p>T4;_6v{m87W(uwn*j~Dqo!q zp(PaX1Wb~8#Ep&Wag?nOfc&FYa{0cg0P!H~pNX`RhN8KXfd=J(?LfgLmgS;e&^u>W z!Zn{J*M3gz5drEgg9vhm*HM0OO|Y;a@k^PAAM&3TCbWLfPTVz#UN95TS%|WQiCJ?V zjwaZH{_rneRQ|NP3l1hz@XAWJ1-u zzIc4|6e@yw?Z5FJB2A2F&#_2XjMy#dQ`Y`L*c(W80{K|4Y2HBNuJ6gBL7Aoip_>J7?=T-Lp2QN1OEH zibe)XnyB>-lE3@=41HxGOZ2enctvb3%&M!Z`4g`BBk;6nz(?k!%$>_HGB9~Ur3fU< zIw1MUf3FVwJG)hThA=h5b0!efqJ4WYhdN1t+q)@2 zRqEtxHsurUHywY<_Ijka4pNLy8TlR&QSqME92q0fhDU64F;O-_yu*R{?=jBu;3Vzr zFk|#h9{E?x3%hH@t?&3px;ZFc)UuNVWe@)I{ovU#At5oU_;2$do$MfW?6;BQS_z=C+X&Tx4ezZ5qPQQMVX9`U_`>*Ds1Pr~H z$^b8}nm$=o#h7kIbGw+pAC}Xiv;fnIFu36VCek;PUjgjcqn6kKFZK*=1^e|LNYi_s z%R+}lfsB-@cO!EXzB6aEO_mDrU!2x@8|6PQ01Jk%DIbCx9&yGv{@EH9Tr)k^^(_i$ zvu8s!u?E%!*9YLK$dk0>Q<$n|@P!3TaeM{a+Q#IC7EVARnq*EU)M{Yl% zHc+5i?NpzpPgaN62T~(2w|e-8$ji<-#nP)ku2Xfm5Mg$^6~qAx&+6?n42!!qZjqwx zqM~4JtLBmN#plLo-WNzFXp9yE-3CN}w&S8{S*fiy`lx~qT4`kQNWn~0M+pF$p{0j=sDexA{zdS5IVJrm7FY*Xut6bb;aNBbrl==2X>m_RJ8-jM4#$o_^1p&;7e43PF$lVEQi#2q69^ z+UsrapsoNi$;U$M`&gp5d@d`)L_gs~z|oi_hsf-cfQScM#J5-^y$fw~63szH;`bcT zo=9@!n)2rA0f&$wXMZ5|scYIM{&w9vhpZ6nohGVv({~qf3z#PksWX8RPkL1ckEu_Y zp|c_P`aYhn&R+?CAeQyQ_Dmz04lZtdaPZWLm&4boz+S{~Ir7usUt%&vIkv+Shq7?&&W%b`{|Y-|So=W^y!fI_PVj_bz5k9G*pmae zFR@mO)WoxgjLo#f^59zF#Dur3j>Tl6C_PoFRy6;G_<@94Yh8GQ#$Q9M80o6rnh;wcmI;_~&n5tLiAA(xH3wd;2 zbsdW-U8iVqQ5zvxi>rU5my0ggJ5|>O?XTr6_Bff>C%tmK6(Wnwxbv^zy zq3X%i5O@!D|$@;pgyNc}i{$^jC z&bf$eU%|Beu)-M8!U%zE@71BLik(CGxq&Rzmw|uE zLko6Oc`NOou13@QBL%U9V+X{9E!Dpx`_h3^P3;mVrXfrCd*aY>GHuMB}9k%J0U{uyFWe}VfS_!AE})4!d=qLCXc^6 zS_ndE>Pg7Xsq-r2gU!z7R2leH@8NDp3_ZdY7y$k>(R8{r+yf(pNG(?lyeq4o_Whs{ zjQ76xga8LB{y>4O1kj)V#3ONbvWa>1)$}5FUD`H7)Pnl&16ROrQ=u;w{`F0`h!dkY zZM4X8><&7lVY~gwk1zR0Z{3Ybe}Rq=d%$g^jtey(d$q~r7G{3{a>687!;5_hrEsH_ zbUewxD%{srK7=LF z=+h6m%cSTtOuY#$fDQPxQWg6Ec{IUQ~%f;rK4_Tn+SM#|$jQT}UM!m_BM+N(S8mU)AMx(3?_!sm_=%%=DAFF|`27rHYN>p8>Pfsk z$h8PsawX4Z8uLE$w&AdT;P+*}$1cI;hp&m)@B;!xuh3LN=z#*8edtHnn`EM_Ah)QY z$cdS+ulLvMIqa6=P89XF!D@3MzJ?YjF03F|B2AhA8|ZtEcl!ztTkvd(t$gEXBoss) z{k+L7>`Q^;1S0I$m5SwAIE`B}aBi>pO0JX~%--I$&Wsxr&5KIAZBu2V@y@D zDAdY>`EbxG%p=_1J+oAg8&`I0oG}k@tVw?PI9stpI6#)*LC=GDhf#bp*)ISiBFz;P zZ}5!G7XL8p(9$&TYR_vfNeMkflxcNGIM->%`inq|hZ{(89=0`07JD5m6YLDC`+im> z#9^f3*~^;T2mxK%sk7&Q=ncJ;Ik)jFY*Rg;jzEAz|WJ>=!KXG zA2^7kL+)!#GV>SXp;?P9S?nLnz8>*+UY4<^*>;6Rqz%KmSDCoPyqKVv0}6Dz<>_LL zF+i4iV%KSqTEKBPq==>YgJvP2k$2JLx6-Mvnz?!aZpFif7CM`qCRX2q4VeOTw)zrh=G>|V`j8Mk_`PK zJ2Xbck57jSVU@k?^!kbU<(1FkA{9!A>+aU3ieS|=5lqtRN!7xpWiWigdtH}NrG<*H zRkEaWoCfEfFEi>KDJnMvMM%`=pZ|T#xbnl>bvk+Bn5#Wk|0E=6cuO3 z`4wmX?XbdIzW29dn!efd)ITlVqk7_yFmk@kwNvB)xc}$R_bLXC**KkPe$NS(PPYiM^*B0OpjGjK{BZ} z7Ewk1$_&!reN^agwHE}$wQzquoN|fL2ZC-?v+IKb+%G&Lhe}bN{qC0pu$R#v54eA# z{qA^XOdT1aq&_*r!V*D;`C;)mfHF>T&PJU{r z86|+Q&b^Yt;^|-1O^BKAs1h>Uj}zwY1Bct3o+B}%%kMdbSvw*iQ)2jNRvSKw#0z(X za(KDs)mG1fPW5(gecTBP9+atCn*eKSLb`&2b?UC~ae-4rl7Z2<)9l9=IUKY;pg;2w zh|w_65Y^scOp3_|)G1DwzNjnlw8s17i9+7~#+8#}#Cp5F`dq9%tQBo!{U9dcegtNe z6G*1C6GJ=H4*9WX_|>@+9C?;Jhl+e1qrK{=lZBK^Ohh*D4Hyo!;CzUIZ1r+giGO7A z1&_|hV)5viQgL$7vym61$U6vZw9ck6dOz$;YgY3L~#&<5hABaCM!D74Os@hXO!m)EY8A#*+rvkfXtCN;^}F}-9W?6shct=TU!-mV-7Y*58_*--hF zXCMHu&~&~bfbm4FFIpwSfD8xy?mTkEvtq_r6QUh$Y%?3yL>}7+bk}B;Q~F0^;32ZskIg(g5a$^W3rl5r*9jIlz@ zAhOng_dw`w{{a zTWcW1Qkef$x-^jz1#(b}+OQw9v})PnWX519b?rHL=cx$y(386?c_H?lKgKoT^}Za0 zh%E>xIq_n+!7?L)Ndavz1C}5_I}ubZ6OF_;RhU%%rts zFK6*Z3*SW-`2E=H<@2gM7p^@e>Hxf&<@?V2s9wcMr)=$ATEeHvHAdgzDPpM76J8Gi zim|jMdU8xFk=0^@NNLZxJkVaL+x`{%EgxfZSVJyuUCPdEWP?fgaq_$WWHJCJ0{Xg= zX$+Dw={(4x9bapm61W9r9KuJhbDLF4_f{SZ z+(6aHfO=m=angdW#RU$d&;PK!87xQ3`Jb1Go27*?)Kp2YDQSl3n2;v zAezBo#SOS;YUHxikaG5mF?@a7IT+3>4cQ|TzvWLEG4SEcT+Y+}?LV_SaE=XCPc4mh z#UivLzi*=f-3=O3gbsmGLOqAEu%68Dhj&lde`VS9OtVj?UE@KQK=h_?G zx$5!sGtP9`olX|^dRy%PN>oQ@coxpZY{hKDZ1pHscHx=PA_%c8@oSOM?=kPb(UQ*x zYf&y_#JCJ6zaB5WMh=Q#pq$?o-5g2m^oL5 zUk-Yf?lVEnt2~T0%U1@wNaW1pL5{K9BP_4m(z&sh?cYw#j8Zv&Lr=wUKPR@x^PEYc zL>T_RE$@V7=`ED`EsW@`?#j{$b{8lya%!Wd7c9nz(f6o+tmVfWy?Hl>R~>g-jy)5J zm@B~z`ahE$8QUn(D03aDX&DRqv^dvi@$2z2UfvP`jj@c2mJF=sNsiV%$MWu41!*%k z%)E!i93^h~B|e&?=eys(4(+KP*W2jBe_qs{7})rF@0pS+ht` zah^wBCCyCWuU97!+isFxfRce4ExNC2Db%E<=zQAlA;E}rIJ)8IFAUbPd8pHIjV{_} zA?LykGm+{a_KA+I`DU6EaK>`rVr@$ju@Ct(R*@&^LT_SG&NjOE?o6u)_<#m8|GR(k z-vf>+BQqztMIl%8;wcEqQfrkR-)6s(c@-d>RYz`o@?Qx-0WDtq#<6{^S!@V|-|9y~ zROkG24dv-{>2JKmv)ID*EPA1Z&E_p+DoKu}jdDqds)34&Tbkz4Oj_Y2=p<1SFq;h2m=$@AB6^$N5>+1}6y>ZE&HkwszDqVbB8A>8YOgau~9 zISE3ppF*L(1e8}Ff$%?l#?G|R2}AT7$o%dalOQZL|IF&+0@xF-PSdyi{JQ)Wi)j*O zCWs!}y`)ye-B+$Y7C&Wa>U{AKNZbST(9a#9p-eB|#KTgf z!ToopBmQ=Wt@jR2mVBawY>wp%=m*=yEcoo8=T6Y906ZKF}KbWxmV7vLk^)2ZIyCc3$X2Wf2*XuR>LS;EbOtu^||A z_Kn%oDiZutUCWt726unGhB5CF=T#kJaR18{=)RQNPwB>(d)>M;b!7VSj0$SCO1hn@ z!}MNjUwv5_rV7^Z)w&y#$N1Mzu`;9efS51_X2&aeikkKm$Ai8EbFspgEtL#N@}34a z4VRP&y@=Yy1LUDiw}jRw4a*{J+3d+JbLUoE-0?HAW5xl$Ma(Evgo}v2^oRUgd!d`% z&q+qCSec<(72Bis)}@pD^HIC2$opGv9Ld#dZ%&nOty3<{2rOimAZ0ePSg?TrcZUqH zhwer&Bl|&pA++8u(h$Dj`vD-gbE=$Xd}Kibig~q7I<@d3nbLLGywl`VesaqqE=u?p z*Wowjl(q>^-azi}eU8jFPkCgwi7Q{`H72aQf$#UZEWxLDhpE5ZkMzJP7zf-Rp^7s! zfZp62@^gQ?@y%DYKRcS~ql8%rQ>>na26INP`mLK47tv>U>K6RjHW z%TX|#897w>3itD{fJV-IzGNA2{#G z{S_Neng2T=Ccir2%Kl5Ih3ZaKFDloDB}vRJ^Hi$Wexi4TDjbv3vXv8A1kz7L$B@kV zf5}-}X4~l_Bs;LejFl^+PO?X&eQQI=E}yGHsPl-?60Z-8FL=uDV2%6~uTM3^E4CPRe*7E=%rU%d{Pfd5g#`Cn{!)2>8J&}Cjvd!|vPk!QPw+{E`nKeC} zF2?3W>o%B?*Hs6vg&WTJF|7sP_?0R*G5-N@0?D?s7p#p|R|#i`dXGPT80tQ&+(Fm# zvapTXQBn)&ZPB8e$PD?0p@1wh_quEq>7081GhCy>4`9cULdBS%vkzyDqx)a~MHaLi z3XLmk{3N>g0p*%ft|s7SsAxM1?3Tgi@$0yOD~IPaSvMwb2}j6H+}9tyTkTQA4Kq`3 z6E+ss{s<(i_R-*tRdd37Lms~+OK8EketQ5$DBkL>a(p$;-^tt+=PEQdpb`3TI?Itl zAvGUM-oqtNGT(rL#{g>N zs+bo{P+FqvHTvqrpS*CX*rvItfNlqu_*SxJ-@{ehBby))wu$P>wKLtSA`;XEj*PIR zxsr-K2DEmZx98i$zADqe>Ln+|g3WHjf1@{ctpCMh^j`2)h_4#2ib7=?j+5Xw2}Xm|-+P%eJLX5= zftCDtP_{2nKOvUj?zzaryX%$U8O~yS=pYvl4DsJC`24tVa9jxHQtvEHChN{tkLNIy z0KtNF`h#gSvj6YUpi^gEK_6}~dcW5Le=ySiu!tEf1-EB!iT4KO^?07sb%GkGXxoUm z57a*|g#I^zGyN9E7ZJ?W?5K8mMd}XG553bVS>u&H3DnWZ-39pZi@_g-wEC#y{B=N)SpN+Lix=0=@ z5TgQ_0^xHW+@1&E#mI^;1mk%X!MZx^`{s2H7Bm;W-nYfeTb>btGrbgnmq|ewUi%|}JTaWW z$bI*30OydmRVO}4ohJhYPXJrZk2+8E_)TS(SlWdL`K1(@!RkHg-Q~ARjeda4eNxI;DPkG5!B#<^8b zgbDN%li^>sZ%CX7l(JuIP|+-d)q<$9)A5!o?ojo?G7m$unOepcKLH2p zF}`Jy`QY0-$Uccm8~d_@2-h`5GE8fZrXi{~e{k{(VcwRCGc`I8x})YV$rh05o&I`u zNoP5$==HMZ=97dDGTMRtE<&lE9}bL&F*K3c&xmUzD*H~Ez5I^ldM`Jn?y~NaTgFA( zWfV!bM_ovkXB@U{ex>}hkrTr3d^F?9vh>m;`5482h`Hq7L63sC_LzQH{{3sIwIrPR zPEF3x!ptD~OFT!h4b9Zj0RI$q1K2_i@9stnZIhY8?@L}fvp{gE#1E-u^{44?G7QCn zKceLWGcE~(OQ2Zmp?x-W5qU=7a4#?pNt3lS)1!;ehzc&wlQEoy#C zWA}XnZ-4Qfo0V*Bs!=iv(@N`-`WU~(rNNKRYxvCw#^#*c_?*ND4>dgW4qwa_=|~8l z)iN8H^B)2q@}EGIpz>J;Sn;-J_!gVq(Bq0oR~++n*9A64Y2rE;JKWgjueOHgZ}oao zgn_W@bA1juL5VBe7G5^F*cZk5%RrP&vBMG}V!EI2puUaN77&O;s1Y&*LKxEmT{e*H zGtZwPW?BNmx&Z!!3u?a{C3BAoy%$js03YH86rv?6;5}mMJm}3z=^;;sw&LxB}x$Of}JO1h21PWthGF9x#}ULLi+~|sic$3Vz=hkh0{+BY!LbypN*axWBR z8i=Iq)*=-(&7X^0ZEgR33fR&wEsyn#wL8O6fMObVe3{i%Yr!%sW$WR5wr{j2IFIBBI$3PYw;9N0A!M z>bf6`Ul99AZ1_3^In?8Ns-|}t(|xoo(||}|Hh~q45PO77y>P?ShFm!0i{MFChRp$? z*$P*YYHGBWW}_8`WmP@`J3?5rRLvctpf*#O-xN9IU$B8TSPo9UVEIpIg3vD$Vqhf3G_J9=aN6O#en6<(mQ`vQ2k1H3nQUdYac=lI|PcuqZ! zjQ|6j({d#xJcoWy!P#Aep#euV?E(<+tgZp60qB-vzlY3@^Cgjk-?Z*_!XF z`2e-doAs zccj|AT4ZRl`^ldGvQ;p^fI<1}O|yZ~ST5rCTi0)T%tyt(eX9bVwL+X}@z@SG}u z-2*&RakXXXqVery`1j#iaR7DVy4ZL^3eW0NfH+TILw*dyiwvNCQpDg@!kDlHo;BhD zoa4Yy_^NZr6)QYex{T$P6E;;muhx7A z!~kA1NgQ}qJ0DEp#aN$CmJK|o6L_6KKvpL?uM;p)a+`iN86#w)z|-$}^|^5*@Zy>i zHN+_zJ9);0x&WJq+y_i9q7Xg9C&Z=(CzSM9q8l%AyI|ZaSBfV z4{(Wa<#&FbGxEXNr5-rD;wrAYCTTS{BvQxvH1Hvs$UWpcyOj^s&U$Iii?SXumPNDd zM#+0o+LR6eMu8V49Q765!V?Jx-rJJI6Yq%{T{B>ylHpSocFTaJ~mQ6 zJ=_4!8pLS;oC6Vn&N#iF5Abge&j9rQ&&P+0{#BiPo zdFEVA0Xn&KvFz>}v^H$CJ^=LtO5yqL3-Vvk11^Z3tVR*yHvpuo|SBI z@|{(~a9&5g0i02z2heF|Wi@mOVF!428ylw$*R=vqFM^{dMz;VCEo^4CZKfzR1InE9 zL7vl#!3IC;XHr54r2AqEdq2Q{Kk!E_h7V=&bVe5laMH(ps-j$Spgnf9lN0pFbCMgj28G%}YS zZY00y^_v@T97_D`ANQiy`7_~eF5iUn+F4&S!SG(dv$}D651=&fAt$+QnF}uo97+u> zP%3Di63~kHphdhk1kEmGxyUNxv7GlU2Uz7ToJW4EVTEg1xmunB&u-v(0|1SH*9c_o z{md0L_^`T{Sx*qGXUeEQC{6>aJ0Nb|UUBQaqpb8WHS^q;-GKB&LWPZE9o*}-Gp)1| zA*Pq4V8qmYIIqhCnAS(WBlnq>C6xRA=J33Ugx_g9au4wAG8_juI|<$_Kp!69tOi26 zfr0@%b6UPR%M#}xtNsuo6zleR&;scJl6st9y}FQMq4JM^iRh6C>ReKQ!qX|n>Yz9Q z&+63NN7(j~^L%(g+me81=kXyDA_v_S-Ym2LoSkqS|F1I8X5|#~flCMp0}l5fOCJFj zI8UYUW&zU0*AXs+u_p~_98t$Ik$0{yj;THA9Ta5FFk*5@i14kUc<3?C{;__Z_Tj{X zMs_2A*GQ90_`5Bvw~m4ByiW(~6Qf{svL1x5qwXX3g?m0H6}$kTd43mof#Vcj0M1DQ zHy=C&mkcjbeLKLwg?25kM`l+Qa%!l!dYY=9Bk54142J2}p%n4$wXtAr2@z!`V| zK~6cKDpG00P9bA-wm4`uY6|Usrv$W>O89tU@74#uw>l^@BKOscN9~Ekc|{vAiIRE z8j@4W%9W}EabA+_GFIMqXd=XQ24bl|v7a;{%A=5Zb$UX==B5*regTza5p*dLwRp35g+7-a71TrCRPNXJpT6GFfTOig^Cz@8?yA4Ruw;9`5 zC)}swnllJIEgA`UIRHRbDu5w)sT`LassXe>Rxu&q%PwNYRE0c8P7&~oa2^2X7j1)) zw;Z!kaJJWUh#{Ht-}KO3LOoJ*iV$Wa)bshwo*b5~&TAnm z+JS}pteEFMh3EFOK4ExPHYr6pEOfVGlff? z*FjI$3AAo1Z3telm)XEmIk{BDdw`cJT*ILnhBwD;{(eJi7cN3}fhQ}U6~3cbR#^Vr z9bvu9?9CWxcJUWdH4AZ{f6iNQ{#!Ccb*7%)>KzA2pIFIfsbQUccy<$DLhx)2+b(9? z)bN-?1Nra*fZ?5+>Num@Tt^561tD-8;TVLcy$kuER8Ai5Nr;u$$x6St>7~PFW7^v<6v3?;R-yb;6eMRz7foqgs8C#+9mK4Q)PG37^;h?!>LWZlvR&ThIF8z5t$v?Y!`U z`~4`q-~gTA+yCIZh`@EJ;CaxrqI!<=T<7IAIZxik*6)bDW1mk;M325#Cx+yhW1w*;g~ohq$He25 zT{C-ioEjp*-=kwU0!c%+73b0KrNvnvDy|DWYjAc!?Z`fy$#E!JqFbadiJKKBw*~(@L#7ENFe4GL}`zx>vHU z!OjRDo&!85#=82GhSSGJ9`N_=DLe&d;Hmo(Zw^5JJJ(=$x_Pq@yhL$GgsTTFa9j|g zcCG^RWZb5}kYk|mb2>i<+77H_h5uibL7Gs2nG}tzOGZJ_n@vANPtt*vv)`-mIzNJR z-5r{5x8jzO&e96cBKK+Dvs&4h9q)*xc@KEOp5w^M_soO3uiga?a3i&%CCzx{F3JOIfZmZ$_Y7`*h>K6@dmaX`^W=spd z*O&v(J1~2Gcysm!r-X-0f$+k0HplTsglPn5n!6Te@H;-ZN}<_Xc#fRSI58x96I)od zg_YmJ&vV4AmVivr9br2sFoMg+u&TD3%+DJ=DP$x5#@fV(-|B%&cA%9`@0N+vLhvFvtoL2u zxfK+sDqJ-WJl!p?@bvrKS$KL6j6lK3b@WGic200?N%-3@Z}*Z9uZTAe!}D|9BC6_& z$v?~KfBSE7Gx@M2`mo~^K;SkTc=lR;zmA{R@j7I$drPwR|5=u7xGA{@{~-5m;)5le z=s`5g0iXwwmIGNCtQ)d%-=g#j;!=qn+Ljk~|103GiJQlJ(PRfbr&(uaYu$TeY0j$# znh(!06<6W$GxM#=4&YI7ZCaK&@DgV^;ySOad(P9Z3Kg99m0=hj9~zmq#K0rO$aN3z zyeeOh{<|Ff@4v`>v?1!aM2_>F6M(bU0|0oQ*t)B6_AFVy|Zz z#)-Vnci=3%z=42E2PE*)GT7Kzm*qZ+$E#DnGw_Ujc%}#S;kjk3BLH;=Yyi(|S14SX z^I}w7g-6A;6yPj8<~?(Hkid0G4W(%+wIff4N4ROi)k49*?&Ufbp3C!`w`5`Fo3eD< zIjSRo0T(zffaa{{@7D1_*6K$3SmSKJk`DP6(yB>!icO&^JaNuS( z;1&f4G^Fmck-G1`tedhdW`Yd z9{q!W7TC2LAw7@k)+cGLQKV*dLc#CsI(?p6R>MjoyK$A+4Xa7UYZJ1Xcx+kksdXdT zl#t!Foen?4$cbe#Ch21~%BAL+^&-^eNH0WP#qVoTJwG?nr+L>I zHP_wi?gT;?>L(0`#pxa6`2^4R0A(+5_EAv}k=KsU&ta%hTDcL5=Q!a%PWqZ;!|b^t z?$lKyXPN@Ij}58k>mH(VALKDOBRuJ<7DY!aV3h0^%|^Kr>C_wB%r&67Z*$0ec2~7H-FhK(y`Hykz8>#tqfSp8 z_3*P^!f?bhU*8^#H-+K$V!VUs5XPgNj-C`}loC45usWf}qxHsk!Bq1-$2=BpY{6N@{yZw$YMD>sRY@rp0(meTXPrRlAs^3=|k<;T6n@<`bVvfOH8yyX~odBa-yP|Iq0 zux72~zrI@r{=|oFTxX1!)`rnj7|)ZI-5s9ds$5J~kT9N6yjKX=G93C{oV9zdoGJLgZcJf zlgM8BHUAnT&LN`SH=c=bAUh{8OTu`VCS;_0)tqZ^hBBT*c5yGzr=5FSzJ%G*E?|l) zx8xhg&&k3Yugj-@@k@FBUw$sD|NKX}|JGaLzWvYg^RX+OmyO{5m-1o-Y^2pUIvi_(4A)h;cSsuB3PO9E}Pbz-?U$W?ptMYd@ugU{A z&d7(aUXloz@7eP=<+0N8T+p{r0?Ia$s#gg{`m<>KR+xVEqhs( zl)fU*Ocu$~@>j*xtfwW{*O!M& zlJP!#`7QZ^mfH)o0GHm8r>@?R`>#+2$y8sy^{%Y@5F7xx-a^E>^0a$0&FZ>zYlVnn#!vedC4LYBy$v7cd)%1A@(Vxu` zWit>4RcZNES#>LnwB%~34I3|_kIk4()v``(O0LQ^#-rEkQ1hWE>k#EJMg~MK!-gsi z^QBR4op>Hb%Qs5HfN7X-QFo~<>M55+y%juGqgqMR`z`ghh}%cz>+j$>yG2Rp=+)K~5-!q@NrWdl&oXhfsOlQD{HpKf< z$as2P?BLqi?gg6n@WsRL)Z^Xa|NNT=hHoI4=;cz}R66-Js-V}?JNYo2e>x5>P!qV$IKK8>exbhwyfywIR=2ji&%vCE$Hm&?U5!ew2b63)b5S{Zyx^LU zPRMjxW=zQqo5`1!qd=+t-zdp=n&raAOPJ3$o*KbXGx&qR-HexPxIp38Bwl+b;{`Xq zFb3qgu4j_*R2Yx4HAmZxA{F$0t>?=kW6T$L7MJ;;EII=9Q>c)Bdbc+1Ir_fvKs?9P#g zy0g(vd8j8}9_=ZVM|z6o;odTNu&-Pm?5&Xpdh6r?jJLeMS(f&<$&!IiSv=4qiv|ZI zZD>f`p%HOMG2R%%#`uhP5vqjoPWr~1&3JkpO}!MPUW`;Ph3g){gvV}*Lu6}HZ5rzk z^n^lYdSB8KhRjfb0@H=>bP|{$jo!;)5HM!JcrIp2HeM>j1qvH3@%oVQbjXNY<#oJ| zDr~%9{etxk)?fS81q;i!%Uo?WQuC?l=89n>P{n$*E}_79p85WE##5y--je7hS=PD5 z=z-3y@(?C`q$@)n?aq{stGaf`C%W_Gsoq`k6y|%fw@9AoE0M=~E9KGtYI$U!ULGE3 zkOu~uW%)pdEX90_hI=G!n0{}VvOCJ8J3fK&c2izw=edj2x zmr@$fIgZ)xWI9#YOz%fY#xt2NWW2z1|0j)?xM`j)8wJL5nW}^J(QG_tJwu;ifn7#( z9#%OMV?yb3RY9MX5T&mILy+z4N=jtnxtfo@E~)ft$@Tg@Os6FmxlFirqneQaXVSHs z`PnbKZYzdv^W?T`&&Qmo1;^$&pX@=E*zj%y<7_yDT4y$r3f+D3k6O znQwfY-i}Fkath;NzNrHk?+}^pD8^&h*nbw|T@d%+dGDqNzVXtIGHe{9?4G=NoAGYD zL&Uwx@0E=1U_48A=K43qQt5p?gL`{MD6^@|lx()Jl3%NGG4R4S(Hpnq@7{b%KEf~( zxkh%s&hoGDoOLiemHqV!T7kfb+A1utOLAncFkhh3ELmKfDgU!@gQVrGlx=&uwQZ$*(#sy+A3e@PM0rsZto*bx=Ck7kj(V-T3c%)74AC1Y<> z<3D8Kjcb^Y_r3OWiCnoUcCb#q`RofU4_W7RxG2e&x!P$IDbAJUg*o!!vhDJ77JTNH zKb8MgvsspBuadtoelNp}PURNqyLD0iUEY&O4d$%cC}|~Y<-Wq#CQFs43D4d+JMmj}kWWZ8JP zESl_-w8=q9+cSdc_KCgskeI7gtKs%jYSnPaKBT6*YOdC=8BgyOq1jHSw_v~B2hVi; zouBE{beb_VbIfZzGLCbN%#tGGg-sV2FV!TQtjJq$n(VgZ-FGP4H|3w%eoL>MlE{r4 zvgqyWl6LuBS@`x%S&X?hUArRBU%n!b9D7$js^<5N7nYiEfm66kZdU=?DR%KLS)7w0 z^7}u?q8*!MQDK(+U1hrbo;N=8-tS~#%~ttup8w$wzmwm-_n!RjPk)xaYp3LYR%4d3 zb@YjpV88V0Hym1amldy&_jv7nRi5#*&vVFpR?}+vQ2Sb`J+nuC^QZr&B)=j~>ncfW zUt_cg!!7ApNv2yR4|cASkCFX85nCgl;^)us_$)^J3P${9e4Ts)eFqbMzk8$npl7rE z026)>6Mna6yL`7VL%v1%{n|jDd}UylJUdV%pB*ZfPmWZ{QzLcq#3<&QXp^^p^PjS8 zvJ3O|CmHVu#yg(KcFy4o<`xl=qnBkNvW}DOPF$0YU;dl9O^&%$j(?-3)o=bPVWK(G zOqj}aDCgaOF|SFP?bv{-u<^9f5BFSm%Xs%~nZ5AG-}C!l%CFh>|NEyG zWYLv>mik}+R31HhS&skiPx6uTN9DseelE`Ie0G1>F$$S)fwQYbZdZ}myD%SGQkX5j z|J`ro;oJ;kyhv%f{O&!Gx|?SuQnr;0w^cq;x6zTCMQ!>yF>p&!QA$d9|$$xqM=UF+p}vf%T*Tjjal?M6SM_xpZ-u6(yYPrflw zAYUFVk^Iw>thvZjqxJImShM_!&-~y-RF?1VF~6Vr^{+ABUh~{NaEM{znB-7as^9q; z#ycZN|Kq5%?Y1L?oFe*Z`MoLk0J|MsW9U@$fYCY$;9 z-%9n*|6NwU!F&0}tNz8m-_dw!zTpA|h6@a+h6}!D{lKNxH=c`07t_<#|J!fn@7_5j zAHH-&E@FmX;)gGsyCi@2)=l~QTSw)}pZ_c$z50%%k@3RD3)ayyUVf>}RT(N4r=U>m zf@1k-alSlPQ!Rh_<9qUpKmShtOa6jHtUQK`svYvLnCQ3seEr}5MgEHttZDecn(gwx zDkz(U8zoXgUsvT#y=uPY#VbWv*0K`HZ1q}sgzWfVf5xtCfPenW@AweEmw)}sZ)Ez{ zL<@#o)Vf-hP=c3X#0T0}%A;hxPoPhBtdP${SIV>K%NXw)=)0XO^Sy~=N%OA!HgG{8Bl)tb6IlpihSe7>+%UL=a&Q8VGQ$4)XAfhjhK&t1M}I_(_-)2C(hmj zWW2*BR7=UEA9?4BEPef! z{6BBME6c9@n&-civ|B%wg}m3on`FkzZ^|Op$qYF>H%G68jc4zymfKZ{%Eitr^+oB; z-{mWxY?voDCD<-x@-50h>Ed8Or(~PBrCY_J1Y70a)az7k!hD_q%{Lxuz*lK%LN|D!1x7SqyKN%# zZ4|o>!v$(sk1%25tX#6;qE;qZ-+0U0R?9WVBHL>Sqedmj^x$9-w+VzTTQ+2;4+j>^Y)}FPpnbNzif1|9yd@Crs zFAR|RhH~ZG!<5~TB6)VKR6a9SE>BI=$`fS0hxfF~^6987#e9oq`pA3(7;jkIgP8B| z9*nn_tam`HqX)%4e#{upI&qrGR*gqFKF#!d`hqc^8qYd=#WUbpGUGYVe4YW-Xn{P# z%^Hu5d|r*m#?zs~@0E=FETUQEUNhdk3>EWfuJP2=p0RB*otAeicyBZ0==ylZ3unIt zPIjY&WvO!N5#}=nRE0BO$b6dpcIBbmMD}xv$$+JqVwGheN^*sM{e}t6fd&}S9QlIb zf@A&~)O;H-93{GOgSbr_B&~V9$#{#JHQTL``zgNm|v;fIGThG0Mbz+k02b=Ki&^abUeM-z#dq zp)C2~@J{*8Xn}lbyjVUvULyZ6LDr+>er$K6JTToVOJ_PTUbi^=dd1m~`3{bXjrr_D zd&qWsG2VWRcUY{GM=;)TaZXW&Poq<3eDh(vGZ!)0B_lPTbDo|sDFb>+%6OrB-X{!) zEEHrrv-{*8Gu~fgyg+6-NebT2(p@--%y-LMCw~`@YJr{AEMYl2kTD^dFuNYrijz}= zwErs;Yo}&DlqkDuKFxd>uP_tiWnw%vU%H?5wqU$;^WCpG@Ss}7?`yXpG9c5h%4ygv zZsQh=x5*p~s^(ja`Ifb?+~^Q{`#BCiak%a4W_ zHb%&LW4q*8%=hW>a{0t$l{`9CCl60G$pcgEm@j6`=kDvL)DBD9A&iIloFlu%Ix;2p zv3=qmXAr@F_9?R8X>^Lxd&M-CR81R3>c*!!E)!%)S$hs(U^$l^Ev;!@$Guvg3vRZu;HhCsAM)VA5VL&T4 zoc%lly1OvpF0b@DMf84&Z$8w7YC23M_FXOY|OVa{=DRq1rws|=JvcQS-mSHy>FGtd}}e^ioq>py-fK5neUrp zdGh74eEIx%k$iHZTpr(DB@a*6k@XreUb`&X8>Q6tV7z`wJ50}a2jfLf9VP2A0f&qi zC@@|i>+IEp!p1YwJJ$Q=`~P<1sgjMSnrpoDsHmKbn30{y&&Gf)2@}p{K`;Bcx!V7Q z%%{W0t^#8|r!Y^fV&8nFS>l#wNkqT*tx{pYYE(l;#C&c&2CS$2BBueGd)xx7qTw(Vg;ziDG$X zcey;Vr&1oq{kG2U(rHzU?@ujINX)p&=PPMLsD zll72w_6(*=&U|w-U|>S$JcbK0;CUuwNq|>_~ zJ0p$)19~QOcC?`u-+W&7^ZLI^aq=q6t{2_sXBQNjZ$9iIOjttpE6qjOcQl?FF3_Ef z_p$bM@+9U<7>^$Bd$Cs&##_Nau>oyE@7H+i`ZmgH%I(WTo8%`W+vVG%8S?e99Qo2% zfjl!_D4*C}Dvx14&3a2`8YFFRi=^#uC+l@d+Q9*_4-YWa4ol?77^a(`za#UVVBk2h zf3ES)9GA#hO7GcIz5%_=7dd^-*R1&xnJ>wBs#L>8(6s;GG@dHFOtai@#`BeIJk}FXh*muatg|3|LqwR>>|z1}w|RcxpZ}U?r-~ zVz|I~bt(oAeQZ>17rRNtRNTB((ptC5(w2?#044XKwvF2>*`5r^Y zk7F;(iwqcZjrSbJdro%J>*a+^XNI6U!EP7LdMfuKhC+#5 zDeq%<%KtIrg%ln%!o!9N;|*fCWc4F}ssS@*v!IjJk;r~_P7}rp88E*Jk^KrN!9|qd zqGEAM$bcwPmM3-vs$}}D&c%3?;#y2tn>ojL4#snu(i6s8VvM)R81G|k8{`w1@6*P3 ztL5vM?|bxmYP^@2Xjfpq^<=-Tooc-2We3j#X-&HpiIHs?SDQVmD-AI;LWb=eBH@{||Tn*&WAy?dzia26x;S z_rAI3jC0Q3%RypSRRfG7shn(CmSkJba+0&Mm=gdZ5Cn)!BIlelK`@gD1alBYQlvyG z%U(`vIV>+{d){aMtE#)Y*#JR`4tr~iN8MzA_V&@Neh z`iLw(HY%&nOv!ulN4abA5|@9GSN{4pnSWtS&T$`050ivu0C`0m%C4J$0fHNzy^`xE zpM!L|AD({2&`&(Yxr!WK+QlcHl1QYRCH}q@^O)YAF+udUId%%=0i0AOGjPR2K$Cnl z&Rja_^e`EeVlVxi%?P-K^1Hr)#-9)A^#jO!BSne4cXqJmN86P;yngT*EUFvYBkN=<_m}ZZmpbmek%=vZjBP ztYEr*et5lne`uq8b4Qwdm6H3}UD@&|CHE713gqqsMGP0)W$}S>N^Pag8>817Ze;6bl5pd|w5wBY1bRPk&YUp#CD@nG<$^e; zHSsk0E{k*aidg4JJ{>Z=jQjr%2t zmBMtEq5`tu45Q*~+KGHfm_Y(+`epTswYf{I?0|q<5pXO0UmgiqSO?Wcz;H<=iB|^O z#VX&1d`!SqMGO}O60R*kJo>=;0?0!=hLMIX5^mfg$t_!CeoLk-YR!^6+AP=W+mziOXzIc8u9sv@_sg<@X*UfK(@D6juIFSkWFwoB+4G!a^gfSpFGxzyOR~Oi zrL5>*DK8AJmLCkSmG3ZMJhd}TzBC#u-d+0(Wa)ttS#)rE@vJG{n8%oO5zivwtdlIu zlPptj*a)9KY&I^(i|1pVrU&%Ii^9NhieZD)Q}OIGZy52EMB=%rhipE6W6#Qt7bB5C z9|qllAb9`&p)ZW|-g5|ucM#!%?2VGTCr&(45c!-;(l48ZoXxv@OP7RmyJEz13YmV3 z>Y+xQ;wrJqDxsWGOaE6%39i~EPIa+3HB7*DipobBZe$W}LcXRglGK`mcv+r!S#no< z2E#=fr8Y$#@7yR)BHmXz*2&YItC?(9Qf^nu%aq>LohxK5(rxHMEX32EZxbn(-t)X6 z4e>T2-TK~_=;|iTC`#8u`x92GTA?zPe+Re13G3JicqQe3I$*fj#-Ic>A|S z5-<5s4dT@!9__{?gV$82SV!oEb=WxOPPs`Zb|ad~r^&~%MLy@$1On=&7Q{QF+xm|2 z`x6FRhmTXIfuVy^ZRsZ;r_UMr+}@AmI~%)=Pd6_6^68MFy`FAXF&|Iq=9L)n{(gz4 zTq9l_*AdUfNjZdgyi-$|(9-rIAL*B_AYld)Zbrh*Bw#iR8VQ}PUBEj(j{&5B6ew(# za8Z+liyI`go$_0zRFim=;Y!MI6=k>@32PMwkvc?dU>IpEq|}mz&3OzLxw5DwSMET< zJKMI%z3o}@P-nV4(v>Ek=}eU`cBaTvo$KV=$oGS;6<+Esmld5ao8()AeCsH^8%e?x zepX!JR>+#(m9kQ$8(1OF4y=?Pl6c>w)ILSxePQP&d6HglHsXazy`XrZBbs`ycn+x- zI?0>&l$&~5Ztas=a;KPjk0RDo~+`^F2B%y5#A7u*iRUls#R9A>oTS2Maj&KU{HMsKm;w80g zrO(?+pO+&`5$~RkYzB->`D91Bd>ZjS*R_#8Z@ql8ixSzrN`Bb2N?zdd#ctBi2>6n$ z>UvRDBj8%fs^WV^$Z+|Y6Q zJ(ceSt;`AS_oCbQTn-xvos%RVDdi*`my=AnntZ3U-$T69ubW;^NjgX3 zseFj1^68MF==WWfBqm%(x97e2?oEB!=SGRY?;u)wEi>@wRJ)G8BS5TpESMA)5(0)d z@pBq!xQX;jXF+B{772)a;VrzobLstZdnLS;cYHyQgbJDdiWLOh-Yia83p9~<^@xXn z)e3!JT?LSU^<@%nD5bwEm87N;Nop>JLd45QynM=SzASCeq0h^fhdVcudKvPWu5|fQ zSE@YKMTzWQhkR@08KqMNTrDs4tdf_z5fIsyd&0fcvqD}Z@t*5jACD@i07Qx1H5@bdp_O9=jf*!o_OZtHJGa$KL);hQSmhSR6P6CB_p1q{a*MLciWzQ z!A-s3rWHMsfTKf(4jY<$`i1TUa>UE?q2T`FORi6F*dXyHNW3V~cz8b2dm zID-UCr)S9|0m0e4TavcymQXIGH(wbPtFRyX#4ctf6n9Z-St(^uP6Ad?nyTmlYv=)M z7(!}mBwP;-Rg~E(`n*bUnkmE0+a=t>N^T)#+KOahJ1f3ptK8MGMegs+mQQqM$)}O; zvy|O0bfw5wNWX7%ZeYsYXaxLj*J}B`rXcC}14Q%rVecCGLEjqrUjG{THc9vOfz|Sr zq4n~m;f?ZHCfX;4k!}R(MlcZ_m-Lig`u&^Ym$gig6bMub<8?o~?d1tjv4&ummS0|q~P8vIgSrJMc;*dpX_qw`wa4Zt~*V>+>;_->)t3|>)9Y* zCjp=CSuNj&@Aa;h?~;DXcluV#xBA!0H~QAeQv>Ve3zXQ;sc@v-W5cQPDF%y&c4o)} zh<7hj?VY=GWyxMj{{B3fx4%%5m~1uieDSP_TFPymSR|iym^ao@68;DiKNGHVlpdHV z*FHLI`aMPE(@!_-V=TYp^nJ$2ZXAN69^Y1XMs$5BXF)>jXo_@rx2Zeu?4a z^@xDZS$7vI-H9N2oIFZv+y-UqP4}a-f0}p!t`W}&2P&VFq99@_3nZ0=lSV(X2?^6D zm~8nub4)^;4~Uh6h&d|XZhAZ>xq_Wy6|stoK5Ra8mrjURYG~re4lvxD{Ygt)! zO=8zG4L5i+Qo@>9p)KW-+@_Suy!P$LS4`>^$g-|{xw|u09_ZR)=Ty)$)|(H^y2xS7W^XI#k)Mi?sg!~=ezyrR(qDUX2Bt!lXp-;1uWD;7H&|y zGRkim14sqsw@RS_ujvFjv z{Tt-7@Wj9d`Sjp=`6P+=5NY=SX?GuG_D<4n8H2?Vdc1}7c=Pw>Nb>%z5~j~{5YHal zE*9A1^r!TCp-FmGO0G4@n`VmFFvV1VL`yD%))8LskpX_DqGyfwgd2YQgBU3iiE}HMuHT#E3pbN^4#GKUyaPS)oD7xD6)&8v&@AWhZrwUA zp?rprLf*wiBw*1V32&pXDJ20*S?J|ZIRp$M)e3`1Eh$(_8Lsc5%#wl#=rl2mG&Lb# zy%8{}t(J0IEy*1fGOuI1Eb7_@MY62BNbcz@ko&vx-$UUUpog(Xqt;C!Nn}pZS;YqyGc8RQd3C}SUn7b;?$Ca zwG1M)2v|=FHgr>FNy5f9#3KP)D8VfZB5erRj(i=Jl-zPz*jX-%J4ioDua@0AySK`H za6hH@;T|o&nes`>?<0u!2;v2KxNoC8*uPO8puFBUlq&a9V((_4xC`l)jAY1S`n!dQ zH-A@#%-geBl1aNH%B-_LSM2@y3B?Oja&1bkif80IteOM-z>t>Qlk|9} zu0&H0%$J5d`E1IqZqJKu)8n=`RX(lejg`ZIFm#~ zJbN=_ACYj*Q3>agfFzy~uaF72m;@~0U0iaAsg_=*T%inCQiiK2!_^82SPONeU>zdX z_aR@8gd3rW6l`uoJQA=C+8e~~tP`iBM&@+^@-6Hxlf~U7vb3iN`3mGN6|jf$+npm1 z_GHO}y_sBQaG5R-^>NvsF8B4N$vyorxJm9J>6X&t-9c}+nBigp(#=D-RMdQxPUvE)y)DfOsyvp=T729?$Tg|kysI2T_yl~1uV_&qq8T;ELeXR}apAorMrw<2R6 z{a+C!xrBbOgi=w$Lfi&rl;3iCzzW{kRV?5t-sRQ2+iNH}wKUyz3Q5pN5;idjH!%q} z_lniZblA!;(#E9NP6_Kkz7Eo_8@ehaxvN~}cQJHm>80%6LHaF2zB}pr?(E(ocOsu2 zy6n#047sZh(U9&=q+2$ShH#WrSWN0IqQ6_PBUR>&WJ=P`ObOHDDGtMhwKrQr`?AH} zmxFW#Vjn1y(7_UM4k94at;!byYr-8g>=^3p4;PLTPr22fV$8&xplCsyR2tf}GX{(6&Ze^r72F2lOh)_7r^VU= zxd@nhLPB}`PET!9NXa&*J|zuHNWxOeu{qT<@>RNLZMSQXu$D4hOP^E6yS^Ur8Yn*v zBd~+C8v^>G)_$?u=#kp!|JqrJ9rS*kO+fi2^_=cXVDRWJmHFMprte$aRUmitZG{|J z+`Cy8_hkYl6!8|*+b!+SlqCb1vT%Ts3iF3ZIQqLVBq=+y#2L*Z@ixbbN9tMoNWFu3 z5;~M8)*(;4L*>XcJN;gn0H=g$6huLG$@{MWmuRVKMJeJxTF)60lsM z6zj>`t5~4byqjxiq-!WGwTM`Ug!OwR+yITcVH7Awt(2u!%99bW8~I3&cFJ!%J(Q7; z72H*gd=;c%nIuzo7xa|K{GNQ7-OlCP?W?p6?`YniQR9Ae(O&#%oiX5~KFsdnan|RaEU+ zRMn`J)ZSao8b$0?s+50?7)8_;TkQ%OF&jHn`{w=POFns?`#JY@uJb$RkeU0%E=NPI zct3l^F3S&impK1m62OkUrH_@FE~djYkujBJ%`i=faYET^#*27K^?J3CLLM+je9R=k zrw4uIWCAo+;1evZbuj;~)GFQ8$Bg%0Y_uTIN}~(cr4krWtQ7J1?EP=>nzdrhx)U>b z)8n4=FKf>%)XwcSsjcIpgN@+9Jrjr5X^Wki(uONu+<3P7gV7MiF~F-++QzuKHGTB) zt5{-ZKJfFRd2&V2+T_!%To^eYGxir(Siz zknN2XVg`iE=*(^))k`G9+}3-@y`zxVvoRlDNu&+E94TFvU&(GUCpJC2dQgqieOby3EY2s1igx{xiK z;GZpialQ-%>HkpE_k9tgkR5M)0Tkm^C*P~jz$0u539X_EeZu1urln?=ix7bcI|p3L z|0Y@&9;Vr&sW(M$cLzgOibb#LJyKXZr zBd^jSOAxl1+)(7o4(}F(q$4}@4HC^IbtILTq1m%Sh3URj6vG)F%9E_BF^~cHyec9* z{)%N8gsEiB>w5QESlz4-qW;%$Qa{h1cJ9B=Du!>hg=Ydo?@*UZGNNl;sH(w+aBUR& zcv}A@Ym~)!|Dwf@g1{|?_2+!C&&^{Svsyk7S*OM8bPMT!ER#msV32Yaky!{Y_nP*1 z5aeumBP4rwe!&fw4l2F3G?m3pzLf|)hjU>{`oxlT5KE?^vpY5f=qwL-n&c53`q}<~I%fy}H4Px)W}7fVTkdttY)SRoiR(o~i%xEIwX<`G(&H8XB&eNU_oEd05N9 z1BIbdS8Ogcf}B9tX=>^i!H(o#9Q0TYaYv19wTVWFlAOFt+|%7Ic|N=n%Eb+ZTG}A2 z>QQ6uUoD8~l2MkkRhDmTrtX*hZH6?O5|nF^%D07~w?#S$2^(5uzO_f~l4Kn%(zZnp z)7ue|*6)oI=4jCE`j4t1{30|7VgiLMS&L-Nxm9mg`0nprw;~fd zDcGFHL3$H0;Y(bb(NajZ_g#($d{W!54vJI}$*5XKZcO{SqX<-F{fTLhaZg|@B)5@@ z*49?j#@<&)gKipNYC3rOda;j6uiFf7zab`jnjv#nQx%p@=P*!{O0q3X_^DQF!M}{u zb5Z(!Nv3ciH=c4Nn!P3a3v$f!KS`pF$25)a8E9!u4aFmz1Voy1p`UXZR>lk#cV&=X zV~Y!GR2R;9b}#`%33h}bt0G2yD9;v7KJH0blhPJven?h-CRBTL@@q?7OU)wSeoEw_ zI{@1h=RR7qcKym8n;xCFj^jb%aQ}RvKXnL!7{Qqh$y<6h-m!t|O+53z-&Fr@igbnY zn(xiHT>l6UJ=%M-t762Os|G~vx|0=ytkzH6;i)6;KN~ZJOAt>SaZ@uPmOzy>z%SZq z9bk@0YsZ-@Edpc0;WypuXVPHQ-^w;F{(vq&FpS6&F^rh@(Q2(X;GZcto?&aAlTd-_$>YAqgwthRtRdXk zW-h8wD%JzXyj$voz;ESmq8)>toE_`-5sY^9r>#AL{)^0^ZX)QZCCIbem1zJ+D{MqM z-l@}3TdI1eD+nMHdQ~NY3f&u%hCtt?pF~P=Lr-dsqUfi##8g!=bP+2m*}PHI&9oAo zW4wZ;5>SJ>`17n$dW6s~w&(CmpPrlJ<{(&UX+iG4~(Ix~cO1QBuh4SmTkO z$+QSxF08H1&t%VzvlG9n-LJFJjnV2DWpr^CqBKaz57ZO{Cx80t6MJaOVKRV4k2Xw@ zj~i-y=5=eM(ist7HXs4(!yVO_e0!&!89Zav=fJ}Ue)0D`Tvzi{N9TLqfG`f9!N>%c zA$p1SsKPS+%X?T?X73-PE^XkjX>UEGZvPr`F72$S{NnMvL+$>x2aPFp$&Rnql^!Sb zEVIxTMffCxlx`ZyR>PVSm<8u4sdCR}&!kgP;Gh+14WW%FH4hjl$*^rT#4>M}JYcBD*VHwg3I^3LPiv!p}oaqD|rs3L0wzD*t{** zpO`DD^`k1py6(#JD=R|?N3KGB_>$_a`F&(_%);74dBqXW*!5H2>yw-r)lGZbfa~)_ z3!|}8UTmT7<>>iNy8s2t)gzaRq@fJnO+NTJRTSpqwVa+Q5GAb@!l)J*WxmPIXKZJO7#^|B_>3 zn&U0(Fu6`K&pyh+@WuX*g!tOid1Em`?WjP>wX$de+orpNFf&xN>H{!MH8wtoGbF2YPZU8Ke%hQyogJ<)^ zHmWX`kmF1dXeVg=aQ0Bx zAslH#`9~ao&yM6BzX5C*}(>dud`_R%OK@6`Pcf2k1PQs=<0KW0=;R>TM70_$ONbv>z(jeggF3_{uN? zXP9DD_2$cjcwKLbt7c_iKm5(dFrh9Oqz~4uKkyQ10|V#88g;;!rLVg8mXvA4Iy~mb z6({1&S*2NXY#jR_0ye+u8k9qu-k*O?3yk5~K{Ajz^rb@l%zcG=+knmETQb;RKZ?;c z_=??)7V;Lk0*-p%2ctZcwA0fTXu$;SR1s)~e}#{I=$w*!>m1)R3>5`0)MA3r9>6CE z-58CC*8Yr=<>|u1+6jt?iSElM5c$EY{sd(amtJU;MxM2vb$7$jOOz8$KYabp4ZwW# zCm{xnCLKg{2d*r~6$+ZFb*#9#stpAJso_u8ch4u9x31CfMto%zCi(F6XbKjd^;6P@ zhgYP0U_xw&^vfgBJ@7>+4+V>gP!|uS+QIQ_BJ6BD{k}y9KbN!pA){sUV9VK z4#25eth_xg0mz?l*(|XTt*UBD+7aznLnd$*LTX0{Hf%VRe4j&-;OBR}H&8!*I(<3T zUs}1-!BH;_QnIuZaEn2CkO#(?wkeI!0k%10=6Hh@IBks6A-7VtvX_FnAftK^uT5rgsPEa^ zp+tc)y2r{vDrIujV|8TpH3gA=Bx4;cnkZ`5pJyYxIy)y}Py0+EUZq&fw5Tb>HH{c#v4$9B=+#`|R-4 zw!M0;ydBp)ZdZ1R$swWgU50K&Z8%Jzl;4qQ`y%%t58KOz%ZcNl6wjvtrJ;;wapS0= zSZ_;9Rf8k}=!U_W{CVxmJtf?4A<#gT+~()L8#uLFv~al7{X75`R22|3Sh|)#=ur%{ z3-H+`2m2)&&E&9(!J31bqYXwipP+v~IiAVfDB+5i$%5#iD7Z?;74i_5u4Jb_#J9Jl z>t%loEmrdqeD|-)MyRWXb!PDHPSNT2s58m$Sq%qT0uw3h6!=febbzPDFK_q!uG@(L zw3&{@aPs2JX~EW2RCY+}NiizQ!&@?p54L|T^=A{|e&toD_eET2t*%+i*@}>0bGSdNWb10&gan=a*I$pi*Xom=OcfR zWBD~2@*${=0g=#0hsU;?#(+3HPY;*T7zSdKwp0bfpc|jcJYIf&o&ed*+8(R3 z@a^4z z5WT;6M^L@_pkdWXi;gic!cMDa#+mO-%7D z*9aIjG6VTTNP*V%#?YCZr|1Gx;?IlRP%Y8}V>Ju063}9ZFo#esA}`Iqg4_IaJfLAc z8Zxl0p-=<&HNn(aTzE!$?#3};kpIs@`@-|MECO_Cjgu%kc5Q1B^K3d*y^crX7AIGr zs2?pbW_i6QQ9qM?4=w(fA0Z=;7|RRDY_9JPH-x#wHGAJCAB-($?%o4yVze06VY|uCVkU11rnNSA>)87|i=g3}hd4j}C+n~-C$0&=(p!`(FW%Z#oJNG3> zQl4C~8_nxl!V=%y$;Sc(7eB_+9uyxAz%91JErE?chLbytCq&PDo@28#uX_oSz8t0j zmh$G?=X=dLn^YbaW=?ttLG@Knme*=grX44>3{b!H@DJf(S$+b11q`)k!RTKM8!->C zL1iFw#D+x?e}Ch`sAn*j4!AEHVXS(5_eEWy?IqcgvG`1tSN(GKBy8$m=?Z^6{g;*F zhoMZ;K>`cxCosT;8_Y51YXSS`%#qX2n&xvZZEIgRO_if)5( z38W7ac~*3YhgshZd!|7tTq@$Y%hT?`AaSGry-)z^yS#RI0-TXLBKwhMbnB&Kr`0#= z*~O2|LKyb@d(u9FM3nJ!*0cqtk)Y+pPPX>9SoOnbtVx&*-u6JKkSh@vkoycIg`_>j z95Kaz6ZXG{$&Zh6yDr`?`8p1XnE3tAa# zUuz)HZHQO-s;RG~R>$+i!1Lq+5>@q2$723q8fOWye$u3nK6%#=dB7FH;k9gfkR6f& zpNEqlBjqMFfFmmPIJ4*qYe+VHZrEJOryy98*+2g>s|aq$`?Coyql*_^G>kJzh7Yej zI(YE*6~^*bQURuBz{bD8n&(eGXE2yP(Xeo}$V5H*;bU-ZkFh{(xTmJf7=pm#?g?M- z%68;Q;EiO-sBu)#Oc^siGI)1N?c!8)Zcc1Nyj$jDLnV~<^t*wN84&eo;!<=XfDwtV5c@M^XRle3tnR^6Sr#hAS%L^2o~OHW z8J^$Rq}Q(_%tZi9XScbtA=wd^bjfuMo<$C|JsY*@(JJW>E8ULbP{*?bW!rM*r$R6` zUNhbQ;@3oC8amjps~zfZ2pcIY@U`~R85RH%3uwMgN?iZMZ+oG(e|nfl|7gA{a658i zYYm_9xHds@lXbhs-H2k}pSl8m4|>obR)687q-nn~@w@9`_PU&epR{wQ_MA4{f4&^@ zmpO8mCe45AzivTax`xnE9!WE7*yJ(L|FBu`u`}h}NnN$Fi_=VvU^+`ZAHMKcPQnYz__%0b`WL`wo_V`^3@ZFd7Y!m94Plp->I=|nq$JT$l-ao#h)qRzqRkZ=OtPp zPdon+=QOMLXE6TJVL`0i>DXR~WM71SGV0u1=GOc)MEA-9vwywHBtQAIKI`*)ua5U) z=6l|J_qMDzYb==uq$Y;$(GO1=fe&J1it~6MM^s*=ry8JA>tLRm#VN;cp3nq0R+X{2y)`2pU9@RDbN_^J!}zD%XsP9W<&{yEAr}=29+XH&h&laNdgj-$70EwJ%fPTZu&y)ihpIdc* zwOPuA`I@aHIz)kl{dW~#77Q+;pe%X3q9K?jWyT9RoJ2_(ZY$PL@kmVPw{nz0&jMp1 zvqR+#(IytuQEOxu*1zAS+4Sss4~4CNG$#> zlF#+s6H6lnd%?(tQWGGb4)F6bP7;>$SA@NYDf+o}vycV-ua2iaK9mr@5ekk3A=;qO zx){`^+Suj00arQcm$D}~!{ZnGtx;xw9Z7T$%iRD7-|K>=^Wom|W75Y;u5g}D+%qJh zbIcgqLd$^)pq)?NzI^QqVn$Hj2iS_v{5#&`ZB>|lH~UF{=3hF@pl04mGUVPh^W|#B z2R6c>4;kSo{7JAlJ`(Nhf_|#uDdNc8fE)9in6hh8Yp7o4H7vtRgDAie6m(++l2~Aq zL9G-uEOo7x{_}@BnGw4;MZJ(a+SBNL%yr2vNbf5-lj1?*jY8;+-E9N$b2S)rVCXSn ziAR5h7$cAC1HzyQX`v;J4>42%`IQ!DvPdQ24ddjxE!kolU?_5);&q+)Ncf5_jvO%L zMI`aZ1gWZHkwiU0n8~c|l)9Ihr~>=I4SI>e;N4=XwZ|?8dGR2O#^Px0oY1cyBI=Ol z;OZbYe*`nm?c;#+olXzhZ3A1oWRu9imvH~)NB)Z25QCPZ4|9hRA1kc)Qf5t6?1ie(OytP7Wc!0|I{w4wner^41Hq}zBnRVH z3ua$G+GNXB>ru}89*aj>(X~)ahh+f zRMONX*u)IoX^h^!ay)4)yW96HWQyL#BV)$2Pj zDWW6KcH=6;<*`bv0_g$y?Zw0>qepkLUkLSoU#qt1Yw}e<#xLP%1rkqh6FS*>Tg}>r z84v=N0SnGPJlJoW(*~H9uQK;BBJ5+&zsK8!;+E78h~pMujAOfA_Ycg{f7AL+H!}pH z&o;Cc*ii=KKHxV)(JO+-vQ*N}W*_bJbOPIN)rl!z9BM7RQzrvsuHPW}D7kJZklNIf z5D-QdD2l9;4d!aAUPeP>4}mciV*d+0Aj44lKJ<$|3c#M z{1--?Wv080nW_V_>Hjt|XnHuJ>ZN}77(kkbfnfhEiHClb=DX+WgVsPi5ZQ(djTap^ z&))JeNfoHVLQ|ixG%;A%3Zp@pyrAXftJC6fJH#k{xziQGzYx-V*y`{I-WGPljBbjI zJgFObyvkF-wad=+Mpy8@3V7lR9rBG|Q;2~Gv-wq)L+E=VWo8fj2Q0(l&Aq3=Z^n$i zhSK=n?LH$b^9TUl*A65Xs8!k-8<~IC_bT1PM%Qj9F-l}d=ST90>CKX9n)MWJA&7gO zjOR(KC2rOjp7oHf?PKucFCIO&7q0N3PpnV2zkZ5Ik9MT9`WRmABsbrJCcEZjbGH_7 z?QOEqL7xXzwS&zI`6bIJPxJhXPpI{Thyn{K{X;vCcDCw+esV(P(!*6c{owPPz8)CJ zr#?uMO}?&^6mq2+8n%iD3K>7t0S*HYqXlYtMJ*=Tu>xDES^It-gQl~|;W4r$Zhm_S zgunX@S$WSAd^3MOB~q0QHOfcpU0l=JZ&xADf#lgH7*#v@G8q6*iBiXhv|h>;Zpq}= z9GP?liB<_3x9HkJ15Rwos~r6XZK~6D>u#6T*CoEyM)Jq`X5@otUmKbwhc@MM`myfp zMw0DN+OK7Y1b^;1DR|aL@yJehr9x)skJY<3NIMGhU7{?NQ8Q#@9F_2Q=fumoO=>w% z+~)AuAG+&-#Wo`ntdlE|lgv@}cp34@kI01xD{}P$=x_e1GG6!5r!c)R;hsfe658~X z`C3Wwkc4vte{c3%KbQvNxZ<=-!KS4eGo4CdjD>r zMSyPP-^V#3N={u5fMejX5g=@c{gkI6xoA;SyP>l*;Pw?_D@nEqx13g9wYIZbQ-GHdY9`NJcQoK)c zl@sjfrytk))Ye71e!ZW)27%ssroSdBaB}ONKgXzN=2?fcSJ9>a)p;TNbj-^$v`yq= z27jdJm~IzQ82)zz*DhZiC?VXL?bj_WA-S_Lkzy*Zg5Ex<##`PTf8~pEm)0(q{ONJ@Vmx8jAjp-t@;8 zHHTym8m+hG)_t#{)l*mNA*u86qGF>}B;qqgv+=mg7jnzmFBs7ZYWO1v~Mf;fdN@~;8s!->h4chb7eiyd z#JCI}MSt`f@y9>0Ny*Ye{|xb07Fr?Qzu>g~=Ry`^d>}OavznLE^y#Z-sy~KLLwMK~ z!#bPKxGE%YEjj%cw|ffV$*Az;VA=17Ol}bwrE%w^4U(_Zo$_bkti;|qU%b_{TBvg& zNwoZUSC1-jyGv;KZ8NnrZp~gfxz`xQfnUXF?Y|X&^kf5RA)Z`jB$E~#SV-Sjc>e1w z@XyY7kOD|M_Nr!^+lqotSPJ=;1A#5$D0b-n)9co=(HhjR7Pmrw+sV7gQ@%paqR(pb z!LPq4?qSTljz&m*c(olPklG=|F~5{Qg|W`N|K`U!$$*4#yb2ShB3wxyI){uki+DK zX3>O5tS7}8*?17oq*c%8c@G}OHDuyL0>p&Jt7+>xgI;1i;n5qU4Z$B=HcJ81(=b*s zRqfwpDGXw8>T$kJpnB6^4Gm6q4>j9!1F^gQPy>cd;w~2!flJ^KnSmQV-54XUDpwqD zj+qn^?Nt$5n2S``ppAo1Fj6;rYk96BP_OoQJo|!Fu9*qYm)6xaWo|IGe8}Om|Y7kIRe7UYB>pSpWJa? zgQG_jM+3Ei*E#J^AY9xP5m^HSxakvqO!l<2NE)wQm&|^!rXu|*j5ljuKybGm>F~Vo zTdM4zxZ(3tnSd>+%&{#(dWn;+NNY^atDAcYq>|X^^2aaPISN8hDwb*S-81;Sv8Zqv z-RcgKy#C%Po`4q>c@p*n;r>KFLTww%?i@i3Z=>#Gr$rEPQR(3DsY+ftA6pN-ac36p zP3?GcIuX~bc>K_PA+3xTZ%OHS@H(&oyflJV?JM+o)9c`Mw+|z70s&SlohP(&6Wq|i z2X#!e>Ijn;Cf@y}BM(5cffv8Kt92Nn>{2@AP`s9gLg#(wjU&G;E*@x_$mD!&`NFmS z{Zf9eHFs_~LgQB~&f!U_&$II+)hE&a$klO_2)@xIrjvSENIA~Fv|l&?m=WME*H<5x zP`rbbL?ma%U#UWeA{{$omU~XQ>%$AO&w>eS5GwUZ?N%zu?NG%e%Td9+u3rnw-a)Y`Q00V;A1AjBd zNCmxP33QUj@q5#n{P%fTf13#B5r+iFz3Zor>^NXy=XCEaA)LI?pF|vQ3>+PK8a@82 zcJuQ0Kl#FRu6Rqj+VUj1=7_!GW=P1ax9A_i%^TD+F6yNFPS^E?|%*LkTX64 zL6dLrE-bCH=Uv|3pxn}UaX=5aVNzT1A1CtHjYR06r~hQdV&@akYjJDinL$K#sexxO zryn4Qr*uw}?n+2+Hp+Z3Ze9M{qqK147e7?8h%pyD?VQ3TnPuUs!etUwRD7wuX{v7k zdtuZyVCu~Ol2Bik8D>^SyjOL{Hb#`UM)F{%AN4`G;d&5C68&b*B*D7n0cOole!v!1M&i$V<;a1AS-^Zoe- z-1a);yyxo7_F8i9#C_&Rn)A;iO%~GADBT>Y9&hnuFaMhe;J}NEyJ5(n+v$|3BM>Jd z8c?5K3uH1BtC4DQr}!pnT^~!8Lbf$t2y5ZLpE|`DbW*wSu=SI`Ecen<0nNK$;ZkUw z8w=*hq6Tzm~K=;ycDyyc4XE%!Q~|B8RV1)ng-&{~?L=Im_rCNjhq&l)c|^ z*=rzdrl1wd`i0A4J`1ilS7PC0bvI(_;YhF5sXWNvu?KR;lR~ZB$T!8{kV^02Fyj*W zd|g)DGxXV5_XHrSiW%4+nM&L-Ke$DY+@eq0cd5)?UD9W$8;I_Ec1>qFKJlmQHhiDC z^2q=!FNv;4*Qv18hbz}}UYf9L4zu#P&?25L5%7e(t zk!gSddWnY8Lx+d|A{mj)NO&L@27izU%z23+x}cu}NXkm%8I5+wgyup01cX$^+d<=m z)WXpJ40AKp-4x;y1)%?p;G~x6%g<>doS?_NIj710<1+}|#6 z+p8T;14s%w_JpfrN`R379u5%>*MHynteT6Q2aI!rgdP2J&A2fa?N@&rj@e!q;%JoN zQ_gJ2DoSapfCs7MQ^31EeS9qZ_%ki0#MjY{+Ap0DS(G_*TlnhoOBu8&N}9W5(Qq*4 zr1fz{loN&3*5>G?*}up*31_n&8iEP?M1VJm=65P~Fv_NSM~TbvWgZ?`(^JQheO6kG zJ=Pu*E}E%@e@n(RSB*=Pr86Mv9ukgOT4&mPyWqEf)|jxh1X8t{+T@a@knZE@t@z4f zqa$vpF5!u;Ld|Q@vKTVNROo!Ru(@vVpH3`Sho_fi0oQI6dDWiUY6yy4lUxpWxy+36MW4>$kY zD~GtnLu6f*Ty)Ppz0ONk%p`xYOK7jld)(n5Y3PXC`;zO9w?wssem9Zlxw|&ju96C= z(j%M}H>W;w;4M!2?@&xLoTa<>=Y{*tcQ|>Dng&N*Gy@H%m8zAqY7{EhOtCEb(Fkwnm9j$EL3|A&JxA)Jf2Dda7> zw1&ew(t;HOhQkoD9qm7LX?19Y2>k9GKJIM)`4mq;APgage6umMkv{0-4lE1U#J&e! z3pyg9q0m*r3Y**Za=KeH2i-d&hi3Ba2pMu?DPq4 z^J8(^DcO_9@#X076?}f7E#$W{4PpdfNv z9;f+dZ)^qip%5$94qf<8sKB!E=Mmgc1XNJWiQ-HGDZ3S5uO&^oQ6(dU+eskBv#&x2 zsqNn{>@_`mNZa*^eEXZ!7j8!dWYK9TXPf>Lv29)TyK#Cw{R6MhN@`nV(+~Ux@$!dh zgjC^y9IoALAs8ZxW9N@V-h{K3-JAm#hMZ-U=xYf+Xj$Y_Ytng2X0mu(Im13a+JE~P z_{6lk+T1Ztq9jSe!CcM)Dp2YWragH1=O_i>i@Y^X^#n`Xgv|P3=Ypk!Ly=uu^Jv577Vrag~#;R_Pm*d0vtCSOH;WsO6}q8gUo@#Z_-|5`33MGGp=4b%gZ( zwOqJibpU4%j5VHAjl!)8__x11d1a-IM}T{U*56W*qDYqQLQ~%LFD!70MkzR7DUm!r zOE_Au*Pm$23Y}va@l1mh<+j|$&0dYxm)n}4Jy`8Ti+DQ`6n0kNvC=&4-%z#MEJ+Vs0Wscy##4c@5nVJPkw&sV^>IRjnOX>8L;WC^K zovHBzPRfn%2+e9~O>w>GmnBqBu-3%FC6VFZYfcoMgUvkF)UWNmcp@&Ec5vrKCB+lx z8t`y70J2Y_m9!G+9!an}0UP5Q7%ltEmbu8@pwm2qbH8*i8z~^v1$+|O84xG#%-NwK z9Db9V%X|yqXTPq_KY;KwHO192kHQ23-XfXt&zNIzj4mB-u`_XVFE&wh?}qyFV~!p&cAB)=dT?1bHq^~!hv)z|t26SRw|vmk5&Lgy zJrUwz2Tj_T_BpnHwW6(DmofJBp5eK&_$Mm^2Usmzp~YsdmJbD9Xl_EdRZyyeagO?RplU}1-79TN(3BNxN&|XXDyA@bS(T6LeNXPlaV0`_=-r9-P;poB z-r`W`;kMkxS@$;$Ralt^J}G5<-dO}s zW0*#H4A19jKF(x9?{EC6;7XRTGgB1%G<){3lFJy&5I64eJ7@Z%2Unbhp_kMk5hvzR zT}qA{;liO&q;b<@9**n7`R_aJXW_Ql%?Zo1;}3mn%3eL4=A748djO*TtfZYU0o5f( zdz!H9v~4-d<-BD7>!WHSgC_l3FfsL%G7FJ+D$j4nU_YTObQqKsy6R{Cmu+LWN-XB8 z+Gy7VpuaigjbE3vOcL_sGxOj*G@N~V``XRGPx5}y_7ws88cZwE>aVIG?r7Et!NfM? z>vfg~Ez?WDIV*lFu3HVk!gVk-^yx1h&$NFV_{LkYPtYTLe<|G!%8AtRAZ?6!vjiOL zy|`1^OUr3fxU~|BO@JJrlElihE_71zZG;o(Kh*|QK7`%QP<3zXqHL88S27$qsM?Li z%`(Ape(wdgnuY_VCtUMpc=!rMP0v$Kb8|O3 z1fTs_p6%3N2Cc+9;>gqO>(Hmx>UmBuveqfSOw_U3Pg$Y7HV-R*dddj;-uM6bDn^CA zWN`-!GF8X<-&Y7ylDPUG=qqLxt_^^O^V5nWt3Amx)w@5;ZH_z7>#Q>C0ey&8t@~D4 zX3CV=M03SA<7u)#7r+VXs0U>4@f$p;dAR3<)G-tt20d_B2Wl%d{IOWVgfxJJW9JR- zz4MnGlcD%aL~!|rNEz<0W9PwCJTl=G?MEn4sT#2Vh@TGe+SzwkNfz^m>xytDHPUJ5 zUiHKXsT537MW|Iw1-V^p3`PWY9zfTmh7e%YyA2ww;p;WrU&_#W@ z2k#Miwx&SsVRE8e1U=#+OeNbw`y4(Wi7@I&8BU{rt^Ah?IXuDmkJ&#xXc!ntc%r~* zZ#3w$bG@c7Pu;knojYCa!0d{(oEcK<%$az_XemeDk(l7&91~}-FHoMkUujOP4&-3d z2;vDOK#1TsWQ2b`k#;g&xiopm)C}Um)2}3%rLPbdu7S8oqoXbgH zzapbz!3=$W>@9LS&ID1@6SRwln@=Uek;8_#{AEM(I2EAZX(tGE2z@rV*Ni)!2!WjN zpQb(P817<+1N8etn`UTG#Vz?J`n2ffRL8>p`Q+P`LeWN3?m4pZKMnrQ%aSWgIgq{= zcum4|#tpS2ja+C;U?v2U_rtA6axtg5;=5b*wos`4t}d_BndZ5v-kPzPfc5&na&Y;m5+FZd^+v8>yEvx@ItUcB5jD+>8rPTr;lifmkXY+F0dvYd?-p*kQ+^V zf#MWydp_8kxy5bK9%*3y{fp$*aU>NsoEEG(xoieD^;gQnyM=tnlvwm z0&8|N1rs;*>6mvc28N8Uzq z6iA}!41Nufm+|j4(ODhHDqaXZT5G}6(3$(De&?6SKOi!oKa<5zEBSlb@CH_jt*L@ zjtf!^5vifaKEm~r!#X#IP74Eqi=mac3hA3Q$q7$+q)nGNnLD|39AqG#JQeWBS3bi2 z$RG`O&QwFBL_m799d9Rjq0a&W;ahdj&hjVsS|2qgUp)9{ygPU((j{0?d9HTGkXz3C zj_JXJe;4{%>X!0+qX0#BtKSs+;ukMAv1=Db+Ul;_>Dma7>H>aHZ&k4}1Fvvr9kQ;+ zsx|VX5H|P%{03R%lMRK0$Y==R;bsdpnM9g!IzqC>z$EVS*^nhh_D32k0E$++GcA1h z5nFg0a(Ikk!YJZ#oVuF$lPS7!1_JWteK9fydpT>YxCs~e{5Sl&nVai9)OX)lkTtI*V1LY2?W>^P zv%x_@s}-c#_Cu@#;r&X|qj8jc%fs~vLD3l?W9mTvbgceO;Gff*YuXD>4#v>mV2@&f z&wORe&f-|5%;l+ocF2%2HqT*W(Xd~ja-?X>rsbI^mQUt%Oy3X8_Bxiq}{=4ULaZR{&Ni3BaC|J28kCMounJoIt1M z7x?x`Y%W_`ZxOgB^KUVeb*HMGb+%MXEU3vo--V+4HHh|^Ml$;=$~WOXJj)2Ji~1|x z67YhB%p_r-?om|we%{&l>yR9O;m-!jV0cKpDMq1?#8i~ zq$Iuv{%o^NVxr#&hi!r7rCVJWBZhob*}%RleNO#`?kOPAO(Laz8U;{t}n6Ym3|O?HtAuKd|# zSnf+Lpr?!}&7U0_T|!HwWBBjlyGZ@t{ns?>&!>f5xlD?KS_!n8Ai|FaA#mQuFLzGJ z0Y-{RXTJmr^`#^h!@FX=9!*yV5&BD8E8;?2s8wf_U){Mid-mPvZrAs3sZ+a`o(>vU zX~ZJMk){}85Z_;84w(2f3-<^lasTPD8)i9WrAnZMCqZ4|dLOm8DX+Wn`*IF5oaCzBU4SQt?`~12>0)?I|Y6?d&nG3-|#}TEXu{ z;elYA4-GxveMzDJL7+jAr@ssVqICnj78)x?ZU3X_T>P2-zc~KwBB|t3ZpoeGy3)mM z2)W4yun%Dk$W;rMyl1rkUuuU8_$B+;0vHWf=gHj8RxEll?S4R~((gNE? z_=-D<110l7X*W*2OIHsl-*0i)Rlz0W$lai5iOV~R?l(pqq0;1DpXJdEChOSEjgQ}w zg?Ocwl)Ki|Nsw#!Jjb?UQb0=vp0N8RK#6jRS#r2kU-c|%-wdsjfWC(R7w3Kj{A~V` zCH_kAhXXrPAB@V7;UY7h=c?dA3N_IcUQcd}574+$>3>8hS4SS@f7y9hM!Fq8R`0Mq z`QMByAj94LQa<*^Q|)?b%lx-3kHOihD3f3$4%T%eP|@tal9OvT%2bE2KOAG)ccaWY zMcEUICFQN`iS_(bI|r*>pU&zdzty_QXC}+~WnV1sNPoI$tq!2u&IL=z=s>f>0L;`Z ztE0_iXG(k?kO3PD^km5%^TCW>m=m}jeg&*lN_NQNKkuRe+Hda^^kmi|oN+ln5-)j} zvGV%TjPNk)N1grdAv5JtlDLE3^5}_AwlhJ8A#u*ak*EF&HtMNqLf^ZHg=cly&cvtg zL5WktXPn7h6HjiG2rC_s(wW2R%xA%e3uZzqMwZ@rXX-}z^$ZaEZgi0?^|am0FuH3! zCE>lt#XznPL#sU8p~>xogxurnCnQpW1bY4+24s~r)xh%wSO2JKAq?`MCrThj{*Ht* z0($48{JLmH(B;~<&`+zWd=E~LRU&hmuB;{unbrY@O~Y&5naH~jSH5L8yBi<1W;+in zpVrd{a@azDBV9C7(F#{TdzQS`pq4lBWhkHG;vO+Y1B{NwiF>9?Dnrq`vwG@i6$R2=g>6g^u4SwN8at<#G_DS3qy9T#V7Ak|e!$4rY~)d;pBh4s_ZK2p5s2(gsgO`SgY zaBp^8mKFX4m>nX3I&oR&OQK*cs#JORoXBWWmz}_JQ$@!)+(@HNW_;sldNo=HXl}lU zF6mfL;`J59spvEPijkbOWB46a8^^uI!RgPB1ut@w+pmtCk@uC9I_a;SXoO9CGS>L@ zlh*)CFkw27a%wkrDL3Hegp>02h*WTrpYqmkr-0REDhamCoYnABTcjW>*72GLzC z{}*QOF*JhI3mvPy|1vyte$4fv6WDM3r=_j5vgojPFYBW_?$+;Q_tnxH+KS#G!Yho? zCMe^2aYtHO!ceaAlTau6=|a8`o4S~at^^dz0A;Q$$m4E8_pucR<$>*E)ATCwiWDU8 z0YsKmiolH@yMUiJCaz!ddJ$s*G5F^%GOyU3Q9YL@u1#|g5q9DZ3m_FGXhT0D4O5|a zngaW-u?O#nVWz%h_9i9Jcq+P%_}l5?Dp2vz!Xawp@|*zkh@+L`m1-*|p-iUS$Pc5> zRT{px*q(>g%dA?^2QJ_^$_fR~v?wJRmg1_6; ze*7qGbJD#b|FhYhr(2)(7u&S1JilAZ)9+IcUp{SN;&8HYoMIE1$`-1s0%A zHFSUH*#URIyp>ZZ=7f;4lvkKDz|l*#J-1WpT4eE`VYY6-72?^$bXET|l~JR$O&516 zralDQiiaAgt?D@T8I|Oc-Vsu+TwYd1GMBqbex@AQ3d`zzzNF|ZPfchtJFIWqo}FsF4$zdc@g@!gZA zJVeVD^ox_Se)blpGV27H(#P5_AR!X2rD1KVceEcM@IH0-JwNDYBPx%s^1r(ztt_h% z$V=&8DsXqOEVs0aB>ETnGzjz`EBCB4^5vxGe1YM6T0ql;sHl3HK?64 zFa6~EPv;WL*SyfoI)SN~J@QN0W7$_&$9co*{mc`!X0g7{rU$dzyYO z6}sE7XE41GXE%riFx)?f)HAw6W_N82#GE=0(o;nGV0W^hX+j#PPj&`-;2STa6X?<0 z_YKV_$e}JTuY*y_FTMj_sm$JUH_y1soCUKLjmogj4k=;<+VZFmX@v(Z-@9!e6PdxI zPY6gT15&AzP6C+O1o<6%PB4y3Kbjd-E${iR3Y}GjY86ginEw)#a=V2`@9IkPWJ9%u zd24Bb5?(pprr^@YLeHa{ZSeP1ke9ZHV!BHvKZOWnGQ;dQzA1E34dZkCnoX-JWBndp zy72y?g&OW$_rB^3EybU&5=%Ud0U7>$eN9Rh1j#R?ke@b#<~3b2f8|r*A!4tkGFl z{+Mqa^Q3SNeP~BdW98scX){&7I+wbu@13HyhE|Sn1%~xySzx3v@ng(;|5>J8-M<0w z7wM^3G5v-WPg035KeL|OlTgBBUnYZ&GyQh`w!^jww{{6}{s~lDYh3p#uCGMI48yr& z(90svMKM^W{>@2)Dhc=gT?NWV801P&PfM|3|Nhf$ct0De5M`V$EkXAGxYtg@IrprB zR8elt35SH$A4S_L{vTOAJ|vyKRFDph4N1646b8iF&3W4DsA-ogr4qw{J>EwsyID8_ z^XmYA_o-5OM$R@!17&-|?@t88L;v5jTZ8`$t56qreAs7<#K`vqlRz(0SkuV$L$4o! zP^l|yntqUQ=~xYBTz@!BQwaDKf!%fmP^>pN3X;Cp)3X&+I8g#1I8Q6MgH=B+tuJ=h z_-e>ud+zH1nwaanzst8s%dvFz7`_T}R6IRSoOwPN>#O<4CCi&U+IduQyNJgb?{WnP{PqMxOm_bfg^K7VcL&OKcwkOGu? zah;^+(21h%ol713ULtDn`SY`@G~VYVN%rR;FCH;EZ_xI*0%ZxK@ZT>CK?9o~i>;N% zbSlXu)+Wo%DM>=cf*NIOk*V(V1P~ttp%?)~|hIgcA{w4mCGf8kU-d*0> zp2X5yu?@C!M>vpO_~2}#aWW&xD|*?;D|X`m>cHOal#dSgbE3|ka#t3&wBF@W;7882 zJ10Rkrv&baR-0y`F4xCFV%vE5&9zd#Oh&J3x@wHIC zz9%S>uN`S}4*9(-rKpp^-eHzr1KTk&-y5gVZM8$JUpHN9S{;iRz`u(@B;Ror*RANs zx34#q!wO*mTSqx2i%7erNh|vNZkW#YWGy1L&Iw`D+34?*EF5MtvpT{?*R`CvYHr}r z`B-UWn;Oqk$6kOwnYiqn5afuz7Vy!!6dLO!_Whb;NZ#`q#XP`- z+O=b(TLvB89k?a)@FDak-L27R9>%thw~$ugr3lx#Sf1*Alrt^9V>GYnNjb&kO3zSrLWJdUV1q z4&Uiqg#aFMpNM{hT}1!F-oL_77|X+XW0p$7rff%fZIV>tS9Z{SE}gsCEjw;>;ss=2 z7bZnjB}IhShqKdR{mrGfu3Fbch@#>Et4{P^Em6!%$h$LQ-wMi~R6yL0RK}zZVt&al zZp2tGRoZx^wD^l7>+<0K5cr>z6pKG%czC#Iz?; z+OEb22&mEQC)4A7Oh>GvQwE$oubqG2iSI4!$6A!2s3o{MqP=@EnBL6K?J`a15HN=_ zMIOY;a)-l{yz7iG>4d%gKuOA6#hagFr)f~T-5wnG*MQuAw0Pv4hJxeU#aBCsVo@7W z^YY%UIfib)r*W+3c!cdZE14Xfp@#(79(b)~MshpM`^>=7XQG&lR<3`3HFYz4yE6q2 zl1tok;N5-bT`|5{Ld}C#{7Uo)r2OCpE^o2=vP^bsrglGtI9K1=TP7n07*-9Xm9S3j zRh#i$lgw=)v2_}NQHv3Y_uskl2c=}Oqk9DNNndK~%vG?vx~E%kpJjwtLGEODtpmJr za%|vbqc#sVDqf=xbQ{7z{WQEppsd>Zha+c(IAW1jQ7<(WM7B)yR4uHY!DF7%QL^w$ zL7Vi3Fwj7bKk-adh=0y;srTiv+242OoEpf?i^>qZOGfpW1mspf);Xvlblv_fogH4r+7>11a_b*BbEk!}gCn%7$LX zsz&%|EjsD!3-{5MK|1wW<=y*D1zEE|pe&aUwg^cu(a2XJQLVlh^PIFfONb0&oazUg zsLNsEy~HnK@`)yRg(#ft$%vkDW2t{V7BwCBt%*Ob%V#bAv}rSRLzIl!z1{IkITWTVlTI%tAz zOd?Caaigr$9ZagD+2cld`6UYS5Io?Uu}{ZbYu*2U_=E?wkQbD!DVMUOg`4H%25!j# z>6P)Rg-J7+C-2q-HaV!iT25Gh9{PuKVQ&|uSt*pri`df&PT~1Has9WzZ<7Dipl4*Z z2KEYT?IKEkC4py>0(oiD|t?PfSHR%@?%zfK?K!) z@Ytk{ap!mS85dt6%`E*h^Dr9SuE9EA7@PE5Ef&H{z=dpCR=GPj-jczd@6nktI3_$p zDvb0QA4u50ub;7tAkoICMJaF49jk&Qid$Ol zK*2{16SJ3c{jakOF0S}~$X$K0wa@06o=tjC$SKZN!0vPy3nm{2*^J|*ynssh-T4jO zaj+S2xY+KMHa}iP-O>{sPMozuJbCeIfYlF1E%y3%a|(!PNZQYKRG9L5aJ*E4DQ`6VX*Jy{xVTMoLphM~ego>E5?vrx zr_$5w^VR#_W1Z>4Y?_z%JrS}gcoD3|*Bahc^1x8G^S0-;XcwFNhGn-xMih{c&F;Ny zo?(Pfc}(FJf6{3Sxl!Dlv0RdDyAfHx`W6Q^99gpGjgM8b#9z}Fka+UyGt=J|KkQ&# z%?Xr;0K*yPDMVuHsXy!DeK6;U$4%lq>&qYi`_$QiE$!p!w< zrS;flbG*4IFo(wi{DEF;L+1!;aJOMx_WzY)*45k1Jtge?EFVSL&I60;CaK0b@tU%$ zY2D50lA2X-5H`A>hcbc^X=?4k7A8F_CjBctE~R&ttH&qvp2LcYZaRU@pF@KSJn5-) z)UjeKoSXO>{Yryo1zlTlU0i|kd3WjBnXFBXSKi{+!kJv%Hjbc9z_If)il|FdRuQ_N zPuiieQMq~*5NPyi_KW-6)23khWE{ylNU}pRA8HF-aA?dq?+Ml0H(zyv9Pu$V``;z# zXN#||6akEd2kdos6o@w+)19Td8!<@rQ)LfEtxyhbZnwxB&Sa)SrL2o&&ELZE6^ zuRarrsD6A>ohpC)$^2@mtwa_?`=E%35&PI$I1vh1RR;eQrbF9J;{|CC2!(4QEb_NLc9%GOZ@Er^*8%z`uTmj z>uGvcVz%0zsxL0a2R(CaYMK>KcmjQOCrh>Lmho$jd-MxSle4H*1Ej~4^CI5DDNV2a zk=|K|;tcHZXNz59M{vo_Gu^W<=%Y^BwC)RY(mjdGFDXZ8fr=$gbx=pC`TgoQ+DZ!r z9lbIEUrnRN&nYv2;Cn_?Xxxa65C&yLmP{3DuO_1x{ffG)k>Jwz;7VZ=fsnT0T&N9O(%`3XrWtWfe;oN|A z6KgbIx{-ZI3?#+=6IUrEzELqC<5%3&64X57*mhKab!KOINh2?@IFeOK?I`))(TuTQ zKJ^w}dEkR3vB%t@>F!&<|5usNx(z31pY2~^ngX?faEnDzjpE8)!9S=d5lu8Xv20q% zIz}rykyt7qF%R@AYww?%jqND6*EPF>x6W7xa9)Ngg8|Z2y`zx9zc(N2$+?4@gR(Ya z*WzDk;4Smtf*ZoW;JRbPa+q((8ZZ=^z&y2g>d&B-9rA22;8ikV`%YD4U2`<~bJJt{ zO^+R%Pd2N4G(cb;TW4s#ywGpfIux1W)C#_WOL`CTmtEFC@NZ=?c6Y-f{ZneD9B_oh z_wLK5-yv1Z1)HGn-Ne5w4#_Q8;*-0jue8gEQXDYYL=bK1La6 zfKQ#t+HDjRZBjbV^-NAH&f1~xbb1!m-f7-TXM=rys8b6)GM7@EBKk#^` zxkNb_Y>jjTnrJ&~Frl|Fg4bcB7P|bevHf^bUen@{x17R(rdLP2(jM9!k`DZqbJ^?t z8<#(MP~}?*s&EEUr#voWJst(TA^#J6Thj_@iCaf+6bIHbxN07m^?zrfqSP<9)7kO$7x;g(NG7H)|zrMX@{@O>I;$7hr@nQ^TDy~44>B9oC zAweFQQ&}*fwNS*f7m+59pd_UOKJ-xluXXl7uhId&YntftvBdlDeV1k46(pvGFdAN2 zdV!}Dk3KWZ!$|WEInY#=CIU(IA4(KbBSTnnC$>JG1lEKbk$nL|E89bgf;{hOVFouV ze@bYbb;jRicV|_PjQcJey0bIgN!V%_bi;l4d#^JtgZNYFEFh5tbjM3R-Mti|e$L?8 z%0Bm(rydGm?en!C(9{3|PhR+qvm6dX6roh=)n~c$=d)stlp? z6wx}plp>|;)`b6TRJ=qdP%207HPas?d|X!wqXiJpViz6x3MO*h>yaH7Ac)Em|C2$B zS&?H^%sG+y8TGkwd0b@nlMr{Cx8a3@wGfr4k};AIZy+!j*AYkBfA!c8E#$eR=@UPs zRiaWlG-s*BJ8RxrFjR(xw_{b|M+`i^xYCzWShOL;<~J413WSIBFWG2Wnll^ z4$V_ba9+nD<#_UYC^^DQA*-Yk`3`+&Q$VzeP5IgnT^k?+!ESP3$xHcmp{?h!A3W0YLW`j z_j@@KaB3u*+PO)XD(>(W7q7N$izaOEMr_)_P1+@z*5}@;VWVo@2dp$a`nD%xMDO`3 z4YXqNboaLXw`ZvIC6gUn@zst!f2OUM=cXukD`=PDPuJbv)8(kf*M+9SD#YTAfVdb3 ze7ubH*i6;5D7^#NtXbZwLclt8+NeWXCF+u932GeugRmx5H{vg>4e={d0c}N8fJ(T-tAHxzAIF3^|ZXS~{*9mI2E2Oj$+=|qr)IZF?(+hnFQRZuz) z_Oq>x#8`(j;?`b2$?-$rZj`O`DDfQg6K---J{>q&7wFGGyB_Nj4k_3fRV1T1g0qRy>A&zE+#RxGlCsGXB}Ny2Hw+#j(qLhHugwgeUi_bfd&xOh!;{%cYyi>(?7;dx4-t~svKh*^{5)3y9Jcke!SN7v4 z_dH%;jFz{0#IEj@{JPTy+}<&T1!4XgarcwdXwy%lg`yh}PSN#<-gftapgdOpaty}; z!K$5>riV;RGfMin4&7UaYPcUhg?4%HbLe)dPdV}3i7=~Tuz|CRM(*>zRKrCE%1prED$9oy{q@@uu2(WaCn#Pfr5r+Ojqs0ER`0;u!j8c9c`NZdY z6MSnk|6=L16878ZQ#Gt@ozOa<0QVL*79lHD7#r^D<%p=6DbD=mHZP8xxx1(t9o)&aY~V07dLG;UC>1TF#xn0sRM|C zAo{b29c$yw;Vn)|(tR(=o%NKz_4$!BlU;cmWU`{dCgEyo8u@hfd(T^k`y{m03a}!q zAjzEvWeIk|Al>ZnzY$H*1Bc?@>iAIpO`-#@9~TWY&Vnhjc9wM!_%H$tA6d_pT3(~6 zz#}(%(33CSN%*uMXXcZ6y;PEwwISox*UHusJ?W!CpT~&6(Vfr@VHgjRQTRDNC^#c9_HUusHO0VaSeM?{dr5%Cfi=g!9>sl zjc)UoKG*K0(%km8xtu}`Oh00*fyD02+)hb}bwlYTdbaM+Oaf*?Op3ViTEm4|f3hqy zF4zB)r(AxL)uXNXpY8I7ng04J`de|vlp{?=?7WQlodNXjriVbpXm($Tb(=%MZ&#jY z;Jagf26l00I1i>1^|=k9Y{kptDjtc(URjsC!F+rbcCv z5v*f$d4CkRr<~o}x$R}F>wJg4MIXM$8)v0x#4UxxD?28C@O!;ac}SNwHBQT7Kj<#G zh?U!Pa%T0ZX{V?xned*{@vE%!w5N`Kh19*mBEWPaVIBYP1DBzivKd7W+5s_B_nxP7 zS9;|78>!oniIm-vKB}^)Q>R_6#L8gbysYf0_bdA;e}P1bG~?3-at@`r75m6#5%ByRA^dCXrG-r>LtH4ns$ zP#O?Xqb=>N!7T))FfyC*Fv0YQEXJgtI7JPdbp_Cnpt- zs$qu}oB`!}O4~}+xX(r3xs;4>T_{a$Yz+WqB7NC^2bQfoHdPj(>}@A);{xbP#%d5< zXQ|M5k?gNHE~&SRk@G85>f9-LzRh!L%AzJc=|vCB)<6vcrP+|#>^Iac!kkWTzg6qu zN=l%>e)0Y=i=L*ti+3*cyn~tS44~<8D?OakJg7zMRM`hdY*SxK-YL0lo)AYP;RXK@ z-99V3u@`;}IZBaYRBg2CegLBWNPt^yiQg-rFI;LW4=*byo#-#yb4%WmI78|D=Cr#m z#5wV0%@FR|V^{TE`>v0|(aE9#=ZX#?*-(FlTzTrOHCMSQsdxYrN6@4$L$s;0OcqxY z$xLu3*%4~t;q~~h9gdI+YGNbE4JBudlsk5(FYcKR!>0?!xg-`5)Ch}haW&3{p(X3# zTd`vUO@yJQ0Du0Bv961gaxd=X;{K0ImCntDoLoG+GyQGgyb+2@m*#SH zGepTwLOahdMhkp{c(7d!!p9=E_`8pG$|T|ou0Hk?+KD>~@+-_G#O|8F-tGBJGPI9;AGKbt0q%!m)|vpUEP4K zG=RNZ+>Bp3?RgaRe1vOr1L~2}EWGxP2c(c6TZfz^jRst|IZ_!%(ED@y;&ia9*KOM{ z(yQ=zc(S@H)^b;*|d+Xy;1iEliE9b8^)?8mURRNb@9tO4JusV#~= zXgq?TP2SnE;K>zGE5@jWd`OdXhJxEB5uH-gby51QR2N~4=!|dOROB_lC2AILfhh2i zk6Jy_qfXI|ifU%OQJF_{N0+$1P;s{@8q}hi?IC*(mf9S-(+5s4slDh{Is)98DwB(( zHBf#7Em_h175;7aDt{IDMk()0=(vA?;5VS|<=J)aQ0Uv-J-0NXAY;XB-yDbfxE9)H3d`*?g;&rP5;Q5D^$=a7-aHxCg5@`8YstnT+( zmUT*0fH}J}^tZ=ccva@;IYQY$y){^6ej!&}+J^3b4FDVZiK^I9 zI|J~BS=c^&_v%0xAhPt)P_`|M^EwktiM{c)Pea@geN)Lqjw5N@YL@d$8Rb_hFi(?z zWljRYXg!ik6vy56 zFVWPyvLN#pNl!JL<68DeQB`L8cMe0Zl`74iQ`u;orIqTb{Ip?QWpS5A`+DEQ{qNGFj{L{_`}%J>@QS|%KFY3Za&6|%a)XQhYs%A@ z9!kg7tq0;Hc(PZCRuldOy&^2TGEm-y_ux@+B&ug2qUI+{L z{p)M9`%gHu_Kp?&YxJrj0o551+QK ziOPH)1SFnClQ;UyZZm%>`sU5km3a1>xc(rC-~}8P)&^~Wp(EGAE`BcRtth*MXV5vE<)8`M(tb; z_t#x1MyvO7^%SKBNSgWnX3zdk-~BJv1h$BP93>l?n790266J|!Zyu}rxJ=cWmZTk znKSet&!I8OwS7~HuEFkJB{fu`)Nm!YyQA!YWW1A3ok+X!`q#|b>+`NxZoK=jD7J~S zOoJaHd~eCh#C|=&YWPzanKBTmM7eF?`4+mOgzt(ilvv$0--N@t7}G!Bh#Hol86|K<#jKs1Lyg~n6jNvOW)_z zG97fJw5+rl{${tdU^*~Ju_pim^W1dkODOXSA2>I3?a`TaZRuM*qW~}Eq>$GYA(vO% zAsN*fy{s0j3mb6KH2|S~#OMa7&q8Bq7TRID|r!ZFGCwotq@O`=`;w<#k{TXasd&V-E`rZ-o@=E2KsbO=x#bIoP7+dn9 zY&ks{;k+f8L}AV?5zXRv#6R!+hpO%-+K<#*w#VdsUXOML9cW7M*9q8A@TcAz*L!dI zQ?Mcb65t(wbu2!dzee|S-YbSUTbBC4L3Z3lO=!9P4LRf-P0Qey_A0>q9C@{`%7>1cg%8=oeD*zw_6m? zq8bKQE_U_Q0}?Kv35>q;?;r5=emk5fyIJ}e05m`jjNm+dUMh0D^ecdJArZcJxEo`s z04X`2tUh#*t}&_Xj@#RrdJ82DrN^1L)OYMG2l9ZI)#4hIYDx?;K;=uc`96ZZj8&_k zoEZT%GvoUec}bO7sNUJRRg^o;y zOX7=guKR$I!L;n%0*hzfA{aZwm$TRtskfYtDN({3tIp#3f@GxMRF_=EE8Rl>gs=|M z$})g>H9OqXx4^(IzB@x=ban_3YRm@j(ebYULs2rCu^yK!7hBuyBANv#Lpd7>IU5OJ z)riqd@@dr$8(5vz(0R_&R@YPjnC8^}?PeE?TY3xo_oa*tHj3aHSJD{+L=n_L0lKJ! z)H$L}&5ms4#`p%4uA=RsKy4omQm$WohRA_=8If&bxlxGGt;fAt2#bYEu1lm1K`>QX z^5SJhNITeWAt_PWgJ|IW@!@r4G{x_ZGi#UdA(FY9&>d35ySlX%obcnBTrzN`HA2Unz-axAKWEqv_(IogBOKOr zs@0paK_e`S?yTdd8lbz&90*Qplr_JA{9?4PcH|L|ui51txhULV+*8g8##D1ul&IT3 ze>6$*idyRt9h2?@K)M&YsyDG|Rwd#+G-r2NDxNqi<<-wfuwL4Jr2*jz3A6Z{Dw$s9 zju?#_mkAIcH3Vy3!{OvOa874%%iyPZ6L*QQn;r^`*bWgECFzGU#E8*aZ0s};rpq}$ zjerg-pIAQ05U+bvFf}_XYJ6T{IHOBhR>dQqb+PLZ2MB0dtRq#caPhqs-3dd&N;j`u zZLVPeCTEt_HSwhLyRtOC>z}gkqkzb&d0onWdC1WboZk45cGcRu=-oiU5uEgkX*!@o zbSXDHc^5Ziir2C<&T0V;_BpgX5?Gov;d06_Gn$2ud)s#WLeVbLR%1MxO zBt{8^e*CH#BlWn%`;HRjd8PRLZX+#t(qhCI>BzoIM ze1L-t=G!^?e9Hc>3>gc?Fm<&5y-U10okGV>O~Bw@^JwDYgM}B-C(^5*sg;a10g+6( zA23(&$ZRO}bxSfD1#t9U!k4A`&#bq`?p@>jOWH?(7^~=_lOr_DzZ4M}O}G>lM(ia< zY+2oDN4SIyfu%&%wThBD*GdXf!{#oJJJ!_abqKlkkEF(=GYcm(WL?6`x{gU%O?_Vl zGEIp2F3Wl6v!U1b5fHWehu_!qNI0>%))_0HBB(8lruOIlsq-1gACK-E6Jg#7YB+$E zNKCj8`WD9SO3QcRh_!QYhI!7hSRU2$4gE_x@^Uj&uqGX=pf0N!?v)L#&4voa(~>AB zoODm`m0ysTMV1&OpY`%3pJBfS#1pbcAlu{SU;gYe5SQPJvVW4)omrJKH5~J_=hboH zH$V1S;LSYnNsM$48(e*U&$E}p7zc!Ey9)T5>P@i-b$5V9aSeZ=7YJb?r%Pz~*Fksh z6zv)Hj4FMtg%KY{{XO>NfNJw-KE~)}0;RGfVPf@%^$Q!_Py|`-vMX2%+rIj?$*oS5 zrIBB`IqhrYs#OVS8`KZhk*rgAd2B7D6uz#DI~>CP1EUhWQq3l&xsr6FD7$pqA7u)ROWH%RD|6Y#8l%^Wa(Rj9S`r zB_&aVOjs}1rmrM?DL))7p+ON)LdUo>qWDT3@pD!o6~FZp2&)m6e8?XWGmK)WVX1fh12FSq4U69@2rPhJ-{h z=!pKLSRrW3JYB*8pOOw$s^Kibqj?hznmo}1UxMaVjT@_8heIc{jQq7ugd1UhM2J=g=l>F%zolDc)28qCN4L7~ z)nsXF`vGP?EQ9|6Cp9bK76l}DJcD$ zB%wtxeLTk=CzO7>wl96P+i6$j-M_e@@tH+I~V2go-S@<2GDg)=DD z#cu8PB_O!FdTXVa6?$@X7M?Jfm;1e$6e*m0^UY%$Ae{2vh!F3u_rW^1dE+P0GSGA$ zH1oKmPjn)L8ig=kd0Zh#JiE9#_QJ>=H4Rs!DlZY=CuYH(_HTS6@NvEp72{t-Chie! zy=-xQ(bopTI-VSlBZavD33{m&)8&IkRT)@AOJGaDjxwJ*0fsIL(2J6?tM^z?WC%$C zn><^0v}nR1)mp;Igcdx%J`ho@SE8mhUJs{dEnj;G<0<OqF zSR*-}q#h}%yJpbTVAGi19Flj90XXn4I;Y|AD5(FOr-J{Yr*Q~-+qtB-rG(n1o{jq(e2IV>dN`96gx0%STvpIgeTI>Ol0h2AjMeC|&4S>pLqPOW zf@9Xfj38%L(;CzKc6p&E0YCTB%f>ZT3fV7%aMv+ zpE$r7LMg`IpvK1EZMiBt;ifHdHDK4exI$)JBUkQTL4@G<0U=0nUM2st7YT8FW>r&P zYmAygVIZ5hYY+xY!v0u)luPe(XjX1^*GXDgQH6_D;5YUg9keWq1)`W>zMl~Xg+03} zg|j5yui8jX?$545C8HKY!|pR&*qnDj*&X0L&R`aZzvyn(nB%I`PUJTE^sXmtb{^U! zrr8VV2HHB?wJT%85qw%TO%<2imc#7|6DM^^T}z7$cFrZv(~Te30WIM+Iav2&)i6_- z<<-A$It`gyU~7sD?@c_!K2(_)mlgVln7n~z_4Qz@E25)IwgtwExE1{#ad$|Qdpj<` zOwX}3Cx%oVD?Tvpzh{51;q;|vgnv8!S7i;qhUcg@FRu%Dr6f)OvxR4-KH?IG;lcj8ylH6Zp2khy)4rf`Rs$6@TrMzr==#!s{%#xZ7YjfN4xF( zQ(9+Dr|+~zA*H*^QJPO%iStOxpoOk8f5^6>Y;?aex@Zbqh&eRx%d0~yJ%mlpacz%^ zCieva;Q3l$aR+0?MHc7w7HqE2qfQk*Plq1$85PYMgL~rFWyr;mCCinNa0!MO z57w$PzfAb5)T33*$udcikJ#DlJ-im>b)nrW*>pIm17tzGP^!(^o=@Vr`?umZC?TBj zN8orI)>jq?dXJF3n`g49VEAQ`=b^~8Z|Mu#i0zY3*(v!BF;bJOJ_ynW2M}pII_h!_ zj4P<$yRM=dM`D<4yP=ZTOJR}Zx7+vcp$Fwk^5jYlwQ~Q;76kHdTm=@x=SE{QaXcKjXGoZ8hDNMuiiXN!8)B|!xS?B578;Tnhv9R*N=Ma z7qL60U1GUwS?OcXp+L(8<$OXI<65_*V*jDfW4OY{bo^4rvrtR?4O*C`frVXI+F&YQ zSV_S75v>p_W9Zx4Z@@nrO^u&H{g*vesDHf`sEZJ7P&83qqa9N4p$}E${IEH17B(o+ob92KL;2ioV!qdpH zN4LBp%k9Nw-Uhs@FXYWSATEA+_`s7tOItwhm6raW@X@1kK~l0*rQw>STj*P#jV>L} zx3)k_bUh#~2&8t@vo2z5VBxq+iQ4GoAuU{x4Zay;_v`P)-vIN4J}N7;&C+{8NFfw% zlTVT*Oi=n8UkI-~rPH@u50jVza}`4IslWwiU6S`#3&^Rp?YA&i?WFVtiMeIEJ%_0< z(y=mZTVW?tV-xnfOG_th-=m>|J~x_`F9r4E-Md4E3VM{OO&bmmX!REOOX*l!;@Ag7 zMS@LH96>pxZE9{kUP>9goP~W#(YC%L)HymmV?!t)7B&qZ6Az(3ow>v@|9?Z<0(B}w z0`ng`^EvdWkY&%&+$~xRr3KnfMTvq?F$@4ql>ir-0R-l~+pVSA3Z z7O6@*4-LpmkUC&(MSceR`A564$%xnb4i?UNdepkpObcs|>k+g6zz|he;gPU7j+=O< z%Nu%@-_e+Y-|b)lUAlr_0~}PNX7%S%ge6|HdjJs_<^_CBJ_w7+kH~{jE5XL*xTMC_ zK(F!jraE(?t1X6v%(z=()Z{Q?1d<|VS|K)*>x9|RRQO?gnoFYs5M?F>TkigFg^mks0_IV=!EWaaQh8P zB=vMIu6w>OZh$oaqANHEd9$mpm(-`ab3_VQ-D(YH_#@pKw?D4XYc<8IPvw!_pF?@+ zNRT6e#LO5&47rxbh_GapAeka8pr2Nm12l_&rgOW7#W?!|<5cP_K4!~+Y)|!9Q?Y%2 zBfoK8eoM_OnEXzW2)NC%Ym#NV3)Ued_&o-iyFwU-hHYf{Ngn5JJ1pFz2;6FDW!xBK zz=q~KXvlVXU&Fibi$v^itP&$4cyQoYzGSJ2su$%gz%~O$`Z?mP1fe+jQCiR zJu)5^P6`X%%d`f2fU6;|wlDv&ZS!JxA62F#g#~l&TfGBD07-{<#IHCAkpdjew?!lP zGO%Xu(c0Bhh=lYavtoxz%w%^ZA}4xY8FG)c+Vse|1LfRtitP?ixg|Z7$j2MrbWWai zTCy$#Elnw-rG^TeSQCmuOB8kP(opURj5h)f0#nkVL$uR(M$ossPR~m$o{bp1ZTOH8 zdrS9q<7qW)11!8>5N)h@QwtMxai7`;RkddI-)h~XqDOzu-yQz}fMY#;d8Hnb+W4>p zxYK#Qt?VxoURj5YSqy!!?w4>`Ardh>nv#{GI&$lX*}jIx`ti9sU! zuK=W46=kt7-h0;u&_$7*g~=6^;35o9GHgGus#`xJ`mkO;fH?K4hOlE5Z;V)g7Y7-V zZ2QjYk$9Tgx9-`Xh}Ea#Ei(clBDafrdrP#&rcxdr1jdD62~|ekC&x;COXHvuflAYb z8kdTDv)w{uUAbA8(EB3Y)TiJ3`+Ge6dmrBG^&IDUp64V)x3J2089hS( z)J)2p6lxhoTw85ZMD!_M*X!}sp%$jt|Nn!?X>Q>J=+G_&2+$!#;U_Lg#k7YO9qXvA z@pzQ2woF`Rh@5}Ih%mTf$u@|weP;&Yjo1?ns2{H;+;T5XA~Q^ULbA9X=*7BhC?~@xPhF+b| z4yFvfpCR|)*E|b;2;#{R6Uf{jN{D2%>Bf?t^_sePc`RM#lGhdA{>(H83_*a4Cw=|< zf#ghNVYGPvaRuydBI*h#m-9mNl`8Tp>0lJuJkB8xuZuQO*M3TrkIX)f3^vwl z=oAEmNb_JpP)+|VAtr+_J!tR-6I-8lA&wb9fGMz4z63~|I7kcA0 zkHh&SwqwKe4Xe&s9_u5g77d1cyJ=`xtkG!WZY7<}PgeQ6`=V03q|tAl-f7&&%b!!U zbeVrfmVZ%}(nTwvuuZ~7!84Jx_+Yc}httq@kxk{uY!)i`05yKASn)EIFEhntu2J@{ zL!awvgHp|yU7T=-^s;6?+H@T1WzIxh8%Ez;#K@V?hp+8s1<5Wb|0b}-X5<|wHt~Y! zlEoItpA?Ul6eqlU2dJHF+MF?+T^f6ttnBvL+S&!pqP8J5qW zF+-&4XN!kFy{_Da{-bF;d=F$1h$|uK@6VTLA*Cl!vX$D+SkQ9#Gi_!@H~$;A zwRuw%Hz-D1;<0L78#$E@(H^dn!`$EE_5t-a1TTV{0tom%sdOmmj&lY|pSs3qw)of8 zSRE2MH6jwY^q`N-7!QH-B3Ty5T`_MfavY=XxP!`biUBtRD~;25!n?N z7taHKcx3(sra*cuVODVdr@5i-{R-~ZD{)W&RTJ`Z+1yXElxV+s1P5L(GPUgI;9iK+ zK#W~S=5EU4^A=p-OfKu=s4+;f{J<5fVvv~ z(76bG640|8{;N#A-=gE#H}VLu%-ho`SlWxh<%=J@F7mUWMaAoh>)O?dz5F>xDFpG= z^icNK2Hl_Og)319AbWY(J8n?4U@n&}Kl;MQ<)vOZlcF7;p*eEd*Xy}ZQN>*BCGNP4 zbN62gt!#m2p5_!U5H;q~Gg}_b;nH5OMhY;-z*prL&8<68_Pg_e0^;<+s?IQ7i(73e zK`fAb_1+mmcsyOi@Eo-~l9WCav#avtYGetfRsa~AsPr{#P4B^SM>buHn-`c;;jV7`I!R-w(ZI!N#1&zth)ti4T~4L!nArC@ zHxvKf;=8oMcO)TJ=R9xxa4=0@uOUyNSttO!aF_WKr6X{;G8xfp@-=nBQueU#OZ%sS#ZW=U%y5iC@3P!sge9+_;uWP1?=3%PX zjn3bTFYqYbi@)E3?g?!~_Z0VKjp9Bn-!D-+CcWpK40#1_kv0HGzyF1^)Be=}NC zRWMItgWwH7OYiTumGQU#$pcLwCW}FRB7%5RwPt_872&M3Ua^$|0pMk7aRDuD0~D-T z>OVOya|ljnd0-A#h+*#&oPmxOsS$0G!rqB$4`N#&Z}rmrnU<|*DB(?p&?bY;(U{OI zhqM#E?`YDZ9HLZEH58*&7ZW7uERmXPN&k8`X>rgY{-{Z%HS&T_k)6)N zhkZ~{`8%aDso>=JgHk4HhB;I~*6sM>+E13?#GkPyi@|Z#vs0pHbFA^(w5(Gw!oh$`uFMfpDcx=E5#VFJ-|sV#fH2^WTQ%ud#!R`9jo22I!DzC_;uE0 zNbhYa&}J2cKq#0R_xyiXY$n@n{X}h>+n@WxKa#ct;k#YAuo{R z%?Wr3%i!OfrFCbZE6qkiG-!{|PQg6XT=e0PGkHY4&LqtydSF~}IU3~IXoIHmVD2<< znQ7+(Iz~~Sg+GBP-q?Zle;Rc*d39zF^ zIojrSk~>XInx?mwdUS%iWS$)Z(WOl4mPTtSBApF@gY9g7Dq~GEGE!V5?;}^y-o5%v zS+PkO{=G#@(8uts^wQf_6xWIb0eE&r!GuYWi)?Cmou$V5Ld)N4KR6~T zzppFw9&2}LxO1l2*W0{H-vdgo%7P04n z0$6^er_dL~ye%@<>bTn^8N9!#RUVdK?^lT#(7 z_`R48=weTU#CcRjJaypzUrg3hFV>^+ZYRnjf8G{Fd6NFLnIh zS_EA}95^2>S^kpR@&kVXMZFZ{Amy2Xf_jObyGxYT5E24+14{#;=NNelikYZ=?Hp_K z5ND>k;=L+l7JM=jT^gq=NXN>7w`;E(Lci}a#om_?rnm$-o*mBryS>)-7opXxFZSwf zM3s4dvMJ#>CL}K&EUdUf&*@SO&ZMJ&=Yphtdzd07>S^6SmQ!DpiEY(cop-5{nEMA# z={3Un->|=GQt&@J<$r2ZJho$tANM}4ct1aMvts1Xf&Yfk+l8kEw1QKsZMwkoapfy~ zp-Mhl53fzynx&y)AejQd_Z{T}HM0zUm&o$ES)cb7KzLLa+8eYl6<+i3r zTB)bbx}L&{QDxeTNB?x}wAS7iPIZQkYO}6daa-H(Niw6cI-^5J0{%zLK1ch;?;IF* zTEoV}j(yWT`h6#?e}-P~W^al-wY_RPvNJGHN9SC$F6s4y+V3uQxfEskj@*)6I2|7j zjfH(D^K4va@^_Y+`4TP97f&!S_~yvstTY29$EU4gCMBQD-i|JO`Bt}odxjj6-K?C| zpKJSo!pi28b~OM#`swX+sl#`A2JKhlPFmT9D72?+h+Mk>k)i#PxhF;U;M!33nNezw z6Hpgba|bxzi6lQWrPuce8eS^9%z07XSn6KL>8aq^vRC~K3pq@_vD6u2gxbxE7}QD- zxWVqXW)r=?=|<0OPC3(!!e5b5UfsbW6(lO`^-l^g5KjV}%q$^vNpD@HIt*`+7fB;8 zZXAm=Z!`~VhvJonOmKJ>VE4tWn;CrxoYzLK4G*Lo4ewgS7EDjA9<%+W_~rhHIEas< z-&u?36=tuXEy!md1?N~xFV~!z8I@D$xnLKtCrp7J<;BHh-WkgKr0haaGUUHFH?e>> z%KN#7m}H|S$_9oY;KwY6AGnIRu9yg1yhXg-B__$pY8}gN<;Z#tm9aiW7mepry(syX zp9>agR^f~qdk36z}fU$OAc3wJq zcqb}vT7PawKA%y(aL3lUWsxZ+dVTbM!P43Ijv>P#zdW4tX^Y~)c&%Zcp_-aBXUwK~ z<`0_Q@9zJ2vF5qSXQo#FlPnC$UmSnb66tql(r37TNl@*fby4ob+_ea*hc)~!ui-U= zvT{@iSR=P*H;Zw?uxmdzX%}QLD-}5?vmf`+>o>O@uR!8Y*%z2xNraU42Y6@dusr!58#ZKTq^{-)wtHs#1~I zU@M>7gNn{OT!<)U4~ z_qHcA>~{^9=IDqEx)md{#Y|GS_0JxKMKSg(?s*a8bU1)|C;@eC|J6%R;9`JPnUu6*=0kryU;fI!z2~ z5wG6=97LYdBa5h)=#hh_;xiRy7mP;Ga|=Ay*IIusJHX9w)yQ*}2hkv1DKnBycnDIz zTJHHu!gJ@u!0A*Q>)($*Ty_pB`v7bF3p%xH$i{a;&1UgJUu2B!t>V1sn4IWz0cHMo*UaI^ z7Yms~5>Z7DLbgpe(guSmVp4z)%bY8-y2;6Cdo)6skV|aCimCYnAUw*|;;n zFT3OpYG^qlhUINJ!*u9{lHOO>PBUIBnuYQ`Ngi=FKUZ&$c-yUahRw;r5Mm#EmMZDV z>H}fq&F3_?Sv}7RD4BIJ?NTW|?NL>*DCII~4~>c581-0U6IS%ZyG4s{4L^-!+^85G zC_t_;S#~{k=<>Vhxcd{^bNh-B{~jXubc)smS{`i=G!VCF?+8Cdoy+eoaU#`xCAZ!oBrx}%`DmL1%DVo`B}%^UQn>b{q<-tLx#y!={{LpV z|DhtJ^1xwiY4knnnw6P+_Gt(RA%1|q$@HI1!IOtJ(!iz_q{28QaAglm}Os3>fHQr&6)X*yxx84j=te-Aqz(%Lz~YIu?+jBexvqx!bK5N;0ZkznTT9(r?U8Ap zXE++)jeM_-S=)ZOvE2l+>2k6aoX@fo-9~cm$<@VJUl=wS?uF2HcgBBwfgWA5SUeSD z8?g6stRCDBnp(@MjC6rNS7kMxlqva7wIo$Dbw!GxR4VkmtIy@TF)FlN?nM+WX z1LKiWpdH)!jhCi1P~K4WJ8jofOYQWn0GBLVQ|N2hy9`fF9>HBe>r zpRM%IwYz*@DkDi98XR+81Y^hv2FGbRw?gt#&g-d0jrS4dL9cMP?M(EJFP@r)KAGml z1*gq!rutb<#{Ej&NY}b5mP6(vW8f3_TfWO#Pif_$uwdDezy(A9i8@!&&0P|5NL1$U zMQ-*ls2#QAr94ke+H?Jiue&n8aTkm*9)kNUaXka<4;M#ayKZ8xn50+!*%AK*byc7m`@;ov^7>bBG=tM32m= zlGeKthWz~}nV%;=8XgejPQr>Jv=Yz=2n^Gnt+(d|T8yuKTIL(jY-uO!I9P2JPHh0_ z52m{I;k~_id@5b@+m_w*x%^Y^8&N{2@u3ZiW;WTMCwX>%>3g{dGEm>FL@rSUWpBb< z0}cxgOeUn4jXi-u48yPAP{yFvm9m{F`9FjagKLqxl($$^UzlD*4PUmxRe7YK z4?ZFBW*uGB0L~xO*xy6Qis>1dy*?NGV#83+Z7uK?HCVrI<`H@aL>_DG*KU(0x34Z; z{<*}bhVui%_OofXp{G5~awhzTA&-Mxri)Kw-Iiqs47ka~6A`+hPQ-S^NYoA8};nByB-vmU@$i8wo9;v6OH8=KoV0@I)iKL$1P>k8d6Y*;v^ zzdWSzo(f+1A&7Uf_5JFYO31-Ymw^FWv2|+W>8E*`+;OM`rDn_v2V4tk)0MPy_JfzAT2|KYXe+%3~<1xA&ONAGJ*MkF zV{`n*=6svY<#vkJ2VsCS6k*n={vllGcC3F_xfjFo`3V*L>-0Kjl6Ls}p_(4k@xwmm zJFBr<3mNWnH~|N^&QalZnxAuRB;htss`H?Z zYu$z@^5F@9Hz~_^HBjc9>z`@i>+sD@{caBDz9!$hm+Af$kV2dQZ#K1Kd2(Nv&A`iJFpM*vjnx%LTJg(Ts%RQe^5zkglAQ*tcFe zjD1S2%pZ?)N6u+O=eWsrdMA@*+;#M+EnbrDxD090fwS~EOExhTHW4gl>U^*cF+e=& zL5p@b7fv?^t-Tgd0ixye+cN5Rq2ON(#7xc5SdAwn9OhGSZq~c=hba{EvJCW$j~rsz z`}?o$Xx20Q`36OGw_>8=hsVb2Hp>3)-(6@&Ra3oKrQogPlIUk`Ph?&A%{!h6CSyNc ze06y;r9{QILq_M#K+xdC-`?GtE!ubT3&=222)3=_B}(SKrha9(p#F&9`$&-=q71O(K2TD*{{%NE4Q23fnVW>_!-D-V#cOZ{K zA}o&o`8>hTNcihVG$g!BF=?zhdw7)#6J~v3^Y)C_=BHO8z(J(FKXbDi^FPCsVl&?C zI~vqP`su1a3Fb#Ps4`Fth;;bb;WRAZ(iPQ6hi#1Iw z%-8L-1LY=RXSzcWcy{3&HTFI)EJ8ISgnCc>X@a>3+Z{#3fPsdB4U-l(5DDbp_LYavT#o}>U% zubOZ8RgX}H<~haMC`Es5MJ*{x95LMv*P&pL>|Pe9#Fg#M!9cIF3f1-q)xH-9_-h=X zp5#`sZeaSDj~sYkQp8sjC^(q6(Ki1`%Gpk-*$#<%W#jQ=CDesCsuN*dUek`jH$EF} zU{l24%f*L&Dt;Yo%@iNkq#SDo^fCi>ZkG==Bi@dfG$y0|(=<*NJ%+a5ev6H^{bods zosM-POutw69k6kR$AA3r8a3o|qR+&pX?P?8g6kd8V%80@lze{sx z5VoRhw`gGtBB_4%uxjkor-}ZX~eiizob1kJOL6QlWG-5fge~IjDuqBCk zo5$>KH16DSVb0--51xx`2*;(tUYw`ZcT3UUOiZm5dDmM(8gE!8(ZU@2UZZH$@`pkj z@1Kh>Jt=A)wgCz{QAxGKA61=6Q$BG{dcm51GP@Pf@)-ZiZ-&2gvvu`z%r0B`H3%@# zLIgve1Z&s~{#ZPL{ps}Jx*G%T=C77Bv23O)^U&h~faozAW7#x??{5+i{}~il)|t{)Sjfc+9FuJ)7mSY&Yqc6ExH*7=7KMmo&SvQ3r0hPz%QwPMYBCvaF*7Lw~bJAa}JM} z$Gk0^h*o0%z%P`clKCfl1Of^(ub8x-W=H{q#-W;YM-kvp<1w_ioDrSQ4f8*{2Q>{j z8*_8cJ&$O=V)r$0-Y69^W_X3TU$>W#ICcWNU-VAxDf7eAbUykuBS{*!SWn&tbEpg% zH|ayvk*NE8e#wm__F}!khS6beGd`v@nag4f-+Jk~^{P8;=y1D%GX#tU>`Bphv8Bdj zwD*%r`nVM*tbiP7FZ;~@QDhoEX|!C?GsU#Gc7VOd-J?m%gkah16Y}gqS=~_(y$2c@5yqm{w;u zwuOp$KFC60k=fMDxBkGN@k*3Fj`-@+mm414wrhc#eR9?(bsYYcyz zw_;THvY}x<3pEWFWC-Mi6C2d)AgWW+hn%p_&Ae~gcFIu?;-8`VIPf`J0@h#&d1|0} zYUL*s!_ifzf(?dZ@QLCBz9Wyu+3>mGYQzKivRZ4ceTp<-SEj>8@eP<8_kf?Z{9L5s zP6=UV>)0LPA}{!mq)+@TzX4y5NGux)$(G$3#E&Cr~+8b_ev+t52I-lvO8vRTi%A9G@h5& zIP2hqKhWVzu%0QnuB7r~SAF z8j9;9?!{;$wt5)cI?d0;rDqkvYMa;{^a84W&x6ro`c+wwvKrk70&PIgds&c2YQ__v zq!lv(ycLpK!AWjnp|jsYzP7q_XsJtkHT(B53&%EEUcM~sAEf!oBUEvqyQ#GIoredfe68CaiU6Ff=U-N8N@GTxzK6MyrrHHSJHLBp9*(1k zQ*pQ$YOL!<@XL-xf=KG!NKL8bb-Ud?Rb;@aD2nXl@5U7Th5)rZXPRk!LvkID*|8-b z2$b8*Eg8t%7yG0t^$ha~*wdZv?kADV$0a7-^N~4Py8oz(__n1MBf~%Bz<~2+IcoZZ z7a88j#Gccs#r0r?GJof8Ohe$saMHd|P3r9B)3T|vaQ%}WS;g|mXDBnTq=m42g*H@G z`ag})p90Fee*p|Nr$4mJ+np(lw-Y!9}^dbWG4!w{h>K z5bQ1JdG}{|#GWdNJP!~)^CQnP>>3>56zkLKUxrMI-7FjJ$BS)xjO}^-dmgHl6Sr`b{`OlAHX2yk{10->P%SVVn}wM6WS}5i zd#xzHukKFpMu1@MuIcCOa3BFTx&Q&0QtUbd0T5PvxC~y0*QoiRo50J}(G=%4KH%;} z2g1C@B_J{u!+|f2>%J+2LFJ;@o#1)fDrtTQPO{ruW(P1+K5%v-yl6O|N17sz!YH7V zn^2qX<)_Elm!|1UBDZ*H`h4T#9z&G?f$^(7!{jI_axkcqg)AXt8GE0cmZ79Y%xCUz;FNg8u&;=iQ2sbVX zCTj~{@VXl_YEvvt2?~*}T3ngoA_t0vR?{@Qzi0-)e=H2f@Q~e1?6&6FOyCc7?Qj*z zS6CmNd6oXVH6481N6mdKsB2&_dVDlP%6^r;>l8>(rNlT(gjVR-5JF-t#53rEY*#K;I-3+1w`k03&#o?hxvXbl0dHG=y=z)cAJ+$6mY0}E(uu5VI^LS+KOVLvA=3xf z)QWBN-aenr7~XK)Ia8V;B4fsdO3g@+-jfWB9a42`7P8m zD+nxB&TMbp`Q?%Pv=XHdtOgdBDm~CfVb*8kD;Fd%ngU}r_f6tukfmp&z2c;Sf`#61 zWYIeR;~PNrp4Om&?H@tyMYZn}F9(<(YKn(sakR5s%I1h+N>KLdG`d3a%qUk(x&FG%m%?BrY-Yvx1&P=hgwOh?1fmHwg=oF+|fLY%ru4~JH?7CqsJYd%+}Epsj=Ir zOe;`E{=w3%kXP?-4#saPuj?iKvnmYLu;G6Fid7Ey6UA-}ANbAj)UB8c)_!l_QU(*l zMhgLVf@G1C925p3Z_{^(i!8F2MKmYd)Jpok58@6Bd4}?zv^s+B^V_6@`S2F^d3W06 zs3DD>UR-4YD5A>Gui~JwO1Zew@E4_m$X=y9>pEx_^FO(yl2fO=RigqTifvc|6L9h5CqyK>QlcPUPV>))IM(4rVz{pDasyxH@ zoiZ>p@wjWT?*yWEqG~Y<9q1g^#p@JaqK(U+-o8PwqU_DbL4yoNe4$knZi5?hwe4cp zUT2nt6YU+~OT#+6+2V54*yCTS2M)}-DK(P{aW@`!qD)5*;tcZ~dL{J1^Y#JnO#1QIA|8;APvw^`aaOcN(SkOx`=FSb%+Q)))(uTgqb zMke%`H1f-el9WH8CfWe~HNbiK!==9MET z_G@G7w~&u|P?EOM|80cfxjLFQIA#RLg;y|Z{JEY3tJS~0;5D7pK(=VC83^|Hat9R^ zeGG2K*x0d~pWwQy_C2hu$(hlwZJkdJ)_nblzl~9_WMU|sshRY}Dd|hJ5G#we?@5nF zCdT|m_`#)w!wu;jII546>v@EiD3zW$1QULyJEot$>7QLi)b6Es#y`Sr-5%_C8KO#E1^Gvi^0_uGNr0V*GvD>Ss+V(ZYQG)G)SZ9f^Y2R3qQCx~1-Ooxd5bSQ;=oU`h zDBgeW8+UWkF`0x5--h#%RqZM#+Sg?%9(gYiOr&sd;R6_Ywlb;*^!57gd&9}+dsL#0kj*vsf=KA@2dvP6IMDd5NyJev^*mnck z#;Cj(2Zz&VEeU4pbnphtycFEVj}dR0qY}13jEmhGvOUBAHJ)bW#P^ z?>=b}2O?{$ay(K_cxC;HoucMGD#>Ja(1i5Bvm?ipr`o78D&z=zYvGK$v0_meRr0=2 zBzuzEMq)C4XvyKc=~(x|VjOHSXoRFG4t+W2Ck=^^eT42sR=_KYisr|1oNTI6Ale8o!D_ebW$Q zBrT5FELdu<@q@`>jidcO7g;nQURq4SdkbzS?V8S|>NFfuQDee>xE-ODdL)FX`;rsi zMy)FKL)828k4egC9R7!)9>S*;O$~#yiAj_)ewZgU(J)wkDU)bVqg+j`5oW6eNkfMz z)n|XUxHbGpEL-6}HO~_&vxX4qL z9Y$+Pj|%nwVN6JQC-#?TOg~OS4tOcrb@+pCos++p-@0aQdQ^4F9=Q9oK3e_rIMzYW zhOsqs6*Lqi^(=&`D=1-{$u>7}se@s{Jg|!cAy+>0vW;zNRA*w{zUwU!M^YfeH3N9D z%;`WXBZ@0atgAj18@%3L7JES@vR%aoi{NXSsBz#zp@A#>btru;l23!`eKaAYs9_E+h&6d;fo5DR3eM>XKTGBA=LpY`A)wW^$^~tFH z=SIqs4^*h1DObQFR+DKiPU=}o-Kb#i`V8`yYwY(F4?PotR8y%{>rYV;{#VwgK5eCD zABwz*yPDS|2NYbMWGEeMRt!}iNMK~Vh8$m`D$!6ML9&mITcYg1_b6Y@L^A%Oix!)Q zaB$(GFIGL(kH`w5m|?lFsXJfR;`VQk{@irf_Pt>UJPC)~6EHT@h@j}m*FLVKcJdM^FM?Z@aLOfoCVxS>#?;Nd?$KGU&JHMjDXrw zFzt6yqcS2|CuP!WMga~pl&>-KP5Mj8n`xY*t@I@XL89N8VHPh30s^4Lii`eE-Q5_s z;p3TJay@8~;sD2eSYl!U0-|0q>Dt8fVgm-I%|93VkQ$Vz9X>B6RrFUAQ?S%J8;&Tb z3wJK6sM)r%Lp?o!A5pK5M;iw%A@r*PsTyUmJF)?ABCBh|31EJk3ukK=SZk>h@A=II zARq`|S@z#(QOk|gmfjzW&`CDH_m})VUr0#nJo2RF^vG>i38OkNwxiz(YO z5O1r7KAr{K6P}?IBJMEpsXD`T6C8YpH0lPAKdz={$*zg{NbtgR7L(4>)<<6lhY{U^ z?Z`N#RH9*;JYWE>3w@F1Uw>_De`&p5p zWuPFI856ZD)sLC5My1_zY^6s*aA$ye5VmftrkI7)e8s8cMY59~W>!QV;yTf74S3B?#?R~DPTyE)QD+Rw4rCbEFYlo2_2rL2tsMt`lt%?Hvav8*FmzRf3-sDK`b7Kn7-)48~~ zE`lwao>FHjnX>UOcTN^T4{JCgYN)w!LmQv%zDs*{SKB0P`K0)+jZ&RqLw1H6+h5HD zH034rqHfnq=1n|WeL?k)SZPljPh6hyfG;VV9d%tSGYU>nag%BH>A4yh6L)s`lj_I| zT{NVZm;74IzDxNMkhiJHESCfIawobo4OAWlbKz<#fBsB23BSn*K=cOi;e=Z0u^Odu zRg1>-+&CmV=+`~@HX!!^C)*Xke>LYW$I3^Mm#tl^DJJtJ#6aW7ouJ#)F2fxaF0x<% zYos)j3H+Mov}~mbSJbd*mSJAf;;)Zo>Z``-uDdoX%34Yoyt0y~b!rV%2I=&UlJ1wq z;c4aa!Xza-b)zJrLb4nKe9}GZYN>v-e|mOW2%OQFg(xMf-Bi$bJeTUs%+^(k{_3p4 zUN_d#E-S@KPK|6v0PgMh!y@Qf71RVLS+ zc825frkfVe{UpWo8~(pd0o%E=_%;-x0CgE zo<+50%ile+Egqq9H`uwTs-2sL65lB}Axgk$WG-=A$Ao62L%xrtZS449a-vuM;~!fd zK=@_x8_k!$=+Gf?Hf&r@p9uWvM6{<4w3zC$gk1dYYs2{3k?ObBlZ#T-P4k;LN!-qj zTOy`UoVY`d=N~C9h*Lz~HYP;!CEhO_!H-n(3UD->7v;pMnaiG5=k~QHt7dSxWTDt_ zzI-13P_ZbV8y{a%jr?n<_tpaVegs(w&`kU4o^ zYsz*lUkV~jxnU5bp|!b})in}KuL5PP*X<_lDUYo0W_N&VFV@F}d}GDg)psJ9rsHzz z-4zsw=8k-RKNJNYDEY&s>^`#;dJ9UF)UkGraW*^!ePEDNSsN#u36bVTS|B7SizHJo z5w&ZC!$|5iVkxC;FsHYNg(zJCuzNu6Qj5?!yuB(^5|1@4n0n{|?~~ACP^pfe?l{<* zJLXm78DBf5RN-s5CMqpntl6rAv1`rOJ@iW0@Ly4LQ^Z*gX?h$m?Lk)PR;RGvxO zb!$jgn0m#+T=q*j@(so5ftSuNf)3;TP8N1y5Uv|00zC6et}BUGK!%lezs7HVlaAy5 zC>qVDw5(%5SX^;BZT`WH;Y5_Cjc6G_T62Y((0q;V)ji-Qq@n;tar*?5!@F?1+JyPh zA>)DE$IP$2hLme;PsDt2j2vQz4CJ8PomLF)%Kw(YSkL!H0dZQ>vgeB~+($n>%SdvM zxnzFjAZZ}j44*_Bw`pMBXN3I^DcLZgD(FK!kc^ja%*_ZdZbEvWqN-eI1_HM#W2pKh z*%v)3$>&Qm&J&+RGK5(2Ve+9T`+kI%vL`KhX$&-tn9vywg4`-=Y`JSy9Bg<_+1p=I zo~C=ZVgpfZwJ4`P43SkEvC`fs2uybSj3lW_Bjfgqetc1g>%W6#-Mo8WXY6MVigM2b zC1M87BCjOM_ma3YF(_4FH6nTOiWX-mY_bkD%>xd`)icv;4l#9%@T&B5NI_1x7c;Xb zc|G_NRnmLz!F4!kC>fO`n$jYeg9|#9gC2qufGf6m2_b5u6Yz_k3%l7!cLCfT^z2|y z%pj>X8Wo!2mnF^WU5%!V)L2}F&HS=HJ9{Rf)>6(|x-Lt`Y60_{VBdN0bpd;j#J(;t zgtvk-r~a_|$z*4L?%*L=;uc3`BqmLehpddva%wA4adXfv509swT+KjThNNjioZvDy zEq>pi(tf)tc^Jc!+&o@Wt3BPXw>_HUYZQhzJ^PoAD5gK>dZ2)7Pn-25#k-P@-%P0` zy=*PN&ed0X=Jp}KX>oAD!ItXHvuxfCIxpBcaTzc|hHI!sJ0_Ro+=%?I#-JrTvYkcd z%~DHvu(pHdP7;^ZC06YCx^pGylw1F1*S+a1cfk3niPx{jQ%rX1{P9KAxBmYA@pa)- ztm=20G9|J7UL1I$<}7a|dusv8PVYKXRAWi%L}DBL5Q@1K*oz^mOH?@LUC3)%O*usl zraeLZ7ho5v;psIO*EF@#R2^-gmp#quREGvd7c1V@ivi#ae)MsOmPvouQ2ThY>I1-` z198PX52bJKhy)VgpdMir?QT3bIX;)ZHdGg)fiVi~g+8VzhV(*eYJTtSDPlZRY&djf zkdMNO`cjHj?d3l@2VZYKe1uk7h$W<*^+B)5f>SzYjT>~^{lZIZ-JOP^1?UdOM-nWW z>A;N(?D7sR2|?6e(f>97RW;K+3IH4EnYJ&V&PV<_RBZhYI%&j)(F;$~%ZyCg?c2UKO^EKNK zM8`OcC24V6-LiKAIZW|tM7+O=d2%MIFC=!+RBDj8{U9kMU`IEZq`pzFD?@wYN7UiP zs9io{TN>ieHO_k!XZdL~mAm(Jc=y+*-d_rBVh7VUAoRD1Fkhm%WH~nn-oiZgFB?Ie zxbKvQI%605Ir@uYU7?#7k3uKc@ZHO1T%j`HM*!pf=sCwdTm#}D5vi+fHw;5M7qcB2 zlt*7PP{$;l$EX@k>#5!E%iz~xK&7q;NAtD0I9x1lYA&WKgg6J1BGw{E`%=`CvZl}C z#SNou`O8p}gpf;~*9%Y&F74Gll|)Rb7NH&}EO{xki_sZMf+5a%XeC-$E*W+@$>X7n z;q#HRl##fPan?K^`-2-kz<=770h zNanmD3?vy1IUDpkr!iNtJ*;A}tv@M6F)JJwjpKu+@n7jl_3HrAS;i)e6h;4q`q$?> zs7v7`JUwf;A%^cmRhr(J<2fq87CEcwZPw|^^m7w%}(@l^0-ipmt zuwjxkdB-z!j}^fU%i`jib62AZ{+7qw;+Nmx0-5F}@Z!D{NM51p(<4V>yfXEy!;J)p z|JGXCMsW_xSX*apR7KV?jqx&FFx*`GT`ulvtb zr8}CMQAAdu08-%Vaj^RfWhc2A_L|PqTv>HfLF7&rS(>Hk0>^)_XBYqkP)mH7w4W_) zet{^yyx{#yQ~{Yb_>}M^6Lj)Yl2SD66n2_)CJaTc1bM}`eFVJa^@ zNKab6x#S0dmwgWAOJPCs**#vG?3$$>=Ad-bi=U(RE&~MnV)j(9xhXTuLZRPt(Gn4S zqK@x8pR!Eko_0TwKUH)v`Ra^wzt|-WNpk+<*^zh0H?t17-k* z27|kdc~qg#2pCdwkFxrI@$Df|1B>< z>tz3rqw@}@`hWlUCnbAkW@M9fjI84*+c`#LW*w4Eh=XI5%)`mf&JmeqWjjuUb0X^) zMP@lxhr}^Ll;8XNyDk@hI=sjIx}W#s`MmW5)*}|6UB6Yb4Y3Lo z4Q8*48@GFWjRiqe4LRrfArI#xwTTKg=CWn9Zs#E9%4ReX*jZA2Wu@ErYpq`a zML9K0DSmE!GDmBMNWI_4JV`-2q-ElftvEiBMf} z9Pi6b6vNkPg=iD}^k?AoZF|?Q;dA!Dsl9Pp$BRvKj$NT+N{<_^B0`FAdU}6Z=&lx&BZ)jZ1kED~8HX5J<}TwQcyh zGhu{2bU140!`Y~INyqaCv&}CXRFfas+xm}EQ)Gb~Nw8o|nF>IRQl(tERkyd=f045M zJ=KhJ%?Z=3t38o|c7qf1pM?ca>QOWOeyur8ewoosjcCM8(IrnhRT1FGahoP#j9R5W zwIlhX|2G)rcxvpI9eMn^C1~ot``Ri)@^>j}t+k<$7s84xeOXTD14C{wB(73zpsBJL zX&i{RYMlwm;3(3`sb``3O<(QzJAdzw$qAJRnBF;)UckStu=*nR@@=M-l{rh%O_H&DVT5`60 z<%yaf7;*VByM^MyaT`pB+R{cu0I^P%i_;nu!8ho9RhqVn9F|pT)$7rghbOf{ja9SE-tr$s+H2l?x?5-(1 zwv@D5tvtpsuRrW$VlH7IPQ?7cT>-%jdorIR=|q-{u}qWcFDMUAZWu$%k6DE2LI5vD z&I2IX;IY_q{ZSOR3jdq|NX)V|)y%Gg42E}yq63_^>@wpxi^7~}S{`Nz@>^z1R#$8P z*LdlY3dLbYNU%d3U_YLQkRoW7=ST$ZL7WFAdu;^7*m->PY;nb@+jrUA6vw)J;gk(b1LFfIzJ0zPZ^La&8OlqTD#J4xwqGuEfU&0yR+`d)(W&0mLoLbjb zxcb)@+X00)gFoJ`Vy8YlEUx9vRmCt+aOq54DYFE>co|IZ|9B+|uM_3>#3}H!g4#+y zYoZX+f&=wWQR%AeAW_#i*$z%4+=)W8Bi>{z{C>~`D>rCU@x728BoPd1DYRuY!hJ5+ zx+=QtCJ)*e8HH)*`|qy!Vb?%lCfuFk4PmgEH-AX^8m(4hP1N;!+*+01 zFQbnO7d913l2Ncx;=e%luI7XIp%3{3nSQ`-k)dH!5buel@Pwy(ZEF6`llPprL}aYB z1%i2f$1)cTLi*OdMdL@?V?3~;S;HN0OB+9?6*fle9w_drd%`QaxuPO?_&q@#pT&as zs-m}x<~ZTy`4=GkZ^aMbjr*Ag!fS%^#DD;o)LF0PIAm7}pD}j;UfT`yN+LBSpK}86 zOV^S}jPI9Ip*^}=ayiHfi+5F}RhR%z&VYqY(bDQ}iv~kOsEx>tuklxXwh}j|#Kj+y zPScTn^K#kn!R;emNXu^#cH%dIu=c;lB}$=~@L0UwZ9OrJI1Kk$*sQ&0)i_@~`j^-W z=^P-dyZd}^;L+?vR_?&l2Iy_eCe#8w8`Y(>Xl$)bYmAFUD(bCj(O>WjYjHhEqz%+2 zF*7n2sx|1Kl@FM^7lh$kAE@Iw8!!4snC+NgmPc35E?}f1PwyU4SgX49OC#rMF%#AS zHYwB!(V(V7`vd}JditO6pZFn?v5(sNaD^MjVd6WYXT@Us)jp?8h07;TSfhTwcg`OU zy*fd8y~);T(QF|0gcVftI?3ufw9C+YS+lr z@M6W{<@%#*#9}?Y|6oc-iF*-95U#NkS;adg@golfB&tljMxs2^zm)6AeX=!6EyTxP z&rNr?jughs8c`4j;ekZDmMz)8;ao&bZIVtlQuSt_1BCGCI(tgR0Xx1+r6zjij6V57 zid;Uf8O~%Pg%Nj}$(O;%@0x(tv7&I}YHXQKf(%@JH0ejWKK7!4-5U6#1OjXzcq%Qj ziN#>dtAR%o`Z??=)l)}+#eiXV(wOES^X-cU?rw2-lM%PrHg>@R5_l(6;Qpn09^-8F zj_WeTGOyNw;8Omr7hMqel(C*7 zBt@oOUt~UcOp(r{|9MH|r~;%TmjOt8M9#+7yCk2IYP5ATN%$pa#+u2lCzEREd6tgo{z|yyoIX{Ni!Z-)9I> zQCHNG`#0Ixbo|IGKd?yuqcdFu+H(mnz1YbiJc{vSD}2qBP$AuZ{m}LM#v)&vQ-dBZ zvOz8Li5ZkDD`5S})VLn@Hkt;!b~WncvEhE9;X@(}wyPyd*1E+L1-c#=lg}vFFV!Of zfBAQ4pNni#w45bnl=Ndn8UG7ivAq*il%-)L^s9L6;4pRZ!i*hs?}H$I`f&QFyYR{= zTSkMbh&-HrMHWWlB}>CPuLn$DJ0n{-X1Jy!spZ5Z0k{AXAeS#dsf%7V{AxNc0yObj zftsb_?B>Y}pMSls8b1K2a)zSls2>5MK*NvIKV{e7k_jls;tufLgp}EEfC~yeHtn95 zGs5+V!!4f4PB`P%@K%&tl;t3(E0}z;#b|wXEAbPb5iD=`|zo z809ofRIttU%U!(Qu3re_Bqwv?z#Z1Ewhw|V>=UY5O)jyi}nBUWKvHg5~hS>W9%|^Z# zR@WY6=zu{I{tHw+8eI6W0Mz#A1iMt8?+XvxfZlSdzR>zgW7;svZ^U<0rW<{QfCI{>3G4*|^KpE^K#HG=$aiq{Q33fnssmOKrcn)?M2 z?HS$_EA2?WdRg~0lh8-MHXPa_M#sIGK1yO}QP%?*&5n_te~kh1@4}K_4)%#sK$r_{Bvg)GV9~F)#L5 z<4w_M)2WaRZ5sZ3^GSjh`Se^$s*`Vx}IS-C=l^E zu2sXEb)WpsVYF=0TYDH$-~mn8!|^#axI-IAzvq{rM)6cnF6*l3GUzFt)C=n@2*Mf- zoS^l36Y_!!gd?U!8o_}_O^NuneS@i+E16Li^zAn;`2@7IeS27{b5Iv98H%YfaubM_6Tf>wH?Iu>D>#O$Q673z6&?BCxM$|75eeb)QlP_AR2 z_-f;jrs4s$rS-ii8xaGhw)=7__5x-wt$e=DMSRTI8C%BLLMAQQ((m`Bi`h>xeqAwI z8Gr@ArD|rH*=~}FM&xIvpW?^~V!HN`^o?(9R96>jj@tnzl%{-;qb;s3)-Eu08A`5t zwSJXEsazK>;B(_Hxo_D5WpKu`t%#PB#@530q{ixnWZ=J#lp6V>T>ikP9quktQGlT; zE0G9*H$X(5Kr{nM*iw?*l{a{(1L+RxY9vJ{QY7lVK2oJvDyO>#d2BJnm_e)>f9pV^#?zO@Fqm=c6kyY|I3P(;dL!7)*IP(8 z0cTlpmVyLEAkqdB$OmjdJoxYQ{Lw8Q0IdvLkCs|ace2K+|9>G7&k|b!($xdOE)B*U zOUvAUY>u^ao_fIM*4e`SbBj;nh!yBg8>2L> zwG$M}=W4}Gl|^}HW9-1Rb^htd-~Tjmr;-HrQ3luxg>)IWpC-ROy*>?P3Efoyd{*E# zy9Bjq@zbYH%_PF7)J@^y?9;x{O*CqcdtaTFOIYj#Z3AwI7qphTKmO=)%zbZkGH&25_U^pe6aVluaMbvJ$P%3LN0hKX-^ZI(!^5t!kxC2 z`^L9XLl>Ka>dI=|d=0GbkhLUZvA7U`iaWd!M7 ziRDyi)8SS~rrJ`vP57VD=d^uqxqYvzL*YijRmYREM=NK~@dq845mY`WtBwdx;Iset z9kH@MRH2yiY{EO(Ebs*0#q|b~*164Bo}9r)_ljbA163&WsS)XXK+Nsf5ge#+aCN*P zp1o0xhlFAhg6sCzvDZxcj(tHs<~4_WbecKkW}zD_naK{BeoV!sxqDU&V{=gh442wjhmc z`~MlI%#Gi?_`~t@rkRz86MSq{=A@TCsY_bF9wI{aO=wsdF;Z`Q7SO_Wsn`aR{Vvzq zceP#Bx8=9ikkQ}ScXm^V4lD$~Em76|23Nqq@Yi06%Fuh3&tLbq8RWtfQ|i-Hc-&ri zLu23(K*u_=ny<&ZZi@?50vlqZPoaUmd3xosirGmkPpK%KKfjM{wo~I=l3j&Mck@yP zxt$3Lb`d<3&K(K-bmAu%fHSxA1=vEKDwl>U-)T0xxAm;!l*);uRLimQ=)n+zw!QYb z@NY$*Y@jSJ7Pw08YfK%%aF`?)AZE1G?Ml!U#cZ4b<=h@OE?WX77Mg=AfnjeYL*C;v zB@9gfZ~;DE2suM2O8O+~wB&u%VAB?g8)5OSaIAtyRkQGocY3s;c8MX0+*GW5ICb=g zkGEfKKQaQ(pjv8B!}@f@;8oO8d4H|-+?t69CicBR`Zrt3=%bddpT_&e24L0pgSBPga)m;kY+*sqCB zm%1Mk(5v)6CsXAh8_U~KmU%q?`c}MM4Hi&Rt%*i`)xR7E{4r|`4nEr6x10cS*Q9YN ztB?6z3ZC5}|BTuhV#hr;di8o5(-2@bcz21SO2Me^-&RZ9Pn?(xaI3K)i%?w&p>$+> z^9CCr9_LuV*e9~tb`AH%VO}XuyBd%>`pw#E3@!m6ymHERc}hp@h2zj)=1Wrm8e`3N zoD&9UcjsRqg1SH>YNpxak7w8-%LW3-Rpz3ObBBZ}WQk?KEk`~FnT}LFt&7FVmG)v* zqO?ka4IxvU6w@sOQX!b74)9GCI%FJf8>S~IQ{sW#fLCKRPM_zPs;^`%QvYxQVu2>=j%^!@##wF7<9Y4Lc-Uy-RvsD3B88tI5Y zeX-uwpvbCHBHvv6+S{C7y3bD+DC@@cRQ?A3Z=3){7C1wH5?Q)J*T~ktU4#5}_V{ta z!4J<|SBeh|v~nQ7(jvRw0$Nv=Uyb+x1zb(6z_em!YdYIu>?l~?Zl6EbsbTG%3e?&OuoVPdf8J|#HIv)Ha`3mjKcmSfX6IO#k zgafRZqya?P%YHKbCK zLUJcOMBe@2%vE!KEp_nWOZ;?e_dQ^FnCeb8`|d~5<5Sg?&9*?r`;j^!d=Zxg=PN}aw^2U%nu}IX|65HQZ|)qyyX?iN+dE% zMFxplCKLLJErWRVpRwSLYs5xN9zlVTrs#zk&X%|mQZ>A;+U5z6(?jRg6% zN6uv=Fm{ySB&LpbA=fJf?*N&b=?yI(GSSH8q|E2h_ke>8q&OOkFM6P=^C5t=E+GiY z6V|zH!a{{5-Gq@msMr3{2F|1bHCird1|i=NR2v~2_N5dM)=V`e4AM)_~mTlwHEFhVoNzZKK6)(BnG>5MY{| zDiFL%q7FGJwYSwSkr?65e=C`t0L(JE6|4Y~>j-7wMAHo=$Qvu7t%UBUo6-Z84{o6n zc5aY1(2g;;k&9YB928#9xbXX~V%>R#g4>Aqyz!hB56G1MbD#d&Qx0j%HCp|LGsWOZ z5K@F6+wn*|busw>@|M*tgu}qEiNV(q6_wZNdS==}U2YCraFx#TzO4 z4emAdRZyDVq=j5C=Jm5#?b~(`@iZhhjip%Gv7?_ zLI@d+RLjd4lr*kZXyK=1C$w~?aQ7d0;u#)a15La@PszV0MR(vCY%wE@@1F2xSRo4P zU7<-msA|VI_bKOw3Eqoni|*Jm+l-besGCZ*(>p-Fkd=029?$eAm>5GE|29>Ckv9Zz zrOeCuyul%amQS0ZaG)kHgOjX>hJa42FAEq+i+`Gp0!U?)7u|+pi|Bb5AY|`Tct-f` zTGb({_rQsT9F#m2(gyTv+#+OM+`E3^Mf`j|O_JBSYM1>$9Sk zXMf&21KpXYld^{-8EaWa$GM(PT%SnYRH0m$Rlt>r)q~EeZ9rKu1Hd+5pMt$+n}Qy& zNNb?J<0@e1m$iiuQuCD$4M{hB-2d0KK}PQMAPXy6I!WuIqx_%5PPa(ZWk% zc???A`6V#HZ(p8rq>L){JFO`3kel&@gHg|4kULk<5shquCnG1ad4d3%K_SGtRFSe6 zIiocYt+tTHqBAAZ4y^T)6DJ+4&vRTa|Z-`JlYJO8gJ;!eF0TXyiP+~Xy~`Hll# zYi!tcbUJG;sBJ?$z9VntT3zf_0R7^p$hNP>7@_hbe#!yfK5>VHshB}Q_n(yj7;aCH zA(>bhXEMd*qK?{Aj7Wt!dqC%7ZnA|b`pgNk=_Pzu3t%As&p8G>kVe3xQK}C?3qAZFdSmg*$n7QvGhB`(G>9jTx`Hc*Xg&r$^v z`?`aZ_*M^#ea}l7og}fD1GU}bWK>vfCs<(&iZa77R$#oiruQ5o*olD}X|d-&ZXL~^ zEIty8jzjWZDk)R*`kIKD30}NTaXXY1bTPcz!?@XV;;W3de~R{>GiyLxPr2HT2~iv& zX9s29wHg-_An}Tjr(~?vle0~-b-@H+wj;eU=(~ma63zQokE}~MDSwW1>KLI2Y2#j{ z6W@qz`L=?mI)2qugg#yP@!|Fp#G!?jXS0UZv(#!yui7~Y9VR;4_}DMQogqHqQikuf}xj&pBH6$Xx9e$O7v| zS6C@geVhU+x6=OGLJSkfnuUa` zWCP2Q!j3+_p2$JgZprHbnqp4m5kxJ`)Ew|zR60g{le^HvAF!HreIecKx)^*knN(sN zSkY4A?*tKWlaqFCa+lYHd+Ys4yNtQ31j>p|=5#OVJSl#m(eNchnu z?M^{L%YZ+iei&a*m7dyBP2JqiT)>CVBjA5JoRk(VDY%I9?1N0%SK`1#z=7Ycj@9#@ zSynx{|7v-7zYlkDW6sfQVO1E8!>1Yvt*$V(0jK&`%8H3%d=zvM(^A~MNfDf%yi}R% zH7*UtmiJuu1^nk&X|bBBk8i6^W>?x$S0-LwV>&HwiSa_+)hyLdulSr?WmxCYnYedo zi)g#0G&S1jEo(p`KLixRaKZevWN660yUT- zUBDgaEUU~Fw@!QcA3ZyLYr{cm;U_koo62Lxo2cq5>!YScj3rmsQ9NHFb%6Mw@7TG6 z=R}Lzz13O~$|1@!H+m%(*nvv2Q8*|2)IhQ7Pc(dTp9#0}*V>8}$1i)*Nw@Rp`T$Ls zS!9$I$swpHhs3pmy$-Gh|nL@VTkvL5Z~`cS9Ml7*H#Zi;IT+Dmzb|8 zL0jCK^1>9@2I{IRjiP`kfSw;MYzUEGkkIQGn|^eNO)=W?z`uUg7_G<-gtBnT+w@rd zX%}6(;ot+@Xkx$hq*@-QP{5O(LDAa2mHKI)Qh%8Y8W9&t-&4FvI8CQ1# z?mSLMCfg6zoIm!QIcFk_znUEY(T&psZwmkFXA_ifIhQSq&cU?ebMI0=$6JjCoq;Hk zl9;LzdEJ{*Jy}S5f0DvypodJuxdH#0Q%sK>|6MDB5;Mgw$C?i)!`^EzXF zI?xt21aWc7C0Cx`*Dgl=A}Pw@5|HO_x>GhSKK^CaAn`(bf)hqQK;C>0c_9&R z9C^E0Zz3f4O4Z~&9$%l>{`ItT3%^3OwsYETJzWY=cRUlQ9w|LXyfQOp=9&4!a-Skz%qCY!07^qUQ7s8#0rQ~|gR z*cr|ptTQFUDrXGTtz{r^D|dKV?hWbQ?&b2zP7Xfl%cbS^_i?9c`@N2KhvLidCGt4)C2^J z)HoVeTC=nb;-yb5xJN)yKcQ2e{18L?!}v!d>9-9k@3KpJIYR*xuIg8A70t1t_m+U# z)al#wO9GV`_XzQ&_2HOoco$y;w9>}ZPDyS_oIJJDRTEvg;2rns#R}Ji&t~6#uWJ!*1YAC2E-R@9nAVQ1zA2bJp!b^R&@q z+Tv(3S3;_)$Pmh_d*Q3n`==@4Ccx%9{0J>H$CIFJ)${cV<=}N`qv7&R()X@9j6Bpp&H`iiz91r7{2WN*1z5e(zT$vVBIGWKbLKNHEEJqn41p zeobB;9(LJEkYQzS_{dQfbN79J<|}o32$~Zl^GX!{0CL@hxth?e+J2LdGR6Zj9S*TndVtQ^XC@=d5o&90EtGDB3SS>gyyNq}O> zn@hF)!PJ$C&u-QFxYBl9nID>%C{RY{`y`Jw_5MkykntXtE_j-|;=tXqVUX-d>sz1} z8vPL!cU3I4=()v*{0bq5D(<>2j3{PdWy`Sqf*r(8bQuR}T=!)Pya#D{_H52P{@8Q! zVI$yvj$F)?mY^6zZ;LKp(z7s~=k=yah1Td|C(3seZ&83O7miW-0>Ex9%e#-NE(v$R zPaDXDQHB8#x;FT~qei>>wMCV9`_E=7A=c{tySm z>g10CnT<}F4W1~;@At3vqCoFYSdSA=5*fP_8J`+NHFNm&cO~p6DlCFK*&P6(cr2Co zquu2Fy7ISQ(u=MR%90elq)2BstJmJRJ^=$$@&G^-2|sB$$#%Qa5}^}B*fuP8&-+zw z?=*>>eauYfwytL|qHESxP?5smWigp4YS{Fgm*!t^l?+sAk72;aVrW#(%}~iq?^Qm! zA(*#@ddUz!WRK71D07rQBW&`z6;=b7x^)4~WTB8=`u=_P#>{c9IL^-zC~gjs#njB$ zwGrK5&TJ%arYuc%y0tZyZbV@xUtx6W!wJ;O*JS67T^4rUCqL`sv!mA^4}|}ND8ZE@k{APz?Ym-vC(s|M`G)G;Ep#z# zF6Dw>-(`Z$iG?eu>gt!r47|Ur)zNG$8n!=~9(0byX={*J@oA2^fMh z+LM)79YIkd-TU^}8E^G2QV$pka*wg+%hf&`$`rEWN_s-erHCL{Ozy9MJU!PF3$OOE zdzLpdeu~tI1coHck;Ut&eYa#h1r&BQ9n}0)8`Ws2-QcpCbfd35DwdV5IE`oKKPw94 z9oVtNI(p14^DyS;tq--n{3u)=MUR~@)wW3ZNS zmIM-S9!0QxtZCF%5u5m2@aqDN#sax;xql3{c27?RmMfaYx-h+OAc! z?-KNfV{aMuLk&467OxsYXp)v?yBVJicQ~!DKJ7z{PFncQyyUo{2YGU3*{D?<}A$L^q z67*j8DA~y~7OM2iSE6a1xI`S_1!c_t+;VGoYohaz$~gziHjofj=$2+~0Gq5KmO#ro z;1WF4muqp4PSk&2W9@S+vpsOz^Nfe~g;MTWka_-@oIWvzb$e^IG=$u3^z6|m5dhQU zTfLr0`E4Krpz&2n?Qpm#1!8FqQWZ?)KQh zSQ+4w8XBy~hodhd|2fORTRqG?i~H#}I8`urm%!%tfZq(dhf~E~s7zMfyI|j)L2ur! z9%OAe+-&;;`W_=so1>}!?b_^^?X7CDwpfr83s)D4s+XHo$+d(2nj>t~&$CQ=e|4ea zWCUhTYrA(YgFtEBeXa9{ivr|kX{2~H>B&u3-~k5@ju$7@N#$v<#?6}*)p{4$vdJzs z!u~`D*1V3Q20!1(9qDuV0Qw?au-ngw6~~vV_2X!kUB(r?PM&+h6&g80DlE4k${t@; zNQ#W|V$^bxS~OzAdQAoT=q4%$3eE${X!t=FZnQ1~5vC?o>$B*R^M90qIW~%0(#n94 z8;$;0`unj#^X@$4EjFe&!?jfKf*56S?0X2_#LP?L{4zSfDE!m+vGw22`5PdCiFN*e z&Uwq7^$$|=rv@JXxM!Rtufno%}+#YHJ|Aj!VQ*?3F-Kd?gK2 zyPqmL0MU1p`mo{~?4}g>;f&;&_@;OpdnCuMH0g2I^*$)JLlz@mkoaGRHKgPdb4q`r z7@gN+g7UsSnH?X(@_u8?>m+1v(}S|{MyewY+Nz#%CQ+)_Yyl1wJox$(&mmX~UkCD{ z!g(|C&3oF<^?1(>hB$MGZppq26+hhgT1GAGb^3Li;&x%?95tJVQazb!z=#-@QtezX z3~==XKyYh;R(2y%>)(m`c_<7a8d&~o7W#DVTwD42m_OJDm81R>i(8)8o@tvW~;z!&O7a>^_ z{th2EOG5HSz>PJbN6BDr@`j+w$wBQg^!C%+weFKwZr!XAVpHTIYXX2Ry;41cD2Qdon|u^d0X90o?(PmuhDO&<_kE4aQ*vuoz@W-ZlXqjy;HxW zw3b|W`JcZhwA3|e2-)t!{4W?-S?{Kcx2bA)Cwe4LCdoKNxwHJ{ z+!@Xu*D&IL+eCld@{(TIlZ}^x=m&O*2OCPGy6Fjz-ITBcP1Q^9;(K|@bn=C(4*l06 zMG9$`QY99jWa6j)rj*1OTLX!&z>)k-dfC_EYQBW69&S|rT~_mm5z?Hp&xJV~F*Q>L z-k@Du_*wG(gR5=N(IGDB2>Sk`(ui?@6qNn_om4x=*xjOX)C>e<@T;C2@QAG92`!;z z&8W?wAoHA}DS@)`&>>H);1^-Tj(~+74tnw)D79f>R3BW<%h+~J1GTqi~^q`}h z(3J&5f~*gJNW;7K8)RvQnl9uJPaIGmn0r>Gn`{Xj&CXoJO_OhaDW zP`T-q$LUEp$QN>IjnapJRbH#IQ*uFkdywQ5FIvi`FmEdDOpN~G z5i#UNZR#~Mmozx8Tx?`;ehoEv#Iwx!WHPhJ&{)S1T(TAFA+5V1tdjU5q;MFRU#zMK zSWa6vN0Z3emx0_-+*~y1JF#po2s$P_XZ_)%iH~jKrPS}|hLLdqF7Ms)F(C^^T*#Y~ z1PW>f-|HI0?YT&5IwIQC9yOk2N4{Ap*8Jc;$W_b3e(^bd5>FVyzV5#yySw zF3*+1Qr!>~R?~8GbIdgf-vs2o3KeYWN`uAd3WWb$ur5Emx;%imZFki@1Ujak)0fKK zf1Xyspy9i>S(D&YY7)XaAn@ce_+jP3>EdDpFsPNl1mNB{-d!lk-%sJT#>rCKRP=V= z^S+$V>nTU}j)0dV{~?xzNT-I7<(l|AXqV@S^8?}>87`S@pnMErRWE)f98e2MsA|}z zEEk>BR{UIalW7)lwCK~S=e|>x`|Y-ZOB%9*aa|R##zT%0>2o)MXxj4HD0{+zjrBjH zYD`rr{A$eIr`KIJtZx&od%lvLFos&1xe*Fx1kK{U=}KC84N{^zzBnEg5<;iBlIeQ; zCe0Evf@5b-P?i*>Fg0lr%ND3{$5ktKl76F@8CY9*+s>x}S?It*nUaPxb$ofO1+-mG z^{JcUDcq*3X}Xc%z_6=QHp- z=Uav-@~Dism(J~M_19@S12V=PzI(>{tD1d0WC!1yHbq3u<13N&kvsC_(ErKhwkAq?vhw>1%KlLdup&5-5(=3lt z0+(NOpc7w~g#r~w^@c0g4gCi^V|_4n&ARJ!LRyqJ9Hwqbv2fcsZdQbdafDC=Ez{gSg_`otkQHArbGi zM;jdho!57+zKWWg6Uei~YI-T^x$9#Sgu}%1M;g%8dUB+>@tL}odc(R%=fIJJx$*Yg zh4Rq$B)(L&Z38{+g@5Cm84IHhR0;Qh!7*bvn=ORXj8eL(+BB<`&~ks}oB|ntm9K}R z1E5l`$;}SZDM*O7Lh{~3yc+c-k)L~hND~r;$E5YCsVxM44Ka}F2t2lxmU<#HqMyeA z!MQ>+b!xnnu*dM86C}Fm$U$_LSqW>#YFOE-2dI_E+!$?;LnVyJ3YN8eF0*+D^Lm_! zzGkXD4Cy4D5|u?mzW>9y6PP8G7Cp7&V58THBdrR|U9Xv|S+yW?CfGpou2WAYcqs@u z^IK1?ur}smB@b@yg64a_{``<0gb{3by@q820Z<*M5N648-ILv1(RoJ`4gt?uK%V$` zqSnKl5xU1kz%l!!D)UYDaZZrctZ6p{oeO@vw?sqY~wMNi|Up0|8$$#u}2s;YDOI}G$+B> zlkGYCH|IXB>-vb#peVducUt)zRJCZ6Y!DqVv2<(a$pCnfi$k#yfJ-blI+)u$J3V?D zHzGCig@GA99qw0X6+;%o^%ME)5x1vZ-3im7?Z2LN?KY{DpzoYD^`RBs`o0ujP3?%~ zxYFYAQI@wig3^3*kS`2>ut^aXq5SNBP*0A&PR~hn-hP!(B9l=%x|0LdYU=lxsA$3C zN1%X31Y$YC{`784NheY``d#fZR4$-c9WDU^4;S{%&>O*mWbP8XC8|7n|8jq>7e+2y);9L4E;E}0S2@ce3vL4v(N2)}U6wg|Znsa5(tfp?4F zTJpuXVa!S2Dyh&xtS8KEL!~QfJR{;MXhcg{e%Q!+Fr{64oiOe*;sAW&G=Uc#xwe55tLH1d?z1A;GBVgC%Q)GLkn)h)-qYndz7gqy~pDqbK;JRSw z^T(*o|EDr>G>1J`cHr`Dx)ao$zXVv}I0pQYt|A+L37qE1i*Yuns*wZRaBkwS$5qA9 z%KzmyiNd2$4FronLI9ZRX{)WNx3eI+9Lj5|=&TTs!Qm2PCWvW8TdND}g=!Qv)MU(X z;W#Ph_ZBfin2gN7gK#}u$o>i5YRbifFGlCjodK4|Cv06$sqXYVM%Ah;o1yas!g8b0 z4piBDOI9w~irDdxyxYH@GZuy03Kn-8O)1|ZFJqCB$o8MYa{*$47ko@@_7v9RdQ^T3 z(^n>T5DdH&vb-CQ^t>F4I+;&#-7sn1J9Kd$>J(6N{TO<)0AaSQa`b$${_U&sR%JcE zXk=QCzviMi-DcX#Z3{~C9^`x4+TWn}7gA3MqVmuko2-AY8)3emWwNi2o$-X;TW;i| z6Y{=zd`>K2mBCaua$f@h7H#=c?zW24(cQ8-p00n`MVQgIz&|omfghW(xbKyt(tUoH{U-GO`5zb9 ztK+n2>V}aISzaC=6tliqL_JjP z&QOO0W+q&)HvE8e)1LD4opm(6rFIk5abr$bsowzKamrH8#K;L4OP)Ol)6?^`)DNee zd}s4yc?Shw9!q#6g$QgIC0+B_@F1&g+w=f4XV=fS3tM(1gTEzQW;ewa*eknom*A6U zUJ}F}B6m%Z zk77J;o^xHSv7xr8F!2mxsqdZ77lySzl?`~GkBNl;DhYG?h;Uv{Mp`7@otL~UdEXW>4wtiN90k$j48=);MfoQFx($hDGrFUPN zzwc+1-1*^pw(SYC1=y{+Al0SkL9b7ha-r%hlP{u4m7MG#mADstkIk-XonT$!|ZAk*Du$M+aioYf2@8xpQe!i6oo{h$$eIbx6rMHLre*ru*={F0ZXiH?{Rk zek(5s?>nU5z_OfzUeGC%|bnb%SC#O0(3jQ4p4OV|4_DH2n4QsKrqP z2)AbLh@^!(XD+rNA*#lZT#z$hhXpt~)F$z^HVxlHL6sXnn8j*OKU){RUu+>!SM{{? z`#5vYgvD@zR5Ey%0oCf^U1#{_^p`F^7l)PBs)Iv@(4Pi?Ud07b+lCB}W>Foh+@(hv`DiE9pMXwF({%`lww) zw=cgtn0$@6ciuHyxVboELOJAc+-RkTk#a-q39q-C&)^Au3Y~K7=4!dvP?Eubf9JIn z0XIPWmcg$!YktO(?pd5!bpi+M(_~ijWIJxJ8Z)1Go#O_++$6rdtR0WQO(%%SDUBRd*uukt>Sk9P*o-8EU-Z z@K@WOuT?laU6Q1BNGV=PO+QS&w6XE70FdFmXr0U~|0^BOqBLNg>Of@@n+Em?L^94Q z>jBVvrM4Obg+GuKnq*=(Pm#m`>H$X07@};cf6x>~q7*=Yl}ouu5}8XHh?O(g{4m7U zn6*ny9{pH`g^F(ld|M#_H4s&;`Q_XM$9ho(P(~1vI1tWg^S=mpBS^3N%SDdLhmo$I z&6G%0d$zYFm*1@Lo;Pnc*O3(88Y;CI!Xl5nmD^6<8l})Y(de+->v`>i4VE=HQ0FN{ zxg1fMX1|IAf|sh?tEk(o#GTb_&apRzomjR!^+(wo1+RPd|3q~mo*jsLI|<#cU}O;g z(o_I?L??^BkEtxn9L&?NyM;_rivMOk{wSBt#;FlqlWZvF{Q?mpGp(A`&z#iP#+baV zSES~?SF9GYz$G>(UppfJy(|#L_(T)&Gsl&wtnK%!ikYeChS%qDuMP^XY~LKf(u(b2 zY0J~Rp56E)QB_QYMKT=uJO}Itu)x=hbI(3#>ir*0-yY8N|Nft2jyWYEBq7HYBIi)# zOwOlC5t8$1V=U()InHt>rznS<4`b*phsi`m4l^>xFf(R`{r34@*YDq5uf2BddAJXc z`*Giocx{$X|5lC`AJG&gN&5zo>X}2juV*jS8aN>Y$l|O0f4L48jE==`_wHQ#d-#-b zn5aED6E8lxO7syMOvUTI`uhEfNbfkckcaMZk*Lnm{(}$Ktq`HE7pYp*P(6l>^{x@B+scYWPc52EH?wEVZ)P8!e>v&->JA4*4xg0p~5^xqkoSBs*Xa ziwijr&~`R7#85a&n-Lh4I73I$Y>N}P_N3%h_EXfsjfaeP`9xUyo$GWs zHT{GAydR9;VDvT~ODsuVEHc9bCC)D$5W z*WrHJmcr5_z^Nx)-f@1*BXSVye;uz{e5c%-0lj2${E%@Tu!h}vV$x6U5nLuE9!Im@ z$6r?amn%w-KD+auF-O(>E9Ms`w{%Y&C%cZN!IoG*Y%#=`%>tOCH{3XieKu2tCE5v& z#4uRwzi*jY4Y2vsE6-#LK2vmqiLWb~4h+dD(a>?iuADB6Zb4^bkja=wBa-jsIm}e) z{r#@J1v#ZvdcCm2W=019F0*g&6)%tdtC`9rQ!U-f4^5^9W68pmjjKwpsAo`UlpQmV zPb9EM@vMPY11{LA=$=h4+eMH0dO<&md+!-G-@&urNk@1hHdxLYRgzOtIBSnE>u}1WLl+8_M7rNjpTho{Swu=;C6-Ct>D%4 zq)lu0bgj|-7qd?Ey%r;XCa1Uc!v0AA%e{Tf;#5zN1(m{{RYFw`>%Q?uC4$sTFTSj* z@tC3Xvl}#$;?$&}*t?3oUHyJ_BYYr}(90la+z@?Z)hEk1cnCw_;xdq_#9JI|Ho_AT zdl@7Y5rC~?(Lm`w#d3alAyXE$3Eiq&2tP_ite<*yZ7)c6ZJ$1*e}xsldQ$rLAT&Dl zKAz=X#_yo(zb2_&5!UCVPmDt_zmUDn()VmzOF(s_k^T2_fYE4RtnqH*xr2LFk9*WZ zOnC9_DB~Yis3~3jPspF94pmDi2VB6TeWXwX(?Ww@jn9Vf@#f$0%gL@cL9BfPh*%`N z5p{w7lWqqW;=xBC;#MsRK{5rP7U8rPD!RcnYfmxeotJbDZNTWEQWIngA`%1L8qe^$ zRi3ATqG+Q+t#-gaAXDJV>B|R`rtfEZ*|aPfWC71YgT9)}_0VZOe_{^h^@B6%}~Qp~u(W=UdN=8XoKEI-_z2oaO0C zh`EvDwU8awY|yAjdB|q>K5KOsW`$^bLy>?i!I~bHP9CMxv8a4-vuScjkAu3&uIqW? zLeJAqNO^Gk=W~=`7d(})Ylk+3Erf=64~13}gq!~Pf}w{Gx;hH%VPh5yjbe6~MSg^P zd_d44qu?Mlw$tk!$IVI#|0TEz9eia!l@(D}$ce~j#JuJ3i1yoz!TQc7CDzx^{FmFr zUJx!=GClW=9>CGdY}_&VyS;VcHvSaDjM1n=+`><7e`P}}`}+sbz9NIU@|vjxxf9Q- z1znfik4TywQgFmsx5i8=SP4@b1W^iX0Cq`dy zBXiY}F>Y+fv=V!yTe7IGG}m6NbuyJC=1KGm95b+eFp$qq=yiaKn?6__bw9IaF6y~O z64jP?c79Bog-SwJ4)z#UJ$M+loDIRA%8+OCLkYokm0ZBC>tdZzI$0^T?a3w5w`<3l zxj}U0d23(}#sbUNe{Lfvl6`y)TxGnFqV?E+r(kgAEBSlj_RQ|l#-jH^fub})Rt#!e z`?DRk_CSkd8Umm@zwm3}S?lLL-Jl0LmfV-rW9*ZIs9!Hyj9j!R$;v3!k2LJKVb`o?tnXa_mfL34W6Z4VdRlnmMOGP24|yMS7T z=eo{Q^n-!ByWx*xUUuYCiIodRu;c3)`OS?6Qes;-ud{ZLEk|eO^2RDFiV2GoPr*UU zp&^YrY6HBv>3PF>>3QkM?(0i#cTGhd?>ydhCR9S|yhQD=p-SPFEuSI56&!9lu2RL$ z(telra`XIb`4TRUxi9G*ukTFjf6hF6Oe_~MZ8$=wvL^fG;^@Tg&2B!9vf_^#5>b|D8lXBik<;L?HrMl7jySkD3@q9*}*UOKN zKk33U`e+?l_%8TrVdE)nM&HUu`LjZ+`Vv?V+BFaDN@?SeA6jXn z10=+MhW?dwiUD_MwFFl|x`G?R2)bMf6`VkIGkSjye@)@P0lU#$)5Po=T+X3#6`{t+ z^IKLMAz`hmd94vJ`iwD}P8{O>>(=zvR&#H>tgLHYe+j*%gR2jAQ%d#^o}JFbOy_$OP6@A z29J{I92dmC?dS_syM!%AU9!O97?)V*EaqnDW3dStQ%A*+r1^$X?+mxx>?NubE!xP$ zswiwY`O~3M0zfUvw#HsPcGQKC!52&;09W06p*3z>RG@{QlB%*E@lO^Cp_5aa#fxK0lB zZinCJ%YjOXq|@Us%7n@N1A>@s=9!`^ELyQRGaboS*Et~hvdwOnG+028Qr@VFiDYsYUM?GqMuw+JH_wA^c zKODOPHy!iMvFY=RHzKcOWX6-xW2+V0UMN%Vs^k9W^gHS@XQMpe08p+L87%znJZ#simwn|bV|A7J%GbL#zJWC(C+?5mIhg0>wNN~# zx)j0P9I9Qdtv)bYY!vlf^2Wt-BRS*8a-OAu+|KPRr8s2Y8|R#ds$=v`pz}V zSXzHPh&Q#tC4I)8u*s@bn-3+r8LJZeZ6Q*`K`gs-UAb!F)H0(Oz9$uvnpEq*fe1-2@~Jtxk{ z{VuAebr38tkhf-ZMt-(lwZSC>T3=OM7y|rSwx1Y?yYBN_nfRoss(eYx}5vTek1Nc7X#Sqc9q~N)s;v90JHVriiX^+ zu40h==6oHqp*E~}N!pd;1l!2H^E*p#8d}S$4uMnr!iYUN0IC=;tw{aHzu&;~SOEQK zJ8&si5J}0AKSsIZP__wNCE609z-YJXvtJ+=?D^-7gBHwgUU1Aa}}byc@#=5b{3^%Zly?JVkQmgb~n!FGicp5m>e zP+FjDvRitdc$|bbMyB35-Fws(&7^RP?r3r)i-6fgk5Ig64_@Jb6XR<<`?u~WdHzri zK`%&q;m53%D#LQMI$tJ&lD@7gI{%JCm8kl8+SoqJ;ODh6ExC=t$J3GxcS0_Qo3_0u zaN;j`;VTNv)%uOZJ??CMsT$XtCfnrBzXxE`Dy2o;AYkh?fZD(2IPYMF#&tHXg6G^I zWsfU#ssbO6%#Ibxp1NH9!gA&76ia+#6?dwBfj=I`3zTD3c3!wL=b{hrsZD%|C)cMh z)WCpOA$oqFD(6}Hj_$TLZ5zye#U8Ns5rsH={k3W7=tIAr<=4l;zP^Ol26x6j-o@?@4`#~qCPPCq=W~enL zW;qe^Iur75)mZTUP?)s;Mwuz#$A^;g5DjyzTXxDsQEtkFRItfzQhE1>xV&FTlaZ}v zO=s+d@dD>LC%1?ht}xs~B;5VOT(t3dX({2)`xoq=clKYU*#-)@=aEjY#*VE=lf87< zmq((-2BZ55Wr<5H+a%W&W!Fj*ZB%qs_O+n%4_ct(Yt(4Ffas2Y_v`Dogrv`EJDESTz|Rf= zbPbdwTeG2xRmH(Ai;YIVm#j4^8*>X~uY+z}u#sd$k7a2+XUteu4Y1_r0Y3cN1??ot z2`ZjBOr?hOmL*b5x*AuVHXSs~PU<1{%t27A>cTJhV_LnES17Z)y&XzsVU;y3go!=> zt}tEZDyX1$w=}M)Wqv)M4bajaK~GmRAYd`wHqM1-?c;8k;fW8|_(hSjIphhu#FV)B zDp@c);JtB=hVV!Hb#uQGuae8$QR3`g_ouU8dp({+m@&7?!|A>!@jT@5*r;Mf&_C+1 z<$ey!4yfw&w|UW};95d^ee2`RwhlfYktX}8oo!B`2;i{P{!G6!r>57%xDGiEM0m91 zhSvRA5tU=1C}EafbEArWO~rw{=@ozNQCk4tE7zm;V%9&k)Oy$C-1H zPKdM93*oKra;~?%+chp!SO}nf>Izt(vY^;+MU1m&ydY@f04X1tQ?tSn5l60}aQYEANT4k8yg zEkEffW?zmGKGtQ>i%>vln+t1V*-Dej4p@{mf8FhPPSHAdH|B9YH*I_@zV#e1vpTUo z!_w=AkjlWF$D7W8xwMjJEO|bhbrr3}Y)h$}q1|D6W-0hCZJn9L?qZCSXms-A)Xu&I zPg$9NeL&$ylx8>|e~Td30l@pZy3o{4bg=B1CI<#{ z1iI80PEWsTjemJ^DKC6BnW+%GK)Wep4Er$-~LvA;rG9!UM;$T2J2 zeth3g^VODxLF22u-%78p=%B6%K5A3TJhB)3*?Q|KYX?KQS`%3PaP!wI{;t25NO`=Ob%Z}i+#8>Q+z7^_W6UxcW5K~ zKee(5TST;Em)!O+eE3}L-h|NzaWpgh_+s)so90R{yENt1K335Bq#~L+a(h8>GhCAuQM?kqll6oFCVI?Rirl~8A&^|sfeX4EVjIZ_bWRA=LDOK`NWh(1KxSuQS3OAttxxzQ-yr3ow(zXL+G=9A*P^B_4&i{zv2w5zfay^5>Zeps}Rws zeDYn$dDgfOfK{_uNR5WLI*N2k)zzNpsy}yJ>s4!xz)W0lQhO7ZYECoOR}j8hbelbedGE? z*4yUNib;M&L)elJ0LBAM)dIf0dJGR3BqwnJ-KwyrAN-sqG{Eih^Iq|DE%Js89ul+E zEi732@CWLOTR=Vlzj82HjNAtY&J@Y1iGVOlvg#?X>Huj#vC;u|3zi3rwopBBI~)3v z2E_42E(D#c=t!8=8GG^oC!g1&zc&R}7GVclB9`eprdl{Cz}M*L(5fkthvuLAL!2605KOP#($Uv%%^6={m8_ zD=4~{wO3DySm4!PU{Bwe-tSlQ!NmYuFMRq)CxR}V&(mrLBsd=S=%cfaQhv-V^%C6iPE*+wp9;5S-R&1Rwj3QAf(oo{fp)~hTmwT}e_&cEoY z>2*zRchE~`?H%wJib`h`rNImiP3A+?<&3NCV`aT{m5IiOg3h2a=xGa67Nf)03M;R?%Nu7en#Cm zs_5Lgr#o_-aknO^O?TrKo>#7i>cL;49c5Bom!?<~hGW~CAL2yZ?=b!e#*Xt9Z=Fs( zq%)b)GB2X?L^7Jzyyn6*yAs=<{CTiHkcMZ~ei&$ZNh7WO3;8-@o()b=`+R2E5mT6h-_^yi7bC45s)hBS|Q@*CUm_V%d+s8 zk}HQyU0l00E77k~_w;1@Qn1U_ql`0`!GU~}M>>Xh?MusH)rdxL9zsm#{&7qh_|nY! zD8-otna4zMlxvmGBk@MtO^uECvsyYh*4y#nL5+8bo7^1wym4kPZULY7_yj}5TPk#W=i zwnC47?{=I~6`U2pXMruwChpqs{`*0L%K^e5fvP9ehsI))YO96)05Hla3tnGPOMH#k*v9=%eEoLFzcJB9PXrnOQ+l4ss3UaUFRZP66%7<#kT z6`4EZKn!7wQ?nx&Y$y~LjVsj?ULFq_v+1SP6F(+$sQ$amsTb`Mrs+`w5(1UMN*Yt( zQ>p03*OGzHB@J7`b+s=&Kr5b&D!}u;pMC#t+(jYK<}JMI)URjV)>g`S zN3f=}YSn))lOnm|A^~XTb80$0+P1)Y$d}$hOe~lLLrv`w zyf73m!Jy@44xMQ0c+=^14rj7y(Cv&dT(tEcCuSw@w|?eZ z4c6Zau0xW7DHmyr%?lBGQ6w*xoWUI{=3inmk_7n-E`T6>na5WNX5@P?%&_y?h>`R9 zsL@BFjy|jg(&<%;K!(?9VcK0q{T$eEKaP0mn{x4TITtnUQD=U2tC+iYlcQM><;9#z zl`Y21^%cEtOHxeMcz!EfRnO)4z`wMS`E>sED{_UbeG0ZwE)fsoIx_m%<$8%n28VX?V7d!Ja4*?(J%|(0-9H8E~K`YQj5h)fK-mZ;6aH9fWXvS}=P4a2q(52(WP79A*X$ET|lADxMfevMVuo4IWv z`bo@mBt3^K=*)l-o3bpCh#6)$z`nZ-EeX-$;&1^4c^KxMcJ-90 zUscD!!$Avi;*rk=PXv`s%Rmd?TCnM#RP)P?W#&7E&jY*gy7I!doH5$(N5W+v?4RxP zt~3I^%3(El?)RG+#gSaU_0=Rl0o)%y0P1gz1&Ujg0#$TVDaXvSS#H{4$!Xpuu^;h- zN$94EF`z_>K_Gcr4^=ZVoLY@4*F84_@@37OA5|j;h=8D7OC+3RE~dc1g6y%^0x+d{ zjDoX{ESId!C}CM1lH$ z(91fKXAbW&%O5h1$4ld~n)j6g0&`AJ1EDbL8u$`*Co&{*SviCnqFuHT1diOCexCFo zPBF!0zZKE~?sJXWA<;GncQ`|R38Xj#Z2_Q}XggZKBqucj&ApU!*{;Cd_<}u8fNfZW zvy}n%7x$D!l3HdEP3-m7alf?p5?(%i4h!pYZu~84+kC-!jLMfynO^VpNhZ3ey6pmW%y)~`tRv1=)(JIg=Td>E zWX{cdv5uneRb83CN7;7+yKV*|WC$s0RH;u5`*c@+%qc_xnH7X+1(uAQA4aW>n!zj0*irUqW)x@$3iJ1S5bQ)%p9y9X5Hd{ZwkNuxb z{9ln*zVKG@j3r+IG)I>&3_2+tyAybGuP_7`shbn;_0`j7ISA~)6z6bPpP4V$UE(#B z&@r~JoPplyZa==O6EibXN1TOYQ;I+ z@ApkoD|^o9q4t@{05IwZv&-#>dK+hg6@P*J<}ZL<2E z=5b%8ie)aK-7FiRVwr{RFv|k8TI8U=LfgN;%6FwH zyZDvLmHL+gN`2jLmTo!T5OZ%a(_t3dbd(aSo}*w3ZrJR283eXz{dCgXu;Yzt?GTFE z7Gmu+q?sVKR-TZZNpU7&R-Ie32+{5jsu3B-^GAc{X2OM-;Cr7pTGJO{Kfi4?_k<=c zk`Z>r&|9uf!4-A8{w~jJ-ZQQKDGO!TGlUfnoqg%neTs`{YZZFjA%`cD!v#M$IngCF zB5qO6Pt?f!v;j4QP%ZZP^W$#F)(Q`Ksj(=N3c@und`gMXjegK)Vpt@_)v*7*J}ADf z_N=23)&J}wPPf4|D}@LG)c`&EZtE74S0}z!mbEM_D-=nP@dDqg3JQw{TpnC7+Cc4dut=ExlSO?zL7E-dE68$N4<{HY5^tpp2O$+U2}@@D&XD?N$QvOsSeB6S zJ3TYw&e_d!l8pYIaw5i?wU_#mHhnJzzzcD|aojg`57=k25mVex(XhkJuxR7tY(ef- z-4wPsQq}KG9%WpbE!f?s*!02#9Q_ycvhM;f~er)C&y`{A4-d05$u`LVsq-8_h zCg32qHm#<2M-ef-3)8=D8Fc#us5uqo^s)@k3G{cH#Hu1-I!-GbQsO7edhwO;EHqyBP|1^)yyjgix15{HS%5EHFB4Q(#NfiJ}&_;lph z7i6CdgM}4tdl`GkP2ynOg@mko6czO!2#n`I7};UuAGU!Ki~_u|lTeHq7(JMuU7)U~ zc$)Q*awc5ObnPC@>cfyo(~|OxlJAZ8LQid7g7>hr_7`#cFe)6}7HkgdJY8wj+TMo3wxQ>3#J{TA%Ne4^UiX7R zp0KdZ(C5>z_!smMhoNg5GLiYXSoElYoZ+Ztt2*@WUGk7HG*|o~dd!W{-b!76iqR!b zu_djVLFM0z_x2f?daZ2+Pj105y|!S|zAhJc5LYnSqgv`8%RSB>F1{$Ch|<+Nr5~m! zDjvtBtsSL-*ChXUVE*&M$uVMQSo#}zVwcJYlq(8*9Uo8n9^zwi#`X#mF={NmjW(Mx zZQ*s0@3-ChekED3mL$nW8`_^mRJ%jnBjfIviv7*OyR#+|O)}&WMt0h!KbO z-=lvMG0(O?hRryP7;Jx9jXS&>;_gsdwSfoy3BQfs5h zER7e{`eiv7#f*P>dJbq5vRB_P zn(*3nJ=hdVF&f-0SOC)$A!GKN5o7+(+|Rl|-o#VU#z!YBf~-Vt>+by2p@8lW_YRaN zLT>m9hGlGPKJUK*p<2`fxWpx?G#M<;%*>5Zf4kCju?(%e?cX4pgNV@xk3RZAlj zQG1T5{H|pXq@@JCfxZL8SaQD*qiXPDEZwOswxSprK$yMpbd>~wU6hi7JhzJ-ijkPH z8_9gw+F<&TkT->S+*L(<>ysq$wXL(YHR7QmBnKv*Rsy4*e`@~(%`t_ZCb4SO<5lqV zJvS=eMqDKp37p9qK7!VD(Ak15JFbiszEuoF>=s;Ysh3jrz*5qq?MsjZ2 zO3HUVj7B&=$67Eua7p7qke$$wz{Q}!U3D`#B?mXDDbfkj1s=* zWd^ocWChYJ8||#Un14xD+S!4#^a8@h;Z)C)Kkt|b0y=+xEuHJ@{O;1%S#Y{3=In5D zI^!j5sqaYO&w;YP;seotb=hvZNJS+04A6YA-Z(ayp1v00vbnibW?tO9gM^ABpI2gz z(%e&#&oWNQ-_>yc1wsRlH{F31#Z^=DG5=}B&I6#&cB$B`P{KB{Pkc`|ibnhWPW*6< za#qUAuy-tW&H=qsPC7hjlwvM9@0vcwP@FcxH~!^(;Q4=N$T7x3 zOpVRiG=+%9#GYnAv;0r*?}UY$5MJ|J)W^bi+rOz}KR%k_? zekeMhclR6$geuT!@N>Uxv=WV>{s$&Qp%AxS^)q(z&$!YzP+X#X>|yq#r7_ZGc%1ds zrN?K8x4k!C!ZT~ar#1s)n7*ub&Utd@}) zxOET`Cl)uUbpB3F!*lIFGb|H(Eg{b$%MwuJVgKlqzpLYHAFc$#Fz&-GmC7TRPS{YCnFA`i3f&`!==v4mSKeBg+&z`AcAVsV2{i7wJPE_dpX75)WekIC6!v=1g*y zn46)-Lz|5Yu5y*?->rT+9qO*-d`C~GZwpMm!+B5$jW&oi$G>y6ktYf8h1kZ{n)v&c zO5&Rl~%!xbEcJ0e}6wvWo+FiShp=AAL8xD z&%Y$*srw5f2R*Kr*X><06Wf)QCd%SY#Guk7|FWS)tH3_Ec%ic=o@VY4^?s}f>XpEG z)xm&^3OkB_sGrF_vTFdd2aMv8o3D63WyI_gKanOI3VMe9xscip|doCWDBGk zE3F;_fJ#0|Y6m9(vsovV)&*U@r`An>teWF$E}!Mr*#y=MwhZI}@H#;!cIs5=7LD&< z*Q-T&G%}dzQvEBdX|WH-!P+tTq%}4hp@y zx+VnCN6WcBs8Vw)K#NK50oDAxk-)Aw`T6O7eh-LL5Hoha9VB7=v~tOyDVf|9RetL!Q&^-r`u#$L2hL~1XE=5Hm!zpnmG zT$0{S8Li2WeP?w_FMcdp?JmxU#Na)@_Y{ryQ9-J8VNeqywO4G!u2e5Aw0n+Fog;Vw<=GlZ#uBOU8EmofxB zb&RV>-|K(ZK69>v)ckVk{u`q zOUBEVu{kXqmh%&5t(H-L&iVJR3j0JkQB|(`H_52pJEZRH9I29mkIQ3C)WLZxti54e~oZF%pDZ;_VP;Y z7@#ye1zns=D$$UjMx>JrnMl|-X-dZld{Gu#QtsU zm9eGi=7jlzEMafo*M%7ece61+1#_TS~mPq3m%y-DTXC`cUm*79^tP>Y+Z6f~(wtNm88T*kq4+N%rB$B`z!*HLT zl+k|P!MCar+`kqxtI#9bjF|h2F=lGo<%hqTgztOZd&L&WE$%btsK`|tn@4*$X-3O$ zaF=Ir=T7~<&Qm&?df?mb((8=65Bp>CUQt}nS_lsVD7-eDJ%P8+RHvyo@aJh*N@KDI zq4%42?P@YAqo5>5y1;0}=DUQ)<+ph?1>dfg1c-|5Yjx;aUgk58%3!S&SVtZMq_ z;O6o5?Sh2#cYg?NcSBd@{Avlm6*H->J&ro_U5+}v0kx3$Ny==uJ{f=Vl-%D<1IW%y zXtgp~FzD+G@RMg%3mvu2yMJ8e4Af>&*zf5|KBg@k3sX1F^NJZU6SwgZiNYe0F23a` ze1sUv$=8D#R+VIlWuk=Rl7PuYuq$wuPPs)E2WR}VipMrDuP33_2nXwGK_hc(vKV|q^{6zL;#}0-Vg+=y? zB}?}_bn!j8U(i@{`%^MpY0ta0F0fCLf<2#J$BD*od+1E3(D;S`g7&rJ9Y3WMs_*&q zo)qT`2K)ah{MWFCU;(1^~tqSJ_|8$;R2Ot{6Nq4wSJ)D zj>16X%;3Z90_1(>@A+~}2hT^fO`nhbR46o)ly1xlvbBX`=Nk3k)9Ej2bLd)zZOYBz zkw3om`SI8-AOt)g*ma%$`>r-FN9r2NN?T_MVI8s#(Y`}E zAndOEc--{#n!=s>jgZ?ZFq2D&0Y(gp5wo56Cu@cU;nm&zl*X376WQ>A$xZ1k{xs)w zzY$ukA7c|M5opD8{$?0C0LA-)00iduY)9eXtSQPJAhM=k*!l4D0!_jwe$OKy8Zbb* zCr*m37ONAK67xCVfeF?8r(%r z^hieM>E!{E%7EHitnhCYdc(2Xb1pcix?Yd(_lN%Pvy*r&1FW|B$l1sA7mYEg5V5|Q zJ9d4G7Hu;+E`5E^8zA8HWYK#6b$$InRy&Lm8MGckzEw^d2!BZEYv2Wc_N&tB_JC=1 zesSGhx}1#Zwb)oRh%W5O`^^mOoEq#X_qKQ5C~&3^Y;0(~=Vk9)c~nZ)42T}iP?4Do zcp#6Dnx8t-!L!I{*S05UkJKz)9`g4Me__$d$F2^q4C)ry@bkrLn{AW#qSjjAu{Scr zsBg3)_U*t+U-+aJh|<;kMOVz6k5$fb8A=<2dZGH|L~_fDd*`h)^kYuo`4?hEU2hs1 zB#risFI{iD+175nz%%ZoNXC0NzVZ?eRl&c+D^&No-C}AH7%Ou+!0nPlaZmxpOj?ea zG4G9f&K83PnV{ zvR-=GqBhprGPW2MUzUU(NrAu1QSsmF8S4tH3TVyc;U!FT%!T)QSJ!qkzlfn=z$76qJBDC6^Z?Hy55{tmD-Bk;mi%ylJ)}IitFX)Y>L`*gT21=^yggc zG#A;ET(ax+#dJ#Z=uy;+PRr@U(nI`?)bY`^WC=!$wQSel=Yqf&OU8q{xuAQ=8ztCPMHEb8#`XYNvn2G?xOM)y1_MF5V2x@k%? z0DI;4x?@dF+`DNdlWB~5_f1;oRPIG|-wm$fv$oU5Pe@p#+u0jp&uJ=%u{a=4`8}P- z$R^wqU;C-GwTr(bpzoP+-9LFop!jm$TeY;`VZRA1g8>%pbK90!8B7tAQqUT`pi*c# zha}6z_qdp}&KN~K<4J}07S}Cue|{J}U3#!DV9pO6u$6hQYe!#=S&^B7F5i^7enGo| zl2$$Xs!I7-%v;ASQn_YKzb8Wu+p%eF zwnPbRm9TwnIPxV6O$Ty=mZTQ?T&TIHuQoG;N^bls$@YG7mG1ajxf;D8Z`3oE-XFK? zf;&A_%GJ7kRXWn+z9^+)g=rk>xB7cdET4Mc5NKBE!FCv#u6~E~kez~zDNj&0>igv$=zr+W!g;3t{MkHe5au_kS^H)HaFIpMo9%hu`=Dvc4a}lD`BVFxV)IAlEG)ehV`%67?&?=t0A(FqA3AQd_()THgH{=BNn@!N zwq|Lcb9qtME1%}!F|t7BNpwqAZ|x6d9r$xQt*KCyhq=_!Yn|4ER#xugq-8zD=vL5g zb6TaitkV_s6BZWs>c?e;23DOB^&*5lM6&C+$~H!BI2DRddChaHX)I%|2&!@2{<0U}uJj#rz*5ANQ|Y0q-F+5kUPN3C6`?zfzSr z5|}T-a@2vfyD@Z0t?SfZkqT$+saa(OrS?Y)CG*7!MO66s!tQXQ#~k$oq6Dj{~5z*kDd@g*;cO{&z)V|`?`^)pQN3jNkb zXJ#gpVHg1ofzfpp;%}Qx9*~&$u}*8Bqo_0=4JmzUdvG42jcci7!MK zhVzGcLxNQn!pOxv`=5j(k`u+MYweHqs1l68spzH+O86*QYahLhZ5V&^*FJhbb?*|? z{tc0h4to z*X!=Tu!loNzRz?mnqpF)P~@ipk2hoTv6O;jk?Fmk+A>R@pz%%7*-gy&#!z+1*m62r8mY)^7hTqBaDLl+T<%AeG-|JL>{=L;idqn%Z$ z`3x*bhiBVrpRl86zSn{P|R%yrp<4_4EP*;fw|X-xrhm{<-S+LeSF zu$FfyarBzgm^~(4rTsmTe(4;4oGr0;c|i(FPh8~UW-MHKlKZ!B;%WTDL`(xGGgNJ$ zBa&UO<1R;UOd{r7du4}xpX)KF{uWl84|JYp^nOrp4l9r`F#2D=4Wc6G-%H>^e;OZG zGlrK-LqIrezb!d6+V)x6V)3|Jat&%Xq--Vl3yP3i8T13+WjDWgm{du68oboiws=nLag;x}m=xw>YRY0$C;%?BA{H~%VOc(o)@)O;g7YhU57C&z%Ai2?e4+PvzU z$%?6pF$xbvm#sIDC(1qPHu1_Bw87;8tiw@95AVAX^CY3YUGg~?Q$dsXGYAZ=S}@(< z{Nrqj{e>#?H)jO0$IX~v+h`^+N>h^sVPU*iJ;v~V8^Wh|F}jv`#1ln{eA5B#7|?yh z&Y>m-`ojjWcs%KpJ@{E|;U%_<|26KpEaGKVrJTZXsbiA@X$8UYd25VRT$DItkL+9t*WtAA2{hztE^kEl|q8 zL1{75KUg|NA>eY6J&Q3cO} zG+GXxn!lw8i zYrIkDw&|62z9;QN0hU3)y!|M&kyxg-h6 z2f5!uTBQ<(+~>Lwa+@wLA(ZQkk<2BMdy-f**M$=1vZ0mS(wJMwW+Jw*xsEY@`+R?o z$NS+A4-bF5&g-1>JkRqy=LKtQ{>*P&mlCP{pDFi6U4QATC8u_@-ihIQnsHl=i<2N zZ}|;sx1WAVA>W%F9+xq+nDu8Ahqdg|=)T;5xH6gPA2fNwp|G2qnO7%0q32K+Iz=-7 zx|mdK;cH-~S*u)GE?7}uZGe@yaBZh?T|lEF>)zUBC#0Z3RClseZ1dcJGu$`n8&*eU zXKr9Se4_Eg;23wh$W!YFa6wq{@kdl|OF$(}OI3oV!#E$}H|w9oJTf&YG-042tGH}n zul+o7yU<2&Z)>WujB~~vU&a&3R;Vxe=C z)o;2URG(eUuoief$4gX62+b5CftpDj^fp( zw7*E@u<7N{U!~3Q!F)h%k?LV(dD5UtrPtuLqtM-$^Fum%{u8HwTrrR3xy%scvuM;QLO~$zHvpKn9g@>cW z;H?&~-hrT|^lZv4I1%qyijdLi$Y?G?W0UXsBcm-j4N>lXCFYK+x!-SpK< zb8#IcXK33wImm)5ANDw2QzAaO{A~Xd^_v>{g8D(xew=Y8J|G|3z!=-fp>Fsax029!{G7bi2j3iY)7kro2DOib#-K>8%Cav1! z<~0cMRG#oF1O&Eq9e?3CF7457u^`q6$A=Z-JQ&gb$mBQp%VG^O8!!sg^tv{%T9OkY z8crUgy`YL7B{?>Md$o>|Ky{hPkKHEC5}3v~9+Hr^$cUOCS#>E+ZbUL(X{4IvdkUt- zkMk&bNo~a3UD8+0buY<%R@>O3vS~hWy#_n{c3`t4$**d?M1c`!Itwot-{y3Av~?GI zU1m3qlKdt#v%s~PHCVxc`7ct(7uGV8jzXRR8>5vIFjlM6ZWoxZhR`pJ>mfYL53(AQ zNk7KVZBF_7`v=)B)n@+u&)O@ML=H`yK@0ZlE%j{t(5?)947h926a_--3t~+WGn7+! z!1d7c$MqMKj0(C9D@y%_Ig49b>?!_cenTHdj?>K(qSQS;2a)1EU$w)BJ>~hMvZcVUG@>LXz*00;WxqtcKGk3NZdJbQj`FPp z9y}+|`@Fm(CNG|SA%=7dCNBwGv%2<5IR#KI!)8WkUZ*azhMn--hXtH4=>Uip z+9@n?^h_g?9jYTzo!}w%4PO!1OIKU4w|}ga@6{8Eo5_wxXqR!qm!GMJI1HTQcv`-; zxjDvhVR-7KyGdZXZv(K^wSe&`mn1iDi~bcK=xKY|o1%R| zJAt`W!I_k|uI9(`Hs|%R-JKn&PW@TX!1i}eL_NGZ02i3yA0)uneg}|X5hL|rX_y4t zYyNkiTknLwF#w)5r1x)g>(pF8lb?Er;tfW0iq~^>{V9(xkDsoZ@*KWOF0l^oUd;Iv z`lWV%9Z?$GpJQM&#%$)1nb?vmYD_(Y(G4|G7QKM@&vY=n^ZUZAFz$$g^9NT~X9o1h%GA^HBy|GE?vo9A< z{!i+zjWsc$M;nLa_y=|hkQFvNI)Y!uMzcMprX~?2Y*qh%kn9!-T+aMiVH^#$E(JE0 zBf8v`nIU82%^t}Q(MpUOpP_9@w`pCjdRL-eQ1I;+JY?}->;9@DpnwS!9 zmdryUarD0@N9KIhar+74s%lH;*KBWl z)()(n#y%R3&gbQ-fB9&@!hw-QDR5-_-~lH(zBlN9iX{Z&MK}{R9K?HfhuYCf-90+H zAAM2#-Zdj_ji+a{<4OcEb9=H9Q1F&6LnSo&vdsc39B)@>makpJD4JoI6n;4*l-Cwp zbWyJiNvqe?ep;7fFrP9L3Thd_;Ms*>{9Mkz;V+B$fL}V*v8D|JN+!X# zD6To`dIQp*^W6F@4u(bo2+3ZjpJ<)-9FPimoUUx!T~IOQ*p^aqVLJUKwXka-xkUeG z6-Oibfag>w!t=u|?hy5n>YVZ1WI&NszQq{k&0d7;uX8(36)Mb*%I$PJ@&W5CJ{Lgx z@`g5Smy(X6`97zHOO#fXiXZbb+C9n@0=%o8@Ii4$-F#p+?b2mb=!v`9ZmVb+MWNB> zFH>qPIHMQj-;9Ks#rbzv3Bx~57Jw&!8c1}sdB;uZ3!QtqvF+QIpY~T%8k-Gk*x5j{ zSwY30<`<>Egc}bEEgY-J4TzI-4Di42A6PjN5B430gMBCBUH%M>tB3L57yxoz9LV%G zD6PyVFIQCBmKO-(D8p9IvpJ=~tLC-KR@#okV*fT`z?{`g1SZd&DZbmoogE*y&>bz~rllSwLg+k)RgqM0wp6&YCW$iWo@%fD{ZUwHYk`i)ITXYIKdOGd_E z_vx(BVMWBKJ-$~^uU$luG}orYTYAqpbNt$4pPpydGkkUs6$T%QBT(DVJyudiSMB(A z%?_Nfc!7|ftA}hEEKG@l<_3IKe&tZ`*=5~1=7N2`pSr$a$FDQm`quo3fQKQ9mpRsu z%`cHZZooV@V31JRGdUv4w`(0?)gm1G`SR2+$T69TkjI>bKE(E`3CwpvW!_?Co#oRbHyMk~;&XG)J|$bZ6otUrwuBF1GoHwAv*ly^>Tqy`Vq6h6OhHJ_UZL26G8`)wVOe7JLRlfwCOYO?$LXLgm1EnoVGgQ0>ZWkk92u z?n$Q~*2`_Gm*3${R4*;yuvX*EceG0}m5E({51lRCt9J5tw^wdJ4MZ) zWy~^o0l#(lS*%2v3U`|mE2&+#5nH^)VRQgd1`DByU5+g{_oeRYmv5~^30m*&Zfhm2Mz>-yyS+?A9tSlnI#gCi5hdYjSJxa0>jpR(%LjFBU641Om zo1x4wcUaI5d`YoQ<)R-Gg&xLlAMEMpEO(5U?$x(+&iEl?qWqYv;pV1g`bEvuj0ehA zR}{?BP)a$r*$<~8ojge~+;kl8@f)QzH_s)mci`w}lm~w-|D1X3q7~&EzPhKcvTi!- zt&qS~gD%?ovS*4SJO{3QTa;Qf{mK+3MG4i95cmFUnj>=TkIh5Jk<$aV1Mz-TuG-?>j%G^u|%0ju{SC^Ipj~C(& ze*_2-cYfZg^zo}0yCQfcD9_}e#kMBV(R>Q8q6!%EnBE=Zf_2ki=KyPQ(#0}? z-1ib@v5IHrF+6LvR9=nF=)U@a3jKo3H=DmY^y%j^zTfegE|n)*cl+6C2?N+su_$Y^I?nHy%$1*b-mt>pEAz{xL@Dcu_gVmIl|PoFeb(B5w&P;+RqTmO6U~ z7RU~Yq_gu`4s^hn?DhfvIQ`=-C|PxZ?L+oL%QD%w^rx6hc>MhU1k(h;bP15!cq%&c zYO-a+jETU?_($nPzI*FSvq;DdD zZUc=a>&=$%I~A@t&L)`8qCvC+(HzFli$8|#ehfkWJg^Qksd*G>Gn2tkK!_I`9?ioj z=!rm{GVW!uVSU{a!RecJ{-%+A<)3Jzbn!96=$Gr;{bpN3X4%uqTb+hct~2pYs6_{4 zcmRm@DKW29sl(54EuUD7+-{gZ_A2zZPet?-&G;{w3?nL9;)JO8~>q0#@MW>gT%dZa{2UoFJ*S&?nbh8-xY0;lVp zvU9~8c5wCTJqJi*PlNc{if9(uz{(Tl^0PAufsvT(%NuoRw^xp^`KvA8E_mkX&s4tb zH>rT9p?D6fPc*m6iyj;lpl2?eUS-shdR}@$Utk%L+lRMTav)PAWcH?vqu#f;(s9Kb z5(La^0z`}D*yKC6NVBZS%-#M~jf&GfK(Q{V(Rm#M$D*=}m%r?7Q)+3`p)C^p^vufU zn);jLajT4zTZM{xV~d$|i}1Zs#k^)ZQa^Q`HVRjjI_Fn3%8kPE+BH}6+HF-arRny} zAK_JVlX3Ic-pX9pelPQC)mg}4juaJXI_B~E=HVt@{%vE^-g+#h^~LiYnndyH!Gs?H zElK^_5@*Q{A;`Cjt9b#69fdl+;5WMczAZ^mcN@a+G4)8za*JV+8x@3nap}r7+qh{v{Ur15f$*k>@mz(CSY0YxLqd(<{T65`A+LBZw#4>3BKRtX{ zH8su_xC*azWLs=S1z0RP2J{SxvMx5Z-T%u`7^b+4zTPHRjpeMG$Ct+G90YFt+{tBC zrOSdj7yZ$?<(7%W^VkQux{s>8*aBNZw94Y5QI{+-#{3!@4gjOm4_6Kyyrd>e4Gfx0 z;PVK+5F~4MIc|&bERkl?ySm{A8%>Tse9ii0n%fq_x%czN^*MiY$KLomGVP>q0@#?t zns0~khnT5t0NFwG*P$Q4>lV}6?^~;-6EOa}OrX>mNa$8$TfyS{y@^9Rcp<_i>~|h) zXa7CzH@sv={E+KozBp-SqF$m-zBB4JG!8$YgmW>2Mu|XD_d^I-UUo8k1WV1M3ud}> zYoSTkHL(eaoF?v}5LncRh&H+OZf4(@W#(7R7&sOb;_eLVdogtjrcCKO06Na4EvG5r zybn)m>Sg46dT2NnFc2BeQ1i%~^)g@7gw6VhutJ<+4=V)Q6CX#VaW!y$Gf>k(5O!EA(~7S*<%m8gzY!b)x;69L=%&hSjh|$`VqIF_v!sJJ<$W^cZ$zC~$+cPVK0??us2PuPe4)@a_&wxq zo0xF0#dCSna2UB56vC(<>l3dS?K~hHILv{@FuIqY3q=R zL<_Bx#0w8|OL?yD3LTnzZBm!w*%+Fii|?%w!+kH>K)t84Y;lpZVf0#CTg^c`tgwfP zTYt*B?n6gOa%V=T&p}Ibs zWyk&9?+wpsc_(3f*YJPg9`KJ$?Gi>@(-Vf3s^BBM`yf0pCQIh>bnm`-g*$6d z_zdfuK)c+%gnj3mU#K{!cOq+bUUw|&@eLfyE3UEw*kD(D z;6kV-vlrtlrT}(T>4)Ta^uZnP_8fH6LBrk?*rP}c>u0a?7U6KMvl>~lWS=>>sor{O z?(px<1*bQG_I;a1@PvxY;)gD>?W14bILIPbZps?y)g5%l?^AxZjzz}bxeLy6{fIuckB z*TWVn)~`FB^H0HfAU*YYS5|&G2Ml3tEYT@fRiS z@=9$lb8@UXyGHX*PXz}rcDq=?`RBBXrIb3Om4m(9{(LKHe>*}vQukeXCCDUJQnAxJ z=3PDnmlkFJXH|j9kHUEqAOpc-E7Rr2Psw-e$SD9@zJS10id$oPr|!JF!3s1Dw=Fs% zd^{Ck&X+8x?(dnoe6-&!8*&3G6kh8rB;RU<-#bseAO;D!ir3-?7c`-Cbd>Y*n$dR! zl~>$WqbxigDtr#&QSAUauvTSu^L6(<3Ru&J>)0u)LR)>n@l9vt4xM6S9>*F)rn+1gwGFb{{D;yB%O))rNG zt4DlqjQ6DMkpFVFqAhJ?B6(A6MaF=PK3Gi0(Ren<(CsSL)LI-|tbGumkB$pnc(2Qn zJ$T2ON|M-8VZs-8M`)RKc7K&7_x`xk5-Ww!qTf03ZJK5Q@NyFRkx?CZ$nYAwpVuzr zdA&S$A=nCQh-JNQ+xI#^(+)9*Rx|JeEQ}({xki7Iv_}v3zVUA@e5xEfR>Cy&s`TzK zqH?@k+{?b8NtrTuKLN4$2p@((L^07khLl~)`gI@4L)V)kFS5de#f{0@2r5o9>`l-~ z=Gh|@Y4hN_4fu@_(!PVXtKz@Z1?FGnziJUpo2O<~9LOqGGg+IcuUn{shauO9iBNH$ zI#tdch#P<)Fg<)=V#%43+!BxTXKBYYuskAf&y@7O*n8dVN`35=eg{?1XzWU<?tf{wMagr_6dn;4;v(5mBbDxO{K(;MDtcA^+;#jJc+ciRV z%Z@_DAx?+$SEy|7cQvhY7WWurq`!;M_mA?}E2x74$3$93?(Z6?kJU^}ofjJ{4&9$i zRrio~WO^3Pf0W*3)k8Q`wSxRWujDx(|Oi0?*6|NaJ6}@Ai$&@KdRhf zZUq0Xag3-}l{0gvyfP`O%VfG+2Rs&v@8o%~{&L;7{=f#iWA!r(VB^ z=nXDz!-N&L3GL31apw9z+0S9AUzr^xV>Ir!<-D>ha5uO}b!;=!a_iWR16`CRludHU zo|&K&!8>n}sfXpPxI@6GS65~h$x9K3O!WA$=#om;X2;jcq*P`j0YFQrR91;K)Pak?@D#cf*hBrJjsCe}wj(ID+jUL`EQ{V!eDP7eWDNpljzZKf-B1YJ% zp4&BgYxQK#Y-&Wg*(^&$ zbtGOki)~WSx0*?oR`<`NUaOdP`sm-DCZFTK5t-lE8?Nzmx-2c|^2~{%^HRbj4vSzv zGt$aWskMOq9cA~@ji9NcOoMr5LP--}$QBnq#sgm5uwL}tx_?h*VMT})R~iS3-g`hN zjDlHlzNntf3AUkQ=gMI#jB8haY~x({3OI}Ou6k$OzByR#Nbpkp6`$W-;LE+1#z{>k ze@^s;3ZBrpiuE|0t1k7bQU!%}n!!5H?v}H5m+HsBJ#n=%`kR4UE-7*70}(1beok#` zF{Q+rT;frCaGC;_rm%-8TW(OV*CZeqDy!RJ0%z>lZ5>SNyFrCYZetlaVJ7NN=ebsv z6!H^Qu}ft)Vz9xA%L8_5^s59 z%Km%C+~4}J=@V9w=gpxGrouUQb-b!xy3PTb*J5o8jY7E8 zG8*!7PGHF8{NOBl%LhgSKcO7E9QsNKub1$v-{_sla1y9nRZds9#4fsn@qDw9F`n^& z(k-PHag{sSHm|M7f61MdElu2TDCxCREMKuBk}mYS+rB$O;a@WlAs?Z<_32C#lDTOq zJ)(QGDhXpD08X3_pAx0Y>m}yD5%c`z3(E2k?o(a?)#v6-DDw+Zs0dZOdq@(-PJnKb z*CM+DsWmu)G>%1@!Q!7VI({+{tjok)1oNtCr6`0PGKys8BbfJh_@B`$l{%1Ght>|{ z`ocp&{9X_lOoX_%R&0dZkzOnr5=?I1Vy6nj%CReMD9O>-CL@B-J|9opU8+y zVsM_m-3zmtLcZ8HXJ7SM$^0hcV)$=Nj>C9Gy9s(!TeZaAs|aS!=8xTF=x&+yPZ7W& z4oD*y64>Ab-(QN{ve(2G^M$yWLxq0mQm$6T*j+Og#Rm=(+ZUgoFkZd6Rv3($NL*$; z$(Y+clK-aCxaE3TnZP?6wID$M$L7YXD3`F^RIB;h(`XR5Wv<_Ss`hQS>cYyK3nA$f zKcwm)S5#$M;$+_N2^XKZ6^X(Klbrh9TF=yV$XsY)$4nH0mCyB-KJW!1Ik9%FK}^V=5Lu~&a()@WR2}*H5u4*h#fT82cUhDAe{64Kc_mDM~-9fA@ZjUucbrm}vd1g3aIysf8idw}0yss=yAUxVET#mIv99wgCsD z0hidv_c^sSjQpGC4)1g#8$ro`IYp)bifJ;x{eTRJz>87~^Oyow?(?S4_S_w&MY#>N zTrQYAu!}>V^OUae)?B+%7Gw40Z`PaC)yGz@*)sr(ql#Fh0x)~#-F?20{l{DEHP!4H zN1C1}7;RX5+f1$9YG4(eqQM`s$E6(P4DFsag@(rAo^~A6mcD1y8K95<@@x6Fn6_z* z&qZON6w9&!0e~11Czk>4Kt(LP5thLWocjM0E)tcYJ0>4P6evftysfZSC<{eShAAmM z5^!o((&($-e8Kzj>^eQvGwm$aHMtJKD|5GEd+okrjx}$)-9GY`!?=$v--+YZ=sxK{ zwzDerT&Za(s^-~U335n+3-Sr=O27Rjb~0!Gq=F$zd`w1;y5eG~UtOP2?F+!0AZ%mK z=V1p^vxv?k$Aez1xWSS&t@=4z8V-I8(u|;dM>^^Q74g$3gLA~cu9Y%W&q@Qk=)LL= zzfnJyGurS8Kn@4^BD*D@d7wI`4dN(N=yDx&$Envc?vCRJN8_v-M5+48j5zAbNX(m@ zE1c{1o-hI$Ud!WiP;Gm^6sNUmy@kGOs%@2H3X31yf0s(P$ZIq_`|geOUM*|2RCN?7 z4HKEvFYnN4wW`$1o{_Z$)H4v!lU(@RhUP~l+eWS$_;j_PV#ZOm5CNAL0hDeR9C7!%>$Y^N`R ziu&0e5NI8CETvG>8lP*IzMI1k{@D8pJN=lm(_#}REkCTYE`GRHeIBbSTx79++TGUr zeYwT&2BNjItaZ5`!bQZZ;U!PonKgfkjw$TIT47_sLmAW1ycS7C++4E^q9^S`;wXmm zrGLdpt@(rEPSO31ptgLOqfu|w6meC~D3^4`Nl8jHF};y-mSdEs`4A1R(~XSCs(X63 zsbjaPGvrn${h_9$Jd6Y-$XO^V#0Xk+io~-8BEYsTp_qLgO|%gKRGBjqdiY4xa{X4xZDc(kF5;Rrs)hW&Kf7fB+hg~eCIJc^%I#kCkZ zffewTXMqQ!vjjCSLG$p6Sh2W_Uq>w?GdT$a4}NvHwgeax5+-@QP=tt(qE3-8swJk8 z;Ocrstf4tnq22HeB#|*5NMV1@<`Bk0lhRKT#gZz^{gPDo)=Xg^LG)jD%qaYJP=0(m zK;YANcgiHnk65z#%Z=LC{iL6tuC4~KjV+)Y_po-gq_nc56@bDs#`ulQmfqv_p_Uq{ zH%aYyfdRV~4cHuN{TULKfbvc%kQXb-hBUZkp)BS^snK&<_;;no*pkZ=xsV3Se}}*F z0Z0lBQa8fcL%cXQPG*;J`Z?x9y*VsXDm``UZiogx&>V`waofSJt&Cl(GL|NyRoAXw z4to1N$TZH@rYH-dWm%u(fN`qmt&6~@H(v@0YY6)yzRxFa%N&i8{Y5q*{+&E3 zHMSRlpH5|5Q^0QJHSyK^Ww0L7wP-@;LOO3)YN*lCaBu~F@6$ogSX6}np7mB@f>%u^ zLKgq-*MZsy^5nj8I(^YCjsx73X4q-e`t0H}vX%tSdvsvOIBSu8G2))`K9`J1ES``e ztOiV5j=S>BFPnD26?a2t54T3HGL${6Wo=)lzR1~@%4>|j-0H@br><(Wz41hMTsLde z!y3VZVeeR{)#$%d>DlkxM=f3i*~{L5(k-BLy$*N%EA8$x@%I2_iK2UjCVPGW^rsu@}A>7X;=lf|A6Da-ef9gB< z0M+wTXihD6^{Bt@MekQ>?{=1pYRtXXzNgmzImV$$it|fEk&1wh*As%zy2T-sAjRZ> zd5ZO)NQF&L^yi3sJ5oo$(6H1CHaEjxRQdxY|J3f}jP*FJN&G>Ueg(;I)kes5ZRNGT z&e_SyxH4~RgOTgdRMH=mD-&Jgzp`J9tC3q4S&KkFzzq5SOyAjVLPHIy^nXUUHPv-~ z)}%G@eRvs)sS~EickvwIS1`x`)lVAH0>#$&W3ot)bm2R;DIXjimlYPWS6A=CkV7~p zeLkVBhmLfUIC?=IZ)VnJvvkYjgc5t0iC8c)o;$;#${cg&vk-bUO|=98=$ zp}qL>I3Pn~OSFPmD8IKI_l<36@uX9(k6*zM=_RE9a$RFbr%W`?cUKKBDkHty%A)jg z03+uP+&ew|If~PTRGRsWboddM7`pwJkB$~aj}}xqqX9A%=MAyu@L*0`>%1D>5rqXS zv}ejpqkNc@!hU@FqG|0J60TCpY3)|7m0j-Uk4DK;kkE=;l&XHSE5*`Z3RxKhs$YrD zkvUC}qKI*VW?`fmF&E;VyZ)SEtluI}DIED$x0P6i%P)K<>Xx+NSOz zlF_I=Mp+M`CiE-V;S9oC6=<6{ocFchy+Hy4`rLp2M26iL=O{sHh@kr&lz6>3)u+4Q z;hl8cGahVVBPZT`b@`=x;j6S_^f_qZ1ASd05T8>^EOh>nq@yN7lsjqU5oh_6#q6x-R-d zj2?cvlr(`G%xg}ie_;$mL~fFKw$yf>gX-gJSzOAi1$!=N!>9Fvz}gP}c-=cFrYDia zp@Y_rCgk02=u}_xHuH|0g)5MANIfm8jTwzw0Y4lxi4RR;} z=qUmf^)#^&51)k*wea`bcC*r&pMOqOA(^XvlBTZQiR;PwFEV4>y}Dy=%Wund;PP7e z0J={$Pc{%!mq1Ws#Ig-uba=sg!n9E1HZ>m+b)&l$)v?V!)9(q=1;rKHv}Z#mF8nMl zj{-EbcgCc^{-NksIg(Vi;=Gyi-b@gk2Vo&e^Qv?tErOzvbWfB17<0BfJ{KPCB_(Gm zj}38{i%b8?lommz(s}t903I2O*i3Y%9{MD`I3kQyoK|bu(*tmsjk;>6)xPXAzak zcr2q-CWA)Hmn||MI?E;q$cvPa zF=4N@x#82QhVZ!|>qdLQm46#1`g)c13kj(V2dmKCngvOZ6sctEyoQo}5kvvVGUga1 z0RZ%hZNtJ}IE*X!nUD7tW_zg=bE<9?pbVo$nVlU zIc?iFo8I?tSjHr;U$ucmx>8yZJ!}xbRXKI%A>Jg;9G0_sRIvjpEpnP#KBxDbaS}cE z?Th-9&9ep{53y$ATg;1^2h->Jf^RA7y&_+FzQl9)hBbhse+R|O$+bWcNbHk*Gi&g? zMfG11NHI#UfblSTn$NZuoL+x&Sm)FojYfHWBkN2D%zat>{i&p#Hd9#pm_7;@(;lVp zUqz+*AFy`P|CRm^Ol^aeWo#JwZ&n@#0j}fBoyM^EOAmLB z#HNHgbDYj2egcGi|o0E z7E)-RwuQz;7nNAhU-Hpg-IahPi=}3jef_IUFw~*{HN5a-Sinw=)zoER_wSP$o!(>q zP9B5%0S>ZCghw%gBUc~Zo%m307Q3b^`Sx2Xz%~BFq_or3q88jF2tcx$npPQkT#*Nu z?r~}qrTT;7+mnThZ&V8iTh@Q5=cQ!tpZrjky7_*m%q_>uvncJaYoX-SiH!Fir?lm7 zfH>>(-Mpu|8tum#KPogU7?oxy{rq-(>ZCNv@CenCD7s4h^={Sd3G)m0Oia_J5*1e; z)eei76%R=6(`K+_4%jjE^^y3~$`EHHW|OPv)9i@&ljP)(&)UK>+NXX^ zoV3T=y(h*N?gDH%p%c`<~1PvulNJ*n=Mz2bTk^!a=_Lz$&a$PBeOF;@bvMQ zFgBItwtVCW64>czN_Ros?K&=>mGZyI>4f#-x(!{mFta$oKRzo91+8=+rxsR#dMj{P zklLF6Ljb`9E)+2oH0nX%em8g0nNwa7{FyzZvMWEHtun2l8;&JU7(0nqqbX~Ce{;?x zBtg?^z0!oe8qzi^lTuE7<^xwK8EWb`HwOBLcWhqE+Q0VWCNVT-Ll|LE*nW%>r2m}p zfCG72;Ktp0YEk;s?sibT8!WFa#u6U0_nvVsOrL7TTl%8Wg^)HnboUZ5UDF&|Yg5#? z6W~^KN`^|vg%BYjDAn*)i%2f~-=FD>?V7!;8MgjV`#@eZPH*fBd^)Iqy3Bys=?Xt# zkhE`*xMMKUX=F{e2GKS62q16{NqtLD1i3u1cTHsfg5%(<=xe$>j-I=13X|keQvb3d zvShoM$yr4UdLZzQ)>r0AHaTFJ-%Iu#LORBnEljk|Eq*yO;uabI57I0WX~01pp|E0@ z=_d&M6^d!(K>DHt)NC)*?ES$x!MO{$RWFy}I!2c~fu zD?=4!Di6-M9odz~wd9KlQ6x-Zd00*}09^H{;gedXw@c#kDpj7kmBxrfr<@CsRiWZK zqd4%P!T?0vdvxgRK=R#sj9@-H;B?HCItUI^aUC4&FxMryrL4sC@m5t{b>S73ZO|%~ zK#yWT(PYUy2PQw%1I|lxog4*Lwi)VZ6%dtY7U+lPmRwvxT$ug{3);Qxg4V;3! zNj@8G%0u3EX?-x+#9}n zGc&&(p&!lYrSo%oSEP9N76$dDM-jH)tHOwv%Mgp))>jKHv0ROZCNGTTXBv!AWKVM)Q8{#n4 zQJzLnQ2Q#buX=yu`DPm6;DYi?YoNoQGZ5j12F`<^{0e!~(KaO}9e<6b|1BjiSDnK? zpFOY8G3R*YNoDriWOMoVWeIY?!GJ%<5Q`2aso;T-;x6Y%+(qtaAh1d6w70+S zvBZ`nM5+8rld)9ay9@_R##i3%$o`oZ=1$917LmM8wi8Dpz?cu@p-rGjkX+Mle~08TcbuBC9JqgGNy-5}xthnjO}p9dRJx zwA}9&wfXs`h>?PwfJZ((JbOkBNLdYgG_Hi}<^#(nJ*K86G^&apRrh%FacKO)@SiK+ z+b=WcJWgJl=L4HAGLpnSu_s(KCmI~9nfoV9MC{{aGzyu+=0VeXSZCvFabLIjoTgvk>;F4gry z27=&#wP%|rl$uK~k`eWeZ3lh5zZodj{T=nPk>_%{6<$U#ud`m|9T%J3;K3fI7#?Rd zIDJ_K+1%h>Ymmk;xQsK0|4V_NqQIYoZd2ZINQD={&O)~*XTX+wcE#R( z@;=o(c)=w_6wo?j8L=P=;YUPK-lP#eUAUoyHNgugWATCSXCVz?8_!PIMrU$bTT9y4 zjXNhFyKvS|UC-QE8&De--Tx@FmJ1AiR&rShUH1>Ow#@#$aT@wuqRU1sMM9GIYv6+` zfe(Nn0EFWk{^RMJS!5m}*eUPMD)Ya7bXZd`T?m>NZf9kbH2P>mr=5v9HD@~5H08q5_ zppu^Rj|+$iv;L7$2ckl!jEF2~uDw16x!MK&5S0n@B3wXVtl@9}Lw}7Jvw{{``89YR zRkelf|Hn{Kd39EIOUIk3qr^Ps%{*o`4d8%(vwn|N(cL}+17T!dJNYcs0nXiF01EvS zdp~vWyqA>uqr7^&Z1!r0Rok9P&Kri$&fHH?nn2zsWC|gh<4;JHVd|}@C5f$%{0=ip zWknv92EZme_@lI27CL)J`lnJd-@6FO<9J^LJ1`Y-d!T40Uk?U<%?a3HqWp=gL9f-K zyK=i4^vO#US$FkKjZ4zVBc9#jAmc~{{RF|m)|0lecH30`eZxf`WQoqc&Gt&4{lAyZ z0S1O?|5!#Zsya9vDN)_>eCv>fM*91n?}?TPTG_W02(te@W6;CHIx7`yZTZCE4>n8L4`LHMGhl3Nf5(h*MOOs+~3YTz2ZRO^>C#A%jUOY&qD3nPVP<^p{e z{O_6(Q#Wt7PTd}U!$GDZmQlrAb0eI;LQ{i35KZFTV0&Y5j&2jil%UFEQ}&{=*Fms0 ztTHu03HRR;+1P+PqLyGHr+a2GWfF&+AjX)(`G?uVvyvCfS7qhf>$eTdGe>s<4niR>ONuhYTl=`=b6Q-%LX^+Z*`&(?nF!1;y!A^ZpbVz> z!->hqAwQDOzDzik)4%e)ENM~T0yu)B-T@dr>I<;)u$s(b} z@HU+0pr(!dlzCsf=Z&X&mT?ODgZ7#nbBXQ+THDfui~<2T`V;nvpFK& z;%yLIFwaEN!AtQ9Kgtl~b{6y@e_qv+P=P}g=ht&6H)j}^KS8DA^{Pt$q|v zEoRNhDbr7JnZ|m_vn5KLy(HDw7AQ^|J2?v*U%-m3BFJ(S`}?`-7opp^jI}ktQ47mR zydnyldGkjc9~FKlpceMZVO!qHmGW6JaE#kxyn63Noke8PEx|H$;pF?A-yF&LOqc@B z+;jq~z}bcNDH{lGA0A3RyJ!k~c&9)Py94}--_=MCb8$MdCQ)a9&Cr4vBLf*#5`VrK zzG!9#O+wdK5_4sy@t;Dib}-?V?rIdx?fJJHa{qruXipdl;s5v@uSK*@Qe8(YVI#sM zD9T0t9!37Q-CIMZ&*JrhlA;{C^|DBH?>BR1dQQm*Ldn7!Kn?v=A>vY?<&y{n+{arm z%f$Ps;XVCjmx$J{E#sXzy3kw>HWB8K86V$q#QVxr3CdOO4V;nzA_`1DqKVsMfne;s z77(ZV9ed}Wb76)=jEVl`4<_)3cZyhFyL=HC{%fxkwLq{7TktcJ{B6G?=A_EzlL$fu zJ9xg#nAqXH0MM*Yo;3d5)W$X-qQ^!s)GDM-R}(x=5I&2T%E_!-D^MvedqE1=Nc z%@0mwc-xc!fYg>DVvNMIV~9#Zc0mc}amSb@R0JZk4%-W93 z*^acIQveEajaauxC9DjBS4ggd zckg6PN*39qmtNX|D`dkOz;u%aaLAqXKfl>UqdgH*(^UpnTa4h6mx)qt+-U18l5y-A z16wtX*t9FEvG=|+9$Wp)RA{%zDrN}x{}jrmA%q-$7yw)CHVpbFdDZ-qcxMgzU4>_G z7TQ_M*JziUeSOg?!Y@MXIb~O7h|3zkB6jDN4~4&bL{MF4rfN>7-)$y(_~qQUKVpP6 zuQy^ar@>tVr?B9g*5GeTeg2g6MRU#HuN~%!5NdDLAHBJsSY0Yu{O-Nj4+Vo%g3eDq z+n9b7lt%!h1)^7EJL(0Q3K&GbIxolbiuXw=;t^oo}P#o z)-bS|(RJ|BpA(h*Ij5boBbl*3r}7{&O9b&!{?4%gAF}|lH6wSVdNb2lNUrn81+j?8 znkqE+R6>43yOXm1Q2IZXP_yFohyK$p=+%j{N3&(;{*o)1D;(AA5fKuvB~ zf)byYmx!buUQ4)wKEf|+9&?7jZa6j>#hj#wAdQ~90Lx>+FWx&K|GgS}!r*vj*7DKp zH;lX4ze=5G+>8$wKU(RVw#8(HGynM&|9>o9dpy(M|L>x5D@MpQmoamjBErbshOFGL zliU*uF>@)*{Wfz;GSQISFCj)XK#SGMbt}>4?l6K)7d4X>jl%*@b<109N|~%_wOY?VAP= zC499iub_1V#(MO=|Dcnt$A*I3xu%VbK83%62Ktisa2}fhQrjIOVevh-8F)rY6*BTh zI^)ilG2OeARCVPySOP3H~e$K&WGI8(RjZLxhUe$Z} zTYx$hhW{hvvlk11DLy?Puij4pE#BOC;#JCC+F{C?K9FL$Rkp&-Y~Z=0X$@k24#_^m zqrXm6BeBBi+kb?{qmF*xNCf`rpWg4c$LLK9Yu$0A&X^*^ND4~x3irI!hle5es)45^w#3>rI9$;jkq2PYAWm3sf@%c0k4yr)ZAEG6DBg z!MZqT9e&2!#%)*RsoJVWW%3SHcK6ckH9yb3yms62yRZB*D{pICCB>iSDNcA#G#z0d zF@^b-u-wUl%A3j4{X}i=3zsQ@fg1-JS0J-`VVUvG6%xQ96>dq)2A02JC^h(=hAm2;DU9#(H<4O>IizANrLQyM73_?A#688bI8&DWYt-zoGJ!u zBxVo#y9C7HS4;qy^JF_yl5I|~|232jtlqbp2jBNavRt^||M%O$Ja^;pCc<7Ng5R7gX?=Ad~I zx>omlO{r^NQky2eX~L^O%fL0JOuAXphBS3vK54^-Ppb3DP)jx6-NCI0e=Az&TT}U^ zApT?ttzv6z9kNa_a}l2!CNTdeg73|l;RN!9!}-t%R+LBUGsdue^&UX2pj+M^JWgSV z>mZVyQdwT@d097P_#R!tL6Ww8zEy4`BGSzZAFDN-5bq=zDN|FO`mAx=k|cpwH-ENp z^mCOCA0M35VVU5N>;$mkigebtS6TkHx)i)bZ`PoFj2d?U6jtf{ezf)pa}kQdTv*mN zcaS&nj=V7x$dMeF?I|Vc%(Zf>#xp%;b4QBwIy3FYOUps_i;aY_LJ>cjCMmskogJnhq|*TIOk-e( ziJS-})4?qkZhbHl%|kp;)L$T|Nwq0Nv&mb_lQD58-SqGC-Yx&Z*Mg2sb;K}RwtzpB zgvQsm`T#}l! zN zK8pgX?Y+*H(WeNM=}dsM=!Kvo4vm{H^nOl>vw0(aau>PBJs94Z`$e2d=J769H2L<} zZN1G4kO}uy95IqwCXos0t^MmF{$ey~Z$s?J%O}At)$x0W9Hb5b5E@G3gLRgB+8Ksg zPXCPXFWTPpwj9WB{tO}S6SkPrS^0e(MF2f8;!w)q0TJ_vNQ^Yi1!q>dP48qKMWQ%H z+(`K%@MMO?OP1U3fLH!1(G(Wov7$ur(@bH=J}j)L*)BJq_KQ#3PTMQBu$57SL$nL` zn)ljmzGmkV`Oy!B0f8f@wY}#RwQ7{!RwXR*5`-4*S;NvN`5Fx0;R2rsMc!da39D@?~F|XCdE4_C&POH zt+|d%!9V3z7k?*%n=l+46YuakgXALE;wDm7RSBD>RQVRv+cueXlJl?F09%E#@&)A= zr+#0cIV?*@>38H2%jZ|e#yD>bpA{KDe+ChLGC~iSoe<>4yBN{_z(TB#PpW6OXPg_R z$TPi{J>xO}`)3kC-wuqwNNRSU%sc4g+)b~u*`;VFetB7HlCCV#_#9^xovh@i?jy&( zG0D&O@dBN9Mm0V=Vd+P}&|JtxbmZnU+V*jLrN)CCJ&Ti>dsLqM1qg)A2zxH8IEKeg z^O9GXMA{$-PyBKIf_gN_N$wFf}FPO_oYO5=u!fuJf z!-8%=y=Q%&|L{ruv^+m+Pu`{Qeassy#X%Z_f5b0(*g0>lmf{2g7din9m3z9>Gm!;Y zhhh}7P(iwO671B}nx|h1gAfJQ1neU1B zx5sjLMyYL#qE3(hSi(-X@~P}RfW%>?rN4Uta+P}{A@1t~h%#~Lp2Tfx^8^fv+F5D1 z?8p3EL9Y^=O^U86Wk%_u6;D9QfssY2xD_VqsVg2W6c(8(5B7}^|@T?P5 z#sCL2#>0=yH)RahJ9~kPdzq*$SHH<)<@Ijx>rPN9GNn?ZyjhzYV1lh>)E1H%rDKxX zUycKY9CTZc?}IOM39bTf)*t%%oNi*`@!zKSo+$txc7EL zd3M~)&r-T2$B*k%Ws~+0kFK9sM(IW(Ih?lnTUKw}ebp@5AktD#2+_?)j3lG(0WKdT z_4x;?J+mx%L|WT5vN14|&!wXCq~_YJL2|^#H?)UIW$O02==AX!1t-q#LTxq2FI5r9 zkaGZBj^L|Ky+QloqCDIa7_;RJ6G2L2Oi;?p<6rZj9JV>ok{`OJv<0 zdv@-|FR^Dm+V>h*sAj*oOA-?7HSoJ`;Yne-(s2iF7grlr zEsff|@141uSmUtl*|Uh`S{HPvNXe;NK)feHV~&Y3B_1nenKKW&SwHPi%h|Y`Giz2} z@zIu<7?u9vjF0kS^W_AG!D(JC{H%qR(n#9JF>xIgH7?r7XQoITFHs}iTB_{`E2*8x zH}7lu^>x6r=FeA|H>ZaiK$;)_1q(6D7;lPx{?mGZ;LAea517_>i1_v56s<@fLqVz$ zxQlsS@LP;VTZ|Gdip-$7t<9YpJ?ddol4Ugza_~qM;_AQBJR-LXK}D+2V0b-&y8PVS zp(~_pk#%9ICu!A+6)&YZ4{y!V$CR^qP&v~)=5q4N@+5OMddYmTJ^)tmC&4GHR z7eP&R1Q8K1zKc$W=WI_X!U?)h7>(3aT@I94psrD;WT%*XrxI8IFLr@efb;HIGz)BP z_r6tee0f$2j3c0JF;}Emq2ih*X-gt+9#VMI7<4P%x5nnd7s5Ly;syAN40;$5Qsnr- zFL24%@XvsojB;rE!^cw~@L@EOK`0_8<`$WM*N(iFCDynVFChA#QkLQf(UKyQh&>bH zPd}e89De&$#!V+wHMqk_H=6rZ5sp`xqtE7R!17}~jM{>)j15&$gxWLvUG5jiIHqSp zi#19dIl@~E)=}(IQ|z)IbW+r|o7UV%(r2pfoDS_)8nT!yxr2B8_>JF2rFlSqpt9tA zJYBhLiIpN32ZO(PdR+!z0)eOJ5tqw;$1iFse*g&-nj`(#*hcC(N`ToNOc99!6=@#J zd9|~Yx@Z0Ty#P9-U2yV-eI%{7qT|t~ZTF_m$M-)~g^R}G5Z)~BE#=r?Is^ZzG!ptJ zk11s{a7zlpe}bD2Nw_ zTgmSWYU>$vCk67-dEsI!@IA9v0DQqS;vLi?@5$rr?A2(w+@peRN9fmxU7og~+^P)x zcx<(vqu78W*fUujaPJm28Wv_v^OIVVseE)rm=7)a8(q}+9vgLxJ~I$9!GXv~I3BN^ z(-{$79F-JutvKv$5Pm~`d^1YqL6TFjAone8RaSted*YMk7!=FO_3lcs&6S$|PlL4x zN~)7lh;gVf22C-G_a^0s+&t~D>`VJC(nxV%*o?2(UDQ~9z4;~Y71kB44NP9KX7OW5 zW1FG*Zax*BTH@Iyfaj2O<*vRLqMs-IhSy+72rzs-AKVCqCYpkI{jBd32wyV#Qe^{0 znW`sn^wG0IP`|CVF_YdVbHF;%V=)wPJ?J*<1n@fkdFds@6DarQv=6CA8n{^Sda^|} zA>K-1$m%ZKqQUu!HsF->HJ!0K()FzpRC{WOg&?tztT`kp>^AjwSq1H%5%%=oh?r*Y zdb*ZIJ|SgeJiKenh$RZiH(Y-+@43>jbHgXKEOcZ>=tJUzZzre*kwM$>A-8(+)3!|^ zXL1{N9^ex9h*5EbyydOHmrK2^*38~ktL8)5z*!`V92-iBstAa@lE>a%JJk-;k^rZN zsSGKR>6&2MTm~jOmy&AuAN$qqY2(vY%AT%DmWeT(G;}wNyxH`Y|8+deq^W_w21ib7 zPRq?Iakfn3S*1^J9}GTk&|3EW5Zy^K(^R!b;?ai5ewK6g7XRUkY@)oM5tek}Y_f4` zooy=27z%^JLCw=&z}kuKOjbuU^@xbtjuGv7bg9uVz{BAP~Wq{HgNOTzEIA)k3KDt<9_yG zM&h-W;kAmPup8&qhfx^c_L*OU_Hi>|cDf-#1Q)l7Et00tJ2BiMXf5KMB>npXR+vWr z;%CAIzpP?N=WXp>^{=16LS0SY29$ikM@YJ#o0$TF>eu;ba#G)~t!Nl9YA@@J>s8Je zJ)aP1s<&iy42=dn=fPAdx9zjXlAq6)!2=)8k$ENr(3QI_SHYr!5!H-PU|!9srS@ln z7k;QWzZ>L&rehAas~M5ZeZ%ixy~k$Z``0(I9Vk?J?DiaxcDPFfT&;A@Wvh*e>?o`; zCa4++r-?*+oznwuUsBE4j@3C#YnDGTe()Pl{O+NWbm&-eR+AH=iOkae#1Td6KR$#v zPTgP;F6KRiLG~V6FkIQ1SZ`PomCcY^X6HRjeVb5q7-L+Yrd1h(E-$kzE!nwZj2#FLyfZZmnxi{3G9srI;unVkZc+?FZP>Wz zCrK1jN|QAYdR&1L?5qkr3qKcKOi|NmMQz&zYb=4mO_YIjqAiVz5nQww5Rib)X&nNS z&FLNKxUdgTwE`UgGk9wnCC(ZHk@eH2`SL>n9iU3%V|xyJ=DratN@-4!B9Db`{KTDk zGa>D75tN+t(GrP~Y=c{1qS;pN0p7kas!CNE#?CpH(v~q&lp` z=~`LY^OyK`@tmsF%G%XewRscfZgMZ5J?Uv9_eO{3VwnI%etThPdY`h@x6~VFjG@Lf z;2E5(W)~cc3OeL+i(uDEl;6ACV#7<>%5AYa?d071*yB?ghL{1)c^eCEY$U|9wjKZk zlvQ-Pygvto>)05tq;}rG!229i;5`U2;M$f1=QSmGo{Q&I)?$(DtY(x>AyY|YsT(}R zdB3W%|AMHd2Qq-{Pqe==NK%=)S^ zQRrn>3g!V^# zP74Co1`Cv+X}jwMNM8MDl}C+YBLrWd)#ziYvP5P#a272G&9OZ7OjE>%*R?MmwGQ5dIo(k>0Ps*oU*3Q_&2~wM% zEvO$;`1hT(_8lB(rmB_2GqU+F{J)MEqbAb9_lmaSe@86B2Byvh{55;*5MPxFAFW{P zv&U(C!;R6pk$DejB5P>uUD)93%@4lc+>D+t+Wx9(L&ry365IsH|yYV&Bf@g{7m=gLm032+S!k#4u_2x;suF7li&w z*;OoD2fpOH`yEif2ZK_gAI!pYaeeHSSx4akFH#Vhxe*dH->KOXG>HzMO(-8qyN1vW z&+BFzsSpBwgPF5nomSV8dN?K3tNm;rf?EHTGG;9SS5c4#aCx=*qVKMNPm_S}n|z<| z`Mwi&lMFiv_(OYBBu0PV4H||Mcq{Pq+b~A*$5;_qE0GtC4vpnB8f`pjM@?BJ%-$Uh zVjBsuMQE7y)Jf7_TSKf&WNFE(1Y04;)DQV)nEb4#_eL#w&|i^pp&<>P6Q3AYax`Xv zSgiP2c~eJv<7N&ou{&ktsgJIvvhMqz;S_n!)iZ-SNvHk$dauinDNAFH0nEKIAy-U8 zP76OYm?IJMwVVuZul`6&sJ1>2EFRzy6f?||JGcyiNo>>vzGXVSgi)!FxjLMn|Cm{( zevM|-7ay&Q1q9iQi>ApLsCRBxOQ9dcR79=~F9MQ7e(bU9(^^)SXhz<(Rk4p&LmWCz zumM&T${@I-Od1a9+#S6CDs10dX1KWMD(e2xtMeKkt=y!nHVlt7yj`PvnL6Q*9tiOi zZTGXEGHX70zieRmc7%sfXm1qo)jBr)%e4kJGg98--uQjjsK;$tBcNpmy4PHHi52nW z0C1F<_Id1osH43Qs>L(zeB=H>xW^**^61x$+#ROTNdn{RV_<{_J|v1g0Ys^+wn(N#`@T4w5wFe# zA{y}&-!LDVrs`-%A%vE?N5N~N3p%seEALk%bk1z5h<6qg$!WAW@s6zO$tXAF_w6tz z^{&IMDv%iy261x3s`|XmJ_Nx$L29bk6pJVgGBL)g=_kM&Ys2*Ffua- zZ;HaHdzJO2{M?=P!g*T}TTy{-wATP7gjQNU74OZOGJMk*V~pis%dCXJO*ClIeS1*| z*f1LmG?l!a@p-e$JoC#Uu5XhHOu`}dx_ixMJmlyGSX<1K%M{)`Nisc|z(}d6VQhmg zR0l6kezG+OJ}^-K_2VhV0<#{J{)dbqu10U*1bCb@fU}oy@{hvCq*cRv;k4JApDzZh zqe3egd*64vl9miZrAgi`1O`1p0V%aH+OzWHr2v|0DhLyAvmaV7;w6UMN@9>E)W(CI zri&LZKDgwH8U1#;`x7AGa4am=lV00k&FAR2-ElYpIcJjp$~Y(%cFko@j22u`kaDRD( z-$9_3Od?bvHm2oSH*9dbauoMJBGiZyFd1CW1q=V}kL%0fvBi7jZ+>ywG7K}p91lom za6i5ts&g6ad5NuVl2Q5+80e`8OlvXYgL3W+3R8w#o48ua8!s|BEzt4ooco-#`RXBw5FAq9oYL*g$P=(DXP=~;}ef2#1C4>A~l z5=(2;t=)td)&P0XylrXY=5~E+ih(a%E31B6lnxZjCbidZ@sP&lj@X{Fz|g(Gv}s@ zBUx!F=gknX+K{{8L`?14k58hal5f~lEJo5l4=F3&_>#gnx8-uq>W)@9^vx9~n;=}{ z4y$L4vOh`Sq7lYqzs6+8>D(Q{a}wNi`Ufj?194KdtjEMrp$1;jeUCImJ=yuGBE{tN zEkw3BnF9Ko3B+I5xg{5_#qKT9tTCtm4iyM0v%w0CLf4m4c`LY!vWW{nPT>-_EzHiG zUSlPF*T?#KUPA{FA1q3)aGX~f-BD^HI+t`xb?&{)nv0}$#xUj#F;uIAycBda$5dyH zBoGp>3ja*}DSG<{5D@$Ue%4<7sv=^9SM#VNiLMPMoAoQEIU8S^wwIjiF%5v;9hS7a zn7v{Jp4sCqcv6)q@lN!xL@X!>RlvUx85R`uXq)AD(%?BGWa4w5fref!9}hcQ469OU z+HcUPbUUfjftE`EUIIv?lLgIl_j>^jQojjYS~-Bvg>Zk(W<~YvdYFc=+S+4ARXuA? zPZ?;?dQBWGOdQZpYy-mV?TJEp8#f866tj$TKBF4^5P0?`@Iu@9RN1i|pWvQPx8t6Z z2Qs&v;+|`Ma^ax;PTZk5cK@sm=J$2JPUBw@3yQeime=@95ns2&@*l9JYzVAl_Zfq- zZ1F;dhI~0>1*I*kl;YR#tTM9i@S-ER!yTshRxlYbvJ;*`4>gnPs0Xa)sH0iM;~s1gm_udx7HKyIkObWgQrB^ZvU>K5pp!{zt+6 zaF=fuQlHcMSGoD3CI#gq|3!<<_xbZ=K{|cjngT)XH>f%=ycIQa3k(^fa94hu+cBGN zOp`(hlAdZUKgxQx`d#I+dHI)0kDxf2C)1B6S+eG3CadYto-?CBpY2QV8xL%zXE99~ zx}jXQMsu_=#PoKj14&@7ZW=#v2C$qvVrSnr7I_I?Tt8_^MAVs6QZwpfP84l7A7(Hx zwivIw02Wriu%DLaa`W63t>o?1%ICKQ^TU2#Zse^cZ2Fj8hA*60$;h1xVnyMj!YROC z+`fqEh*lZEkEEA6?1o#s<*6hEcMVMi5&LVa8LP=Uzo%|guUh8GkyE5=vYlAFyyf80 z+5Bh=Yyn`07^6rn_)f9)*B)>ZfIy@zb_-_`yOe!=V8?#OoT@^VXM=TI8*x5N3>iZu zSHzpJn`Y1L%ozV~%9$p^0PXXRFW|WXGGi%#uNU*9UPdRDkx`olG)H8rMVkGOL?toT z`R9xYE)E{^v$;7KUV4+E6P{>7&b{`bWN358FHGGx%%> z`NuQJ)l?vc_t(>=+T>Q_{IHa09-U1IB~9z~kF0$z>T9P6R}<;41r9AID5(eKG2_n) zo~=qROTaZ8e9)No34R*ipGMCbUZR%XQV?4mPy8qZU%1-(U2Tj9F4NftoZ3E&3VKze z;cUE!VabX1T#~@`a*}`mRymiib9*6-EU2jc(UcXn(XC=&^|k(d$+O+>owWpktU0qlNwPX< zuJ9#8jvle*@8ON7LD^c}Bi`p2VttP!Kn3;>Zmd9%3dK-ls2JgQBgqTIpwM>C?k20I$5q_cG4j>-kot ziiZwPW`;BN%vPyh(f)hFu^wHrTUvE~r7jNi*~8a4b+u`o5f>jeLfWiD&fx8ILqBt% zEYXi&oI26SyGc!|wlkr33?n5w_5bmgOEY_Kh}Z+7e!APe zS2AKjba|7Op5M&AmDk?`c|GjLrIpH7d#06rlRH3a@A$iW)JQ*dG1(moNuq?xPF-KE zSH+7`UC5rr$9Eb52L7|Y0|(Pu;KmmV2{KeoE?dF7&rR*>6F0CXyZe(pWxAG{@23N1 z`C1oQkZ%MRpHF9lJ$a7R$F5@qyx?LhA5Kk=pZXG?I^y}Bu4sg@2stO14H3PtOTOs< zgxWdMM|kxwcR1)6FOc(E(5|<;1=_njYEfEO11Cw94dMujGC`J7+fq)&ioz(W)V_U!G;Bc{WQBq~5?wMPDu}Il&1Rko;H~=NY3i283CR4H! zc$~mA+ufHN@ zdgV^sCDPOH2aBZUEdI>gH{#v+Kv>m(6m-cS6%q@EFIUS-wr*qjY(u&j&M^P3*3bq@ z>b8#ddSHpfs}#l{t*0-dRmFcX!h!iwK#abj|EIt9lLXa$>OsT1B{z)+g3Hp{3Nyr} z{^9xjz7zucNMdt7GQ9Cx;4$-Q6$n2*XEEW$Ad?RBxq-jKwpV(;B$!Q}!HP(J)l zlIr9~Is>$eO7xHl-aLfCbT3A|gqr4{XzEMXH%K*hq`nP*4D#hVb`F45DC*u~U!YASi$%>Zef9R+OW>R%+ z7g&>Pg!C!x4sz@x$-@#9vr2I?dG#e9u|wp05c^2}EFIU!|3v`(WZNf+FTSsFfHiaB z2|L$*+4s#8&=FYR5w(S0U~MXTL6G)4d(*>w4i3OEbi+Ing|jooTF%-2`ULdpHe99E z7&r^7b}>pX#car?1?U+s#0z9*Gu|UH?nxuO#5}Yh&3BM3v)K;dBtSG|pHVEsnF1iX z*|YIx&2>Z77b_V)ts_(=#rQ>^5e=GWPpbzlcV|%pU@n6=VxA3x2o6_pxCc#NrJ=PV zU8@0MG)1qAz?_^MPS6p<)UjK{y_A99H<9m>w1TT>th0aK%MH-UkW`OFRjKxH8UGb91eXNbh- z{AOJ)0y2cd>~)VA=7U3kWW2l{3L=U=Qh)}ceGAPn(I|iADF^+7okNlxF?VD3EZf}% zaX8eyyQgrZijv1OYWr8gL^l-b>0#GoqN!+zP4M9w>pW~Y*mvhL?K{Pjvwsr75T`ed z-Bx^vRcu`lYJM;xbyet5(HC*Gs2Kx~Mdif2ORq|u&e3|;BKtz-LOc)~{tc;6dTNKg z7%OZtJnLe1ehO-5G51IQc9Z_^OsD0A%%)e=F$jPEMOUZPRlq0&MULFcXj0q>+$1fg z0{_)!>C-(PmMG4E+`ZT#-b@Kix11bx(?MaQK>&|o(l+2NqI;qg**9hkoIvJUVjOf7 z(`iJqD`Md2JIBzpRXU2Vs#B|ZDJS(?FW64 zXmrw`;{Lv~ER1vZ>1ks0lAdkpP3*Ur;Q#peQ=CZ*pC zUzrpLxL9{-fP?}G45Qr~cD$_xH%chq>$c)|qT2Sz2MXLS8+6I~a-9v9vufFbiEZkc zk^S7_?YW49EZn^hdFagdpR;Rc_EXXi_A?*G1&AX-GVnyfJj;w;Y4UbIhc-O^{a1;; z@kW~cZOT^Si=LzX?|xCV0S9YCY>7(cS%Mwd#=X;Wh^ zkK4IWstf@eUDhj4+!PJ%8f(HEy6qZiUA6N++pHp%`Iw|8n3|oDdbh&peq(;$nY8V4`=7QLP?^8#l`cBa8H3*SFgb9H!3kW- z?U6BYVcjA)3vMpdqGT6xb*+cs=!JC6ZH?I#CRf>tK3Q+$C8JEmsK-7T<7>YV3}w2o^0Zpi~)eW zXf`rm5q3capDUd2y}P*VCfCVYbEf@m(T%q<+KO2@rFy}0 zaAd^P3CrKrq4vvOI# ziiBH+yr?Hf;k~{+VIDm1B($}UO{MiYDbadcbul!*FSXnSB}%a!>G!hiH1tb{nkIP# zt-&|>Y{(K;$au~$pQc1c} z$~(XY>`I`bk=r=C=!;^zHIISRpaxCv=Zn-r9-zH4QI#6(v}A;hlI%RLsJ;9aaoXco z`bS~>yMD>e(_+C8{%0S6=1m_ao6<6pONmDiFXsGiZDNMybyNg5e^Ix<*J+XC?-sIF zmd-I>$2vc_UONP!A)}n;C!j3!^D+l1O6q%iTX+8?V92I#%ldKfDlMFSv^pgGg(7cJ zFy{y%@Ac=%_4_`@yF_wM%?8mF{V$@yt=h2%D|uO_1}=w|yIzB{_^j=!>^C9|g&xuf1qV@@?WfSaCS@2K6NG7r%_3EFZZI)J7SZm-& z3QR%M1c`}%=N(k7IHaXSzErq5XG4hy1Cs|24)C9A&ZC=iuRT-P^30F@wt1B%-Lc1; z^%NyX78wBYZW3Rp@>wE4qIHw9g%l!=+%OEv$ORF9B0% zvL6+$vG3Uf;Mg40Ny4VHue|$K|S= zf%z8|Z#tQ-L?u~Z1eyM)UK{sW#)zt{JRq}#i}QrF@*Jug9|jPS=_D;gp~GIrA#l3YMvOa5$!D+cJV zhQKxW$Xc%-t&VJwOa{&V2#@6m><(3aGlRl@2`p!2H1FYwkgm3e!r}!XODW4A>@P^w z_cqD`1zb)#w5*I^N;WRciDLxa-JAcgsMin1mB&RBkxIFpKInXHoFz8b~gOrnd6h^~A z3~avM%SEr}M}-5g-DDDMIiK2+ym)n4!+CmUD7c9(zr!}O_KEKr(-Zke&68ESExw-v zmI;H;4$ybBO`*{cTJCj>POBAV>%MfYFliOiStdh<+i=v?E1ESQkyFB)b?>rf`sPT@ zg@dM;ke~kzCXHpjSF48D{RUIS<%YeV8r5+NsDfSA(FWGD0+|%pO-TBK42nfq&Dqr#K`d{tNT?cE zgw|FFBJFs@z>c9nT`P80amF=0uU7$iO>!sXl3_0rlSDRMLy*Fc-SPdq9SPrg}1^+iXbB{ zeYUPcz+Ea(|FZm0OFpcup9&@Wx$<2k$IasHFYJ;!04K$1p2wTW|L4isBNBi%EjJ~) zUZ9k=WLL*}qF70RnVte85-tvlKb*i>si-6qSw9f^@|=S$=C2MMKqN&m|J(qAw9#z1Nog{q6~Ky% zXj>*nokANI3cwm|N0`5V$)|Rg!}kv6_$8Y+lnkT$Q!?MU!cYjW&kQ1HuEreGn$IxC zm|GGxo|}%RZetJH=95Qq+eH7I&^5*yN8T?+WNydpmFi^8=_vy%p8Y@}g51+;Cf!M@ zX}s$sS+*-%W(r!>f{<@eI%;sON<xE$)QM9c=MWS1d|-)?RxG+`^$MAX&_a)Q65V zj2}e+G4nu!J9%XsK$|iTlQ<;3!#ooKKG<(kWX9}M0ke*c_uO9b0~4W?qCHyR`FCzs_~89XP9m zTZGEcay@|BKY|OjV~n1v$U>K_QB3}JAfYwrGgiP;uDkDluQ5AY=8=f+Wn6!v(6I(C z361N8@7U|EeyL1(?(*q5@;&z)=8XRS#i-}Wv z?M#V~He=e5?9LJo`MWL6Xr?E&hi3M3uDQL7Fu)*cosmvi?3C0et~bKeujL1=;2=;K zjO>1EI3GeES|4#=kcW`P-ZZZnJ|Zwop|JIAB2d{?ie@P(^G-rygrN7c(1w&$JlY81 z5$)T4wfd_*i{YX@k~T198Q@1#d_{`NJ^vH*Cc*q=>}9LL&qkKtf}`}y{F6+j1Ag9B z2tQF8{I!`u%GSp~;sqvzo!f)Qgm6D0?QqG?An97?rj}2ek*BkYIIlaTF-mua`13fd z3mMM9^Zj6Nhy`o+RE*Mj8!5a~g1|yA^H-;=oG^7d4kR2TwUOA5a63|>xMAdt)yh+Y z`lS5r)ws^QS-#{5S%aY)rYRCH%`ovgruGQ4X+8@K7BL8J)cSB)M`7Yc)P^+KRKbK& zWzC*QD3St}#$j`Q1!0?e&cV=5a!!V-VmQ;(qs5XX_HdFXUSRFY4^N<*n;R+e1GS5| z6ZqnGQGdqiV{BVSS;AH(&M*ZRU|)A=dn4Eo-h+S{amYIF-cDTnBD^IUn&$uP5w=^sEKeA~NT-9{z^BY-{R&Yqex$>} zfj{7ORe(ScWAi|KX;{3ShpCnYaJs}^){*)k$`D~3Z32WpgieA#2!NiNivnBVJ~ewL zNl{n7(Tv-L73AtkYcN6$%{Ws5@F^ruP6LW7tL;7Gy~`?kffl(x;Ucu(Ax`ahqr}8) zG0I9-&VQxM@;g_5anBt$Fvcdd2{Sz=ZHUhFEw&0B1K)?Y^BxB|87>0H0lnz#GBAA1 z_ogleM9I!Rji`v{cj2ROxb#4@FA`Y;TL9*?8ib~e({W)e+Hi8g{MpWQsfhq;De2qv&D-;N+vq|%+Y3DHP|pr%g=%(x$`6UoR_z=o4Q4O!y=pM^#;;GWNUZ&CK7N9GS)*N8F(-aD zCo!k(CYR;FP4Od7@#Wk^!uahSHrvFc8j-NwGt?qpv9f9dtgk55$tj)TaS;tr;A3M2 zevW&9hv=#Km`jMG>C`V=zH>WmAS1Nptq%D^Z^YxU9$TzYRwkmK7i~BwpCj?+VW38T zg;w#>1D&nk``wPXPtn>Y(f`oWhfxnVfXl>qiBiSCBIS@Uux8(yG+e$j012$ZvL1mj zt`qWg{1>HbAzd$=NG1jH9z7E;3AHk2&w;2mnEAQ9$K^~@h*YWglAms|l-}7`V2;hXgjd?oZP{Qj9al`(-X*Dc+PANoNT zjXej^A^mTm7-B3!_j4v{Qe2AiLP=k4-!IMH_tGlPor4dAgIx}WZjg>SfP1>vZofRpo|)V1H0XE@Ncv@Yv?J7F!DJ}V#^sn`VB4njyu)02t?YR*hkZPy#=7;DwqU0A0(E% z{$8Fnb2&Ij+c9g7inFUExv=Sb)=F9b)J$7Kq}k-OeGZ!8fO#ILDdsRlfQfq>P~zc- z318&-^G=-I69w^}Pb{>5$>wPhO2&FJ=&Ep*AARdz}c3 zP8UNTx@yZ~ip?-(gZ12o88(N|)_!EhdF&cpC$H$6YD_6sFm6MDZYhNzS5q`bC!J3h z!vHzrPGz_oOwX67N~95$9pAr)hCq9@U4; z{GN0Qk51dBTi7<%R_3tMj9f?^wU+`iC57A!`LwdoXM9m+nSAZpeC=_hie-AsH)LHm zb!zxK;<*8C!h>ySSa-k=c{z#UQS8bJnv2OH6&gN{Wnl4zoUvX{#NXPB&$7kq^mtvW zXxXJjaA{64wQ#g^^6==HB*6@x%-@o5>P8##fn+-i-5}uNoGeAy1jB2L1+1&T5=iy$ z^e_$lVq@PS)h<0-@5WMXBbCUU01K0OQqERctfp54;f~*?>Qlf?`jYh+)YMjIQ zX`}Cd;2S-8&`2!lWxnmBr{i+5lOkL3cBMJnoDGjyk7x=Kz&j{|^G1YbZ;H=7&?&25 zDfKdnKO;$wJo6qd2kyH4J=jb#pj1z-iSOKPBfE2jJDduwYI)x5L-yS%lFd@^v+_6C zOIL37QbkVj7%!>u;r!J?GwlmRKyxY^!ih?j>bC0ku+^us2B72tREaXVWYa%=NdJ%n8v+lDbM zo?66h8kj-S8>A_3JY`gG!)ZoqCN?G4AAd0v1#_MCWl8b>G;I1(P~8`$65E5gBsAEn zX1lkeW5z|{Md&&LLLOm{uEt`S5o$WuXwQrx=@nmKYEaR%W4-I;Ic+AUQ@On8o2FBq z{OJ1)lqx)+YLb^u^)!AZ@7bPq#gus1Wds>GZ6?<}If}@j`1OxBzPOJOq)l0HB+mP0 z2@nfqBKEU^6YLMqd=OF5-=(g`Tr?H*Eaz_--8@}%hf#_os3xNm00`_ZYPb~imlv-<-k(~##M_uzpZ|cKpw$R&po~H2>u)YIA zsm}eV@Shc$7sH>9uu;PN$UH|53Z#!qo4^I8A7clVUR^{QX{t@|-4;{Nikg)uv zh`?A&8Qzp!+~Hjo94$!2O95F4t|SJ2Ryz3)qA#NdF&E-yY8N`~P2}%yEv3oW_>JuyROa4)^`M zA4f5-Jf>2$svMT=kuk%yP-Dh}sX@qWwU65orW*cqyeLosL>$0YrYR6Ka?b~{Ph*;TM7~0aud2Lo!Jm$pj0ePElbrz_8>L?uW8tu} ziX_W70RF-(Q!$M>+Skaknxr>h5fvid>WNnrg>Rx{910oSZwnco*GNmohWZb5`-x zKzgE>=X=ZQHjD3pNB3(x{D!D;zsDc5d5X0r(|mIPelp{SPkM{1zH(^lJEGFnGO1pI z=iBLQ_urrPmd!};O<;A;iHt*OM}}xtNAZnG?N6bEKv}AkXUPqJ|1%&PRiwX79)qIK zT*49i6zDMMc$!MRJY?An5KQ0H?1>pHVM6TgS9|WpWqW`?zAC-~2XfW?n*`f{teekm zJYbZf+smnA47U3b7Xk58-#ULjrn0`=nt$+}bm-ck@;SdCpEi*!szM;B$g5npoJzZ| z6nY@Bb;ipr~)6{FlYNMw-8y|BoIMRbHZgFq`@?%;iYsGv3N?pBZbG zqbj7@0Z1QM=yzSbg-D!lT#Q%Ucp{l<31-Dp-{2Kd=p+%V{N1w7HB;xhu1sNfaE#ml9Q6D0^T@7Owuv+p> z=9U$ag<5j@2L^($2QB!{3|{?`8k{;un>wLkMm*T%ZZ+1Ciq^_rzn69U;7Fjaj9mw| z5*=(F@FCf>qYNl@XgYdLf<}%|LKF`wvkaDfyYLOc+Dmq0Z3KRBs|VhsAexAOpg?OD zXyMNxSR^X@TZBnGEjTv4G-YxLdelYTK@~L;;qRwd5i%@g60T_;mQawhP&xLO?4*m* zVCbD6{1!P%8;?k0t79vs()!Sz#J;9-^4z#n+Z_I?+?s&bRb%s8eF}HJlCr)$Y000! zf<0h-jgdyIniQhAa}#7mM~%U#{+QzDo$|v4?qo`AHv(#B*}#OYGP_6er@W#OP3BI~ zcXFs`g93}gO(4C)W6oS6Yy`E|(Uq|hI)w_$P1eo6muYati&B<9{63ZYN*wtnnRN`A zM3z{8jRIR4*p)(%&%)fsgb2yesU9@81^|_SlDa0;o4GY*1xfA&&(X$=Dea-cvKqza zk@6EJ?Aw?5su8SNe8o;zLT{8IQiyukUzN z*Z8Y?_^UqgS4~Q0kHgs@Wj-H&({)A7<4@P$^5e0=4?@Sr^T;y8yml3Zk8_1b>~$OS z-o-39j?7x2B_=W4Xd2LgE7C+t?G9Un<Q1b?&WA>KZ` z&2MHxt3$>nhBGvWG(MaS%Lhk&NAFCfYjnMYTG{%ov&vYw>Z`3y{EMrTZd}hVxHvJ( z2hK|XnL@qvQ1;R9Hv3WTiLR!|kn{I=mdom^Z|A-IcUTJF&&a9V>j!+F3g~$HzQ%Q! zwjfxJ_cO~6+~*HDdH;Q3&pYV#IQ^o$2Ym~3hEcq{nZx|6VzV*K^Ql08upTBWm)VWz_K|dsP^0$1N3jVhz+UnZwom_<6 zyZh!|c6XMANE6qxCd5d7*Pu0Ora!szK4Fyn;m`dFhUE=#Sp@sOu5xd`rzRKujKbv^ zQBL-EaMt9aoI>~$|MK7LHkh^?Cx6I31*4HZ|F(QfK}n0nod=fplFq$5m*WXl4jr5( z3Z07*hjD^J)R{jGf4*Oe8SBknU#pLg7F701I_S8+EO)3fICuG!`GT(X!bN5Ix00sL zDuG*n9WFs1;o1h}8zl0iyd!1wOXT;D_$9ROhD@n4^s31@FsKYo@53&};=W;2N+aT- z#8p06AUZz)6jEV$oU^}bTYmYG`vOyXq?~rb28SKWIx80|4pF=P@kTi(!i68+?`Xmz z`QzWboH7Dl;_$5TcPYIvF9J~_iwa(cp~-Iacpv2zAGot7z@;{tF2L3UKiyE#LP45l z@?_x*jgj_a))0IJDZNa6P%>~fq6}NP^Jw3~kWJZ?W@q*3PCfKr{z{+jV{+1Hmft~4 zE&pTV?OO(+R%0ny125~i$FB4-74N>((VK~z#?|C+Z`T19lREkPYukBTWcqR-9)#&< zhdFDuEU%LCr3^UCiEdGYswTcLS(7jfFyQc2X*%*|hD&})@+U%=jZSt%1NmlAUmAjg z;T9atUEn{ zs#OlkM_?m+ZmMqtEHdPHEqsTH2ZWv{!jMHrHn--p<4K( zaE!BT?cmG08Tv%pe&|aA-!K}doLA6dkd;AU~E!g&= zTiis8FrawQ*qcgc0LF&oMURHtle^(jwP+z6bPY=tGEHU)^&SS4%=5|?hzq2Ihcpl7_ z4eTQ?{jg%qwOWL%Ce|a)jO7bllqqR_-M;en{phF}ajjpu?`T7r1xc~q$#Hr2@wkgc6_dkowALJ88 z;hjB|ARzpd6yVY{qhw`%7^+}TyqOEWdz=U(*sip}9HXhe5lm#BN3_KLrnq^_WVV#N zfnxK_LHmZ@uAkXsa{8{urTBUyd>tqGhn2!QfrX>~Z4d^4``(+{90BS|i^qQZ<=qT^ zy}2y$6V8l`f8y*xEPJ=P4^>zm#jKh7Oyf9&agr(e<1w0(JNNq+BzDR~WBeFQ{|#FD z(_+T-_4MzWb(}R2n*oo~YKFP-nv!Q2J$IG-Pl%L+%LjC{pP0-~mc9~wUIqV@uVh2T zBJ6L3vQa;VL*r@U6VjZE09fULP2Y>yqA{GEZRuxh|Moh2>o(y+JT8lMA!VcHlKspH z6b?$+ilsD{li9N-TaFp=x&F!_Uyc6orrMrkMX-WpzKwVfQY~s0j>)yJ2MAmt_@%EHC8HtWISrZl37LFH9$+DYHHR*Dk(sdpb3Q~P6uEfPm^0Y30= zt@J=-ryr!t`Xi%T6D&V;zJND(-+#UPhC5kF3Hzw%eC6USZziXU6LD-wkoyV(MW5Q# zqCGqfJDR>oIf`8zS19`W@PVnPi9{WF<)pH=AtY+^0I4Y{ae|qt z*Yl1x`aXp3HlIit%-nvW;Mk$rNnZ)5Ct$MLbDII+HsGzkme}y+{b$K+K!aJeFIheb z#f_Sr)tI<5x6pc7KVdM+sIMqc?J9eAMbxh5RmKJINTR3{}BzsRiPCcspRncE-m!nX0%Et6v7#GJ?G$n;N}!c`t8x=MQF)Ep(y`gp%Jsoxw)5fZlz}t z7N$(>2Q+>fCx08eQr+RSXjBM=>sySqPa7PdUx1DXta&8+HcMAp4-|5v&56eWLm**F zi~~uVd150N0L@VKEB4~7#1bsJP~3B7QGFKxQCEF+rTlEvfJ4whxPqQNm3wcxwZX|P zD;t-Fg2Thwb0Na3oRHU24N7AA;NRH%!!m6OvJE$OA|~{V_?li~DWU1yJU4pFJAR6m zIe*d17hd)+KkaImXfz^Gs*8_wB_ABflO<{Ldr0FE!#Y(f# zRp44+|IGY0&82(HnF% zW@T~eddbGqRC4RfWcJ8Ol3|8f>)ci6)WNfsHzl1~H4wB@$68}i`c_TDI;F4fd@tPe z=n6$X?^wDk4ziij&RA&8avmH*b9}0Jy4qS{V{%2wGo9P+wapV_=ak3yNwapAz&UT% zoSd<7Wai~hEs3d@aLHLsi>$AQC*lJ&QnT9eRY|HM9Z|xSnrH4Fb>NP^x9WBBqFIEm zHPS+8>^OzVr~K!n1M2M;3a!my$3k)IR0(lavbMT{fuffGJ$8LfJ0$9HC|YvCt~YgE zz6G)@T)xN}R=VORj&p3l!Y^ju7L%xtqY9_bwxnVfALk!qwOZ1y0Ku z7ZYIF`(hZ3yEgw`m&~2qnKSzu`7M0OU3Dj;XZtLkC5p=A@~wa)iTN$-39#j(%%4X) zT>;4yuv{q$G(C~bBG9g;uV|3Jn!Y*q;KJ^)H$FKnQWM>OlhHS*2EL|@(0N`V%&4Hk z+sfR>_sb}8?7R2M+FxZ3n~e3{5MW30?!B4U#DLLc%#8_8WX zbO+JrS)Z{K6XKTlaS3Ldd$yy*|GRVnA+Z0}N90O(gdFnw&u1hM(V*pW)Q^qK*Wcps z0q!B3-Hx3pi!6SNV`SBT}+Hvt+rG2 z(yMjbOZpUfXCG9Ub%m*Ca`(e8cP69iWTyyAKTLxE()&0VgA3NA_GkjAl#{2SWKJvu zV@R-~+2+~-z(yKu$5E*2fql)7mzvlzr<3>Z*n%HCXhRdDHg8(l@ zB{ggfm>iVH#>gLN!S($d)*LuL+7TKzU~=Law`G7(|Fz&d2Hq+dQ@>b< zz!{vJif*K{L8z+a%<|HWY{YXePV9STuhKFJ##tDNt( zkZ*{?QV{XgGBu-2vKT0u-7s7piYq7g+i4CTe5CF|$|mAxV>-8&oi>bM*NJRZ#MR%({t8p}S6eBs)j;G= zSf`+0#x=L&p4(E~7;${l`JJ_Z#EYT{UZ!?DF*BWIE<5mcv%+TpKzuY;OeR;hL#@`e zq|4SawycE@-ZL0fc~|k;=inU<1wLeH89M~7%WKWjEytSo1N;I zUQn)*vJ#aMbu$a=sV)BK0ADaPu$?!wr##MS$4<$Ne&hXT3h%XQ&iEO z9~{v6P@x2qxT1dtfYvygw5!H1<*-6rN<-FTsJl*m%Ea6g{Od=0qQ}Wd6Zx=@UoTsU2eg`(ts6`W&fNxRd?- z0pdxV*b~)~Id@ZE8I;|{arbP`_DG2M*DG7WXzXMsO|dG_j4D^W*|&Wh4asD19h-@ln=Q z!@Vi3zee-PvG<>V^?VMxg4x0=nun#bt`sO@zorNkmH#~p;OnWQ{$6K})OjUe>E%p8VCZ zIlohy18iwO-Rf4qHYF1x20%4}#Jm z63g7Ot@WxeTiliASO6-BEL#<9wsfZ;Id(kaR{JaPmSArtZzl-J906(1B$&xy~7c>Mx3FeGH{vI?5c`@;` z@U%@ zAjV$V^dZeDHUhEBbej52wTxs_#Skk=7v|4$WZE4>(WB5OA4ykL-9ikgY$?3nvdQQg zm{=iB;qvu#_LPzR5mTT;VJjb4P?x+vNVAfYnQm-XbBgjy(D@KC+}Vo@rfve!2_XIk zy+ZD>Zr%&Olrk4EA(76R=8uaEEu+`xYaciD_v(Zen}kv3$L>o2{1zWDB5lc>5hz3Kxga79Dq8)*&Im7Ma*xBX%TcT@CZDCX8r^G=;# zizP(d+Thx?ytEaxZ2mgATHyHS(60nv`j>Y>@ZibgLU6Yj-aEp!hqkXie#zaSh7W7{-0f zeXH$Hh#%JO9MS0xoqe`iXu{`6F5LYZk)Fl5R}Q>n8E#O~WjAIgqfmi_x)?cx)k_lZ zK&3cn$NI&cK9)lP4$E`@`CQ#S;Xl@CitbAX^NZSls?d|mVA^CpxOupw??x|oW_u{& zyuXml46tZNKP5%f^DrBsqEzdc3VdV*o@jgbhCWhvEiqNd6Jk%0-~ntsWnOiaJGmF0 ziPnMFCjfXU+olpsZ}Qa|h_CtP$4W39sDM;)!lbsb($-m{lZ}q=qiY;(=Ku1QEZ50( zBY?`Y&l2d05p>h8uSaESA=Qr(0#W71XrZcL+|;um5IY~hWsF^bq{En8gpZhW{7|xH zB_e~oY-H(epqEcU(>=y7q=7=H=*U9p}&*vrXYFcKvN@(AJ&ObkSd$@punywwMHeBaSOnHfJm<^i0lyC1TXKlIAR0i#Lc&I3q%sHT z$P~52kJ}Q)6W6?n&t!UiIs`ssvnWWWfdbax3MkV6a1p{lNJbg0Ko=)nNO8}O16ksA zp5ToAnK6A_X#ALl)8Z%tkdFf+K`kl+$yno+7OIR}wqw`nqzf$xMRA2H*@c!;#M;v$jvJnOYiN!dM9i3A+rP9Y7xqQ+U7e8I;9q&`ZQ^Y@*=TMSf;H&f&IY(0E$wJzblle* ztbgh-IJe?YFEL?2Tam8X(WQWi4{*wg6#m7He<2xte6}9XtYO3Ov_@=j2S^0a zQ@)h#YeG{p2`2(1W=$Hi@L>Y1FgM4a$)T`IIm-kta8vHqo(8?QYo>EbAeD=U8*LnZ z?d9ogspQ3UwoAPl{s`ow@N0z!T%Fpl z-dN5IPS|s&JeM>sMYU`2Tv?eBq1q@t!60*E9^y2IS2>a)cFw^t0HQ=&@gPmN*$}mp(w%8Y;%W8etYn(H}@+0e2D#2wt zyjho`GUjq0{^@(%N?(@Vyo@BCkzo2I3Ug6{XgRClFh4=yR*%qG_QU^{v&tl*HC`gN ziDL?*eSZ(#J=L*x_W~5+M%JZHLl@wB05x+@Zcs4!w;OVW z2ObH64+C50;EIQ@)|q^i3ORhw#9B8C{-O`f;+(L#%hD-4CqX?|FRvHh)A02bO9cHc zO;XY5LrT7p>E=BZkTt!knLAKyD6fl`JGa z6OFh40o>_)o~={QzO51^nKdq3AL>bt5Qva7lpqDKK^;B`>6n6)*RS$^vBYr{t zz7eK388dQNik+9oHC}Ht=YVySiE$k4pr47b!V~d|jPK^>Jh^M!Xa3t>xBvdkkkMVH zD@&ToX!@Aan^P?QAcDN#E7q790P%{wC&3xi$&0?nYT#)v-=N%SQ|%6-u%2c|Mu3XN z?p@vPT|QvxRU~jV(~E4%!5O$q*fO-cOSpU17P7e6C{Ac2pHR}Z_*I;(xa%2X-29BQ z+RKT#;-W&YS_JeSKm7`ZsqLwT#@Z9eLNb|}+KilB7?f}m$z0jwfb>Dsd(T`+VEYE7 zWr8FRzV5lZ?^ff=dG?lI_QB#`C*%$#+xW78o%Qx7Kx_ZFP%y2>nb5v5;A=J~^YoP$ zl-Woc>k<-Y8grUCbEP216VJMI`h8b=wz&rBI#91VCIs(WGkdd2YI>@${?&N18%gP< z-kOo(N;V~NR||J8!5pUafq8V?-=Q>yp41nceS||V`E+RO>oKo(^M}-3a;5E{VdYRq zMBrPhu=dLxeV%7yS5ijn1jzz~iI(U?sOyRxKc_+qc-n$bI6)&EW`7yV_8DF6-v@y% zB@&_g<=;-d5TO>JGvw{RMYhCDW3QZ^u_%>P^u8VD8?atS4^0g7kntICVWx~d0kcVQ zB*!{C=?y}2hbqyu#z#wXu`iZe(^QS0R((0GdefWY=g-RTX=;r@gYctk*;K*O`{g}F zG2ORjC~@fj5|pTa8gd`ZQw(2k{{uJQ>P);fIL796aLdUF!c{S{kpj!F<67M})s#c@ zc09RubrQJMl3XhEOl=bx*0FQy)R*_?oaBr`1QfAeAuF*<5psI%A9&Eg%$RquZ&>Da zOWJuPte&-CMB+vtUBQ6N7?hzI6Rvw8rT6!Mc@k8jH3|CQ*lkY5Ubn0qgBnACPm9(H z7F$A6ducQ4ipqV$vI;3OCZEc%AF#|C)hf0R|88F5oiFL2xDtIYrY&B0ScDKJZxu}r zyPkun$T}lYI(YLTk4*pAa>?4RJSd;=|8BprsBgG?%n|9^;p0Vn$ zk9qaQ$Xq*+slCz=f>6VbGv=~a<$)w>1^dW&p!bJv-M7xmC26dWAG)fHLZH7upCb8Z zzVe2V2GLRMkY6g)FLfvN{c!rCDr7*j1FIp`81Ul!nlWfj$f<}&3^?4+_mGG_ela8k z%?sj#gk+g|(o8)W=5`#&8+`|0?}s=Wxs~!&z5i&1-k3i2E|2a4227RpyJya*l2In| zG!>I*4x>CIif##nT&A{Rj#r&&_ho+y34if{fb&#I-lvsqRk~TZXC$4k-`ZeMczLQx z1JST`O4SNB&imvRFq*;AX0W9oUims;Ac9~D;Ir4b`XfPc)BdTc_jh0M`aby-;KkAe z6W!#S+cXc(I#q^(SRNb$?yv}WqP|D_Tn`Th`f&5#xkgHCKKtHt<#~P}+uInBJ3vwZ zf5mu2GWExYko-dR-dVbrv&D@OE>%ADYTC?{|7o!5NwtTWTc$suP(sayuI*A3!|IRn zm26K-E@m6h>a-ot27%kLDIk|fb?0A4B_$+R8d6&5X0xIaY!L4Optf8zjnNyz){3CD8gb!7}Q z8cc}X!TVbB#HgoXpx3MMEHT7U6OPiW-}e#Q>1xbKQ`2ZBGCenFk9NYn^KDOp$X&Xjitfx;kk0`b+Y zjn~OD8aPZ)Cy(Gg%hnIkvPy4Osh81DjgJhxH2oQU5K)8SDj=MBQ)gleotB9bNQQE%~&L;es({{TW`2kb>sGU5JkVG55P-@y3TJ-g#Qna z4u-!P<9P2u`UuSr*{pV_u~qg=fQYxkS^@5*EayevBdC4J`(Aa-;!F42U? zn#5W&;?li0lBDZ7Ga_Cj9IyCpo#%&j*Z9K!zO%WY3&0C|PKBn4RPR3Lb}o|J!nG+w zL3Q_G)sNhl_dFPDLQH_*yt#ig|N9eU?xIv4Si5e`cL@o5CDZp!|E${Qm;9zC&V@lf zwi&owB)49~V0&b{VmN$wnI|MO^2DhKz2Yv$^lM68!A6454-_vCdMV_i`dhAX5uaAr zua$eTOGhUE{@HrQ*e6d)WrWsRJa=31q}l$byLCsNZbvRUSZ|~e`>Uk&eDa9=vGyhg1D@m7nDLGQ1RZq< z%#q}`sv&2-0_Nk6j7|1e0F;3=s_bu;+%_&il&^3zrv*k}epv>;PelR^oxa-ZLbisg zoPKduF6I8mId#5jULZoua!;nSjn6Mh^#?z?K^!MgN{YmV3ZV;siHXEhyCysvaNXJo z^~@vj`EppDgVkR;ZjQ7DJ)0qwaTU0he$Llm+_x|!YU`igCf@Y*pL`9%h=p+oU~lv| zEOgE#Jk6WRsn297pYC<-u`QPauda^0IAp|~(*TyKRgbLH-7L3$}UzWPEX>!0p;1$85EG6p+k-sNOEmuwm) zgXb+a2|QBk;AHfvWjmtrQHpLP9~1eF<7df5W)0s#*Q4?VWiWn;exw3*Upympt>Zjr z_B`lb*3IZyaVv8WCpiirocYbl=Jp~stTcN4iLFW2N5cG5`R*%ABgxbOOWv#rjn3u5 znGGJN=zGePVbN~8_q$Uw6@c~Gef>BsT7H2mzpJCMRc-!mG zEZ}f%y%V=`IhU5O!2_THa?vC&8m-s3+j}HYLr_nueBgyBJ}k2Iz-htNX1SBabpn+` zYs3THu$C=TlnS=VrnzTLkK#&9@E#asOUU8*i)UY32g5l)aKVhY51?zaiuOx%A2yOO zIN!JK;|sz+O7Tfz-=vvpWbnCyl|xFtE;{9iuqT92d#7(8ZhA`sNL{l({M^U?oTr6# zjiDKs;g^#`I5vU_S?Fy?HjogtcS(v1y*1#^_YT6Q`C%VpLl~O08)jlRIH_ObbBzQo zR)h%}h7dKmlO=9Uv-i0%OY*1Q&oxGpywQ`=mc*4~@?D0NZUUAg7dv>5N#+R%#-mT2 zNg%=Cr|M56dE9+`tmR5U9mkH-ZSn~}vfnhM`s!wau)~f{l2^hoKZdyldTMf(L7a}d zsn+|oZm6&)MjTGJoI%Wq03<3JxL^@Y7q2oxeG_WW5|+6(Q&W-*|>z3EZ zA-E0#i~z}F;|q$MD@3SgBJd&us{@|(r2JPaZpoM4hJvA|=mZlSHpkviXApunT(bxo zas#N8D@~v+l{EG7*E&ec`TjWVASu6B5H2W8Wu|*W7a%5O`X7|#Vj#)SupO6_Ndxk& z8rSt(&qr4uZ+h7D;N*nYL7N|Ie>#aq_Qe#r=4(5tNAJ}w8Fk%%@F5_8mk@bGf$p2S z>;L`wndrkcd90s&omyb1waNM1HL2Kw1p@emE0r8{1v;|j#-W5aP%RZyEp%Co8QAa2 z+)`~|lg<+9!*SqAG+>yniG}MReEVRg<79v(HY|OEr$fz9>#Q-k6x|q>+{5jswlG*` zn}ZwNKM*DN%bs*7XU9fl@8^{5-DrK}z0w}fgG{r*EB?ej-abWyE&$7{qj-N$&H~{t z#Z{XMP;Axs*V}H{i|-SPSbZx7rRr7Qy4lDJI(gV}30v?kvk!%!tpiKsQM!Bx?-7Tq zRBeAEj|K@IHQ)js=}2^ftZ(O&VQNS;-98fa@w1}qo1E&vXkh-&BckE~ZFP)QX<;5^ zKSfahI&NT;0*g~His`7UGa=2)gXgmc{)Q??4~LvBV6WEsI#(fYJ7%*%Hn_Ri!HnEC z7`2%5x+Gt6Z_Qbz*))HbWV}gUioe4rNoNk)|QWHTQ=NIj;#W5274oez0x?ZhFRG zy$p$uDxA(?49#!h`s6CoLk=%=Y9E^kV`p%VNMyC`qaA_P7oF&!H%jx%-QRCHvVZ14 z=RU~g0!ZiJt#zf!qU5!^tDp1glCR9je;J>%iw*6%o|mp4bl9(6x>W7ai)iJ*X%p4Z zmZOb_N7{07Ux_4N=BPB%z;C%F2Jk@OZ#i2a8pTuHXdCNW-F8dkLO>?X+p>KSyox9| zHh4Me1X6FEG@LIcvk_@x=lgwH&;&2Qj!xsVsBfS=GYC|F;{Oy~DKK^LpL??8oC2+( zD8c`ESom=u+$yq7_~$CuVl-wW|B^KGT9iS1$(M6XzZA}S>G=Bq&N7`sk@3UL7?y5r zppN9|0C<-1TrWiTG+7`9&Pr^2z{+D>N9k2U2M-!i3)RuCtE*zm{N{3S4k%Ru`f$qbRPXeOA7z$_TQD-$=dk}W1vjK@oN zZoB|y>$JNROOH_)^0HR%uELkzw1BwXOL4obkM|8Byw=h1{i*EeXr|hmF|iS`Y&Y=I z0W*~x_Oz$C*VVM!=JldrDc+M}bzV|7MHpDP0HGg`&GHr1l&XubX1c(!1TNo+nbMDr z$n-^bYa8v<40IaHuet%v`wA7t24L6Sh@nON#!4E%X zA(?X*3pY0}FBtkB>Q+*u4=hY(d+z!faz_Fa;7tLj#VO&1Q_sjvngQSNQX z=E8CY8>_MGdVHm^HUS1f$zc^i#H&lBE^(Zk(EhiQ%^ADIj%A0*{6dmTB2kcZt1IahyX~Nv|s~3Fp#R#90=Cxu$hgRB+?BtJ0=b%*Y z&mXNuTq#vEPyQ1j$T(Q1Eph-kePu zcdFWz#tqVN_YR20abVR$n0dl7N4|KEjvW(=n}mQAGoFXl?~mNmW4K=cvl5Bq826v- zVh?nt=3|g)h-;-9iTh0PX~T%q$F6k7QpbLq&Wg;ZD{NzA1B|LO7%VJ?lMt|}v!gtEK@N9tr;*M+L z4n$Y_IB8~(iOQ`}pey?OXg7 zpxdfiIFf1BsHnNQ8d@a5Rj@3w03;-tnB3#ZQN)ZyziDfloJ9p+>bgs;$tzhSlA_!@ z;$4=0&#LU~Zd?F~^OPGS-^&|og=9k9!X1)Pa`aqqlHmk*6E)hB@5$la?|9%&CBYv%Z6)Gy!u^C*$VuP;H6xzbPObq4eC~+a_FnB|-@9>?) zw|LWU{-CbZ`+IVOQcwdleU_A}>)$B}Z62X1ekiK}fMSZvOXDUjRN{$^m^*t~}E6Bs=28b=wI>yF4eq1mx2JGCnr zi7JHDOVq~Sgz2VWfNaL=4@plNh8Uniictt?c z{Wt{J0_VqpcvVUbTM)qzc>*lxN5!aldnpyVy)LGExy3nOrj){Z%Q`N55fh%P+UZQR zkj1Eov$w+zaoImr_&&X%ZVAL;FWAwAi@|yzF8}q5qC`GGf@aUDCy*ysNxn|}-u;+y zSEkydOTQo~YB-6`ydNpQDiHu$jazJfTB%tcLGx4&rF4}?=+%Qaeae!*iZJ3$!ny>W2{ zvL#`%o;o=T_j}Im_CCUlXiv530&=qXJVGFdyS(I6vaI4)oh-=wb*lTkYD26-V*vCZ zx3c63_4pm<_#F!l@|p%)#*B*X-oo+YYXf6#>c9hQaqdC-WZVb@28oqF=A-*VsQFIH%TWRK|jr z2Oa!sPUDa-^l2mmR42Yb-acS|apYND$>`~I(nxsBIII_shL`N7Vc zCEf`?OACj_KDHJKbd6d&t@fg>;zc63xdlrFy57A?e`csyeqOKK*Hy_v&F+XjDt?!a z#kXHdBwyk$Uv<;9GmU;@VrID-!j3z+nvegTRo+lxFxHfs?cnOhZcAAS(v(D*Ef(0t{SXoICYD9 z8INMH9qc!ziGZFV@X765NBrZ%3XZ6G63b3jmt9Z(`05jV_4Bui8s$ECW4*z08Jp*4 z==Y^JgNfm$B7lEFJO|^{zqQq#8~++`#N(a4*;#Cp>8XL0b@8up9UeH+aF#^gBFta~*t(i+Q!i=CPQ)1JD>sWD|QykE=d zF$fV&o+MtDV9-MA*4sC-W1=My`L`#I5@BrXQE7x|$uvgpb=V8}+EYQ^ZNcZcV58_D zz-a?QMDA5~@+i)N^4QT(M!BO^xRy+l6LPbDQi=?OGhg>!6t?P@U%SS;!0)Sq5Z6a% zex3VpqsTgMEoHQ5bCbYPnxVHPU4+mzS}uMSmd$=!?Scz0h$&QkDnlvw2D|v57R?%> z|LP%O^bGpvfzsF$BpFvG{6wbjVT`NqF7<0gzQyvOUh7&`p&UnUU`;yP9*mvzX-0P; zS$WU=KAwN-q68$R_nHM!3}`BZ#ES$`8MrId#j&4Tj5Igb*?V(LOj-DQ22T->O>h#) zzZ}qFyp=XqeJLO=Ua?M&TD5wzC4pNXuwr6v_;AW&{*gZeC`GLDP$)yQ^K;o)BqN6a zVxQZ0X{OArqQlF9%#?H|V98pQ*s;^WpD^P*TJ3BZmQfBt2cO3T z?N#6uRF>%#c*!u$5cR8fMQdF=H2C0TRFZP2jf7JDLxHAh5b8Lme61jSq|8477U5}j zF}fJ>5U{+K&KK zJ-6hnF+S{@`x7#xWy!4j@AKWn2@RQGROW2H! zr@>^&fYbb1C#=SB3f+bWYEMFRqqkC^FWL8Kat$Fk`Ae+YjucZ?Y5)$6Z2Vx3%YTCd z0gS;Vg+m=!RQ*Rw{Gql--A}$m3#q@0Jb45WsOwM~nK4}SB(-eCmvWTzg0j3t@dIr4 zWS9TQ&3P+bn^E{fqi|{Gvjf*Wr**HFSu}hxdz&K@{PnB!S5&)1fXyEz*!=9xEZS#< zg@^pErLi)y5A^v41XhWxXAe)V);_r)YBxgroGm27(X&1}x)RBIr@ujgzUNpWRs#hz zPQmP|!SUq9;6^q`^QfUS((ZFvy7Q-Go}E+D`cQ8A0YT4Yfwm~zlQktRY3B%co)2Yj z&(&YLT6EO7Bw;xq8v%}CF#P*`m!muXeg~BqS#Doy*l6cYU+53veF8XewWlED4HBtJ#==&gCFA)dbC zVGfT(QhqyZJlf^Bs?mb$s{gr^nOp}o`3C3PEGBq$`P9%H$l&fZc2&tQ-Rg31n|H(x z_&v+gvL6rh{YNfYkS|QKf0A}&&Qi;6VAjkjv2H(Rix{`Ys^FRzvb+xWImQYX&-NUM z6=>Ny3nd)tuK0_2WFBP)>xPXKh-kkU`(>vt=l{|udhe`xa!V{J0G<0N0ivW}**S9@UR?v|zeS7iJU%{x&p1)A$N^=1DZC^)ftDu{4Qt7bI{VLZ)` zu!bZ}PMKTkA)HOGW|Zyk*Ot>g6oSgc_1XQasbl6^7~YbBdnabE6D1LWtC4DDn6w^6 zf-+U0zJFUeTbE|#RvqYj*LpPm+iz@Kw4In9!AZMF)kb1@o++hBX)23{icU%@P7 zch6_|>@J`Euur%PgtYoSyCAxC=lHMod1;^6sbv&T-$e1;)${91+|_)bF^)6e-;d|-GE0@ zq(9CkcPo5mHy;9(gPT>XL=`RDE^Uu~Q-0j@CJw@A+K;|Sxpxmh(0xCK5w}MbL{Ihn zYm*untg7dhZ$u%CUdn0?#((Rgt=?$(>iXY!+dvEx@2Y1L=E!Y>m=knZ*q`6-VUs z;*;+Td=?%etQtbECo_bHbIA5}(tBe<-Q#~{DxZqjCkYfVFu?oEiQAGfKFkxs;~_}; z_k`L6vB#F=XFDgY%ze_}N>vw?@Il8(zOydrpENi*uMaMkz$5LujpIkRqbzMN83mBG zvvFdGLjjj$R$7GdYWy$w+H@@wo|KfhmmO%$UgqvpIKRL9ytOOR*%ozzelgo#{JT=n z58tlcJDX%(%MsCtBMU=t!!rLm#+nu4b#8QquCGgkI`TPkC=!wT+Itqd+%7Z_zC~@RpzTBDL37+CiKxRm8@9e4y{nF!`b`H*M%c%tt~sS_|#0}WfHqaqSBZCPXkR zeOC2A#t4WbyQ(A^#=Jsg_hh2t@)2RTTP$_g1WUglN;!{>E=q~F+jdW^F$A@YVX;LB z~Co800$g!(~C+wPg#$cu5;d zDs#WECXX>lBo`p_UfY`?I?qNWU01e}yqrtEzpSj~Wy|#eX&Ch(m-YcC>)TPpj`;+ZfR&c)N*AV_xlC1D(-Ol7vo%C9og15`TseJOXecG zgq9zcxRU>B8Ct0h9>6`36qx1KZ?_j+7_uMbIkdaG_?Ig}YIyWb+AO+I|3A!)#lJBV z+fBT}U+p8DdG8!QdhKq3cR~;1m0y-`r%$J`W;cRTP$1E&(V6kS=UPbdc7fxN=eH*m zzjo`w*NfRGN6#}uLyq}N6|+?%99K}A)YIhO$B?3H4>Ufes&=rhXhi4TewzH%qh-289#=no~YWIUS^&8HDl;L`bzazeE9Aw zJGRv0bmgI3t?|)K5Z9cbbBW^|wD<4xn6%tq-f(L~?yy~SEqK(X`s;e$@hG6FsdYq0 zpY^O8e_@*5E8o-}A!nZesN%Wa*U&l-7Anch)Yl#!@EVG%oqV|40#pm2n-&5Z1o#$; zw)93$TRK9!wY_;mgJy?N*~8H8*TZX8-P$Xhr*GPrIDr;U)8r1If(-*Ndc^=<-=o&U zfvbn%UUdoANSue7gEsX{pd+(C^30CG9vZxZ10x`N=iM6s;G@T zif>{PH&JmGu<4OI^hb~u8Ycu~ab-RGim!P*E&hF#3+&J5klOl!V7Fl-DB4DPuj?sBvIFmR8jN|2lM2EaJxeDP+7}8 z--^esV^WT2U|2X$`#j=*Pkg`$+&!)&%bdMm{TcciEqSyHydFn@Hx4#Vm)Ceg-@Ps` zLmGBH+?0Q)>OVW6T}=Z;l1rSM@*+8@pkl?3XJU~(fbC?20ZRoydiqgjz39IT(C4K@ zbx36|#;_HfRU2tBH)VrpyFldjK{+Tne>_R7*wPFtnWE~@KYnIbF%vf$QBf_0*Ll7B z)GQZ0;?m-1uDBa(p6Lheg7!m)32*<9eRK)1t`FMp>ZIA-m5hs+s4Mx1sB`}G!qedV z)FW316ZU;2MC68hIg2MZ4s-g#D+61=K*Ark9fP+zBsX(kkOA)v@$4JD292OoV}sQ{ zSe>A$DThR!3V1oR7gbXEYW#{vozNBYfreFKBH#1X*`eh1+KwMfo%y_AAs7WOuqUdD z%An`LB*&sMU~<}-%}56?q2xl&Id$27)xe`Gh5(Zvb}Uj)i%l;vhczNWw4O`!uq52i z{NOOfc>4u+n%IV*6>TP>gp_N~O;5}fv_4R4=o#hd_V2DEne(EikD@h!#r-$9RWW%j z57IUFUsO`iST5N_$jL)woN__>?q}9|MG@2d)pU!=(QFG> z@qL9bzy5@KD0g9L z;iLYzwCqMByu?IBpmcyN zZ{ns8+%QP&BzmsW)s+FusH@cG22z9&>uhRCspA@a;<0(dNC7DUpx+;pNJ_uI{z~vD zjOIp6tu>!41*Z%ih>4Bu-a9Ea8X}y@ovS0`p<9|#w6Oegsbpq;%b>Q@8B#6EGW=-i zIJ!{JLw52=-XoHa0x{C&_ryvYx;!wr57P&YH6uL%`K@<;3!qLnOY;_~_p)aFfa9Gy zaIO_yNDRq^r9*zfme)hpm7dRm;mmx3+g{1kB=X&ge2_>Le@L}#UpC4vP1NJkgAT11 z8#X5Oy5v_-spQw!Oe*}iN90(Z4*#KgNz0Vs0j0Zc-%(Ge@z7BDo3p^{6}O~GfY&1H zZ-f`6;s}0%bdJ7Q+p!!!lzy&TWHelbdbaNORIr+zx){4qx-KDH(O_Ek&KtQwOYd2+ zVh51%V`KwE5xY)e>%NFOTY>+MLtOiw`8Mazdo%IK;-6cZdx{`0+_C~K5?`Dn?QzT+ zdw4fd55@kz{~;N=<*oR^3%e^(mlG-2T-)wM8zsEZ;>LJAJ(}=O^gLzMHFMN8#PFQO zF#$Vr6Mj_&dK_Zl8$OT(5RP%E4BxOMr%6o-)J3PVA1+{8^1WVoZ0HHf>gsmVxL$^^ z;octd4X-w-Y@CjiX`n^hK-Hs zd2}R#>^m!s5mmc-m_KG$b4)izI2NZ!Cmca0CG&P>mR^=r~U+RvI1@()|j(pwc7bk%PP#n zDZ`2ci1ln`q_OlTd5@nVdYgEhTsjB$fZ*6E0$LSW8mId-c?}8;anvjTTS+VXfy!_4 z=%<@+g(hCL5jvIM?`$0`ru4!TnGXlKTSuKQc6 zUQ3+=uXH~c?LBnVS*iW=r?N9Q>c{7bOq%`1quPko+M%*Z`=ely?3qf&eM-iK`*+Wq zY33_q;ugV?N%@$<^F8!gPItsK{jL14g!4)hn|^GipgIS;rmC;KsFs6)6oDzS`$@Rr zm%l^y2`kr!-gPfL)C5G~`ww`Hwi8rmw+E3FsD?pHd$BJmISZW*Ta}WuX@}C>o9(ZX zMRJF4oMA}=I(0-kYVI7p^{V#pwc_(|z)$ih&`E#W6nfd6RG9s45J98JD}@x>A88U? zXuMyY1?@T*+_GS=&w>foMO-=4PbNPT#QSRxO4FKsEK!%;D(Ivc7UnE0MYGJ!PsT-G zoU3{7q$A4Gd{QY$1pq8HY$>jc?fX) z$Ayayn^IY*AV`H|)+CcbUPaWfxO}X(u6@`_7PBs-J(v#X9z;^}26Xy!kkbv;bTHn+ z;aUWSY2guikch`iE$f-O8*M5JZ7$p;PEH*{tIn?YfdHplFfmv5$4BIJ_s^_QkCz-* znMnCjuWBg;k$ZYt##l+P!EqezU$OnSyputm#jt-Xd41FW_&!VL(V@ILgxuToAN{_$ zTw@VIIT+dJM4SaK4Tqb)(pt*T_hFLL_}=vo^VUsZ;#`JmT1?yE$+PD_6Hb1&fRJW- zA{jS&r&?iGDQ`OeuCv(&^0#Z2mfVvN<$sc{naZf4M!_lngJ^UEO2ulG+${Lb0oD;A zCB)WTNk2k9{e80GGR)VFP#}ty#gp!sqT{JU&Q7e5^o9H>PVvkag(+Nl2!GV+jvV&K z^~-VsSGk3FnMAyw^6BBXdyZ8t0pz3-uB7DaLqLkHE*a=8} z*wN&D_dHZtg{Fovo26XqL_o{i{DL+Qg?gy#i?8VuC35+w$*hKf5v;46NuD!!qe)=l zV6uBtK^43t6La+`jkQxCv*~XEwp?{WbUfzMs*73Q5UJR8o3%Qsf=TFnjsVFtR5zvQ z-mVKxxoLJp=gh<*Ba}RDjg|OH-h-krToPVC-)WvdYMmW722ZmCm-P+Zj)z6JKKv-_ z#D3Utw0^d2uIXvY%7x&MDN) z>Z8^nQtZB~ljx3Iq#ZZArYS+?qs%n=yc`v&s9=S-q|DKY-{DPHpOQ4B^m2_uCTA3d zYQR74(*-$za63lQz{Vc>5MJ_9;ElL)b10K}GIr$XmA&T^bCECc%LN6zA}Jq>KAjnO z-G0mW;GW>q@pxOOU$B?=L+Tc{4jxgL4#hH1!Jh7ZqQ-u)enX-yYnKqwoZieu7%5#& zCawYrS4EMBgy3Mv%%FCEswo3y;4JZipR3X|>)i=vWc^6ndfB+JNbkK-yM?oNx!gTA zr)58I{(&mQml&lOcR)c4dvv#7h%M)-h}orsz4{#bOt9G?DR4~x+0k+TrpBwoyV~G^ zV#;SuCW3)v*PXA~y!d6~_mf@XHnLn=q9@~9e-CoL3=NV#J38cL`CQ?}DwH^}_3-wn zHZ#=pDVtpyC+AVtXF4kz{5KlwyO&+iz38<&R%qD#v$%P&du~*IwVM82yoYT%n{2K2 z`!qc{h#P*&SHXHd{AptQzwTG_wx3p)zpNGx^r_e6l_d35Llv(@_WO{1{8adiYt#vU zK`3OP+DxSR`?XPxoY37eQ_b~Go|vP=qwR|X)Q5rRW^Paf=YIcp9oEh(9@qC<{8|?8 zG(2mHeFUeY;Kb4E+_O2Iex4PbPL5tN0#V_$>}jGkbkMj&98gvQd6_{@i)l2R-}k;u zbna^uqzj6|^Rl(xuoH;*bA4E4i1n9jS>wil#2xaKhED zE7LD-p48HWr|bA{wPTH)A1~sD`~?5rG{&xe&JS&IQ5s&a0d)&)=bW=~$r7VVi(jVR zT*(v+_Q>P{L3Q--Iq3p+i?{=a?w4`NIRhBRfp$Ug(2<(?UEFmLfr#*M9t$UG14R50)q3$Y zZss?pKID~1uW{u*99xRLf+2$CRm(AK4@sVyWaSIQT@k1Hn`~wW=%e$7Zjv7SE9 znVY>1enKoV^K_g<$pb{zew;)dq9b|{jI{l7^h+{#7^C}~0NG+Li$fsGo7=G;=wJGj4Wv3e z3Pdw1Axw2S$Q5WtLdPFJ|rj=k6WDgUoRy}KCkaEMJJ*8q@2Ti>q$DMdHPo6WUzwL-t@*p1?A=D^i8aZ*a<&~uIu^f(kP_N$gl(73{YO=Uf zDBJXld;g)UcV0$&ikRNppVx;BmR+c>47k>&pL>K03B@IMJUe^9k-@f(BIpg;WY{8f zuLsku?CpC_ipoKkELuOoh2Yd@6Kk?=qN-7k^1h#X;*yJ#WlHpE-F0kQ+~uJUE~)W% zrSEm5f+;iC0kT_Kaa%NQ@kk+2{Rg_rIvhy-eM~0Xx!yaAg?s3n34@CIcXTkT*8hCc zpeq`mlC_gv1CjoN2>7kmFl+H8P7(-G^F|Ju6OtNnNYFHoyiqxu9p2lK=qK#6^yc-t z`{T*$VP;kxLSThH6g8%X32S+1mbO2dD*+mA?ws=hrEzg19@(Sp=37r=DW##07utQX z#?>yESt0TzY4kSGg*ds&Go1#OjJ+;#jLE1DufolXc6P0G))P5&S8uWvkfOnT#W^u* zZn}~S?JSa3tu^@coOCokbCjh^1X3cJPM9AikUlI}6l{zS7ecH5v!%-mw-v1+K?0n$ zkae@{nB{T+^65REFmeyAm0g0aMXI$H@UpczO?$mg%ynK^^@TZar5bRB%=^CSVO9b0 z9pxqISh(TGzmk8uwIofQr>Q^miVVoNxdcw0cZ3ZTEC@Q~EWpY3qN&sG+bzDjYW)`j z{arOhhuiCPol$Bs7d>Jz+xhnjdstId1Lc2uxXk$POf z8O4Zf8$)nIw5+XgFD9e;R&%4nsX))(2xo6c`GUaCZuvj=zUog=^R(aVGzq*x)Tw!g zH8T>U;C00~^5MUPJ0cSE|zga+f5BjzgU+_ zA%{geuTH%AR@c0Eq;g0c5j2NtX?0mpk6j|vJKr}rjJNX|0?V8c3vu3dB}xVIYjq+E(IaQ+P*ZCBnvs&_G|Av}O&oNIIubq9yO{p(V2y%Kv-pr{9e$^YNc4 zmzq}@w{{%SrK4jH1IJ}-#1Xa>9Ki4R=y8V6524@dH^`-7^HIk; zGUp*v|31WQ982(tU0LJaX5j2LBub@>Tc0~le{(3q_#sBKctCJw5ZNPXCl%}d?FcU~RSclh+MGx)JL4$ek^rTmcFf|4IR0NW*GqH`8O;P7Irkimw^6F)5@G&;x1!e6RCHkh%>|$OsV6**XBtlZJXSW*NGXbkZAzmR)3c(%&bVn)q#H{#V_Ql&OU7aitEs zqPgewUJV14}Nfk&Df3D%78&G)|RCSndN(2~A8_7eS= znUQU^V{ra?M=70+0r}Gat)-+`;y@}{A5l(y@&eTF^w_*=lJUR}kh5l32^eaBEYzpjvUmVGVIytZN*-D&Jm%w z?S;-`LeoQlvfc_Q}`QEqi;y&>EA&+wVX&KN_67*mIvq#g;#->7GP#iXBr26pM3s4aov6 z&66i|!UzFlvXe|JFfUd#F}(VwE`K}P4{$dH;bB;`w4j);}FLGx#&=90}xLWX7DIO`Y zUtGhmlH}Z#@lTF3Xixqm1@+q5w+P#+Z@S3;GfBh7jV2-~a+>_f__l{!j^_9b`=SZ+ zg!62{jifBDma}{u=tHC-71x%%exNaznEld~NZVEZozI{(Ubq3W$ZQTEc()Ki^s9}$U z*bBkKh71I-jHZ->rr6zv>;qSCofn}ixG0Y!>hsy#m$R^%UoSL}LlsYf&!B`JJB%l` zgG^1^q8Yz~W3a?+lsOY03(7!a4m&)N)naoOpNWzO-Kp2EGDx?+j7&EaOS#N`uZ(Y2 zio#f{?T|K&OYDDKLvjdi3i9|;J1~UB>MaNt%5H+2*Lq*+$I{{rTVN#Il51QcA~%!- znwe=?%kKpJ-VTj1_PcWIp2d*pq?xlzg@&Ny&^d@UtH`ESvLxEu)U}XRZS*ZHC=4Mz znAUWEG5rgmorQL(iAamC#uK_{&$pn6ZXul`JqVz&j6tLeJxw_Of;$0RoV19*p6WTC zo)aP2;zy;veU+^K%8N&1N+9TsQAHe+n|=$q6#9tWQ}%t1i<9|DQT;64v`{vd(*}c* zd!6>AUP;;^Hp3;R))&3AzA|XLKm0!z$|i+s1)Y^t5ghFeSi6j1@<&Ku*cGpv(n|xY z9!0lg`_e*g*;lF3ktKm~4UvYrA7EZ1UMug31*7~u2%nlYNXYWuI~5U)-Mk4a`27IA ze$%b#w`e;zme{1w4^_UKNzV?>%NIWtdt>W=@91_cl7dRC^gh+$sAgFI^P0=R6BeD> z!=DjrIUiSr^nwpk~Kti7c$XdcJOD-Y%*yBy)X;Sj(a;*p2IBF-zCe zEQPA*&Jk`&eI^W9WD)JFMd&d`q&OHFX?B$?8Yd zz1A$+AN2arLeW^P$?VZGO4*wiSG}zH4D~QXdv?C47I4KI@95cZ;Xaln5zgEAp6T&% z`9hZVB$-ie(Bz^h3X=i$7cVIOM`ejyZ=Jk% z9SLfjBDf68&&Ab8ad;#W-s7m{WAq^n8ixZBw?ycRJ)k;dp?c!->7v%BvfC@tpmuMC zuUOhL3_3f2yn7Hd{%nJDcuvFP#}6*!C0?sOxpX=CrXCGJvx_L4y{g|sxA0=?a52#8 z`z4W3CSe_2!U}he$^TO7y@!0`h0Vdn6H)*f5UpIGn1*lIgGY{P0tV0G_2DDt=B&)e z9N|TBHam9PZ_LLZP((ZJ7YBXH<*cWHGPpe%(vlLsA{Dl7(LlFQXAeA@BSqz6uWNMt z9vn2OL8LUj0GL6^hh_3?=d1=7rkarbGBTo^fcT9MG~wAt^=1EvK2w>U#~dR+B};6a zbwA{v!GRbeR8MPXz^NIIAn@z<9S!)fEC*xPkuy8SXc`p-mk8v=GBKwm7oJn(Kdv_<#3^_BABQS!5$P zZ>Xi6GPC~jUdDn=&PhFYCRq79SR0)sz5zt=HnD%8rum3FeK$R{WZ$bmBG&2n$_x`q zc(-Q26h;D2#V#4jFnT1k$^FJId(Q6SXK$X8hoDAiWkg0@xM{wz+wjbBdol`l!o*FZ z4J0~h$>HiNQcKTq?GE(a{%v(w$vg@zsi+k0?Lz%3MK}Qck{{jTu-8#$&bKe{RWOX} zyqS`5)Su~&2ol-$Sq zXdm5)fVL8B0~xx^rf7uioR}ThmNr!k#j(y;G7_Rv?7JT+rk2;e?b(b5gd5ttlE0V5 zL9z7<1`9J2kI}-C&Uw#kaFC8Gif@|j`z~c&GoBAS(5C|#&WA2JI=t3!6K97DUe;Jo1b4>t{VhFqATSOskGBu?7)3J%hMVvMj z*16YSQQZ@ef>Rew$j@vGON0vIAORL^f=xB1J!l#m5B3#l!`U+khdMMDJQr$8%o3C! zMu%lRAS#$)5C?HkUdyxKA+u7E!oildd)b(O3z}O~$9@4>biyJ-wRFKf4uLo%Z_Bti zm%H!%`<554|MG9b`_Pf~kj?%BEr=JnPHSm)Hs-iKN7Il8^cnm6-UAWYr2|S>-N~cy zji(9Zk?@d}n1L4Q(Bg)vp?m>gt~bb5%XdF0b#_z@(rE=*h|TOQ-4XttgFVj@Pr;tl z?Bb>fYx#(8v!fU3VRW*$$+R$wTG8jjri|}ULg*ZCTpN&k6b3 zf&tlLC)2!{cMq#0q5 zsx9((zOGp?_YfEpT2ZT3iHzUA79myT036j8Mvi=R*$@;_L7zO=L7TRu2u=XZ9Bm{` zh%3sO_m9*ihTor0d(hR#|FM5&(hqg`i7@PlYZC9aXi1bFd?oR;>6hM58swKn55t3K z-rxHM67N_d!T)TUr65?dWPeEOq zD1GL;zb@U(b+CTFAy@i9J6?U}7ZmCg=wD3*uU=-DzQ4afkQC7&L2<}_($!BhZPRf} z#Y&X7^fu|}XVOI>3r0RDoLX|wM`CcEVBf&pZAEIdf69M+r=>kC+_|{@%emy2^K8cs zWm0$W&ey1VubeR7=t5BsDEb(AbnHj{7ihK1+>}2WY|LpobA!%^vzZL!>|aF(FvO zhr82%iPDRee8T}iSGno#6sTbc!WF$}jrMsvahd;1)WPouiB8rM8(;f8k82=0XQLc@ z5JG;?h?TPywrH5z1!eyS={^o8q{Kro(<@ODnfM|~6Y8ijlh&E=O;0I45{^Ds zK8(UebBc-G*HKnd!YBq{K8lZ1+O<+vcv82cv=1YVG5E&)3FRYLa6<0|RrETR{Cpe~ zjb%14ZLA<>|LBwow2}fVFoEafKO*LbSY>i}Fh;lzx~Pd%m#Cj}wQ~qQ#=%!$?|~iw0L- zPeTLoT%#jJ<=;^c>gh_OD6lv@u=$vV&vT$Y9Z|x@k8V(hx1tsF=lz@I#7!^rF%o{P^4#aZC@fK$7X{afnpYxE%Kmal}xD;_1+9lX-R_|Ve?s}>Udi-F1$Tln|Xmw8?G zP0%S`XYhZSZ6g&7dKEb#8U)*bIzNr}JegFen1b^yG@K~)!Ef;38;W2=0jqr4dN-dP#T==N*s zm5_T_`UJ6isgtQtp+J=PG`^bvZ*A9B?QWkvgLhaH04VOjhl|mxoHm>@$F$A@Z2f0H zj}iFZm{$Db8--?B3uFUl?C#$W9X&oBktqSGOZX=RJ-94gf8BM<|C3tv{sT^(`mfV9 z3C(q7iNrd$>{uCoU<{z0i-9U+i-I1;K2c}JE5Q#WRKjGdebvQjZ68v>2DBpiR%sCG zg;Y;HEF!&-YsL%ZFBqxux2QMh&$&XQa%hn9}dBno#p~|WD+3- z?KV7s#!4W4Hi9`rV=_+r*a#B8xk7&XN#`!SMH8p(EaVZ?WzZos`ilI% z7I#W~-V1l^)qP(R%b!#-=8g8rc{19+gW2Q$16aRi(U`O5t-+>wZW&6DFOv3i)S)kKC=5lGwWkkkX0+f*5j`RN!wdc zo-n{1J{rV-wt7je2H_BN=E{DnfZ0WWjqT5_BD2&@w2I0nXqSx4Oni$X`7lRrpRjpQ z>Lpo{gDzL}>=+}uCC9ql!F6EJ$Xjkawk;WEpELc4Fg>O2_7Ot+W#QSN@`>bZPi+IE z4Q)ZL?WYgr3W{JF&K*<{Ax#>0JGL|+vQhU72q2MJB9!@k5iqn*t4}ofHQk{iy-Y)8 zvt=>PjM~ISpttX@&>7=KIgxN=xEHR@$mlCt{8$s+ay~<(uBATTHkVD#!*k?mAvDk` zR-5OhC^2oQ@BDnbuYS70a6LFWF8OFp>Za%-JT1?tA7wbL+6}&22};T9U-wOuBe7B0 z2x6sK1MG9Xnr|~efYkv^DG&-@1Zn=)tj6wR-W4__J5N8g2bm$`;rB%W_eqe0k<;nP zfQyrdZ@l{1z0us)uA7e+22Xgm0rr-_5(Pq;c_nEPRjM4*-P8P}7B&|7!~U4( zHV5jDG+Dx8TRe@=w>=l$eTnR3AX6CUiy4yxJ<6kX8Z+-W{q$lBCjDSi_%9;eFvnwr zDRD(fGldowTQ&S$oV|#K^$ZB@Ye@;jLCN>~_^KZfY6usa8zw$9XXAqy;j}O#S)K7z?8q@>KmI6}6L>cFYix?uP-2?( zj0)CR)*S&Bt-&oX+#p7>JoBK!XlpA4gw*1^6<_{FPyHPdx0bpootYwt;_|+iDAjDv zH%02#5Kc)+IUXJ}BKI@7iFizMzS4eE7uY9@Uoq3448z|w2|4n>s|~?pwP|7Kt{2C? z70?g4KM{hz?@&nU`k^~L5%YrJ-HOrb1?7IG#@6)jkAyo(Yqxe}kl5rWL5<^?fvEZd z9k6JCz7Z3AADj`R?x$&+k)2m18a4g-Oj6hbYH}Gp{bx;YX*vtFt<9*Self3`90M4+ z%9bTOtdRkfGOgo)l0kA`^J%@aovc<2xG{5X#`-- zO;n|jaN1_zyY1T`!x&7Kj)Gr27AaXosf}B#wQt_D-hY-85<+++w=n#$|DTPT3yF@| z2+B-^;AgY8LZfh3O7QSF_*T(yj^J3<0OID{h0EtJyngby_9H~?{qQ2;8db+Ue{ryC z8@G4SG)?Pq`d_%Ao!(VAb7p+v~y z?0G}~ktvIb*(`LYtKM#qZ1~gq%VBRRj9)d1J+BB(+SgR&3c04{>Tv!gU}fHCmLC!| z&NeTaca~VBdtk@3H$D^T;p|<|ZZ7C|gWHG)KJ-kbJ(y>ZQ|V5A_xxmnFZ+xJdvD`< zrK89=5dZPfI3EOaT!m#$rGeVKGvJ}A@Y zi|+l>Njd%{47o$_5rMwn#MDp0nj;5(Ezn=vjs4}G-gP8Jz2HJBRA-cP*FGozs^qB- zxyz$T2%GG;JKivQ8{)xK7dZ;e;xRlX#=H0`$Xjve9%56sw~fCb8?gK2T9p+?3x%Ir_S{rRJbl?)~Knf#X?m;|^+& zxohK-%>etn+31>Fdh7MD&s#5Y-&lQvx2?=0+Mcz$6x1QWHN~I3raWsCOAbtcO8yIV z4h)Vrr%zzEY8a<#Nd&|Ewqk!;`&t@6mtrEf$y zRPn4e*hB0k*ZOajEtMQ)w1BsqVV}Mi&8`0}cR1jg^uFT|(n3N#cp9;@R+jaxfSs+mOCW5`Z?^jby29v%o zGudxD%7DS{UB7*MJK*feNucjN-1$CI8vO7Ql&JKl|KEUAGl7AxVZq)!Jy1dNA57-H zyl7w9G318Su4aF}&e+>gF8cS#>*Z~)eIX_^eo@WEFM^W-F|Jw_>%TGZLy~3qWu4T5 zXfU%^QdM`4%y7*&9|}vWJc7hR(YE3NvDju%qI`0WUTof=f9BYoIU>?T>i%NRDy!v} z@UWIO-OCNUFmty%9*)7*&M$v!eZt^;F|mN>3ItVC+ZfVE_FiNqg1>LFdH`Xxj%4 zrN)`p#Z4Ktq9}Al!QS_vVz{C4<+`C;!3<8SYDVi7m!rJh0+6ZjC0s!4$dF9$1bbA- z+;e3q=`Tx|09VL8z+Bo%J<&llY}1-Q*`;+GLN-Jp=G7bZ0;IpJ%#?D~il%n>?OQDP zOLG8czcxfHTs)I*o}EU{VfGzuPbow_S?I^V!?&b$?uCq$svXl8L&+nv`)Y9uhVxI?Cv~2-K@B@ zgKtR{nO)vYOOfQv_m0*YHCkW~jh5y3alL&l!smBXwEG^T>+X3&Bg90s&F`t+Z|BYAXO1d1i)R=rHGtNPL6QT8+~#$NAm?!(`v&%X z#_xmIen>*K{*^R-rwdJ=puNCd$D;M?kc`m9PobX~*gqlW2i`JtbI%I6a6c7hRj{A( z7?Jo%ci5I``-`GtON$EWyci{(`TT{RcOy$GS#g{CJ6>tRW%2Nhf7dAOm5U1i|IOB8 z@cL6#KmgL0TGScW#u}Bpl!mMkf z6#Fm~ZAd`Ls)v{-s)z<0FhyaisbFi3*dTilon_PHwYlIwP5{t3&ii+0?2=0Ei-?kq zVIR#-;EaN{1wziulxoR?Bq8(~AI0L{CnuCAe>O!yHTaNr+?&=DBg}ES8uNI;gUKCs zMI`eiiKD!M-0x*@m;bg7u>ip2a~b5R2}p2+~JyY}DF1&zFqqPch2JKg)(_>8J zqBktzMgNHUnu219<*vI>fsb|e%lhSzuZmp2q~T9?Q%?rr5X=ca$(bO*)bUHem?v9M zT;4&*n@+rp)i_Z>o1C%ikBhaz{B3fEknTEa{-1|Lxi46Q;fcN9g^`7F8ndwoPyT|S z+OrD8RDu_|Fp1|smltq{s+~+umPD0uXu|h86;Hp@$E7_^ksC?MRsO_8x&73>zRUp| zpSrhpOpI@oMC-S?-ZIWtans|5ViXqsv9W zb~Um_s~sieQ6(}=G1RpS_2<iFo*;Pyo$aVTaJS1TLl|4JzzG_3 zPBub7EE2v(w-AIM+O$z|C zyq|6cePbS&fQ)-E`ms49K9m+_)q-U65ExEQPmaMFX=sBq0mMAondviU#Y;#XzV_OdIi)vOC&G^`-jAYsVA7r$P7eJ$2}6KQBN@C`&xmwB*Gsjom(L7q<5VfMu)f-GEi>sSNul0^@4dmmA8!l6$b<+1 zckaF>w>L*o&@Gq@i61=a^v0vNryURCk(&OrmL@Oojckc@vVUmk zKqu3WA(q?DbR~*90hQ|8UpO&GiUFT9@^X$;|Co}v%S83pW=^!tB1o4ixiI^h>&&pm zt7R+5R~6yf42Lq`Bf&OZkUn{ zY8Qp-S1(F6vVWmuQURV~_!lGn%N*tV55jZqSaI*~o^(iht?Nmf=4WXA3-s*UP4RtaEi=j& z0_0yc^*IDV4zb@Xdu#Ze7Q%e2>a7>2K{e}j2F;=Sw2>p95UUz7Cgdt#LHqpW*OkOy zY1id6l)rWOOsLPhPVv)*_!9|dfx3UPGo^y<_8e5g&)Xg3npUEAfSQtT6SqOWD`EHs z)mv+J5WAa4?VX?(t-{)`DRCW~q$bux?f|(f+uJZK4b%{VTLccQbB85Woh&%C5KOAc zD)9kyidCNSw~=Hvg;T@Mf?(8^QGlOH89Bv3ivUZU#_vbr$@`T`b27h|QSXX0bX0T# z_PUwR3Ua(seAMCEu}PWn)e*KN%U&Pk8Fs~@ic@Lg ztqlHv{!H+#$fafbr)@dQug%&k+iQHO{TLntDVor>@ajtgK{?b~#c;m0V28q^ER{R# z6JCoNzRa^^hw!~Y{W^-}HnVxg%!&Ywid@7bGF=oyrFq}C#RI0>rx_)a`^3{dSZ3ex zJ6J4Vd8{8piA!d>Gfq~H*$VFBluy28b>PNSuh%x!d5FUlATkCPzx+?$f9SodpDMaa zHPEc8fNWx&AAS4rO9mwOc2U=yEUN&TV)VgHW4jOh1=ZwS|J;*pH8>>np4L7VU{_(T z1QC)|j)YS$nQLQe+8yF|p$w!I{Pgmot7GYBEh5V3usq^sQFpP{^-pgdc7g##SSQCv z0rZM!A;#y{A;35B{biYRti3NDr%2MD!IOV=eX5BaVC=mrq>#y8pw1fWA|<8P+~0@$E;?XtJ$RH(TQu!Es2)wergBN8mvMTYcux6 zK@T_qmH@wB^oc5CX%Y|hU>wJxomi=-&JDG1OJCONr&&t5KfxTwzJt(je^#3)I)9pd z@<3ImVa{lTul1y!M9shT#Qd|sfcg?fE5Ov@<$_@Y?Glp(L_I)%X-5rZQHMjDzQ3YC zz7nqpNvZ{$?<}GiyskOTH9yG1bI1RR$sG?SYz^WCj^UW6;;wyLlHIA9Xb)MVN{zqM zW0A6g&TWHA7jVFn_$sSOd>2)c4-X^ZtRxUrjysh-l4pF zncjHvT{^C9}j5A@~+mQn#!8n1YxoPpF1H`E~e9h8p)n_0B2G+ zMHLW6(GN|Z_s0mT2{)99yh_`htApj|?g}K*gsvScn4!KhOj=DFg=lADWRhMM+?9zE zIke123`gjAS$*pq@H*9@hqc*LBjSBv^Zit%{SMN6*b*R zj@*wo-p4y-BJ9Q-rXEW;CM)-R7y_$h?D$Rp^bot1^`jMwAJX=XZnFAs5M8aDKC z&WUv$d>EO^dJK@x?6qjtM9xPs;f5%DKm)c*4jVI?T2B@Pf6}Q#{G(6!fnVR~!;}Ix zHZOobf5iVl2*_06{vjlj{67+$j@FVcsy_pclRx1^QBMF;nT<_Rpy7WcI$Yhf7P>4= z!-I~7OVKqWe|AhMr^dcTPJc!uNO*?5aVnPhGWN5K?9R!S+D$6rK3`6~De^hma~5CC z5;F!5n@ z%6NIy5_AjAaOvct6;EGUE_Syfm6OBg<0^@qdTG$%n!&08X|O>4@>jonc1wg@ zr?pavJ+a?O=_6Iw&K>>Dw`iKZUr$X^n7yrfxp&y8sjz-p?&J-nNvQOaWOTq7L6hyy zAOHM3rPhtFXKBITXw4`eW$P_+6Ng=(b$AY6%to5G%ViX1>^hgQ!4g(?Ux7YJ`SArG zg!7B>xz7(FU$d?ijD<5`W$5*j5^VWpE3?dfx~Ywrp8jrVP(-53_A*B}7@;dd*5+A(6ViUj_6{TJ^mUB=JejCR1M`Gd7F|6!>W@olL%x zN5T1pUu4TW0^aaTHN`|_Fh;#=cwG5ie<|}85-ucDkw#qgg}6$Y0hZD5y}o2GF9Z5R z*`AN5g2%CkrH~=*ESN!06Z-jvqpJI)nuK_MbmK)aA%?!TAqnvVj^&q4 zWgYj`^A2e~tw+>kQD+>#xSiP>t1TKPclTpo_)lAxjsWX>^S=MaMS{|rZ7If2Bdp1& z7vg=AT3~L$LD>EyDIW^x|38whJDSb*?{})z)(EOCYA0sV78TUqyY{MGRbrLcZN=Wi zDx!AnicL^aMYI%8d8}0I)QX7Oy!Z2a&&i3Ce{yo%*Z2Ca&)_Df*0Cq)nk9kscz0l{ z8^#X^peUQpDx(L15=KLhtM3l0r|EsZTNSrcss4!I^qgnO64r5Mgb|P_q1f~4DsF3mW^&+PvYW{O{%Zf>XFyhi>~)=TKC-yh^`m3 zwQlQ1k4SzuJ(yTy{6=oQmo1k=Ux2CoB!oBK>u^x~Jk%AK{4C z_n(B(gT+9xRwu$6MByoB9ZRRHdt)8j7*!0+SuK4=IG1{*Qs4eZ*ZC(_2w+n2DMiqa zSuzsZ>$TvR2=+3!7f+lmXe<>nu}(PaUdhQ++Yo|_B_dmAOz%K@6ok?UHY5Bn9iQlL zW#Gd)9tPFGzkSUZ)!7{i`0NF+ydKofqB&rnNcsI4S51@~rX}CKM>GEqn)O=M zjSLgRq_VgxAnJ4v7}N<6v(;1^MD|Krs9FxiNJLx`OjvS-Lkg>ZmbHH2g%-F(lPKe6 z)j|~{AyMo^8F1Fj;jUUblbV*o*jYWo);=xlYK1mDn(~DBe&PuiFd+lRWX(})V8`}X z8oR2J3YT_4$p1%{I|2d|5p)Fp7GCEdrYMcw+MLOEBuRe)`}jnZ+ed`kqHq_9JWXBw zKs$Jk!OFc9n$@z6E8`>%9YJfW60y}ENmUk;A8xW82SMF_Je4u`e28ex#PR~nM=KR# z?Yzpg7H;;&TCe~nDTbbqrZ)hViT4^Fd;7nQqRzFo(FimN{xh$~joW4dW;G{?UD~h= z|E(O|LdLonPg*_HPz*@779mIsUB?1a0{_A07z^V51HTM?HZmhv_6rsy$lX1k7lP(~ z*qc$V8&)2E@iBZ6AV|k-fKd4ZQZ&}GNs>By3`SY*+&9uzf?}O5g;kMxpj2i5dLX2Q zc)*>p@v_wQeA;l`;LPB0x=JB_ogv@&vcxkQH!(iw`i%-R^q1=l5&gWmZ#i&5h-7;EP<98zisw1Wb{k> zC|g$3oX$%6CSO8OtI`P}+JsQ*Y;Zk%(zpFJw}BY&3`+!w(%j(F6DZoZ)%)%Obc zS6-R{046x zK(vPX$|;-aI>hU!{!0ekCLryumANrlW_hJ*p?`LXWG@qufWkFa6=ANcO;7w$OuA+p z><~>+hIARGkg{f|4UF+ZDU_yP8w*yVO}YQ!+tlog6W@doaiS{?=F zaXVRzoLm=j+B5gWptI?}z5oxl183xC zh@GvVgH0&W?vMZ%F5)5sb?3k=0HCk?_a@GZq! zzcGt6w5_@c-$J}u{H&DY?%0}zg5#n}_+}#Ose@+K;he7#YXl*{dO#f7UGd?Yp>Ma0 z+IyWtOYNhh*zdr^x;sm{KG1obpL%bt{*u5!^k!Zugig&6EyA_?5tD z)`fUTG!<8QsmHFIv#tCJ5PZ>l#b|6zR~ztn%mkI^QrqIn+|-PHlJ$9Zp_FugBM{r( z3qm!QK4wORZ;t@h7uNA&a-JHz?jP6b1EinLPFy>{yDIN8{`k_|!%`OsjlJzN@Fe;w znV!zMF>=xR@jqDX>d7GOB$M&Hxca~#s$-@xi_0RTlB2=xF!Mx3KY8 zA;0GZT9+O?ioKN8Bya}7gzE;MShRYi4x`o@JyK6S%s2r+W%F6n*qj4X!~? z;E3@!(P|6GH+$a+$YtCBKS|3|^B?cQnZ17Z`94DgH4qf9n;xpU>DOYVPJSQJ8ZhDQ zRp3HCchOQ6uC8JljVZrrd0X!;Oz1RpqBUg60$c%HL2Z?3Cc?_%;ZB#7s@Mw9H_s#*71 zh{`b3uH0b(=TGm5?TjIg=-i@8zswQ@a!@cSG*l-3FkBzci^QAyv2-CxnDGP<(G+kO zy-6SfGZIrRpmM7AfM9-k*IT<$8)T!L<^^P)yl$XQ(K4VJ1(L*75S|+cj0HKQ5E=pb z?>(l7v)GMiaAVvDbBj|`9V<)0#{9<>Je`Va@ZKmBh8!(UAQuSGz^+HN8Y850v3be> z)sqR*$%hlmE!%jG6SZ`6q1Eb_cOka5LNlBl9=b^96nCb~S*Il^f$(2Bc?uO#}-wTYr8<8<|+C7Y#9wGR>I{l+cPKnclAV4UjM z*A50kD*A_rORI7T#h&*jG{51N0U|e)im{5 z(%^IZEX`$`dFQrR*9FI!iM1_NH=ZPx%i#D{2Dgtoqn7tIb{XGTt3ND%9jp6`!C3NX zd?L#6yRa)0`?N*QkCPukJj1_YA;2yw@iWgj@3^7?bMKF(Gpf2HjD0voLkozj8)=-3 zjIR>fyb{`zS)2GzMX0=r{GrNOf7bVyEk^zz#HEc3crJIzZ2dq8QXGOpq=&7G#EJG< zgH2gqRkKSGfwxx#V-L3>dFq5RqX6Qa?@WOYnG2~&`1t$uReYe|ALEtd4NA?Ok*)k~ zd5aq+@)_8P2^5OLTBLC^%DfT8_!x;70?bvl5w*n>GjnWL#|LzERErs#-QdiAJ{zH- z##J|{Bq~;+WBR*$zO&O<&$?p;&XtqAJ*vQ$*M~s1516(ZsDEFYV|8 zJ|5J6wld+ZxFVf15i%^*rkjl_4t-i?{*1`-sc9-@&em3!kR}9+t1dO~17^z!pKPNC zO@|@!w6JC|3`4nGT7lpEE1W)}qHw^kK64MAw@?hAVC@K7^bau4_(h{yH?Hvy1TD_k z0*LY6cdQ78sdHD_6s;YrC^x~%do;HN_Buua0J#<|rsCxq06C{U2r_wa${!#)xF^R8 z&3rU^r^(R2_NgRS@l)O5k40-^nUb61!M6g9lILZ_3nyk6r*C)(GE42}4nBEOZ~b@e z7$Nu{7ZX5uU$kQzvzp3D!Qv(BS&jL&vS~wJJj4HLts5NOe6e^>^YX3YOFOo?i6=Rm zRM{1W-Vtg-oI(cuSK}Yy^#{%}Mf`*txa|VF-{Sqe)H8KMx`YaWC6-j4_8}vw&_~ z0jDqSkx81#Y-)`<*b#ziW%4{V&=O5~jAGX9DDW)X%=tIZ`WJX$e&fT~oWIR+5GcQGa*;1!Oj3aijUsJ8YgNK}$C8ZMd*Nu(NdRoC;xnpj0}CxE)^J zaU*B_n%{XZ?l~0eEC{ucNFwVDM4IN>pwxUdIXOS&>(j6V+huCdN^?O2qXCni-)=$=2Z(l02l)g&OA0%Ru_95455GJwnk z%W1;~XaLCZJOFH?6E_sDeLA&5#1}cWjCbUuda(eL=;iEj=RY!mS?^2Mukm;K9S$7P zt@{FkxZsT!0`hLmToqQ{?OtTrq~2>agPKAdG^4@c^?O+6*De)HA~{S9)eALe`~Cu{ zyL@<_mJt9@qz@N}0EBA^Sg~n{wi5&T5mnK!Bg<;&zhoIzv7{2x;+WqNJPW-v7IJir zQg(`5H`D#{Hj@T9r#ja+dyw9{98OC*XE7mt!Kp$A$$z=Y-a+UXjbUS!j>B=1rW(}{ zRt1SyVF_}6%E`ym6_QKdt`x#PpoP8orOQR!ue3ziJ=Xcz*aDIV%N3pcVTrY|jV1w? zgqby>H5$td?z&mN>7Rd3))Wggb1t`|TC>p;Wo+nzvRWq2=^>;B!9AZ=?9Htdm%1c? zg!Y-%Ky@u;P+#o0HNI{>bwm2xnOq`C7N|7Q{fF>oS+-g`!v z9vZkMmu7oApk6d~UAaBHoYaAGe+P&HHJ0A=e5usak+2THKaMADl@T^vv)*wln=#AA z&j?3?P-fyN`0%y8(`?>c(MkmmLtSV&=Iz6kX)MzGVZ+s&ZCdbS+8ryMnVx7;@m1P- zxu~f=5a)y)SGhc+T|`#vRY;GLZV*q$3H`ME7v#YM6TFHr(=JInJ{gK_Ish}HhL}Y> z3qNim2EdpBAt{oDngFMZ)(MyyUxJ+P%RBz@z*TvRhZZIgTx%82Sxr;MrbUb+DMO%Xc7q+Jw6<{PKJ}OPAo9JunA&L4;G``p zVQV6)btx6dq)@H@u=>41P(RY!5hPIV1-JDh-1Ok&B}H!Xz5Dy3v89v_JLvU;X)4tx z%^w5z)Kp1+F_U3$KYtr85Oddi3cmd3lHWfm@ae$AA%aXVB%2WzD!(aMk z5Hw>Rp7ohIXI;QBfCe3qluhw2X6CIxUa0J3DQ;e~~zslT7G1OVj z4(d2St1cBEeG^$=9;}}mPinaXteQQ4>rDf-)%3`?8BGen+9MFroubf!2sgse*21bQ zW%>B8d>BGVeG0m;HXA7dz4FZ}fM>vM|zW@H*lI!=0?=fQNucKn6or zHvIvm(tGqnbSEtn!-oM$QP2C)nLoZP>k02}W0fhIcau>48M_DhKI>0BXggR1!NfPB zu9k8hSB_V{7Q;?M+5-RFQ7uhGWC7;o?!05-Zyp63aK@81$JPamg(t^ic_Zkt%Q3BV z1Khs)(D$xMYOT}A$@`4UcMzlT>JME4+4@=1q?ry@$UeC$zfvx#8OC#y|7~{~OCZx1 z$WqO(n#3nK{gZM*5x<|{psQvw`F)`6SL2v`7&v$&S?TNIuD3|6QmVhD<<|qk(n@H- z$6*7-zzPXMd$zg>0KcZ@XHy?iGxna>x*e~Fv*ec(=swTCwYU{x_H_xL2^_je5g39O$z#ZSmJ~rP9OsUu#G@a(=5$&Qj;MHA(;CY_2}yXTfoPp#z$*b(w*ZQS zze^s3$4__<1!1~wdT)Co{J1Kx;Ummbm$i33YSy!l^tsIto?;_6z=2-u0-A?jkBSjlq|MU(kkl#UH8&=a9xwG}jdycM8&VYA;ZDmQb-jnu%QJV( zL2r!AjfE>|?sV?FJ6v*zg{&p&;?s_N_uc|gwx7+rR}uN$myWngyhI{7-XK4`kz=17 zfyPv{RKBz6a9im>td)}TuWNzko~yNfzxL8y0xW}O;aZ{%Ux~j^u1igcIAN*uz>NvI z@pP~xYZ#8HBJ>OvkdS&l&XDk9kRr+FH$xD9YFUoFXW&cMrpjZY@u_r;82kO`LHv+> z#Fg#h1!YK^7idb+HF4P^xoEJMQ6da-F8@|XJ(Pz+eil{$?C@jzKJPGasK^qL7Tfqno-Axa-y)V2gG`a!I zIh#x*)gx7HFCJ9+rNW|1h5Vz2Zw<1UX-Qg)_SgH()3nDVjvz#0+)hK)eW;Cm0i^!z zxbT-V5!el>-Q1O}k2CFeKEF~puDAL~2m9eju`$smhyqt(UH*6pX>tk-+?h&Ruq7)* z6EiA8%Yy}fSp_cQp#}_co4TS&u}=0~JpXT)&55Z%$f&r2n z^btw~ThBWO9=$?x+_8W()hOD3W$PlWo3YDkq!@MvsoT-tJRu5hUhKL-+hW|$|7G-t z$$Uh#o|cG{QjVF|$GoYoCUf)^?CVi`b|h}=ehX}ASt$HbyB_}C4$y---26xyhe*h6 zUi-B4-Jr<39BcH&e}LR#AHc+ll1bdDGc;Db`1WhEpZ^a-!Wnr3HaLf&t{7Je?Jjyj_byIt_Ur1E-1Mq$`;0P)T8`<(#vYsLQv_jZI-K51H-b3ciYh@F8@xj9HR*VRhhdZaw4h)150jo6>S|DTT3vbJq}t@c9gN zf{qcrUeEb5_gr2-6YLmHSqeLF9&j)eyDpKv@{pg+_yJ%{h>ds5IaFV4E^8Mt$=!A} zk&G%~d>WGuxgRCru|_bd!&*DIs_|VBmjnMdtf;Dy-i*f+yE1AA zFFm=3XO*FY#H-EycWmS`%0#08IL5e>d*>_eW8>g-a&RTGH6H@wFB?F%>i_r9>!YzH zlqZrao>n@9+8Dn*v0suKj#Yl1^S2LLBE3VbTrIJ<_72#rN>jshHCdYpb!w2FA3cPNUNy{->8^w4R(F(vA2Yuf|Oro*V@u zP#tf(Z-^7b+9mtY1vRqN(cJ2o{0VX-*u^U@N)j z!um9VR%cQMC!Aa+?qbZ)C;5a`-YrSvaC0}-Ie7M@;GAu7U7D-J9;bO4whip=6O{_x z``X@hS8UdOLbR_hxR%!1kI0_MM}ryqjn{taLvOsn_^ zmc3!?2aPo4po1Bs^fE5U!mNe(%DZASg?)Rp;?7zi<)c&T|Atii;3Or3@-91F|1L;p zxA5Y_w-ZXp`7oPuXAREcLr&N65afYkHxH+Qf21oS@~Tf>CD7Ks8uCtL3%?QQpEN@x;UJ z6EZNR6l3a_LtYgo>=WFwky8mY^*5O9mOCU>YwACegcv&Bjq`Hf19v6q2IZNVz&F4c z4xwM|00`OozzF`e+y&4B_J0cEWJW>c&c=lm&RIdIQ<>JK_uTTtj49mCr}pcNY+{bj z=6&uvAi-zn!id6|sBOVy0!#$fDU})E>8V`Up-z$WzZKB~XTMkrrBk;0!06j?ouKh& z_X~dO-{JAVt=r}d;iuHWh35=`Tt}BK0+|o44hNvU6eDKn#Iqgg-Zp=I18k_R^zULN zjmJ#uy7c0DV|vcw?bi`fprj|FAKvSJ{jDP)MI*2e>`ER}+=g@&*^&%U=887YTVl(+hhAb#tl##T zcYn=j6eMg1iC7*5U-Vor`I)J;9haN&PrKS@o8Nnnr9azL%odSyHnYBdGJax=vlQFu zUFp(U$|ODS;JpfNRT?e^W56l_MsS1)!AGD=5YkE2x3Y;b^7+ZHJXF?+Ve0|sB6B~o8GY*5m#hq`C+uL2O+Ah6 zdXJ&k_Vz4WGv1sWP3Xgu^L4LbGuQfsltl%v&eQq+EPKd)CM8Ii<@$txg{$y;ip?8h z8!L>1MJ~vKMH;TqKcDh;B94rj-q}rOFjS5Z`j@)+)m|K$5H~8*A?v+g+0q{|6|pZp z;H~yAp>(hsg@f$iJ|f#fMIXuEivM7>LcbZq!#6I=Bz!BH%7-H)lcJVWuuj9qWA)$< zE_I1WrlcG_oqtYnJ<`K_&m+}-&NYZcS>6(lRXXI!Dr)@pAU`E3hb!Upkpw`Jpe^!) zOv#SHU45#AIwMN{n%P5puL;c?U!fC!-5>@{D}Z3^bo>eX4#k~$#moe)j?V0|oduUA zFvdsQKgH5zU;x@zdQdZ%?7pK0^w|X@Ts#dt2^&%Xyj-?6KzI)k5Bn05UF8RDV}Fa8 zZkx>LY@oMRHf0^2y$>}h7+`9>WMD{6sTIQVR>$v>s@P*^OcDTbo`YIcWQdvgmrJ<1 ziy5``&X#|KF>gdXrn0$TtK@QHXld&|pq(r`gG@t!sp~%N&V!cl<1%ijR?q-&E>s9x zjD*Kun(NbI*PXThn!sNi&B&;#bkpD_68S0BpDq9;HIHR0_FX&;xkcDNEit#>X#~>8Xkh?gO5n`RU{%M) z#=nMhnE?O-Y*B1BIne|c5zBsoM8l)JsXn7r`amz*{zoiX67lF9NgOEPAEQP| zT`uC^T}LTU1-d0KJx%&%D`la;n(WlBv-^FLf91vW-LHIWFa9K052QagON~&%SBj~A z@^?sMGy!77RHDA~ z!8OJ)c|BCw9s7@`cBQ9wHtafM{SApp1J%oqwMjPxx}}E&7xc7ul6)P|Ousi+;*j>} z-sc!x>4BsPUdNOOFS5$U`z=@gv4I+8#I#C_rowKAC_)pC#TBqA=HW%8)fYcM1l?(i zhNO&lhRicjtXe^A-6wa`?wK)Y!<=L*pJV-CHBljZuVh+cNy~rY=fBB9X$?x+JSB=nZHl2z5bLMVcm18Z*;tCj`~JBDsE;Z!*za2cQ@h?Fz$Z( zRo~T|aGKIXYKMLnspn1Kd%-Jno!@OS;_dPML1e*cTN3?W;@Pg}RVM_}S_!VtGoDc@ zSihAum5rDRX1)EW`O}_HnSEH&_K(w&H^eJ;3Vv2)`GnevpBu~E*CPBm16%I*`DZm3 z?pbV&{d=i)4&%U?(Nc7KP4Wj8}2T&>eT{sGG~() z=8@wi%b<1<_c&ey)tq;`)gJzY-H0I%kDsE7Q7${r@zN|8BI&nq8Ai5&%JS;kQ@xma z4?Aen``u4ZhxND_cPfMrcc<);o83$HkvkSV_6|v>N14L#riYAyBguUQQj4Z;D-7lG zwT3vmu7vn$h~?7jD7X_>uLQ?mie2G{0q3mo1Z&XnwqjIdO z+_5y<`jWBy`xRAwKg3Tr_L#RvIH)vo`Jf8n63qO==Dqn-Q5r{8e()s*tzZ$31k~_1 z$@wG|d)oRQCe8_tH2;GKK{<;dp_U?1Yyejo9fHEB+F3FtWrH#1V5mtzeTFoUPr<+o znjxLobP(K*`fFFOTY4!Ylft*v1s<=)m6Fhw_&+zYtVhC|2!#6Y?kf~{TYu4v5~=_wN@GpCNV z30yyggqb(GLNkiYXQ?KI8?G51+Oaa)vfL}Oy?G`Ne_&}>;fGyXqCdT@S^eKeN0!ol z0rzQ5Ctc&0D_%W19v`!K^VAiW=S!4SSZ?Xqac1slMh#HJ6~CHe=9|lIUF<2zE8kP> z{XJ^$C^=Vuj85`$eFdu<@NnCB9ASk?mD+G_5WWC}k_(hHyD!g|VtDhW!E!0jdw$QC`XaYN zciFp7bJ0uWt6YT|$K}4xTc3Ixb|~FJWQV-E)7aQ$2N83KT(J?{x1bi%38-xIK^Y4c z9#LJsiBi0!L|3w4p_#Ulq&h49dnvoVr7f=U%H8Zfn&zk=wk1gYQbxTSnACrR!rSeMKGEGa`l(96Sgk% z)rpA5Q$&ne_CoJ3DesG_=~vU7=PRBk+rpd2pKiAA-}r^*;IdZ^I5R5mf-#IB*|dpK zud8}n3=~xBn>T(rjYM3?n}ty%sCFiL4m=CP>&nTa%^M7Ndrmk9dd^u-x=%m&9%o|Z zD$A3@f&)RhfF61JLUP1ONi9iR@rc%FO~Gt}ohzKcICjJp@%Q_%Vy=GYVQ%`;WPP`Z zN#?(R2EVaX_K^SYDaB6*nMbwufAlV_dyesY9e`NM5v_Rf(fx9ASgDgwJu@4l|LP6r zu<3Grt@gX43otf?uO&AW)JBgRMa)|v8kqTU`l%RC_?AT@trqOj{jUXU`rJ+DJm)7+ z9sE-~3=sJ2@qD#%OH_`HBV$58*o)~yL0S3I)MS;PHyK8r(e{^MveO)S{w7)ck(=Zz zeNOX(h`!rLnv>5}odqB8$#G@`)R+lA+6$~5n9tC7ASq2Xzvt*<5KNyO8lGFZW4`}R zP_!^1c1|Xf)G-pPCcTIRVl>a^3`>`JSq0MJ1+s0uj^wD|-YaIXg5I?j`?VCq)zc@g zc>Z>u3l$xr^r%COJ+hk)s5c~#a~7Ga*Zl0P+|=NVA|85#eUV>LfznY^g{?OXy$`(4 zyIq_}U&bZ0;VI<5%(_7a=+dz0@sMPo<{Vaq*BeFG8w2kM*h3;@I;|Cg2?Rs?aWojw z#k|-+;C>J;U$AGs(RqGE_|H_583utKV1nC#n{^&EQCN~`C zgE+sG!Fozbu0Y!|`a$;27o_0D@txU*spGQsc86RhI|MaM-UP313%6~lH%;;JoWC{o zw?Nxw+f$B!Z(y4l={gSUyd^o$!4s29D$Te8#xO^d^n2Sc9(5nC(B40}7YZoep3ZVD z$o%s@{kFmse}HOT9f{{c_sC*x3*n|8)mtGRv|OHb0!VYH6`Xx-oU{46CIH24u)Zu~ zxk9tkJK^?R8p-lI;+;Z;g1W{00sLrF>CN#g)eV=^sWR8oGe@c8UmU7`1wE_o;lh3- zozAg&kB+f!E^-zBc%+-s5vHALYd!O`V0I|t*=6Rn9cH}$4n{4Qrz5pS7qQ~zr0dx( zq*hj5(Bi=IzG8z$9EqjFxnXtgrI-pPFPUdm_>z5o`e$_p9lvSeX5U>;(@x`0iq43u zzZVr?u63VhZ(vEUJGrUu9Jkz7vMqy6U?v@$f=~7MJ1r>SWED-u>(UzGTbnacYpevV zglg)P%DUlDZSToDs;;*OiidCP3Y&aoGw&W~fGJ?Fh8B|ALw`ht)-`P!!_9OFQCg5{ zXF*$|VsIyzQcgO)gWVhSI4YCbzBFVr)oHg3JG{?Gh$Kp2a>=~n^2lIqWau*!I zEq5>~M>IP|Z+B{A2SP+(zr_n<4+c8{-N|5Vr*6>B=Ncf9N%m*snzECpEXTWX$OB{k z49;PzOiGpC?sLz}C=1ilmR~AB+gYs;XjKM1nhKm(e!SIHhXkOcQw1)bU(2--u&QqX zv^ygl9{)Jm%(eix=IV73;7EsvVC6n83lP1CH@K=@X1bSR7nLwO)iA>oV)mWT8vc(Y zKwzcx>5-ctbVJcZ)tnjCGpAdbJB%1NaK0V=A(%6;0PDB6K*!j?exsOr{;yp%GM2g)~jL9v-q4NIRE^Tl8C*%Y&%z>R_+Ob|C+Q;WdC(U;o^q0 zZ{EL&r99ZZ>F95No2d;-10ItX9E&H0o?mk-EwT;};vCdAay(9Qw1OXA>VM2~OIuXL zx_oFI^_X2$@jTW(B2$xJUlK8uttl%P zyVx1?o|zy&=zs7qNS6lo2vts9ShVg>Na_s6a>&t= zD>QvM+tHtEIII+CRKS>nT#_!ngo3ZtTy-<(wa%QdSdFJhl4$!6B#%}rxKaaOJ|3RE zqCLuh|Kli6tj&!InHn(~J~o2epPljs`-S|qvd4}8> zc+8s7!sL=8_E{YN{DENRW9zb?$l^5!l|)qJ&%f*Z^({Mh@s_Pspx+{TiW{T?@QCjz}zRoV5~y3+ms z&de6zbe`zWnV&oDE%__AErI+~RGg!WX^Ar2+J@EWKEJz7aZVxS2MxvQ7JjO8%8Uu^ zzld7XSJy=8J3G+6&$$#S$;4pwkVPKtdw^sFyX0idfR}cRv!PHz{-X&Np;`Oq6tuBU7}Q{x?Hy{X5wIM&ucsCU!0#nDBX- z>_|ISojDOx{F8{fZti{Yy+Nv9rfLYm3$bv)iflFbo`io-c=EPRJb+HVt-D1QKmU3e zu+qpf{nOICw0pF(pFq_bE>v&}{(Hm;eD8i`&Kc>i)`oDu)8D>~i1Ra&>MOE= zv&&Y3U>Iq+FhUV}BxoXgA#kB;LpI2wAwMO*5a0YOx}pfkey+NzhLSFC%e`R|Jmg>t+mj96nvYkANpT?IpT6{*6BDsjxtBt4 zI5#?7%cYVzoNj7l8!L>sq_S~~fKoa6ywkb!Irqe}o>`F5=P%u9(vaAuPzm?RYZa%H z;Hd1(l;k23I){Yz)qLWhl{e&@HM}k4yqNcdu~ygH@zHeI4Oc-zp&EOelyt6fUVKc2 z{x|cvf$j>@lLDBlY<{elh)dsuz`}gLpU-k@A!&2&K4Puk-E zJ&d-na&b%PvrRZWjB0?pXnlAkdz>6(N}Dan%Fp}S;XbpiNWSp5YCrfb_i0-ur&uxC z8An|59(R7Ui9f-3#JBs#^@?#0m%xK`3FQ18`ek%TTz=wkjBE7uIhq0vGA`0cG&6AX zgrz`sw&E+1cC`4K59P-A>c_`N7`9h_ySiKc(B^oTtv^?2>#0*}AiY<0;Rp4(kxCwG zj$dYukf^4A#ng9hCXD$l8UM1H4KtA)p7G6U&Rj>A{0)2q&GHL$b#r30TMATcVa6wI z!e7Vhz`KYl{AwF#1z2&y8*RAAkgC6zEI8?^QFRH)qE2?>h+XE*<5czEdjZJ;DsWLu zN)uq3>0~E1O9s5R`Oi6<)plTdU>bG%wtJx-vNYudBa%2jW6DANz8>Oe`S=v57a-unP1IC}9J-)zlo@`!)BH6D7QbnaP$5i++@9y4KT%f&>j76aG zrC6-O@4vSgQFl&OA)u0~&JAXaB4cxX09D{Uxbe(4KrIg7v*b#|mXp3m>;U>+kg$E% z{?GYIYT)7L>{fqJ=`z~L2x3G!;c9sQzhy`3BYbz1xuXpeiD7|WJYwE2zaefmZnLi$#iHbhP`b&eMpf}LCniiP679>@g6L-iWu4K8b| z^y`4;Jn|zV$4}U@dqlC;5+7(_^nlU>4NN3DE2(6?7~J+!nLy*>qaDgSESMS>?|>}i z>*ikWs#3++%3g=D-(-jVQ%Y!_@y8hF#j%;YEKQpR!Grhxq3z|DQW{IckWjvHYdPkF zy1b-!8{n?}y|KVPWyJ+r!lNR=3=Aj^?9%I&LaLG4P-0sNt086K) zxWjVrB$o1iW`rcgr8c8c=rAU(_+Vv;_4^q{Z~w==U|=SX>P(Df{?Qi0l;^*SzAN;K z5Oq8Cd?={q@UL~E$H}Fxl>EiNGBFFQPY}K*s)o+4H(vMJ!vPC3LPM$PU?{*|l=c4n zeM=~87d_!^Z$+ygy8pQQByIdf<{rz1i;g^*zsGOY&+Ic<@sF{_(28m#aa{ z3#ccFT1jZS2N*-zQ4x23LYDy{YA>8QP-230csa|y=bM4ZM5*EetjD%j(7d}J=qh7V z!cQ0r)9Ym}WZOv_2Jj%j%I^BRD8WNI7=sA_HGP zH!t%T){vS{GQ)<%wEiw4;U6QU{Z}l?JALj9F$IE{3pIf4y1FDWs1yL;75g$pn@X&t z1*!%A(u$X^o*)J5J+%YUTR913of+x&pQd4y0=5%YD+X0UOvM0Uz3MyH-dNR_JkYJ8 zY->N@6m}m91HRTn5wn5S2ZTzWju6fSX$-_9HiC9lPWPDBMjsVPUo~>>3$Ll*3V8V9 zR9x(&{`TG7WxP|>25vE>Tm3?1U~DZv@onfeLhU}atT^#6)MY9fFE~;(swGdbtsv=E zzClo@Kt@whQgSzJ$z+QeSKdcbS9^(ZcXBe~v$!J0e<)j@>5gf=N|#cSQ^drgGIA4h z<~p2pl?}Co-m3*K4HO?A`tY~xEC==28HsimUK}@e=m$&_y4Gbg%iMgf1hX2vb27Vf zE-TELoV&zm1m)xg&Hp9?*SHPq1A>}F(%|&HpsuMEZ8|X%v=h$nGcv5hnW?)Ju#MdB zdOvF67_mP)YO`k#R&*uV4;hf#OZRrg;bjlstpLhf8$-yckRcgL+4?avBVf;ZkezI{ zw#`{I$7%iau0d+Wkkqg`;d=ZIfBX(h{PvrX9yPq3g7(n1y#8-{iTJY3m-M{6;2tB; z@0S8yV@Omi45VZ2KyQN2LDR&KWim^|6TO^&In&qce`O$Zx(J?D2j9gzR{q=ya|liN0+8FZFIR)yn{t-4wUxS4JbVYyBCrXm#{i2L(V zCX{9}&E)&)+?`&gpK7Pp?k<1IH=7zmZvs;64b1-}spB;eY~1s%e?EYr0?iX#1pE@) zSViS^qgu~D{~!?@m6YYSY@$@H2IKf-ECa;p-XG+{NXr%~>E@z)F5-$y|JG*CDp46e zB*7}TV&$3=dHi*Y)PjS@{ajYKb7;gRMQ=FdS{@b_>z)=CKYwW=@M4@SR8w8wmz*M2 zLZL_`){3e8Te?ds!g95r=8Dq^ad4gR{ymbR?!P4#D%)*;yZ9&zkh&5-jUjybb00oAT#zD??)n6WE z*_>%-FhH{xT`Xr^6daD(pBb&f>Qp&%n}YZSGAK8N(>}Yj^Z4xfmcCv-{bsDXQ?2Se z&4<$$6U?XB36}UuLyC<&eLjYktK^#P+qJckL|3llghN(?Gwe1uz6ttvgl)iGkH7 zxs>r;)~JJEPu8;RzVRow#ZxQH)~d(gI zf8d^3m`Tp@bP=`Msvoi^7dshVP_DJn3i7n2#-;Af`w1F< zU?!AP?yD{RiWS=C3AV%kBazyHz6cpaZE1oe#c0HQ7j4Y5j=P6{hvVJC58IY ze0W<>A^qK-G4+fR*)(34O?c82;9YCGU91DUvL*YySFTXkPc8Zcca)Hhtr5~Wdk5m| zaWOg?4f!mDq+*h~F`PGNTV06IB}7cdlp&?)U&OD>gw zd%(1#eK-qMDT10w0Bu&wl8^wrRJzJHUQAw~>!4aScmhem*9^UI&x^{w2?RONxi$c% zVE}fcEr5!uo|!ll1eIS28ePdOj!DP+Qr5UwE9g(%{hPPXuFj+8Q;c+F9* z@5uurXQvzZxN!KS7=%-V+%E7R!p^ITB(q~a68sQnDcowT<*^7I-B}jtsc)=3{LR&} z5D^w|%XU;+$;0DI0oxyjaX2gChZ}=`c@#}6%fVy>m3iOV;cvDc)odv?#yRZhg#Ts2 zoB*S4Fk{8x;e=b5wpHUUk0Ea~3vE53xM3jIOqCWeO|lKHs|mg4f^O0qeJ3ZH2NBQS zv-DnL`I07OTkxCi!;_oI-<|z`=zJ{*l6?NpbA@cL5`W`$o2%D)3-Kyc-~xG(f;C#Fa=5H2~(1sph$VfC0i+IgBXw9@_Dmy0;M4 z1kJm2m;)B*eVNt#)QCzV){)coA{wYu~oOSV+J-N(t zSF!jIm>y0D#yStpmaJU$cY6Qk;n?+79Bk58j{~mgJodj_NYn)x0X(>K_>TY^<~w>n~UI-G++n;bP0Cu{2_=000}`uO=F~ z8|3lY8i9@2jiRu0&D8asOn8f52l}|_%f9DcyD#V5_%JuJ5?{#5T}gouk_@pS?=WCA zZ@tutR>uk3+HV)~J#?td@HFF{=Fn@y|E3}5!HFe@#hM}}cK1!}=%WO`N)r0B)G{o- z8VAIqX*dD)ZJu-fgwEH`Rh4(FGK-Dza_QtMDM;6Afi9af8~m#@yUUyvBu*m;tUMk6 zao_LZ7a@RI#hIrKOv_uP(uw6v@3y^vHkZ!=IzZ^yogQuKwf2D{< z!S9}O=ADKUc0ZErT?HFQNS#p?PRXa-*%?|Fa$P#{<^d6=1ldvhXRUtO3k#SNT{`6t z_Zanaqw;$aJ4fu5v+3LzlpETuXGo)TB9`I>YCqelXg@1uHd#sOJkQ!tQeCbH{6X*- z4&#x#4x>w&%aUwnEEwVlp1vE){_Q!=8sZ6&yFGD}3~qZJsjDdY(WT;^E-#YZrDD(} zeOQmrWYAgLi|KmKC#f*niTp3)X55N9GDGjrhu!`NawJ$T-W`|9K#4)$X{9*s4Lp`h zUUcL^p2Ndmf=c`&9kSlWqH_ zcOwV8mcs=)Z$LUUz>Ndo#)`o`ofwk<-sc_6(_IjBhF{>grqa+&-t_HnsSP|&%R65( z0eurTp!BBVE4A^WMyBEnLGXFUJHvJ zEJhE^xLv5od3C}@nBnI9G+x-9VlO73AV2RRt?^$0XLZ3jqHQU2i!=MQ?f8Rm_goJL z{W1P0J@=aeJOwg8txf7JdAQ=I3cS|xuTV_i9PVmN8T0erW?1Od;E3<=TNEt_czf;D z3Q0HG{}0==wsBA)f6uaL{{7ntfiHN9Bn{(l9p>`5Dml+8-%s>sS=+nHR5=I96;+ZD zP+W=^a3WauJgKEKW_0}%@IX&5@s9uv$-y2TF{8Zb#r-1N@JKxYx3HsO+`j9ZvMUNn zoE*KpWCCA9xq?blwwP+!o+!E;h)0^eO?w~4feV20xC}&fZC_Yb0}+--x*&b^T~P0% z-!kZ;j8#pzjL(61dV8lc%=EbcnsQtH$%Ge!E0()6N-<`@yhi>Br@kyAs^V&7l*((0pLY08ou!UNBaAw%V2^+tv{7R{M6J#W4|?u=h4)+z4SERl`aQ zM2U3i#R7B4qPQwSqLP@h7XJbO;M0qA%riqH_|b5>1W~|=IE;)Q&nzyJu)^9zQ_e(F zZgdMTZ15I+Cwq@cpcR`}rRdf@3R@^?OrU%N4wgS_)eCR_w`}S3Dh@^W#z5nb5GkDy0v#7>ET7gDM5eZSWoI0_h5WEj}1|V1+ z@t2=plLc4C1X^R-gx^!Rlz`dUjmuC~t%Ytsbf-QI)+gt-#t;GwJoW+kVVHhi-ObW5 zZND?8^|o%*t$sHW{eW#UL@j5WW}j-7-A<+H_+0%@!Y5GmKc_2$=@3vA1eU)j3`4dg z=vY9+JhTvFTMB*J@JVu?CYQJ{KkEDY>>N^7bPD%ybP*7S3cw3QylY?m1|DMBmyxfB zQtTJ=tQ?3^@%O&uz0mW=3l%UGg>WWxo}n{7_|>=HO4A#uuWja^FWPD%>8kx(NpHOy zPlOlvo`)8Z33)$LRz($+0*VGauiW3<{W-6}jB&i;XmP1%HO9Xu|l^q=++3y-$R+; zXzdOS*+lEWDo_w$IQ06}IGYm*kzanx6#C1MemH2`kvwe&#I>~-tImD0Et@4+I9-IL z@}vELs@}{yQ&c69pdh4b4{s$-w`Oh!5tTplUD7l5;!#FDDMA5h)hnZ)bhs}LaEqg8 zS1pxwiJGC`GLY@y>_>FQ=Zm;RJtIiLUmp8NRlL@YiEK&KxaY@l>R0V(53654k~9ic zxVxkH$JK)}AqMf2l5I=~45?;)IPfarht#Uj1-kWlq3;th zCjF*qLaS43S<>joSHRZ(I3g<%BhY^t*()9Yw&)6w324Gu2ktMLbzd=Xv{s45vkIs6 zaN*<3@NwpN`RJmY0dCzT#;T0cD2kDxazXk_ON)ZJdGicOcQDcHy;=7R{XV`o8XjJ- z7P8_hH$Mo5A>!J&IrDJfTqUrOf0_c-Kt9Rhdaye{5k0`}pt4aF>x`6Mm{f6@bU_VlPhXiw}S-Xs-R= zd&CP!6ietm-0vT+4)xc1M9h$C{M%565Bzr+e86tQzTGHreGO#Y27r5|2`{a?gA@5C6#ya@eL^NEdc zSqQy2zabd2U7eMXfArNXl-3|9*}~Lc0FpqyZ|3VHg^k<%H&9XtdHj6-i5^Y@G?lgp zC8;SQAzNr{P`ud2QaxTvh%Z5$C_7)VO;?rUd(T2l<~^wtsJ4qY*#S)n7T#cq5&@{* zKG0(EU&j91?6z=7IA-q}30Tnl@gKyFh~8u!zp0M@d*L$j)|v@o%@p~dp_knI-E)%PRg$e=1M*vbqwv+$bbxZ#b2aGCRf=DZ%&L0or zD(SbFa(_ZoG<8a@Hk{xCC$d4$M{_O-qF;c1%WZ{dMH||UM7(UNN`Ephk!M9R3}+2lqIi+jtr0i zJ6m%n{1i__X5lhlSBuYAmlu#?t~jr?*1H|dyRZ@BIEbokX;?v~%G8=P>{Kp&Rl7Dk zj)5qp^<~VNml*xIe6+#b4D^4vGyq(}m#F&>A9SCXh!H?%gVwWk5D;!Ns}q4BX^t(+ zE8_K$@7b34F%wS#)!LNQsr$NRT+(m9#?75z0diSDRb|y#WD&campyyd#mg4nw&K`r zJJjzw+d^Avpco~xRU7Kb)IuVA%%uXBqW?4zsX!xaBi`-W+2?HZ2B$Q589HeYM~b>5 zRu!3KahK>^P-0;#rJ|*ca?Kh@UKa=dnj+G)RkR3?Dk_2~r56pv%Vl-C#X`s4tkz|q z!-VG*;-crp@{)wizvX#rSv1s;{U@zs%ch0d%jH$zq$=HH6%R zZqZyD+oMyV;VU}p1&bGCu4)nAJxosy{Mu%#21eYtU#5$;jHh4f&SaZZVapJA6{~ri z#n<;Ql54?b(Q8Tp+ALOhqbIs5u_d1UZ%lNa)aZ+I=igXJ9?(Jze<(+BzKeQuAU6*)3>l!?5Y(n8DZLkD3f16#g(p7zDz=lz59Wl}uG1cH7;D^sOZra+lZMGW?Yl zp3wgI!urf@`bdRA6KreH$T>Y2GXf^QqZ|0xc0dfR2Mjm^BZ7Lko~n#brqvlmCz2rl zkYno307}_XvdG9e$)7kQ+Z0b~=m;#^v+FUU(d7I@@Gi@~yhQEUS&vU7+ld6rzVhM> zJ`W5GNPluus1#6%G_A@BlyOev^_AS1w_CO{KB91y@*JE&i13)l076MV6x0kLiY^|ckD^c~Y0q=nmX^B`H0)NoXm^X{kLyV<}FkWdyk`AaZBX3&0 zCO!Fl28=K1zY2_6&<#kL@QNe-IkJ~bMyAwk8o*gmS@Xxq`#;4}90YV7`}L){3vMhF zr6m-SzM8=27>HUy0N8J=o}<`c!$}~01U*smin~0ie_0aUbU!Lxn`lV6xN(*aMvAd+ za?QU8lRofF0+QXpew#uFAJH6JZ=a3~>Um}lR}cdATSqB3rsbwfZ%AYdTOml8No-=EeA#Bog)+d zwBTMLw9$%@*vtY4ziKz6USJCe6{J@p?%vfAg*l!2$Grx+?2puNQwufzKjA7s%Vkl^wZAW{evt>d-@7Wz|+%%in@sMu6p_e z+$}FIAZ!2Mm%hwI)tIB(YGD)BXZ@m3`i3bogX|L6)IwfOLT>Cs4vqQ{_>n&>H?;)p zMp#Gdo7(VB{SqjKxI#N~p!SX-J<$>MJ6^4ky&oB^cCTMwU;Fp1v^tmx^wjZVP|nCF z{KSVo*ndS%aN8#$^Q&-SG_6F;=eIm>bf3uSqV|$3E@{i@&y+}LUoUw6M5VB%+_3UW z+?O|^29!%_Gqhco5iqX8PNz>TXI z=r(iTCfzPdD3>6k(1)Vvmj;2y4=E{uK$1%bV-{$X{zOVcL^op2O~#8yay7lq>hUo_ z49%>}I=Zb)Vq){A%7^BZ=Isb4*=z*Qej`-R)-JfF=h1Imj&@DVen-mEHs1dpNc2nD z3az7+dQTqTQY_YTi zT>B&eXe!E82Pd*N;isq2TDJJ^%9aK}4M+ohKb(2DWpNls2ga}*#Cc-J^~Jzd84Pam zXI;uaqx}G$uf#JjHEdT&zoGhHIh>Ex^3tc(m`8NfA9R+4s;(7&uu-@sHlKpzOWOKl z2TjVt<&%Zwh(Zrz$&R8J_^3BGIQbsqx%=?`xAkpx12=BWAM10;h+-^7F$-cC*Rj8| zvGvW8?%R(I10$^_FWo?m2W_8=Bk75u=h+B)>O}LaSX-?=z#C|Ejl?#?=%X9E!4f2N z+Iw9S(1Ry!iJ~>Y61l{8!h>yXOWG~GxS@_h-P&}J0j{i8>c4i<>P`USm7eh%h}I)7 zP(wF!S0TE_HIS0CX9I~jB#@ooJ=%Tm=wfl3S;^>fK2`O zpJjTZ9us)JD4KcM4$49(AfMEWGs4PsyUN%I^k7<8RTtvC79)TuzZKo+Rw<3Hpch4J zu@P9}Nd2NMdQ@~U*HkS4j|&>(#ySD*_FB>2F0ANZx*;gd%rjskgzlmN&kvBF%wT>o za1*$%)4}-XT@vDIfB}}YFqng1aO?*^;+?z2Dw;|R;3-Hb;mzK86(a44y?Hq{c{}hb zTXt5@h{}J5fC`kYGXxxT_mV!43O|?c2t!Frffilc()$81?TI8J*w-ccn6%MExFs5ei|CrhJT z>wexh7kN~d16uZ}Zxk)f;NV=20B)5;)tbsXoP@6|!sv{}_7@8J0FONYAx{f{kuc7- zcVe(9I=w0eel={F1$IQ!zjd62&iE%tLdr!j#|D8k|IJs|v0qvf4zk9}E%8hm6M0aJ z=XDW(NG5NFBvcnn5|NzavWduef>tzEaPkFn&JMmd9;~5l$F<6>9(rTV4rjfK|4eA5 z59w3uD&w23Vtot?zMq@b4Prw!?)ay@{H9M~AF3@MEgZZqMCZex>e^!H_HQmHzW6uh z0IN8&BvkQw=zVs9I+E~|U(7g{l(P4FIYHaSD-v%CRFu-s3a&6 zZwB%`0`x$QV6S|>D~)l}S0Vm)uw=T3WWi$E3q4^IZ}FK5cmg&k9UH_cCh;qOHRj+( zg~1gUn3Q|et zNd&%0JY_!uA&sv+IR|WhyYwgDXIOwLr8k-vKoko^p3?Y>q4+h710`Vzm){uoh`z`m zqhQGGVjW!E$_E|Xm(1PsYw&EEbe3G9P3!8!+|XmG0?I4;goO0OFvj2{W;YRz{=XJ% zQ0?NnXT3w>>d}6-S8j9R#HZg)$DGY2ahQ1ezh3=TCxTCoVSuHxZ+MiE&;NR<5rSK= zrn%bmHOV5i#-&C6a87nGF)RRN;SgX11=nRGJk)@XXnJ$tMU|N(v|mg-6+)N%mx#~A zMu}iEtx6Q3Uo3hgi0>-Kq7`ct60!O&pzhLWQ3N^?XbaANa?pc7p#6Uu@)Aj6AkJU{ z8>GRJ3r*Szj%vKe31oKCkT)>b3Td>e0UR(a%RkIl{xfN`IvOt%Jb6Tvs`-bLlasNx zenQX*0S+Yvu2aw4QvkV*VM$kaB@rs_ECMemvT>sx)yrITD>-(j-#9j+g|RG%_>^)< zqy+SnVq7w}Q@s4FV1N!3Q12&kmf)`jHx_dwzp9$Xp%AX4MC86ITbjJO_E@H(U zFN$WMlNk~GhbMzmFY#m+>TQG*#7KPM37HZz)VHm=`MDzg-fc=#l3=NrQwFx%?5G1nu>E?uOtF# zpJ%lEy!`8)fY5rd9B#@LC)l|Q_A@AEQ1lqw-B#98z!~jY`;Gk{MAVxav@#%x_HSOc zlmA@fU5Lv#(QC3Bn%k$v-I8aXlr(ZRL9iheGVf(-Y})6OfXqhl`3t+EXvHR9NnWVj zg#;6SV=10USA7g{Sr>zu`ffb%+%WOwp@qr8g1E#j&dvrzLkwd=jLf*t?1 zaE1YV$vOYMg&JMSywi<(N694d9{xUqKyz6(By#JkxyS&e@>*2nv);Mav zvbTuezEhis%run`dp^Zc*fNE!?I|iV6p32se4oklGTIeyg!saSTsT5jkx^xDd?p!$ zRC7)O^@0mQ>aruO8lW(rp6&MDXt>}ic4V^-kFa^RH%LDWVQX?$KQFB_lfmv#p7%|wpl=^1z`I&(f#rFjsVS2`<&<&~DVfPg~I#`<} z91pJ!Dd0zYYrqWxTir#`HlsG&#i)8tBot4$M%+)Uv+#UF@=UKgyXh9VuBq$pXxabq z0bF0K;m&LFH+&&=wLXqo|0f0nx?( zao)}x>0*9jwep#q!RP6n7eF7T@6qCJzoN)R7hO26V@BGka~pPc z1A6fyC>yFU6I%7)SF>=r*X1*gYOJtyZCF-X1gKidX#H=Ni6dFukElBrO;FV`4(xI- zdUUaX;%S%!9jnZUNgqcMsZ&WcAh*>XpErT;8^EKlH1$cK)&6lJ*PZ*3=6t2oU!_u{%Go0~(>=S6 zw;~tqX~HQ28k^lN-GD?j4Je8aqS9wq}VKi4I2zQ0kt@~_bzi8~z3GSpaT8bH`*0Z;eQQe@l zefx{WN9GakFylV_sT2PNGhc9vf56Cz z=d1cvs8m{SaWI!5uI^SiMee09kc0MqOH23wt+P2vNae@wfwtiH8jOivqIyW6+j)ACQ@-_(_= zQ*!mG?m#d}7oi8YSPI0g?H584k>>DPh9z1TH+LWQ7#*B8+`5JQ7PatggcT{QKKDTe zP%P37h=#`_QJmF#_bPS{w1TSLuu^Q3jIk>T+P-_q1^~qvr zkVZUlATqm^gd|~ura|hQ`NoS$-v(2jUD7yKQ@+DY*cFN)Sxv6n-JOUfzpWH21Z_>UKjhC zxG64nY+NRUnMzb#Ul~y%z6hbJ!|Pe5-m&_pwx$heDwKQ`o7RM-5klX=CkN)=?E;P? z)&xXB5d}ALxVW^iMXnS-UQzoD)BFieZH2=+Du4g2?d(h$?^S zjfaSa4?wXGF6hp31MSZeb7LM;D@+T5XCA5WcR~FK>1dJxQY%f9ko;w9=+KpP9T@tm5~fUbd{S|awb2~@U_@fGTwS5e=t|i zz4@VJ$N|pF6+8c^p0_v5nP|P~U@T!l%z&fDULFNEB=dpGYQK@TzGQ8Ov#x+@|91xj zUF{EhgJIf2vQGGx1xdk??e4&J-X&SE&S>%BpVAuzAOW5VS2S}#->~tJ5(3oUmMB*<{6|oP zb(9)Ck&jxCax;WDyVJ~9;QY7psfejy*eV^#uN-&Ak7!-sn%1z!EnBXkD@L?NE%ZCa zy3^szCS8J}d%$c$?U#C;jVdX~h7#IVAI>^S5A&#DLHZg8rqu)`0U()bZ%ROpULeA~ zqKfqQ`tvCW*d-1`U7A17ns#+K*~Q!~1ET{TsXF(7_^VPkaT(MFE!hdx$Gl7bN`DAw zpHlp_MlU>#1955LpRMs%Vms2}$?QG^9aT1WH}{JP@K=fApH_jPS_ZzB zPNqiyVumOrnN~T#g?&W)uA^g9vV9G8Z$zcfG9w9kAlxSW8#3gclRy`MJ3WyN{4&T8 zYkN@1j}A}~LX)?MDKk2#16rKCXz@`~!rONu`GpUB1$#-8u~+nnm{tTGA&&&LPcBDM zj+E`;#ubBDC(vQE10?b9g~4gH-HT;Wid}+euQUMaSr809Ja;=lI&U%UL1=*Ha(LXGYM8!bL(EzX?zqilxTUXq_lH~EO0ciQ=}f)&B>;wzfI!SOl~M~4@UV=y(B zLWI2Me15pLdlFO4{CA(mvTGKy2iYHD) zthFdTzJPS!4DPhKjF)92JVhHWFd~|A8~<7M`qj(jc3d$K<10d?Tk*!}Zpp{9R~rOWU#S-7=t6D3 z7<|G|HfHCeIB3}P-iD2HIEMd|d#YcrrOL(M$}} zmx_IAP;#XQukaBYch}eaS^?*)L`m2yOJnS1y^U=1Sa{^py0hO&d~sCzP?7>wLOBjg z#qCR+sg>oURLFeAa6dWE9`Y7V$o!kz^EdGIv}8rSDc+lJqEG$3O7pK(tIjW$FCP`E z6uoqURbWe42+FBICyvyqoJtH?yeF``mQUKvU)iL(_!vvC6l@E((3EbB2G?`D*gH?n zNBG zi3OkQguF+iZzMZcMqrcEZ1jxM2`OPg#CgduV?*cbXK$UW;X1HKDKf;S3f_n|DCN>6 zz5^`={xn?~o6xz4x5XLZ6brDL+*vmJTiDQ_rBn0tyY$`ho70oNkTx|cCeLqqpqdSj ztQ-65^qB=(-2%$ZP~6}@cu&&)^0Ylp3gLjxwI7)M*?cZwP3o0Xg58VGV-I7Y2#ST^ zQy62!ZdHs^I{<&#UnlBPQgXWvFB?o71b9o!EdD$j#i#cAd;4pWruX=ap1WH~UBeSX zKUMg_95^3WHC-K#SI5Wn+y#|o%r9hFmf(Wgs`4)|9tR`E)bhWWX&=uI|)CY=neOm(?A)k}+_-x+T-A!eCx7Q~vht?_Er^_MAC114DRx=&}0 z6*xXEj5%sP&v*$9;>RdW_sZuh>Y4K~WIHzjRr#fT zU76Z1m!bT1l8&iRPvlvBJ3Zq}=_l3Yz$yb+qp%m4`HwIV4T0rv?inp$>UA7M4->_w zF?5ns=iaw@G01UhnT1yeXMgIo>h|{U)cH>;7W?q(I>wRBQLKGYPZ<3s_KG=s!egLY z3ta=66BX)>D!s0if@Il3IU1QC23`7PBb(lS%FvR*ugR%Pa7Q!#b!&B=V+BL)4Jqo^ z(-u*mdAcu7JdA?c{>{a;Oe{9P#81^GsMhuQ6+`<~2G?$Tq6B)l>1C9l1 zw}&3rj$%h;rItzknZ!*ARj7{P2$xp;x8}sLW&ERG(dKZ?{^>KIe3|)7SXDnz-)`hD zO&aJtNrM9^j%?Sw4|3z*f0>0KsvwUaK#^`sfri|K81V&^bP*?@y0w8M$)&%$J9#v` zcZu`!&O_=#skis<@8AB=bSWPao9HF3wbml3`aP~||jl|5yQbNI_USQYON5jSr?2lu5(590Cg zUR4qM|9TriD&@ed8xd^sSB5Ymvpr~vXd)D_nZmj_V|au%ynFmQdew+7 zp`;1~YGC=IZ_G*fFKUW5VWds}w`_+1nno{Q3``IZZbJ-#*fKcUwE-XhTm-$DGX14M zV{|rWEt(Qq6qRnTaKSo-pu}5Z)SF6k?(Mpz=b%5nESd>q+ zZho!IisG-|lysdN9p%_C7jazNdJ?SL9CETUexKv69<#*E=%=cZu3znl~!;Z>~?{) zpe`Gii**P29S*xX2?;cgUw3BcjZr;=3}34||2* zPPTKaR2{uJR2|1j*=@7L4qM%&eYTxUgud4t7D^JkXnm9V zQ(PYylax&cKxQVrD#~x##n#(rkJJBqbZ6;2gWbpQ!!+Q2@q6=P^fug$0cpcE7{wWx zemlg^nhnU-u-xzXK`IN`-&|w9V)#{>FZQW$+if~8$b9-8TH(}7T|e+dHo^@9TjjS{ z?g)k?-LsR4-3!G&0rMIkNMC=)IjDEWcTJI&QWXqrZg3>`=Y1#%{X$;5dZpc)&7}$% z`IT>IPEM_>^6$(Qlk6|v{w$7V$(ut54nfUSU#sAu6lF5OBqlm1A2=3RoWHmfbiPpr=q(3uG-u8loy|t_Fx{Vk(C;6?4}ub`s}87<$ZGr>k1&}O zCuS^cdaL3`3R#8F1_@+40}!6Fy4hwJjKEBm7UGKpL^@}{IVH;yae~bZHYe`XvVxk0 zC46{X2o0iZV2L#PVIo*b$|jLv{@2lOQ#bgdBM#Raaqn-*Gp4t@b#5jEJYL3cLcYBO zrN908WDuAOEXW!>iDtouu^rYNe5G_H4u7v@JDT6ZHaa)gO)x_>|IaS#$!oQys@xsmg!WJobGOdl0&CZt;L-2R^5_Go*f$ zx_mkpxHC6gv8;YHrCufyf3uj6r^Ge%;j^&`&z(#`!{yPieVS3yU+bL`qSSI~*q+R@ zffAFQnY)4B>&l}?d?%)i7)t!X*LgL+rHvB{p2ITr;v6)>U{J|l6Z2(ZFK1}OWbKsX zFdBWjvN0;d#8mb!Y`^m0Z&;{d$iisyGu*Eem7RV4!_hSLwtVP{Ka> z3>$e=PM02C+54l5>6)KyjF@6yzaFCnOa0G`a49!=8r5h{&8;x;=XHgWp;r9Z{mk*R z_7MPc#t4^mrdEYnyQkIl)hPU=j#560D;$=$=OcxxUO?}oC1<6G&XK&ywknH#+twu6 ziRo^2%X5U%w4%|l)2iHM z%@#Gr^xWd~*x~fPYA0o<78$sFc*s$lb8GM%`m`LWW|JR^hE*J-tDh>?dp}iVCA1gk zDC@YRrTbn;o~y zY-;boGfVg94#B!O(calQ-C^ST$&~#QcN%s-`>^Nq)4CJw(P_w9@xicu)uP+h$*@VA zS^)<-~bZ9#Ain3fq%lhbrrL zDDac?9IPJwp4AnK$0w;#M{a2IWz;uneU1yowGW)(|2%Cso3Sx*%y4vM_OK@8`iEBI z)c){=?>+-|ub>e*N=g%-L=MTTC+NL1_amT9=-~!n0(=1ybXgdgP^pgpLq>DGoO|n%FV)#_`)he zdnkMGQ-k{54uu`Qlcir}zsS-Szg(>kXE3#+tdb7SdPh5iTg$_O0}oGM8tqUdElyY3 zkMj>EdKE_Zhm>}NpPu9fB_H&*`8^xS?D;VjcH+9zjIsUUa5DF+Y(XZWScS>cGT^PJ znMWAHa;NQ(t_R(5i*ar)|DUFX%ukfqP}*PM#9M`6&WV(FuO-12bO%<@p2;Id_rap|vt1*MP_ zp%zp9JsV!7lbVBGV)8O0)ZyTjddV-$QK|Bw%&A5+=WZEOHjjD!>5=iX5rA5kG?ynr*%}I}jl7BDv|R7CO+?Il#A2gWSFv-9uUTD zO1)?I_kZeIo`L;L(~?nLYfet)2|n2m9A@dmHl{dx(m~>ok+9TU*V#CWjq@rrzx>%N zryQqH0<&@9xNGP$paS?ve$T^sd1Ns|SLVGV$!dM<{e4_VQD^PqRT2xik`LZ~m5Klf zAz{NCdn1bYETh~V#JlEpX^2)G^(GLO{$`i z1)Dz04n+6GdH(vHz56?sr{tje)2jHFl}JjHL_hCqea_OjV_)3k4QCGd}rTs99f(GD$J4K>D=t zv@$e!{qwWau68r|)2_qP9re?S<%7)AVqVDbr-tKAsh#mKi)D$TOJzCe;Fo=dB_h%} z77mEb4+q4I{AE>W`^J$;{r<1h0>m-jsY%HEk^AzJ;%P30qUuj9NBmu*{3tt}!-WTE z&V=kYO;Th|^Ei$gPxDUF(~Tl*xmq`0T88SXgpz(f@=2>7Zk3$TNqbro#oda+uy;sc zP&?b{wJfuYFKt7eI=CZ|N*@w07#mqKlNb=gj`+ol{6=Dpi+3`T2AOgWmVVc`tC4E4 zVX~q4>9Gqv(g4BDLTb2(@WlJfR{t1v?sRIl9XPy&K)2a?FG^7>zao&&!p@pyhBr3d zBU$u!#vk-#WDzXN5J=1IkD-NW{;CBQ6d9A#-l#Dz1m@#F&+`qdD#HFkqjlZMJLSW5 z+8xb9$(=8=c00b~20PhpuA>3>IZ7y_ze-%S14=g-D<3#0)mVhoy2c&|!h*JflUstG zmV69EXLQ&6_7OEdoRr-e#&G{Q4R*;#Y~6`FC<{Aw-Kjiq-B}tLe1>y4y}Ndpsb2c~ z6PF*U{ZyoWZsWvs1{0Q!SWm587CqfPeUYcD>RoKhc#;lY=g0Acqmk2!HZO!u$nW2u zCkMPO(n_-1Pm{lH&UI-l3-;W9IIe!2k4PQol&22esIVM$hKBy>HStr?C$vybQ0cv# zr&=XBIjycpJtsTA?yP1Z_P)6JksMCT$BvdZQXq<7J!I@YUWXUR@c6BD z&V?xHG;Mv(xHKP9QP6T>cK*}C%Y{$rcFscdQ1?r4UWE4_1y1zGYa~g8By421SuDZX zlNbD&7A_eOaA*eQg|CaQVP$7$nBaWpRj3GAZ19|hLsHxH!SoeU=y|xh`*FoV;1ul4 z#yBs$-2#_#28_e2j~g!v&N}D3o`U%u&PjUYn92tnKa^TJdS~-}pB`a1xB|Bsbhpk$ zPEb$?&)0i4IcxU0$e$`^s^ba{$CY6Xh*FraLzn!r$l>3TDqbs8=y0QHNMk_i0kO?| zSzd#FH2qb22`)h9K@JzRLe1N&;vo3YbZ546XF0L+)^g%8_m5YXJWM)=-z~q?upP~I zbsx3wk_=!PEj^w8V&O-LcDYe%84zjPi?={_?e50SET0CHN7BNoS|};N(^dO8$2D{G zbOE0HMtZkwaVxy#*s2jRi~W4y;Be)^>0t?UC(KS6b>dLP^LLx)L5`BQ)y#|arh}Yc z%0=tSJ^(9y@>bmLcK&+srs(yZvePw#s+R5f?d33)5Q~}3-&c3kFd`$>#9LU z)K%GLOh~1Q^`>CmnfnL97(3D*a>}(;Q8c7^R(GNYZ_%m$@dliD?M|(hkG84M&%P}M zm6>L$tJ7CGb!ZVMw0&-*$&MkTzyY7{tl(?BfPUfzwhTMzj&Wq8Zgj5YPi#t&EtB_b zqleU4f&!I&4a#qXr`X<2*LLB%?Gq-ui||L|bviSBDFK$-=lm3(PE!R_`cr89`JQK# z@jlBg;{BA+Fl3%^wy)^!hL04kOr}n)tnHqIGyc$JN`6_z!?=X6PPHV|K;1p;o~rcX z%b8>{+XL091Bo5T;JNm|iaS~^d<2=_LTlc~M|FSC+=mYQxvouP2JNXDb)13y$cz6~ z8l7!iyr2D-oH8+ET(%H|G%=>A<%jm%q?}h(BcTsQJ0y2%PcoK!sA@+kG=EDs*0QVG zY6CtUOn!IVnNKWO_UY0eb-lBZEGRMRbZA+Yu;x(4d$x^<$F7K1xel5W9L%>k;{(rZ zIVAb}Ef8(|dWiPRM&Zf&T75$Kf4Bl0BcYp`Wp9icO0SBjJlymZ@hiKSo98oKHN;SS z@w{tqLH^K-Fx2AF*~`~%jrYc>e4F|c^=Iw?^@l_qSmPP!UyB|pNE*;<-ZFZ)OVmeX zKyP74%BMrT9cR==Y{e0q9_GQ!f1uZbmPDIJX>OcXkx^ovV80m7rK+$T@Dsk~L6+uj zrN#+yQz|YXCF1Ow&oKSeyXB(0@?LPmj|!<}+%Y2ZA2&I#n?se}p~;{S@(S6mZrtHx zM)1r{mPBx&JrvF++=OS!&w8AJ#DV7SJHn-mEfm?8bKUNO|D7u`Zt|?i@FH8s4tJ{$ z;XP~i28e)0$%mAigN?I;)abx)MaxLaQ(F%7!kLW>24J#r3vOKMK$U%VqcL2hs1Pz# zx8n{@Yj`_3t*-sEzKzdp-otZ*q#=ir?z-abaWeO3{f^AJmz0MbXiV)7V;YxIzO`Gk zApu@(2fMTPc1DRTvpkP#SV@;E3||HWTqU_&1L3A+ttC9YlmWhU9$X5Nt^Z{Rv5|_0 z;oj7>yCQ>shi(O^EA62HBfM=0#VPfkg`A}Q*!OI9u80z8Qa``3rqjZ;Q~x{tm`CGF z!i88j1fQh$Gy8p9~=b@FX$bPkge^WANEKXq`{0_*lgC=+?2~rxY&F zyO&9ME$pRM?RY9!hPWQ1{u!9qtkhYwR(Rvjh{nq#j&p=_9kyQ7B&2bN)8t|3fZ4Kk zg>h+4!->&x%?|DN!-@k&l4{@9t{5V1Jcp{&TGE3DbSRSNrC76aMHc?wP{< zwfVW@eye@%#VscCUm)aKN0<&SBlHGWL-kbY5$*ZEA_%Ypq=`BWCTB+-=j~s3K+HY6 zF%?d!2%#UfjNvGeVU#h+;j=DOQ>lSa6T0%ge5yGB!MRmp*RV&{fJYJBL zh+%+tTCe*o>}dqQJY0y5gyxE*$Dc$0rWZN8WbiK!?Gq}D;FSIe)p?n2G&G*9?fkua zd@sO1j8HJ{cMiFZpOS@FzUj>WGfVw?e~C3={|XbjDXXktZ~n2oeNq(+je83CQPxk+ zp(AJ0#zlY9A`F6@(i%;-5I4heUhxjtGa~QG*hmU3QtM9|=DG^2zJexG%e+H|TiVsy zM!UPm7OdGQIZ70j^y2+9#XYAzJLMOtZG*{H1WyN8N0~K^e@9`bEx6SN0F3E-+q*K8 zj4@njc7@MnidRW#r79H3>RGABx~)IMd%gr{k!)Pf5)5_>XAdt`g|*MSbp+`}Qhd@H z+Vgrcc0<9NrD}EkK)wl=N+_E!2;R2(t4t<$#xeL?lUPdWTr4Xq!CpS;aZzeM@p}Iu~GD*H;rb{ zSGTRLze7K*u5vm@t59zCg~&(2t7P()LNxROgbCyIxc!|s zYKN^k6MXhx@?IgoC^YL)JL_=)f}gbpAC&t{!W37=)|sJ~B4!R!S6n*FY%5@l@PSUF zbLg1)@WyZ9G{G0pLST9R|L1oF&)*S5pxOY>PDetTwtJrP%&OADjn5ERmnY&yMzK~w$8>LZu_NX-1w3~(;uh5wX3OrYtVkPgTUUa46HTDSygKP_O&1z)l2^E zT=4tH&u6W7k})Xlum=p30KUz z2V(%)lN)LJ1QG{*n@v^4PXqL07)kgA%uP63WaC|9L_ue=8}5!J2U>MtAcFEKt$DdC zyeI*GZn~%+jL)9+Reu&Jd|`ug?GpOeSwgZH$));BHq}$l{^a98`n%=V;M*z;a37Vh zPk(PL4X!zwuFB00o<}e2__}rkVKYhRA&pssR2y*|Xxu6v6a3clr9jghJCaR*WWfE7 zsq}NkyL0oA0pG$!a4vtjsGx4-!t>|>@R7DUl1Cn%hlC*Xg6}@4vgL&+={Q~b@!?61 z@aakaEYF2T^c@^e#o&OWNKrW|y>7mfKHb|DI;qPe3m^7gUz9lWy~`+fq&bpv<-_jS zTAs}$t-p#d@nG%x!ld2>jMtPfy9Z7C8n+YaNq=%kptSsG#!W9-Z;6LiIFBwp^J&4x z0rT_TTJJN5zeJ5UHT_B2P5isRJe;<_>_on@7ee<(ZQvm#u&_m@zE2IEvCKUkY8y#; zd%(|%ywzdCCEZo>vc66IF4%i`JGHgZ=Vm-f9p^0iI`>OTwnZ1 zCUb%sHPdc}yFpZ?MzpU4-ak&`-3YNbE~NzSjI>!VYaiGCV7l

      ( zF9@UIF=%c*aMnul=-|Nrg}JI7IYr;ha>5i1)z@ZB5iNWzjI3S0>f_6Rz7|+Cv|`y` z+Rd@BeGT%Hx+H05UlHOwl~f`b9x*idy#uP#(A}NePvN0KZ!uLh39#(HpYKnuPe{07 zGScZ%_Ex;C(L0#72~F(3Pxm%#Nl4`)wPI0;*`)Cz)V6K2LW`E1yj*~r+nXiH@TR0GN_eyAn-@1o)7}SfAJ0ubUYw(^<3Gi_qQ~h*@617(Te$xE+4y=n zj6j_7jV9(4ZB`Y56{~}KqTow%�=!GY({u^yt%gK3?AnlRYoug9_7N;&z6I^L<9k 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/en-us_image_0000001417062446.png b/en/application-dev/notification/figures/en-us_image_0000001417062446.png new file mode 100644 index 0000000000000000000000000000000000000000..c197fd6293f41890b2bfcf17a28a1477e8aa6d96 GIT binary patch literal 254711 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

      e$FUzd;`|0vhKfQDHqjUkAuhd^u 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 z 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%0AtFL-p=U-6=PxJi)tl_tR1*)- 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

      W5C%TU*lJUoN2j2nZohraSYNm68TeVwT=A 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�+-O-|Ev!Ckh&}$@ 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 MA&FOcf|{QHA6fP;DF6Tf literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/en-us_image_0000001466582017.png b/en/application-dev/notification/figures/en-us_image_0000001466582017.png new file mode 100644 index 0000000000000000000000000000000000000000..1652d9111be2a27863fe2322c4feb577bab22ae9 GIT binary patch literal 153360 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

        #zRV0 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

        jqF#HLEV{{ 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

        *jJD)f3VnpDz8xOgHyQ$I9}NPydt$t1&B0D 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/en-us_image_0000001466782033.png b/en/application-dev/notification/figures/en-us_image_0000001466782033.png new file mode 100644 index 0000000000000000000000000000000000000000..218e5fcef6d163113c9037028215297ef626fcfa GIT binary patch literal 37334 zcmV+FKo!4cp&E3LF9txUGkep!8#%p|il znXRqKcBM7VVWXYZ3|BKl4vz&v5+p&~M+0a8ec$(4)z#H?S7t`IK13dIcwCv0)zw7) z&8jlO{rP*(JtExy@!TUq{LP0)<-dIOeH;*#4T%@hyX}!z$RGpcq&H3YLaI2Q~9SV=adtU4QWf42w^3Q@_t23 z6QEUOu(mb(wy^RvTV7?mCS%X9$p}}TP~}teOM|MPwKB4tFKqr>a@f*p^%u2$;miTy zXe4RNlcLr#5`h#o%d(trmc6OuRbXZCCYG{IjK@ z*siv!u(hUe{raUrfDGPkM|phm?8im8w%x~0kybsNii^y7K?LOc$*Ibz5G3cylRkL@ zkiwN5pf||(D1Aqy{>7CRq$8<3zqEQ}K9BGjnnGoQ%0;9cb@>uePO}eR-hzre&$e*M zt7LG=x#1mdoWE`ziacdw26SvH|DtwO9$O0io;C@C%Dz24Opj3fMYY>Z*vNz*?^A56 zjzndst)=;2EpB8qIROaiOc%C#_@6;uUEv6lkCNxtt46pH^Shbztmt*?s>W2PTsZc$8Ud;4wUaJ80k9JrZ23+S=Ot>sZ7#9dVjMX6<+Gs-@&tIisg zyqo;^ms3QJ6vW7`%jeV7kEkr@op|??eb;v46k*lOTqArCZDx@kS)H046#UL^xe6G>3 zVa!ig2vKwUYLD)C2$*U+BrmMJl<;c7>cGBULx9fJ=P)CN` z1V;7eMv$JMfjVe#k785x8#OJeUqST^@+*pLP`S8vqUwx@W)Y(07$}>mWrNSw;At*ZbVT*%&@F@4GkME<(^PU*UD7?ZW!sl3-=)HaYMoHc zM-^FfPro_y-1T(UUsXSU_z{+<1i-Do5z-Kr7bM>ZF^Xa*YI>4(q7u)0fEFQY!Hpz| zkwTaMnxaro{O{9qsT7+1=?!1vWdd~ zC}+XF>^;J@`dRUzh>$K5gYw4>$Z4ZP$mm(WAIF<3?4Y=Ebe|auK6Ov4Tib3%~t{+QBC@lv$+6(SHRE zNs1xNUaowt2qA2bDBI*5I_xAM3gHSMDzTn2bIJJ<7e%?iDL52$#H-(<%g>f7&*!*E zl}wy7Bn}yNr3LhlL4&$|Kge5mZG5P8gxWfzC+@N}!Vo|Rq)Lx1f>b3&>VdH$Uz2r5 zt(*&_E9IThANRs=JHfK+a4*94Mp>)~l4)k}UBiX}`_dSwHN zkxF-vA1)|~RTQ$Muo0UW`5na&8DC-)MrwkNnV(!8IvsfdX@LEUNPLQ>JBxVl2>;rD*Dm5h1@#1yJd8`yi-?bl*V`5jWQrdAyPiR)=g~Oku1ORQ6e*8`AJ2E;@Vw~vI(L^gjPQ8 z7t&PLsaR-j8&Vo1M(X^KJf%NnNWZ+OM9QwitxMsLGLqvX>)DPYQ^yf@)GdfM`1upJ zOpvZ9d7?Z}SN4R%lX%v=1CYB${)9!n*xAn)CxP)#bIZGl1ul7?E6$eYewUFu&s9%} zN7hc@)Wp$C_=2u#m2HRL_H|WtkC{QlL!~?pAqvwGg`9-hj#4g)d|dsF=&Bd@m>4zM zeYFVH@*$yNFVXToIztv(3&l;fozz4jMk+#}$|G3bQO+;VZ%7OodV{9KB2SmObp;{n z84~xX*K?LcA#(NVj^{;0s_ILC+;U-QD%(M6jz~=PS32@=q^acm>gkPqIEa_5l#z}o zkRxJL{gVzI6@uhm6C@nIyVITI#QT(*DjKAMSC{wCE~_dZv>(Nvs01r&89#*i8m2SI z_asPDoM>1*@-4K`L_{5e8XT&8Uf$^5_aRG;d>`^qH!%tzIDreR;}WAFU4Alta#8Yv zWc<=XNS&{IoN|7;RJ!jc1U;VbPl(*8$+@F86|!Ofb#J=~i`#}&=&IV!g7o_8 zr!NfdwNvhT`3-vhy6Yt-^$fuEl7b`&M#Kn^RHQ|=6~&Kw<-=rF7%{rvx}O&A4H`I4 zQvMpt(;i>ElYX-I~&pB@HR>$ zsx4Lht^NsntVTFKx@vut729^@!?4u$g@##{FE!SV1|D+6QQb=J*(` zDeS&mdZ^aJ*0T2c3R_FNKLl%QC+Ejug{$!u@}BbcJil_d@^H!HP4~-l9C+1*=Xb&S zAt*n}g&mX^;-9;Hd}UmDQK}u$1!aHcCle(vj*OrD{RAm70Ryc5K+5W^hj~vOTlq+V zz&Yh(BQBnSQQ#ar1&(zDo{k|3F{-Gp6fWQ8%G$`P3qf}-M}K>s&TNLRT$XG~w+26l zn?B)c$Au7d7v!!>z`iFfgv9vesq_Y=+jU0mSb}8y;8zD_Sy}Bzox{D8aM*_)O_e8V zM5*>yAx_wSy*jJqgtu&^95z{8<(=i6&7kU^?XR3rFC14KXyJ|FxK|BTNK=&*fsJ6e z36pD|3W=ghmZY6XmCIB}jg^LzcvWOwKA1Kc=_pf;V^#gB*30HM)qO>)DoKWFyVj0g z9jbO0F8NAwgwZ#U6e(;8S9uTOj>ch#qa%nt_@pV-2ibIw7ctxkQXOK_SFWx;u1=X1 zhzbcZfr6Awn=UBsN9hY(z>9(EzjECF4lH;l1rz^=sGD~Bc%!J<&a9^;1doOe)$36DS&)(|r4pA7g9+25RE{b&%s=i0F=_&FO8ILR&L~hd zIfyh#XCTO<+f9sYLyEAbJ#rPwQYp zY#3DkKbm5XW5g-H_c7kI?d^Gz$USi}WUbRS(!ylWh zhv<1ok-bg4M~k2`K_n+KVM>@72|pR7;s`QPkt7odBSs-QRthPKs{ei`Jz=n&zZu)U z1cr5;y}pKq$Xxbi_V^|nh~ zzv9R=;zKiaC3_CFu>24}N(gjdES+XuD#aDU;FCgun})$snH;THBsFCFz%_jqabTB~ zZGm%*j*9&F=V_WCt?Tr)<=8gZ$JU`+eyG*zj~;T zuGPCCJulJ}nVc2CssYY%sNW#8{N ziY}FGGYC>t1n7!w=3Wq^7U^lhg1t|bLa;WKVp!KXRV;F{Smd^8Qd}wIC~lmiL0F_n z+BFKtk3U%`Z!6ak*|r0SQC8R4IMB_mRRaunw4rI`4n0yd${j5Vt7=#jCQhp+L4NAh zA6701N%-Z|lSudJQKGJYEMgSPtbe=MBSz75*%5z$i53lV+Vn<%>LCegA|lFE%b!ry zeDe~&81)a07Wo$Pu@#k2Mb+<@R&TT@j$9P9h*1mmK>#|C6N25D48yw4kwSrUr4sYX z4_)5_EMu&|HGM`+gM*lWE77^_=+IoGNkNP>0qvPI4~z`3d9a7BY!+Q}*;m#|b#JSx zae%I>FJZ0K2#Jd8S6uz|q6s<^>^q~V64n1jj42n`%>p1>sxF&2km-E#JwOEEi%(W{iu+mL0#wJY?dBPg_f(+pUAiuou-paG=sGG$s{XlzZg{Vsw>ZxCRJ3!DdQh?s*tmqu5dV` zdfqc$D$~7wxNQa74yuE*tRz;C6^JN4x@`x^#;^(Vbg<3$;Se1j$dUcQ3SQCU%jG4V4_BK;zg+Z(MW`-Ub1wrNLJM7TM}*A z!fz`CkQRb9sT9waBSwm;rR8;K8OjDspE zjGA)&tt4WU1U;@7jZ%<$@_eN0JkD`qZBg_@ua)#{`Vo{U{`vVK6n30tVh+U0?5M=W zAK`UP`a)jrfjMG3MF7(aqD;N=7*TScAf(VOy zddW?kKp;r#8tePI**e%uE~O)s(^B320Pz67tQ`=U*-<50h@a zWLwTTwG?d6y|yUK7yore-sjL1Wu$#y9fgT*->D~F)W}a)RNGO?M78agUhmqXq^J1e zM0t`z7`bZ^qt818)>PW&beavR6lntbu4W8(%M2@0RJ|63>(7?%fQwL6IhHDklm)8@;sn?#mE>aQs z2_O7pwMm4ike6U7))4vVQTrTaebI8PNs5~nMJ{4_%sldeNK!57Fy#>lWsYMyo0z{f4Q{Imcd?zJKNRzL$9qU#7Gqh^6@d$R$QXw zE?-Yxz4nqSYuAxvj3;sG5f71wky@zHBdJEPLw^4FMTY$S2##PyImGqt6=#b)BuL6#11hjTWVYi-~v(tvzJJhZvQkFrxf*`<=smr1gL$ zTAnGmBoW|iRK&XW?{{KUkDdg`Pe@jCrpS_5Gh>V1gbci@Xi+3W;ws~nS1hWo{wg9r z3SGkCi+bwJpG5jadfd}(QObt>s>%j!2O+3T)M!z&iB7YlXDzf49T_3mmQK^FY0X)5 z9oBir?=WM_hAgyJq$!D!w~PSNn#P{h{p2$#+q9Vv5+g=&Nl8Rov7%4+niwTLwHDQG z6e)$AvS{OeyEXWcg=q3YHr#7@)cV78dEvjV=w3w~RBad~w%WY2Fv$Ub86#Ism2Z}g z7C!F~Kwi_>mC2Aq)YCI>?@IM1%Y+3Isj*EE@;9QGZf1%tN29)|Z^Px_5-3F(mDGaEvZELZzAp^M`Z#$A5Y&0(=%z2V^E;;2!8$ zW_vAS)WUBW1lIeDc4sp8ZJ!^6@&{ony8`D|@5^aUAzOMmO;*ZTX+l6-I>q|FF03zj zxOLddy7fsMqk$m>izSV7Q*BHvWH3y@l3~3`AfJ*f8CJQpkSv)RY0dh2RLQi|WK$+f zhCmmRjBe7KE3m0|j`mCu-BVXL?0yFLTn{8zY%xmt2JAGfCr+9A+o+zXk(*2;MIob3 z0YxD#ejjqJ&9X^|uxPPbrhI)kbp$)3{*IZ#H-{d7rOqQNZ7D&&D!B9f%DDDJ>KiT; zNkL56dhNyWr5^caW2O1i!g4?Z#!@NTgkVNWZx0`(+fQm(OIUx(Q(C$^qly6)IdYe? zI(SXMXiq!YwC;LIW0=QoVkDR;q&Rr3m$$F>GP#&WNWomuB1L^UgXw~f1lo0z>7qtH zEiok)Su&wJXEI&TNNJLkX40K4^2n+wo?3T{{``_6iWSs~F$evy{^Fhyql)onmT{N& zIdAS$cn_=XU`HSq!7XAh#E`;b zdm7e$s>106bA=2iCVD6uf^TfQN;YLEhJpkK>}nJ(2yuu}RdM}3#j+WpOl69|=YR*s z8P(K0Zgp{U zKFe%TLkKW+lSM-y1r$udqNyPzXu@Q{6bMtpFrjE#k)n*Lv0!KjVGSfw!ri45AKmO_ z`_MEy2d2@58Q_!azFLAbP3z8Cf~HqKS>ks@BvOKDnn-D)YdS(x^)k_qsx&30Gy#ba z0-=e3h+GgFh;o%>Ow(k3b{=V(v~{$RN~e&fi78D4pjG^f=!*z38?}}Ki&&eci9n(W zffWAjpF{Q*btv^lI(R9tB*C-j3Ow&4_D>o6)R%H_eoAWhTd+g>+SWMV~d;LRyE62}Q%{xe$=it-f3@_ve+o%HXkN=$x7C zU|Zh|>Q^YKiIHiTTseDzv&T-cY1dXpH>@L-PWjXeOjEKrzrg9wjk1z8-`gS}ee31@X=@DJ7+1kstr*-?Oy1#5ex&?=iS~ zh~iR_)1REgFiPxrXb0JRHp;RYl8(|DC4*~MZgJ((4K{CG%g|6Ssgz!|lqACRMX8wp z3{x^YJI|?8mpO6l0#7`>m$CIDH6kq~hdw&N;ZIL{qD8W-MQDPazHVN4=_yiLS{=bF zUsTsG-{7?57csw=l#W2S`K`o_c+$H+^PWYz0eGZ0{}#fv^y5I_d#({<)br6lK9 zqC3z8V&q*@6k5s^ITH3X>$f|XC9P`+2XPAV#04n@3#AlDL0U+%nncqet4RhsB)e9@ zmH|P@lpMV&xiBdy&P%#8k`2AEV+h*QaBCJmz9zXgE30?Ix_}gtxk4JV!jeKSW&u(n zrOBW2keG(S)a@zWdF4$$dGjMOxh(ni zHWp^*c=so-ar}eBJo}xmuwlG-isrZNetXfNk9^o2E&zP~^2y_9HF>WWcBEv&$Q*ehm?}>@jJZr z=BK>#&S7R}7tnQ`LZMWicC|-A1&=(on=RYdTV<&|L1rTP&8zS8&g+NRwQs96by?P5 zSSlhBq_fV*(cH`&^Ro*)|GUqzZSOW~8cbL^)7cC?13d^KC@dBD^sSHi=(P`6y?&HO zzx))d#zt9OT;kY!pYZ-GZ}R?6U#EMppMf<)B72yYga9q1nsC&AVUm+gPU- zRys7SmpRsrB!{dqe*lmC9Em2 z9fOiT+$Y#J2$eBz?}*@!_QBC{$?xodr`HSG(pLVu9{Al|@YyZN&rZXVA<5{HjA^1f z`e0Ry`nR$W0wLi2U%ttjO=GOtIEK(`ciB=_h|_T{ojMm;Z;*^EPsQE5be&v#p6>o0 zZeG65rBmnGvUfXrsxpn|DCOLEX}^X0rJ_5L001BWNkle zSH}D8v&wXmbV)i&3h#ckj3Advp*t4WiU4Q)haX)?(wZctNiv!>g*MzN*)|9%%_2RT zfLsdJ_rN0~l5PFanXRoQ(lr?Agzf#-(`p$_k`lGwU|;L%aq%i^w~Vp( z>4!)JCNh;aG7SU6FfdBx-*USNA;@IYbab|nPNf_KMoMeiZ*j4}?TNeG zp15m8W(>31CZg)IC0nt#xL9Cf;w}>tcPUoNM7XGZyACO7Ys>NnfA|7_@ZB%+#1nhy z>+kl}p=knL*KB_lsl0sQIybJ3vu)Q#di$*@T>(r_&2Z$<2@bw_h?%>y)dvMi#S-&# z3#8II?VatGye7~zfmU8TZ3RCCOAAZfxOk23fnG*8t|6Vxpy?WVDn(mY2Wz*kr?9ZZ z9g&Ukr8APK@|ONnK0X`d|O0ax z)1W)4AX4I717J_A$SJ1OB-VN&RTLsp#Hi*&!4%AuG*ZA^NuwxXdPy?12!riT4Vn;S zG=VCTH(!E@1;K1luxLO|x2De)O%3m(&Cw!8x~{YBq1{Mna{259j(zwUyB~XybS7OT zBX9oXmn_aN@Zd9#a^=iL3X4mCwNU!6|Mg#x$)tJqcfZ7{v61p!y%h~wn4jmP*WTmI zk&}GsyDu@iX&nGYvBb?w*O;EX%igEHR$L)I+p&wj+eVFiZ}={V_-0`;-G;e}>7M zw>k9M2h84`K?uRfhBZ9?wWnFTWt}JLQiYT(EiCaj|LU(WN+tf}U;LM3^VXYBP17QE zZ@>IDXAYmHSS+FI8tb=>@$A>1WcAurh?Is|GPru-8gIVxE|<<-rBo~-gkZ-5n|c20 zPck^%i>~Q>|3CbUPY)hva$*Wi6a4T0%U_Vvbq0rf`6vJVcgW>4eE9AW-h1m)zVx*N z?0#Sqsgzz`{JzM?AD-a#*A6j$YYLF`^mOq2^ZR-HiQTlfWvxhwDLHrU8h`euKjFm} z_tVqU$t$nC&y5?mkrIZ7d-#LzJjaghR-1%H(^O}drfckba0@~R&y!~Ma#YGHZparG zmN^3`uWPqA2HXw`r_E8#ga8O zwp4oSTC3q_IiXYZua=5X=Jlmp8Nf;@pu2{|HGj--eYv* zItE9EF-j%QA3M#7Lr2*1zz()OxSQ)2uR@s=fna28l+WJ%mD6yeuqE#=YK>;XFJ!g+~g;J{c~>HzqlC^gL_ERW0&$x8zJlh}IP5-I^tDYr;o0qL<(5}b!($Ujtxh5sE zQ!`vTd7d4Q?4f`4An9zH?fdue`ak@VODE4Wdv}J8-cB@|Ez>l)b>#*<13UPGfA+@= ztyzW8VB*>>e(^UibL`*|hS!a-egCfNLgbmLX^gWa4t(ty_C513nOufavBcrG5AoJd ze#3{qe2?CtK6;1yA~)E~)C{lx@HOsC+~Mh$p61D~JV7R#p;RdH@mn8r`OFoT=9g$| z%X4S^E?vEyJo~jL*tUBU>9kI%P~_Dgy}{eRJjjW|XBb-D&zHXWG++4ABmC?C^)Jb$ z)BG3z^jq}ycA}T3mzEX_9zRUetS8w{oVdjE&ppW3zkY!B_B>0A1^(*){W%|gc#^l@Il{Mo{~2^W z<8vZ~q(wUSyz;Uf!MSqz2A3{e=cR8wN8dn?Ba$b|Z<&|n2LU8jx%t@zX7A22H8Djx zou<93gH$@jg%jsF_325z_^lUt?8O6Q^EuMl40{gj<%3t><%3t>LFhVN{XLXQCC(i= z!=cySr+2uYRb!*1%5CPo%A-_LArq@@?85hAH21Sv2QiWXd3E^^7je(e7FxIu5JEu| z?s5ST%6W;>ypWQ z0n!2r2ArRU&u(eVm8`d5n^KTB4Q36UMbmH9d^GjkDg?7!&#X0oiJgxFWph=%Z6yy*5FyShAu^zKA}ugh^G-MkysT({r3Sa*pnv4#qZ) zlFMhPJVEBCPzXq+Q*`%rv+uxOp7_!MM%Ir~DwQ~X=mf9*=r6 zrqEm@qu#P{6R`c}b9+XZP2iYAreXQQFhE%G?f%R01zEuPC4)rm9 z=T;#Zr|Ng2&#Jj>1}8ylPcHYu62N{l+8{<9Dm1NY{1Nt{tSex3l(ynh^B&bzKgyHHLeM|d$MfHKmV9R${looe zx{efr2M#>I;H+E~4AH7|VkE395W%GGn1nY}wpVX45v+&n{T zSF`<*-L!Xi)Sh0e8-66Do;I};5$U-W{cXCllA3<2cPcTgYy^Fw1nFK*F|G_#Ei?gj zl9PJ{pGcA4U6Jdms; zuf0uIZx08)Yz_W?SF@&R42`a0WW!pnoVmcA@k#oI`Z;&x6sdHIvF#hJX$WDhjk$jD zD%USuMM}wszkbhp-wYs4$yLs*{x5rS+k z!`PO!n9_<~R*=bN8D29?TYH{cS8rjKtaV{R6AX?H@%UGtX7=t3vomx2;y?U^Tw9*q zPd>=#mNC5NKoFrxdbEq6FHj_m7$xOP9aCxbJJLioEw<7^M1&C|6~#zWe++r+=`;6Y zYI{MyDYVMIk{HGC#FrR>Aq7PfOaui(AT-IUF2Pglq02R9r*+8cf{YGn&6&Pum0<5G zc=w9+L|aJ;>({i~t7mG^f~HwflpXsYVDi=k>$h)aWW!oCO-Fjl)}jpE{k?41v6&BF zdzb4MuF%%r#*z0wrEhqUwVT#g$%B+8pS|-DLKAG=yOZ{=c1NR0X)R*Dc;Xy4E?r~o zmi3NB&_>CiR4gK8&Ze`RUMP}Er5rCdG!2ttp@3tQmlgpl6-r3cL{FE$;imjNvKN_b z20g8_w6IhrG8(@4YM>cty;?@xcIY)@-0 zDT*J~^x@*-62+o{u4~mbSk^b{B#VoM@>HBN66O0kr6!MGY84V`!qQTK_uu)9-o9?O z?cCt_j7gdPZ5mC<#bd`F&iF2ne> zaju@d#K7n<`@eXAY+F7;XKZ_>#JeHe95#v1ncrQty$AtoH);}M|PrVnQD;6G$lwAUDGHo6*+(MB0C@4#;*O_>1fYe zKAR@fcV;LQirzCyXjq>dDSxO}b?`))h<3L#Jlx0PVu4E+Zm?3a2um*hLvxUp1gI3lSj^S{mLy4JpV8q z-Ccmm;=&Ra&Rn6hx09jKq4LW=!7vQ&jNf5?cD|f$Cx=#r=B8(P;|H%IB^>zrvvd#i zmWg$PQ(R3gleC_DIkGRe?G`a=;T~cciBZTxYZNE0itLD5R3Y|y0)LNXIfx~s^=k^a zIRhVEg)eNhUf>9@RDx5tC2w7U9joB+b*rr&p#laf13V&YszVMc7d1w)4LQ4C3f!KK>t9O zrydoZP3g;}jIka^vb4Cw>%aPtj?OlAKd=Q|x86oAtDaiAhDQc@`h~|>Tq@8%)Q1of zQwlDezQp(c^2co4xq)ZC`V?J#-I!8x^}=#~wh_1)jy-HedatJ5i^SnmK|7`BQI{DNMees8~HZ;uc@-C{znAECWpYKnU4!5)^wL9VbKs2Bpe%ufBz9=Q?RMeTF3F}4fyke zCKsl3{_compiT1Bn4mok*JdQ&`wU(`FPJM?B&j3?OQvwm{3xadV@#o`5!_h_O^|QP zGq!CbXAYm>>e)*?`1GT6_tze&URqe>Ox#?L>96Umtf?^mrE zX48%h9DL&t6E`MVzjchILV+`f&v5(JB+q=~Sw=UERtY+k7j|E|#*ueFK~L*E|J|>W z&F2DdhH6(&9FkBkX=sGRM6vx_MvM~C*&;?Q+y{tAj8dTzRk9-;yTPPE*sha^p16pS z0J6GCS~D?Ct-7A0XuzxI;NpyA->}JIN#o<|lAF^KiR9cJ$-jCVUOfX{X}C6L^1)S& z1;cWvqDL2!wv_3*l*5UUrfGEb_ON!-dOEth(X`+vpag<+Cd2TW)hy00l&7O?dWB%^ z<}teadoW5R_8fS~u@HG-Zh?G9J3AlU%fQI6ckn5u!%G#8Gaqf{)?*4fTuUwxY0kL{zguiIfWo6oWHu?H;jbmBZGuiQk_1Yz8`Dr(oxdov$k;m!!_(%y|{ahAtRn9`a`J9h_;Pk=C?I}g(Z%IkY9mn7B~4Epnh z@;DJSDkRW!opoC_&_6stXHU1{a~IC?LI~PBJJ|R1qnL(4TSvP`PD(3+v2M!-R*#L= z1{n$MogF;+_2qdC$rROLXiez$GmdaC2nOv4F`*yHy>w2ap z?ocXOPl5HX8X%p`cm_31*XSASW9x(4+4|rP=I+i~X+wQ<^_IV>B`gQ^l+MG?KZZ0- z+Pka)Je^7N?C(AYQj*G~sC+6Sl}@o`?^f1sUdzPwaf;;y&HclDboX|mYgXNcM~8Us zrKh-kYm$Z81$13wV5paljyzM7)8w-0>XUhzF6bZZ<*UE@47Y6W3R<;#fK*y%>-I55 z)(q0q(^(}&nl9)c=;kY5KfuF}>|pB7G(tdES39d$_g7!oD9Xoac&L{@{KGHO(UEsV zO@t7n(<#3BjVI7_oxJCXz4{=8VAr0FtQr|$Xt>YuGS14iCUKoLjQ0-w{A=@J3WukG`jk`=^O61-jOAoPiP7uSi5D6fze^Q2g-IU z3)QP;WMJfIWgyOoSeErI(&*^A9KlWZgz)NA4XM!gd{m9k}|EG6#fgLEai zNP~wMf%7g7g=|z}WF_kY#<~|7Y%8!>v<*^Hf)v%a^g2DO?Fj@zNQ+}hr9sZ@&Ifj%VC^-)rg(&YT{Gu#=U*j(wPi{qr(i03;`B#bDtMN zXx5vpWuf9&^GgVH&E0NRWNGc% zA;9gBxHGvp4tEpOqq=kEdMu<@v ziVwn;HAf*v_AF&s+pQ}KF|ziBkPNjIcye@#w@sb#g)|aDN=OPRtMl$mo9N}@Sxu7C zttmHC3W}yhh}tp+dgXH-!s^ERb0r>JJ;}PR1vJH4rohON(5O5W6{P?-D&MJ8;G8S}}*Z0ptu6%)xYB{gsybCZYrfCo zSK3^i7Y*vsLudjG-Q}^fl%{Fby!ib<*>3r~)bz?NMfo!zHb(298lo}55kpe zM^$eHxr&q*)qWgO;j>?Nv?!?%%W{QA0**msGc9J+f(=m!O9G^(QT+i6t=%VoKA6bnVZ z_?@qj?@+ziFwABJan7W;XI`_<)RkcSUe$4cmCLwpEdXkFz6K_tN)Sqh6jg%Ai?vzO6K9vGTob>|XCCpx$}o8``uPDyHX zrVZvx*4=VWlgt}hIZ|Z32^$IR8Iwgr(3Un>-M+|<{uxF)7fETAMb;tpQs()!YBXYG z7$&*49E)=c*4mwYyV$yKm*X=W@!_?jr&FxozKMa6!SXsF5hyP-LC;Vx>$a|^v$xAN zr4@80MJ0q$$|i8tIL^byufQbl&85$FT}WiSi8~0_XViK1NPMT=BKs9mCepg5qzCNf zBt1zI))rd04^Z!r64%V%ymwCi%U6yDXtAXW*S@EWMS5P^vxd!sop>Q#*P`FVfY+XM zWmURWOHMjUigG?w`bE1=#S0rf(@Aze6?wkp0@7`1l@Giw%*|V$)M(3Di;RWhXh!L~ zRBc)v8!GJ}eB^Cq#P4}e001BWNklYsF!t4z*l zK6%cvE3XfdILp=cg)>dm(xfBJl`fpR zYH2llwdu2(47g; zM?EUph<#zl$gk4}Z^!6gE{bemJB4ROma8`}j{O#ValTaI$247KRFq#6U%I4`knRov z0g0uTmXz*J>0G)S>F(|lP`W#$QyS^+^nLyx-gEc_d)R&MojWtXn7h~4)1K04hDyF9 z4XUMN1H{!|-Cy=xbl^)g&5HoDpQ7I#9nZ0tDI`lbJ<7#N8;f--Cy*2Ccm#wzIlG)j+kH>k*T@1m+ zS$~OrBBZ0mW&^3d+)}UsQ|wZ?K8LCJrfuor#J{9D`SEGUQ-3ZP6_DxiJpQ~Sn5Pfj z!DySY5O{YMu8fna_`>xGrBW0-`sZ#bQ4#$K@;q^NRHjC42ZT~bw>;z-&UH<=vUJKc zX;>M{s%){)iwdMnja>19++S8BIM>fG=f<_g?>qJ-x*+dM_Sl~!vpE5_wc{m;>nf?@ z;LBUDub(oP<|-@ov+pAbKPlb+2hV-O0#_KMm5DloynxZ7B<`}S!f0P`KW#m@Fu>}U z2>IFGjb2BCWB93%Fr1*HRaM?!4Um6)z980=G z6dj$pvTBeSbH0_%!zpAuUkZ)oYqknnM4Fl@6*gn)8%JCpzB2RdwnSX-?|1(KZ6B+t zWvyeBN&E_id7Md=b=zc)EWeCXGZm-?{`K6;maq*jTN_)5I`)Ilj?ZaO$iUeMvQ(nl z)3KzaoLfB|Vz7w9LxDxoKb%C%P`Msa?GcYwYyN`*hI1_XBw{q{&-4md;P_Szq&lYa zlOfS(?*j`|dcabdRnm3q=&{UW#4VOb#SP?T&A&Z5kk3pL(eDQt+jRTOB=fW_ zIWr`qM<3s2Edq9n)`#Wi+Pz99wpTE&e+Ar1#QPvKwk8dA%Z$6}BX;8R%*~aI z^oFM$RocBdMnmwm*o8AbQ6Ncr9z}x~3GC>xAGI(V7OE^&biY=(>Q6ZD1v=z~e0HoM4GvXvVlGc3l@35znlG7evUo2p6I4 ztD8M4xayW<)vW2J%h^dVDN7G2i<7L1r6_OK#UQ<$hnIBh&6JTyLTk*m4dC1PelsD{ zD;pf}QOO_>n<6wXx6c>9XJiNn)-S5WGkmMb(qxXP9TZ_&`q zJBofl*PKl_btw+=j*`?&pLv?@W0^cm{@vsm={w-2(OV z9~va-WmmWI#UU(ZC=-}sNe#Ey*z+93tRE7Kgne!NdJCmza3!m|vNgtOqHg{$p3n0t zm#*7WC6ydq(jVdF3bfTr>%3mwViod_24fdO6P4E@nW8eBikkTz!7Rzo~3=b-8%fY&I|I_ch+Rw?cV$p$D-Y%h|2+K0C;Gl+R3S2AH zdZHl5#&G3?&cVg`Xf^@wNT#(ZFOBiw!|U0@=F*G=owu)4F_y_NOa*fi^TskQBBW+C z9tH_zOBB6dsE{QjKv(7DtNU}b!7iS`KjS1WI6bh$$NznJ1=P61RwB9I`&zHPqu6P^7DyTo~XJ8|eO&EVjLZM-cdHE!r z>NBGJjz+WwI4KB)FVendyurUc!X-Mev#@3;zH&0X`rfHYu#I>F_VTE|i%klJH zeHc+3&80AIacZ45ESQcipFHUE=%A5iO_Wfh_yY4jISRiIZH{q=k6=JwZPoFnpK zHt{yJZ0dYAF?D0s_}Rk%<3WKi-ul*}O=w)X%h+Rcz`d@MbaTVe2#Rb5SrdHpn+he5~Zwq}uC z2hqo-!R7svqrT22B~V2ZaB(|UJvCKBzIN-_d)0F#i5yVIZ_G}hP7m!6NjXNM;NGgY z`#@J>Wtb$3tN_3-9jC8;Agh$s0WD40k<;Uymy4;+p@(E*@9VBNwl;FV-_#n40x}vW zlG}^6*l~{GLVoE7oozlqkLDu1n&U9+Y1R!@d%c4-D2i=CJd4Qn3j0$>dA=S){bnKm zA~>%cRl!vjO`h?!gsj8Sg|=KcvSUwUx_AGbV^|Hc^yj9wO-f|2ct99oxf1=y1V9vX zZsbCSU-r&%p_`@nh#Ief1=y%dtm^oL70WegHr63@snS{+HFAvDR)JAi90o>m z4<|SE>XkPCiYx%#Kq;_zY}-hPn5yk-0uLJdAv%(h}m%S9*J3T5@Dz)Ad+vd z!4?}c=IvNz5h9F)k_L^suZ7qX{WGD%hW9H3lNj+^_Ybc)<1n>F7gUjt#GaaPa$d4L zvE$q4{9!0dRikCaMPmL=C?iru!8606p|12^N16}?w@}TYxeW3#a3tOubUkemCyf9} zV_C&X>vRrV^t}>SImCmK`DE2k=wP?j)TL8=RFSCsYq9^ZsnNA{H<2lLbCYPh(p31N z38kts4zt)eVm6m_XWU}wfSBw*@GdtgX$zPkvtAxJ0O+9$c8x8MkhvnYlV;RP%ieDy zZx1vgwEfeP2v~ktr2?$&Y~w%U_Hj@NwkPy2f2Ee2^p#E$*f7mMI}W6ln;yv`53W76 z{NyrI>s26ObZ6Z3!zMa9u1-3J_YA*^{+mADMqoqGOO!RQwQ0$6(f)e5R={9^Nl5E_ z?^WSTPC;H{eipe`B?Iyzf+N%rn7`OJ|Lk-j6zg+CnYh!!p)hOC6`0*>8f>zflu#Uk zFiG-xl>WSZsy`-k{s7|gI{6Cthhm~M_+H+IvV@!h0adRJeK!3avAcbt{XB(Di)~(G zX%oShC356jqE6 z@IMXddxt7On`h@&6`+6_vOr2*#)!k{g8DO?a8cs6X9_7Jw#)dMs;&_>sj%K1vg+?2 zTCD6V3c0lB5$2vVS(Z2J!l;b(`;rmxpVm@q=h{r;3}ghf7gEz!7~&fsH#8_AF*JX4 z%lFmLm~oZq7;$pwu7e~a1xbd6T7T?8OT=td?Q#lWOnaO!laNZTwypaZjFM#cd~h30 zm6(JjX}QrAkb~JO+!U;+6cT}{o|AFz8SWAHABhutzg;GpL{=gt(r5Y^lGAe2^EEZ8 zR#WIV)&U6=SwT}(DKtQfvqG6^mV@EFoMlF_;;bt|yvm}1>}XUet50$(Fx{h4kL+J! zW#;z@;HfQ-PwGyP(Hqw=LY0~AKd5IjgAZEIzG(uwxR>q*@D7p`u}OlSf>!S`^?30~FD*uGieRmI`}Jp=&;ax5AB5HI~c9t~c-yhHr28 zFo)j@`rB-CdovrX{bOongl(1a->}ft8~ZvuOuBri-;3}+Oh80Ru^d`54u#PQRX>yZfC4=&Wic8RCW5 zKhWwr-UrZO>MFw;AVom^DZxWd%T`g}xHRVhxM)hFVDZK+>Ay&`jggZA94rzc!(NLFK#tf`LC?L-gQ zoa~3UZ@*Gy%K=NCcT+&gg}axU?WAXS*DiOw@7CLN!Oo$)29Jzg*Yy9wZP~^qm^D7X ztV4nLY&hNuTfXmy0r>u(j(e!N9sgk5>AyKYo_r?rdSdK+`E$dumy|gjtFT%%jlr9WTPHqd zI~w6}c+j{?KFD#v6wuBFq z_?Vd)y@2?`CB^b(l-hrYC^RCVot#jYG0S|QR%`(Nl{kL>+6A#s6zoje2z3ZPS z^p)Ds#ffA;!zogDaF+8G_Um(^>h!Zo^U}3XoJfhXq$ob? zrC?GqS ze$`^O>X3Cni+y}NtZ65Le-nk!w#m^QjUX8yyK#T{Fez?pZ)*gsQiw6kHJ75%vKz(T zvqL6pQsw(9_Ui4C4x;wEo>dqnt}GYUv4!DoNXEt;sOzHO-9`A+p17IvKUXJGM_CNy z5yK%YB}Q-KfCT;X%Hvs!ggcaX=?AjhMzH=)7xeGV=98UKA&AjV{r0~`?#dMn>9rf< zelDR8hDIJR2Dli3O$>{~^&pXk;Ax1!PUDL$S=Y;@aIc%Ki#kO~Qo+2nu{#tg#m>aS zhB(E{=xUC!{qod)=Q{Tv$$e*gKnT6!M?TKzM2jiorx|8G&pVb;xc39A8n(ZfD!a{j zCA^l@xZ^L5aoD9qx1RBsucJT=%?msi$GP6oVm%SI8afCTKCg|8zuQ9ckvi5YhPlXJ3Ag!U`Vl zU`*fhdk)Vdyl*~lHi8dFJnH!P7dJiPy3Y@|?N@_ez3(x7$qS|SuAv?xZ*_=)Qaj)Pyf(%QCt%8(YT!2bs3c{5a~2xA5)vE#uTK zIEkNZraDR)=H#hT*XyLw*CVFltY2LXFT(BL(csQR$Gw<2mi7k4ze(Dtkh9#%1mVzW zOG&q4e)v6c_uZ6?@(@Iw&VUj+xbplx`qk6ovOd7FM9O9ae4U zGh0pjHP4-!`$y+}j2gcy6tcCqRw2Le&1b*6b7fKzX(t-vAv{9m5+IjmV8e(YiZ#STrvYk{n$9djW%H6-da;hr&P%WDX^0@O)un5 zg6EvuD>%u`QDhQHgipHhPhx}rWACLrXo4ZY!7uMao4?;Z0BnfX2n(so9~l()bo@?A zSi|4ohN{gLPv{#~v2RtU5`*#f0}7T{ogi;q_3fvnX7o}eiG0oAQ@qV*ya{vawJkC{ z%acVyMN#qrOnr`4e@F${`W~ zPj5dpuWPu0&SrfJQ3*p4pE(p?{ zTNk#9+p4ISHW*)MvZSds6cg9g-8ke7WXU8%kR6c0y{|BZ`+(nyn7Au0$4Xf9ijwpX zoZ?=(jhUJ0ZBip5G3hvsqDJ?FD`DdGvpu0+q;3-o)x43Mr-Sz&D2nHkQ|)F+ie!^Z z#zjGqU=FXxvZ3zb2q`SLhf48jBn+cyu0H(=pB@IoR#kqO9uYfa+@UXqMt3M@Yd;ZD z4J~((Gh&3=|E+dK+4$s!`wRu2S-uw z+>U>G+@fQ_&bhmB@Nxx}-k+QJcoNZx%rsk#AHb>!gp#B183tYTx?vhaJxHCq8Yc!7{*mXT`=d~wux#2OhHkDy8?@HV2a zl>XInt%-@fD7eGO0jez9eZmj8FB@HN| zfQyfaFriKUYV8Mb}B$b{_YZ~!9AH2jnv7WH2O z*6y@j=d4;)DkMlN&1BN$kc=6p)}J-06HQd#KzzF6acb0zi?L1H4+#gze(h$zR)|h4 zDg==EZQpLn6%S?Fzr^2=X}lg;_~jD^l1pZrEqmiE89KVj(F;OWrw2B*iHQ-9g{3L{#_QJk z&P%e!<;A2Oi!c;%>Y78Ta%=aokq>&v2^k#fZ3<#p9h?ifewgignELs=ht4ACgSv75 z(d~u-*fXdDDuRqb_^M2JNKd@c%U$jpvMNEz<;9&IaI%!E(KpxT#|VY^F-kW#U*>^a zR#6u7PLfU>S2HChaes1C_-(PPJ9}fTzc=x-ze+S2=}@uzx<3#>gcV!2=bd4P%mg1D zw>5dErI4-r#6AAqgZpo62re%c^jHKl#4DF2eyIDio;Y=W-@Ybtq^hN`t`x2}+!;Li? zhCo9QuKgH_FLVhy&tZ}f1)Fi(Ma>5K%q@%?_gx<&%zBzv+vc33xDbgjrtEsI13e{D z%zE5Nl#Y-RiMFLz&Vvm-WBOprj~h{vdpbC?a{q`#ERl=h+e zn~DNlrUE^!;&@sLPGjS`60^#@E+R)Y{nF1Ol2mKh;*s6EEpbTPYviglcJ`-pO0eJRV*53E zNwsLrr-HpFUc-M311z3E*tI;V$8CsPN@pk<4AB}w~{H9!2wlu;1@}X zX4+(eOS(TW1zzdVR=>V=M6)02_RxPC(dQBs(vUYM*JeAox|#aRB=UbRfS5&Y@Xc@6 zOFuXF>psrbNKqlq;KCy&zV;?i-5ctOFoq|zO$anyVa~M$PxK{hwtZ850sA+ zypV#f@7aQi&tNHl@%>_!id$DEb3;F-o60S(&vB)@Kh92!F6MheC{FVu1*+j(36>;{XDXc`=U#9g z*BCW;pJp)_;p&(&q4pzCU(Z-?KS<%I^;QXjK4PsXy_QkI(s$ z3OJUnT}A>TG_?GPZtlQixP-KaI3v3lKRM00XH0xdnPzPAzS z9&t%;CLybE3EK!4tN?O;9<9$3leBI{zK1JcW`#M0=wA3;`EO;~Td&OT13%~<92f^d z8+38_7ZN7Z?!UV$-;u1F0vxOysIr*u%5K$OD87{t@I@HK2Xi&W}xj? zI`K(?_j0M0^-#-$SWk&`@r?LK!QX&T>x!%^t2zm~KPn2*fsbL)9C;*am|uMc1JTLC z`{NY)h!q}YrxV|$ExqB~8nkyUHAkpVrv!Y8SClCV{m{BH1FxICE^lJr<^P53X%@ES z-RY(T!bXXpJQ*J1u}K#}kVFG5#zp|sFo}mb zY2n|^X^OCpe51HBMV>FNthxoNiW3I4EEbjUVjGyn5a%!3obDK@e%pKg zga4kGQgA551T{>++gKM%T8FzoGWHf zAU!EkML!1zU19n}2%RSdj*PMDWcToq^{Ib)k$=W~;r@HVbez?=4tR)X;O})1Q??Ps zWwBb&gr&$nm&l=ijxEFJLrYMwsekzX);{9MgTU>R2n%VsEs6KZ#~Xi>bJz1*?b>f= zoEFb3X?LIi<=m$tnU@Q#hZ{v?hWgBwuDV`Qm=-hRKo zh12tWRyBxY1j!;MC(ZoM{Q({hEp6Sm*4w816kk=Nuixdp6un3f3o&=|BzkL(@aOM+ zj(2^Kmr_iqiq+L5Xr`=@JTb}XlWJ|1w^JD?FDIXp`>{bUtl*zeKS_3Ze^{KiYX{~l zxD=<_D)z>%)p65sJ7y@hY{~$dzfiMPLL$;Qd+X6doI|rQwU=%FBh?dI`$FXn$zLj> zW_9?s5;pQZh;=!~#sEx6Qke@4RbnCd49C?IqoizclEgckn4h1=u*-XU7VijApHQ7&h_`a{xiWhqp!z1=#6+yJOsH- ztmpQ0y}sa%3wtMQ5wyqZ`5s8&jX&Ck9K3h#tjUb|I0dG)knRT`ywpn|fE$~?CU)-R zZa0@VNXVE``Hbv!JS;2V0xp~YGfGlYtCOOD?}U3;Pm_-8H-E&<-oI)YiblcntdrHLIAK@v_jG zP=(}?^HA?oayP@I_&c;jVAY5iJs()wu^DkKwgZy=V%VqD13BFanchJITS%o!fZJEXVR*7JY%@-mz zK4hr>oqQ6lfu&98-NG$pTB;;*Hlj#cleBywf#ap`#Tu$0j6nw0?Z4GEgtk z*~sJ@*dYDeUeOlxp5PB_tLbR2I;3P&MB~Uv7@deT`7=+OB0Eg_J17xGeEG29IoJE) z_&H_&jjXT5!enGT>ZzA5f5FYX3!BeifEM}Y`^E@733AWeG8&<<8|;>^I(T4VkRRWi z+{D=qp=LGEY#9jl-um)c;Os=5DnJ;OHvSCs&eCh@X-iZtgX)o);Na2(KZVp6Cf1P> z$DRM_1BmD5g~d%MS&oorWOg;HW;6O&v%_O`i&BkxkK#w;6^Q_d52kyKo>XCH*q>9< zhnz6`Z@wX=nC2qL9Nheo*BZ4hlHQRWPi%k9$p9dZ0D$XYEH%W6GyrSt4AC2D;R`PI zZJ&_f=T7G9R&Sr!)aGe2HNlu{_MQFZG4Fgs{8kxK9%V7TwA%MFj%!<01?++#R50pK zH7VArSh-4XIU4XZYj$k;QDs_TBhd5TyXuCW z=%Rb?9uv~SWqYJ3Oy*{xjOAnw!;0Wl%!S~P={?JM+xo1ySq+m;`;A&9qBd2VdxNG70@2?A|6*WcLkjAO)* z3WZKO#2vS4W@HWot@744{ldt7sj{24>b+04R!w2fR($`B`_fon}f%lt!)fed@WV zW=6JD<9zV>FMzeNkz=mQcEu7iF4Ra;sbXQ(;`Wb)pI*6z@ABn{;v9})`17v`MYDL8?YpD}=KT;1b@D9P^9l@LcrXb4 zY?^kJN47l&7NRdgiO#whA#A(Av3lPfF>iKRF(HmT7?<7sJ6_qgif!lG-~|t$?9ctq zksMa~AOk80{SATdrl0uFydQ~AzS(ar%@N5Pv__A1gFZlA1v}jd;?6e)I*1pQh(GjR z9Pj}wPVWiJU$QAf2M>4x13x(GLX(Sjd~*x)i_JUM@rm)x;Rkqq&mGpRwksy{v-O_B zHh0ITUIcjqFN73a{{rLkqCX{0#ewH92VrIQ_B(^MzUWi;4u>&|j;6*W6#lBn4otU< zZq3b(_fP0mf;#;NyYOtCj~}f2`W!M9#=%)Vg|+8fna3?0e1gFvv!xuI;85JzQb%_a zTz5ZbIH}lJlZ#=Fvh$tg!cvbr5BvcYl+<-k(g780Re~uarz4uPjh7FN_ZA$kmnS6L08CZiD#q|nC`9zh>Blv!7ND?n1MSM0i zuqtZG^w&{HHs+UnQ%j_a8B}mC;W!jevV{Lsi4@{pIblP6j%K4|BDc6kzDJgx+h0n=u()nly{c-K0IWb z-o3-fpSNw^UxydW*)LE*34A@8fn~S_j-l)TCqwan2?9v-KuFb*A~o-99z>{8z*DGS z1d?4=W7Wa?sgGkSyNS>J{fPmKg#!YQ#g3ewo*3JCA^@p1B9UHcqq?s-Bi{=(GJjeb z)O~ix=y3kT`p_9y9ixy1y~Tmh4;g8xuks+&1J~ly z*&-zlvi8(M{v4O`_R~^3{tcTTyyO?yq~b@RHdXD&_kAB z$b2!vI5zq;PnpMWT_@Nju1J28gA9in&KKCwy~HIpP(GyB_J1{IJL zMH2X>m4gzw5o_GZFsJ-n+zI}8(MOmcuU-etw`_A>QF3V!9UG)dy>zI;B(o5)2{Fz} zQ^Rt22Kv*?B6>A(Qqeu#EIHNBtCFHv&x{LNKN2Qj2F*V!Van3>!h&;WuE7=J&<*u;z|uIm?4sisJ=_Q3EG z-7jYW>?J|L(I4i`{R(BxQcyOy?D zc%nFlGUyN97ZLuhb5O|sm~g0SmU2}b6s?O|mwbTV*NyPN4T`05lq;4uU0U?i%MkQe z))rhtg7_rF5ALjfgmV1&gzAa6;Nl`1Q5Fn?1*k+=c`BscH_RFwE~ZI}oj}SD^C~QODTILkY*4 z?XrAMIRUz{M@hf*7si179GL%ECzwJO|@` zTKzIj#~LVRcx?aq!ag14770yIa&pH|{;$+rqKh!L^aJG-R)oesb)V6P1XCAL)rQmE zEOL8hJ9v{lwS7+F0+FmFn9&TFC_J;7ax3~6-@E%rB}L)3*-~*?{_kSS>;O{u&~G~O zaxkiV*7KD~Ly0MQ+L{LhnqM&_+{Lo~7M5|Rn`7uGO%5-T4_pYqQoth^U2ihvaI?#} z_HcsBGC8rmG-suTh-f?ods#5`)EyrD52f*!ZEA}qQ@(Dwp*xf~XFs2l1IxclGpf}N zbyb#8cX8l!s@BNH4sM4&uE*|IT8D5@{H1c1pfG7J1=*=q^?cQYKX$R2&3f@eib+5s zQ(w^}Sf&qQTDM>MK<8y$mJUY%Po_LyeX}-V;Kv-=>qy&#D@&;irYR*4T+%>RXkDGN z!b(RRLm<~Y^{Nkm$ORc$@kD3VEo7r2`IY(krbT~!X?x{KI)4Tfzn<$?hg)-4*ixnb zrCrB4clWy1pZEYaSqr zO4kLtK+(y&167e1c&&LpY%#6=`C62i$EYe6m|Q8;g3vOLsxfv3N(2lb;)R72{k^kL z%)n0xmUUokNs!@(TcIj;);{My&7QDRw-*m*J}gth;;wa}yx<2`c>@gnMn8vR44%b> z)nk%@X9CdCs;knJg?GGJlS}#7Sj|t8DJB}EXPWNr>udf#PCCQ}4W%FVX<07bk;jDz zCh-dEylBj<~QzNmJ@2=rWE+&TGo zVeq!<_iwSy1|miYclgfE^$nKa??+(0c6>TqVSeI8D}QaMaHk(q&T8Ne9uO_RZFx4K z`al1K*a>KAr40=pae5#1G2)5(kWZ+?5mz$*gzoT@`8Xr>NkNo}2t}N0V~M-o@S>a> zK`6}=0I-@chqGapOY`v{4>3leFP#cWFEuaxPvzhAWE-7_!CLLr_hDah>x+$+fXu2T zG^-w&*jb@eqD3)$9c9p9viy{3dG<+(B^B2HFJ4`JLu7J@Bp_`8h3nz8<+Pc%<-gjo z_R9?}c?A?28x6|S%z%bM7wrQy;cNXaz@bAB6cIf@ceFBFM3yYkCBBaF0>R8{Y0HiL6 zd9Qn)r}vTmEdWylAyU(*x^;8+Mw19PNK!MnJ_9*Yf*u~oRIWNpntFqOpO|>mH2{}# z)M>RsG#UB=0TaF)pvD3^tnuM8$$~~oeP?TM@ndNk^accU`GmQGu_mQoT3Wi0{~iO4 zuF2znFH#3qH+tX~eHxS-ZtB|c=*3e$M-ZV@6C_%fy9BfV3+gHLO`V}l#k7LZ7s6&c z6A#-e;+GJEVaqfr=(G%ZrJUT7t{xB|Oey=hMwf>ybYDoM@-;=uwF7pREa#3j(+#?h zda3@?$+`c%YrH2nb~bz8XHuBf>OeN&gz}$C>2PdgYyWM#cV5HM_=%fkHSm-V2!W;b zCBUPELo(De{9p+c;}1CH1D?8XVUTVCU!$(GJuqab5zz923aL-sB5Dfx(k}C)UA|KL z^jutm!V%<@FZx!ZgBZT#c84AW)<5mudi4*A^Qg`X#oGMk6b@#Mb7wJU(=n+-3`Q#4^ zZEIUvUI)OmgqOR}%+|6e-Yq%{znjuG}a*XbK?;jcH-1i>~ zs}#d3MVeDvrUDFFI$_`DumixdO@xuEGRYCTffRqVX@Y1F#ZKsrTx1_;@}lgJ$mt}d z{`Q+k7MK;}i*6}tzLSsVW5>P-yCYmj?iNeR<)Dz+B}Xz<0|j!tcm`4>pVBDJm2=HA zGarBA7)4EKxMqLPv%xrc{HGr^Y4~$P=;; zwdA?`UADLdW&6E;+o@L5&4{;+CLGv%zvk~}kD0R%*mMSrv5RHj$C`vi@w)W}?*Fnp zS(vt*>${Bw=ne+FsQBiFSF!Xvgxk6MY3ruCmNw#X8!Gr>C+uWx)}QjwrScS*peH65;T*yAhn<>Sg;hPl+ekNeHrS zcJxk}0t<;%kij@?%9tN{YnLJZcz@roiCO&f-wNq&H9WilXe~jWbe=GNo|zksArmeG zC*v4X>bx6{J)#m`jyXs&!<=)zxPyiLqcR9x_OcQJx0o@pJ_X_W^nHeMfQLNVX$xI6 zIK^FuOwfRa?yn*p@GTb%DWkwo;1k9H1rYej*67JcB8#R;^cBhQ;!^KR0r%u{6BGyY zYt?!4X&yfx;kPju7k@N#I)fp7@wnkcx8KcG4#em)>%1|m0<7EO-w*4RnNrh32zH)W zf&EffuDNn0{g-VF)3nX8h$+Ic+{&*h?)v?dx4ve#frjj(pTkuDaqGRZF8B@B!<5yg zmknz~2OaDQR(DrpJEG=GXDdH*0I&AhB)}GE>XBf%ev!m2mE4oLWzvt&`Yc1v^jTF~ z;N(wYk@(^lZN2At1Jt7?G|z9?PROmtlJuzEaCMcp3s*2ovOlNSeej4nuY-+X)thxJ zTfvBtDcg%$x^(HtyT|JX@Kz!ERve3!g-OPqzGMb3FBT4Z8mJ7&lzgsdBsIRrK1&Ev zm#>RUNxgF4`i-j%wDKw2w zCAev;Tg1lv|A z-X+}(F?K}%j1VAJcGumsvep+=lNG~oyl8k5HYdZU4X%P75o6&2igP^AL%5aVh=CHP zzhPYJIn86J-iJ>k7Zb_MsJ24JUqf9az6YI{WdC10^GG{sl6xIxiNB#gAH z(^LY6PPi9_OUc>$q(aT?q@tCNc$OIp6sZ0#9M+cCjxD{A-wW^eWY6FfmlKxL5sXl z(Fa@pI+Y=U#-p`z!2Db!w#8@$0%6<9NQkP5;`vK4c3Sf|QdHvZef*hEL5646IkM6v z%Q!H8MYiC!HjG$N62P5_c{sXsRkfTS1cG>8mCn!qN}e%0H%`mjep@n z_UP-I5F`m!A#VHc36G#KzrZU+*vwORnNErZ z52IC@ymwZW!5Y1+znHwe-g_*$f6uwJ?+GK1W2ajLHV7MDT+#f4Ag5HtFC&8N-h>9aBZ zd#P0V)4I5D-p_`Wx8yvANu@O`AeEd;QBC}RCnS|zq5}t%F*!HQ%Z^#G- zYKhSN#bsR|zK-A&;`}a|P8ZH)9>{Mri%HdyH&$6l%{Y~!QXQ+60go@g;tB%&C^f86 z42$swIp>58)u3S_c}PO}f)}`y;Ng2rS`K$Af05dr)fdK9*dmOjN@xZ7e)yh(NJzWP zjR4UKNQz*md-3w2Mq;6Pk$;+D%pj&APup*Gw-!Lj8}aKGFK5_k^TzP_va*TO{fQ7#jjo&N@x*msxV4F*q?sv74~{4WcAGxF zp5MjndIO#>>r9>Cp9MVWfQ_`nZ6?4-hbJpA>XhXTbWG~R^=vkX&kkt@@CctO1Ej;t zf(o%L;mYEF^0kOq8F98uow?BiM>=xiewSsBl5DA{H;+wSZ_-*%DW@YQ*9-Mtq$Z81W?kUeMTa9I(hk8xO=}{CedokeWuHx$MD^ zDR{^e8tT$v1x8sZ12F2-p&%c?7Nz*S(ZHJjBEzA8dN8L*95_6mVt&1eU*6lmPQ!=q zCyhyF34~b#wdv4M63@#7jCh~rL0K>BBjVwPiv%Ew4P$Ycbihcq7$a*Z{3Ci<9lk8` zCK_RV=jD?=)AAMm&NaY@t6O&Y$mz{r$; zzkrb`Z@$1NdYo%iK$0#oN25`V=AKH-aLD8q2hyvK~ef*?e$D{U|L@z@(_w?-un*$utwDA)lrB z2cAvq6A<)%i&D(HF8+0IFWlekg}5pjk8UTepczGj8-?prJX+bqUdzXuQ#DMFmr*W= z@EL*nQY6*Ocy!Bjbeigt)e(T0=S6nZ<=?s+|cg~}l<7FoI3$IU9F57-Y2N0=2j?A9OmlX4ka(`YN6!CYAS$$Sp zY4x||sGv+m8BFzzdaeJk+dl-S1@16TdEvysfKP$N ztrmXuU=vGQO}u(?0K*jrwnYR1QsqMuIOy=`0;42dB6-sQsRAdaU@HmGfT`Ev&l5z( zfr^TUEsKMp?(?dvt1H*7>w+z@?M@bihB~5l*j{37^L|G;cuE8m;jtMYQg3S_?&-X8 zAu&0DDY-sDFB%0QIo#Ek)ithTL)Q-ze^UZ8VW%hP%80@8p*{*Z3`7yUVYcP_xYcUm zf$L(^_g_3f)FDOq5@(7`wWK7^2iA67+??CR+(r{`PStRJq5{hT2q7Rul|eA|&opyl z3V1}BoHW^_JmhpJ5B|KeWZgP(*y{opwqBO$VL_6(t_!Ys02T#TT{+fcQQLH~Cz$~e z5%VVLQe}yfe9*aD@_j<|h%&|Dg91wu@vORffl2c0qJyBr>|2gRBY!@nc<8$LO|ywL z-^bnyybe)Fl5k`IiaJ`7$hMm?u?Va-IEwp__JXC& zcrZNDZjb;YVrn}rFfyh60!C5569o_K5SlKaG6k(XPg-Ea>fr4_aeqWWQ<$+5>r8WX z)w&e(u{3P%-y?D#0Yy&(A8Q~_gB098Eg9AIfziuF9Wd0Q6tkX(FB%Oj`ab*@d<`Ow z1mVLF6s5G1z)wNp`4k?2h0PZJ`KvWd3>EOoWEGP`1yl+)3O0dbx3fot)u2mBVL?`A zAQv`YrK1Oa#Jb(|H$B5o0O{;^VV%q#<^1YC2YDSqU3aMl65;K@sxFY}uKdFef02lu zcvdM2M_7IFGQ{*{hXgcs6m2D2FTcv6_ay#u0u{(`fQUo@8Et=(2taLjf-*zI@JP!{ zNjo@dJX^GMF;469Clbpe0!BIp6ZpdCiz%WI>DB2Afh{4w%%}J_OzMM3Mp4x#Ifove&XjuYf#{0ZPgBrAJ( z5JtaLm%u;5lyk>2-{PR819m!Losf8W*IZYwdmP~*ah|9=TOPO1*2l{rDoaWRb*xBY z2z#7V2Y^{^nuPjU026DeNG9SN_l6l)#=HgB{gTCdEVL8v!T4e1#$nGno`mCAzp^(Z zt6##PDa>@%BwaE+=r9$Tk9t*xW zwEa_-0@!JIc(~%@(P{&>MNlnTsFo}g9Rk}T!I}c$_gn;u1b{(QP6W3Hk?=nR3Bp}rjspa^-1ayKV`=v zKGivUv#8`ujt%{l_C4bLF1oHUc|jR>Z?L*$ZnC_RPY8HKWl3F`;o`_IYQB?70R)J)|CGidYieEvidGLLLf)Lu)OMV$b!ly31xRBp@Z^5dk0xC=%)7 zKBM}hx>x`NzOKU$RtKY32&N?Zqx`X;ECVvKc0^=j{DO9LNZOum84rrOx;i1003aj| zZU|_*EOL$xIO>*LBw8;3PEi{XKceMe>VRl>cH1mp6)04~)v*AF`y^376v^t42)H4U z-V4iF-tM_i#C07o#Db!*tkYuBg`*(=ivpmIei0~&f~Sy&gmv+bBJui&PM$v+NM!+8 z#21wp@N#|%Y;ec2Pg#UDiQpU z`&8BO=7qtk}aM_HYtBG;~QOLUfok4RE^HW8H5<=TPTCBdgQp z6YvuqevzG|Ya}W+eV8VdiTo1zr)o$0v)vE;#;UxW2$tyb^O>3G&=LuK2>D4DFo5Cb z+r#?ALo~JwkN_eCfJEpy& zl8dsL^lX+ZBY^6{zF_^L%(=*ErtUjsTtZp43)k|O$FJplb4@#mliFjR9Xot@-(U3PjG!z9C zQU78-kSISGUm_reME*h_n5+(o>JS4Wae3S?MEFI%M*$Hy8LeEX}0VvYJGTL}2Eih8an*bwIT}hxpRHgz+ z5?~;7(-f5Gf-IHKGI^OD5x)*d6!|3rI4U2+*^@wyonIrUQ~a@6B3T&+aAJQdJA56O zPZ1yz9gA)2w2k+L1z8=EmJ!~UB)MEkY9P`}iNGM*qbi-EIw~sE6gC8U;RR!1u!LC& zoOF#DimBA;=+gC>CMnXi*Qb|1B$HjR`VJTn0l&UZzv!pb5Z{=}6*935=w6 zOo5S3wnpZ&sqdn?Bt8)-u4gBKT*3E|Zgi2Bk7{QsA%L zbV=(n-c5aA)F&VpV3Z7sazbCcQeA)~lUJ4T!BQ@#(kt>aqAT_Wg~$i?QwPlCrOQO8 zir*ASiLWhXcsZa$JLTeu%zVb9t2bUJpGOq+O9Tc~0HbR!J`tO5w;I4iUxk$e6ftNL z0XY@u;rmDogkt?c;<7Ad#uB-Z3D7WQ(g8Hm-V=N#*`*AthSMC24nWJ;XFB2>uro8Q z6zGGVKJ62!K~YZtQGyYos8h)abqPR#62OS`vT{tF$@&}$(7*wYn0y*tDmhu5DZeRj zi+@rBes+$LX!3QGq9B4T6RzzO;pqSa7JTsMk_p#bS@K`BKazO5$2!jerkfLBAHpy9JL!qN1BR7(wPQWW`x9aA|Lb|T2@M~5( zed<%2k?e1$&^iS&tVs{CObC(Jn@0Wb+5iHPJ_{VX6#%BHY#j4mOdlIe)* zN@`CYz(^%0s*3^}c^ykp5JV&VQBcF`jspQ6FvRss?2tIv0C=5oy)xS!e?@P$@%-^s zlz6_VJkWjZUe&g^9@V@ezP+sOTmX@1wRk0&L_t#zMS)(>TB@kip_p5yIuu|eH!=iM zNx<`tFYh4)1KeW27QhSI;1FT+1VK#+!1!8VCsl{qmeBchWe@Rv550zsJpU{Pkp zO#M>vC&{s-YEK*p@Bv#ieAW3>Wp3mXruiW?2At5Yez_eM*eJ3?gtx_hCjE8!0zH1D zZ$x@nehBKKJR-^(YdBIq7ScwD)ZDZ8{<+6;1Gw17*U>lywR;Bg{x8 r^#iLzhes25nKAUi&dW?0A;|v+tMvTyrkq%B- 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/notification.png b/en/application-dev/notification/figures/notification.png deleted file mode 100644 index 18dcb99b0c531a19698f749105d88db91043837a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67444 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�&3cSmmm_$Jc~fi(^je`${#= zs9gt$rIX)o+j~x?!-?yLDsymhVz^*-_u6AULe=k76zF=kvztJs^ruR#tA?@4<)EIzTJ_l_KmGnP&#>^OpB3w@MIg}0XG{7l!s|ylqv#@rL!)U;6eVSZ;Axdj01e_36Vc zxZ?6{D7>uVS7G zqo4kGr(9gtnPCpU+aK0_@#rgMVDl=S0t`5q4&}T2gFE-UJRswPCJk=D-#rcv#gT5K zFGKmvE5w-MmiNEjH18a~!NW!KLw4;bffMvTq2hGer1J^LNP<0_duF~5y->f)F#;>w z26)#7njMxJ2E@f#_Lkckm!+wl(Y)m*v-#CTo^G}PS!Am6uxM8sHB8~BQlcM5EWX7- zibnF_b;>$x8XLDRPc*lQSdavC7&$RzsNe+cIY@o~Io=n0gD~W2efYhI$u9LebzK$V z<5)U-9%!JjxNEag*PAU>oi#@VrdsJ^*c5w_>=&&1R7DMk?WfBTTu(owA>X$~Q(0nw z1T-oVEHp8P<=%r+Cbvcz`<35e(Oq$^U}RII>glafdd;x^8eqERgW`zB@=b`~iSA9k zO#VjlQBH%FhwuN^dPCrKqJw~x@p@1(dJo`lrZudt$Ezjgh}KjgJv`%KD*397;XgdU~#dKafw~gc$h1n`H;P! zUCcrkm*sKNC<&ucdodBWmH%BV8@||=2jafoa;Rf1n&hBDyP{BUfs`io8;Cy9t~abKa_3^@4_2^TS0_QFl1dTL> zh0#All#KU%igs}#mSv^=Lc{+4o4&9HWLXq*O_@C8a`>dc`Xh`w7KoOCJR8$G@aLrm$on1jdN<854#J^$-wjqXkNd+OGo@&58yFF$D2}Ti-W&G>22`j^C;1<@?H0!x80ObXUXwm2l~a1G z`W}AKEEp1P?x^j~r#V23E+=)-tSkKf>80QMpXCK~n^xTqXUc8rU-1M3A6j2Ri7_OI5rq*H z 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 mOA7krc6Q1C@f}OCt!**NOTE**
        This is a system API and cannot be called by third-party applications. | +| setNotificationEnable(bundle: BundleOption, enable: boolean, callback: AsyncCallback<void>): void | Sets whether to enable notification. Notification can be enabled or disabled in **Notifications** of the target application under **Settings** > **Apps & services** > **Apps**.
        **NOTE**
        This is a system API and cannot be called by third-party applications.| +| requestEnableNotification(callback: AsyncCallback<void>): void | Requests notification to be enabled. When called for the first time, this API displays a dialog box prompting the user to enable notification. | + + +## How to Develop + +1. Import the **NotificationManager** module. + + ```ts + import notificationManager from '@ohos.notificationManager'; + ``` + +2. Call the API to request notification to be enabled. + + ```ts + notificationManager.requestEnableNotification().then(() => { + console.info(`[ANS] requestEnableNotification success`); + }).catch((err) => { + console.error(`[ANS] requestEnableNotification failed, errCode[${err}]`); + }); + ``` diff --git a/en/application-dev/notification/notification-guidelines.md b/en/application-dev/notification/notification-guidelines.md deleted file mode 100644 index fb73f27420..0000000000 --- a/en/application-dev/notification/notification-guidelines.md +++ /dev/null @@ -1,258 +0,0 @@ - - -# Notification Development - -## When to Use - -OpenHarmony uses the Advanced Notification Service (ANS) to manage notifications, with support for various notification types, including text, long text, multi-text, image, social, and media. All system services and applications can send notifications through the notification API. Users can view all notifications on the system UI. - -Below are some typical use cases for notifications: - -- Display received SMS messages and instant messages. -- Display push messages of applications, such as advertisements and version updates. -- Display ongoing events, such as navigation information and download progress. - - - -## Notification Service Process - -The notification service process involves the ANS subsystem, notification sender, and notification subscriber. - -A notification is generated by the notification sender and sent to the ANS through inter-process communication (IPC). The ANS then distributes the notification to the notification subscriber. - -System applications also support notification-related configuration options, such as switches. The system configuration initiates a configuration request and sends the request to the ANS for storage in the memory and database. - -![1648113187545](figures/notification.png) - - - -## Available APIs - -Certain APIs can be called only by system applications that have been granted the **SystemCapability.Notification.Notification** permission. The APIs use either a callback or promise to return the result. The tables below list the APIs that use a callback, which provide the same functions as their counterparts that use a promise. For details about the APIs, see the [API document](../reference/apis/js-apis-notification.md). - -**Table 1** APIs for notification enabling - -| API | Description | -| ------------------------------------------------------------ | ---------------- | -| isNotificationEnabled(bundle: BundleOption, callback: AsyncCallback\): void | Checks whether notification is enabled.| -| enableNotification(bundle: BundleOption, enable: boolean, callback: AsyncCallback\): void | Sets whether to enable notification. | - -If the notification function of an application is disabled, it cannot send notifications. - - - -**Table 2** APIs for notification subscription - -| API | Description | -| ------------------------------------------------------------ | ---------------- | -| subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback\): void | Subscribes to a notification with the subscription information specified.| -| subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback\): void | Subscribes to all notifications. | -| unsubscribe(subscriber: NotificationSubscriber, callback: AsyncCallback\): void | Unsubscribes from a notification. | - -The subscription APIs support subscription to all notifications and notifications from specific applications. - - - -**Table 3** Notification subscription callbacks - -| API | Description | -| ------------------------------------------------ | ---------------- | -| onConsume?:(data: SubscribeCallbackData) => void | Callback for receiving notifications. | -| onCancel?:(data: SubscribeCallbackData) => void | Callback for canceling notifications. | -| onUpdate?:(data: NotificationSortingMap) => void | Callback for notification sorting updates.| -| onConnect?:() => void; | Callback for subscription. | -| onDisconnect?:() => void; | Callback for unsubscription. | - - - -**Table 4** APIs for notification sending - -| API | Description | -| ------------------------------------------------------------ | ------------------------ | -| publish(request: NotificationRequest, callback: AsyncCallback\): void | Publishes a notification. | -| publish(request: NotificationRequest, userId: number, callback: AsyncCallback\): void | Publishes a notification to the specified user. | -| cancel(id: number, label: string, callback: AsyncCallback\): void | Cancels a specified notification. | -| cancelAll(callback: AsyncCallback\): void; | Cancels all notifications published by the application.| - -The **publish** API that carries **userId** can be used to publish notifications to subscribers of a specified user. - - - -## Development Guidelines - -The notification development process generally involves three aspects: subscribing to notifications, enabling the notification feature, and publishing notifications. - -### Modules to Import - -```js -import Notification from '@ohos.notification'; -``` - - - -### Subscribing to Notifications - -The notification recipient preferentially initiates a notification subscription request to the notification subsystem. - -```js -var subscriber = { - onConsume: function (data) { - let req = data.request; - console.info('===>onConsume callback req.id: ' + req.id); - }, - onCancel: function (data) { - let req = data.request; - console.info('===>onCancel callback req.id: : ' + req.id); - }, - onUpdate: function (data) { - console.info('===>onUpdate in test===>'); - }, - onConnect: function () { - console.info('===>onConnect in test===>'); - }, - onDisconnect: function () { - console.info('===>onDisConnect in test===>'); - }, - onDestroy: function () { - console.info('===>onDestroy in test===>'); - }, - }; - - Notification.subscribe(subscriber, (err, data) => { // This API uses an asynchronous callback to return the result. - if (err.code) { - console.error('===>failed to subscribe because ' + JSON.stringify(err)); - return; - } - console.info('===>subscribeTest success : ' + JSON.stringify(data)); - }); -``` - - - -### Publishing Notifications - -##### Enabling Notification - -Before publishing a notification, check whether the notification feature is enabled for your application. By default, the feature is disabled. The application calls **Notification.requestEnableNotification** to prompt the user to enable the feature. - -```js -Notification.requestEnableNotification().then((data) => { - console.info('===>requestEnableNotification success'); -}).catch((err) => { - console.error('===>requestEnableNotification failed because ' + JSON.stringify(err)); -}); -``` - - - -##### Publishing Notifications - -To publish a notification, create a **NotificationRequest** object and set attributes such as the notification type, title, and content. In the following examples, a normal text notification and a notification containing a **WantAgent** are being published. - -Normal text notification: - -```js -// Create a NotificationRequest object. -var notificationRequest = { - id: 1, - content: { - contentType: Notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, - normal: { - title: "test_title", - text: "test_text", - additionalText: "test_additionalText" - } - } -} - -// Publish the notification. -Notification.publish(notificationRequest).then((data) => { - console.info('===>publish promise success req.id : ' + notificationRequest.id); -}).catch((err) => { - console.error('===>publish promise failed because ' + JSON.stringify(err)); -}); -``` - - - -Notification containing **WantAgent**: - -For details about how to use **WantAgent**, see [WantAgent Development](https://gitee.com/openharmony/docs/blob/master/en/application-dev/ability/wantagent.md). - -- Create a **WantAgent** object. - -```js -import wantAgent from '@ohos.wantAgent'; - -// WantAgentInfo object -var wantAgentInfo = { - wants: [ - { - bundleName: 'ohos.samples.eTSNotification', - abilityName: 'ohos.samples.eTSNotification.MainAbility', - } - ], - operationType: wantAgent.OperationType.START_ABILITY, - requestCode: 0, - wantAgentFlags:[wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] -} - -// WantAgent object -var WantAgent; - -// getWantAgent callback -function getWantAgentCallback(err, data) { - console.info("===>getWantAgentCallback===>"); - if (err.code == 0) { - WantAgent = data; - } else { - console.info('----getWantAgent failed!----'); - } -} - -// Obtain the WantAgent object. -wantAgent.getWantAgent(wantAgentInfo, getWantAgentCallback) -``` - -- Publish the notification. - -```js -// Create a NotificationRequest object. -var notificationRequest = { - content: { - contentType: Notification.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, - normal: { - title: "AceApplication_Title", - text: "AceApplication_Text", - additionalText: "AceApplication_AdditionalText" - }, - }, - id: 1, - label: 'TEST', - wantAgent: WantAgent, - slotType: Notification.SlotType.OTHER_TYPES, - deliveryTime: new Date().getTime() -} - -// Publish the notification. -Notification.publish(notificationRequest).then((data) => { - console.info('===>publish promise success req.id : ' + notificationRequest.id); -}).catch((err) => { - console.error('===>publish promise failed because ' + JSON.stringify(err)); -}); -``` - - - -- Cancel the notification. - -An application can cancel a single notification or all notifications. An application can cancel only the notifications published by itself. - -```js -// cancel callback -function cancelCallback(err) { - console.info("===>cancelCallback===>"); -} - -Notification.cancel(1, "label", cancelCallback) -``` diff --git a/en/application-dev/notification/notification-overview.md b/en/application-dev/notification/notification-overview.md new file mode 100644 index 0000000000..6bef8be8fd --- /dev/null +++ b/en/application-dev/notification/notification-overview.md @@ -0,0 +1,27 @@ +# Notification Overview + + +## Introduction + +All system applications and services can publish notifications through the notification APIs. Users can view the notifications in the notification panel or click a notification to open the publishing application. + +Below are some typical use cases for notifications: + +- Display received SMS messages and instant messages. + +- Display push messages, such as advertisements and version updates. + +- Display ongoing events, such as the download progress. + +The Advanced Notification Service (ANS) in OpenHarmony is used to manage notifications of various types, such as basic notifications, progress notifications, and reminders published through the background agent. + + +## Notification Service Process + +The notification service process involves the notification subsystem, notification sender, and notification subscriber. + +A notification is generated by the notification sender and sent to the notification subsystem through [inter-process communication (IPC)](../connectivity/ipc-rpc-overview.md). The notification subsystem then distributes the notification to the notification subscriber. + +System applications also support notification-related configuration options, such as switches. The system configuration initiates a configuration request and sends the request to the notification subsystem for storage in the memory and database. + +![en-us_image_0000001466582017](figures/en-us_image_0000001466582017.png) diff --git a/en/application-dev/notification/notification-subscription.md b/en/application-dev/notification/notification-subscription.md new file mode 100644 index 0000000000..a633a2bb95 --- /dev/null +++ b/en/application-dev/notification/notification-subscription.md @@ -0,0 +1,82 @@ +# Notification Subscription (Open Only to System Applications) + + +To receive notifications, an application must subscribe to notifications first. The notification subsystem provides two types of subscription APIs, allowing applications to subscribe to notifications from all applications or notifications from a specific application. + + +You can use the **NotificationSubscriber** object to provide callbacks for subscription events, such as subscription success, notification reception, notification cancellation, and subscription cancellation. + + +## Available APIs + +The major APIs for notification subscription are described as follows. For details about the APIs, see [@ohos.notificationSubscribe](../reference/apis/js-apis-notificationSubscribe.md). + +**Table 1** Major APIs for notification subscription + +| Name | Description| +| -------- | -------- | +| subscribe(subscriber: NotificationSubscriber, info: NotificationSubscribeInfo, callback: AsyncCallback<void>): void | Subscribes to notifications from a specific application.| +| subscribe(subscriber: NotificationSubscriber, callback: AsyncCallback<void>): void | Subscribes to notifications from all applications. | + +**Table 2** Callbacks for notification subscription + +| Name | Description| +| -------- | -------- | +| onConsume?:(data: SubscribeCallbackData) => void | Callback for receiving notifications. | +| onCancel?:(data: SubscribeCallbackData) => void | Callback for canceling notifications. | +| onUpdate?:(data: NotificationSortingMap) => void | Callback for notification sorting updates. | +| onConnect?:() => void; | Callback for subscription. | +| onDisconnect?:() => void; | Callback for unsubscription. | +| onDestroy?:() => void | Callback for disconnecting from the notification subsystem. | +| onDoNotDisturbDateChange?:(mode: notification.DoNotDisturbDate) => void | Callback for the Do Not Disturb (DNT) time changes.| +| onEnabledNotificationChanged?:(callbackData: EnabledNotificationCallbackData) => void | Callback for notification switch changes. | + + +## How to Develop + +1. Request the **ohos.permission.NOTIFICATION_CONTROLLER** permission. For details, see [Permission Application Guide](../security/accesstoken-guidelines.md#declaring-permissions-in-the-configuration-file). + +2. Import the **notificationSubscribe** module. + + ```ts + import notificationSubscribe from '@ohos.notificationSubscribe'; + ``` + +3. Create a **subscriber** object. + + ```ts + let subscriber = { + onConsume: function (data) { + let req = data.request; + console.info('[ANS] onConsume callback req.id: ' + req.id); + }, + onCancel: function (data) { + let req = data.request; + console.info('[ANS] onCancel callback req.id: : ' + req.id); + }, + onUpdate: function (data) { + console.info('[ANS] onUpdate in test'); + }, + onConnect: function () { + console.info('[ANS] onConnect in test'); + }, + onDisconnect: function () { + console.info('[ANS] onDisConnect in test'); + }, + onDestroy: function () { + console.info('[ANS] onDestroy in test'); + }, + }; + ``` + +4. Initiate notification subscription. + + ```ts + notificationSubscribe.subscribe(subscriber, (err, data) => { // This API uses an asynchronous callback to return the result. + if (err) { + console.error(`[ANS] failed to subscribe, error[${err}]`); + return; + } + console.info(`[ANS] subscribeTest success : + ${data}`); + }); + ``` diff --git a/en/application-dev/notification/notification-with-wantagent.md b/en/application-dev/notification/notification-with-wantagent.md new file mode 100644 index 0000000000..d8f0321d28 --- /dev/null +++ b/en/application-dev/notification/notification-with-wantagent.md @@ -0,0 +1,121 @@ +# Adding a WantAgent Object to a Notification + +A [WantAgent](../reference/apis/js-apis-app-ability-wantAgent.md) object encapsulates an intention to start a specified ability, release a common event, and more. In OpenHarmony, a **WantAgent** object can be passed in a notification from the publisher to the subscriber, so as to trigger the intention specified. For example, you may want the user to start a specific ability by touching the notification published by your application. In this case, you can add a **WantAgent** object that encapsulates such an action to the notification. After receiving the **WantAgent** object, the system triggers it once the user touches the notification from the notification panel, starting the specified ability. + +Below you can see the process of adding a **WantAgent** object to a notification. The notification publisher requests a **WantAgent** object from the Ability Manager Service (AMS), and then sends a notification carrying the **WantAgent** object to the home screen. When the user touches the notification from the notification panel on the home screen, the **WantAgent** object is triggered. + + **Figure 1** Publishing a notification with a WantAgent object +![notification-with-wantagent](figures/notification-with-wantagent.png) + + +## Available APIs + +For details about the APIs, see [@ohos.app.ability.wantAgent](../reference/apis/js-apis-app-ability-wantAgent.md). + +| Name| Description| +| -------- | -------- | +| getWantAgent(info: WantAgentInfo, callback: AsyncCallback<WantAgent>): void | Creates a **WantAgent** object.| +| trigger(agent: WantAgent, triggerInfo: TriggerInfo, callback?: Callback<CompleteData>): void | Triggers a **WantAgent** object.| +| cancel(agent: WantAgent, callback: AsyncCallback<void>): void | Cancels a **WantAgent** object.| +| getWant(agent: WantAgent, callback: AsyncCallback<Want>): void | Obtains a **WantAgent** object.| +| equal(agent: WantAgent, otherAgent: WantAgent, callback: AsyncCallback<boolean>): void | Checks whether two **WantAgent** objects are equal. | + + +## How to Develop + +1. [Enable notification](notification-enable.md). An application can use the notification feature only after being authorized by the user. + +2. Import the modules. + + ```typescript + import notificationManager from '@ohos.notificationManager'; + import wantAgent from '@ohos.app.ability.wantAgent'; + ``` + +3. Create a **WantAgentInfo** object. + + Scenario 1: Create a [WantAgentInfo](../reference/apis/js-apis-inner-wantAgent-wantAgentInfo.md) object for starting a UIAbility component. + + ```typescript + let wantAgentObj = null; // Save the WantAgent object created. It will be used to complete the trigger operations. + + // Set the action type through operationType of WantAgentInfo. + let wantAgentInfo = { + wants: [ + { + deviceId: '', + bundleName: 'com.example.myapplication', + abilityName: 'EntryAbility', + action: '', + entities: [], + uri: '', + parameters: {} + } + ], + operationType: wantAgent.OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[wantAgent.WantAgentFlags.CONSTANT_FLAG] + }; + ``` + + Scenario 2: Create a [WantAgentInfo](../reference/apis/js-apis-inner-wantAgent-wantAgentInfo.md) object for publishing a [common event](../application-models/common-event-overview.md). + + ```typescript + let wantAgentObj = null; // Save the WantAgent object created. It will be used to complete the trigger operations. + + // Set the action type through operationType of WantAgentInfo. + let wantAgentInfo = { + wants: [ + { + action: 'event_name', // Set the action name. + parameters: {}, + } + ], + operationType: wantAgent.OperationType.SEND_COMMON_EVENT, + requestCode: 0, + wantAgentFlags: [wantAgent.WantAgentFlags.CONSTANT_FLAG], + } + ``` + +4. Invoke the [getWantAgent()](../reference/apis/js-apis-app-ability-wantAgent.md#wantagentgetwantagent) API to create a **WantAgent** object. + + ```typescript + // Create a WantAgent object. + wantAgent.getWantAgent(wantAgentInfo, (err, data) => { + if (err) { + console.error('[WantAgent]getWantAgent err=' + JSON.stringify(err)); + return; + } + console.info('[WantAgent]getWantAgent success'); + wantAgentObj = data; + }); + ``` + +5. Create a **NotificationRequest** object and publish a notification that carries the **WantAgent** object. + + ```typescript + // Create a NotificationRequest object. + let notificationRequest = { + content: { + contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: 'Test_Title', + text: 'Test_Text', + additionalText: 'Test_AdditionalText', + }, + }, + id: 1, + label: 'TEST', + wantAgent: wantAgentObj, + } + + notificationManager.publish(notificationRequest, (err) => { + if (err) { + console.error(`[ANS] failed to publish, error[${err}]`); + return; + } + console.info(`[ANS] publish success`); + }); + ``` + +6. When the user touches the notification from the notification panel, the system automatically triggers the action specified in the **WantAgent** object. diff --git a/en/application-dev/notification/progress-bar-notification.md b/en/application-dev/notification/progress-bar-notification.md new file mode 100644 index 0000000000..de430008e3 --- /dev/null +++ b/en/application-dev/notification/progress-bar-notification.md @@ -0,0 +1,69 @@ +# Publishing a Progress Notification + + +The progress notification is a commonly used notification type, mainly used to display the progress of an ongoing operation, such as file downloading. When publishing a progress notification through the notification subsystem, you can use the readily available template by specifying the related attributes, such as the template name and template data. + +In the [NotificationTemplate](../reference/apis/js-apis-notificationManager.md#notificationtemplate), which can only be of the progress type, **data** indicates custom template data. + + +## Available APIs + +| Name| Description| +| -------- | -------- | +| isSupportTemplate(templateName: string, callback: AsyncCallback<boolean>): void | Checks whether a specific template is supported. This API uses an asynchronous callback to return the result.
        Only the progress-type template is supported.| + + +## How to Develop + +1. [Enable notification](notification-enable.md). An application can use the notification feature only after being authorized by the user. + +2. Import the module. + + ```ts + import notificationManager from '@ohos.notificationManager'; + ``` + +3. Check whether a specific template is supported. In this example, the template of the **downloadTemplate** type is checked. + + ```ts + notificationManager.isSupportTemplate('downloadTemplate').then((data) => { + console.info(`[ANS] isSupportTemplate success`); + let isSupportTpl: boolean = data; // The value **true** means that the template of the **downloadTemplate** type is supported; and false means the opposite. + // ... + }).catch((err) => { + console.error(`[ANS] isSupportTemplate failed, error[${err}]`); + }); + ``` + + > **NOTE** + > + > Proceed with the step below only when the specified template is supported. +4. Create a **NotificationRequest** object and publish a progress notification. + + ```ts + let notificationRequest = { + id: 1, + content: { + contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, + normal: { + title: 'test_title', + text: 'test_text', + additionalText: 'test_additionalText' + } + }, + // Create a progress template. The name field has a fixed value of downloadTemplate. + template: { + name: 'downloadTemplate', + data: { title: 'File Title', fileName: 'music.mp4', progressValue: 45 } + } + } + + // Publish the notification. + notificationManager.publish(notificationRequest, (err) => { + if (err) { + console.error(`[ANS] failed to publish, error[${err}]`); + return; + } + console.info(`[ANS] publish success `); + }); + ``` diff --git a/en/application-dev/notification/text-notification.md b/en/application-dev/notification/text-notification.md new file mode 100644 index 0000000000..ddbc5478ce --- /dev/null +++ b/en/application-dev/notification/text-notification.md @@ -0,0 +1,160 @@ +# Publishing a Basic Notification + + +You can publish basic notifications to send SMS messages, prompt messages, and advertisements. Available content types of basic notifications include normal text, long text, multi-line text, and picture-attached. + + + **Table 1** Basic notification content types + +| Type| Description| +| -------- | -------- | +| NOTIFICATION_CONTENT_BASIC_TEXT | Normal text notification.| +| NOTIFICATION_CONTENT_LONG_TEXT | Long text notification.| +| NOTIFICATION_CONTENT_MULTILINE | Multi-line text notification.| +| NOTIFICATION_CONTENT_PICTURE | Picture-attached notification.| + + +Notifications are displayed in the notification panel, which is the only system subscriber to notifications. Below you can see two examples of the basic notification. + +**Figure 1** Examples of the basic notification +![en-us_image_0000001466462305](figures/en-us_image_0000001466462305.png) + + +## Available APIs + +The following table describes the APIs for notification publishing. You specify the notification type by setting the [NotificationRequest](../reference/apis/js-apis-notificationManager.md#notificationrequest) parameter in the APIs. + +| Name| Description| +| -------- | -------- | +| publish(request: NotificationRequest, callback: AsyncCallback<void>): void | Publishes a notification. | +| cancel(id: number, label: string, callback: AsyncCallback<void>): void | Cancels a notification. | +| cancelAll(callback: AsyncCallback<void>): void; | Cancels all notifications published by the application.| + + +## How to Develop + +1. [Enable notification](notification-enable.md). An application can use the notification feature only after being authorized by the user. + +2. Import the module. + + ```ts + import notificationManager from '@ohos.notificationManager'; + ``` + +3. Create a **NotificationRequest** object and publish a progress notification. + - A normal text notification consists of the **title**, **text**, and **additionalText** parameters, of which **title** and **text** are mandatory. The value of these parameters contains less than 200 bytes. + + ```ts + let notificationRequest = { + id: 1, + content: { + contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, // Basic notification + normal: { + title: 'test_title', + text: 'test_text', + additionalText: 'test_additionalText', + } + } + } + + notificationManager.publish(notificationRequest, (err) => { + if (err) { + console.error(`[ANS] failed to publish, error[${err}]`); + return; + } + console.info(`[ANS] publish success`); + }); + ``` + + Below is an example of the normal text notification. + ![en-us_image_0000001466782033](figures/en-us_image_0000001466782033.png) + - In addition to the parameters in the normal text notification, the long text notification provides the **longText**, **briefText**, and **expandedTitle** parameters. The value of **longText** contains a maximum of 1024 bytes, while that of any other parameters contains less than 200 bytes. By default, a long-text notification looks in the same way as a normal text notification. When expanded, the notification displays the title and content specified in **expandedTitle** and **longText**, respectively. + + ```ts + let notificationRequest = { + id: 1, + content: { + contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_LONG_TEXT, // Long-text notification + longText: { + title: 'test_title', + text: 'test_text', + additionalText: 'test_additionalText', + longText: 'test_longText', + briefText: 'test_briefText', + expandedTitle: 'test_expandedTitle', + } + } + } + + // Publish the notification. + notificationManager.publish(notificationRequest, (err) => { + if (err) { + console.error(`[ANS] failed to publish, error[${err}]`); + return; + } + console.info(`[ANS] publish success`); + }); + ``` + + Below is an example of the long-text notification. + ![en-us_image_0000001416745530](figures/en-us_image_0000001416745530.png) + - In addition to the parameters in the normal text notification, the multi-line text notification provides the **lines**, **briefText**, and **longTitle** parameters. The value of these parameters contains less than 200 bytes. By default, a multi-line notification looks in the same way as a normal text notification. When expanded, the notification displays the title and content specified in **longTitle** and **lines**, respectively. + + ```ts + let notificationRequest = { + id: 1, + content: { + contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_MULTILINE, // Multi-line text notification + multiLine: { + title: 'test_title', + text: 'test_text', + briefText: 'test_briefText', + longTitle: 'test_longTitle', + lines: ['line_01', 'line_02', 'line_03', 'line_04'], + } + } + } + + // Publish the notification. + notificationManager.publish(notificationRequest, (err) => { + if (err) { + console.error(`[ANS] failed to publish, error[${err}]`); + return; + } + console.info(`[ANS] publish success`); + }); + ``` + + Below is an example of the multi-line notification. + ![en-us_image_0000001417062446](figures/en-us_image_0000001417062446.png) + - In addition to the parameters in the normal text notification, the picture-attached text notification provides the **picture**, **briefText**, and **expandedTitle** parameters. The value of **picture** is a pixel map that does not exceed 2 MB. + + ```ts + let notificationPicture: PixelMap = undefined; // Obtain the pixel map information. + let notificationRequest = { + id: 1, + content: { + contentType: notificationManager.ContentType.NOTIFICATION_CONTENT_PICTURE, + picture: { + title: 'test_title', + text: 'test_text', + additionalText: 'test_additionalText', + briefText: 'test_briefText', + expandedTitle: 'test_expandedTitle', + picture: notificationPicture + } + } + } + + // Publish the notification. + notificationManager.publish(notificationRequest, (err) => { + if (err) { + console.error(`[ANS] failed to publish, error[${err}]`); + return; + } + console.info(`[ANS] publish success `); + }); + ``` + + Below is an example of the picture-attached notification. + ![en-us_image_0000001466582045](figures/en-us_image_0000001466582045.png) -- GitLab From fee6c945b42c911b1b6ad190c97e4b1273a1d6fd Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Mon, 16 Jan 2023 17:38:21 +0800 Subject: [PATCH 281/383] update docs Signed-off-by: Annie_wang --- .../OpenHarmony-security-test-guide.md | 39 +++++++++++++------ en/readme/distributed-data-management.md | 10 ++--- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/en/contribute/OpenHarmony-security-test-guide.md b/en/contribute/OpenHarmony-security-test-guide.md index 074d90c0ca..5b6365eaf4 100644 --- a/en/contribute/OpenHarmony-security-test-guide.md +++ b/en/contribute/OpenHarmony-security-test-guide.md @@ -1,28 +1,43 @@ -# OpenHarmony Secure Test Guide -With reference to industry standards and best practices, this document provides guidelines for secure tests. +# OpenHarmony Security Test Guide +With reference to industry standards and best practices, this document provides specifications for security tests of the OpenHarmony project. +## Security Test Content -## Secure Coding Test +- Review the code of each module according to [OpenHarmony C&C++ Secure Coding Guide](OpenHarmony-c-cpp-secure-coding-guide.md) and fix all issues found in the review. -1. Review the code of each module, and ensure that the code complies with the [Coding Style](./code-contribution.md#coding-style). +- Use the OpenHarmony gated check-in to scan your code and clear all alarms. -2. Use a dedicated tool to scan the code and ensure all the alarms are cleared. A secure code scanning tool has been integrated in the OpenHarmony gated check-in. +- Use the compilation option scanning tool to scan your binary file and ensure that the settings of all the compilation options comply with the [OpenHarmony Compilation Specifications]. +- For the module that receives and processes user-mode parameters, develop gray-box and white-box fuzz testing suites according to the [Fuzz Testing Guide](https://gitee.com/openharmony/test_developertest/tree/master/libs/fuzzlib) and complete the tests. -## Security Design Verification +- Use mainstream vulnerability scanning tools to scan open-source components. Ensure that all the detected vulnerabilities have been fixed according to the vulnerability management process of the community. -Review and verify the security design of each module, and ensure that the security design complies with [OpenHarmony Security Design Specifications](./OpenHarmony-security-design-guide.md). +- Perform consistency check of the released versions, and check that the [released version images](../release-notes/Readme.md) provide the SAH-256 checksum. +- Complete the security design self-check for each module according to [OpenHarmony Security Design Specifications](OpenHarmony-security-design-guide.md). Ensure that all design issues found in the self-check have been fixed. +- Use mainstream viruses scanning software to scan software packages. Ensure that all virus detected have been removed or confirmed as false alarms. -## Security Tests +- Search for ".cer" and ".pem" or keyword such as "PRIVATE KEY" to find the certificate key, and check that the certificate key is within the validity period and the encryption algorithm meets [encryption algorithm requirements](OpenHarmony-security-design-guide.md#3-encryption). Ensure that all certificate key issues have been resolved. -1. For critical modules, develop graybox and whitebox fuzzing test suites based on the [Fuzzing Test Framework](https://gitee.com/openharmony/test_developertest/tree/master/libs/fuzzlib) and complete the tests. +- Perform black-box fuzz testing on exposed user-mode APIs, including system service APIs, kernel driver APIs, socket APIs, and more. -2. Perform blackbox fuzzing tests on exposed user-mode APIs, including system service APIs, kernel driver APIs, socket network APIs, and more. -3. Use a build scanning tool to check the build option settings. The build files must comply with the OpenHarmony Build Specifications. +>**NOTE** +> +>The preceding requirements apply to all new and inherited features. -4. Use the mainstream vulnerability scanning tools to scan open-source components. Ensure that all the detected vulnerabilities have been fixed according to the vulnerability management process of the community. +## Security Test Completion Requirements +The mandatory security test performed before version release is complete only when: + +- All the security tests mentioned in [Security Test Content](#security-test-content) are complete. + +- All security issues have been closed. + +## Security Test Report Template + +- The security test report must contain the security test results in [Security Test Content](#security-test-content) and pending security issues. +- The version security test report is released with the entire test report of the version, instead of being released and archived separately. diff --git a/en/readme/distributed-data-management.md b/en/readme/distributed-data-management.md index ef0edbcf9a..9c60ec0f03 100644 --- a/en/readme/distributed-data-management.md +++ b/en/readme/distributed-data-management.md @@ -5,7 +5,7 @@ **Distributed Data Management Subsystem** -The Distributed Data Management subsystem can persistently store various structured data of a single device and also supports data synchronization and sharing across devices. With the Distributed Data Management subsystem, application data can be seamlessly processed across different devices, ensuring consistent user experience for the same application across devices. +The Distributed Data Management subsystem can persistently store various structured data of a single device. It also supports data synchronization and sharing across devices. With the Distributed Data Management subsystem, application data can be seamlessly processed across devices, ensuring consistent user experience for the same application across devices. **Subsystem Architecture** @@ -47,15 +47,15 @@ The **DataShare** module allows an application to manage its own data and share ### DDS -The Distributed Data Service (DDS) implements distributed database collaboration across devices for applications. The DDS isolates data based on a triplet of the account, application, and database. The DDS synchronizes data between trusted devices to provide users with consistent data access experience on different devices. +The Distributed Data Service (DDS) implements database collaboration across devices for applications. The DDS isolates data based on a triplet of the account, application, and database. The DDS synchronizes data between trusted devices, delivering a consistent data access experience on different devices. ### Preferences -The **Preferences** module allows quick access to data in KV pairs and storage of a small amount of data for local applications. The data is stored in local files and loaded in memory, which allows faster access and higher processing efficiency. Preferences provide non-relational data storage and are not suitable for storing a large amount of data. +The **Preferences** module allows quick access to data in KV pairs and storage of a small amount of data for local applications. The data is stored in local files in KV pairs and loaded in memory, which allows for faster access and higher processing efficiency. Preferences provide non-relational data storage and are not suitable for storing a large amount of data. 1. The **Preferences** module provides APIs for **preferences** operations. -2. You can use **getPreferences()** to load the content of a specified file to a **Preferences** instance. Each file has only one **Preferences** instance. The system stores the instance data in memory through a static container until the app removes the instance from the memory or deletes the file. -3. After obtaining a **Preferences** instance, the app can call the APIs in **Preferences** to read data from or write data to the **Preferences** instance, and call **flush()** to save the instance data to a file. +2. You can use **getPreferences()** to load the content of a specified file to a **Preferences** instance. Each file has only one **Preferences** instance. The system stores the instance data in memory through a static container until the application removes the instance from the memory or deletes the file. +3. After obtaining a **Preferences** instance, the application can call the APIs of **Preferences** to read data from or write data to the **Preferences** instance, and call **flush()** to save the instance data to a file. ### RDB Store -- GitLab From 70e96d041a3fc3b2e4577cf95e0133a041cd4840 Mon Sep 17 00:00:00 2001 From: ge-yafang Date: Mon, 16 Jan 2023 18:14:46 +0800 Subject: [PATCH 282/383] fixed ae35659 from https://gitee.com/ge-yafang/docs/pulls/13660 update docs Signed-off-by: ge-yafang --- en/application-dev/quick-start/figures/02.png | Bin 61663 -> 78673 bytes en/application-dev/quick-start/figures/04.png | Bin 60984 -> 78246 bytes en/application-dev/quick-start/figures/07.png | Bin 68110 -> 77201 bytes .../quick-start/figures/02.png | Bin 61663 -> 78673 bytes .../quick-start/figures/04.png | Bin 60984 -> 78246 bytes .../quick-start/figures/07.png | Bin 68110 -> 77201 bytes 6 files changed, 0 insertions(+), 0 deletions(-) diff --git a/en/application-dev/quick-start/figures/02.png b/en/application-dev/quick-start/figures/02.png index 19dd76ca232282b19883dde63075c5d155e7db70..eef374a1fd63f2b1e4d72e3323e7f4c23f5705fb 100644 GIT binary patch literal 78673 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

        R1 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 literal 61663 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 diff --git a/en/application-dev/quick-start/figures/04.png b/en/application-dev/quick-start/figures/04.png index cf23d17c7ee8552e30a5b234c97862b51981dcf8..1190d1e5aa631b12171632d258e4c4fae32e9bba 100644 GIT binary patch literal 78246 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

        0i$(BYzUDl?u{eI@+6{q4{h;2! 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 ZDz?@71T=Y6nh$`-YZ+zf5=le9{{S!SY}Eh& literal 60984 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 k46IgaAzAMWyh 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 MjH-0Cq*=)S07TcCivR!s diff --git a/en/application-dev/quick-start/figures/07.png b/en/application-dev/quick-start/figures/07.png index 0f34d01d824ae1780c73cade9a39fff5f4b9b84e..17f2b060d300667ff250935b6a37485843e854ce 100644 GIT binary patch literal 77201 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 Cy)Ur< literal 68110 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

        SxBR1ccpiau~^a0qxL)NBucz_*=vI^yQ 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 diff --git a/zh-cn/application-dev/quick-start/figures/02.png b/zh-cn/application-dev/quick-start/figures/02.png index 19dd76ca232282b19883dde63075c5d155e7db70..eef374a1fd63f2b1e4d72e3323e7f4c23f5705fb 100644 GIT binary patch literal 78673 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

        R1 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 literal 61663 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 diff --git a/zh-cn/application-dev/quick-start/figures/04.png b/zh-cn/application-dev/quick-start/figures/04.png index cf23d17c7ee8552e30a5b234c97862b51981dcf8..1190d1e5aa631b12171632d258e4c4fae32e9bba 100644 GIT binary patch literal 78246 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

        0i$(BYzUDl?u{eI@+6{q4{h;2! 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 ZDz?@71T=Y6nh$`-YZ+zf5=le9{{S!SY}Eh& literal 60984 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 k46IgaAzAMWyh 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 MjH-0Cq*=)S07TcCivR!s diff --git a/zh-cn/application-dev/quick-start/figures/07.png b/zh-cn/application-dev/quick-start/figures/07.png index 0f34d01d824ae1780c73cade9a39fff5f4b9b84e..17f2b060d300667ff250935b6a37485843e854ce 100644 GIT binary patch literal 77201 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 Cy)Ur< literal 68110 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

        SxBR1ccpiau~^a0qxL)NBucz_*=vI^yQ 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 -- GitLab From 5dec9444d64a0a1f3f78a9c15cf14f8a63b09c42 Mon Sep 17 00:00:00 2001 From: yamila Date: Mon, 9 Jan 2023 18:22:50 +0800 Subject: [PATCH 283/383] update ui-ts-newGridContainer Signed-off-by: yamila --- .../quick-start/arkts-rendering-control.md | 2 +- .../reference/apis/js-apis-curve.md | 2 +- .../reference/apis/js-apis-router.md | 263 ++++++++---------- .../reference/apis/js-apis-system-router.md | 6 +- .../reference/arkui-ts/figures/animateTo.gif | Bin 1430126 -> 0 bytes .../arkui-ts/figures/animationComponent1.png | Bin 0 -> 88805 bytes .../arkui-ts/figures/animationComponent2.png | Bin 0 -> 2091 bytes .../arkui-ts/figures/animationComponent3.png | Bin 0 -> 97041 bytes .../arkui-ts/figures/animationComponent4.png | Bin 0 -> 63654 bytes .../arkui-ts/ts-container-listitem.md | 2 +- .../reference/arkui-ts/ts-container-scroll.md | 2 +- .../ts-transition-animation-component.md | 18 +- .../ui/ui-ts-building-data-model.md | 2 +- .../ui/ui-ts-layout-grid-container-new.md | 20 +- 14 files changed, 151 insertions(+), 166 deletions(-) delete mode 100644 zh-cn/application-dev/reference/arkui-ts/figures/animateTo.gif create mode 100644 zh-cn/application-dev/reference/arkui-ts/figures/animationComponent1.png create mode 100644 zh-cn/application-dev/reference/arkui-ts/figures/animationComponent2.png create mode 100644 zh-cn/application-dev/reference/arkui-ts/figures/animationComponent3.png create mode 100644 zh-cn/application-dev/reference/arkui-ts/figures/animationComponent4.png diff --git a/zh-cn/application-dev/quick-start/arkts-rendering-control.md b/zh-cn/application-dev/quick-start/arkts-rendering-control.md index f1f9ca3657..b9cc90f0b0 100644 --- a/zh-cn/application-dev/quick-start/arkts-rendering-control.md +++ b/zh-cn/application-dev/quick-start/arkts-rendering-control.md @@ -267,7 +267,7 @@ struct MyComponent { > > - 生成的子组件必须是允许包含在LazyForEach父容器组件中的子组件。 > -> - 允许LazyForEach包含在if/else条件渲染语句中,但不允许LazyForEach中出现if/else条件渲染语句。 +> - 允许LazyForEach包含在if/else条件渲染语句中。 > > - 为了高性能渲染,通过DataChangeListener对象的onDataChange方法来更新UI时,仅当itemGenerator中创建的子组件内使用了状态变量时,才会触发组件刷新。 > diff --git a/zh-cn/application-dev/reference/apis/js-apis-curve.md b/zh-cn/application-dev/reference/apis/js-apis-curve.md index df2ac9f009..51af65f7cc 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-curve.md +++ b/zh-cn/application-dev/reference/apis/js-apis-curve.md @@ -58,7 +58,7 @@ stepsCurve(count: number, end: boolean):ICurve | 参数名 | 类型 | 必填 | 说明 | | ------ | ------- | ----| ------------------------------------------------------------ | | count | number | 是 | 阶梯的数量,需要为正整数。 | -| end | boolean | 是 | 在每个间隔的起点或是终点发生阶跃变化。
        -true:在终点发生阶跃变化。
        -false:在起点发生阶跃变化。 | +| end | boolean | 是 | 在每个间隔的起点或是终点发生阶跃变化。
        -true:在终点发生阶跃变化。
        -false:在起点发生阶跃变化。 | **返回值:** diff --git a/zh-cn/application-dev/reference/apis/js-apis-router.md b/zh-cn/application-dev/reference/apis/js-apis-router.md index 8318a21c28..f4bc252e65 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-router.md +++ b/zh-cn/application-dev/reference/apis/js-apis-router.md @@ -32,7 +32,7 @@ pushUrl(options: RouterOptions): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -47,25 +47,21 @@ pushUrl(options: RouterOptions): Promise<void> **示例:** ```js -try { - router.pushUrl({ - url: 'pages/routerpage2', - params: { - data1: 'message', - data2: { - data3: [123, 456, 789] - } +router.pushUrl({ + url: 'pages/routerpage2', + params: { + data1: 'message', + data2: { + data3: [123, 456, 789] } + } +}) + .then(() => { + // success + }) + .catch(err => { + console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); }) - .then(() => { - // success - }) - .catch(err => { - console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); - }) -} catch (error) { - console.error(`pushUrl args error code is ${error.code}, message is ${error.message}`); -}; ``` ## router.pushUrl9+ @@ -81,7 +77,7 @@ pushUrl(options: RouterOptions, callback: AsyncCallback<void>): void | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | --------- | | options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -96,25 +92,21 @@ pushUrl(options: RouterOptions, callback: AsyncCallback<void>): void **示例:** ```js -try { - router.pushUrl({ - url: 'pages/routerpage2', - params: { - data1: 'message', - data2: { - data3: [123, 456, 789] - } - } - }, (err) => { - if (err) { - console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); - return; +router.pushUrl({ + url: 'pages/routerpage2', + params: { + data1: 'message', + data2: { + data3: [123, 456, 789] } - console.info('pushUrl success'); - }); -} catch (error) { - console.error(`pushUrl args error code is ${error.code}, message is ${error.message}`); -}; + } +}) + .then(() => { + // success + }) + .catch(err => { + console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); + }) ``` ## router.pushUrl9+ @@ -135,7 +127,7 @@ pushUrl(options: RouterOptions, mode: RouterMode): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -150,25 +142,21 @@ pushUrl(options: RouterOptions, mode: RouterMode): Promise<void> **示例:** ```js -try { - router.pushUrl({ - url: 'pages/routerpage2', - params: { - data1: 'message', - data2: { - data3: [123, 456, 789] - } +router.pushUrl({ + url: 'pages/routerpage2', + params: { + data1: 'message', + data2: { + data3: [123, 456, 789] } - }, router.RouterMode.Standard) - .then(() => { - // success - }) - .catch(err => { - console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); - }) -} catch (error) { - console.error(`pushUrl args error code is ${error.code}, message is ${error.message}`); -}; + } +}, router.RouterMode.Standard) + .then(() => { + // success + }) + .catch(err => { + console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); + }) ``` ## router.pushUrl9+ @@ -185,7 +173,7 @@ pushUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback<voi | ------- | ------------------------------- | ---- | ---------- | | options | [RouterOptions](#routeroptions) | 是 | 跳转页面描述信息。 | | mode | [RouterMode](#routermode9) | 是 | 跳转页面使用的模式。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -200,25 +188,21 @@ pushUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback<voi **示例:** ```js -try { - router.pushUrl({ - url: 'pages/routerpage2', - params: { - data1: 'message', - data2: { - data3: [123, 456, 789] - } - } - }, router.RouterMode.Standard, (err) => { - if (err) { - console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); - return; +router.pushUrl({ + url: 'pages/routerpage2', + params: { + data1: 'message', + data2: { + data3: [123, 456, 789] } - console.info('pushUrl success'); - }); -} catch (error) { - console.error(`pushUrl args error code is ${error.code}, message is ${error.message}`); -}; + } +}, router.RouterMode.Standard, (err) => { + if (err) { + console.error(`pushUrl failed, code is ${err.code}, message is ${err.message}`); + return; + } + console.info('pushUrl success'); +}) ``` ## router.replaceUrl9+ @@ -239,7 +223,7 @@ replaceUrl(options: RouterOptions): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -253,22 +237,18 @@ replaceUrl(options: RouterOptions): Promise<void> **示例:** ```js -try { - router.replaceUrl({ - url: 'pages/detail', - params: { - data1: 'message' - } +router.replaceUrl({ + url: 'pages/detail', + params: { + data1: 'message' + } +}) + .then(() => { + // success + }) + .catch(err => { + console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); }) - .then(() => { - // success - }) - .catch(err => { - console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); - }) -} catch (error) { - console.error(`replaceUrl args error code is ${error.code}, message is ${error.message}`); -}; ``` ## router.replaceUrl9+ @@ -284,7 +264,7 @@ replaceUrl(options: RouterOptions, callback: AsyncCallback<void>): void | 参数名 | 类型 | 必填 | 说明 | | ------- | ------------------------------- | ---- | ------------------ | | options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -298,22 +278,18 @@ replaceUrl(options: RouterOptions, callback: AsyncCallback<void>): void **示例:** ```js -try { - router.replaceUrl({ - url: 'pages/detail', - params: { - data1: 'message' - } - }, (err) => { - if (err) { - console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); - return; - } - console.info('replaceUrl success'); - }); -} catch (error) { - console.error(`replaceUrl args error code is ${error.code}, message is ${error.message}`); -}; +router.replaceUrl({ + url: 'pages/detail', + params: { + data1: 'message' + } +}, (err) => { + if (err) { + console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); + return; + } + console.info('replaceUrl success'); +}) ``` ## router.replaceUrl9+ @@ -336,7 +312,7 @@ replaceUrl(options: RouterOptions, mode: RouterMode): Promise<void> | 类型 | 说明 | | ------------------- | --------- | -| Promise<void> | 异常返回结果 | +| Promise<void> | 异常返回结果。 | **错误码:** @@ -350,22 +326,18 @@ replaceUrl(options: RouterOptions, mode: RouterMode): Promise<void> **示例:** ```js -try { - router.replaceUrl({ - url: 'pages/detail', - params: { - data1: 'message' - } - }, router.RouterMode.Standard) - .then(() => { - // success - }) - .catch(err => { - console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); - }) -} catch (error) { - console.error(`replaceUrl args error code is ${error.code}, message is ${error.message}`); -}; +router.replaceUrl({ + url: 'pages/detail', + params: { + data1: 'message' + } +}, router.RouterMode.Standard) + .then(() => { + // success + }) + .catch(err => { + console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); + }) ``` ## router.replaceUrl9+ @@ -382,7 +354,7 @@ replaceUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback< | ------- | ------------------------------- | ---- | ---------- | | options | [RouterOptions](#routeroptions) | 是 | 替换页面描述信息。 | | mode | [RouterMode](#routermode9) | 是 | 跳转页面使用的模式。 | -| callback | AsyncCallback<void> | 是 | 异常响应回调 | +| callback | AsyncCallback<void> | 是 | 异常响应回调。 | **错误码:** @@ -396,22 +368,19 @@ replaceUrl(options: RouterOptions, mode: RouterMode, callback: AsyncCallback< **示例:** ```js -try { - router.replaceUrl({ - url: 'pages/detail', - params: { - data1: 'message' - } - }, router.RouterMode.Standard, (err) => { - if (err) { - console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); - return; - } - console.info('replaceUrl success'); - }); -} catch (error) { - console.error(`replaceUrl args error code is ${error.code}, message is ${error.message}`); -}; +router.replaceUrl({ + url: 'pages/detail', + params: { + data1: 'message' + } +}, router.RouterMode.Standard, (err) => { + if (err) { + console.error(`replaceUrl failed, code is ${err.code}, message is ${err.message}`); + return; + } + console.info('replaceUrl success'); +}); + ``` ## router.back @@ -571,9 +540,9 @@ getParams(): Object **返回值:** -| 类型 | 说明 | -| ------ | ----------------- | -| Object | 发起跳转的页面往当前页传入的参数。 | +| 类型 | 说明 | +| ------ | ---------------------------------- | +| object | 发起跳转的页面往当前页传入的参数。 | **示例:** @@ -636,7 +605,7 @@ export default { ### 基于TS扩展的声明式开发范式 ```ts -//通过router.push跳转至目标页携带params参数 +// 通过router.pushUrl跳转至目标页携带params参数 import router from '@ohos.router' @Entry @@ -682,7 +651,7 @@ struct Index { ``` ```ts -//在second页面中接收传递过来的参数 +// 在second页面中接收传递过来的参数 import router from '@ohos.router' @Entry diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-router.md b/zh-cn/application-dev/reference/apis/js-apis-system-router.md index 7a3d939902..85d9bb0e2f 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-system-router.md +++ b/zh-cn/application-dev/reference/apis/js-apis-system-router.md @@ -395,6 +395,6 @@ export default { ## ParamsInterface -| 名称 | 参数类型 | 说明 | -| ------------- | ------ | ------- | -| [key: string] | Object | 路由参数列表。 | +| 名称 | 参数类型 | 说明 | +| ------------- | -------- | -------------- | +| [key: string] | object | 路由参数列表。 | diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/animateTo.gif b/zh-cn/application-dev/reference/arkui-ts/figures/animateTo.gif deleted file mode 100644 index 8755e2bc014f3843f8798acae725eeb0fee11f54..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1430126 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%0Ax&4qOO1n3xfwTgK&dr#q$*VFN@WteAh8Ov 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

        1ey$7 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≠)MPm7S# z(b_`ep~05XX}w2L1}lUh5U8u$EbNuYmc6ghz0mO8%jSrM-nEDm4YVnZ%m(fB7DkGa z$acHD%4Jsk{w9?Av;I7sWr`_~)+<|mF&!IltN_2r=_^`=SWLU?qGUSMCgta2jy#{7u$&>NF@&*zJJ=?6V48cxU~K8URDXTj}mBj!#=T?}AI-y445= z*)=pdGY-aJidksFeNwO-a(unKa@yAj#hw+6u{l#ILjmx*+m3B(4wCdSv4n8^y=xBq zaOHko=9aY0nn*X%UoNNc|E%UoMO4_lcw)KGKT!Trd2UM9`V1kBj96;wT8N2zp0iP8%fA0)7JK0 ztsNo_m@oIE0Z!nA54TP;?{G6m?gVgzmsU}@KItxRb(BD=cT$pUn}M7rY{Ta1ga82` zu$n7UYyha+Ixpp`!E*~R)8oFAVDNgMBGjF3d4GGb?w&YgN-{fYE#(nOUUfcUs)?NcT)+F<_<(yn!y!DuY zn{G7g2IXK+h+)5#|6&)Ax_xD#h#+|N73MYcHvVkUHjQWhakO$e;1TpS9$H(*pk8yU zW3k>knQc7#7LbZ8j@lW>*>q`2xg~EV1qa)p({h%66D0-@izY8UFPgOA6f^o zK#EbTqU{}v!Rk=O*JN3$#{jM2{3Yu1k+cjaaum)PQ^B0?+5`1cpTjg2y;Fg>$yLu7 zCDwOQR%n2aaDSy~LKCEquBHadya9b`PEyU36nz zbXPadm^2A(|D(3dMeUzEkGTAS!w^3C1&ABjZS)K2QzFc{kR->2<*_;okGy#LkCf(4 zzY6lHOGWIgIx+HEXN?Z00r00N>t#D4c1&~(#T5lb<6dr1?A1>5oB$q|(MNcmIDJ$M zLt)=~t2vO10Ei?73ILE0006>-0~ZzufS>?^hzI~ogeWm0#fus>4nz>(Bgl{+J9=#B z5W#|s2@x(p8L_3t1UC{Sh#}J^%>x=VP|yH?0#E}$4*)P=)F{xRMGYV%z?1;grceo3 zm@$LE)uS6W95`Uq>C}W%4LCKrGNDkQKzHt>&{e~M9&&rotecRAkOX*z(4cwYLRY$7 z2gi+T|MNf$#67wu5WG0S0l#%G)FnI^ZdapF3|KXwi|l5rGhz%F0KjzV)B_G8lweRK zY?B~cClNRh0PB?t7BGYeQ)9-703ce#sPXqgiMx4wZ0V3;!jB71N<>)TcT5Cz>)wdr zeQr;mYBwDHd9*y!^G*STWk1y_`>Rg5b|rtFEdHqYnV$VQ6)FV=?9`Q8-VwIlN`3LA zS6zMOBv)aLB^K9WgH2eNWs_~!17Mb2cHa!=LDAV}q@i}2YOBE(5)dD?7*Z0mNq`$e zxvezPLeCkuQE|y_#A9y(3=#>$3j?Pg@e(HVPrjQlE7d5_FJ!qM?qn& zd<0l}X{M;D)~To6BTtO(kU>SVcwUURE<$U_ez?S+S~6-leesVX#_kRmJO8*tSf8QhUDEzq@0P$sslP6HlA!Af6^OO|_H z#)lQ9t%o>P(@+1mrBHHjfSigbM%a#TJrwjH0iw62<+d3KW z)|=r9Y}5iNrih3H6wh{}#1gM)v92{9G+T0KRY%dQBYor%j*Tx={@}O*|Ni5T*sWwN zl<@Y@-RIQ8mYrcqYVKLe>{O>J0Ek9u)*799z5! zWtAI{+|nTn5Xg~SW~-0kk2{{jnE-nNHU222ji&n#>lVnm&g3yaPzllN4EB{XISL_Z z0axfALzBD2Yh4!rfFc*wArC!Eg_p66p8)n2wloa@^kG_>5&{KJ8UU1`Y!NBHmk?2j z4`M-F)?PXB zItfA2TOk?%mJwt+*5TMjiuEMBI0!K}5R_Y1cqKfhPH1c#OHSdKl{R7Pj(5c4edu!; z%y=?g02^o4%6TlNHp)YAdDc947D=k@q-}87!1ADwkm?;}2A=Gy_D~SMRK5rZC=lX{ z!V1tQ3Q=$${itjfnj?!2q@r=1s}WaX%e;Ejhact5Et8nOBUY|e3!n)YkJTM1#lS5U zEaMu(BGdF><&8yY9nrMKz|f2ZYL~Skd4l?(=?zGCRMV4#5Xm*aq|;xGxxgk?8>h|g z463HZ477r(Nj1^%Oq$GOCS?)I(yU@sy9I&-P#|K1|K<%h5DO?slJFW@9ao{bT&w$@ zD;p}pvT!ptiE~+lS0ZU_Mj;`|u)KSOjI1jLQHs($;ewQy3T-I|q~KY!1)n%FP&5OJ zk9xB5G_I)7Cuh_nVJNVe#NbJ(d*YX5N{Hrlst~pB9E^hw|22RffQZ8_=l}?M#E4F`iN{x5#>vKf z8y(VamP^I@*+@DI00D2_4YRx<3Ez&M<;I$en~XLDWY-C)u=sbg&b@_?;;I&w+Bg<( zc7`mXiE_oYS=(RZ(eA*e4FX zog#7bT-@X)HxRwtjiIC|^S{d&q;O7y3n&QMWL#L*W; z^+SPm5tPzoCVUbdd1CsMh|hG6%*1H}F@9NW)$lw)tssA=&6c^V^V?a;L)C zGLLk53}0>lOW8-Z(%Qg2@eKJ5*!Ism|Nkwadv54Y5w{@*DL{-qvSM1b@_ZXT?xqKV zZ-yEq-nk)&Elr~6yn!ku(y4vElk*&cc>N=_@lBGLBm}aLu_j7pR^0vJ+_sOJhr8LpZD4A6m1Fx z39j_NkTzLK&urG+;^+}n*yq(lmQSik~_MtLAa^(|hnEz_?p(+yTw z3!&UP5r*27-z1Hnhk)E9t>4F4|B8Oy*@eBIZH)*hXwRnP2L6$oh=D-3;RdPrO##A& zit%3;p3hh{8fy&60_~ef~CNyvtc^~c{-)V;Ny5G|e4#nq=N8ZRzg zNys7C%@TGD*0BtV3G!D^coQI=1qDf2AyVVER2(xY;;)^~=`f<-Q4&o!0{F2O`4J&H zN>XM-4`$F%n?xR;^%;4T|Dw*7hK(RZxLF}SBHE&HVa51RbiBr@+)qX6B9YwVjlc%y ztsbZGir&;-)A5_9%^n>h*R6~Mu|ST@AixN&6i-M`BR1knI1^a7PJc|9uFc)ALDM5< zmW9O*H+4n73{qcQVmhK@^bFyg+0a?wnG^2Q+t6cb)L(xH8WxgUYk&k7`lCp6ltCb! z5SfHQzRyjiTS#!Br0queIGXBJ*K|B2L^fb-NQZC~T&f*GUvx)m@eH_dN$JQ|w)oTx zGLU;Egf?1VnzR=*eIq7eSl?NgB(B*H-XztaUso9Bw5j8VwBuI1qx@~a7{uQUbisy! z8$OB{0HA;>jvE+S|0Sah$>{x+uCy3&1rc1`+osjkkM%~s)n4Avo@;vL;Yiv`1k+1| zS2?-`Y$;hjNz3fmB{oGLrLYdSsN~|+5jAxqc@%{w*+(W>h9ITf$raxC{e>eCCY-6z zR=~w(44WcCp8VZh{24$fp-2@XB|i2|X^O;C9$hK5XBB~A8hTo#^-y!=O~}Af)8$BY z(Vj$d)JI(;N!=z&$yrx8l7mF2hnipW_{&t?REgHdqcFvCO5<$#rHe-9W|*SF=;L{o3ULJ;kU~+R zswXZnS8sF=>N%03bsCX^nvpuua%{x92+CDqQi1{^g}#>|N|vQq=y68PQfQerO3T|B z6(vQ+n`+3h(7;rcmZM6nr9yB z6T#Ii&KT0I9;IGar*#j!&717)Qg(&JMHI)S&eKbV>o$T&dPJ6Fed(9}8iNkvTrQ%Q zbtiNh|C=C@BbxCGIm&9h&MHw1AyD1wY|-foqSJ**XeN!pi;{<*3hQryKxP^$ajgVF zfeO|YYPvz}dSYv)H6#QIV_bpSbM0ry_{~7^60Zaq$ZXM>9l%T^hL&KMACYRBFsOu9 zrM85rN~UYUpogeJftL}XWE5Be+-qso>JM^aP`TXg=vRqOQk~6Zp7~`cM&=lhM~u#> zux=*i{oJzljcWwaqCKpWPUS2v)CH;@l1e0~rKaC_9>!A9TaDG#ZQWh93g^rO^<1bT z@})e&pO+vaBGT3)G7#lG&8}(?R}7}{r0E4*r=u_~;=+@^^6S#t(*@j9P+dTU#SYX` z{~p_HM%C71xH0TyCS`B22q_`N!+grb_@m!6j6&X{s5q&km2Izp8j^UWr!Be8f2 zm%YvHljH@Tux!g(C}r6f{E3DOat8A{A>ck@i;9akeOyrthGxa;$+1xLbciD$F3b4| zt!l4kv0UY1Rk&_$i*Bv~e6EbrD9`p<3)a@&MG4da;w<#q5}b_-xq zjXU*=_HO9VE)Y>ft_oEyVDx0=w(y0K2j;$H2vgqF-rQD{XP}`j78dJ?^;YRN|7D5o zP2W7E>W0sb3e?MNEnYpu#YkG@fNaR059`p?0zfR}qa}aUZjqQm7F4LXZvGM~8uBRZGE^v`%FpDmvaq}i7X_J1P3YW6m>p~G4NZ^rT5cXs(jLD{iaw7r z-%cNg?*UA0^T=c#D^_FL(^k~+9M3T|qc4m~VQSRqN`SK^lhucP7(1&{JToh$UKEk; z?(DW$kus_(Yca}r-~l%9svQeed4(fo(3Yr*e4vFH_cDe7n?i%g9cfY>5A5~6T$@32 z3S**3V-ZrsK{_775#Jp zaDo!~ijp)(O3dxd&;V{)G#@2(Z}vyK=B-vRXJam>wly>k)6j{o|LXX;Q?y}XMDHTo3z2T`_PUv79R8@=ip;RY z71;esJ%8mW`-nqu!e0+)13Sn5xWqq0Ftqu^S4Xuij|_om@^wd9bffqjX^@ZHdn;stN%h6=@JZpFk;|st0%>UhLCqWc zNw2tQP!hjpY8d}y4 zxDaQp&-GB~#fW<@I1$wkP{-0nEMu#%rjck)=5V=(Yt9#`R182>RF|=1<6t1(5Nx## z+wAMn_NCIEc4m9@_BKkK$*HPjC-_nlzGClN$T3%3b#tCHGr9L*BzbQ6T;}0MlQ%3Y zI&4&OC9iytK%^MYky3Fh|s<#Bq&_qk@iJ(B$bvF&^WEIrV zI$lDpYLRx|U6_9P<&GEFUTtAF0>~^`C{~0>>LQh0wf{evCXZk@H4u>;|si)dtTX;hV z3rKlHbP%Z6tOkuGqW7ujvIoTo-yi(*bH$i>%`s>m5@kh51Tu}662-5cEd7lem zM`wm*T<6JkNG74Zz@xorE4qDe^h$U)BrUss^@nP7fo}O0W=?uO=3fD_*y(lpM@b-E z;TTE)WOKE|fL1uoNW@7L_FXy0*G&ZE6Lm`r|6i+9bW3wmu&9Ey^(G!=AcSC6#!TusJgIk_>3H{E03I|-djm$u|9&;=*R;E^sx4h)KBT5fj3MN9308OEA%_PK-b&+m_*U}%> zVLkNpIJUr7rM79b+ynCT(1(d8`%#^RhP-Ky1H^>{2Mz!r2moP1g9Hy;Xvpy41&I?K z9@sz-3c(8t0c^NJcIpHHLT7;j z5{MQEAVKJYoJs>M5c*Un(*;VY2F;1k|EN#|1rT)g`V}mK1zpD?0N_;R*Rd*7c1<8e z$dLs{5F|(_c7aN`M-mJ?&^N}78w532^vKo#fW&MS9x!lmaYvVI3pzG%uwli_efuKp zOXD-=1QG|1-UzWVM2#9hR-~w5;>C{_J8q;caYM+B2^%s_sQaVJm;<^XLIL0>3Yt2J zHYchxs00AdljJnoG(f`a2|-NNxs@wds#?KL1)D%@SA=-gc5Mp4?A@{Rz2~K`zUS{~&#ER=H`PwT$DfkpJD=f4815nMckwO zD(Y9T!rMwcukIYH&h^gH4!gDDvo@^%5LhZ&vJl`erLycyAg?1pqd^D|6ZjLg4HDZx z0}7#l!nce(vIvTLC;Jg#|A<88tX&W*RVh*uFVOS=h6N%B)D1axEz}J&?VWvEz&Ex|KMZKtS%MBzxWIx?+V2_9y_Z8)`d+j6y(yZ+Y$tDe}q_7pyxu zOY>Uz=G#u%^~CkhTlJjw>cDN2p3^=$Lv#1UfCc3g(StO+3__1Av^dlh8B#a_Jn$fK zL`wy#v_yq35Mu2QMMY_$hbk7hvVU{4=;H`wBYDS?SZb+Nkq_rYxR|=g)ySG$?zOp_ zg=)^`grrm{=$yFxInB}$;L9!a>gqNxv4nb$EwAR2Hq1G@+V4vtrrvfex%z@rQqZ{m zv7^NjyHG{n3_Bpv|G*u6aY0M@EK$-(OXMtW(q1gF$I<#0)M6i9l*p0YQZh`{MN?GV zaa9d!pViD78l#fPVfrH$fJk9{BAd6uhhA^`tK^ZPXIm+AGQ1ln;^$0E! zsa^u;78<*?OMBWg4FJk_fQSKVM{5Js1@P{wzLeECsEb>L}JB}NdyX;*pW$O1(FM_42(sp92(J>#w9ta zjm#>R%&?@Ltz2byRQn1ZpWh+_9%JIFZBDEZqEakT(p?GYK_nLv97-A_MfE)1+ORs1jR3Td{`AZ%smHdq z?MVm~2@w>7*h;s$=xwff%`8uonPC=$qsAQE7Bf?;V$O;n6c8*0VnBhAfP$p^7H8~>QI5CH3qHFf+jL0SOWMh zB6y9TUq4n+S3N{=Kf;X$jt~bj1R@NLpl%luTcn&=u7AM-f-|w{*Z?3Ynl82MAiuK5 z|EBRaEps8EX=!JzyLjtlX+i3lrgD}B&n}PwK+~k&Vj_#F^L_J7&D!h&qJWZ8xDJJ4 zKra==NfLOw%i(JaKPqdDlq;<}(!u5!6=O+XAP zEH@e)^af=30ULafUPUw_4iqqe7CJ%QSc(LrLY^N!G=b(p%(2878%2woy)xpvd{qv&9LKG=@1e< zEwkRHb0CdUmZp4ZT@3OIpZClWJ#&h0D+z9bgGXVzm{m2Y)D*)8qNxnxT zgd_-pFMrWg9N1t5D>PvTQrJOy1yPJfl=@Mc36!Xad4U>tq8M5bgdogI1~N!N3Nwy_ zCA4saHk@G)O?Yw(m_gF_W{0sjM;4Y-dQ$t|S2{sc3YW0so~G4BU2*AbRF4MQwfeU& zb4kwvI02S5cctnGsCs^e&XitxXPQe%Ae}z^;kDj#&y}I-_r7-M1Y?i5|Jh?MLm1XD zK4t1JQGDp5@X&@Zu;C0+2t*s&z?Vr2LJ@L!xD|ZR0t|Q{3{~JoFEo+lSegW62OxkL z3R^x3bi(92@PHfIAO$u^Aq1OdLm1l72$Nfa41>r-6Pl2MAJm-6`yFFKj0BW4{$3~a zg-+0!6cn4uOv0r-o%PgZpw&5jk9&lVw55%n{@f=l^vNJ}`jagQhuyVhDOkM^O;32M zq}|}V?N{qfVd1J+ZFG0EU;6E6iZ&{GB$q1goAO;!%1AHI_QUC)UZwIPC z@|>X;62(Xi;41~fqoE+E&!U%AP+L( z;cO506k<3SDY^>%@-x{G(XDr77B_kE+LngzKu>josJ+lFm-hdL()t!bDQUZB}E57|KTu zKnr5P<^E0%eD0AYdN`R%= z3`m>E>6{FNGxDey>tZifOI(H$2(OG-vV|#t;wOMYDxk20Ld>@at&h}>?K}i+o=D!l zu>D3vBic|@P(;xx!rvZ-!w#VhPEHEs;0Jy{4hCWI|C+$ze2oG$MG*$k1FE19M^OdR zpb8Yh#z-yvdB<3JD|;RzhC1u`H6CcrZ*KqXT_3}E00lHl(|4+279 z1X?mRV^RhO03l$Je`+vSrgFZn(Y~T-XR<;&XohB>rN2N#8;>yhJS@(}0xq5=oO~n9 zlmeL$;u^2=f0mJIB84$JOwe4SL1+WJK7}+ODT+YJdIm~=cJpcj@)D0w45j=nl!axcflnop& z2QXj+o*)b;Au!qC2U=hPS^xqRKoe7-1yW86|7O7w!r&u4;3X%(Kpg-ATr(kH0wGo* zCvVaQZLlZot2!hg34W5AW=bgMBs;o<+Lq3=R0p)4FT@O_gXqFqB1~qc#5<%@A*Ayv zuOwTP6Q17AM83y`P(wBP=0garpsdHNnCq?Vrj_`lm12M*JHY@hKoiJd5&jM@9S%b0$RXAGav&X-~$RZ z1biS75+Mi9U^3(22}0llGSdSJ(E${I0Tkc?U=$%_lqPS&MzIAtZcs^BiboBOM~NZ{ z+~bWr=XKtQEaXC|LMwHUa=@OCF4_ey|JKAQsO0N%COWN@JGQJz#3GQU0xqm2!SE0L z&<4=lMY(>flt?6cu4k3r!aYyPh9(Wh(yQ_a?-O^x2hQN(YLE6-aRd%f4nklDOzsKX z00JJMQSI^vFklA;R$&V;1xx^6^B@nHU=Xgr2TY&&N?9vKCPy~@+5msOb3UC5^pi)8B;hKO69(D&*;0vnY0aV}vI`s!~pam2_ z0R%t*rtCGR@&;=%HY3X_kAhd2!{B6wM`J2Vb`w8M>l6pqM*8XfB?rqGD5k7)4dXucv!v4Z<_cL%N1N?}JnTBpJMs4r{?e8Mts zn5a?Q4twD4EG4B9ZlDd=z{UuV5%J0xCg%J0aIvzzP&Ej|X9dQy^b! zuOnl)fmd|`8uf$=76M37HJRWA6YvQX!40G!2l#Rj5+MW|uL3G{0+@gaLcjr-AYm&Y zfUSTDIM$O5F%9A%4OZ6iU>J5;RRLgC25oeuUgp?%Hz9ZeJd6cPnj~7MDJrX^Dnv)z zzAaBqM+lZyTfxI~|Fl&qta1UYSDLN&W=G5YK1_?@jYS?xG~mMC76uQ}&4lXh3y+{d z!yt_nK?4W2G2NgQ(g4=*KpyQ^6G*KE24N8LAaqjzWDA%teZVtU^*~|QGY@nEcAz5* zm4p+4gByIPA)VW`@w1W#?%+C@iW8D`G}TcJRKWIkKpDPOygT zu=rh1rZP%{p-xDiytywpp?Z31jJcYt+2shrfN#|~6f+Y=Q_>CKm;f|I3wQwqf9(kN zPxc0ZpFdL*|C`{WQ`02{8FnGS0YX3yMsU+GfG?XM4**#p2hn4#fUXgE1V-Q`AKQad zpd}l%P+MR%J5mK&K?N8<1u`=QKyssFS9VvLF&2wfYuP4n6DVl<=P*k!0wlWuvmr}8=LKkFUa}87plt7 zx!HwJatJP-&bSVWy1$wmJBxkE;0aPS1X8t785jc~AQg&13^o7{Ea86#m~X>C5BU`X zqFhDsQJ*=qkVBSmU3FDEH4jL*U*o)AKekbKU<3-7l=*oTDZ4WRxe)sr0-nGn{aOWT zfEP$|%uiTFW0(OrpwR_@!(ZZtZTRNMh$nP#sei7rpu;F^8cW=0jc`1OWm|MKJu91n z7n6b)u`v0xu81XUk(@8v9Ep^A>g~?bn;*$t8VNM4d$V-CdJM10L-7y?wUBp!4MH1n z|IeWldf|-q&<7BD16MI{DYQ{RS1(H$p;a@6LqGxkI`w?uqp#gFBftSxvk(h;gztJ! z>$;FTHvs`!0jgl2S9RX2zzy8s6E(JAAK(FCx6wHO(uHFtTl!Wfy^M5H0#-)ZTnd4B zLUX24XNqMicf9CQeAJJZxO3dNuQ8gj@|T@rSe=>0qj_69XpiLNKfLX;avdCrGmOn~ zOF>Dt4nznj;6x|R0}?WEA)p0(pl}~x7E(bn9qwNh_E0IB&jYtJCx9+b5E#Q-z{&8jj|tZS1mGn(nhh{O0D4{p=DoA4;1Mz)kQtx~{}{jx z>fTiu0A?e7CJUa}ZUXRi0#|`x;cwA5r({Tp_~)*$DzxG%j>V{jxj(QH8>=^|FW(w( zT;$8dN~kG5pw_{V8KDpgG}Ptgg)5vL2>`6Sk-o5PMuc6!`37JQpr3#bYTyf=ydx{X z5LMv3Dga;YyC6}v_99%M2N}Vaz9nCo0X`IQ6~NpvAOjkhQ$5nJ5!fYdul52vz+1qR z6(HR|x+7ut0a}#-(!g*L(dT)-3R+=cJ)qlLfbU@wCY-HzdDpf<0Mn_Y3VU;U0V06F zfdvK%ENIYRfdvHt0B9JX0K$X|1cC_QFe3ng3l?k~STSNm5E3L70Krfq|HzIA5CCY2 zz+-}z2^@9=&{0Uo1VV(+I6_0C!=OQh(m0CLXHptHj{-=LfJOp5LZITIf#-mhFfFX4 z*s%k`6AvLUVAwGMLyIRnnEdeJqXLExA9k>5lEQ-n2MYQ^;M+H_Uj}_WC?HH&K!_GT zCQMMkcR~oj0wnwRF(HK&D|u32ko*90SqvjWJSN;1b(IiRBB*HO;X#d55Wp__@uS56 zp#XLd7%=c+0O7(10!e6aqlAGQHJW@#5V=U{5-S$0m{EFwkRXY3#F#yz$?@b(qV(7i zW5ye;K2kVY`L3Iz5!R9cE@Qq+(sY> z*IY&jnKT`lWOk&|cH43HotzadaArmzqzTeO<^9PfOfV(500IfPhky_+X;f%TjV^G6 zqr6Qz6aYP4DujPh9aWR12^`SIg=`!sh$4ZIA%$6)Ip)Aw4=$F%2q}050RtYWklCyt zlGT?Af++yOi7%#B!(n|5D*yx@d-+_=6Qbdb_h@Oopp7F|3vz579j^hoFTQuNk$aI^!mj% zCF+n%^cl+1eUjpY9;Q7Rb@2j~2oEWwf(W987EwVpRRVGB@IwIV2r8bqJp&vZ%dP+%aDbT9DkhnC3X%mI0$M(7hPEc0K`kGG z46=r%09-}QF9l>$-%{kju!T!9BXEER;+2uc0pS^wlN@rEGZ4!KK!gM-i00Tto;Ka< zPIoe)b*#fCIvH$+HW5w%Y!@;_393*OU5h`{`~UxZw%I*)ahdxzx4AZQSwb6g7bA*D zb19NKBNbA8Hp5(-J5h}!N`)x8ZZ3sX=tj3QrJ|e;U3EEMKfk}>{eHYI&)4(fE*ya+ zy)ONZw!qj9qy2Xzl%EJ~ByH#zhS|N9nrsr0aU_Ix9|7q(FpaeLh=5rUk&f!CR-Yg) z>mu)0AG-Xub7;0i;)jVw0G1o@%W7 z80~%F^Tj~xziJIwyS+_twQm((?->iq858&T5jC}M>K<$3O|8s%de6r4s}?@F*}$Pg z0(ZFSVJn7nZS!fKDcVUqjd_jtu*_^wiSFXyQqo~j$Jkz~Z~w7+Ww+_^MBnX4;@gM* z-COm@l&uM2-yQl>|M#D0b*I3_9VH3#Cle+PsJx)kc3;XIs|tW?TXzG@TRKl3En5sj zI(#FIoryWRH>nPTz&o&U{@!1HYuyQ0VL~P%INcgIV9xVe=*BQPQF2NdG9%Ua@ux|XIZ8BKcc1Wy=08#Ta>-5GkC2>F4UmpAQu6l=?w`mh&9>k^u0O65Vd z>kJktVaBcGvlz}$Uvc_@ynvU1{(A4W`?hwQU@X4Cc0B1sq>0qx!?_ff_H47RMtbg+ zq0qvoM9VTzbv&z)pc!laKQxGF=(CD!tE}o2PZMcAV038r1D)lL@64N-axI&T$ve^J z%m`^!9a~NO>3`t`K5|+`O16IPJo~zHrm8$3i z&*JN^PSAL{_fPT}+Y5$v))W;C_u}5Z)pJZbMlBqsUDwHDA><_fxNfe^?YHhdn}64};J5>@lvd8+_8UsPHnpwCkU>_iq1~Y0{ek z?1QvEGQ-ezZ*u=AMm*OyhhB94w%0;`=j!Sn1LA|)vSXzD0Ef{}y|m-K7AIfKJ$L)m z>eql(7J4CK>r?mxMknM*qtg!}Q>1dE*8+6a81kre8R0EOWOyP;a@>A0xNZzx#YXN_ zB2%Qm{1f#pfY6$!Qm~-1ryb7T zj1eQ%!Tfca-P@ed0~dNs0)f3WF99)dXY+0d~3rZXgBEcq8`!`9Y9p>}i3)7}^*3%eom|(C&1e zM|KU~5k*t6mLiL(!UIMQv1=?hNHnJ#m(hb0L8}wPJ1UKN?rE9ol+1_gHRGLBsZNG( ztqi^6)_(_#Hi7G@sHgpoG#+@A=vGGCWdsDRAKSbBeW3*@TMe?B7lG@U=!F5Vh`l`Y zU{3kx5J!#N%4|Y>_zD}{fLh_cpHAF`X22inJ$<)*Z)(C9VP4QzZV%Z!cLhxROrEI( zZW2%;86G*IqfJ+Fedub<1GfwJ@;l%fJTS!zS)dfUF@?>EPJ25n_l%)q<$Ju_scT3! z7IIWE!Rn$XrPcv_lAUv8V@l2`nD=J*U|HPr&X|oGjRm*E_1|hiaFg|#U>c}xz+^Xp zarb)Qt%DBs?g{F~HGq4a^Su(CA<*r}*&Ta5E>&9Z*cqL&MY+oE& z0wZn{)Fi*2W&&%rdk=2ZFJ;md)lYASiRd*4Y8bVRwh3W7+*0g9VqA7Bk?9>@ArrWqtH|K61~>64iY+CVgiEFx?VFOw7h*TN_%1GbEzW2izT zEP*m+T{2GDy?2WS3?u>x5q1&#Hx?x{!S=||UBL&snqk++aIPuvojm)tSzhPbh}gZZ z_TMdOVe8%QPd9X_H(n0~Cg1OVJiYzl zceAkDgs!i{HA0cpX5lhAa-g)J|$ zK>%9TEd36=Gs+!MLt060R>^qG_S!hB%BnlLFi?KxkYBsXN7If+Rlz&%p@%PZ z#_1dls`AhDl}&zQB$*ldj$y)Nu&h()oqSEr{VbL5ZM4feQE;~_Q|Eak*iIS$?1Ya2 zQ`owoVogOYAZYQ6+JEd**I&s%h9zY-QBpg!K3rn&?FS42Yn+$K0XXZ!DV=SyWf6Ca zrJjJki4>B0s`yV6-<*p2j=YzUq0-?Q}d%wP<8|JtpBzOeV-w?B34Fbmdi?I&v4_WGXgA=CUVX=eM8 zhv&5Hww|^*FE1quXwBoWO_GTB{Cx*G~U!)SUC!)%p`SJBjfAqFwi+ zsms&}OJyAv7B<}hZv74}(6GArA#)|Dy#IHT?JUqb;aE50w5~SfVO@50u+C0em3&US zXHi>Qx%Y6ziH;m2tkSo)3{}f>%;u|r&0C^st%Am`0J^v%g)s5QTZeR(d+sRO(PJke zQs|c@0#CEItWMT#+`HRce?ujKH|UO&B91&E?=)#p8N=+BqjnR}wQJ*??JlR6c2Zwk zZ+v*Za=WjbWJ4t(|I5~VlWplHKz2@0WM92a{NutF5R~^B2^i2o3k;I>slKy1DAZAy zQg+IlJ|ClF$BNhTKm)?cb2-iYI?t%27+s-N=Lb7)GFsvB0}jUjlsn8A0SVJ5RL=m~ zQdkYZt{uDfG%;@Ne$E3Y;0OfkVD|jM4MBLs!OTNO6;Xb-i8&K~^Rq!?u***>$J zeZ}`d{+jxTa8U#D!aS1|6}d{gvYSD`D9v7;jZKr(<2_;BY`Qk*Mv}7^hx= z%8>bZm*-rvJCRg$D|7V057NqovgOX{sCx3+k#D)`mMzlV&|fE zXk#3X%bRi66{Kmp$sFUd>#aV=Wa=hw2uYf6gb^2j^7lIh@x0H@sl>U1=L-A2J=fBf zj%L7bq+OynuiCY3gE5(}k`LVa^@f5cRDJ5C3;4+l{vk(|qba0)ywe02HZ1x*6DQy8 z`}ma^XX||j_s_-dzNble+W60&j`{b)iTjojN5_!4?dTRdYGEBZm9IJe6Yvs6Qt9WK zKDaTgGsj2HuboU3jNAV*a^(9`mS!ktR_KX#C-x1L>nfrGooLaM+ z%nPfH>t1*{eO^B~gcOh7r@B|))5MJDum>LZ?&I!i^auBi&1;_}=z9$in8Yw<%=lqb z&x|MNmOf-iJ9;bUPWwA2ymDYqmuo-HZN1mo8~NF^{ckG4p!Dgf*gDv+P|d?{z*VGJ zOeH<#jpb^JPPkp&Mqk&}MKRBkoO13j2dzCJl79}LoTq<279!op%e_QX4e3l~(<{dl z+A6$~dG01P z#Z!A{68~m}_te75noeY9NA8@q^nXvUM1;@S_21jvNtB&8{b#3nPPkq|+@g{0hCXZM zDBsoeq6JlDL;IzZ#wyxlFw;JO$b_k!z~n=i*pGYnU4p07qXXnxl`$&&uQ|SKGhw}O zEa6mM_%R>tzM9tL_qSV%3MdQSyj)G3ez5Sk-G~%`^>G!2PnzkW9hd2h^ zGjq5xY}1rm41H5k(6jd}oPA>9jWIrV1(SSQEBWfy*{I&d?{!u*s!H$Tni7Rb-v%JZ zTGuLn)e3OM_k2y25j(y_{8fNivn}}KxW)SZ-*WS+hSIN}KkGi@xc_JV^og50+4h^= zTh0^P;ov80e_E4>bwh*^2J*i{Pu^}Mon?f@V5$U|skV*U&tK+3`7!cOsy6PlRu2+<+KQ-rpr5#JEfJ;bxygnS21a zdFY#}l)x4M1d)jkK#;M)K@hgiz$!f@{&uO!8n5>7OVh(5A{WWaP{0ONu-W|Uvenxr zPN8;1yEuP=A-c(r47SRO)y)f={>(ZnKyibHOL{tb+P4zrU=SKCdtE59(BJkcRKYew zebS>Wx1foQej0`wj-`99Q+#x(flrDN7-o|9!$DSCyS=LZ=Dlgl6hG zKCPnMOFp!QdN{^NV-u|4On%QfVbSUy+*xW7RU&VZeBB6StJnC&h)qB9iRaorQ)Vpi zsSDG1(-0qVes{=1g9=(&2;~&>k{WV)nUjgA_20Lwf^H%GN81_Yj19IHa9QV?yX{?8 zBX?B~w%JWOo(f=2u*2nDBcpi8zHc<(lH&_?qw|pQOtJ?7gD8ECUwdELm}AI<06Oy1 z!^FJa51G_;KSF(SSTiqv2d?|4@viFWG8f)zOG7u$3DgzD+0X_wQvhu&o+mGwENi%A zndfkhQ53>Z{qUXCnU%OElbjXb)T_sn7+)Ln5G^1|7PTbH)$wal^w%aqMiHM37N|C& z7ZyIj7X`+53tWy#PkE-)39zj8CvWzNv8t&u#8t#+DuUeakt#N+OAA?z!CtZ&z1^k0 zLPtRz9_@sw?wxOU=r`Wjx#lI8d{1R8>yo`wg3*cz^)oIt-@k0~(yH>+J7Zo3p>pJF zRX+KD@H(h}+P-qNYHE<#{PkV`QY*05KB`}`+W!(&Z{DYL%aOKSyraJGeD$?$H{S4D zTf~K1Xs9h{BbeyLWH;yf;jo?beDrIKsvC<(Eg)5e!?)mszh38Ww zpEdF2+jjF-MSUXxwUKut6Rl{M~Kb@Dl zE#N*yeoikDN+w}PLeEzR)U_I0LVVD1$3WKjii5Z7g$)F|fIUVD7rNt2dv$nfGE+fx@@RoANPq<=nM0_f9nI z-MXU?eE$MLr9R2hh#q$L^Y?Sxy6?bu^`lW~Onohe60R96#0ARpR8s&{<7_tBXT^18 zgAzmId!#eo18a?Kh#69k@WV_Ykz%g02CqS4D&Z(T6&hNO@J(}L>w%*Q=HI7|{c*o? zZ2a^drtus9KK1>zR^M_q@Cvr_liqVD?%glEL@wT8_r~_YkSSpBJG{<#EO%22Rkc_W z1oNk+YrI`Xw?; zvrLKK%{MLj&+=G!$iq{oI~&`!eZ2vX^F6vxKkhM`j?8!WN3`dnde{JqN(gXng1J@j zR|U2Y>PXtfk|E`Gr>-WoNhUfD4) zUlf|nLOhn`rnB!RDv6Wcpn;t2mw4IL?_OWTGyk0LEZ_ukYeMO}ouWS{cr9gqB^eYZ zSjObB4K13C%vy*1SCF^@)iVe}1WYwh1QvbB16743c{iV)sLOh9YBQOy`r^BamYhQ~ zR7$P>nnRdb2@#Ru{kUjCj@l4lwRT9MHqzbL)>6qZO1%4@_+kI>;F&ys+bt8^vdw|M z!o99-m0ne|S~m#I$3KZlt{;b;A2pP8d`aF2Hd1PGJeyDc)firPfpIMRT{95JolS^0 zGTW9FgPQWgWRK?gU8o0rkH>|fU6uj;@^?p*F7ZI`FzETer5iwam!yq1Qo)?RlX&a1 zVNmVsDipV5b3lGz8a?FV=_qfMf4T?J4eBM24ban$SNMmEi1QgTba4A~_|0~tzFd(C zYd`I2(M1!f$6!{ogy!{15u;}nyw+zR!;6YCWpY%De{)pa+bi+-SyOz}1v4YMG&b05 zCu-`bNAwDTm&I?-$_N2e3&ZaOmad7*oZl6DrrlVe*`RXcHO!b<%Nq9zjO(&p6zq*d z3`}jyuobi%%JKB2M-t zYerKo6iAs0-BmFErF6Mm`N33;0jk!^Mb-ok>MsVEbw8W*uHJs8vz2w=gJQz`}m zA^DZeY6VNfIrrX$yRk*Aj}XFh3{+LNBdP+FSj*TxRkARC_a3gzk0}o2^TVi_K$(iF zApfkJsQcqo8u!2``^MM4i??L#l^d+6`ev8s3(wK~eDlTa#{JEr9q%q(P;5M9G>Pb*&om(-&@%DX|`mubxn9zOj?}j~hlXxnB_%b8>0(;}% zr`((Q{6zmRQ;5d*w=n#3y-{mRHSAJO7}m%vDT%n0N7wXk5F6m3vk>~#0*u}+N33lR zMlNXnrJ`J>9yxlL6TVLg(_+cc2N*+`6N9NBVdMSPlOhJodXAACgZcY68z-2l#LW5} z_DSM+lx*3Gzcb_0Qs#r8F66woufE)$vVx3xJkp=vk~S~Kck22FS(jiOk2$pLh`19@ zzP4m{s5F`Luw`oS#icmYYvr+&@mzqf`#eSIsXN3Q5v0EOR<6Uoz0rhGBlAt8@d0jp%T$blNDM#9+ z3-JL0m4Kc`yy=)nw*D)T@)iv{8T)hd?|BiXl#el)?86B7cTx7g;1%KS!~!;~UhcGI zd7A{L=N6r7$u%LaXJ!BSbcZUH`duH_mo(}b1AoR4;aKTEDd?7SQAc{VK^bPT56ze~ zHq&;U&N+O?I!5OL4m+}IW$c{!IRzfY|h=%hQ@7ANkNuSqJqo9KWZ-9OaV+2F6s@GJ$Hh>B{bP9) z2rj5fC7>h)>Umvsvg*~xB~6y4nhfGq1}T?mGe^WM+DW{G z7!3(j86uG^=!g~|{H*gnx)p#Z9=0eSUJl2Xaf+UUwL@F3ZMG_Y1gyH3L|Sw9T1IM{ zy*cEOE+)hy{Loi4XD>$M#TN2DmFL)lJI}5}uEf$VHfLgv4`Wmy7w=xx}5MkN8Y zg{PeL)G;?Y@;R5s`^dcpCI=5s!J${0Fca)qfXw*9^}>!j^x^@@{nzt_ zPY8Yh)RB{)O%TJk#=|w2(_ztBVn+K>w_QU0L{+CAjG(@G^ov2EOy{gnG9P1}IK#MX zd$NPrqaKb;-F00~)95rOd}FDlRP_99ObjLY>qAh95lBymYcg+^d;~PZVRRXcI0Tq8 zMCd^c|AP>jDs+&7AOrM02$@JkxUIbmX;oxw6>0V?xo1?1DkQUg{DxH3mU=D%ef|Dd z2<-Zs892vq@y=s~ZE>=EbmK{O-T%zdDtx!kYfbdffrKyBKw8mbY2$DrNv6IozHn7{ z+@OunDkF37=^UjWjd+zVqL;Q>q{G}Gcu{9H-sf&TJO39;i0PFb*wu+HyZx>m{f}*^ zU&`tKmdCtW`2|6X!qdESd(=-BG9_=%(uRBQ{f~&|uN_AZ0fr;c>_NDtF>L4$aL7ey zEdlg~u1vEYjgF`Mt)plKdWquWUgGdf){0GEN2)JA(dbEss(f83&(d4OYS-w~A#4_BoFTBIrnjB((S-t!| zw3mMXPdUTyGZ9T`9EdZBtR?*5UHsGn ze(uAeeX>JE&>|+(qfxtKs)5pZ6eQnimYzhWVlKzj1(#l}mbVi#j@B_G$Cp3UV+41| zKI3=>h(?F0jd=^R&K^nYHDQ5h7N{maO-~=ivq0UPvsFr9ZNRu1VF;Hha+tmA)Lw~V z5<8iNDJxWjFW`ZWp^&qc1XlLa5aZADlcMzY+Qf=)875-t)6LFLZ>8gH{;QTRkd7nD zEk&C%O*SH3TBdqyiu2pBk2XK(5woG}+uzC`T7?s0CP%qf-_!uH#bGY@s@C!$wDOrDU3G*j zMM+@qH{Yv?N7a}SCzQFCa`<%J$BMYLL7YsKAH?rUkt z>TX&aG|eUzPf9Lf@}=t7>#fos>^g=9bj`XA>L|KvxA6`zavME}G*+&Ne~uIc4jv19 zA`hHc36Y;I=Tho-6+mi&?q4-VIo}$lCnd-IBqdwz>cia6E(R_wBje#J*R%a*gFzZM3$JVImTZZs z5~xKxN{(YomZX)p7lnTxGygp>U7hj#cx-^(*eFqB^@-o!$r(b&3g<&bT1VPWlZPBk z4hzvzkWLk$sIcHM8?Yrd{PzhRX}`5(jafRV&l3J_1zh<;{1D`sKISBY8B;+`Hq5n0 z1nbu$2rWmakKubxizGO^rSoR9?Z{LDa;W=_)EQUe`ey-sjF0(GA4+>`Ht6?s#h}_E z;{HK;RA%@6{GH_0wfA9?_$SLL#W@`amU5LNnu|e}=t<$RFA9E9K;@ygy=bCF5A~7$ z^gl6m^JClpS$zA@A+#D$`z!c~=|XuM?@95bQQI!UpO=p|m+BD|8aAdPV&7E28XtWq zfIbN$jtQeaLi4ErajWRi^$R5F&HZ2RXfgUtW&!#VbVMDpr%Ke)v(*GJ@ffJh5NQrU z8Vl}szD5(}Jl#WJR^VGK0i6dycayIcCJD(~3c}Y&{s+2U#$@F~@KSZ1p+k(q7Q!sOsl@zMqT1 z%Uj)dCKa5sZdyJe{nUdieTI3Tp=~tP*=MWPFpRAYDflD7oRHT4aMk@Xt$~sY=`CwC zWw67hFd}~(Efd|o59m&c&|9~3kP@^B!oT*z3N1x=c`u!3k0SJv<>T{PvRBJLe%K3X zg^N`ag?1O*CD(?MOGO8F6!u4A|DfsEwP!V@B0|kk#@1FW{58D*=Tx6k?Q;zKUDEk= zMbf2pmvq^BCAuTJSh!`*xOyGs9J!`yW(=)etX>9_1* zpBJL1w)+KdJv&^o=$$mPMSrX)P0#z~5_)xy6)qUF;nH=OE-T+v}o!w(R#iY&d8vg{|tY zl>cc!Neh!J<@}E_MctFoU!3ru$m~GPB)`arh2Y2#cKmF^bUjNnQ=ijWq|-<{aY}yOU~F)` znuPi%>p|MrlNRik1#e$2X@ibSRa2|d@1C9dB8>3Wo9>~VQnZ|Izw`E&HrS#%Q)ZH^I6BQZd0YSnRYqq8 zj&^2($De1@+v{9w5Gz|bT_#c+yGbw+_BxI`UOPMLy?P^*ZC&$fTc4gW;ahPbELf?r z&346w8}yv}>@995u>Wb=8GenqVi<9wnu-2V5;FIL@QHo;?48Da%Nz91zo$>snvMIB zr!mT>DXH2AKaa7lIc^o7XFV_+0w~q3U3vwXbNBvbX-vJYypTBH;{M@3$P41j*`OGs zYQR*=*^oPuz+74=rRP){x=pI%ZDU|!f~sB`cb4ytR zMyeDu%#^?#U5;ld2NUPX7Oyg#RU$BkthcW*n$BNE80|@jOAPB}Kf-BC7W#Ar|JiGc zj=bIXNYxrbDA=^DcK%k2coruxDuXKDfK3<3wi>u+Xl*~ReaGh5<3i16z!3(jE-3}Z zKXd%*7W{L9_rq zxaYX?vMZ^lJ9c#8Sv(QWEV%I9^zTG`HlmTBAxrRBhG8PPA!7(j zdk}8Eq|j#a)L)w<8m(X8V|f}P!n`tPpEep^m0&A=@fM*bVQ-y$EyNom*Pu?ph|$v3 z7GE3G`qA!$Uyx1Oumr6iUcKrQI|tuR-L{%~6rMI#MW+;@3tQxbTuA7=Kt)+n!*N^y z)c2XS8F=U$RP%)5*uYh>q@hJsd9_!0UYk}XlYsUE*Byl`y0Nk7`b|i&ccZejOmExH zfgi`djIS>L+TV1Xl%w-#e#hE#y<(c*&U_Zt0#ls`*FK>XnlYI0E;x?!4HX4aws0QUH}1p>>TU1A@DODj!Qt>i)!GEE72@o7g$dR3W-i1_QRW!cVjzjH_Rl0Ze%=R_`=|e^44Y5MMqb z8-T0!J-E|;hA=|u+_3F4q)IVAvmODcxNCe^GN{#=004)KU-3y*nKwNqO?Mo#-_Yn7 z0jXq_t*t_HshW#oZ*?}TN($4p;2PWDo)!`sf$_0Y@?oL&wv^bd0D$lrT=9`D6_nD@DIks2-z1K2ZB-LtOp(0W8U%E3()hEx!Pab=-l_E!hQB_6; zEzp}rDpvEl5F04#b1e-Q(<##`hj=7RGCzo3#ejPXV6*jtJT&EzmmO7T&;ocFFF+`3 zc_K=}d~VHCfPkeBl*-ObPJ zZy57FseJfAV%oy>Qrs5yFVOcebS!MhR((no3J}Vb$*2q^C`aU^dwbKXf z6L0h#^xcLmUCuKMr>RNw=OZ(IfLgl-s1{Ty=h0~jmx7(JP- zVh@#|qk9sFA_0sT0X2_vv;uPtk{&Fw-`|=znV!ILJNc5K)0K;h%{kXylQ)9{}$~+!~RfV zAO3mn?*^UjGQeOPC?KO)QW~Lx$<15ELH_63u&RQ(f#jG!9OTRjCi%GQ9$uAfCvH$F z>{-xe6o7=IXI07u?a3`)UY4~W;M)$vIQA2JfMCW&8}k6%e0Ev*_?=`mk~DJ%B`|-P z>Zo?5XRwu3Msan&Lp4p4ep*qKS~dZ2wK%z#Bu5MNClwJQv zFquAqOHWX*x-XLBORz}K<5vTvtLa%+;R^#V*8QzC%DS-;q4!>^%#?jx5?PSFfuhi+ zd<4xI^^ss4N2Nu2qNIzD;&xQ1Cc|7eA8FeF>PmU$zP=W8b^QiCo`Vd)%!U#T z6`b%18a`Bs7)TBXq@3C}AWn3nT0Y?vO9q>g1EtvR{!!XqK7|@1TO8~9ie2o zUZD|v^P|9wx$MYz_VNl%XXXAc(M8VlYMD?# zHwKVw-5&a2auI=OmrvcptSo@Wi%)-qmKm2KUvGsG6T>lnATGW}y#~PfD9AOu;2zMB z;jSA{2bplXtf3_t(nJr2Wy1b9&sJTMYu5np!r04gY?UT?0Pha&h7z5|R^g89UsUm) z37qW8gInc%(C{QY&N;_qzn1uF^l%ca2fT(j%ed2Ws=Y84L_c;J#=g9#`z|mVI`N-_ z-tr+Izonpomx{VMsCJP}I(!%NLV=?MV+4g-m4IsUwy;qgq8?J6mDj!0e$QnSC)tMT zTHk2IuPL!_9)UM!74Hcg1%!~NLHMF7&Wc}kPb7!Sj{f7fx>#i<6lkghkoA1A1j9*} zdnrA$@-aJ-C4FcJ#T5cyLr3f<>bYe+*D^#~p9!zeM8?*wAngXCDe0%=lE_^1vHn@M zdd1_6A}T^tUx#XPu1MvYED%Qk*G&a}YC>h$`*gaLk7q#S$v{NF0D9r1Zo0hk?Vv~7 zKp&UCeSxbry&ZvoA^)e~VZt2x6ee=v3kT7Q2$;zLhvK4Oe*$m}sp^1^RV_C-acKKl zz+_2(La&Y%Ix&_U0_eevnuK&I2iMN&^)0BWm7^sP2?9Md6eS4Zm)%2fE0Ek9kq04` zgIEIrQ6qWGqS>`*M5w<9)ZpLdeTfa}8V_6wV3VQvqOBX_*2+~OgG?8NSJQxM;_CkJqg zg_*ou#q0{RntPZzkR=yST}OD#c;dPm4tQ$&u@O5|B;J$vCQA$A)C=*xK6IK|wK1}| zeqbQ{!!{;9gR8i&O~fSLyES=Vvpx_ts|gf9>qn~GOoCH5&ZsDs4Im+rm%Ksd8(3ebE0`H1vQ??7 zq>w1T=HLUxk+E`gyKvil2_!}Q+c4m@Fo=6%VmQaWIb7=3b7I5f0Qh-~HYmQ%lIwg0 zmoWO8y@Q)FarbE;DGkC*%88`X;W-c!s`}xpkfC1s#$F4TEQDKe)U)JQD&#i4ShX6+ z;E{qa9Pp?;cYUi$@W6m-J#b+Hjhp2>T};HAvu`-uU8xS=?>F499E;e#uYhGfqvt}#VilbSdb3MsNlIWu|3*jAMjR?p@UIyy` z_9xlAYpi&OQ0R?vs-MZ14boe+C_?geNNY?;Oy>~P|HUcUabJsHQn~yYE?%L;=nr|G zjpo0ti0(VpTkP zK1oGgw!A8NC!t1xlL8c$!oUZnStHU)?;|Y<7Bdy_BYpPzpNEo7nq57h|E7;!fXP#7$5>Vc#i8x5mQ z775hL@O)ysoCKAuYGac=10QFmfMY9Qbp)zCuqj~tC{JjxRK7Iz0@WiySJ+{e{7nnw zStL*m50ZE*ID8*^G!@mdIjwjwOfP5UNY)$=Ngv02+&~RjHMdw(1SEefeEk$)*c{0? z7tG~wZUEO`4Y|Bw>&(kH#peYqaFAI-GFS0^yF#Z;5uw-N+}vkYI5g+xzHEh%8zEqY zAD9O!@=@0THSP=58=k22)^}Og_AZD*g^ z5sdU1H+?2Qil^$-LaFyYqtoBsx;{8Z1!vAf`x-v{S{n%e*B>}>7XChBQysK-5lA(u ze)yTKk_No<16ThgP~eqVD_Dj&FMueXdT|=y58V+Aervh33I*t`q^a@qjWju$kOG(P zPP7uHG;=g&+1E|eLIlrN>OUp?Z!5~2R{SV24{a!x*bH)(&9}OjQ$|mR3WKe9Be8Pq zY#g#is6Qz*OE>?N3H!ICRVyIawOb|V&}M&pQ

        n`{Vb{O@Zj;Mu!^*OSAK-c!(EB_z>6y^J=KLy%=L=|ORj4O^QUz91COMj8!i3cdExl2a zdWG{7xz@a7&qBK34`DKdFh?M}AeJxcz5Z2n zeq>(SkjUpj`KXqft$&s}E}>y8KB#EBixe(+p`+BpvE7XbBGB5~>o;2wkE_Pv?;Ryql_?3_+7dU@bwy!+L6twoTW zs?cZ&#)bG+&qPj%k5B45cr36^EU}I>u&MPKI18hGmaS$yCpG&*a_6E}7Duwgy#9-+ zI?qwB*<;ZpB(Fe-F7CPviOnKsnaYc`4D*pT=K1?@xbe^2jzHyq+h{_EYM%heo2n*={8sqK`1z{lzjl<2&bYeXrqO{F@ehe%}| z=s&z@vI2`xyYQa&k~IKNO$&{e5Axo{O-;Y7QkH!aZ6?89S&sFZ_0%qp6g~E{W(_ZY#DG z=l;EBV=J~;p}t*2Pcgh~ybRCwj-C0uA@Dm+#lb@mA0j*ihi?vz+* zzNN&7Fh{W(>G)QuFeXRKY|Ris$PGe~O?ekus2;fh%ET{gp?x4bTTPqJ9b&GzgEg@9 z;--tz`p77PI(qDCm^}M}e_Hz6t6>V@5-`^6;BOwN?iB3OGv4qfyFkskGrl8RC7{YA zurvMH@|vF8Crq*oZnVdtMs+Ypm#l_kE$`|utB<#hE6#WwV-zg)e3NAtcwkrrPE@R?{tEGi0u!}dNfX+TeXZ5N^=@+AN~E+SMC zntwq#U7*M8ZG>ssDZzZrkhHUCBk!&hw862E{LmV^`gE^l&H6PQv5ADQU>PST?nY?q zN!WR0*;n>+S_Y*-MC%!VBnS5~8LQ9;r4}qVAd%Bd>iQgbZGZQcOB=dI-Dv=8Vr;r_ zwF^4V#@*yD4!=>rG+FIKRnRYb{CyvWH^Xk%#f7%dKD0A8zYLbUX!g!v98z`Ffs?iD0~ zbe^8S-D$oQ+-p<=2{EICNg~32xgU_;{dwftrzcyVZiT5VQNNL+3G#d`gCUvNx_(lG zs4nF*-r>J4jhVaVGCE3%4DJg<$@dd2@|K&^+}CFRuw0r(8Du2Jaw^dGCu zYwlX$r;%>rX`K7892L#eW~S3a{(3{xoXo}20!5O`g2?D6OiYZ@+UYRZZxB5ubY>`! z`-VWGa!kkEXBuT)17tBFGI^4^LtiQ+74Z?yh!~9VWHC|Hj$&ofNFx>sl4uMxNt5F_ zvc@?dfsK~EG0bN2!Tx98fL+D!x9Ft<2-0Su`9GHUIvoNc6Lo!&1;E2eYMUua=uLzF zRy~R4wX!oOFHmw2gynRFPJuw=l`m2m%v9j2WVC{PN*|Z8Z1*hR(lev~ni>t2VQjpb zuu+`t^d3Xp|FcZ(--c3VgHr>`f*d)E@Mr z0%~0{7_D7(bH!`04K$MJIx8x7t(iV34w~TjFk~F0YhOsX zkKh0*?AY2@t2?2tn*gB3ej_*m=oiVy(~AIz)Cep|j=vJ&!va0Ne&wK585f-L1s;z! z>T`n6_Gsf1HF#>2XC0@AgdawxDZS04bKUxLx)^4jSSv=UQ~Z4xiLXWTo-HqQq$DC- zM1tNok05p>8Z)5|1DY55se_!9G8-_W;mR%O3B~BMQxhagHY7DysP8sFtZ%YsD+ z^N&(=Ctgf&6-X?)4Ymbvpo4WBEQcUd`$p}KoD~9_vqwqotbNl%!wDO2y)%8m3}^8J zbmJ&Ve$SCSKDr~K20PM06TnO@6EBA}{jD7*duG?fv9M8aP&B33?SfZVfUMA>CP0EY zK#ARj)_WuA(_p}dHP+=tNBmhzhda9Z#rSeylD9DV*Ob?=@UUV1McG*94i$!w7d(el zcitAOLI`1s_}AYq^ww;JW)cD8_AqE(h+0?i9Wd?=JF2NOtmh(SYjg{cS8iUz7*NDg zxNngzOB^)~GhpV`tv-Ap1@V_I*QtaPBwGt&oXeS+yJNu8mR^WdorP-us;Csm(fr4o z_F++A_6<4ov^j3Y#lbZQSBw>QQG_mQ05y4s{LLtD|Il|pTYZiop{dRL$J+~5qykWg z0KCeVOAPae!wRZ(=mVk;Wzc+wdO5DvpFfhHRY`Wi+$ELQkD(oQ0)VF){O~ z<^{ow1s){G6hY0o@_z4Gsjhhhxbyf)Hyg@FBiWWB8{RlPHO|Uq_nXUE?^l=EbWdDy zS;qC%_QQU(y1DvHp;-HO#l)KSCP>who?Wjv8mBGHES}qlphVu)`ByP-d+d1R`5wD% z?YEM*43*^n471-g-);Sbx&F*!DmoYM+s8O{jkZ|br6r!IAwH7m;Zgfd6o7J87e|$;+Vu~Fb@8o3(;O!U;i(|vvXd^EMAL5q%762*7u<CIDH?%K^mmXcCpC@>E> zl;n#US7_D&-E|^|ZNqzyYsG9EMqc1x1}L%lbgQ^_w6VrscgkLO&bb8tIOa@i9LGIo zY}J3>pycH*mFR)XYmM>Vm7b#GF;{FLjGC2X*cF2Q++1dwaW#|S`@_fjX= z3(Hf1OqH99tnS)N7$yLosj%CoYGA{r#`lJOq(nTi`LeJ?`!ZgP8^7K0hVsRu*W}yS zS>KW0?N+b|f$MKSTEnPc)(CUtu;%paH~R4R-$AQP&G_bdKNXdzFW7N3T=p z>Ge--tH$y;f65fF3rVg|X2Dr6)Ve@#=7^P!uM7GkGhupe+YJ2~EEoNe-mTKg^Rnm! ztgQizlw)o#@Z(*B{5tRE3EYlihCN13aKe$DBK1#l?HE1KMIFg8Y%;Q3E5ou=?4UeR zV0xNi{m8+(>x+|}MPZu&Pflb8hBbq{^l?c+3Tm@wQXfSnIy|vielFPT-_NGb8GD5V zxH1JMZVo3*t~J{0-(tc!OU{LUQoeN$@~;Jo8f^BuWv8TkiGTnOYUn>Y5iun zr-&*#XTSyu!=#kBc^2-;w_11Xt}i^rxT{}PqmTtRpN_z$gr}_A3-_SFS_O=jo`&yV zJ~T6}Xp$m_x7-3{Hi6_#Xr3INLP0dj zEdw|RnmkWP3BJcOzTJ*~xCE57h_DGl+{ZhcXd760V>qvq7oTV>rzFN6$7|$ud>fON z(XOCrg?58>>nQ2w8r#>-+4Lg)wvk9Tp^WoIjPL9t2^`1I zf=CI(%pCQ->f`0FqGwSAF>=iu6N?FgoYwFXSRGA?Dn^ji zFOe848h`|1OjMGe?Hql!#~i!YjoIDM$@BIFAlL7=?LM9Qu6hu|fj9e{ZS4qX1gvy6 zm1n#$8eXclDa-}FwxeesVEC$Nk);y@@ju$lj;|A>ok9mY^S#@yBCmbgDL4dEik$C{ z(akwqYa~(YU@M(?aF>eE6%wk`tZT@4_GEF$_1oy6q*zQ)Rg3wZAQgtEu(n&q90xQj z080}K^f(6@hC&4hek1_rWXQF>9iF*NxXwnfHhbNL0-MSOLOXy{iO>xy7;oC|??XtM z9B%Ef;S&kfe6=Yg>P=D-KW0wXommY!E z@AAHD9htm3Nw59%I~6lCc^EP`gXw9?b%>jjabA)3them=+SqOH8>FIVA*4!6-+&4T z)(R*Wl!6EWe58co1W)s`G!1!h*T_an#X2@|m;x&5ULLcie4!}MoC)9cnK*S#L>x_0dAtb<0oG&kJW zyCErPwH;E9JPMFnq75tL-TuKe{KSMkGA zrdf6|X~prEE9-0!^miJzcNWL23#E4#kuxjKL8x{Bb$mnVmH?11PhG%npvhA`odmu> zt`{99Q)#LNbAJvyyWe7NhAd3In&0@{rIllHaj8w#aypm%8s?{<*X1h1R}xg2N(q&b3d77798J*mA+CN+Ousc2&b&pxsbd z0r$1YqWjdm+T*0TvtEExs&vD44iADmCje~fO`gWr+sr(4*2pbYd)%GA%AFk-mE9I9 z4l0g<{Z7FOnOl41TLuv@Ru5tir>Eo4DqqaTyFP0J6x^9PKTHq%uq_t4fuM-!jsnCc zpr2ofJ*_y&=TKcgU~h65Vb^Bq-?5V_P0pMDILG{=B$%6OJfoSOp9YP0y9ww%SxIMe zKi-L7JhVq((ap0UYPzK{|2PFV|7YQ*vt(ZpB8e>lV$6JLW8;BO@Q{~$Y@x&RO3~^o z)$#@WzPawQ)%%v`BwvhR

        %W4We9oc3ECg?B?@V$^gwh0U?QpzT}N*&Tid-@GV%- zw6KfF9k{I-_TWC4~5z~5z8kNQw$Aw9hr*RCm( zQC@u1$mrVN<|jVFf*;nxzAxMA;^TPftw!AF%`Eu|+B3MPU35q;0bTLuP6Ra`c#F32 z$rGU)#ppdSywd96;kR%55`}^y1r<+yh-D2T3iV8ICE%&c4fTkPiCsi$R ze8XFCaLcJ)g(a+G-7r?b;$9V<1n%{&)L?2f*aprjhb31l57^qT%N@HV;i2@F#oIcG z6R&6x3DzmIavrZ_t*<*dI|)9nVQj&+9p=*h$7AT`Xi}#nudt+mx~VV;^Hk;oE~n(9 zlFRGV^c~L?QfLzNb#g)snM!jkN70R+?MN&vtR~UfEw0pdDdFPneYvjFFNQrfbs|22V7P79=6~oeCa~e?YxGka~29BGF`z4aqdU$HMMm z->B6j(H=PZky8b_4$m&hStHK7x8q3S65r$Ms>P7u5o8sVs5$no=KT z+}frd1!{wq{9!yS#bKX`+6RlG$Bh*gYuQRuMl@&@b1)<1)+x#QWqeRaBaPl!ND3rp zuiX%6%N@a(*>Vq{4Z#E2CIw0& zw8#sp>0|E^U8XY1=%EMx0VA-NXGPv!4QcNMNZQQYsJ8APONUm_Lvjv=P&ZenHMtEBYKR|>dHcI1EIC}^+9ZS*WB5v6YQVBwmZX~CU#COJ zVD(D^Y^SV8@Wd+7Ja%+b)D+sFA}lT_hK5MlX<8_&#hkBKM#tjD&O~E;^qlWE`MSxy zgA#gHzqti@0D3Uo;IFj!4L6))^|o}gQP$~lg3*z|`N!OJPqeQP<)Rq_Kj?Bn;f1f+ zA=#(Dj~1hD8JPI61|?a2-d>yEI99+)h4iQZnv!~W`d;~`{%`F#( zH6nwzLum{T>S!)uaqBw_F5j7w=BiThym+<|%2U*!xnY!PzI^?jkBqA*n5(7m?^s5D z^l<>FDSdzbiz+ayyOGOu88p$e!FVnT}!2-`PR++0>)nrMr`a%e79-ldn zXtfGH>iA@$hG~%~prXmP5~4(S<}#}|6!DmU`gjaz+85xpXSx-wiL$a^EZ(KqBEk-S zKO$>Vp$vo(=^;)=qyxTm55a1UpdpD?zzEKFPSUv!Uy7AdU}ZNrzgq{$+Wd`M;@!n4 z*1o2TI_ZI~!eOGPs6byS(Q8+Fo5&RXW_^N{PTzor_9QbxKF8BKPNK}16Foy%uD$r} zIZWPd*^O3NEnOebeQqr;p^QjSTW8}9oJJt|oE$-&<|8}hXRu>(7md*{18YTZnfg#f zJ0xDtkt2Wjhtf0%O=t?``mzV<0p|j$j-)LBguW6!V^N`h&&RQBQ5({Xx(~kxcLF&8 z^!i???g(XgxfVw!xA95>gzC05MiS~P~E+S?^0 zk1Y+`j3gI%a?8EZA~>mC&nno`E8=~vTUvL}iSE?GozVho=jlexI8Ob4eX7{I3D1e2 z!z80J1%|Mwzpyi5V;7@^9IBp+k9PASm?77#KzB6iaJ zDmJbZGix$~y|sqCYztAW8&+S3%8o|B@gU-;0QHo14~0+BdHCsi>XASu>?{#l4s6|y z6>*#&4HQvkHsW^m1wE2dpmPV(sKoe8j7D1fwN3SP216aNE3W|UAXU@dy1NYn?XJfW zZG}UKCcamaS-Q%w2Wm#)_;H$-#*6C&x{QX}iZ?Bju?lVaG%d|lSx0>3NYc><6r(k+=&8IRqVwb4LqQkb~mS82~uJ6_x=3q^i6?CG3KEk57V zbu%{>I>HvfNY7giM2T^mjPENy`pIML=Om_QuGk(8IuvWy{)lKddip`xTX^-&Ti#g+ zw%!!r&c4v`sR9BKaSqMyfJwM)?Tb_fPO!}1i};{p-P7c}<03e34w-ZkAFB+oQ3)%n zL3Mu>DyOF|99&1zsvvdMt0l$Bf^mJN|te+42Y((XILj}>AvScd9Wk0L(;Ga@xM z3CHm^rw&qu^2S#gV~>SBy-4(GsHpAbx@3~nYQXl%%O!XFXt{BvoNW4bi1j$C2H7+ zAb?$-Fx~hKvY^0v5JBZ#`Ys9=C4pg&-?2_;oAqjWP@=Rf+0UL*{D+|XUkA*1ZrK8j z!cZ0qU)x)^p;js2R$=+LK3LhkVm<}Zc<9OuOF~t{ZYJAD%<1R~5zuhJF&&<_k{=XC zJT_Ud#NcAzpQJk61N~F&ISv)6GE}DwrPqzj{~0h-y&1VRU}l0LpgN^S5Yh)$xSr(r z4;8+(1VW^Gq}*JqQ(oyZiFP7wRUH0JGPI21v;2V#VGiEo6WBiFPGjhj<*-n^DD$h% zGGT1ef?;%;bo;AqtuMC?I>56}7i>J~9u;mBljso1Ho4WG-1HK`Wnt1(h#l47*KJV3 zEB(cG7yCJztZ#tn)s+W^A-7@3901uI_%Rq5ItNf@y#?Sh z8MI0UA*-Q4wkctvfHDFv8=z5MZM$R6+9BIpI|#8kD@iboSU`g`3R86;m+~+x9}8kl zIEcT(V{BA=8)X{zW`&6GZ7)hz)h?SpcTHSQuZ0!LC02z%Y2(?Eb_KKMRgd z%{S0J461**4@#pQS3(zGf@9{4>6%^oS7m(8YsD_ zU6hFCVpw&*hCsRh4wdRdu{rRt(^MAmf{W;hg#(9ROd*nwr)#TdFHV^qdjPJIBUjMP z55hN(tp>|-kjn?_S1DJyJAk1|ivny<8gXmFG)K}I*SNz8 z+Mto+fa<62hX267-9jU&3$}jhkO45>nGk<9?cM{Ouk)tr#97wscGT3lWrlRJ21azgF%)AGA5F)T5(4rC5#3|VOGlmdQA>68|D@3lM zAeh4AfBXofIi!gk6{|$uDcFb1mh6ocI}K5x`$sIiDvJE@ySxM5#C!dz$$LkIVPHO1 zEJJe#$dlD<)VBV!Ika>r!|qeIuG9Nf>mjEELNM!z?)~@d>UWHd?dw)PI7W(EE$BO3 zF|l7iBZ)Je$a@Kj=0nR~^{v(g=i@mG)5zb`roV^XBl`^>TuX3KA%@?O#WB0HePiRd z(nFneN2%sV37G3_T^`L8FM>6&P1w^=Cg8sB6)^Y6M(U0Un1NrN00+EKtvlRqh+(az zMz$0iVhybDF+NrX6}PX#^>sI@j!BUuIPnRQh8{A78V z!Jfdt(Qf1p8SFYsvbhMfWf`tg+E1~YohP8546N-OQp$yIJWO2jlH58;wai9jy!J>9 zLm8iBZ53@_N=hOp(>O>;#+=}t`~MuiH4IO5yQwa%E7pm2Fm|drBBGJb8iGrLwzQ>h z;E1tPc-y#U?g`X)$2EulC!QI}Y=bp5An17bHGkLLInGP8I?tog?$zMskrSJ)od_L1 zQI>7xN-_Hyj=;-dwiqO7z{_Y5WtWts?+EXDVzgaRQzL+-$+2grd0Uu1=h)PT(S(j` zYyT^-`Y#cCJxS<;hwpH3v*<&$gu`QEjOeNpUrR=h(h0k>x485vwE8`)6UWq?{&g9; zHW%TtY^9-tu`^fFK_6y^cb)cEdkBS^UeShud1sXY?;{H`>j_8Fy*ix2=yA*4b#}#f zNr2FSGJ@0U-rb#v{3mm z?JJKUS;zPE;5AAxuixUYVRj~i@F1DAX@LZ;CY5IIGEjlkfsm`O;d{@+omuOv3{9Rt z4tvQfi9c%X!z=L&x7i0n_7T#n=aLq@%wvWVe3JHK*={jxGxt8YoeF5G=gs*+T}r?3 zZaDpnz10VV8f-AxmY5p0^2wu4{Z|K9{Uqtm!AdDBj|-Ls36ZTgX^%&G{@(4md_I^U zhpka%MseT=d2k#D(v>H}2Powo@{`z5^-}t+msV5@0R3Ym?L0Qq2VLKv@Zs zN=|wSnk(uJh65gJZSJ3hHiVJmdQ!Eoy7{QU@SGR&1RGu-B04e2JT4hI3?q^VCnmR5 zRbIDcMJ#;NF{}mo9Af}(g6~^~pQ|30t`hwqIZp%Dkx=qlvLB?2ApcLBV@{G4?$+IJ zY`pp%`B>6$e<#BJUmgs1mfB9tG5n{S!&HJ)?ZH8ZuF66F!rCx8J zJo0jw2=Bd37GE<>FJ`Q{kBc2?!D$@5l>H#0;JO4XU<$_;7GoRp@LUW=y&3WkBKP+D7#uzTp zc^A&X2~1rapjD@)#~gd32&>usLH~7_I(+*cG`mW=s{_J+Y}y!XWa2C?xoHOJ6qexa z@^U`y+!H;Y6VF@bPU$B187=(-Qm`sph7939Xl##hje>o~T9`N1k*TWDOAfl98{Dp~ zp+I3w$8idW3!dxx^e>K4?*;Bp&AT2jetPi1C_8>Z&^GT)o%i?8&VyvX;ZDQyQM)=yB9*wASgwl^eRN72&VZm!mt=-fLoVuIm{J_%Gtuc zyhL+vyn9GXK1DpLVZstzkcCN*!6qb|m|WoIXd&7(c5)^z(Yp{sN-aK0X49@$@k)=+ z@cUnmYctK6zg6?F`|FvhcLwLgV!>^^r^z7aWgMpz)nwK}8E!9-8pqyahZppWtCLz! z5ORgotwt=3|86DRdc`QGZY@a>Ny8Of(lYBATLM>HfH9ZbNbw_FE=pqI zx?Qf=_4C7>Dy*oIdIkQ4tZ)>_IijCvMrA|TG~oB|{I74L21+x4P)|=1i*#6VZ4xv~!9f~$;HePKh>eC&AtFwRwrdm@fgs1xG!oy8d0|-Nv+_<# zMc**eG$+@;5SR4z9h?w1rCtf8$w0`!R4TGGezpaKh^CapQd~2eCZ(12v8Dd<_?Lxt z!yNMhHO4oLDdDA;AE(B}T`ANlMjw?Bg2*(4$6vR^C#Xz?s*Jth1Qr-u8x8jpwXCNP zqkYM3P|J)B_lo8^PNtM?jn=aLJ7_FXYL1|cP3%kgpjdt|0k0DOY-NF^P^wX4k@32k z&lcJ=<+R03RwE$6?7^Ns|8`bq;qbxMa@Ekmv2x(zPq;J-TFNk+Y73vG|M=|oi=20N z1u{eV#WK1ozT+|oXsWZ6cTa3e`V#(0EYdsPci)lVK^A)#QN{#tqFxeOO-H)Vf(UZP z7cepm+=yeGV@oRCE<{L5bZ@HK4ykw|Cm69}=rfbm#sX^5K5Kqu5%*nT9l{if?x@gNpgE!R zeEGvDy$r)P9x5YGM75edrg5Gqoa!mS1N>;yQm5M z{2nQKaK8!?B;?+Y)(2K0XQ=wlD)tem+ak!0dYv^Edj&(eSX!u!E0e2uW^)R$w&&cP zB7J6C0qz97f3(u=Ue!=RToqRK68w>ZcUxTfA&f&cKCuv0%uYzO-#~_txaeA4 z;|w@MQXs5{kyEF{n`|JzCKmZcQC5ES?RH#)HHP$~@SePP0n+)Nl4Ob8N zFv^6wUlR)B@$QHr#nM*BT;$`N2-(;Sk39lSgt~q;`8D}@#aO_@)0akVQF*sOJIhBO zU)Hi-Rb+Zx{MQ6P3Sdq%e64@?Q#IDTY{q`?_JXSynFCVT=U!(*G&Y*+K`9`b;Gm-; zAh}`=av~=ZeH#ntVe?q`eCA(OANDWp%&EmaOPBfxxb!SMhLQ@Pj;$FrJRQ-e*&>H! z#zEOa3a5T@9CJ9Idy_9iu;Ah}`#f%Rg5G7b2tHDexL@Otd83}v8r3*-Yoo6c?0zhO zM}*xunWGD8i=>EU!i0QN3XEUPku#sJgFj*Fg)W;#ZR_QHpM3+6CdCLYrW5ATXHt>C zi!xYJ>ZeAiL|6gG(^LxO)$tHFT#IR@>EaXQA4k7TZboGf9)JR5tb@irTbJ*?6OP{& z`D+Glt|F%FLH{}rx=ttgI(b)SoV>hqK`Un^$S7$^V&~_4g|AHH!})^ImV6bMY59cC zOe{{+EJ*6*c&i61%HI=L8RW*mwJ|vi#s!t5*FWP6nva6@Z9$a15Wp<-!8P66_R}~5 zLKdq6m+lYWu7IqS%G>&UWwDV}GImcGSSZY0PtB{GYNRw!6Sx`C1uX*OJ~T5SeZ}I8 z40A^Yi=9-0YU81fOi(~mQ8q$-T$4S*;_btMC41>(J&iKSdyfyUp>v!i6wXTr>=y9M z$LUNkK%3J0EgCu}b}w*oYd zUJFy*)QFQ4jao9iDxd5_W4(GAse%;|-DV|qQEheMnMaV(E1|3t3#-C%{Bezt)!t zA@h`BOy(Ao^o1*M_r0oiwlt&2*qY(deuG*FJ1-6VlyuPlW>4vZp;jT)p zj{oWU$Nv**+3(WlFa4l%o%e-{x&SI)0!lW$rJ1F7d+k{o!GGy_wD<2M5Z|n9j0DnOBk>na!vcj|ody-c-j%w~1@K

        o5uxt*t%J3m{nb#}j3LL1n_+#6D z(W1D6g$0R~0EVQS=Qa4z&&XGWS*BWN{P^Dytg(grB$badIaZsPbY<_USMQ9eoOt|$ zki(}}{P^5jFf?yl_I_YZT~FX%onLE~bjwAj0HgDu4RlgiimBEj4Ox=}=*1m6&9kk? zX*gWJ40{70W}E)@M=wx~>0=_L2DHM}fw4$wv6S466PK5g8F3iXcWT2)rQVe8iJjtB zOw$Shg<&Z^xPlVJEO}0(_=cji!UK0*F3V*Km%r^OxFL zS8i-s(5w*o$Yq6!ZhSXjRR`Uj=Crd~KBVjElC}SLRuegGNF=yGcZ;(jZmmlPN2qTH|d*gx47Sbv>2 z{f0%ZY`YthE>)?Ixcn@???*LbshTDK)}kL*clSs&)}3KA%eAI}CU{H6cPPzTLWC8F zN5l*Yh*X(x&joQ~nvNPeZf$)9i*~Pv%8eBObJ4D|9O&KHy)#GcEd&U1lV?-*;a67W zOrs?mO-y9q09m4k-j7+-DO(f?{H5ATke_RRpr+y{%lM$BSdS0tO$~Y9=;`S8F7Xhj zi>olMxGQ4OC+-2Cd8a>%5^ki})4i-5Af$s;^JAqBvC-KznDRD!2=XuRisz6+aJH6^g8S0V`Rvr-Rr=xOd;` zI%;EZ*Z!*WyE?*ZB|dZYyTR)0Z0|>VQA^J|GdhOGBe)a!~OOz&+OAa!>XI59$xdB(pN@ZoA%DGt~X1^VoAt(*3Ue z-8!!ufuXT|+3iM-c`dXyOZiy+!Kngik7(Ela-0h+rHoLGY>AC^n@7Z2&FDWwz=2&h z4ph5O)fS(tKPV92?XABwUy2!PXUvPJ?dk;<*Y%hJ?3k{8oLjK1*l?~?WJP$dEcl} z7%p4WB>gNwRgGgw&aki7NGW>4a;I$3vrZYN+s?FFe8_F-%t0Y*DI2tmgv5?huG}zfnyHJ7&+8`rHR;c`L>y zsOre-I$CTGg?^nAwZLzZq!MBn*2r4oNr4W}Vn~a&gmljeg)4r?Dawz_?NRPeCaM~C zmUbo9XRnr=@^7r5XcxPdeOI$zmU;;U06t)H*hpKT`zXECzXENYVQ}u9s=?Fe?$R7= zNI{t3Ktp7WQ}^4t!$Zt_@cZLxw8Wz07g}-tT}`LV&TW*R9yo1!J@0u)@eUN9-@hFAb0sAnCP~vQ_-lA?7bPyY;1&azWV>X`5d* zHT5x0dyY^wB5JY(-#=+}^}vcWIq!e?7xHRZcopw-4k>H%BvGmknv z$LH!M^MCVhKgxAR<*nG~bs%{{{N|Qu(b{@>zIKqK@soM`68g&0&sEyhyP-64MQf@)eq5W84*-%u~Ut6SIDskw${X}3H zfmM(J8D^doGla|8ZB-p%;`I;2%BNJ`9mPYzsQbL@Ou}rLW*7)o#ixXvLTG@Tnb|Y&RtdUbNkCDVz(Bt}bX*sgU z)v{2r*^TVwj!FtDLSj^NV)MLcoSbNR!DLR1o*mUJbSTniAw1ct`P-E*+||e7fm2N) zM_z+LywR=!(_LR%t3O5_yrnf5;e(m?dpF&Vzlu#Yuii<@=S{5@*@Mwm&QB!SV-ysOHMO;no%y1cJluj3H?~J8muf;urThb>k5fN87+J-y175Fe~75BSr-|99qB_bCN&hnBX6aC3E_A|I|M% z?eJ{&=DCE^1T(J|sg^S@YO%vrl_#`;jel5oe)SzM4?7{f^kk709z{AURY~h(j9YMe zxSsHDEz|R^m%758W$@=eEx~b5<3^9W>s>naRV`Zc6=aD{!IZ2yPvR>+e*V1o`7N~J zaOqt^yit1Df2Eze6wKC+{ipNF`-e^$y>pqA(hs7`_TCb;&XukhGG$-viN?%6-LWKc zQUSQ`(Q=hJidEF>3ZAlZg8#G<|8QE6rW>eYj3V^rdt1ufoySc-bx5b&ox+b?72j1R z^KI3~UP0I$?Iq8$)va&GH{buT)A`R(L3-PqdxfO5rmkZsqu^?woo?sX*PnhX*O5)1 zFRLGUn_K0UU->0tlVQl_Rq3>%p@-P)zJVaAxT!7VWhZX9RMbre`H_=1OyZs%uw)^4oAvh7w8QqBd>QJ|*#0gq@_p5(gQjO6{!=a9 zU25pgt=TY)3+x#9Gh?|@&+>PFlQp>V;!XPX>@%AyzL7ijBkQ!T-@lrh%YV6 zN3>EVH2IsFJ>08Z>&%gsM=QIZ?>L>{2{Kdvk0R@TZi#=6 z$H~7B+ABfATc(9{>aXRSaI7D?f44@~N?P#M)2CJ0R4{vQqUgZobxZbgrya+NPW^$M zOEa+AjeMBsw>f!vr?$${AWwW!UTR>SB=G?CeO`Z+4O3?%yxKz{n7%%HLBMP?M z9qZgbM?OEC_;;Sp<37xyxaD=2)a#+FitVNsLZu+slRtJ(#S!Mgw+{^|& zS!LnpJ~Y71!lyc3wchzT_UmHhxwz|h_zlyPyH&8e=vMXiw*FG2kEymrpPHma(_9kJ zctx9PSc1JwkD8sMUeU%;&_b2s>M#k1(aRm76=>));FBUtkr)7&x}M~-UlU8U)lE=B zIY)e}#4>zy)GS9KlEVP}GItfXkVH`XXAGxrpb2DO0i`-I30@wW>yan-ZigW)c=_K& zTzDag?%6U+k?@MJCe~8<`J^Isi5!poPS8Fg)!gEfq6ka$d4_e1=l=rQ-W2TDLvX@m zVPY)GpE|@JqTb#2F4jJ}6grc;C`QAPiHLj$OQ2-rvyEFsY&WnNRP^z+ zBYNfEiKQs75(3=9K zG|lN4l+Yltn5d3s3k_&Prz8U16v`v@jiP@9&rF}4!nkfsyYFvIpNvN08{{xtJ(WJg zW!O%1K(js9YD4B%a>6jCzdJ|jy2H2aPxWG7;r`F@ERx{MoL1GK%!csO8fIfxUTlFn zxodW5yM;j-=7Wm(KxXP3v_T(3iEJ&6D0#b6Q_6eZ`tOgo2Vrz|7@oL+;37t`eJL=J6drGD@ER3b}9JBn{r;xHD{(`g|7oD z+;xh!nWe~vi3|pv&O2*`o#5LFl+aMEc!vzfi#q@I!t))E9|YcC=KeW=F}Xc5pUI`X z>x9vD#khzaBCEA&J{(HVlZz!$aFZGUMB?(JD68GmR6fWw5t^n!7tLP1%gj|3m6yyv z5F6;uq8k%(Qw3N2_BHe!K4llC)Aheq58jHf&cETCa~X%afB-EAfW_+7xcGj-XpD-?)BmzXm~v+Z~Lb zR7PvHohcnf{k`pVb7r5`K1xInJRYF-j=fGMN&GvY!$lk31kTPbCDWE_xw@w+afRCOlffgh|T-kZdB#c#lG~ z2jAl^ZF?LMXWjC6E0-ZRF?{MO!?xnDyIRCS2f`rK^A;5%a8U|tRY6E)py$b__g`ZN z;5S$IQ8GoGJs~Q1>!n0&^ah$VKtoPvW`KL3t*Z$j= zrqQxP^fm>(|501WR3=ZP7vZ}?*?JJ&ETsG-7# z=l1hYHhyhN3RfxX9d?SNEruF2nUr3Qm1=X~;sF8u>(w)^z9CD&1{#=23A^o6H7mG> z^Sh?q&q(PLMTe?2UknWD!^LoJgY!*Uj@xi!z`mq7JMC^@Wnfq(?hT1F&Eajj z{>y9k_?AP&7EXZa9PmYu(TnEXTWNHE4JPMXR|^^C>La}Gdj2aj{N|_TzQmgJpa=+8 zQJCD{L1{PrI$6+Nj=m7cbnY1)sh_;-k#PI|CrQnD%iJPZW}Pg4ihSABfwIh6(0Yk7 z=Rz3ZcZL&&BCzM^=Zqxp}?a49`yK5( z)tZf5E!=74@`4L*gWq8NwbGMYh*@BxEK+%7C#4t&i1A^ilXKih}!VIDfiu2IHM#ULzx5l|&Ny<% zbrbNutd2arJq=?$#mE5{dsg0#fBUsA?ftC|EP69kZT!mj%d)325z~#Ij0eZCzwDZ1 z!EV8R;?_jZp16B94z5U+G-<(|n7f8(h-%q)%r+O(*}gErVy%c3j9W12CRU86Cw(8f zTQIY7U0N>P2rA6Jee=rZes1`}7dnO2b0YTNc9AKY z5*C+<-q6jtq5WCbFl*Q1n;}#9eh8;IWM8Fj9(o<3`FhgW;+J_^fn4KPBQs{sDvNaw zE5~0&wU?3@>mw{B>wK+q;%(Hdz(cEVT}f9-N?xn-wl@Vu=^0-$I8?NHUhIyCPldrI zqmd<-k>$Kgc~=KhNZVcw8+WAVo+Ace6&!Xoi#_O7^x-evv$tOz-CsDYyWz*^Yb04Q zt;#AOMTJ&}Y}H{UzHMA}+A}xo@ZXpJ9#0e=l*Z{=zdzp)TCm+`Xr){w3lPdoyh+PjP^|wsk2>3Ap6jC6*dxd)%ipKou^a?OetkmM zRms#xY+N35_J@Z$cG=s#-ENe+TX|13QfWS;aX8yS6H+xR(ECBfnX>`ET(R<7pmpPF z`@IMfttz~8rn1jrzn`zEPEzfH`3HZ?IJPf$Ji#sL?Cxs?Gh6xkwl^sg+6SBC_RgRKBl0s*FMhAXkl>TxVlP4k`H7XC2;IownxZ1~o0D zp$(RLdC-oDUsLv!yv@oqyPN5jFTJQ$@M;wn-mw_& zqw`^y2}+lu)n8VlDHt|B}4r> zuu#M)r1;ADFz1tO#Bml`1}iYWNe4ET zDB|Eu?l&+pBwR2}Hmri)UO4R2_+*-e{HI zqtvggK}qf?^%pbpakJJ|i~D*du%`K4j^fSv+#1?Bgzk&D7qZ6wI;mZ9jHwEuWTCVk zEp0f37W(>Ct~9k(w>A^!7K(T&=tjLFuAN-VuGF{&XO*E0J+3KJlM6k`1SJbl!E4Q4~uF^hia@p0cXqsZd$wT9n>-Ko1y*pqCA3M9E)%^Xe zs9*i%)|Ri%$LOA5dnCBg83jq9rRk(wUTdB3z}@tSvrJe8O!-B=@VXP7SnVuYXVxip zPvG!EiXXd)Avlw)F$wKFgc*2cknp0}{93Lo(Y;M_>=)dKANMruY^<}ki?qBm3p;hu zyO*vI-AUNn8maWsc6LeNJx#c2v-0@j65}Dc)1?zXU4=Vrh=iLDd2K5!)2egOz@^KJ zHuh95wBS%oKb-d$xO=*-!ejDk%dd?3DLPeVw@VpB<`x2FcfJXZtvJ@{XJROdd9`9y z8E%@#i@8(*G15s1S%0`ejN9+L3QlS7Kdxd2F1@#U+wM}DxQHvxIKD#9*E?tx=a_4B zqr zo?yW))GXFo&1j(Mp3?qIa5u}Fx`oK-cxM`&98icGib8$UUlUP~G54z44y}smm18UD z2?dyT&hN7QGhCdmi3(2b3T@$>Oh6;o9)q4MVHAp>x<9}LGZ+2DS{d51c;*RSfQoXlQBs!>n@UEC zp5|a5V({uzFt4%5V`FCTZ4L*QZ+qfX8=yaU!7rxzB>4)-oj1(-cX>9Oi_oWwceK)W&KYOOABGiRzwaw&IZ2Cv9T zD$;bI=7sWq4b8vlK|w7m1!D+` z40CQ6wW7??vu=6IO|GvD{-veKIW^(T#e`cY*Y9uGnBu$1^6crWp@w|~T|M$Z@kYj* zlbPryxFvGGx7znW^*JtVe&MD51za?0mA}@ERpjyDj9YX8s<{~K|Ch(i#_T=P+>2Lp zeSHEd<`ylBOZl^KMS{_6i)Df$^}0Wn+yIhI>Ej+(sdiWQ%JKC#%z3xOCb!H@dVpOI zs3MiTJFnY8zyTVJHay7vWbzRW?Mrev8?=HqqdUOLKRa1hhOUYG_%%ziT^W(TsAPlY zGL7NH_Q--e4WoSo@FDsK*Dd0J;j#m=IR`Gp(rV{)tK3F7ax)6@ARgZ ztPSWskO7YVQu*k(4R8`Q>)+mILlbR*QU=aTUSupW+VCRb#d9sTO~P3p>1Seymq;|6)SjZ!?cAu%cyzTWj+|%D~Z?Mmvw=d6NSAR`#|M&az z!KA43of_o!gAQ4z8*kyBwp9h&`F{6C4)>3)m*F4n&A<2azSx^zyKAoFz+4f()n^hi zt+yXP-hbG{&iKnc@ub}G4#{SXRZ7fOgVQ^BetDMN_5$4j!LJS-y*mWI&9_aqryAcM zJ3gPWPu6wcp$r$!ShErZz+w!Br~m?X`d|fE39W<_8jS{M07;XsbB*5nJ1>2JQn2mK z`tfHwnmvzy;O;%M@nRe6<$%|x5mx*7yO3a=p~k~SmpP7Jvrm`L_)0&z@|u!8d~WBa z2MzN^SlUNkK3erX-TOmX&)*YI{N8-sZ8>@Dz2Dp6r@vn}uyyk6ko&InNy+Mv6=Yty zY`b_x(8dEXd#*oxReOE3)o}Kbl}k znjf)d_4ePNrQiKBzx>;L)jW*Es4Yr4j0sdsd% zed~-A%T-S;HafKNvu1}xMRq#0b2tv0i?cT_m}z)n$-%=-oeOe#3YR1L7MmP5n(SS9 z{t?!hKch0&f0pc4*Y4RLuLeJu(cATxZB3r&Xrzx=Cj2A$tKWwfXRzOVCX?Sb!mUp72iFwhs)|ARW|TC(fatqng6v=*ISKA1#|x z?q$VZo@aYivNG20l5NeA3k9}T4)!1SGmbi4z1(ta?&ppc>mRAJUT3)d9Mzh+fONfe zq1Pfq&*S1?%eJg6|BY9yCF_IAPK7QxP<`5S*{m5qM4x*2;cRSL%=7D zDy#2N&#@zYkB=10`Q|(Hv3_&m=pEU&r%4^%cSE5EtS)>+e~awt)Ql|wm)PH4-+oxQ z^1__bzk{9UyvW`)y86|cE4S_=b`R`?QE1dQ2 zOjqcv_s7R4ZIwruzt~nJ7-`v7{xbXa%ny5)Jh^(WcIDQ&=8m*2!*6E${W$lN^5@2d zxa3Ih{HpEeOc&NpT%NoBqqZ^o@B7=9&Yo8v@ow&5dGPP)`##T$2;2L7_ph7x)o*GE z8Es7dbl&Oo(G6n-Co^3cJ8Dj7=F~p;@~e(ne{;`^U+g;C)=n?%e4BQ-ug&A~vU{C7 zADb=d`QxUyb+I*&O@($D|8oP(^=unN0Fn4o1a_H zw%3}oE_?py^5SphF9UjmF6-T`NtmH~Cy(;vbsXpPt~5QpG6(1bTfha^ z7?M!}Eg3=m{bQQZiSh37F~oNa3L0bjX&Av>dLe@x$uu{(ixf1#32NpB*P4cXY8uy& zBGrbHR%8EqNYcX$ZRQ45@z=H>Yx@m-`x%j=hJIaSzsV=HOubAl=E)b($o zMULyP8zlv`{`q|DOQ)u^X_yw-V;nkQP8p(M&c;RVB{H2m7ZJLX>yHDQ!a=)~DS6ZGA z_BkZ(wdi2oPdnc%i7dC<);@bfZ*b;`_tWy8KexslFrT z{%ufT4KL^o&uau(J<9d%G72d%_j{}BUpX`43Hayd|HcZ?HGl#G$OS8kr*Z^Bx+2mA zVrT<8F0))Nha9LNL;B7bq8laglxR^JnF{!h(n!(yrFuru;_KY(7wIekFGY=G?};q; zbomJ!je}V(M!1X0JuXu~wk1pM5Vk*uG#E#%k#tYBUm?uD@;LEWjsiTx5q<) zh_aM!3Ui+WLYqE5N|<~oLrz|_ zOkludIQq*C;Tk2%gy{}N6g@j4dYFjZSVz^z*S14ws4YtUGeC`M!+DV#5IB7XW&%$t zl3|^iCaSxUAyNzU`3jU{utZAU$F@aZZu#kg7%<@i0I2rPMX;ei`!|ey<_ANW2*DS6jVT3c{6)%F? zoQOW&%NI{nbxuJc-IA2y;IuK)I<=8+g?2~-0pI{FrfWK)*Dl z*(jt*H>Q^#JP@4T^Xe@@=NBQBtI1p$R?WBVYRmHL~B78clC> z;%L-wZS2rbfky`dj*iD9RE8%_^CR0=9{dvVOC7pPxnft1*Uue32fs4|>d`#|KC;%( z#Im5&#@RuyO=9|kvuZ6vx)vPlU3$1<#%9&r4L#S(#xrx<-hG;Q-Z6Q%>f5ou)#vit zuHn7K6(cvEk6iz&yR>mq@l1WMPP0Al`_9_~1@*mk-=`l`e&wwCbm&ICJnPfz9?h}r zvc}&2{~Iv%Kl(QbjD}Dr75E26lX=bp6o=wTz&4idgJMU(yiIJx$1NpQi$PMUFcNIe z(c#N-udetlj!rgd;7dg?3AQwm;D2T(IL}*4Lh_^?aoXfFeEzwCX6PKmbK?sIB#gmK zBBh8GxFL+p#3cPz&vmFg3#mWQ6OnEh+3iG;9WF-mNjy8xVigWi*E16k)kjNmK3zfb zM5TB-J=*hDY?+)eLNQ<`bVqzbqBbR0?3i(R0VTuBTmS@@MCvdOJIQq%x0RJZ_MjS%QCgn&abaGPmNa(DD-1h79| zO{U@sR14z?-H2{<`xNaZlE{~ggLyKsD@Qv6z)U5U4XU-oaZJh~gyISk57diRWaK9-4vP*%+3yF?x>4{)p99#=OI?T=UpahYUzHTmV5p^@&1Ax(YXRNa*3 z{FC7s8$a8wuLIIahV=Ww^$kbzyB#(tg^_g>{|Up02Gg+W$h6n{(u=obHU%H+a8Dds zliBN+*qZqF*Mz&n#|qj`-v4$iZAg5_|fY`~HcLv^sJ63-n+ox~E38=PkNb?X|Jx+{2#cj%jY_bK}(& zhTgU2ey@3fjV5cWD#xev{Ht`lKGMXEx_%EilD~&W`+J6`yZeXW2trQy{>R6`>qYH% zEBbRPr{JLW+-IXV3OXN_)SrDZsO8mE-l#G1uYKM(Ui3xtuyOK!-Pq%%$p;;pS+Q>g z5%qRKyDhz2_54Ql*7nZ!A@06f2GplnSkodO#$= zG$~Z($eC1g`u_5uNSsR2OPp=3u8abn_S&Om85S-sG@VTsIC(iw@Sz<>eoPI1Wg4Q5c7o_u?h3aF4i{B$$Y?!ly$7aYhZ@*@D@Lgz2u z>5_uzny>{sL~=me>C$sXSrrw|Bj0z#<5ePK0@zK&J_7kENAjk1_A7BT*+fgbra;vC z2gZUvGZn}M(m5KLYqP&864M4D2wQ_TwI+;eF{ar|)GF5RWT$5MOhQ#Oq`%jf&qSk9 zvH@lHCpqaS6OcmT##Sc#Xe;Ho))qHukuKREDhi>TeNhZza+c!|EgiwIc_}i?DzlY? z>$y_|r67)H;m&twE6R}VbH$m!hd?gc%!D#@-x7ZehYUQiQ?WX9Pzq=Q!IiATo&%XK z5Zdlag55Gq*d(P8W9p>{QB$fc4;Yf2r8vh%XfI+RXH>Y!isc?ar|Pz11DT8~ip+>P z1&|)dK^f%j0^c|`Q!2yEHVvszWM$TFVs9W$g21*J48>_!upV)i3UOcu?<_VYryV((%p5fs~<2BykAtZvnaC zxCgbBhf%ilA5_LHo+0)Hu!?saxcC#Zy+SQuq9yPiMHfKOe@3MLP3&O$OixZuLLtOU z_}IYoI5W7jd2G6KY?`sQpBy}d1PyURCOHB9+|VXg{&`7lHv_(W(@$Mo=2al;fVxV5QUQ#Yg`Bn;=M628wMH?oZz&>487SvRaVJgtEl z(5)Bv(KNJXo+epqo8ZQVk$0sR4b^FA2MdS=A(HO zLDyd|-BJOEwi@~My31=s>lzw*H1yD3i|{*BQ+?J!Prr?7*sB{%q<6bDBjNGo;puPv zQs3K#UG_R!<1K&WlkmYmv4s&>>$tttExy$^rBRabSv$1Caq~O3-AebvRSROjERLyO zw4;9a!J7if^?-w~zH54x@9Y}s@6#2RIY!ll{#@k$b9HcB`}s%Tl--jz^VAm}k0sri zj=TQh@V$|gtGy|AYCe6LV)(y!-8qdn_5Jy3=t`OTrCO8yL4Eysf7Fqxi1TCH<0|F_ zJPAqdZ_$i|CiMEH4y#5ccU&)+@BNlCpBt_CT*t# zOzEy0VoFDhL#vI#dkq8XfsYFIAJW}4#arEL>C-Sr@@dY7MhmZrIU#SYB;_`~Z|3^F z`ab}$|6%|754@%$c>)ZDs1QJ%q`)PCs%0tWOS4_lI9d)u;d13M2B3;VogyI&&>bxK zJPInO(Ou^y@bBSNA+3^Mv)B(PU}C;{nG;q5QHu$Yt(>11 zIg7%Ayi9B&Ie^U4J@1|`#Ocs7Hq$M(0|nZyT)qH7b^^8ulgqbNN)_bH`3^=rsemEp zpIX!@&5pavr0bE{W!bLqaR!a+C}4wBI)^LGUFZasa~&eO5c-dnF0doxzGGER6#pb6T zWtojU%-cxFDiR7;&Y;SrCB?a@KJU<3vm+>6fEUChn+&n?ia>rTz zZC?5rEI?^xVt};FQ5_GnoLuAy)RcT2K707)S~BqT)muZlz8MWWq^Ih4(GFUCi`=== z#OL1>57K`i)&!*{Bx!Oo%?R!!D0SzUhUuf>`i&9z%$0PJ!v>kY{mg(a z5J>=whO@SxxWhSqhN zN}B72r`h2n^`n}FyQ&R*$AXet3?;p@H`LDZudtB3GYNa5>)%2M+|j2#wGI&ya}Pn& zSL|$Dz3a8>rrPZnIt2kWr119TvX=CFU8OCP_{WKbJ8P$hCp)KyNC5*-WQ)U&rYL#w z`m~Rsal_#Wo%VZ1cAtMQ%c|X+**M$h>%8Eaweg<<6Y2xgKFy38SpRdGU&=e-=H?mE z@0`MWynY*5w5dAy=P&0<`cIV)-6$J)P~H9D_2?hZhVK;g7>B$*Q9POPqW59d@VKT$ zZ*|?s#IXMIr%2$lhaDr2D<`d3JKmRT1kD+r9J9PsZPy97{HUHhkCj;^K`hUAMns9&k*uDO^$HS)K<0fl|snP}$ z?=e!?7}aZ<;@is(Cct@GJA8oV-)86geuj6W(dyQjfv=4MYRn|nJg@Hpze=N(-#F5? z|6vgO-*dVD3e;)=hRcbn4T9kE;smzVA}=}?RUA*I>1U`R%5gH_(#5&zB8Wy|)4dQJ z*R#^%0203?`Rb1NFY&I9ye0JOGO;TipZ@&rNwd*gV(@5$B84YAn&z4V}Zs1 z%JSLiPU;1yHUe48_~H(fewOMYE}VsWf|WrKk6(Z!BrdgdLHTC|73Ewy`c#5h$h~eD z2K~(^axjRI6wBzgYP^&N_(CWAUa@N$9p+odA{caR#(I79GZB}IEpw(Ks5pK&gKnU0 zeMYgKkXd$pT!!X@H}tFMfD@e*cO{%^N0p_hW3>EOtR%LkMv7ww0?tr|NGQeS)U{_` ztl<7ZxRYLLfjUgVviOIRzrXu*{%R6HM$eb}~>>puIu_r^R~}W0qFb42=9+8EP$F zn02oNTExb4$f42;40j!l48?5_|HySZM)^%$WF5n3z#>idpUmVai)NFetXt#s;W7;4 z8f3``kwjed{N%db2#V-*Uco3#9)1qiFQj2~W?nu{(%-Mjf_Oqgf!0d07cD3K7!5Y- zZ9OH1X6XSaeLg=U9?{~-G7szhh|0QYJ;Fo_jRSDfayiCg+9O3&ENR+QNx57`y!Fo zSckqg3H@N~`+CW`a&AELPtirJuuqSgH7;8VnPK(k3p)>8e0${aP;A2RwSxK$CqJBh zFkt3AvNNriv!-X``Ki?Fy@xJLoOsY2h*kWw_3gq9C3Cly+D3j@yzz@qN`XDr>=joR z^z&ctKfhe)*B+eGwI;cD9rivp=*uQG%`^1!{Wq9nn?%HZ< zcx%|_fYP2zS!SGnb(i4g!B{jtcBzxc-2kV z_t=!ZR3vxPr#ll5DjsjKpQgI*i!V>s-y7whlt+*El|Rz*4_CePXcJQT=`lb+33o{n zpc>m_sxk}RgMY(D>Y~N2WL+aqb37sD1Z3|V`@Y+v1T)cg6vuDfEI`~$56BP^*_^HL zFkxn20T6{Pc8%ooWFkXbdA36oDW3O1akl#Sq5sNkvggklQ^dlom29jb}n9Q0$mamN<^=9}MJ1T0$`i)`w*% z)1c}FO$Wi12*Zu7q8=2>d|HA$e^lb@X8kBs-dc`;b7cMW3{mP&3$rkq)h$HNWv`hO zCz2Z;DIrrs!S68J69qum6OmJ6dgk1Pxh5(RNT*0~Z_@P{-=5B5;6=o{SV9cd#9B$B z&a%issj(2)c~pyT{I7~NgScJ)zl!zf#N;GFth>g>$%NM)A+bZAC8hc%7E)5Of&UC{{`uX1aRvT`Skn;|MjTHk z@rhjBVnF9OY*C;JG#Rn7^v4AF?@PH{2PXhT$H8_U-4j)U62XQcYo0Iuia#I35~O)AIvJq+Ap;Vud0&70$9XlTp}eH^7E5cqhH4pS<&(o-z)haZ0#MxIqnI zQXY!)sK-5WxFmsssCy#9B5iV>5+a$_01|~}jRO+3CZQMzZ^1<=X0{o{z>AL3AXiT* z(4H;$0WwMPvB0S73Zw~C9XJCpoTp!vz-(1T88C-sv24;Al*nOhy)1ZsfC7ZYOxX4~ z*fEY$ zL8cu#Yv4AAnum%q7&sbkVpg)9Y^Y#iFrThO!@JgJ;3VhS$iEdD|95)*|LP&?=`oJ) zc<1;uJ-BOZYMSXYN(vcAf~J7vJ0$IFotg$A-CX}+%aA&5aEFnk-pId=89qf?M_4ro z<~_m;9IWq|X0Gijs+$z}bQ}5AFe1BeyihlHYgi#)jeNVAp%L+<9xYZD5h5xZH6|-I8cRlPNEFH}bf2{C>mK+Yil; z8^?2s2Q&Yk%(~xy`$q4rXCv3147Utvn(KxbK_B(PpIHPx{nV{_Q=uuU*1T_+D(})1 zcTY)@zWAk=c*Tvz{#Ld6x8W_Rk40PiR_y-lvE`ei{1bm=SyEolv0Fpu3)?Ric3pV< zE$Qyi`V$>n(_13X_Uy@N`Q=iNvF`_pm&S1Q2WDV9H=KB-`9KP9GxDl2_4>~9uAxZl zsnRLh#&3pUlRW=VhLXYmB2xYHu>Y_E1Z-0T0N^Mf#7{b104xBkMfQwNQK?8tT!w>x zt`Nv!C>pm{<_VJGsg8s3)%2nF%paWEoI!Dpl-A2DOV!@jB{ z(iM@xw$?Hf0(3HJD^%f-i0r0ql7fk|X;e_c&eN49Kt~Pi8ywY{ZV*3>$8(WhZe}j_ zGz-Pi3<`z0h^mCdauT4B8LxXseOx|*qZjPbN-Qx3H#y09Z-ppXTPuQEzMn22S

        M zUN2TC;@Zq-8|65uzCsv-Y(&pRL~G;_Z4tH@vqDKTgj7$1N>aA`2yBw?BvhaV%P7n$ z%>nBsRG$3nqhCkGQraMJKK4EJL?njjYX7(d99E@JC~>1|5$X6D8n9{#vQLG4JUyP1 zXZHZQ2x%1q*shQQh;nNn23fDR$Bd|1ff!i0`ttE3>LoxWlz;Q7zHhnmrH#Z>E= z?5MI+Hb)gehde2)(0la|i-pV|W{2xjwlqE8gg9o(aHB7Ov(o72OB1e5Q_EEF^yAAz%kbovc+{+4SWJvo74A%{Ap!<#Z$JcWsCo4xa z&%bI$ziZ%tDRy|TNpO>8KwWU!XQS0kf7VQQb!(c3HCBG_%DbktrQ;U9-y)Lwe%$!R zD4@D$STlc9d3lTGe)*tb$S^nLBUe(Men<1Da+nm*Nr{{yMK!UdjSuU`pwMO`-v-fk zRd8Ixm}YQrbi_NU);qa+_qC3-@>eN2Z`dK9+|xP&jy~FRG%qami9F{^Qh~<6cOvac z|AjwWPG0TT^?wtbTB;v0B#;g)Pwdu~wy)k=VH4cCG5u}8;m<#=sgVR-v0wLkPIReb zXzLHrotEpyc4vNEy{BVs(l`IzQyx3UrSh8D5g!+CsN9}b6Pa3FF*se{qoGJDYDYA> z-lH^Mb!GR|#}-Zhbhl&dU*nqIiHWAAfrZZ7A1qz}q;Gh{*stYJd?@#W=H{EB^N;(r z{9Di8R~v?Y)Aeus51{hTKmVIo;9tl!ECVPJnn9p6j!Qv2uv{{PtFm2^xi<5has1Ue zI)h7RgUc`DCZNyxJ9(R^eF@%qp4Psxy?+3z97C?ctpUIEl) z#_K~jqJ(U%rA;4$u-Aaiq!*^z%8CiP#VlyD9f%Y`X4aP-l>#^UJO)(=?B#J8i?(RP z5+pN0Zs0)Y%{m7X0NEPsM{Rvn6goveN4U#U6pc99sjiPn#Ygn@xxeOaMBilS&a_Lp zwMB|1-Q0PHORrRUlj(G8x)T=X4v`MLKs-q}M&-blyPL!la*U!)bu74nChAe#v#d2K z3I(P%irjAEk{3sGR~Ur$+=JSw^2K|AvoKFFGD6xBEfr}|Y6w`OBZ4AwWVR9~M<7ZM z4wUPIv2^g4u277!4eYH8iz#ODWCU{a1-S|;#g>rMp`i?S$X+6*Kw`IkH+`@4ym&}Y z5RH;FrWv0Aj0y>F@;TskWSMDRkvW{e5m~(CC@>OYD_jmf%FCi5Q?^2+3kx!eiLvA| z5k$8W%OSQW;o;WmL4iPLw?M><^_qdhKN%{a^;$svoW#t_h&o`p1@(Yzy@>1&W;#)K zaLc()P7lAZ1FWMlgk)CxLjNL;qh0ZOXa+wQca4}Q!Y zNF0e%+C=lQq#?r-rv)WQy}UUm3mfV`XKU+44l2aAv(^-RQ}sbLVe7AK9sb9*kd-%f`Om&HdA(=ujGemQ0!P(Dk!`DgZJ4|1lT~2* z(%72i`@T4@D;I98oxAIUWk7AjFQ1n0`MUbRTY-3d?Y3g~gI)FqdSBzJKc4jWz{$UQ{&?Mc>W#XmPg6Oq86N#QG^ClF?s!}=@%N|U@`lOJ zUp3`lM~^=2^N@E1rPg?)c7_~jUz6NQ>=;ppd!pm-`z19-B){3MnE3gkD&bO{{6=ST zZc9*_+9&mURPu+|td4C*Tex10#z8Mxp`W?Ig^Y+k=XI?f7rTvHy{$`-g(<4-i1SX4Cn6XHP=^NYk|rzNALf;2&3px>5FG|T3{#OvA=Q1+V|K+$fT@hu>d4{WQ0o&+;kxNFMP4GT)FF= z1}Y$GqS(w73^v_cruB!wootcfPDd0f<}Ncx|CNsbB*ZP%L-;UejBg_|kJV^!VH6Z+ z!H8lb*@Cxpr>$(^J_JLklwYR#o{Gfc=QOx?#8n6KlqP{RSn5VH5C{`NggQ@7kC94I zGPmrs%PJvVowSMuVqf@pe%3ltm%FcQNn4r3A?cMQ@m$ZI&f#zrBhXj=fqK2kmq(ZOyD%!*>t6b0-T zLGo2el6^RL=@MBA#V|!dmONYxP}r6(bcNy$3jl-DbLu52z&g*}0?ERO(ZNpYxI=4r zd2*eoAuKzJo#zNqlarL#WouNJaD;LpR{`kTkVse3_aFq*UHY@gjb>Ehqg=seiySvnS*IY?PI=zq9_A)RK2v=XR1HaWue>m-bT znfJP2|EWzmJ%@5t0?EV90S)2j&<(0*g?(-qpXN(y*a0nYSRcXkxjrrOoQ{Huv6gO) zk#Em{W}t0o$~>g=(3LJih_MTMYq9pdgxa!PF6&BMcHs`vo@M*%E!Vft-`RKR?pMiSmG;`s;9oxm9DTAm_do7A+PvrVSkm2z*u)lJd2?ud zUvO&c>Uhh8t*B0;A56F*r(ZM<|BnRX|H?)G1H3_vK&pb|fCM8lA?lJy zH(26H_^d@~dK9Kas=zQSS%yTG3D6Z}NGO?oJx>Ke`-gxK>9;A?qM1-rgvq!TCCygp zm7!pzGw4h8&!mF5v?~l2Pm-GlRst5+*$|I>slx$GDP1`u{x{NM$`VI}R79rI_qicx zz)W)DN@{4TLV)`NOQXC4N=y_-(O*I&PsS6S9*%l;s$6`1F;%adT|ms?IEw1SGn`7m zJdCw)n&*pRxCCPA`(%#riG;kprm9=Y=;PAZQ-L{H@bYp{9{1tHF z1D6BbSbLxoZ>uOaFk~xn3Z0FT0dvca2#7@|okts&`_w|jwkIOf4rc(PBqaxjSQpd{ zd8P<6j z!Hqlea0-;=nM7)Rh06Jc1x3JhW`0r;d(kqqn4aaRz#vPao<%%znV^VqK6e9!wTOFO>Ozy$ zl(}%7Q5EE0XDEh9kqH!xMo+&7=;#`Oin3a@-jeR#E%N) zbL$}DcJihi2=O74COeS==9Ur^(sIt&2D3~Zb;GoU86Um>T`BpGWSjmk{=U(FA=@0k zF`}|Z$kmA zX^IENi2~mEkY;3RxN=-mTsN6hF_!&y{Njt@lE$G&%4x!e5s?1OKlznsYBxt*JAeCk zZg};w!(+jzZ85)%Y&!mR+og%9#IKUfzHLWK*2PsW`=!B3Qe_vQToPERD`}*8YZx(8 zGeb%&!-f}cta6Z5E!%5FYx)rHK3LlNU%{b&9`pZi1qi&R zv7Hcr9U%jPsN%vVIiv+yZ>f<+0l5K@ILOCPK=VGHo+4Ga#HZQLD6maIuy~ku&Qp{j zZh{iXMyMl-qa@girzRQ@BUdfikmM*30w@m9=jQt`&HeqNVMG?6w%Z8$L2FP^LhKDS^F`-#V-;(*K zl5BAhN3}b=#J}~pJU+%)=TX^1PKRsyW7s!CEV6V7Nz|SlVvCBzkU6sl6@o}WcC(pL zCKjL&@hav0YL##C-iRURSg})LKQ5JPUs+NC?X1K?AS0i#QKCPC}0qjss=;_0S!%2 z5zajOJ!hYH{r_L~`F7S`=UYC^TFGS1+`s$2?yD4uSGzFqTd63C&0ANLe^{JK$%occ zMcI&gaB>hNN%7ahNn%+@ke20yf=VP&kmrb{@f^}*g5!u-B~M|CiWPKZkb;Ph6Av%!;lP$+JVGS!T$DSI!-~Tg6bYac;x0fQHPb$;jF=el z%`qs0Xbb@XB`Sn~g{&4fRxBKaRp<;J;J3kx(kLNOugM0n_gYFkWZangk4GTbK}=L!Aa z1d@L-vr&yB$#)qO{A+UYANvq6bY^Mkp9Wjn2VF+aOZ&`-`_7I2UXcy`t>QQOVGgAP zPD_VOL97o$OUqEiuc!(X+D6rllT)*Q-u+mX4jYyY6-r0^R`FS+`VB%pEAn9@uclW} z@r+XNq&jOrDe#rDk7#aoc?BhQhy7MY_3*5(DA^6qnt$B$TikD2oHgC~)EqTny6yf=UA<-)cjA7eOU;$fc> z%Z8V}|54w)Y_z3CEpGb$+dpO3e^osCqRo6$Qag97eWmu<&vOsIU48szdindCS(KZx zEYIqj`#Hb3GAYJ--PpeJ=;Mkk>qATT&z6~$mZ_D2_aau-*T@4ey-VI~LWZ|w)Y_zc zbV>gbT`=OCKjO%q@-Lmr$Zbk09SAONK3KuuTG*u>I(nq)sXps<>iN&7YbSNX2ai1Y zX||O08p+Y`vP#E+Fd^Cvh0)d@lv)uw*Vpqc$2l zC4;s3c`$}_PCfT$kAAj_G?v?@S>L5!wIN<^HgRx&7Li${=KHbl$ED~b%KIfGr5asHcII#APF(0U?o|^ zWEMaQA6BzpTH%|<6k#OV2#6w^`$A)% z8jVH36BaE8^Kt>YD_(QW1va2s$vMZAq0sTgV)b160-QgsLc=6;O;sKw2?HfKRaSF} zcoOFvSz~_^tWH!-Mkq$2BqH{R35%$$=}JJb8sT+Apb{$1i8dti0fHP2ZiNa9&?Gtq zfbSru4YSw^3G*fB{z1$U!~{}B&6{+sQ6vRREg}L3bBGu@$%5+cOF^rsyaqJ~B9kqK z_0;EJ$%qdaf{A9*uoCe?m_TTT9RhLWnF7ojCV?%BBQp7N*2D{ddwL-aN>4K7A~^X1 zDiyRqgZGF)GgBr&ic4!$&GB^R-@knk3xosZ{(U~u5rEritSSl^Nf`*T$ZK$dF*r!MyGSQdp3VN8UwF&boSFII=}znIym9o~Ox)c-}x{s-Fry&@ethnhN} zPERD?pEALVVDK!uphRmnDyxz8TllcFjH+f-f`@On%|7V=1#Vvav%G++8ZiNXC{cf8 z!$-v<7Aawqiax_u|(gbkabgbobNE;oKyX&6}6^6Mc*&z%2z=3K{=;nqPELFxUn zJn(A;<$iQbFB?YptNC`5{HIj6zM%RIiGI(UhPNq24b^mh*;O{68rrSmJ0k1Xd*|&^ zYu}ISFXn)VuUcVUS}gQ}Pf`J6;+~z#J_{rBE0F&z+O_|6dhF`+sVjATTgv`qof|s& zbcS8g5s}{&QN394;Jtc$>tFYN$OSJQt(jM1{yKJRPA~Y4OK7c$U%&Hyp^pEM{k{xxO59cu33bbwJKcNTIOo&Xi7I~DP+O`mzh|C)T)8e>dHZceAY2l686<7(QTM!w-}D}2 zPR-7*NN;&BA3R72_!peN-{rZ?z= zI`|FIM5YrBkub#DjTizE`FAjmCYixW`VJu077N3)MnKVtYSIQEX=#g1%HW(}hBgrEtU7#6i6ELbs+c~7k0VK+x(l&l0iKw&=s{=#I3`qjs zk>1_}*CB))GQ#t*$76^%#jMxRs1LV^AYL!3#^ZW{P++^@Y%2!K=VEZ{Xo4&dUkw6~ zM}I`N{SI~zOOZr{(R4pRD8vK38CgKh0~UgHy4wKDc=IEiWidH4WD7=ai_RsG+DvAgB`hsnOb}ELh zY|RpF&KZixZ6`@LQB;qANtZa?KDmgI_6vN>ddU$O-#SE8+u`(T$PH|#bKn@Vl_5U*V{*phEhPbqzKfp>XLrF}ecma>wVuC**so5ql zU_dA;{2!Vvl=<}Uox#6AxW!-S1cwP*B>Mi5_FY8#1KBWCur((eI{V@G^5oB7K=9oB z(w~7@R2T52XJ%R4??+b6pjya#iOAn_te=>OdDH{4to|Dc(V>oGq=0E4YGvQmew28M zQa_22lggnlZg-%2=_U28GZ_C_3Tt6`ZbivoMD?Ex%$tz$`=A!u(=oQ95kBITAsU?e zBM~}0H^1z#XX4f5G7#|%AMshqZ~SKaO5?!K;`-Sl-tduoqUk>iqQ$8%^D7-+mtTMQ ztrO5=;yY}zrAsVwMmMx0u6Q8j>Zf)4r%ks%(~RgA^Z7*feT(s*lnHpN9NJiX?K9SA z#L&Ap`_eD{O)ZhRt!8nr*KX~}X4jq1;2rOnF}3TWN6pheDFpXWHuZjAp6&m=qUiQsBJ`!AU$cC8|vP)vM6lF^(s0%7f5J#*VR@F8s zo9_UT`j-aoj6`>!8&d3u0EvMxmWh&fCFs6yck0Ij%^){3;K zp<;6>ok|+5sPH^?dmFb2wVecrwt0L_8kCcby{!zxvLbs-prM`7EBot(7(be22_VcV zlXrxU8JJKIoPpC3c+WZ-y9JUx02c{SZ!{+&G_T0hlV)q0E7F5GF35S38ue}njRjKH z$rD*jn5zRkT&?JK#a!F@>sw2pd?k~{$0;a~NeZq)d|MXX4r?9kOQVBF`*1|*TkJ+M zsEp;X0ZS^9qrs|SHHdE^qI`BUbRv>=HlXBV4*T=e!3UcOjj9S*ZUYf2KpPf}!Avt` zAY>q3T2$vo8A)0SPG;A3O_Xw}oAe%@@e#1WyfLN%gn31QFb2d(KOn~m;HyEFpZQS7 zdZsJXdkk9z1llEx(OgL=^GBLU%Lf6903w-NBDhd=W&&s`l@TERA4{@mtR=UND5)C3 zN8Al)d4P5jiy^kzIupQ6OeBNgU;Yh^fXw=NeWJe|7Cfs3@Ul;UZEzJOx}FCR(c}#p zLwN(8*{T?PP8x_y)@|Su#0*6^i~}vnh^%0KHXF0Sj?;oc(Y9Wa6oS&B;?l}}0TK>i zy8#-O_c9X9PQs1+SGG9} zj82WTy|W_OU*;|nGF9&wU$D`Nt46qsS^$u zqDH;Uw?BXVQ>w+7qh#MntnU!cXO!gA`}6n0+#))`Ez9~hNqe`-1Pq9Ij7htX$hZwi z1`EmFZ?S%_Wqo={o?igpiLu|y;$FQ_@Y?~=GS$CR#R!7?(n@&Ju`o>p1tJI37pp$y7XRHnxptl==wF~)xK8oY*h6eRPpQ~hrC`L z(XJ8l3<~e*82SBsep%7y7Rj^2e#cYYz`M$RO)?(0WIY~J{T>(H8}FI=gZ29I{L6Ch z$dXO?9TksuMep%jEx+CO2~R#0;k{=h+#ad;jg>tb^2=$V27guZy2eQUKn;63Grz3t zQ*Rj9r04Z4l0CdGL+BXY_+)72+KZnTUd%-mb=~a}tqpx(z**cza_3N3N?@!!%ci>Y0fh(^vE((uc9IN7q zuKYc5_Ms^E;zG`Y&*is9wj6jxa%&QI>c{!F>P0?Szr7CY(WMgh3hN{!I8NdGJ0<*D zWW74%oG;4Q*UJRl#BXR&@j4?OSZnC=$k^wKh0had|2yj#rTU(CC=OHWwl}RxX?99} zZ5h?KI=E+b_;ZtO&mB_+Ysp%~uAJKK~`(a@`or=M%if(-C&HMh<`J4$oVyF1Rj&|YSs zPa1AZ)^W>Imo;FO+`iOVNCQ1c#kQ|IHGqb>a8}`sCv1D3s$&04` zI|Z`FTRQ4*eQ3qtUHgI0Sq<3=;*Sf>l$Ow;na}0{yQ$fvIj@_2UXs0s9rZa#nYBr zv1V!Fi5qP9$omT%On~<)w2U(=Z}-hKqen&sz;BeoP2BKjLhBqy!cwGo_$`~srE6d? zT`B2Qc8M5aB%wr!7MfeYb~#BXSTBM>!|1aV5B$Q}#;8LH!JEZu;TaIW2EL~WXmD^N z*_aLvL&ZIscNVmN*ESkSATt}Jj5C{?BGACZ%0sf&JZETwDhnpumKHLU6?!cK!M*?< z8`8HF0wHJa?fH<^cIp!!r1Zd zjld9)>jxNsz90c6Ns|Q(aZG*x)qH1pl#7*iw^>@M*5ZvY0cQu>1LB$XczK(vLIAJD z%*q0#?MCelxRw+IuQK`yD`mGN`do6;hSltfYsnb7!%6?W!%*3Pi{Q@$(-;)7c(y$l zjc^gq`;;&$VV41t4F&W^3dz_ypc5d})x#d}+fTO# zY5;Lq5+pWYCBQ}Sh0-ma4+YOu{u&{aRTJ>v+-RM;cRw!{hIQO%f_6-qvAF|e9qq;d z#VLsmI-mhBYtxHFenU?99aoSK)<2D^u{fv(OXA7L9Dxfo^9M%wVgxplvtt1iYlH=i z(=59YS(okfgTehSTg4W_h!0}h7iXSRtN|eX`7=NoLx1JInA8vpQ!N zjH^Is!eV3WXl^Ql6`%tT_dq{J zpNcBsOXEdxHMraE(2r7R1n1L zyDvT0KR_X=*Z8{@9jkVFn^Y!^Xx4x{nP@z$?g4KRCC-I%gj z$k|m51VyfvpTf4rlUY|UDK_%;cDu@s*SKht;2fd>0?p9dZlr4(0K{K!8r)c3FO;gI zjhg%Jzqxm_U`PsE%Pn~LQLM%+>lcd0TasMfd|B_0` zv`WZm&)hPJ^#_WW{4l?a!YxXE^U7O)49u>mguGP=7)4FB0oKfo&OegjgF|1J0oEs( zfVs&9lp5Hp892POfPUA|i^<=1se=oD=2ZMAJ@>!0iX6p;e+8v&wM zMGmgn-m?nDU1Gbrk7v&||Cn7FEvcWYditZ~)AH+;m4^f0 zE#80qZ}lwrRTZ-cKFYlS5DEcXCEz%jc3$ zFCNHiODi3UuKZMZdAi{0Si!By~3}cr&RwBC{ds8b4_W} zkFY~iVeF4#g+j)j(U2X@9%)0~`~DlYP9Ra$fC)Ba6J?Fi)@j5(TTPd|=}UmPO@lGm(&#i~S!1)LHw*aeCDAYPUO|Isi<{U=kF;aKRBOubb0^sJjOq zGT8k5?v04+rRPnojg5Im-^w|Un)i&08xiL7)rN41h{SX<{lopnR=!26p6)! z8szU2q~cGi*EP)7;L7t>r07p|JF2<3%3W9bmXHP0XMYF1e`J^~hTE2_Q_0H4wEGq6 zv;5s|=>vqI{!y8jJxW5Z?~MmKo4q}sxTqjr(k+OT^meP~fFf7!^_CA2v8VTvT`3Ka zc9M%`%27E!Khtx)C@5RXqR$_6ix44H04|5IG)4IQ&hm-evpe@(VZn(8FbBpvo^3hp zOQnv>5Il4jf<4{y9t5R8Nw@eBK(#pl?E&ShcI^7PpqGME9hIq~bN~>6NaHgwcstQM zLT!Yg6oU&FmEsiTSqbX4RUU~{lNq6%l4n1A zMG7CjLdn8!@WhkISW99PQ7NZx?6}7XhCqS;34hj4@oAqE7s%mb*V`a= zC+8%9wM9l4kQvhybwT49JRTwS};EbGQeT+vr*O~hh#B$ zOPDQADG)v*82E$PfOs^UK&BO>BuU9t|7-`y<+u5ea&-zU3kms+;skO-lb%@fEW_{b zR_73$fyPgz%g5H^QvuZrw?G;5UTy;*K~B14Bq5?T+|iCtDh0QbR^WVy87?$2F;xW! z*n(k!3nT^0?@D`^%lvjzx6DKfv!%Sj9ulvnHDE4wz2ZwK@b5Y3{?WXDX%+BT6Oj{h z)og_r1^h;hQv|y5i|S8$AVZd=cp|FGJO;s#>96#mynbN==tk$niA!GR1Fp)h^f8PD zJ_!q0p*$_nT$SmHN!AgzLl%k@`+E$7Uz95p*W0<0@=T%^+uVXaYL z16SlxU=pU@QwSOYj(Wc?n;VhX(`}3bV zoO4u|nt(ivA?UcQ(ItQI3t!FFq>KWjV7{sa1(BPG_=muY-75sZ3-*+kk!(3@go+W+ zpiN0IK@rF$_QPn_<>53V>RB~anmEP=kfRHAD@J1N+9UjcRhpp8{PT6C4A{Vfnbj9; z25fBuB*L}XGIpOp8WAC>vOpO+&Et{EP!)w%Q*%$#6>9_6&brt|$#IXkNA#SJ7voB% z@z>zF{Nu_3eUd-HCLtM^<(-f}{9vjG4MM_fVXI~Nv%$Icpi($WMJ1sWk`Q&JeZ6?I zFWwk1E{GXc6#PLX@5b8bU<~$HueRu>AyAZS0VG4iTqRStrlt&BI2~0bkFSX-D-xIr z3OKn%T*B3o;^P&*=gd#e7ah1YeqmOtros{-ezYrKM8a4?!JO5qLka^Oja7?3@7io7 zU9`^S@$w$CKqrIerS98KI0gE9{$;2c*XpcCVgiw7Nv=Wi+#J(j;M|nzY4?)eo{{!g zKdsv(fDye=mNgY8c_N;0X5 zVb$k~=9X6~j^`+A6MIHJL`C|wzZtGSSuS|@HaKW)_sEcqKDDqgC3pW0H$U5eZMNYd z_PbJ|LN|MEiE#I0dH95T9m)$VEy(oqcT702J#9yX?FJn~8=bZ{AI?4ha;|a4&dyN9 zL{(iLl9m=TTCM$Z^s|wP+Y==T+-H9qx4uJic%ua(@6T-1((&n0KsrTTEzT zlz&9zmiPqsqT0^bt$s)A-`;uAaq#9~`k^Bax`(f}jAygmn=W6xoR<^5C+7T#+>W8w z9m9iy_pg0o=)uV*#+IuL479@i9kr~qP3;U#7}^e=jtqYf%XQjoJS?NOn0m%;4BQ^% zm&njqt>SE@3 zx3aKZYtq`^)7W&SEaj^d|54-)FgDsjIgnuP=D;sO-uu_pK(bUZx)2I!->8_wSu^+On2i z`zHU?`Mm0)sJIRJr>khekd2EnP_^cEWb|Y@r}an@948gTDLY5kB^^;y}|7>L@k3>cFI*B<89^VO8=fV=JS9} z5g=9(7EX>4_nL)W+CBisu*){Oq^V8UegcX>=up{9{+YhZp z4(!|a?c1|wE|fE7GZk zw>vR75Q7D(n%Zi1!q!ZVV`(QjhcA0zyRNv7ukB15Y`I;gBk(X$>m$)F)(X!@7*U|Q7k2N$`m0Y7z z5Xm+aBwfij_k?_F;k5CYXYe`dDCYS7MKth90_Jqcg_+9K!fSxrS>?H^WJKa3)m)%@ zU@Gi_@oRE)w!D43ssz<^TL~^6&1QE!OQheTqjPaLqo=Xu;1Ez|u z(pRlHG#0HGVl;{gh=_6l91jv3NsfTB%{gC#Sn8e?OO%x1^>Y{e*amT`n4n${3HMF zVB_mg6^)-C^o;-bJz3k0CVwr~w1565#4&LE(Bm-zkud(L|6b?ViKe&ZPe#u-h%9Y% z5AyoNC1j`ya)4c_d17eb-q|@yBZfceQa;6hmD?-n^A0_%k1!{`kwx{)Zo=? zRUOt_I9kcG_dD&|?Q)_lQ{PEx-|m191N~P7Z}W0p^D{ydVoa6PHRIylDj&|?@9kXY zpkn5+S}9`0a1C8Is9i!=+$!;P^FV**w&2uQ=a9&CF)oZKaS+a8><1zx*#@p}r40e&*chzS1)26lLS@Zg97BzrV9}e$Aw*v*F-C zdu+NBA!4{NFM-7Rp&Rr@)_Y)G(Ax0rzMtp5=mdSbT9H>$yt(-HVntEn<>MKbFC-pM z4QI#sl4YsKD&v&&b<(RRJ@yUx*cc|}1s~X*_`IuGJY+B}KinYZjg6(aZ{(`-l7Pya z6Z%1qi*qs*ygnT{k$Lth@9y1m7te5l?99Vb*0@Fo1!cHJZZ^(Hw@x|sjuGCIT#>{+ zu)$cBuq|sXWBFMW)qrMq3ZdZ!%)hV7Q=IM#@M)lm@b^^nKRYp&oh#6%zJe zuUF2Ew3iyD){Sv{XntkR8ePLRC7KP)tjEMsB^Y_RiLFc-6Yx2=ZjhC8`uFk}7OQqR z@7P}(J1^j<#Q+Jj zSVy*Gok2p#f$HRRg=QTGOjhQKBo|<&aqq~_M zhYNcsC-X}I34u16@3LrKsSYA%ft)QoO<(3^(-jIxNtysav!HmH zoBl;{3BV-HFtkVo3eO06l^N0j`#O(N&N*~8w`@@^%%CVJM~s#2cG4~P$^13lJK>~x zG4z#>=K7WNlFJ1LEW4eScFa>T_v^MDbL8WVr+CfsiBq@Q^sY_a?pQN9bw}WAJbkw} zFmd``f9$pCy5ZfE)AxmW#$W5lDiXgw7{7E44M47&{Q5|Q5BvCdZm-9;CtzCGMR@V+ zwH<%|*eOnb0tFQYZN;t_BT{M8K~%ZjxVZ@l3sMD5Z(6Z*u2_n)cMUE~BdJtLwA~)2rJYUoOpd8$6my>TvU0 zx-Iyr_1BJWBZt2hnyvfD$m=&n!}s1qh$q2KDrK8@1jS`cS@kDYy=6R0tMR(gA9ApG zc3@A?%3I69UFXC3{dD1?4E2*yt)n}G} zcfI(w`u=t^&Yz`I?|0O-O49j%zT;sqWfzKRaYul9WVT_`K`@OwFH`fhUJi~@q6Q%9!AefDGPueoa$pOrXu>>-x>GIw5F z<1!5a(pZ){2w1!5*z4p| z>`twglHjx+v`Q{!kq1=T>l?IdeR5-Twg6g5&rB`M^S94y&vYra+3D?yAi!tv$KzWu zI!l@(sauREd`#dv$_liUvPfzO{KfTJ4#8U$;Wq= zhHVbcaM{(nTfq2<=Wz|IN|dha-aX)ku)g08xq@Ms$0S(CD6cN3rCkE0Db4pHR+Xsd z=utDStdI4Uta_Jr+A_D@q5tq)WrzD_u?jcu=*C*CQsyVJJ|Qb}Thi$+V_=;}{7OUW zQ&9@e09l_g?!EJQPx;L;Jsq)=-W_Z%h9FnHac0lG#MaWYFB(TcJs$HwmIweJ>)Y=c z7aZD~R;4mMzR@@opd|TU*tXx$d9|{=Sz~#g+harVRNJ2D5jtqG{)$qf`}5OU*Yah! zh<8we-+6WMEAHu6Zyh+W4}&iZ=?BWRBgg^v~OpLhi2X}D2aP1Y@y9XOp(Tm4+#9C#R^U%?!F%Wm}dB~ zyU$4ZyV6m$1ct20Ehu{TF6m%|>V2#6!Z8|@e8V~BPlmlASz8{=yw0ak-lVTsV!*7H zGXTs%Z0j49uBoZ**jFXiulMG1S-Cyrn@k#zp8^y*95u3rTn$b5lE=7TX{g7NzyIhR z(uc3!CGoDDUII zdSGLwJ$cD^y+-tiST;)}EzZeRqnzV^B#%q&PQsHF=7ErYdy-vs*Vdhtl+1wZHU~wy ziX7|nu^xQs)0`~oZ_A>Mt_-Oy*GD%m(qG_O2Nzb#rL8eyU7Sy%yt6Xd z#M!dT+v@23Y@B!9tnsnO+0qx_#^iPUybu(2-Y5BRYd?JO$K%&-@&HbSmVf>MakFPx zP=`)Hnoh7NVPAx#*_s5i{p*{*2OMK9Zu6j-2HqBlv<8E z?)qgnkD%)xA`p8Eidiz*9w)zx!^|v#mU>BTIf7GOp*x7XzN3_FWMB_kTfF!gQ>X7Q zB<*d@WMl|19{a&|<|@9`UL>0YoO-F72}x87rcWG{*u9m)rk|{xGr!Ehde>*ZjtEEA zbA(bh1gkzDA*Aom8n`r_g^#9@E*~@nbm0b4H7n0+B^jf|g(Rmow3+zB;!$v8_kAOT z-i(l$NPW*WYMwe}L~7sG$3Ti8TYVTFIAqqW%iOZ-sm82KJPnlSI{nkYpFdml{$Zr} zjJPfbA!WU^GdDR4It7O zC}GLVGK9euM+_!|2Whh~s{v#ZgURGzm01|)&uI`}e42@kWnl#OGkpX^Cni3Fj^XR? zqSLS*0Lcs3(VpS2S%cxSF!jPcYpFPU0nwUETKSwdnoqD5f}SF163`sl` zhs~s6)LEEEg6y_vtSv0&C=d%pfHr-)GfmQ-3Dyb0>+(CAqp$-klIYe%kBc9kE8pcY5yl;y!;$to##MWm;GHk#|D7lLz?#DXvsLg>Q#MU!$ zmPz}56nIi-czYhnLXh7?#Q8HZUPOsYz7l!$LFk6dQ$+L2NPo^+IQ$ObdZZt znm8&5HW}5&?qOo0x!_I(fCA(8@G+}}hqc9y9HQf|aY5siKF(|`R6xfD2%zto`G-V! zKcL)LjBEkpI9!y`QA$Z7+Vb#P2=p}Xa6XLFW`agGWp}Nywp`q5L3#LtfKBa^p*$$s zx*{A8UJ?@Bc#utk8HG!9;9yNT#kPiKsMyYy2WfH2_9P_v@URYCtejv+z@picdT13F zn;BB_A`3_r6IT{OJFJUwVps(P^o%d@WSyuAvEp1YfdDW7IH@2!q8oQIUH~Zy@(PtK zD0G}M3#Z5{y5(khX##?is?J@hz&|5M)|_aMH`||tyFd|>5)scQl$_&81}1@5#HtV0 zAD3g{N|H`|KL=UTG1ds!lTaPa6N0da*mA{;!osKsaH}{c-^&0#OpXqMmjYIq*x=(i z_|42S?|n~tG4ZQJz*2&l9v`C&oW@)=qoa>5<&*-j3gSW)tg2TDXTT7=0*%{w!pDb( zSNsKhO)#@zlHMC~zqb>13B|ila2Lxk?tF>+Ke^vdU~cR=Zem0~P9xmBa<%p3Jk}VZp$t>1sn&L+$cMLuF4!(Q*HB`zJ3Z z-N;P7s$tm5MRASmDtQ%67h7ZQ-ydrPACcNYnSdWvZS$8}hBvTQQG>?O_^b!7|4{vwE;0sfw3l+GB)@BSiX5R z-7{LZ@>p1TUdYw-l%j$_wE=)>F$k}hXCvW%Gtnl!-2xhz@61MTg<-PH{ zL$w3@8}}C6eett!vrBa5Dje%mT%2Lr=4fi*U`CozNXnYBVlO4{g-_GV;@+P^Q*>QY z*7pv~1jhxo)!jH=TbXE=l6DJ*^5_mUhmlwA>6 z*YQlrtFPnp&)U|Oz}+#y8E@8a8#s9yH?|gd_4E~ z=e3r*+biQ!b{g%a?5M_z_;##4&kCLMpf|73pe=RXRpce&Nqb;CdB zTrGCkGaZy;+%wp(A3xw6_x$dQH!hiPlXFehZX2;l{k*TjcE^d+8D-U>xfuz^9W8cu zO1Te7g?DX=-Dw#8Kz&o2X_CMqvBf<2jgFrvrQ%`vrMzR8ubsS|`m$}`l{#M8`QOJM zey_OJQgOR2v1%~0vMaji{ifnqAq4|fbsMs(-1bzB{&o4wzmM<#`uwjU9(6}%u+_-& z#Vlq7gDs(?UhUe=B4o8NuOMxlvjuEv4PVtgqNsdHO%j!oJbM8R0|f6b)pI_NsZJ7B8|lR!QA_BiKLI# zk`dGM(rqoLq)R@^hRI-@A%+@q$6eQ)ebL`Oelr|EP{+NZPEipTs&qBv_+?zLu@!58h<-j?8&TG_qU>@l@H zaJg4Gv4-kS*zAbBB;)!|C>v~)q1vy{I+jb?qL)XLMM%y_ky^hT!%I!8Mu1!Gq}uk% z%&F2r*4rmnSfK4{RijZQ-Mi8aR+Sm89&z%Nu)OA$OdqR+#Yt)Tdp7>c^>+pb;ja{l_VZN_a_G1LF3=;7H%={F(H`10!6MShkK|l?~ z!ZWdh?mz3-5ynwN`zUrt7<*?fR=0U*)Woyz@TrhuwE!a%wd&R*-lkO{ZF6 z=b`{|W!)QFr~h`(`}CV#wjY?smomR-07ud$kM*7Y{@H2r>ALB76?J|`y@u&8(Y~rJ zwY`>~SJ}+n96It4`^saB(?o@fY3f@k%Tv}rp6)wr`}(=rrUNsVUlt!&JQ{u7nE^*KU>iE_uaQ<86uT4lV8@>Rz5I8g8f+E`hVCx^peQJjA=aU zy8LiN)9V0sScti?rv6XDkzMch(YnF~Yi0s&M%Ne*&O<*Cg_BZy)S^!516Ij zE>o3Sc@zh$;?0wZyt5CuYpt%aDTVIWg;D|fb{815qOla=N_0M8@SSH6x?Stt!_0fe z2TBY)o6n3rjCa;j-W2=wgVwA5f)@O%&c6m6w4lM@r@HTEvNBb)HN@lLbDf^hYE=M> zcXQo%?kmT-Och(4)>;iqmAYVtbtVmJJucPmAX+P{7*065D9@Iit3I#gHsE4-S|$rK zt_3-_yU{~MoQM}8CUIhHQm@S6``A&{IGY!k{leoFWIeeIw+;-iG%LhEwqG6Y2npmL zKc-WtFG25Q%J^YkQkA>wYM$?kyi;CFg;g_@UN~(NR^KR&C11vaAsd9)h5h;#_moyV zcNUeN{FOQ4qJrrLkG>O{uX-BpjPFTg4xjIkZJPVTF| z;HcnUf*w?d2yHcZ8q)aw)GI)l_))CL#?9Hb>%8Bg3BdQ^GfXe*{E;gC&gBQLaf8&| zZF6xZ8oV}=tFY#cihg(6UdxOP>F0F+oL7u`;1`FdT$3HpGto!_Zrb1DeDL39^1_IH zv()ms{L&fkLm{9<_`(fBf&mcYmW{D~ePjIY8UHJJfU?LJ+P(hTPy9aL5Ov@dayU-@ zvzQ;TLmKLTl*rP55&S~=&E-N|VsKPE0H}BJP|M@J-HjmyLZh`Zr{TzD_)&< z&-L;*1sM%KuAM$eaZHflyAA0si?Sj z6J+`peg%~@t^bDLd|7+dGfR~-zh$WmHiJtFx1cv>Yz!Z`@@c-o${4iij9NiWCjKW9S_NDn(Eu zAVpe`-ZV6+Vi1)gYOqigH5LThpC|X+^Ugf;e0#r~uP1Y6&(7Z0TI;u-#Hm$ZJs@Is z)IDMBY9T`bpVG?{xO?oLS=Qx1{+W33?$n zw`ZuOAsv#5&6bRRG2GWmD~CYTdo~`K`_j0!FF$OJsl!pitXq9;bzmQj^aylIwILeHDSI zHn4;SB1~9{0a7-OYrJ3Z{Jc+afka3YK#H9ZUl4O^ALPrW+t3j_BaOsK(3wix!A17- zF+n^4VPewT(k`xf(ig&G0H{`zpib%}xsNUR{igbCnt1+^maQPBuIt9*rr@gAK{x53HjQ-S7A$ z;>^cMlhZ}{kTm~to>$J>#Lxs9Sj&eb$>>WZ7$|>Hs87O-K09Z*TC#d9|45 z!hxw72oG>(q@5`|?9mc4!~=G%r^t{HDH`g$g|F@^c5~V_kLAlj)cktK3{zZ&GY<$T zgiTmizS+}jNh#7~G+w|OrXwDV0;DC+hKk*`oOgK`u{AH$+HG$`7V4&hA{6vHZ}2C% zkfCFHdj|Neh{!O~l9}+$lTxO802>-uH&cKR@}KdpJ<&dDL%A9h4%StoGM5U8JBl-T zfRV*@86NCN%IZ9q6FSbOZ31`d$qy;!2F0fAy4d|7be#e+D=aC{{G7UlKiB?i3 zY?6=+19YaKMK(B)EE$E+ldB7X5_;N&U$D=0kVr@osN*~6=&VYhnGdUwagvO32j`T8 zA)mKpq9TNpBRoMU6qcpmvP#!n8K#=*;0*;;Q*?wng3%#^b?qf#Df(;xIz)|^;X;y3 zP?|5WMW(io1P|@N3v$TL)O1yj0H}{3r1G|oyMyLhF_ndQUZpk(xolDUZY0Ds2#aUc zt{nh1m|(qf-DkI=p~hM~^NtH0)~4P3eO=SzAy$$PN%2xNn2-`X2^FPbubrb#M=~kE zQ7%L#VahJH5BNXru10zjo-Ak@nYi}a&gCl8p1{Xslr@U}#S7Ad3N$D9vj*$R- ziy0-hD*WNr(~&kz`_G*O6c@>_vjho!qj&W6+ssOHyX- z60nPa7_bp5R;#4KeiR)(!xc)QAbQMecs53ngfa(UDye*j-$5M`wu=t>kwNh^P=tw` zV4x^8oGzL3<+}YD9zy5feK>s!7U;7)yb06CKY-xv~UrZxay8j*?InG(?kr zHA>)UW21Bc)G6*jQDoZ*F1(8hxl&V<`XC=RN+6kPFhHVUEdcOA8uFicPTO@&H#$yZ zgMqjRqa_)j4j*x0AiLOtPPBG%0_?*=PI4h7CTPt97;=a?2PH*?3j7Ybv4<78Y+SV< zxeo`@5Lq^otEZs^V@|OUCl1<@KZI~03m(1?K$(*h+JrU3yHJWW^sSY2A_aSljMF4x z4w7&0N`~`U=!sKMe>x~h#|Hx_Dgm+LhYhdj(&;!$YKI055}{)y+0a=M?7)Q$7>_oU zj#?7B6{!`XeB>$t@nXYLB$#v;@!_B!6(cm-O+6Co7#VS8v^cmJ>2M$FQ4muOba@VN zq2W#dC{21bQ&;BlD#CXAA69<7i?h2 zHDT06pyoj5xid^CN&!B}M?F+RtSG39T==2Vb3LYDFbr96A#L^z&AliiLLDg**5Hk) zFi@&oNQ4TR5s(Gzr&j1nQzl}{K*=)dT}h~55+=pbgkB-fVQ%pYTT{xv&OV5Sasa({OQY(UbJMqRep;Tq(_lWa+R91JWcTXDLEP zOjLK_$oWa=r_$hFHl)Nrj!^{JRn%_ol$YN@Z8l6{BAX1V{VAwK0#=hGfTK0+G0;(> zpv1EwhYX~N1i#2aNpgW!g_j;0pjH;7&4HBo=s-5oK*OD+Bs)j-pS%O_VhFwnN|pcz z60pa(b7Tg(;NQIVSRaulSetMK1s6;}Yxse?Npo-Ifuq!E70RR;AAO7o8Ik(SEP&?C zz?uQ*$9rT-K{--qs7!EWf{-Hz zx=03DKBa^5un~Pk7JyF@g!~2na3q+>X17HRWnY1aOi+akZc`IXq-#zxUWt-=Z7=AP z8K~Vf^y=nCM=E4MgNr)eEa`uYy$VUVK!;=J90A0UwluEzV1KbTnF4+<2IHBa6AM>y z>dAaMy5e-G5*?|0#oiXnwW6cDtAKp{2ZpvGWEv<-K`2y6g9{(v2sSx*HzDP9_vaH~ z==-s+9Xb)`x|{RA3w&=P54TJgs-cdv07=Fxgg5CcipY}Z4Os9NpQRSP^lzhI=qSX2 z0SQFFFI_8!H@+PE{Zc6i&Di@*iT~^fe|&xek3Ln~crvMNFYQ@0rB#*&m$p4aNFSA8 z#O}Wt9U8>CUlp*FsU`f%3ivP)^`qbCrX=&rW!abVXe2HRr37GZXM=T$pFD;W_y#%@ z02Y8IG&ny>%>ivf-66*6E~ziQnGl_toF-R?e4KwP1XpMAUF%b2DL@LLZe#D7$2*b2-)}NoYt>}8yu#*cU%GQZe z{|cjDRm8qly;-ZWr7i^jb8_RBX1^Y206aFF0~%zDl8=5MeXrTeg>e}I$j{G#i|Za@ z`)=QdqBj?ba2sUU@2egxT*ni3Q58uP2!j$vur!iUJOHGM@3Jj(5~nb5lEGKmaXoQF zysV@ieVzNp;;Qr}9y_kY6gIbY`m5+PdCsy}9Ht?YZih3ro{*BAcuyFo z$UvfHdVWrX^W!%}cQ;Wc;*(B5+pCnj()al$OB}NKOIl`?Pux>%JjNDJFovb@@`|eF zZ;s4e1r-VkSUX@LP2AeCT@wI%ZtJ1oe)_lf8NFT6B8Dw(-&16ylr(ux=Aa1duFrlHvmT@+ z`i5lJ=F^eKdd}_UaR|lzKXZj1BwXYU@{MP;Y^3|i?u%o`sS9}rh!Uf_>a`TJ6sRbc%;k1r7`Mrw*2}Wi&QJ}Mw z553>3rKD@V_e%HMBF@YFz8|wI-y{{bE0ZNNdp_KGI47&L%gaG4u5Lzvte{`CNei?S z=rYw4AFK>1yXD1(c^@rwRhRz!^K-QHzpyW+b~-EFu6Jf_V)k8Z!^|O?GVbJuqsJ{0 z!uRhrk-Z#z{;;l8SdytgyUES+*ReFI%nsOpMApGm$H~LY@~Bj7Gp}Os+nq4iz+i8y zb2_~Peck;%D#rMZXKSHJjZ*pApPIPb%JQX z(bwJabXwYBrsm1|a9g>Rn^UkpWw+zh`9!mv+;raZf6`~)9t~4!nH;^<+mc+fe6{LY z^VkdM?DCW8;mi_qVaK^^)sd36pT;tBBCa}I%sX|tsXwDSKQjNkvAoE`w`*9pwUL0} znSttOGn17=1LxuiOKU6fcjB_xH=VuQ3VOzrJ%@IBOnaq!yj+}}m}yTe_jo!~c==wf zOSDH`TSt0hyIIKlyJzf(Hfz3d;gO|Ip*cZe`SBRr^=nnBh0O&?6%j=}1-I{gdNbMD z|FC9kqP4K=r$f?gOnJ+T`N4_V|N7=1?>V<3Wk0Iq+_Bwh^kB#fE%)ggttqK&m#gKc z7_~n(dA(*oTJy}j;+>Id<}>9M8Gp6&XTg(W_za~FzUKH@!{9qb+a_TPtR{mV-OlkZoe%hJM&t_5W> z12Px9vU!$iKMbNDN!rfJSU)rmoi&T;bC0TLKdHIaHrV#O;n|at+4+w6!nMRZPEn;F zyzcO_D@t=~%>Gw)`QPXNiZ7J_BR&D+D5-DGCH1AiA`<6h8cK|kumM$9i~>rG(efUdgla)@32BCY@(@RX#<0aLI?5sxS)Yzz?qO$oJv1Dmb)kHgVs`dg)l2w zH&6lhedk~i`LgF73#Q1HGeNrdzz?hW>UHErUeCTg^9tIyn4gy3sgJD-mYZB8w)LKV z1Z?*NdA{nqZ=H%hyfQDjTp)FhE;1oLaUKO2ZeLQo+R(dci#XT?LUY=jSDOz4LGkS- z0cbr+T*Lh6!)JJ|s3=;9<wT@ ziN@yJ*V!Aviq=-Vn{tQ4N3n(PJW>;DrUosDPd=NElNCfg~X>ipA66 zD7*rJZ?Y$vRjl-k(1DQ z8Lc#P5(B`V zAO)di$+4!Qg`sA z?ROXLSCQ2Q6ucj?JA@NAsH!t>`ywl7*0cIF^gLT^CwbJ>YRk{bgQpA`&rZOBs|&G* zMCtEnUNp-4es@(szHU#s3erY%)rZo=K-1^Dqb=F5O3H4u! zTz*k~=FRi4u9r!Vy+=R3ekZf73n&t)wtq4>b{`q z*9e#I7V={FFMKVqDl1iuqbz+oskxEb=XaG8abY4Th_Z zT73InFjP~q6(wg|+&pBqw3ZH*dV;i^CY_am*0$`fHa( z$~$(ED#4 z_;k+Npm6BU^Wd^~V^y|i|QT&qq-G7@3kFDWf`SGL2@(Wy}@_S)_!=T`Eewx zM5-eB5hdWVl(UuEx7OLi>d4bk`?iRC-5++Yc-YCiyclo25@>#R3Mnxk8&T_g|MY^7 zh%aMR)Ts;oxio?(4ECAbE4{0A!TWv3Q1tWFuF4oj(zA8v`pr|h_xA&Kqg8IGQDI10 z`-7ZEq&f6Jys<24hn-#LbMc_nJg&YPEnsfC_}e=0H1q4?-`_Jow~#uI9=~v4A8R&u zdtv^Bh>QGUq@z;)mD(zgkC0&cNNmj?mH%|l$MFwib7uQSPjpsQ8c1SjB!BPjKJkfu z@u24}lh2KwQY!l|>b=SxdDPO;A6RUoPkYt!?e1yUPuD^$77m{g2ZwH)7S;IUa$1e^ z=-STUY=MPf$9~fO; zFzxG@YSIp2`_GOFM@K&Ca@Df*-P=A0txa~$y-&Y&{*55&)+_Spd)=PRAD)l5y(kY= zZ?v~MTC1G@;$?Z`u6?JRLw)6k$;n~&h(4cOXP-aPd|P*`bNS<$!J57-8~>7^4o39U zRGS4c(9fcXfBVC|UcZpGnjI-X+E)EW*_VpB2?j1LqS3kcH$8AKHsr|msKTpg4TQgOolqPOvIJ^`N-Bc}(JiO6ZyY&nAp61_IU2}g7 zaf}GFlxv(~9k(I7qNx^4_kEJ0!P|}hfSY3XN6%j9oNkwknz?k(q7rj}9#sGAWrp1M zLh0V*!+*SYKu}wxhp%nc#m}!A*F0?QR`TOIotINwvlJ=!Hwtxx8)v8f_4%$Eu5L)h z$_WAML+>Jo0wR}|GhVSiO=bDBT~wD* zl6Q#?I{=J?&Zkz}E8V0Q84BTNh)bF__Y$^OI%vo+e9j?5VKM)%nx8!a8Vu3pD&vfn zEKC&7U0jI2=@|VJ6HDK9nzjpZ8?ZW739EYnuNISNl}Gl_&+G~H^)5)ByAvfzPol4$ zgeJh-Q&y7vz@2T$JExPGTutJ7vhl+d{qQ*7O`(1p`%{r=&4RULY>3OjwllI7QT`qm z6iI0aH8s;K)MGVJl$qvd&M44Hqwhe{rc+`o?F-jaiiTnvyi&I)I;Ss17*40kt*0nB zWjs8b+~yq{E0gN46Vupsbbcz4xK4YDq$+!6&aI{}of0_Sk+01#3wttlw$YzBW)+8L zUB`qA0jWEuvuf9}hEp$DFIlK8`ZMxf2Bx#v;n^Rtac>;yGX)IwR_8-bDUtvvNE5+v zf`Xi+MJ%|P6jO`IZgNUnPR{Uqc4TLpuk2vfT59~}q4aVGX51nmNsW4`m;e;!2mqO> zPW0wb=D#-IomJWXOZ&g9`$n}{?UhYf+dzZhGIL})u4%V(?=+}g<)&7cZKudY%+v0- z1j5^{+Ap0K!e!{S0~!|0W;CEFopfs|a&qX(Iwn9o?3%4ohDa;0nUgYi&9P=6R_UaV z5YNBFK3Oh2pi}G2qB&T^7s+WeZI{f4dqT69&PN=^%u%vL`IuYm{J$nwF5xnaXXt*- zBAY4kMNE;jlL-M8R@MT&W<5oEFlDnq-(w0%a=}YvVHP_-RWiqE`Rb`*hs{)+4-JnY zi4{-5r z7P_*kh#ZthKbe?4lUlUF#hhXaixEVQ@)1iueQXBgJ0%J$6=SHPwiNsb86U@k`}lB< zVwA!Ao8xKL^Ht2-0IHUY&!%JDS!i?4jgE6Z#()D_DaNziL5L!Z?!dYc;B$P0!o9Wp z?#6TqV2>%*SOWTaNDULC!9WcVkdJAF_ZGv&*J9BT7lmfPb`qM(M^b1wPX@}Le_K_db(m6CY#wQ5>17j`cVhZb5f^XEMcK0Po`QxUGU6~2 z>*Q?bITL`;AaJC%q6briIbKz6?d1zuMTK0zL4Eh>D z$d-q7;t9&75j8IGx4ro8^#qc4-ewy9C=-{?LmbIy8#>B_1qt&j&YY}zg~k3Yy0fuVDx%E+iDa}PQ^4fFRxZW8R`Tv? z2cB?Ix0x7iD&Wt9oH!tkRekq>FFbMMX$Kt7f;7kojtbml0#q_6(42lM`>4K+6`u{i zTxC_tMk*I8mPsA908Oe1(u@UZJKW2 z{zxW8(X)o~f~h@#hPOmQBJy!(l3bqhUsH zVNRBIW~Y3NNeJhtl_KRI=ZX>{rV-GYMi56uA95;GTi9q0~!o zS~c@hE?OqOHmkKL70xE3MVJ7k2sq8DK=IpE|LANkO8K(puK}~lcvwSbyB4iQnb&^n zV;k}6*$Pbf90mBi3|G_H5?nxv2^=OMhsg~%cJ3ZyfE zkISkqedm^vftxI-hKG*jLGPowm0tkL94MO!*aD@i1LvXz<%}%!X+aAI3FAYqSLUH> zeKB8t*E-U%ZRBh5+^ealpHLw}=m==hOzf zzyDOL7P%$42r!}o7xg2rT=TobgN13}DIRP@Z55^hmy7SC$lx!lelbV4J;^{RuSs0L zUWARV9sM6f{b4dF7>oCw8h-2(`DG9Ch>DzIwY%}4(2o#`16*JN>0}VcM2r|HvI2k_ z^8T`pF=V4eC~yn`xj+RTb`9@UK)i%e8nov1#i;63V1nPL_YvuP0om&aNIkt+15?BEhe!KI?;wyM2*$1Mi?RfL7u*7w6|p3ka=*Y1&b0O#Xg{w1y~uv zh(8Vf!>%ZgtS^^tyv?lkC8HhrL#n(c6b-}s0NImJHXAPRRxV?ajEG1?^bd3h`M z02(G_4!Fog+^K*q4c z@k674`ergBLV!>_fz*i7Va;y+{a$gAq}z>~r$5JUJm2U6g5-Vq%TCiMvOAp;)Dl#GHg>=6H{Q zeOS*xiO|N({i~;}kPs?tN`~a9LPE9oZfCB@f8I~ukP}K`p%rZE4|5k$3|Jsog>V2m zO^E063I%*eA9mkN`Qpi)9?lwYq|8XMz-=6X77rN!b+`SVel_%+VxS%t&!KpYbqdfw z+hsDXMNhs{^G93Z5ukvI+`kEozr>u3VH3wcoICpJam~+L_sgfHXGI7|mO+C%c?QP^ zg$aU6Bv6_LW2*1@Tn^d28&e?PGWD@f{>B)12HwGdB@VvIv*E~#LasZohBxm$D8eXn zk^7^NIt3-qfaU3+E*G$%)T7v69ZY|3rkne4AZ^lT4IbQe0o+GHT*#0q8$8GOK&SpW z{P-qB`3=z!bwjoq2cnX?cpG}K3+>x}vLHT!m@v_X{C4z%?#WB$fn0RG!TM$A1tMA0 zg$?eY!dIBE4GmIP8<`d%0EnnCl}!Q(h$NmFR4bCQM@`1B$8ASy`flkD;k?}L|@#)@r z%5!Z0@J8v`)XV#YopfjXZa1cA$+vO0YrcD!sI{|@>~Nmo!_o@C@_Xld6k#C|w!W<1 zwzw1#w<_-TfcXRwG)k)4nA>BrA#Z#Hx4;?h2JZ%{^oVq1^=nYC} zjw!Hd$a!<(ag_y$c%pXYwiH=oK_-xR()Z%7olndYP;zg=-zFV&rGprSi{`2z&a;gI z6V<%WCg|zv)&jWaz9M%3rg;fQ&YO$Dh?a-AhYeuAt`RmWZAc6l{^0#+LEY)`X@mx%<7_vY@L@%)JTM&u+s>b$ORn z?%Hym0n0sA%qjb?a+;JZ6WGQOQb;CmL#{Z4;6)A0!ruz1pWu=*G%x6WNZyX;_(D=N z-I63JB&%my2p?`TEGZw+h}YtCzk0+ z?Nv%?iaL*57AJI1=JqROjy!65L5FZBNyeG*d~C;S-2ywbqZ=ebjs)I{=x76PlSJec zIhZo8HBWp?8`jZDIhjksnA-0ud=}qDc`K^L#g=8Io-OD}KyukNP@8)iA&<|9(+a%$E6bvd9OtVvM7jscYv~58lpFyPQV*t* zjLeD+m?Wt(wuyU!;!vv5N4ec?9F&OmdXz;o#7#)u$1yKUmT?WgovftKurD#``IVEY z*e10LBcodox3l4eyA`7Ds=Fg+S2lT@5P5{xa~d70U!8p<)_*=;;qy&SvfN*XE8j~@ zNQOcZ=1y<2HMOzxYI2r$JrcyMv873JYHgiAj~_qW_FY|H_ig5`WOjVY#2GA@qO(*9 z&}G1*W#ru=NG7~P@i8Vazb^gSzS z@fjE^E(dGI13M*oD*L^So||(M75XW#!;&k=AU}x5+DfE_7jm@u54R<eUJ0SO9C4EWLqmh8lV_+2hEb)@=b#jT@-)1%Ik`BF ztTpD5BuBj?JqP&UbjRZYx$2rvPIzwFuUK8qfp5Jug6*De!{}3CF_(E*vv2988$E8d zkaKt0?&;lBGh}-rPDGt;EL6_#!X*m)5R4Nboz+m|PZG9c8jB7&J0#R0A}+;o{n`A7 z{8jGN|ITs<-nXYVl$RP%GD+9dq;?INvPw{P(*iy%QM^AuJjWEk`)uHK%MZ?kRyCh?CQMW%*8>;5t5VwK#BAAOl8k=?VGqJkeNTo3Q=5aE#5>0uP^iBz2w)=EA1KA}%!8 zVP_^L5>TZloqce`J09IdoDhC|EJ-8Ecp;n~M{xRt+ELJh#Cs=`%?l9c9qfvsjPcf+ z8)%H&kOIz(5HFm~5F(R}&Mn_|duz);Mhq-3jR^G^p@lIqA3vYhr|l6-9Y&J8jU{(0 zjN`PCZJ5(^=X@b{F-Pv5qrnAA z43m9zd&_Qz25;q=?@E(E7h8>zsIAYz{?hsQZ-M?>vUskHv|l z=pNzdhm0p22F9@l+^^0>_9ITdBU;_Y0I*mo5yo8+X=H0JbxJZrUJ{j74gw zwAbHgNeR6@m>L>NnbtI@O}1}}*jz3^Q&f?@Q97%sD5cb9z=2(ycUdwK+G%cJBmPb} zn^ul6ZX55Qak9k~(EHed(2@07WGV4xF7j^h(EXI*<}{yBpYQ2-0|Te{R4poI^7dJ@jUt*GNk}?o7YDZQ9;RCV;M4|9 z^ock@;(_!5^{158iI48I3zQS%WnNI@#uu*8llZ$SJUET8F&Q;wsi)Zy4h7w;5^*9+ zl<=HmbJT`}%{d^!G61%E&B<#qfz%unR>~5iTb?%?m9zvSwNQ;vBW;7joTM#E!P)z#`^sU#A13kA3cg1NC z6}-s-*W)$YGBVfo(0~Y#0N%2SKhrDp>#I)1y0QodR2Yhvqjqd|2l6$uwTFoJECI1j zHN@K3X#2K(7G>m_ZBlJQv-80E6Dh3&VjJkTxD927>ak6`T+(ER;;zKU$uSJKS0;!F zep!LRiS``*c5xYYhEAp&nrULBT=KWGL3XI_3m=dHwiAB=>Hzx-n~a?3@0W)Z*q6x% zq`rQnsBx4nnRUxRc+IeqYCrOR;z zDZa4Q0U=_QirRATK!HgDmtpw^Coa^mA_LMQ`{a${-Ss)AwQ}CmA6j97rFjN!;`aFU z?jJ)XtjPrTl`gfX9haiOrRq4HH=xEWL5K|iojF!rIU60~o~9K&x>rrN$2q=}Ko3a}~&OvATS2Ozs3uRD4vhF1Dy9h;fnRvf*Y` zpzGYD=jVjFuyGq(%(rd#W;d=wQq-ZjAFO&Um3W5bi*Rr|Q#~jmFVU1Upvtg9*jA?c zmweMxf7Bd_z9+_o)z{;*5Vp=!TjX3kvSJ&@7}07hnfMFn(jc44@v#1Zs}Nhq$#Bi3 z$y zA*uBBDlp$+TQzr-D6aN-Wt?yaB1YZoBu}`{4TdEqphJ$vh1-RG2VN5E-*%15#|+B2 zr$;~8BUPEb6L>=0bPVaA7+-l5KU9I}CaRx}BMj{cvlxA+zzXZC5evaP5n=FJ-y?Nz&$0so7nW|eZ|mwfrl!av!rXTRy(n*x=$&$`>is0lK_5J z)cbP31yNv;68KN9b$2QEy)Xv1!O$+Q&j-I*#cb2ugHqri5eC}_FjAT$nR)J3y!%aC}lVv#h(0t&{mgz|98$s%3FJ1g1vtKv)S6*)a&KvLX*96a?`S- z5}kt;EBsISB%Q77T0QCSRbO>6JSDWPBEPEAfipfY>9m+w`(`9OE#j(YZ$QMA%Kg`z zJce4UeEem{(wKf}#FmQWr-Rj$Gwy9+N!6!)dTW9zOH+RTTdBHJFwk(tEbRH!a;hZl zlOW+fkQ&z2lvLQ$mQm_`CK(=F{3Go&eRpC#=632%r>V-`)@zlaX_ePnAGYLIodAYr-WKt)i=6 zkS_0@9PrPHm2q2_w4J$QZ=ZZ8@dES0ey-lvo%dMjh)wby75|uE~c}6oFbA8BZoSB@&-r$?mN}7 zI6wGmsCVdTU*F>y%YgfK0Ye9Z<`n~$5Ba@|sc3i3TQE=j>X^?D&j03}GIp&yR^Ic; z)}xEL^*wp@3k97+=@nIa!IN*9#i{vym2K(&>y`R{p8so|GG~)|Hla=d6fEnoP@=Fj zKCz8@yFX4v(@blq;jK}k75a^x=Y=%m6ggCKPC-M7ak7-S-VgIePm`3rEhz7wOdK&; zg??93CU79P#5CWpY50Vjd5Ovj!ftlUHNIu^b-j3qiJM}o=WE}YIacXd)vu3xsd$`a ztS^RoqcKBZ9LsPw@O06vyeN}+tm;(<%KZE&IiV~D8XYaz)5-vvX-}ZXHRSN`yZv+( zsU^E@{+sjJw)*N8080FG!+J}8*i8xjgnx<@4wG#pl4hP6pCpF3?Qf-aWI8N`zJ!E@ zcIBd|b_BO*Ug$z`xmgl}uoAADVp!W;OTVe9y#72P&oyEi*Ac2D&t2H1!IcY(?+ zu_HuaI{on_RJ@$B+5Q~NmUmgtB({ik9T_|5YO{UQUb)Rg#%3!3f}iaf)B5U4ObC}Kuu~}unwR(@;x>h6bhY-Yf>`oU5`yqYy_|PV zpGYyNWnk2s$`;b19$|ls>4BLrBeOC5urpA4B6L;>1lms%ov8~ukMG?JCg?l&z_Y5y z8XDsr+r}Cm;oT6{fSO9QM6beXaH^0GMfaUE@ri2O$qdv#1W>O4x1odknA#ZoD|;<% zg>LOME|)5Y=F{wspn*rm{bL&w{rmP>e=D~M+q(~Y>E40{_PmY4m5H5gT4yoF;n=UU zP{H|kCuI)BJVEw~Hkd1!AtGLx7KXTx$upsaPvfJ-Y7x%P9GmCNvX`ErwWqHHW2a0U z5TUWk~k_T14k7-T$eSf68So3{ce{JRaV+v;P53Z@S z|BngtJ^q?L0BhmLBz52B5LY`#k&q(}UN=H)oWmY98G+b$tJ7zrOk1AQbUp*fLP9AMYRFcdz~T2bV8&G#aSi^F{Yvwh12H2n9g!2Q;$>0sx2nyqlz$D8jzv}!+n_azPj z;FWMv+`@!tB+!53w_0oGN|tC`=?=!Hg+WRciW3emfp6ucJHHu;#cWi&u40#Z;G004 z+t7`*700sY%a<>y^|ORG_Invf^2bwW~yQ_ z{Low)bzK*eq1l1*QwR1a0yzsy)aZavIQ|ZpqiX%$j8ZJw9krq@LLvvL} zBR>|EN{E>c+b(>$lKwVsYr^yaC^ar&xq1sgwxDqBzNMv`x_)y~JVtr&>PhVaMdFP;~mdJB;IPlcyvX@ZyAn?rzLT9^$2Y z(d$Ui$mI2&;x~FPW;VK1bMM8_=ST}9C&wpk8Y7pVR>+Cd6Wm6!BaM+I^~2$M-mXtr zMg4okqzikKK3~4{U&0=>>M0wm&@Zf3D@E<FG+Q_uo^*gx{%KJ>mzc0;=lZf@<;9^nQPuf4TM8A^!m_Fd6ytxm1$r{13kI+NwP&~N$BGM!uLWmAoR<}>isK$7`1(O2!$T?MFDWvI2=%mS3Ya4=Nx|?W}`?b5+t&GXHpRV2U&76aCBaZC29+>d9OvO&U z<7BZhKg24e3}Mb3f4*^7tR{azb<0sNy@0^ycMTJH$Lgoej)^`=gEsH+y`9#fX~+Z9 z{YmS5FMV)lbHlxNTmAR$Ip(=r=bF?VuOBz%PZQlHQ`R$T4`L2H@r0h$y?Ln`d|7XR z*PDIoRF*0x;Na2K!ls(aD;Fb53!W?eWL)k;Eo;oEa7sGD+FMOlprJqAAJAcUK6JA_ zWfx6!maB)0Z&6Qr{CmVvwDFF}Qibl!M_PdB&+Y;hPSB#&o2KhBEzY$H8SX1*JCz;p zYvrjqZ*4o~79Tud@>ebKEbYK4T-}i0fWiR*w5yHTWua1#ViUe6n{dus|E&x;a zoqTQ4$&esU6 zU-)tRbQmopnGygvReyJ>u{vR_SB$D`y5phWX_IifH?y`LxUd(9`>|T@(tY~Y>oMOg zoxh%lg*TUbWL?*i3ZKasZFaXGb5k2UFg|tvhrY*OpP8OWj_p4BjqhQ;o?<%(2cy5W zzwLUjt4@3N_*pQdEpoWRg4>a9>w7JF^;BF5VpgcpOm7PGpNR1~H} z2Lpk((bhi4|I|rtoT0pHVg`hV$xnp3p6`=qzEwXmHz$6nE<=dLxG7Z3bMQTV?Bdvp zhgjmm!t5UwFkA}Y%;~#ja^C^%YP+U6d8s0Z^^8Ss|;y2W_z0LcwzQ!GG<5kY6 zKoYU~o?^6**)R69eu;!un8=P947MRsY@kUx?YWNGO+@~cF3Avhsrco4(_@3TokZG0 zDF5Y5ZSs=oi}jGTP?z*py)gDgsj;K=;ZLK~I{W_Ic>dvpH@3-jeIcvmyN%eNc`^0H zO0ljV;aRh9BH2H)>-pgT?JWH6^PAkkn_nBHI|shIMmBzk4PdDS@;BQ?xhBL+mK^Fr z1z!lr6LSHt{rt1hBjoqdv(Mo3L!I`Y(zjwho3zKviamJt@QiOw!r%M&?0xuR*MAKc zJH9?{20SpnEpNl>k6-$^pRm40T}p;_>A0U+Jhh?Y{ut%^rx8HO1V3;*cX-e^U@elq zThPZ5r>_$yDHAch7){-0JyK4`7x?ZShr492$jt@w=Xru<=Z?;_SKRO zD;_+ssRCeofp|dBna(KNgUF`fQ6$j8Jz@lH)M^$^9%87qTyoP18$1`_rW+}}Xnt`a z%)#m0ymrhfnFFb~{b@M?5oN!2lXP+ToN7EpCMleg~Tmng1Wo&ciLKKkWbK00J(= zjpo3OqcTm!QQ@8ynwl%ay$eeXP3?dSQ49ApVE6s1jxE#ns=6f^g6|2ouvNM!rpL7Eqk2%q z1@Ym~bF?2CUr-&9IvSo)N2C^Z@9ROG`&PPtaFxEU3H&5v9GAn=?AdFb&yAL9kd6?LW{(5X3@o*lBb#UhrMZq4}j{vGO5{Pdvp#Eg#-TdcybBM ze+UKw5CCbhk1OKr6e|4q(IQk(TH7Z3aa{U@jht^Gf_`SdPueATrGf%gH7qA_;Uu_l z>Q_Q=%+Jaq5M$gvXo0Y55OolU=7c{uMe&{15WlU)7=4R89z(kst5 zss!XWqC*`cbH7)SR`YTPlF)d>sC;72DRaXu08X1cDOV1p`3wL;g( zs5`}kMH`C<%a@a(y)VoDnrDgdFYM8Q%qD6@`L&$h1JS#yg%-1K-41=Z7JN*&w(wH^ zdtFW=&dt2TBfXi}+Lz=X5n7++qWmsg`qs(SUl+9R)WUw3o&QyOhD%JQCS)+v=8PL! zH$cPYo-R7@uyPA$)%h@|IlHm)T!eL)}l8GglwEXH*lJ}d>HteZ7^tC_R zhLtPKzXZKIK46}hPs_+i5+RH1rLmewidD8gjrSkaO|K>3Xf35Fl^VW)UQ2ULGgtg) ziRwg5&m9^)y5*8fWQucEL}~N$vi-hXXeqNqeRqo_u{nWN$(M&(-qo6R)O&g!Cn>g5 zb55U&Zhxx{!BOYmCxaEqHCEr+!+*E26q$3Zg#D3?elBr+7Kyy(_GOErOZ@h)?|d(4 zUM|~Ax+|Aa&$>JkRln|X35@2p>RnNiy-Zq)ZH>q+UoGFyq(6Gsu|8?_F{M)L-DMe9 z&gbaPq^3yUh1kvRMAfOfhTq|Lwp#KfMbq!F=m>qcTsd0591~8tVz9gWOv}Y-=SZ9m zVymUw;(Du|{*f!DY0Dgwy6)*;NU z_P>7Rss(q?;jU6WE)I89I~3j?%~Im_M*pddJAEv`wZ)azvd*fvYIXV&-K#HhOhvx! zY{ONP>sLq2`^@zrrawU2W}m+;tvtu-%;{W(+sBRlT8FhcQsgdz$a%{=Andf&>C+)T zSF>aPoQV&=)+o|R$Q!80?fSlLyeBlw^tYB)>XmD2XU6c(i(cP0 z?bv#|Do*Bm!`XK<@aBA z8U&6j0nc0dOp%$cCfKB{_422__4I2))!NuO^LlHgn_vD6X5?R@u_j!F5D(1CtfG=W zGME`9sU?|jQ&%_|kP z$&r1h50B01o-G%h7_ywm`{SHiI$vKfaqT zxNfsFd2@Yi_K`tNW?9CwRPaCFNsaZ(-|__si&=_q`S9OaX#X*RSXChaxB~t<^ zg|TUAw9JRgQXRs$g04$=sFjK~cv`9Oj%atJ&@!s9`u2tFd+qaPy7<;2K*C$P)I?3>7ihcQPZd17 zk`a!x%L3<3`xYLaMnc+?pDf z58stliwZ1cg)}95>lFqxXcsekC!gUyf`~vj0&7_ zReb8|bpLtIeGx#^nUBh*B9!rH23uH@fc(1xYshO4OTd)UDLOuZ_;1p~t&4DWx>tE@d+nQ@Y$4(n z_DMP)u3`AhaRY`Un+D(NitgF>_TS{T<<5^5*hSp)>Nn_ofysi0_NSuC*oYWIp@O|I zEnuzaa!JXIhi$=Bes|}8zSzE;xpG~Q0l^&vNkTs0Oh!kM5%qxxX_64J<7Ku6KN)kO zvmyE9TL19RC$9asVwA?x%_XFGkGt^j`WjV)5vfs`gAhMX8B)hEN^Uqx5U|Zu#dKY= zP#wpTH;$H>?bMh+sKB-Q3n592oU?WZ5nJ~jL`pi4qZjEyaFiJL+qYcuDmhnN|A1I$ zd^3PQxbJK%)(L&VD@{9~aG1hyh3`-ZH8EDR$w6z)B~ku--5xNIsGB`O;MW7^Qmo4i zoZksOR@ardZTLTEz3@&}0&$BxLV5)+IsM<*6Wfmt*UuM=5OM(!i*KkC+0`=#WX$JC zX#TKJn<$-+(&(pmjK4kjjH+SL*6M2;F0h3+QfO+7&nJ;PO*3t;X0QG7;f81 z{7N`sxD%l?{9XgEXZ1qxp8ynlO$sAuMiHpJY>*1xiiBN)4$;nb85GHo^%-BErwd@2 zEp$)X=7h$6rrVmyvijzg))H0)kfU}f;{#xZ4wW*_^**0xt>56+r~&rGa$FUBD0R10 z*51DY(Au~l#1=A@f`FmLHjK^8MqLeOh#$VJ*MGA*F;=AV1;>-c|5pSuG&e-QT^;*! zz5X1Wg`?jP)^?IQv*DE*90TfeEVD@btD1p&!}?cdjMgy0*SBMFw(e>e)%UCzLY0v%pHA2TJYJPDw zJsypEeiCS4?+Kwo3_3Sl(o7|a#8&zKUc_uvjL=DT&|#~=GP3i7p2z(w{o;S*kue5L z@vNhi+N-SbnK`KOI>#%#vF1!EA7&X@LF%;HV_#bg&rG+Vs(AhfcC`^Jdu;c6G`y`kj|> zz1eYZ;nRdf(e#+OqSag{lbnN9bM}H>>=crGk ztJeEd8=T?`u-rKpgo@w( zFYG*yS>P*1*YmWr#*pSz{3QECt?Q9S5QrQXP5)7a-gI_q&9z1_<;(sc^!9aB@+7}# zWSD5WI*TQUit5T5UOOM5s|^CH!H-5&qNmYBD8C{FtQ6PG&dgntKm?L;N^ZkmSTep? zYGh=J#NJV>h6_ZHu4=^MVUm>GbSku`djaK~yGYUwq(UYYQLu%6h6KJt&djtkOYjq* z8a@K>)Znz)`x>fQ36Ok$U3AY%fKFkiu+6VwF{i&HXsY10vrCd-o$G4PL0`5aI?0~m z`iZIc4wc7?#W>o!Rz^}!+umrKeNe)26snFGLaujdPp zeD9VF*JN6lsn;L?GeXx^3`%X63s4izx3H1(dJmZnC-w*~3KpnO<)E!MB%W=E(v@-Zq=;=ml(V-Mf1G8SvR=sU zA2E?@%)&%Y0DjjPBP4~J(VJoR z+nP3D7%GG~Lgk?hd5|t*D`b~x@&P|g=Ziw;<|0lm+T28Ld%u@s$d$}DZnE*hn&0Rc z)mcz-{Xw7QCQyeTNL zx#{8Iy-sM~r{wNSm`N{+&IlYRVTc|3cdskIq6scYS>@F85U)7!wjc^hDY8@o;lk@r zK@I&*#f#nb7V#Lf+r`@D)>b4~hsJvg)noz6!5p}eCC`gUe3=%&plj7L=k{#KAzbN9 zhruHK)9XRMN185pP6=T8Rmg206s%6-l!jNWfx%>YzeDtJN${1+=wVi@{4QG4v|3^C z#+^ZT2(x9(u@(#9!_+Bx@IdITqWVu0Npt+taain&H!y@9nJzZ^@rBAy8qiLu^mWt* zk?L#^GrNM?g{O;rbm5C%8!+uGNg7vM0PNQBqGsTs&?XU=^})a2S1SEHJ zLG;`PLu~f;U9pAXv4Pj^a_)^%${d?S>waY*f$L-`t>S}K0@caZ7z}$?39r%nohD5`dHmU^j$5xYXd!74XgBS=6t^x4C32528BLfr4uT`kfJ)G$SYkg4V zVHhhg4p>v<$eg?9ukS~g3L*+rtyCNyrWi>AG5tJIOAZ_XdkV@jnIZm$TRgcF#lM`3 z*Zo`jN72WORxT&ZHCoH7!k^WGnA3o`U_hZ_xAeOEL+gelG&a<_l4mMJrev*g>kB4f*qXsh0zQf=`HpKXOBgv`*EAC>3oi#)lO6 zKx77>Kd5sSyntV4bw;Ut#$~%yqdhjU5tC<^An|ru!B&<9tcL>VlQI<9Fcb$m&H*GA zz_XPKc`FrIE9FsZHu1CgD}aH;K@T9U0(zTDE?t~WzaVL$x1nT#>lSUJ>rFs19B3`l z47piltqvn>W5Hq#Uu}ph@rgHz&Q8oKK<`;6^5mu1u$^4{otuCz8;+d?q`nyR;FxQM zkO&u<3>O*L%pigc5GNOAkR{K75LR9Dv$;~U60Q`;Y4>$ObJ4Fuh+ii`Nr1iwZ}v4l zSLOcDpIL&lw8Q{T?)fTRo=l(BxKi0Aj%2sL3(l3|D=AGw79_YX4JOgS)9pt{PC&w| za9Kfh2LI+`uAH6EE^9>Vm>ObB2{KifV7S*+qS@_b6>=e840dlYEXbJ>6?6qEXzDa6 z)}f}#0rfc0a&&=VeTIAJ?E)M`FhnS=Zj&X5O?Zg$msqyGT=*=cz=p|h0+`o6zugEZQ1<=qXP9iB4-5fh zadZXJz*fRZP$DwJ0#8(gFsp3m_DRNL9`x0wM(($a3ZMR&n(075%zdU0+0D$wkoNiH zkC5{*8X%fV|7|&`fCX=9fHT36BnL2pfFGyD+-0g{)mdJV0t`b`r6YSUkN*8Wu1`~~ zp-WC<0tRZy1b;P9@NX|6Hf>VRrB?;i9=&gP!MGmEoKo(Nu zGPd(GKcjUeIFRxt^rTn`zb2_fc6($ADY=P>VCfQ(aB&J;Br-#xe|$@f&yZxpGbmke ztD0n_SOg-%6%W_r0k%x^{t1{SmOiA}w@%h|yf5*^$O^^1p|}A!2!RfzaC<%=!V%=X zL31qq34DAu058j8#7r^tR)P8lnM#I;$wLesDqW3DjNR4rrviHNRYGpFUxd3)aT72V z)O9_COxaco2+tiPgTwo!4kYH;Mj~7%pd?-T_Jw=OJWv7$)1txU@$`9q?YXb#+6xUz z-!Xnod10MEMJ!#n->WPWQk(^LOaROM66Rr?!(5o&1j7Irxtp8`qJ@;mFd_~n5bsG5 zZ;Q@V3fzR{8!QbDxRVAG!8&3W#ua7(EX3GS;Mt544u1waPkE`;EQ5Lzht!#L43pu) zfh5TcH7Bq8{x(5~*$QsuWhx{x0Z@660+k_%&SgA-OH?ophv@^C2t-lw4akfLulXu{nXmL8jgAJO8FL@xET~&Sr`p3L z(DOM%mlXPE<+;Mb4_gYZmMXIu7*cP`vZIX;S7sARm!(fEPnF}vmdF8rhs$pL1H?(N z<+KGECwfLBq~J5LCBHCc+kGxA{z4`(bKoIexr3p+z({LjXnds$z5yZ)7WNN%GMoD! zQ!e6U?k6=+o(-q&r^_#l%WTkfv2^PxK$5-RCjRixAiT}2zxphwjJ_Miq!)#ON*xSi z9D^zY-aFAJLJ&of1DZoXWy+u{GXu|Fkfg$PuovRf4mRl{kobGC$@9C2-ltUKSYCL_}OAOPy%9@K^b~w49=5=_lqWx_T+ia^(9JVd2B)Fk#u4r;-iaT&XCFcTu&bRk1Vh_2=&@Q}j{IFKqADpJ2P zwkaV+3Y8#EDrH-UQyG#A;~s~=M{|mb09_Y?R4bNcx`x#@UhRSel}y3i-vNUTm@_S- z8Ntp=Kr)31tGIn*K zw9tpeIiLZVAwh--fIY1Wx@3rWt#qN`7l!CxV0k&C$7^1Uow22e?UCOAk8vO|{K16M zdyQ#FGdUS9e1OP#y9@nVfkxNmKt_ZNV=}{d1JFVnN>L&44u*y?q?!xZZ`{(`giK_^ z#W#W$5@1gsLHN^j8yrZAD_POnwoMaeLe3~sfg1o3vRH5rAtU{$`lSwv^{7WpRYnhzm({#fm5!^96BYW;9++Y6HkkT;*V3I`|ha4ji8`eTipMObtE& zkuWiKrm;R|~-W;5i*%qO)CK%V_@ZxcuWgd}Ek~{h}anH~6hEk&hkz-O5%xGt1o1Z4g7ekA=9lH^Ai%tk*i36>xY zXc=p_#Y1`|xQh7gZ7SK;ntQ%MRk_&_?JTlR~^jr9R|)-h{R{kg3T%!W=@Y}yy1H$9;soo zp<4QbFh~byq)dSf7HZ1*fbE4RM=MbAk3f*n@ujtFP;n!C*Zn=Xe~=;-H2e=XrTr3h;C&UPr1D3bhV`xoNZf~qvkDq!zp^#b61 zGNU|H#?DBi4jcHKQqSJg+x8XugbT2JAIdV(X!3B1T;0Z&5~=@IzJs|AKG1iD){#ptyy2 zYOaXrh?n>*ehGt&Vo8ytqB;TssYD8OTN&ArBc??lZsJQ|nLBWJHuc19C!~({7Nx0$(jfTu0*lH zLrJ=?VI_8godH@iHVlb2;&$8)J*t!|i8z!`&X5o?Cwrr!-z<1b7twex&|)Qk8hkem zKXOpTYM2f;u?iZOHnv(}c%5>iAX#`Wl2j3&PtA2u`(6hM-wh*aAd2g+hWmr0&gL@9 z*m2yL9tM>I-51n8p81&L+w`$t5o z6suXYbcr72jtm)-{60@{B`#1QwS%xL1Em^iXd@Ed81HyKxw8x@wG>7*RM6maY)aj8 zJ-vm9Z~9+~NwjXUK_Oovi7rY;KdwK5E8z{JRQpMz^5nk}V`+XTplq)r=HN(}G8?3m zq?IU#J8vyb$wjtfbVlwd5V74SObCV8I9w`4C{QtqZ->OofB+`_Y8~CNFqcDbNZP-l zZikh9U*a6?{%@{p+MOgMt~zM-OzZ$9Xj>d=sKp(tq}zAvsmn)6J0+E|LdJQBC?!ME2+D%gk%Nrq;=&~lMUv6N$rn2um3C7} z84@+&{BLMYWmEbAE&I1p3{Y&vT15X42Zq%2{G4g{G=nOG#H>SDc@2t;w<4~YXH&W( zU<<*!FL~fIOgJ=vDCb=JRS-e2-_8{Uw(V9Y3cPrLDsDu~drU?uAO@+5hXwWlqAaNPck`z;k8tPLwy?W%6e{S!J`Iw{ zhlYqfW5VGw96G#K;DzT}i|q6-mlhm{g}FSG7YAzC&0*AxW#diW0jk1>*o7ZBc|WV* z@`FWe2{HwS!NCYLPr=d7Uc`Kh2gjW2GGl)K>H)Yq*=beAwKUY6 zguv*!?&xQNo*d{ywjt7BkRRy+PNPbotUAvGSX#f-R8tom!{qE0+Epl06%0JV&4D|V zD=VAI_Q)%3zqpfJuy6+uQq5=8*iAs9Ob$X~9k1a43?sBjSwW8`z`a~401+*Z5_<>| zoQpwZu2<+#C}syG0hfp89Md zKmjK#96jdPTC|>(Uaf2I-7C$Rqck{GXb6Q`C_Uo{t;1|d#t@O(Z- z%a0gBXT%J5`icZ=zkBvxOHo0R(C6yl#-jQt#D$nC2u9WukaV}Tu-m6s0ljk7REh1v zCaX&oozJ?uSUn=<^BA1iisr+8h~lC4lx>(*JQCw`x73rAQBp*KV`f3`gD0SehCG7K zSiZB1krA3!u^+@gQu4w*7NhaSG;s1O*^o1@Leoc`7l9&@r35&gUYMGwAhHYWov}BT zzevv^zW~(viSS5s=!1iie0e=W z%e1Qn&VD3E3KA#%xuYQGfM+Ps?h0{XbC*sVTuO;Ihk0S?N5p+WfhVcu2!}GXJ46bN zeyC|5E-hYWE3lVD^-?=^EO%k)g0TcQMRKhr0Kj&%SOjCZyBuT-$pU!fpaNNF#seIj zQ{2k__oy{62BKp+&{o!w?$`1aqHbYkjWtKukdgGnfIKq>U@tpDAJTmX6b zL77+^caMV4TXO0x3)$-lPc86lus?1h@;Kid%LL2s4TjuT5K-zyRolzXpUt6Tbse8}K>)X{A*eOG&BWm5SBz zfWb~LXTHqooroo+h2fTgKrs5Gf^p;(Xx25j>!y1h5)}b#mUI}XKPF9zZ;5e1%;(s< zK8bL_A2D?yg6&AA^7iQ0e*uL!Db(!pY*CVMvyX#@h}8=GC4-^(Ud3mxx3zKFR;n0= z@`-t~{~IIlU*3a=M=7V%;ooi~`a`h$T=q$%I_{vPwV`e{l?SBmPC^8V0byGJ@Os{w zXFMYnCvceU*z1hoefoVBAK7fK>$3a_mi2j1P!4lf&%5;b%*BKBg$0l}R`JMxsQu_K zFrc9(v$H01=v(k&bRB%-(OVnZ=;mgEW+!RU2wC{DS*Ojha>qDSpx4rlcbjX4E2OzOQ1a^)=u zAkX{ubP6S0RM5S_0ecqjuV92Iyx(op9}QJ#4Q^=;o5Atevc9zYJXI zNk7e6mhG9$4rC{g%s#t6l0*`!e1%gr66g(e_W?CU^(FB}^Xv<*<3RCth0{)Xwx+YY z*GaO2ji_V1$47E7uNuM)mb-)kKkZWUqck)QjY-e~+4-J6xsb=Kip?qsp=m1{Iiio_ zsZ$+XJM9I+-T2F#@Mszl-OM5sc69<4U{3tfv7m z9_EQ=Le`3zA|wyITKVkmM{@_hZN2VD9KI#yC))!aco>*MQZ!9DdU$Tz>W2WalA}Ux z{5|TmU@9ekl(4LGP7AujL9K@j(D!zWFjO7O3`(B+F7V71vDcJZT zs_Mf(hDY4GP>=>>_MqHJG9H{K-C@#i6_)n z;4fyVK}sXZ`rw7d*aiQ1a)uY8i|T%XyonkGDG_DY1W>U;IlM(J;x`|g0#UHTmO{cU zq;Ux!x-4l~qG(0pnEE}n6$ft!-ebKtJ+$GeVkGpuz#32(1Qe1%G9cPNWqQ(`Ms`>d4) zM)~{bR?HnOEz+$}XO@dR@yl$kXldq+H=mzbJAb3OI=DF^QnyCsNY{GQ`5S9x*}7G~ z*UI1N)^*vD{+Bz20{~!9EZ|Pb|HqyF`ycL96e}h`Pvx~`1gz=*0;mG?)XZ^v+w7`9 z%3nITEWl6&?tTG=>gFzx+3YlNmZ2Wo|Ni?=<_Qn)NH+nGDlqa3AW}&sb%Bfjpr`ZL z;`gXSCW1FhU>?-kCKc!HTs-tjK&YBK*)vX=Hr-fJSJ4nqsm^8w+&f=f+~p@!<2}}W4}au(xmOQA zE$f*&92n-#g1_(gr5s~QP4{rqIiU?zmbW^K?wrbQx#ZQ8l#^2u*;-rw=*~DJ zdE0o>so8~}Sq)AZPQ){vU&n8c7GIvoYcQ%ROFTC|DKP90=Ou7`BZm7YsS?Mp4_j$2)Q zvyxxOYzzId`QA9}RYiX}^HPOg)XU{Nvoe&I-FN0q{FgBvllNAhDIEAUxBBa4YH?ZL zrNg<8wjG$N=*>Re)K}WppWodx>K$6#@=e=+emE|$ra$E+t5V_69dXwO%7?GL`nYKl zF`*Okprrq2bmr38HmRzCzTGFDrd)j6HS}Hfz$!plPPy=TfBM?|s})D;tWE5yCvz>i zWa&)nM5CEQQrT);`6q(wihA^PHhbO3e@5MPl5lvMJM>N1Z;{;*>z-Kc7+7kRFvV=X zs(OHEw7ir#n##9qKu=T^t)%2X4xiP?0(U_Led9V zWTh7!PK8W8-{4nH-Ay*-;$A`pVKg(`Jf#`A+V^99Ao_cPHf4T(UCRVA#^D ze!qUjy(OsBFzB(I+^})}$5+GNESjR}tBcR8#6Nemkg8;BT_RzxM&&powK0+U7nh_t zCdvnsjl3#aRt{yk)qLeN^FDRo?E&;U(fkbmN|A)!{n2r4nVrDtFEXFSkI2TUw$2D` zQMJfNKNPh_!oS82zGRp5ycGu>c9dpct!&Y1Yd?{E{nnjObuY=wi4Ok2M}X}jbUER% zN@T4;pQ90P_NuojJh?+!rO`gb-s?4j$C6z^YzV7>Bq?Z@H?{jvxI|LptRAi3!#b{# zV2pryBnkn_VCv|K$^|hYp4ozLrz?P*Xvo|7-IFRFWy`~bIC%ROI;uQ2C>J)AcR{|| zfj~mH9ql!xNkqkkZbzZL2#SyeNIGO~wf9K#eb>El4F^g;^>`zaIi6uc`rx|J*a;Ta zTRf&Y{}96bYMim%E;H|qT=x`3&x=UfpmVO?wNf(T+(@IR-FXh=;-_FRxaI69S#!~2 z+n!HDvwpi2Gw0TmL#y zpFn;5zT)*fGBHjT%O`>`yB!co*z?%vYg3@k94nsi3{qB71^|>2IssTydI&)88db+^ z#jnhh;iyZ+={zvn?J4aQ+jcMcwJ_zzz}uSV&v*{?@(CpI`mf}a_sGxqwDsxd2P{8c zv)#daStJS!Zd9F4Cw-oj@Z4+NQoYv_m^l~tdlf!}-x7WJJpK2Ffqg^QUlwg0`}LZD zR{eGC6dMjzI^)Q_s>1sIC$v1M(yVkGc4l# zy#&!%)o*tkZ>}}hGp`w!!X!NrM`{&YIo$qC1j@ zRO7E_au+urAL^y#t&We6>5o zoE;YZC9yhGb^Vz6T{!ne%JrTqT{E0Hkb1E6iHzDRseFs1&iI@e(^KYhbn7Zi=(eo+Y9-={h$$J?H3qI?Op$7$x&Rz{=d zBnq&fm7(iTzgjJt=k4Dsk&@LD{ona;kN*c{liqa(`ib=7mg_ z_x{M319}h5lVpnk00!7`7r*R3*byCebZvL8#icFQ!}Po`rKnsz&nYhqz|{(WOI$pl zseTaup}Y1ENq8yRp}o`3#A(A@gk=Bpz848W2iXIOb#`%~wmS1(V(?Q}Oa8sVI_9{)=q+SEH|dOzp^PZCRv`A>XxgJc z{pj*z$s#3{9r!8v=USGu0kL$|bIVM?K*wln29jELVD5UMp_s-Bkq;iBIs>F$k^ir44}d>I$mt z(?g50-BJG{}azs};9rdEzGE(48<(q%erKYE-ugJ`{r3;UjZ zLkcnG+H2*CWZE@jjrHtezV7OjOEv3DUYtt7Ts`y7q)YAsYcT!FpZR#%O`hz#4>`{^ zX8mP<%9^bYJYrRx!)gcp+7#OeK3+ZhWa~7+WzW;s5fQ}s`BE+IUslVB`*!h{Yd0fJ zRxP(l*}W_(_;F?GUHqSw#Z*1HE5cr}Q1R_+eA|nsTud;|2I{2L+xB(Bf?}>c689hJ zWdn$+%U^H(*Yy@2Wd8crzek7yiAWllURi5_gyJpL)OSM#kdj7l2h(6(gJf1uNy*jveSGDZ$ri8`bPx+;% zcJ8|2Wv6PMd06$@=ig~J*k|^BGt1$1y56I~IkoZZ=hrVq?0IXEf^F{Hcg>^k0Ji9p z0^1A~^J#o3;me)n@zG0t!}B*Fi)&Ax&!08lf=O?s?j{k>HGWF-DXdA!PCEGId+p1< zjLCsviJwcZ2dOg7Z3zK@Xm}%J_ITz9DbV^-~QG~;f?j{CeO`NiCQvg$j$`k zzVtyys68Hfrk%KY(K;q4$mUd>CY9FunpzbG+|!Aii-0RQxd`FRZ)QTKJ!#zCM{fU2 z66$p1+&-R~6eZ`w7}9~xqB6GO%oAV7`F$t5&mUbv0Kr;ua#_jY4(V`fSi;X}GQk^0 z@D`k^jF^ze{Jw9R$BeQaRdbH1{LHw}7r_XR9W;X;>tqlqhri6n4u<$G*<~I#+p8Vv zetR_HmNxcQQ{462G`mOuYna2%fG=zv4qCI%{vl_zL+g;M9P_oN#o^vK=>?$LDUEWA z_BkQbc!GT5R@m1cC!ZaPP(Bs?;D_C5Z$^bT!>2!C8Oa)QgfSaWh55v|Ibl^eY0WZO zHKVC2^VujhyDl!HyeZEd#WLX2t}mqD{N|cdc0&Gbl>b%0+RXd5Q^0FEyWIJNW2?E# zrkQ6WY^r{w-_H_^dCs1(uJ((2xjp9v($6-_#ZTY z1xhOBPhUHA*5+H0<99n{T~EJ93viP=n(cUo`eO5 zRX%WvpB|93|55);0}I|szAK+{p|1%3*{dW9xX%nK5q2)i1tK|7#+z}dy7>Rh&(-%I zlUS@n10Z+2!MT|Mqn89%U3`x_)^-^C-XwQDD;3L3FfKpmJlRk@Ni$C|FHTPOUFBRq z#F94)>b-SAeoLpKZVhT^CMmO+&Wo20>7`v3Ze*dsNC?PoiCvyQAspc+xVq+MjaVSJmURi!lP{b+uvaLf+rK9iJDC|wnI>dg1ect%r|7pjrKPYWt7v0mal z_RN-Zv>)`k^zVCRkynM#tLofl1{=ZovUu8Qplv545Y+G4Sg{l81OZu90^dXPUe$U@|Dp3~*LvGY7zd#IdyHngt!svlJ4Enskh4>x?ujUsil z`(zf9nat{F8?52w$?(7hE_8n}*ljh_#UkKM0wB7re7Z0B%ddtq$Fw2&0`WhvhDeVs zEl=mIrFxm)bcMb^^M%x!+a3Q7pVgTRboQ-;?Mliws}GK-%zOi)e)%Bv9pAq@yR)kM zqe;lb!ttGCi+F{?(K}81^t=gBbAC>b+n)p#Ugt#t6L;r=+UaheTA)6w;_=lzV%|selUTGSSJ%MT?_qbBM^08%zqwv!Y0=YnYV;Uk z#QE?=f^%Ln>XJlPUDg+AKu!`>+w?>K6n^8t)Kk0sh)>EccP>*wXNmM z-^RexO&M;zq`#9)r5JNEGVt$sHF8MjQ6*2aA|*6STYsMto^!>DyJ=Zpe!b_P&X`9r z{NHI8Gnst%O0M1Osesb%wDYvSuh(aOp8IBgfnc7LGuZQDS<#$NoPBcYOho+f=1l)m zy@dVbrQ!l~c+ZvQj6yoCEvL&n(a`>%Fxkmh>XayTem&{rr35%6c84nQ=#~ ze_9MY@i(B)?e^T08HtOx+3<58Ckj56CSXJFT`=3{W|s8KJjsAE5}r5Umje7h!p{5~ z%0F)0_dN?UV;c;{R`xA>NK(x()+|HWmquBm43%iTXAH*LkbSAK%MwMB)MrNar4U)7 zgi29KDN1?fIp;awU%&srea_6h&zblAIwtDj~!T*jA`g?lA-W+*$vbtLj z7*T(B;rctzSX8p9%Gh4}#4zo$=p)sylbO>4O}wGCPi-Bx&v2AGUJ$g~RZz zu=B%7J>T|>U-($)?+3$>VB-l_*VmdD!1Opkylo+PVCS`ZzlS_P$%Arrq+v$xS|MD4Mrqus^ zJXyWWD+hMYEeKXdoW-;&g_l+qy}BO$=7f5g%FQ=?gypEM_wD|&l~?^uYPkR1zp`?w zG&^i{v4JV*4~vLcPS75u?k`h56jM|;N#c#NFBk24)jD}-{~_{wotd(l9L^#0@g=#3 zV#BXK*}T)p=)QGl!R72y`m;_2X3>honEt0bHGZ^+_S>rScaG@}y4`8P-}-WS`1q^G zb-Ld7aWd=;I6T+Rm)py7?tdcVtk_Z*fQMtNG_UIPdO(^u?l6>nx*h z_c|8A>)l1+)1MsLcy8A9)q|C_KR#=fLuMJz9d9Ygd^7*|G5z!gZ^6n0GJfQ=WZhV! z^ZVBN?49uGJKGTjW~;NGYzhSQ7XkiZB`sipxZW^ZW$gK*}`#XA{K2`On z6-O+%odP2Dt|a|iZOd3tCI511p8WUcwa?47$G>kWy!qkiQ1_erDh1%Y~ zzBcL)O6+>t+S)v+i%)9H2OwaSY=UlaAd9_1(y%7>tDc%Z^oN)^pEe<-E~@T2`Pu^+`CN6^Ge@YvLi z(-v%`rWmr5PAc_t1R}$A3+GsdUn%D9P+^D7rL3QXTDf@WjN9Jpg#*nD{)y?TM*!+`V^N48cCC7&3_A z@);9WMoX|_4B)P98BrXs$Oz?*S;X{ZdLtJSKR&wbkZ08YdiEfhLY5p5Qs~NWBI??l z_O_c8EEQrcTeOw62-F)osAOSZEVjOqJgQlb^tSk_o!=++OtngZ3MmvtxIQaO45XH& zTjJWF0^|&{TNxH?tTEN0+d4^w#nvKgW( zSnA`Fa4Czbyr6bFyP6}xk zk1Sx(x}L*=(uGVQ@tCRx=g2e(BVqth`wT!?$|*s$mQb-iIG~;W(U5Ld?d%4{4Xrf`-qGePW= zAtBZKO9=snRHG^(q_G7`2Q<8~ofASGI?3)JHI(I%t8j2dCG}vNsm^|>F^3wuT${2Y zK@uP(VvF+$;7+XsbwO16Ua&-pKq2a_TjZdE0)H2-F4@EO01lW+op2ni7sD4ihY^h0 zp8_H5oI)`Bn-D?(uL8aGMsDV^gA>q%G?zQimJCjBO!4J9G{2TRMLTd&Q#IGp6zD>a zsB2K@0wi-%B3cdNT79I1g5PRGedH?nCI@pW6CgFa2i?nq~b3ExNE zweiV5??hv@P>@f&PLB=Lop>->(Gxj1tZ;VEnIi4oF)N$wEo~o2SZX`eLg2Dw>ANj$ zi5e5L@c<45g6U%EpUz10nI|g(g;Rk=_s)gdXoz|@^(;P8IgL>~2XrCrtzd`Q_OM^4 zGIz$^FEmP0ZUdOm&W%%Qgc)k2gQd@P>PS#lGr7#b#M3FsH2%hdBL^{rqDddh=UJlb zt%5lgpK5|NEaxC=xPxH4Hc9ec{nBaQyFyJ$EwYR$tcKIx%qJ=erV}}zc;MNbjJ+|) z_hX*7``f+yi4o@>G0I%fFwawFq9&n(^B{s|i$C+)MSEz!QHqs8G9 zwzBXG6ai9dg?81oi8XtkIvtUfM!;y@0HGJ}9@PIA=S0_7zYGeq@*wJqn)^>5f zPo#WK%!T^5##{@{j~FQ4uo9W$f|YyRQeE8vK8Veqfs?=QJAIfhpOAwYsY(w;R;Z_R z=lxe(0%*mHm-Y9noonh>l;H}zzw#{=)3yu#vtN&6u=f_SjSjo#b!08#xy9LYNp0&E#p=|Dg% zwQ^Ua_xl^dq3`;&?OkroWS^pki#lDicf?-)L74AUwR8OBc*E(7YL1It5PPN+p?_{S zA@u2EioRJa9k`h;$2sJ)hJhR#0EPS@5%=4UXELgbR2}!YA_>VmjVh4XV{bxG#2ET; z+6nBhb^xwXYyZ498b0}Ievf^(R`8dN9LomBFWOxilKw-Nt|wzv0fOcHu^2FZ?TsSL z!_>%MuT8e?6W=iPUg*z8U|aSxx_8FACyQioFX%avy6~?z)>h)qBQE4zl~y0O`A?c1f2BTp=@hrt)m~r+*JX%a6zS z4jRMx)-K-ThuA*T0(N#(g*o*nt*#voVft>rnHFTa@NeT9xV^y(fn|wIcFD{kWlkfu zLh$_7EaB6geQ&3{@K2HF(MfJI$L4w___9J_n9C465W7RUa)Isb6kcmzY!-cPyi4xU!moYbyZiG`m>P-%qhgt^Q}cZ^W+p<|WpsUDtePma zn)>zP;>7USprYtmaoKmWd~T;4(DEc@6$;&zP=@xvlCN+_EfHfR0D4 zHL|v4&mmdf%j)mPh8`H$8Xy%IWSe%P<|kGpFY)QZ~Y*uFBH)s_@X0Kc3vPFWX0g!fGX z7+hTgE6`W%U4+OyGQn{Ri+4?*D4WfQM}4UqO;_LdLR zMjqC=6aD+gznlStVSbSD*1jXb{>^|l3Nb8=KJGyS`1a*Nc?dkvKp4_)+U0B@ufV`E z*FIV~7mQLlP+NaVgx-VlwXTg7^*7n!>a-w# z)8`AvZVk!%Y3XRRcRqgcmImK>b-|aMXd2U)5{>ICbXtf%K(Y{U9eiwcJ5KKjcULBT zjsp+e0_xwq?iXQkYKxorh?iD=`F`~;yY$dRq{9suLC@Z>e5GVlf2P3HcnWoQmp9)J zH?ZT)JSl*tC;KM@=mY2X6u|~Wrw#WW(Nw>uk5K-ko%;K}&26+Zzf_p}=9;7BCPGkI24PmYqPp9!y1O*A$|Tsb-f~ZNs(dFG8c8X1YtaHaaz> zm-#|FVS5K4wriPZKW68y;z1*#xY>egfQu%$7QfkiDD_k8s8B}dkP>qkgHvG7rO+(x|6`N%t%e%6P4qfN)YGdsmC|Qt{fPlSL@Dl!DYa*0NBf@ znuyEUQpJ@D3h3Ay0D1HAeQ#8 z^vF^moGn9(4XATqypR>3AkS~P&z)iQt+aghqne2qL|Nn04Fd(ns+~ysNkyts+{a~> z4?MhjCE9r2Mo1n{lV^ex{dw6Rd85)g;rVL4OzXLR(^iK8%})#)&;1Gm)$$cJmo@K? zPFEMN8r46dNz~A}9dyweI*JNgTi3cyKY%1ZUA+xRQH*_SdnUc@^OhNEc>5iXdm0uk z7M9ZTTza)E&#^Po!LI=O(Dg)q3MA$e&W6J-8iB=z19b!~gO6rO(!1{-jdwT->}7Tc zwQ(-HN@stof4uSpMxm=JBw$17BwHHKqARRF3@-E5S#@itZ>0y?&di#9A=Ubhl`NjD z<8Pyl8nn_C@3S$*w4(*Va)84oq(cVLeRKg^@Pz|UF)&mWL37v0x4a06$&fsUOa=Gs z%{V)HYOiKV*6r4_?I@%Yno1uvsF&@7G&Sr6=i~XYv^}<N9+C+SB9eDKl(#$8G*t2*spfSui9M5T(2T6~<)Q5H_E#hmms= z>k{GsQw8a%(|5y+_5jNa$F+D_pu01y4JB7PzSW$4_sOn4x(X9!heZhLkBPR?lpE;! zWI)3+zH3m}D60}&2J4R=X^zv$-ZTL444X}O{9XGZj7fgEz54eWm_D5c^`JPAY#U9b zhAwPsExHUBL`gvCQgy#cv9ywUlwD=uBUTU{Taia ztNHB4eT{QRAzTgbGefe=5I-tjpAG2F!&IrR0KqG`9l&s${yXbo@JRVbxK?mCEiAUB zeOq&(usT*2NE6h3Y&H(7fw?Kt`8NRpTNrm0u&)F(De&xW$an?%Tgp?Us9ta@eML5k z7Gv7zH=q{x(zkuxkovv?Jew6S;`A9V<2fgQr>VvoSa+JecTffn z`oJbk`D#gyX30UG@q$d@y67j`71d3GHi}Rsisgo}rBD0?WkR26+s13m(*-D2FM_P@ z8h3*Lt@sf}YHELkTz`TFg3RSzgXjUOcdq1A^8VF=@3k@0V9ErT*D$QU8`4*x;}sYJ z^S8oML?aT^g=RUODD>#wqWRF;S8FtDXczR5aAL{V@vM6F>2AEOABKk~*1(WcGz~vc zkO?EooA5vFcQt?67ZGr8q(bV9R!JCw#BRG}NV~F8i|#{aqqW5MTMH6;INC!J%$Xfg z&u6_Ay-&X1?&&hq>oS04bkpf&%HP4rDfUe>>34?O;!TItP48G#?ysMtY4MU%Y)}S& zQecw@T?0>#wQk2(hr=v`_ojU&*)IwR$J+x32~{_1Wf+fYSGG8hKehCbrop~`iFuf^ zEgeso!sdf$9s+DMEgQdxzI10xsriOJqeMn8D%>H~us+*Po_hjvxCF%DXxc2;dt;a~ z2f#D|@=bui=Hfq^>P1GodS$P~X`NDI4KS3k9P4m;FRmEYP_}r|+PO}-)%B#S1(gW2fr87exc9fTP>(GJhpp-)01X6sS(A_apqufyEVW8) zwL~@tb>pjmt zrQ5Z6DCl$ zcg~wS#;*^m%+cT%z=KT2;Z0t5Ar#TQAAJJI7i^Q%KjYA_&b#oQJbOvv%0m469N0+A znG7eoK9eTGj7QlFY5?#j-nw5lm|kz=4>Re9mjS{uLXO8#G8y5b--Mf>f1@1%E9(ja zpYJG{T#RUYhxzu-4JJTZu{+%L{*X(%1Vy{3;l7$gl02^@Ifc4 z^+DGDGzrhZmeqBkvwkHaw0`}H1>7J_ zE+0vxwrq7kdpr?#o<*+9Q37n344$TEddw1BF_O_?$&XWi)Yr?>4&iCX9>l1UK@0_^ zHqSE#z)V>59l^~RK~pe0a}2fT!rFYiK9 zhOr%$(4|HC4XIH4RVj37Q&5!}C_#Ze&!tAF zAJeoIV8g#)dXzsRrXb0bCNcsR+l(=Xf%GnCm7GNulTjDsr$}{DYJ-U{(}?&NT?b%> zta$a%=;5;x=0B`Pr5jw#_i5I|2{!%IF};K_r6unGRlzV#*2ZEr^q`z~{5Ja#s6&!W ztmxPxU-}+3Nf|LQMax7{Y6kwH=-W;P46kO6*9Q|}d~j>SSn~W5Ts+{!Wi}-sF;7q{ ze;LYG97qzB)UX9^5PNM!_vs1(qVpQO3F|g#)1o|{rH^#f=olpuQE0L2o-B%@1wv5P zNitu7NbJcBl*YBODK@)h?45?D3>O&~0kTElypn1NCE=T$QX!*m#G1(>@qH%FS-D$mjk)SVcVvISDA zh^vx5mq6@I!Yg`{V)Z*2Co1fdWbTpzyWuhij6^?*+GZ)M-F(EcTQBV{;Flt$2#Sie z_T7**>Fa4)dYWWv&+c$FIGK!593Ss=+;^YA#RPS8eEE=qO;aupW~r9vjj)Pt630Ww zxY}9dCOM&Kxo`2v-5oS8{A7s=5hduL51xQWkX=C|{AdzVvIg55X}?UJbT&MQv&1n1 zAW1c8#t0WUKrrP^bNdyO@G@o_Ty4b~1tKDlv}2Nlw3bus6y7V@L_>I3HO&B+S&qAe zmt1DTX~Qr(B40(Z0?mPQ1v`Z>XzOR77$p5MxU>5RQT#xkL6Yk6%K^!9do&D$@S;P! zE1%5}sFrMSjzO~xbE4AX;S@5mc>fp{^#AW;Hce1#yURl`Tni$4O0{4W_*4!`a}*s% zu$sDsoKm!|UYw`}$~JBDsa)VTwI6f1ULSD#)KCSWgxjTi;O9qJB(c`pO}fa|S}ajO z61y&uiVuYHL$ub+vRtt46qrR;On_a*ajJnOpRa2aT0$i&3Lz~yLYXOo8!0lp0)g@vBc^_yK$YC3eTY2lO096Y%g?grH!}Z* z{1UkRw_9Xy3oqI3bR=!9OExb%l!%Kqq8}Ri9G53c5Mff|KY6KO{wt)384~gy)eplI z^PvHb1!%I&IjlZH^dybMx2pz8?i=Y6(WX6m^6?8QHmX08ML>r4kH8!~JJ&)-M8)%~ z_=P_a@HKgKoJy%5YyjwV(oeia;*!NtTz)kI$Ph&ZRK>myvu%4KyFDcKJeE(c58&7G z1kjszApsq>so{HD&~eW&yki5})u$0TQBM1%luy%i0{Nu#=~7C-zDs|*u11VxHJqcW zxTTMru@Q|Ijs69fv{*&iQHwmrnGE$N7bLEY_W6VYeX!IDJQqk1ap&;AAQ3RO3SIb} zh@ivsih@dOJWSUK3->23`3Xm}(4Qnr^$6M*L~dA)kTW1srLjvguj0&1K(RtiU- zLLAlGr{-+1+ANS`-YK3&7*g_{SI>*>QGK>n-N9?28gU3>uKLi8n}I5hr*7d+rRbZ? zTJb+{;o`=5R__)9%nIZIcPTYF&p>M1a;J#QuLO0^d4b3&e^ei5M>uSVg2VwCOIIP< z(N#8(aMBU9FobX#kbp115nO08WHJHvsZ`>SAwGR!hDRc;d&`VGlHLmW|-WiG-=YoMAwSNCux z!Oe%#uDQ%cBAEnt63asrI-+wL6Z{OuVd`x=Qs+{?pscIt8e|$~Ou;2NYj5FVI)%S+ zU?9M=ndTBR4;pxO3S!?L5afJrC>|L`QgZZf?9?k*dr2glUjtkAF58-)%CY`~# z?z7X7Z`3+Y{ z6brtlv+*v!0Kt12%3^CcH$uWo&P8r?&7_;-kj0wF? z&Y8Y{3;LGv9jxjGqDgEp%uzoVwMwZG)lbbWk)wHs{U}E*cH!9A_!z~inzve*p6S0$ zd2%{&yIEeA-xwWZZ$l6R;zUH1G+fpo0HG#LkZ@N9(YSfI7uiBPPvMJc8kd(O?L?b$ zlTDW}aD}!FK7xL38KiI}BM>27!(lv{PliRg6A<>llqKYxUyI_2nAimN%GDr5g%(H1 zT_3KAItI35uaERYm0SV z99aKNuHahwZowun8n55UKX!)p&90PRo(a1}p~eZuf}&`EhYWI^xkrh6AAp7B~|?A!GpZgT>IlKyL(=i&Am= zBfaw+XA7YSATAJ(TZUk^G+_d$9!nIn!m@9Bur+|pwSk}MU8SKplF3~0eBq5sJ47}k zq+>!b)Qi6V=JXXoDGn|qjqj2pVRnD1vbM8iAOW{-E4NL0{}+wdew%5_-JRcMH3QT$}?4C|GA#(h_ z(4ykFv^lp+X!QJF$a$+*k{2IX*U&(9&princ^nF48%*3$ekgN7tvjXlz#kL?67Ro?Tfa47}t<)0m zfP7?2K-K9XQPlMZip+^h0%EF9dgzK{$JR+MlTEHcw2RZ@xlN`~;RE!EuDDSie&j zN4$rFc7Or|IZLNC_PhF@z_~T$@9_1c2iFc0aFWWN=H;kkA7temLr`OYCs5>)s@lN$ znw=PXCK(3NqU4;@zaaMeLx%&%MNFV}d+f5Atpt8atUVK7nO$K1E4$97bisDCCc#ije5Me5(*Ua?04C+ z4R7GgK3SDselqPJnIo)#5ValRJ>jAzAUFhcES=zELJG444+;VIqhg3Uh2%_E6p}Cy zU`gXV!CTidp{%RpNz~*J#uO%$F3WN$c-NPqDfLY*;56WT@hut$A&0$&f3khgGRLju zQtZwFDRO=Zv>l+Riy)NoUIjm#{udo`j)Mxd7}o^FS#n71bsV1PnXrIbwG+6kinkRt zNpRTMOdQI$<`;%8RTR~RcAY%<+*YB7oS~+*j5(A)z;|?J6-vQ|#XzN*fKkUk1(bQ(qq8EJRu_igu}3 zk)EMq!HYzY4P|Q+<%!0gDg6X;%C#! z_%;f49{BT}Qka87N1xeg<+sRA8rW~tDGUA^8j2lo${x9JBFo-GWXAkcX{ z`;RtP+;&*lLHPJL%w1%UaP6xfee)NDpovmjo3_!&-x@Cx1a1^}y_(sn{`+z~$`&H# z^h`eH`pC;kbsZ5LdL_Ixg<0jm>i~DTlV=6>t~cC_N99->f!S7^-GEMyw8RGB6{^%d z$4Von*MD#65+QR1oJ0pQZAq1!;sBfI69lFo^6MFn+j`yD=NxZsu?^eKZ!&%^*~i+J zCM=~-KO5&pwhYlm8jg&A6AQKfauA%l{aXEJ<`U0q1l~`1<1T;e zu{{fNRLgKkv)p5(u*~%=LDeVetvA6*;xBgR+@aB5HaXClFbP_ zHbo9-Za+vP7L6`;?rUluSLyK#{jh(RUv0$zhRM}BnNd1g zuw+}{BJ{2yy$chXsnIbp;K%zN(*Mo-f6ace#nMgxQJK~?iez@%;=D^g6O`l(zZ$MM zie$PB@BI&g$O!^=KEPRD=*B|{p<>#% zxA^$a%Sa*NOaP@aFlx>1I^R=sijpz@9Nr4CDK7K~f|5fzKYg$!LG3-O|N7}>7x}Zw zHreQG(q5@1chPsFu7vORvh+UmU6J#0#`F1*GKNEUBo2hQiBzEWe6KqmsbAEU`R#n` z@i%8}C{EI?UAoEk&xPNkmR|e3MJr1JF{=}p(3XG*4suOiUb^vHCGdXv=Qo+2=x3QX zPyKi|#ILxxenm?p?+077iIFjZ^Kas2hLS?mt+`<>OGfq>eY89}XF~s1LH#}Kb%u?=IGu3oQKf-&`H!5`;RvT>Kn*DuvM z%b>;z^@ZFDSe;WBJMyrSRL)k2LDL)amD*Hxw_577N zer>0pF_6Nth0)>X)Z?I{R1;Y=f!qLi@0QQn9f<)r4~+Vwdmp-_ztwL3V_UO$-`QD&WtZ^Q1{md_R6wz| z>+9!)!Y?b`z<2peZxzTE3SKo%l_ehb_(MK^2|Ndhd}G0TQu*wO_%ul4Dxh&z0FLM+ zMnG(37IujL>$9^RnAXyUNHIazBm9-xm|f1E0>!lz7p(kO<2_aC+P%@*HG^cXVIMIR1NO-<*JPz zc-Fj5e)@IT{P7}x0?u~lar^y-QSZND*l5^8m-%anIDBcev~%&pO9d@Dk{U*EwGRWvl}*MtA5+JU-hdq`V4Dfrw0;(k^q`s36M}dANzb!)O5TlnD?>a!n%(Z~*S=nWmv6 z5T7h6D-5_8oUj7+fC%RJNy{PJ!85aDQ7~TAK;A43f7jxzT;aYuKUi(0y%`y@CKu&K zh@=<%q6aP_GAq+-yK6LcY6GPe9FuS-cl%Sac;i#06YjH9iVQGbf^_GY%c&oW8M`!3 z-1}kMb#fxh`;WQCyp*c_9q%1;rEtu%l9UkG)zZ* z>_2|smdRXUbl9_In@5QbvKP+G6-y7kcJyia{OZ5t?{|u4E<{a~OVJJPpT{*0;Pkd^%^D7ma@~{yj3%F{ATasGCu8v6|xGc!)B$tes@&YojBjm^HR?4C0^V40d?Vr?vy>ftgz|L({E%gQM4?wR#y?*R6b zsZd666jT2Wi%E?RyL0>WgR$w8zPNk0(=Q~2@N6CBdB?=ve}zR$)&95Cx3v9n```6U z=Diq(TX+aEV59rq4Q~cN`FKEfRaEWRdR?_!TuumSx6)t=>k|9O>144NJ@wZ;Lk2D+ zp}ap9R(de+4_v;z@RWL?wD7=EXtfy$LaywV4ACY61=9B;7yUEGfHKetqz1 zZrJ|4tZKamuh7e7XCD=nKlreDA@Rb~`{$CIzYBUz$K@w%eBNmpoG$3c^Emw8)B$lI7&1_>* z82$Y{*B|;f_xBY%c+l5*PTFbpQf0k&@`wD^&HT3BoEq!A+8X?cSI>U!5M_jI&p@8> zlgYO$+XsJW_$-~xEwAe7e|J5@`902hD3?1BfJ|B%^8cp5ABw>&shc_rAF~wE=Nqu+Ad#~@7N*T9J?zB#=c1O)vsgt3EpS4Q)x2hM_@=0bLUB@Wmw_47@ zYLw0?794RifsvD2kkbhVN^9NrL|3~2Q5ceD?TtNMYNAi=JNLMR_yL!;?#N$0y0q`` zP4k0CV5jSJHr4vk?mO@~QBPq&gj>ciO>4R87`!R>kn*CoQ78=~ahhy8D$*yeq z&oF#p+F0^RjJj{uldZI~x9uXsgBQnB#P;6*9v@prDW6L!^gR#w+l<0fTMsn9TI@Neh}G&R&@tbEU7LkM%SFKv2RJP)!naM_~2HohU68Oxs{spk62Cj#2d`8c%+z?zo!b$+g*+4|E|qwr zb-nOR<7P#w?jhpdfitq!cO4}>0@g9scjzd>-jQsLNh8PK=iaDB^%Vxljbz(97~R0! zKcYT{s0>hN2aao>vI^px+3Slo4kNJ%(zzB{#^Sn11F>y6EJv2;%l2pTRv~*D@>_Gr zz_N5DX|f9CZsluiggqW6YVPS^hMdUrv5t#y6aP6M^wL3d;e7uUpsnKD|F;a!GjurY z`^+oD+vseJAM-f9G2t1~u<_FO!sm@iN|MgcDdK;*a|y`ebd#A=MSdeQ)M`iSY}gB- z2ZWg3zcH^b5ALLUzk$A|Uzlh7Ik-9VT;fjKG(+~>KH`<<9kFvaUNrn9q$z*#eOG+p zNvrdNxgHbSt9ymFmh&%N4Tv#8VL2;z{?q-l!jGVGgdV(MAK(>N?{dC!;E{>a2wdbg zv8N7zFuk(Q5N4LVCt zZ5Qe56M>ya-w~+n!|TuWj++Bp0_@ESehBS(9e5#&+HC86{FO_AZ59CtG=cW7#QDly zanA4H3y*$rMG(&H<7+7ofCU`@QeW-+SH@2O)V{{Oc(n_m>Ur>UT;nD2<=4NuJct;F zCi?q5!0#Ox`_Rw3de|?IXt3-}hJxwct6U!dWZJO)?th+u47e$gTHTHJ7NLu%K;ZMW z$9tDpFvG4}_-{%3WNJgv08JWp6Gn*W}^?;!jTmX5@g z|BB9kD(mi?F4nPt46x~+MlPJEaZ1E;rVhYO4N?%EkfaN*1819=zBTBtdEAy`B`?kiGnhtF?Qo~{I^h6^Tv${)rgAkEj89AwH)ZTtcqd)WbN(B zq3J`f1-mu+c1jwvtODQ2y-{~izi60(GYvu`qb)$g#*&?ri-ar>j^#7#CDg3H_U_Fc z+i%FRSd?ukHsHhH@nQFAt>vA!cmJradmj z{OQNHkF}497Ah9#{s;kr%y_O-07T_O|DyXHFOQ9+d7oB6Tp1Wn`x40}jZ^r9WE>cU z%@?#)U;lGTb_T1W%Xs@5R+A{#b;s|l=A~+f`%{y?nDO*5zdF^hy#CpV%nJ%EKqJ-0 z{9(`8RG74??AwpeEu+ONuGfdCRL*$75EDffT@>OwQ>TDVJqGo!pIIf!Ie*9BC2lCN z-2dqQfhRClq9Nk8_2BQ3NVS;wk9%+PM*{TCZ_fbjl2A>b{KtzW_vmpGx3nfbIWYUC zo5vZTRBwoTUDeOFw}Gd>U<*gKjNMv48Ce`z7Qy|Lal1vqkIXdU9`L8Cko207p7# z7I`v={;`*_mwo;H>Q)@{zpQt0 z@gwr3yKPWukFyfi(cGkxGCWRs{29HD!AK4C>%}HlLL>jq^&ckcOhCYs z{dVnji>PYGy#I%1z_TFD(_2&K#rM{xrW>>rwr;!C{oKc@G(O$%boGeP#hE_XmQl_5 z4^V)8F8$Yy@Y9D6arPbmx#ZDN85_=g^Ec&Jxk7Lo;-&Ce(81@fjsFTC@iVvbQ2vL( zu8+F1jxX{Sq-irn?0>(Le;C)6e71buvfyVESrP2RRX~|s{&uKu+Xd>;bx;JpABhN( zjLumY)`?0;aqGG!zF>2{q#9I!dLCTQU|oy!{~9u&nIe)p0zZKK(Elr$@8KhN#CnM1 z9&q7EOkWhw{VwYq_3o2!_wMoi5@77|i9bh6zGt5(-ud^6#CMq9b>-m>+3}Y5!=qz0 z^^sS;JEnYI=68OxExcJIHRrTn>cF-C-jvl(`Pnj5f8Ze*bj@?$ zB@Z=Q4`ldjH&313Ym4fjo)lR=l(K8;B5CPj6$aXLFN&8 z@d#_Ox9JH)ssGPbS5SiHEJ29f=ZBRfG~YiWmhEgP&Zc#;nLd-pFrU@)aaL#pqme6C_f@bhX;*Q7c_211e!<3CC=A>2qEGf%+y`CLS3SMx=x=D+BwTK z(7>ilov9DK96m`AoS=kDAy#X``!`tQc%Ze$cSP#&mRe%bK0m!3I{&Zh&Nb}e=xahIw$)qcI+U4;?3016VXoiv( ztBI1!2j$y5%<9VtJUyM;2xkyuBLx&daN~rrNy?Qr#_i=iv4lK@k7s!32fRPV`XMDH ztl$*-z|EfAQxch($>7B{lH&M@u$V+jn7yN?iy{x?sC4Kk$g2ziiE*)N(dOqz!FYGN+Kju=rRidH^E^==Q#lV@; z2+#Y4Htr{^H}c!~Zor5ojUT+f-Y*fYIp?`?0Qh~tYnp+^WX;`9tBA``P0n|w!qvhG z1`D#=`L5rIE0xZ^B_hR;mWo>oiu9Q3Ltz?b$y07ezjp9sG3p zDb8Mxf-8y^S{nm!V&3#qEyGyMtr~i3O!bgG=Rl)tu_uYJ4pS3gmhb($JfFsF7i zH!0#jX>y3!9d2BG_{E#uz0?m=H#1JWW(K=BfS!tD`)HE%nrOVyRmVWK9gk8 z>~>LesYG{Q+3lG+OwpYcyQ0t1)!3H8sJN>!?U(EG>Q-Mgb|O5kJUp9QonwhSZY@)T z{+&`&ct@}r-18G5Oabao6+D+|2(_}4Jk=n!gT4W>Zf{>Cn@*m{i#vR2GPS0bSzO>3 z>RnMelh)Wq`bD+H2veEA0A?&YwL{0cF=^OW6H11kzF72w;VU#TwmJp3W75f$m zRZxb_5(qB<+iL`a0by2Q4&N;gnMi)gqQ)DyB_A|k$mjoup>y$P>i^^T*?nVXn_;fa zeeR=(LT58~xyvPL3Q4LZ6;hqeFt-{>iZqubB$Xnm@8(i&NkS_1U7?Ul*RM)Hzx@N} zan56pozHo{->>)ciAz1_=HYFe-ejES)S262dQ`+uOZ}jcrXacD|G}%)^zx{JU*4{q zh`gIdy|?hQH+PlqBqg+Ca@*M*0&GNs!hAdXIp@H}wog~ML0f^otZgBC*vdz)INoJO z{b8=IueN#MXBb(m_-r4*I4|uE5FHX-NrXM>+eq)dVf;L~&hD-&X$_mjWd;91z3mYDM0Sol8$SEiXCV&oE4*>-Rz~R@`k{thosr zxwhg}v(+(rmzFr-(Cv!~z++UcqPWxeoM>tK-mcw|YQWXfjRD*vz~1@YT1dg|#LHr} zV;9e#i-z(qaqmXL-r|U$p!a(^zn$3X zL42;7)K%7gKM(kzC|@~E8!0b4{h=c_ts5;%9>3ddX$oj(+(eJxnQrBzT*>4(hQ;O` zy6e&GHW1+7)cIJB;AFHFZfH|kgj;^NS(7H+)!PjV-#GCu6}Ga0K$OJbBer=T^{P+t zSzRt%UE8!aquAD>4I`^pa_>iT5d>L1E~{PzlClq7jjE^u@xEh@eFE(Vinjz6VZn4t zMc*9jb^inZ#hzxxO^1_8@y2%)mg*hK9)42GhXw4Yoan7_DyqvEIM~{0GM6uT-lq`O zpx9Qo)@hK7Z;#JDh@ZG|cWC2=#pK6HQO@B*o<@DQf`<&b1t=OQM&l8J2_$`xb2E$y76*KWSvlmsOs){)_Oi^@OMSP1u71ozr+N?FJ>mBw{mAqWf5yH!_3x_~+!gUp;-KKJ>0XC{aodQI z=4qGAp=UcPsxP+h%Pr~ty;h{g0p|NAP7Ge$Q+P1W@y??;*N8_OM5ghZKDzMmzDJ`s z3RaLsiucbrhUj(V#T^Y*3z)1;EAeX`JTcf%WRY-Suo9;cqQ-cR;vis4hf6>98noZq zt}}Mb=b>vwQ)q6As?jxP`^uSt!;kD9Q?&26r&Tc0OFz88)OdxAZx{icJ=Xp=KC@bJ z;Qq}gcjvD(Iy~z<$J5Uf*>w)8KH?NzF59(RzJZ_YwE1G5kw;y@^NPJY-enXP-+EHj zk@j!aRKkXnuDgq^M2}Btwr!?dTD#By{NCK*eAT%0`E*E7)YQLsT+haqcZI&Yg5&@w z8xba=KlI4kiIo=tFE|#A92IWMuJH}+?z!p9=`{t<|1PvGqh-g^lAXtreau2O`~IV% z1mM-$@-;8rE2w{VY!BOgdcmzPX!zfcDiiA*L;5xz?UO}9 zEpNv@CSyL-t|r~QHTbIa;PlkJt0|xE3ZI>EZk>%j{$hJSH_80TucSwAS8jVXixT%q zy;sv;+Ly;}{V=YlbMD@wTO*j-An)pouzeB7cF#qoyAQuOp#5@B+wH_ZvgVF=KMJeR z#vcESr8Z*{c^N@Nw}SNd&6i&eb1vCVUU&Xee~+Eh%N z-walw@|Vk_K1~DX>Uy@OYc92Y*SfUFd;#zFDRJ9NC(CJtQwyDi7Yo7~C+^&OJ$O~q zG9q2IEbK(~FWoYu=ND=mHz5KKnasGhTaYKW%J-+l+VnEqOP-i*APPN_}~?8=-LVXNtlX|Ne#B z3nhUkLL6P@gBFgMod4`{JhV^ux8uqe+l&>w_NQsxYyA-mR=bw5`w>o}Pd8SV|CfKU zNTciN{Dz0CQL{5+e?mY1I`nzA>WXmlC%8YYyWezKu>EI~KkU#>gy}!atuI6_376-O zT+uHaSSX85Q6f^1gbGM*;eZ1Gk;WO(gDY7@0o)h~gwChhB~7IUW+D~!P>C%800`59 zAD1_ZGBG}7FeFmswH5%%ZDAZv|G{{_asmPGECvKfqn@xF~{Dr$Y z^qbZ$|Gl`2ZNI8NIOn2-b+xj5#M#ib3BGx7xADcKx46tT$0b*c7X?8a-la0l&vz$T zznjG(Vtf5Pym=7h@_R$8@J2t~fpD|+_tE@I2yVw!6?es>VM~G>a*svYOb?*m{R;FyQR*B){Y#&InaJYWQYM z)_2w6-ct9CKFtGH$v)2GR2+@lESnclI@$u)mi8$Mh* zGZFV+xMf<`yd%tX*oWSt1|GDk z(Wh6aOEoWGz)6Spt}?(V7f`p~rTv6r-}JyIj~XW@yxw$GowR%kc4cWlV~;dp-1o7?S=Us*1Z z>UZ2e96k41iIF-I z@dg$;4Vk3uawg25?JK@P%4F~3d_Sl%{dUZC?&@d#ag`mgR8FRTd~?WU-pS1b2g-;> zKvr@Jq$nXfdlhX?)(P}?pIX}zeQ3aj)9OF{px5K~lK(!B#mBq$-C#SCjrLH%e*@@_ zl#QBuckcKd?iqR0aQgwX;1g5&VIAX@x;Mm8Ig6qn+4bbM6!*||Z_2gIy(o)ijL38t zcu%m_wENtkNL}-i1V7?xsAL+P*cknB!}7qI*lR|KriFekt4CbCnnxTPm=_Pw5J~_OVajc5LUXS?!H|_~1Z+c&U79`hT9%gJ!q_ z7mHY;GoR$vP+PqmMY8{avsByg3BYzH4;d2iqQ3ynfQ&;ey=;FDLH+ z^OyGT8_K`=)pnc`B&xFAspG1XIef5rtmD(=^BtQ{DeS*!NA`~6O}7U}f61m+bK;7& zOzzZO+lo3^fDTVLP`1sviVmS@hb?c}s!J5#I`o*}h_dRsP|&6k1hHF1-b>9P!7`(o z1C~3`eiq<$zgzQ5`{sKp$d}G?KPDWp)C$QTYca3p z-;1X$yPA=&Z-b$&Yd)pzbw8?cwd1#?>#n@hNBpLuU+S)|?bU|wJ;7vP+}gYF4^wOu zqmp1XbU683J(7B#d(Z90`i}HB*9~>HzUlaR^=`CYa*ox@N=vnyEt_3Tu;Gkc>vkq7 z__pmCRU*a)TTl$}W0~OYHTC_8bjrFi< z^3_i}F46?t18Cz|Bo^4C*dCA@LVSyA3r;z4a^!)6Imd4QRR$1L7N4;D);0ScVV!7^ z-%@$HULk;OW>y7lg7i=)v1qn;e6|->59KQ36W=ie<|4`7TYe;^*yL)PZ{g2Yn_5zC z&1>sf&)+!awrkhXgYvP*b(++$f-1C9hs`I2M7)kB?4r-T zZTqt1Wz{L|{FnI8MdVEf8ns%AY+sr-o;$lnmU~LU!nL? zQ+awE!IPT^UM6Ht6WFHmG(myhQYUE{(i8&ouDCNJ_?$b&7zfFRX&cDw;vEJNQ|sLD zT;#L1v$jb7`NZ>vY%kp9V}+192a=Z@8$DrqRCq)tpe%s&FH=u70SoPU96(BXHaE*WZ7kciO;-NJJ930I?5g$&lY%CMBTVT*k7}=8A3bdC1Wg5)V5QcWhQcmR|g&Y5h%83gqut?{VcQX7^+na`v?qveyC3}xI$W=BS zMTQ*Y@n2*r#9HdrTZYS#7Rui{A0KrzoAjhFdT2zohG-})2x}<|4(C!yR#!ClYu>0@ z(A&S*^!Yr}orBz~n2q9QIeKROJPQ4M*^6ChU-=%NoW@CQP30CWO`q^{o; zo4d6;zmZf@IPFl_plH?q;4WYCn%2251%~mw?!62>$%M9YU`>M^M!viTU!LZY(*+-% zI+t(k%bW9oHp%#hl7P~o0=tH~+bpF!zi+)UT|>1wV~w-ec;l+?6Mm)kKawCMb{R6p zXP2n>?yT^jC$X$7hIV8CBIHptfmB#iEI`yB@F_}7en zEAQ$z`&e)BS+jw1)AGhkH>?DHdCX}pA9%cR$f^L6b1fdfyggYmJhz9*UIEydWal@h zZBuH?%c!1RnlhWJP14$gdCR;xcNE=8tsbc-_IZoQv?}ofWPQF<12FL;-&mKfCRlU< z1e1ANaI=y15Vmh~8H{L-^HYx~eG{Vg{CsmY7vfzp_~>c#*w@Ah0<7jX&5zyDD+_EM z>VZ)qxdinJyq*D9^ZI~ zAR!6>qmV8qsInb3hrnhGjfi> z-HAB^24Wlegm5!rPo>~kcd^_`*P zU*#3qN4eQvz^!1-`#<9L{~YPIXPBCS^_5*>}aYQC#HM-_u$W;BiSO z7HA6@aeO#CU^d=Mk{3M%F08$F8@YUX$>?M!a8L)3h6LJJK+}i3zD<>@ITE9P2i`x# z+eXX^b^tni0q3&J@DapuXK2DG3UTJSM&W(WS8mvSvd4cqS@keS{|Zr$o)GQZ9ws$;B)=w1o7~+1 zg_of`QXNCF0&W@7lL0ew$f7wwS{%W;iQ#KE2QbISnVZ=M#DeZ< z=l~6i5$#*2HtD|UJwGz8pwsmBnE^FBVmVXmLZ$~d(~*l%DRWxOg|-pl9#9u^1+Z}N z{roCsKnrHZ4cF^q8>R9-m4vXNyDxNl(%DmSCEGhxh+B9gxR00HzZzT0kvC$v(}=&3 zC(MWlcM|iTOlKj=GM|KCEwo|UGH>u0C%SgC#f3m^DxlX6El_qGL3T4@H?MwXN7aPB zZfn1Fw!lFBOP%Y)$#87Wrh3=~t<6};t{feh9v6+`AhD_U+rDjK9P4UCZb#F`5ceQu zDlqwdIONttQagm6+!?dNH`jrkwCsBfwiVp37lWeyWGI}N_5P2~(TdJEo<(L0}8D2?frKJRvl+xHRJf(m8>d**vMECBIY8>so|K_SJy zcW~1=XhrksXV3WjJT{Kdan=*_HDx}B|1PS$8W0?sE=NK8{%l#*V@#orJGNZ%2132N zSDbF|_4>(LZ(p51z7w~%I1(e~clkjkGcyU_PMMjwP)^6vBhuMNheFV-! zv?z-4aZ@xUfPzAJ`OXqu3|!=?tZn)qB>T@NNYJ&0o`Cf6QP?Qut*6c-<4(S^L*TPG z;K8f#MoP%_$|>dl$jRhEwkQ5$62F>&q8$Ir;wQh z%m$6PGG<&H{p z$OTscQe@Yh-6cN#FA-h^qwMYYQDJwh5%3hSJl|TpilM$w?8b*Yh=rE!%TL6CfxAIB zD+BfD-^^$E+`U~vlLBlX-i{wz+6H=TNjo-@w(e zhlHMCW$I_dthZh&@SU(={$o+>d<5MhL(0|hoK627ggc%c7|sN|OSS{tA-c4D*rqBt zwkR^ue^;&`qy<4<-h!#?-0vKy?9Ps!jaki!4rIKF-KPGUAm*EYgh-yV8?3V2jF1t* zq3Bd(+1*VUZ7@wyc}c)Fu}tevug3l^C{*}SZ*pMQ$&h_n~C7Z7a=@fI=EsmMe3W>djDpuc}1|7btApr1$N=_DRT^to31`lf;U}fm{qKZqq$Ij$FR4ewKkR_HK5p6rvUHf*a%x- z2=GY$8wg*8!83buF><(tYzzD$ph+0VNfR;^m0S!@o|iF)3F>)_@U=84)SPA|fMkYQ zDp=LpjN??j_Yg+eWpQSX6#H6c;#HmUYrSE%!J5~{iR3q2xb`M3nPikR2bo)Is}wH% zN{4^m12HBawK7SL(fF9njBcbz(U~nWDtZ$WidA+}rf+99?>_-E(LO-Gj)Xj+eu@Me zWG4zi2E(%4Fb*MEV?<5MAIzZBuS$c-`(tNx{N~REbOFxz06r!9`$#6)4x>Rw@Rj3<- zFw}F!NA!J#$U)zUU3jAkE=$>=UauDy&JOA`{%s_QaI3c)*>%!*#d9>;^~IrQFt`7; zBoq@`Q$XP4;)Ep5|2Xk^C9A1dPTZ!VV7kWO5*+t9&K{(CiCWwUx?@ClQg{iMM^VS7 zz=+%WIT)Of`v8RuRT8Ke>EZTf*}h?TOW8Se5Z2y`zwJJ z7khkf~!klQXLrp z5VX~UXnYg{r%S8_q?x~GXTr}A9pbKE_Oau-u>Zv^sa)o7eyOW&KwuY+j`5E!Tt4Yiz?;g`>O|*^{H= z7yCvUXWDsd%ZbaO3<)m#-`UpUoDG#UAa6xKi+IAx1D^6e5EJ6xW^^dRPdVI)5@j|> zWMPdc%p$$F2ofJO4q1{a*or_b^}5ba=m?UuT6sR6i4r~|c_4R(`BbC8A`XX;>v=ka zI#PS{hrnhGk>{!%lxe|~S!SLtC(!k?FajA21X!dz4!o%;2EDc(MBfIomoNEZsjx`Q zPfFd*LlSPkrY^yiUpt*OLn`V645EYvJq2R(OMp$EyJ{G#!STJ}DTpQxB zxh;M43^G+ANeibC#T`|tIgd!r0(johgyR_1ZK{GwWN(AIC1NtUFdYOO`TSRD5b`88Q3MlD3>|pk_1r#7K6Z#5T7D_M=~n%}(vs`YGcXR){TG?YSVChSUu-T~D^$ z>b}2z99ZEPSdwt2H(GFv$u~RJv38Kx^p#LL!Huqfs-(H=3PyGYQ5?lnWwrQH`c0Hu z$n|*LmeHk*Y_lLzNr&JXu^`3^D%bqV)ps}}gXw8o6O)i`*zYE`uFo@XEuGVZ+B5bO!8KR9sdrLnrl!O$#hDvwL^`59p&X9_gor7 z7$UZb^a_DF*5=>eP`)(G(jh&(`P^3pY+@FkriXD~GIIOkDhgJbF;mj^gy-#PIiUOS z%;2#&HLL70MUZAzIT&-ve;w>#a;E^h{!;I{w6UOtU13o$bVGC={xOng^y<@zdrrlBBoqH9ncMClW3CiD*w z+Z6jibWC5Z-)T-3`oy|0r|{M3l3hqK`zNJ7S#VJr>jE_TI79X@w#{yidc zo1Nd%Je40Sd;XyJI)F~1!J7Dr8dT|t*1OJ?^(i|y+~FTK_I&ZtwEUJbJx$2f%v7B^ zkF65%uEojU?joF=&dL_>&D`*@;<^kUBm!NccnU>TrPH!CFetWg>PC}V5>&NI*BppP(#VJuI}kdH|PZlBwZ z669dGeft)tc8Io^cCJbyQwe|*fJ;!mES8`pQ8|aC3IJ0*b)?FO*Z&1}|KkhvF$oUe zTVV>rIlZ|=p9E8YDF%q@xu`TL`TGUJH^Y_ie0__GZ7Yy|yVL-i`7l*d?!{K1lr~0r zxY3Iu$H3i2=K`nLcSii-7H1xrW>0a$|MW=ae*qY-1T71(z2!D&_(08a{CC3H!j=#? zBb+3uQp)IAx%bwvT}oT&T7&279!Hvn^MRkVQ_RHj;)#MBpVxCH+1 zFX*^LL#6_0cYM(T$!{mg#(vbP5YHWkV0H^$eU5$7mzbvnsA84WS|?f}@)Lh255MIDI?`K3W5-`BW+9t0Oe_Lw+!gco+j!3r{!+L;F}9%2fV zpVTvzm+Ek}-6SL}Ms$sNWOMXVQo2yg5EN1r!cJ6oKC_>*HLJ&KJP+O)G0(g4V zL^TnBS(NbnU|JSD&BBup#Sa)Z)q%bvdU3;PGGSx}KrDky_FcfvfYeZqQi&;943Jy3 za4W(4_5y*$s|{Fs=m{qv59^l{$--sZA=fLXi` z%>L`K)ge2+&+YNZ^MDod=h*Y_N**f2Lbjpcm1+R!Nif+5kxFI=?*vwN0U}{ZF<&1y~ym_0WoM$b0jGU#2rTRT!&LRD~_?->?I+Gx~Y-u&@_B#QQ z%1TSp88qUZzoDQY29;u&SKdKK<$aip%AqTD*wmpr`#_>Ch!bP~9k{sWI3OeQv?(xx z@S|pd#G(RDkV#A}Jdk1?gvA`$m$}>o;DnOEHv&QRgTv0G;IV{&8GpFQJ$jaB(#0b! z!PX@4Ff+iPEpm{-UUVv$uup>aeAD6vtYHIJHuMHCfa^*-z4g0K9tU+P-4tNK;=6=W z29l6gYExaBOAjz3yn<|qIt9~gg{7tGlcFR$B3>M>=F~~Ei0!jMsl90ergEp0kOEUE zfvpi+>yPhPS+Dr6_iwj)WJj+RPWeo6E#q&M@v5?Xoc z+Pj1V=un7+bPT*6HT;3myZzYq{&Nz1Un{l+j_ZNSD&L%Qp-jCc;22DNUv@)5uF7pU z_f)_=1k#ROJ+x>9-((l8T)^x;$qb*)?9Mh;5ldX3Kh$ZJMqd0zE`$600kkc6`=S)q zlY7uiL1>6(x`3sd!NSWysrAV?A+ToYfO4}1naaRdFq$ zM*wG1ODgc+K~e_TWXmJ19Hglj$8_M+BBa&7cB~XjFa`bdab%=WGT_pG;=2UZWB>?7 z=Ub$dDQViCo9a_is_^@6_!olp2SOP?qx*2J!Gs-(xg<2Ex z$_8d$Z(8vB0Aa3WFmbvCcirixkR(h};zF2_B<0&WTDcA(xwcvbOq+~#nk}jM|1zsD z>wH}p(W%K$s|7G15j`(G8X#Rh)K2KH4$!? z?YQILpk3jDVNBdfd;lUV-nGNO%YO~w!`I1lp1M%#aVmZNQD*oxh|mXN>p!JhIhYum zndn|7x1?vh?7|L7p11G*6Z%3+pv;_lgqx$JS1zCd2+NSFt&60sWeythf=+`pSARUk z{uATQjhvZ{n?P@JlJTYk=W>3?LD=n=*K0R{^Jn7ZhlL6M)PaRnTa)JP0XI^XD+avc zUSw6c<9aYn?>0uC+l6oWbcJk;bAU;;V7OQ*+UY;U@~an-`%wiKNr1tpNnvCU5m8%< zYl75;-%&RmW~${Gd@w_Cb|4n&%ZHSEKpl%N{j!EVN)*f(Z0f$s`k;%E6`K?3B5gxn z+wq;3E9WlfK?D1kDB?lo8=o`?6A#=V6$bC;9Ehu^y1_bCnBnfU`_G2#UUJDDYcb5I z#PNK-RDpdhz?*G*q`Lp|(ezW%F)mTKML?4a=(LsLVwp+-s8pq%(=kl-CTV#oXxs~s zMHfc2m|ZU)uE97Ba0G!(77CsR;T4jD0eeejAA7H@)@Ty1w)-<}N`8?;DycmZp8M6r zNHI!tmsah4t1vMEIg6f>+Fdh2$iV5X$kbUuR?p^ut7e!H=HKQ81&igyO0dR`Uwj%O z%%MA3(7=EqyN1T>R}A$E@!rA2LU!#n%aqDqghO&h05F5KKa%mPYF*q=o~losZ(w&kW>8gYS-8|vv-!GPLPnCTMT%HMHcCmF zJfQDdiBxK#99S!3<-h=|b#u#aR+(kgEe?z?GGuO!tu7!I9$*Ow23l+oqE9oCcZj+a z#{+Nq9xBTAk+Z3=SeUk3r&wccTz?)>o7E=^U=0y$w!H}dLhJU#uS-z-H3>^WAh8;G zRMl^s?mV(ix?v0bI(7_=^TpHQGq4=IO#qeoM5ubY#nEYwdxOU&7#e!EABwKZ?u8kk zJ3sXuF!COi{7lYMla~voYcL5s;`&PBLjG@1v*YIC10df%h~upM?&Z%)+MX> z1ez7v%2SMJAd9Vdit!Fi1r1xUibfeoy(aeZEjbtHUQXUs(5nXUdG9u21*pOgi(ZHg{LeNZ`c70eTe@+ zZy_FL^yceqDGNXn_RWY->MVr&3R;{J9y?RgU(k>`lm;-zq#U^;ThTjQDpc2}>+|$~ z0ss_rHC=|#G2;wkNo-JxP__lDgSYLOl;pbN;Ut$?vgcb~{F<`44U3gZ7RuJ8;XR5t zx9|^J^tVjHghaC?sk!pHS=pqLlgb+ynPvF~Zs_As#Z&AO*JO9l(xn#n{8lg$5S4usDX$mOae!k8N5;=fdP6Yfh$SN?DcA*#Bb;isrz8 z^U1$EAf7H-)R4o9tp}0j#d8bJ}H1n)xRT)}tdp^2`$ZX7853L*| zYkEyDBws(QuSDK>f|LEhKJtQr2mo_!Njrp0^uhm*euY=PGAu%Fd^P>$_nDnb!1}s$ zBqBv@Yy9^bGQ33r@iPEE9*RU=p6>qBb@^g+l{kFhIsBTZ{blWSaGX~kba&`k5dpcd zVIjDiS}H@hlt`V^zJl2Ec5rkV4W=>YJ$E?O)FcbQrf!wuf(&!;beIr56S7U549~CN zV7-Y_pf~_MI5*(EyS@xtypu>-;u#k%XPLL)9o6rChl_=G1oeNWek0hW(-HBB*%FG(KhCoVF?5uZ|awZgwyrg-JD zh_Vu#iv+N8(udgzFP7A<&SYwHzNYIrTp;|cr|K^jIe`Jb_yJKhAqqqferK7l z=ZLn#1lxASL0aWTCq%1}dBiA=-UlT{ex%{;Q#=7SVfsvhX7w60vK?kH3F1@QZ00q_22?u?@?vv9xCXHRadBpwrX-htPE_xJ5JHKT{lpIK zApHYdqBqV*LfZen&)*OLFaE@CBrwFtixKdxT}d;H^(EWamesdSieScEP)T>P%fHF} zx;DNFZ%EI_)Do+xb5IKDgRV-RL_~V`CH9e~Auf>%SMTrDYu+~ttOWhL|L^LJ(yA}P zu8@3axAbkFtNqxq?=>|VC1OQm0IroT(mGV+=h$JRj=Mb~WX+ku#r%5Jshv%yjq#41 zEZ+W?p+>WDTQ95`!Qv`<&!WeEKR|Iu2`RHYB{~xaf9Y>~pe2IP`sT!a1*X=?M#RjS zg-N|R7A}dDx#E5P=pPgbs0a|Mi^OpFQHWx;grg+swbGYO#vK?4!U`Uzb|vBF47oMl ztG0k#Wvwv2tNu*1<#g&@Jkj$I%uYZ74 zBPgBX^M8z(YM+YBmHuaeTegGa))ku-R^G0*RA)s6tS_R(Y29B%(5efs^!lgZYAWGR z=P$&AsPT+O=X-h3y}~1W-3%G>U6Gmg?YK3>yz+8$oi3un6Qa(#SRk6l$GVvFS0#xE z2g8cZo+H;a8Dg|I@oCt_I5D!lBjVVmlY3yqvl83}Q2QMK^Z1$^klKveTgwI`zQ-A)YOI*h{i zMK^4ZbPueP1jxjS6xa2(P`<^ZgAG0&Q$xthBa zxBxL)GaHs_2yX(?dgg6kRKt_!keflPiUc4%5g2P^Ziv^v(e2i{Te(H@7jA$f#3*9n ziQjk9&8qd|C5jm_xYX((hgp*?AZDHN^K{NBa*g6xjiN4?Hn+RqxC6piv zCAbHMh**iir~a#EkWYi_xP7+4YV1kjI@Uz&)%#5V>P2-2O&n}1-Xf@D3TdiOIJgH^ za2d3I-z*H0AXyT%idbB%n9vE@=>jBhMsFJwM(Yau>Tyo^K1|?_Da$o*5`)KmG2*vB z=v{y52dtO%Z_hLj7emUPCVxD|mAc(kdB!8_q>5_H!&U?w^hn=V%$tO;W&X}DGXM7i zKHV{3Y%%Z0?FYAgfLYXh*N3K0o{B~T1~<6|0Ie=$H-NvglQ#M>aj-dw^^aL~WyKYE zheZFYSgDkQapG9o(#pybU+)0s1$$nrWwp|vn$#~y^y4t6C2*-4>1nJ;{z_WfAu^L$ zc+|Lk)mOZQ%UYe9N8ajpGpts;tN(OgHq2Jis|#X;G;{~3Qp&;YfGjiQ*{)=ajAj!r zw%H-`I)C*b*WbTS_^^ea#_`Yo#8w!?ZSe!q_Z7?thA!@FetKg~JYtsacW1LxT? zlx73GRvrQ@Hu##A%Q3V1gtfmm4US#Y>vvCy&2bdG^P|JPT9a`vp!S}cO0}*4!)g22 zSd1@V9Zy3D5xe#GY;t$SP54=7Wn(RNt_#S?eIYQQ(clBSlpfrS7`8ot7H34VFIatX zUS)PY!7lnWzek*}(Q`LIbb>0BE)&{8B?B4!ew@ON5w8#fYfTy=8?s6^(ziYNKT5S5 zOMIEdJD2WD=_^JIcwlVzrYF<%7p|ah0C2zvMzK7#Mb;R#6PSSv{J=l@Pa--v z`Xkn43`c2(R!DpwvCZE=X#3g)Oi6KlW+w6fY&f042TteY)1GcJr`b@ZC#@vRJQ>p% z3CE)0YJ5e*p5O+9!1AonW<=n|2W(xLH>29jN~YImh48I65Rw^#@0qJ_Epf4zPcC>} z*6fOQksxDf$WGAN9#V8@5}VPMw?Nw|4M>PXKDJJwZMOB3DS`|D|AVvLDBFDL_H_nZ zrVQO|`TAtr`L}0wQfUFcGa0dK8FNrrdfW~%!f^q&RW;70OpNsVXfidZwoi^jQx(dL z?9C(y&Ojp-0De}RIiLeh78=y^pb}en?*utHRV*{Mz_BeaN4_!y~83M9y}#$4;-F{9vWoBjOwaJTE;*=fQ4> zk6Yc++x>A9i-zlZ*U+3PtgXrDL}sx{;?CN+ZHPCG>bFUsjcspq*^kcoq z-RzIMXGnjnul6OvOgE+p3nZCHG7+l)*IOC zpO=&x)Vmgz9kAbZx=;aV&!~pG(BLa($W*UQ`;cCrx}#_+Pv*#VQFbIv8L~u)eRT&K zkoa4{F@z)A9IG*1oFls|BflOohzHi1Iz*1O@mEc%kN*c*<{A7~AAmVt?F?UbkqImr z&07jR5+*?2QE;c)`-X~7Y+0Du$*^O4u4RlKIrM+d?lY*VH+&QDNh1k0^w5;v1VjY| zqyz{Mdgx6sRO!;2h)L+x&^ywbG?lJsDAEz6NLNIvt z^quc=QyzdemBRtuIPMXi)>uq#cM!WG_Ii0tX@Ri;@Im~eNrkRTcQ4)BA3BHhZ`p2=gqgxK1diqzoBugO(=M6 z#WWN_iPN3Zhex|>lt^AQ5(|bC5lyTFPeWf0GL4iR30=hezQK1`@bt4N9< zb*(#GxiZ?a&S^u-kUuHYcrOm91!ZtsyXa^z8|8B`UJgu@1=|{YmuTJmNYNvRm`KJ> zapQ~JSpqPD{BfphXy*P}$SI7VQVEZuUOX8tRi-OiNJ?Rct6{djzLQYT#cO{iF8+&DoavVC+*+?37zT63G;7hB*k||{-cWtnY(Txn zl#(Ad^wv8n{=A>);(;(K?#;?vm@+x@)&>+5K(Zm0q~?dcM#DeCs;jnd(q^oM4gDH( zyJG?qBP;e3)>0Y{#Pvh`Q{Ykkr!}F8wV=_SXihjB%7wVWaGf7pt%<%%#WE8kTlZ6H zkj3k4#DvR&DqPxEz74mg-wrPj6?tW6*hT~mJ;@!~f%5TXog=ujC+Y~gM?jk&Pq$;~Q)=NZAE5q; z&-o*};RF_?KhGeso@fyrR9%Jrj)`@_iRG}Q_iyzbcj&)DdJljzuL7P@3#z6{H<49L z$`Rf?F&DZZqmiwjejyj`bVDFcqtM!u2$l$g3xhTK?X&unAxWAF3=v?<+|A9NR{^aC z@ZM7gGu_c=jW#;i>ghX9iAlp%V&wu*cpGrdK&PQ>sPzJIwBt7S;SzOE*G*^K9eyX6c)LWTJDN_HN_pGtBu8w2pnol3muX;w>9hBxs|4U0QDjT- z;v0gzOBKS1097FvT37Y&D%(r{8XhD}*Zr<<6&X=O!}qoyu;?S5>^UqTh!6rSi>Nj# zGGhHd633;&VXBT9gMcCJXB6zSN_nAj!!i$C+}pdf8thRy zSmJg8*md|<#b5&P5QRY9n)DQqSs;PwF_+3NZ?ny<>0I#L`VtZK{{Ffmgc6;#k@CVr z@Wm(s^q5$dB~@&EImvp1skdCO$uW=!;$%L8iQ;RU7queqi8pL9@DgoxmrM<@qwN;onu{=c+b$GVW@oB zaH=53M&<6p)3iI70#kBKFQsux+IRcc8AF(`WvysEYUiWtYh$p!`L0b(+%7;_rV zY-1=6c7Zp|_L6XIW&xd?3_fTRrynQd;H}X8ctbb$l33K1=Ogin0!6E$YW*MOCixm9 zUbPg32Ga)`VsuvYp(17lh${QOUP^;S!;MG0p~@lNX05glU)|8ZD)@hK;pnq8TFn2! zh5ttuMlt>U_xB7JK7)qar?$_0;WJtI%ona3-EMxp&m$?C)%W2{5I$3ebDphAUE%}) z;EWYkz_E8Od=Kz9w(|NPV)#rGX5|<5v{V%5W7k)bO%60OwZz3dT8Zi1v-UK)pJq0( z@lnGWtzw{4+`pFp@>^_#V)e^)Uu%Qm)$eESuoKznj2NC>-402_XQuiI@rm6J_Bzvt zT^xAN#Nq0EO9fS}pyZ1q3+sVFUJaDM=B(uQ@nv5-!rt$Hsi{{jeAt?UZab1WEmXC; z=a%ax4jbkU(+0llDsrV-nYBF(c=9mgQAB*5pKWGlqJJ`1wvDTIAlJyFobW`?M6>HQ zez)?fZ<#tcd&S+#yA$77XL%=vc$OPw#}tj5_Y*T92{azo9Ca4-xlw$DSnBSH~73 zMQs-!43u`yj=X&8=n$8+eDd$UIzB8hVqv&{^DFJq5Ru1uzj*cZ&*{hc+?wPko$ak^ z_a8@cy8KG*XuX{key7Io>aB^n_j`HWLlKoV5w+bgqr=k25%rdK+{UY~_y2T`<_^tG z42--yNUl-~c`xp=_;Sd%VLYj*zr{Lf&pB~zZ+5U|tVrbMABgEbzwKoH6EAw3<;m}~ z&(*ziAKuD4tYtTKMb&@%a5tu&>JsyC2x+olPX1QZ+8u;Y-1JI|{zrSH0hv#=Vy^{iJ+z|Lhq)`}{w+FoONL{7Iz{ zF`nVPdI;`y1vZ(B-FxkSCKg1@E zB}ttxl3EV(9OBmWl6I74uY8?AA}2NeV5`Mf%1Sgc((j1QwGxzdqmRIoN~KJJ9dSzf zghlRd-!NHE^X2Kbh#&OW?Iw#lNARb;YVIVvauxM({cJjq*~`9(W6$a1{QOHXB;Swg zP3xt5oJy=C7{)!i!BV}>g!d8|8Hw(qq3r_+FCCOayVa8`5 zuYgcqLgO66*|4Uj@4FX^ZmoVyPjKI<#aNwL$7$40@!1*~yWgi7-o9!t7@qo@&RpuRQ%`dY*#;+0uHUIs+} zUi6}+w*iFd+0|Ea4Cm*gLxHQA zDd;{i#i0uQdl^r8e0a2ej%#OE-!en` zGTBgQ{h!XEUQEnR&}TfeFqa{tRu;7+RS$vY*MnDDor=UaZRrTkEv*{DdaC2Z$1 zl2*l!y3<)`1>6ikPa5*We1hp04AzwRsxmU^s+zyg}95b9l~t?;jEKcP9TF-)sn zw75-Gz_>WJG7M8@&hGH`=U-$CFI={p4Y^<1wX zQF}ic+|$qWEF6O3aEs-&gaGs934D}**!>?);I&2dvmf<+`oWO~4uFD=O$D!E-?Gq; zs>0+bQLahnp|rPknZJ@vW2BnOkDn!K0-mUN!KDq1LP0;PhkTrO_Xew7w;K0Az`Yj? z7<8iEFbQo6QoT{eQUS+;8DB@~%_IKi*;2lU0RXbQ3TlDYVTzJZ5!`b*U#di5b1`E= zPgb3%?5QK7%@STbtw1MoV*vD7qxF(AICl{^Z$6#A82mwZXR+@mtJxjw>09X3Pb>=? z8?;Rn;MD2vXDd6PV~5_9S=}9N{UVn|;ZI_MN9dmYzYm&@J;$SNr}oW}MW{{{cOn=u za#%By%y;T~)ma(Gnu02}4B4Q6$vw(-JnM65>m6gV-r&E#f{6ud&b+1p7}Lwa85`^m z&QaV`v=^AqXbs&kdeOsP+pTiZs90}#m`j++5Qshu&Y8uGzjOKKEA|f&b|2{a^TXE`%foRN`K#2eBuA_No8Va^1T0*gxwF zV>z(csJ|_{K`c>i^dwy$IjIQm8|FP^^>#1)=#tUx4Kfh1zA_-#LI>nCf;|sDpWOi8az8KC^6fNhx zSmoiQjRD!IpsyiXoB^VI)ACh*jT4=wT&(Il=BgiqR~X+O2s-GdnP1H|_W!P1#YlYb zf6{h${ktO*oBA)6!2DOTyTaEac0I|t`OEA7Rd(?KX>^L&8fTG!F(0QNDR0s*9oH$+ zY(0+~ul2zMK0nas#m#5g&(tiuZLqQ3(xzR@0xJ+PqAIF38Y>0<#sN7uPv?ESzb=`l zi93M~HW_aH=(9hriq75Zv&dc^75sNohXHS<(-rl2@oh!5mm2myy<2pSG_*d`p1^=<)tGrhB79j%k*t;|32x&3-#TWOnp;Wt=M4M9BE)tnM3|SYkzoi z0$;zpIY4;iH4O(&?6C6_No&jz3X3-18?v76?frWKk1g%j%qU4J z-)Z#~8Pfpf?+8+#?)e4&ajewpdH46gb#J9aROch&N{c>T|lT>Cs;lC=#supa4oA`pJ~F{Zj7MxtH{V$-2VoTRA>ZxfgK0W2~K-W0Qbw}s-4Xm2p%>plz7G$M|!+WF7rhyV|gTx$s z)M&P_G{g=i%w{UXos23VtIpn{~t}|W} zBSdl99=a8SH91|41?C zad8~ChrMOaP2(=ZqeN+L99_DinbP5PoBUAqn&6Diz}t$%@(`@6O^hzwnO1EmH+qY| z(`LVl?r;&{#>J23#Aaeq{G+6FuDDwYKJC_VbB93&XuXdT22n5FONVdOdc@4>0Nl3m z_2k%tPK#Uxlo|rVvl!V{t1rWqz^LFnWfLT{ZOI|(=7uoFk7#ivNgvbn5*4m#E6lSV za$(+$gu>>{hHV1q>Z86_=|LWyt*rTqFZyta-nGlI4Z@u@{3R=IUssXDP_sjU1dluD zn8jml@d%$`D?PibsKqMW^8y1`uJ9i()l)2EGnP_VJ4}}9JRd9hbt2*h6O;WDEVtd$ zO2V8_ZA6KJAgKlNYE{@+ZdiK0ZAN!mH(Xy;kPL(c#b4H;)fJZEmG+}OQ;BH1)<)3SVwY*?lXEVvA29G{ec{~7WhJNOSa ztMk?!G$qflCoL`h-sO1{yngC8$^1T7z=9{PzYe$>nf+iZ*+dMbGjoJT<_uojAVu{q`Ul7b6JQm9MN(Z z!>?4`=PJm{*t3Qc!G?udiPpgBT*k2n3a{+fyb~*gju{(tu}sR=vBSPxxcy=1{?@1# z6j?xAE(x%W2Phf-oOC|>DQ-G}eTkuhJCv|r*U>Z`LfekVYwdV$FFj!Kepm>0aogtx zHcz@;YXFg>D2ZZ1(fyPxW+H-D?5uN?2?hJbEXsbIcu*EBDmnTmnvzPLIbPP>@$Ycbly9+y^(t!&3@hj3sKp)TEBfaeJ1FM{1GK zit~DTX_6)*$eg*t2LOf+*svZ*ES2yoZtXV7wbj+DWu*q|o2q0E6k@m|!7RN+x^*!| z9TmU!)W8j<;n0-ukeo%UdvE}727p2CO1+dj?25X@KeOOME}>q4xxL*EQjNPX+b#t~ zl0vz3n7T{Xrp(uHDV5GA*8)HkoYn>`C6oM9f;+ZJx207N5C9@Y`{(dk^HdC>yY5$n z(|d~~h-SQ=jWN4HMN(tfFHaIck>LtPcG8VR6qx=Xq~- zskn;ptiq16G5VBO)%Qhy-5#jdBaIjBCD$)_H-nvj&xUQ=bU8*B62iPPSh4+uUi+AD^gxdg9Mfe-uty*stJ@?7ZL>8x&Cs zlmkoq_5XTvO!(Sv@7qFD@()f(QUK}LmKD3+-W8#1h{n8+~ox=pL8-IVSFhnX>7 zi1D>7@p0&E;Ha;)e*kJ~{OLvYN~K zFo}<-dRXYsF>uYgB0T2>uea08@(Wbsz)4|-{^UcQC}6qq1uK7BmZF)9Xh&dA?4W3Q zv4PRGwZyXJnu?T!mAS@Th8~{_IgBqKiAQE-7gGY2s-MQ!_Ak~)dBu9?>xfF*wV|63 zhWf%g&oFD=k7*J5yY`t6BD0f`_03W3{%d73UY+6dJxH%oEN4sl3N_aVAbvK?j2nz& zOdr@Pe!<&!+SL%7s(U*(x3FfozB)~!;eKUx=LLnajIjsBMq@Ad=q~#{+@ zrBS$pF=NAu{k5A62es9Iil-csfgSIkboVj*%Vigox8Q3Ig6?G_vIs`IgZb*Ipbb^*%Or~xF# zG@aI4f2FVea??!yU0~37nO5}lZfSLOv0KP;TRi_%smeR1)dpeo#Qo?dv2?vez8oA! zfwAAhZN zRW3|heD3R$SwqUbrJq`U>)sse1K9YHKJ}G?pPJa#71H&a9Lr`OsAV3PHuvVf`^?)+ z^qSN}Qhe`_)Fsvi`#dCSA6Tu||1NCzk8cT-{NU;yt{`fbmEzIt(ci#dGV9TDZE|$? zclhfkb>riG9+F`MhFTiEQ)^T0^2$R*&XjlW>N0%~ItjEow=vB3S_AFJ)#9o3#T!j4 zd4D83CEjTUL??)L5Fhz%YWHp}jj#51wQhYL+v(diNCpXEp1FAqPJ4_xR~IsWTJuiX zOLcmuu0F3_-@;;#3NSKXWMA$3RFS8)K{Z|rd;1U`Qfidyr}uI9L&0`9H{mr`-|L4R z)5c3Y(RIt>Q4;71DX}!%je9tsW%>0_@HeW`^4ng$t;kokDAfWza#t+B%V)P~m%fiJ zoxQCwgY5cW(|ybQeFjQ8iFyrMi~Ng*$V$&R{i5qL@O8I8^b59Znfm(x)^vhE#|X((O$$Bzs1+>-yh zZ~4Qu-SLXU4$q5TpM_U1c-D_%z9K@7ogKEkxN+WzApd9Y($SUcZ$Ej)^#`Q3Kek&i zE6bZLBDF@i;lkQpeHpjE$pZ3~csL8W^vEyAg_jG0V>0xc}JJ(-Jdp!jny*UzslYz9=RjK>C zaO3};Po}t~!a(W~;jmln@7oiv!BkYJIc}xXFzNpk{(EfzY-+ zg2X9+jvk;i1d2~RU|^i#@Wx2$z@&LGN|~8J97+fQNFsnCE3g@of9R{X+Z01+F>54D7Ci}Lz7*iBJIc>VsY$AKwO?@2crM0cbJZ_T)c?oUQvmaN zK!FMJwfS2c{;fNUf}?a{kX3ritU)9BvA1W(v`NGsQ2k2FM+9ICYLopw%AncOL%^}L z=3X9Wk}Tm`(pUd=BkN*Ykrp;hA*BeM{-hy#z_+(W9w1bw^L7VTu=7?)ip)k2c;Yf_ z`Ah{#a;npvE5wN}b=2q!kGkH*eP|#*NKj$C1dGA{2O#puf+A?;)Q^*|{P`ud;#b=D zDt{Vjr;ldfsr3V>tf2$ZXWtvsq3Oqsvl8q!!kJ<;KpNjpl|WtVlyE7{}vliRI81QVtvC^4ns z?4+<_Ib}no%!WKjcbSL7k?9f$cqO@ZXea1 zh2Jix!?@~+mEj-Tu;SSH1*Qi$^+eKnZ}*mTYL>!JXJ9uO1AwiW#N;vfv%3c z#T+dDd92)cD;b|J>Oq2))o)o%a0>O|2JSPd9M8Jx=h+)ij51E?Dj7FhC;~Tp)(E~2 z9WLKGQW2dTPki@A^?7a^hyP-VNZI#Vxt|F(RW0@B4%{wR%zCQEKQmFC|K!xtsrVf? zU|l}8+wyEMv})}kvEuG!!ObqaC8VM5UE_J+qM9tf8yF^v8fiIXO7%_aoESas;JDb) zF&uh7X5~Nz%db zYLW@iFy8y!bPn5gYzzb-R$$9r{@wQ(T08%n9wuhvNSOvJSb;7tObqKScAbl)%cX4X zc;C)#F0&q(p?*@`bKe{+g+3JNVXPSn=RHL2xCQmRYmZY~PZ?`ri?2CB>3|r5=&j@w zI`;St^*rpeeS%Iz<|Fh(z<(A)rJ-zMq8qA8uKiyNma=~WUh-DLyc`hMmY%=jhLT&j zXVo6!+`2Ws4NqB@&ndNu8e!9}G3KTRDT$t~E}42WR{maDsxEVHQUC8-`ZlIJyA;?B z>KQ|(o+FElp@veRza1E-EOD2Mq(zuytaSM!C4|!x1zYVttcA5f#D3F>KT&ZBh}e{! zY!($Cu@L{4R8^98qgn8{$R06FLvdPNmAeoiR8nEH#`k;+AU^UPh#^=W?k*s zE)nv?z+}-ziN>Ew2lPF5H}f=P-%kfmubIZ3J1m*xXMhTh*~dK&YVET8bO!|{vf=0O zw`$zOotgyca+jJ*11;sHl~)9&7W6m$+Fge9W1sQ{DNc-DkXC=488@zNV)5Ft)_}TB z9q466#)w|s|I=_TSlp7220@j~2=yl#RpAG|UtgD_=diF!X(zGCa^+jB&Ygx0mW?f;&eNQGC zCjHOX+#6YM?_9I|)6w9Qp|CFY=t}b4*`%oFt7Bb?x5dUMnAY=@*?Xr%@9|HtK5A5w zttYu9{84Gr?&)25GEd8Iv-4Zag4IG(Yriu2ZOJ*)`)-VnnO?-+Ei=KpePA_fnCP$J zn72<{RIJe*RX9X4zwBISAs3i9b!2is;NJ#r8!o>#Scp)i9sn=T0P)DUR85hW4*76=bc!0hp*@59ah>c zWad~CChgld1L&<+UfQ)WR0Nmu8R!Bpyr=J0mXMxyTn);d$cTWnWTypB%01bW@p#Vb zW%_w}8aHb4lzG>v6{48;TAy&}$K-rH-7&4@>!bWTHye0rMm9ILA~dhR#T%i&rbau& zFPwAL`dV#EVe|#jXq62ouQp3*;{1>7#KPNdiC`J+@tx=5MPk#lA8l?Jo0+9`y=0_7 zFZS#Ontf;#a<#U9q$!H*e0tmGlHaR0OZrHI;VTB8v;4VZ7hSeeZmsW(@(m?1G`xI$ zE2{3K*E4HG!cs>jSUC&FauI+*b}PF2y#4hmiSKuunp74fh8TZ)Meu+2T<7l)o_s06 zG}Lc8{QS@xu97t<1Bb!|9e#!yTAR_2Y)ArU9lVF@C>+whcuzuWLkZ#QJ2&6;izOShjJ`^-_SH)p z`O++wW>Kc|%Y$}^c68VsR%{VjyOe&%-0bFU^6kWX`7Jgb&+YqL1IM3F?78Vh6`0*Q z%bMLRx_P*q|NLOutL|HJpY4x}M6ua~vgw~c1Ja{g^Zvbn6w|tGuAeY8wjQC~$Fke2 zPb5KHBZF$`+G(6)1%HK@=3f;+nM*G+=GvvH~*c2uD1qc3mkdcC@OE7@J12s4>;HKi1 z{WEtmSTgZR>NP^L$leP(5U*@Qaq2|3gY)$Yv?RyCnekVe6i&bFsh!0)IE#EKG)Xz6|3Hf1FXB_i=Gx< zvS5ZzKYA0$ABp8in?N2L4sE19UDD)aSku&H9QaF7!5ToFw%QA`HUa~B!j!*P(#|5DLPioqr(p_&<#c$?TWx!q`J=$UDnM0~2W)vnE2kWLA zEW*;5@sx4 z!hj1S2eDWj8HS1zo*~ID(WSI!+xY+vsJN@6u?ztuO)5l6k}RZj|5~}8nhKeQVdc2+ zIcroQ#akw0kSXqv<>^iTKUR#`-Jd`sjetwON?~YH1BVti; zO5H@EHYn>!?A3r+p{1!q{mR>Rd}q<6mm3Bxljv3+Lr_}R5Qc+2i>qb4L)TK2fA(b` z!&JrrRNw@sT@Moo0C5xJAxi4kFU7&?msbHD5csg5R%~IS84ibYT z>8zqf<|G#0O+2%fl{xyy!D;U!YxTad1(*S?SQD!&X}{%#E?!EdwX1TL4)qsqQWG{c z6B}Ww0n@@1vO^n;TOP!Y0%_r(wgGXrs5q@9D0lZ+)E*>5h<8DO=#xnBjj5ZJk8R(Z z<2SQrf3cn_q|n#vrUiE;dc8{Z?9k^cFoOYeO{0eFQ|$87+DdWP<6+uMbHcfC8YrlZ zXYAEB^7S?%vYaSHg=nEb+z|jY04Od@7sK99=M|e;mKZgfYdJNj2+-u-Y6f@5=?IlQ z4bJ~&rX8@t-2LpL-XvNZ7w0hpk|Hh$A3&{@=G8(;YMu~*84~L#@oExDA~g1DQXCRR zV!;q`ibw!WWVA;T8Xq4KMWUYQ&Jr@uCuNt_mmC32r~T9624 zOxFGv((B8cq};L2AD7=6)0G0cFV1R`00NLG9H*Mjfep5#3l#x4u}O$CNoj6zUh zL8U%Nqw&kM<&^?y{QX=Nr~q0U6{m3!#~?`-rY^HdlHmUnj3)_oL%7TB=4;4|7)Jp~ z5Iq&Fk1;)yrQQ0QojNNl=0Yvo9hpn@aR}bcY+(iX2$W|tko(51uQi~l0=cTB|%sLNBR@u&AwIb z4s+<}`ZXn08v1zMdA6kE+w`Amwvwg#9(|`I5Esugp_agjF|kdU{FE&^PBs8!hkzw^ z!!%Ad*ic~BbRq%+(2vFn&5*QbNaz5VlqZQH!W{b-&|4t0L;&;wq`vJbz*9|ZB{jRf z*}d{j6|Vo4v-m_*tVBw32c+t@yGFdiMv{D-8VbrC0OPiG(K>;s5*HXpml-htcM_2; zAeM~+mOj{IdcMI$@PG!)!|Tnt3BVb#c}1KQ>zC~O+p&B`5`FjnUn%C#7r1BMzfXBx zkiK7JFU>S3ZwwQJawo-WbCU2%fZfTh^~o(9-J74r#%%w+6_O;ezH-Cq08lC!;{nk8 zk3GnxOwa0{|9dzcF^>E-*7saeY*_6rzeQ*1Qs4D5>KByujd^{oZeqLGEPlfsX}l-V z;leHG2;Xzj&0F_q+hoHK*-+c?88XXVB1<}Oj*`weE+Vm(YEmL{L#Uz>g~Mt$_NSj8 z>{w~lq%Xx<1(qfm3(mrq&W4lKwUZn4&k5@xB-yiF_wIc}Ie?dYe?6Vl&9&X92&(#T z?nV-*abCmBX8?UgaZq6G3FPI7VGhsrevb7%K{H&T0-?oZKNUwd_Js7c7|XWB4W>EL zd%7+Axw$gA>vDkr;LU|v0MzZ3sBW$9ex@@m{#beuP}bBBb6UN6eQ@S6tzub8YCo?d zwV&?$xzn|b-M`N)4`TDzA@nHH)d*8m4FF(>x?DsA>g-|w835`rvE)XR*Fr#`2%_#= z2Pg$h^-Xo0_fm?x{})||DCK!BI~KLCgzuD&Gu1?<5K0Pf+Q&k)8{Ck}hF&eZMP zKhK-kZ{8UH^yWsG{j>-Z+!~}gx+<|gLvJ$Au;f4|Z%u*$AQZ7v(UGt)g$&q3*nWRH z<-rlQMLJqd{L@?MXZ@bkDKYTio$Z6K!i?9+1%M)bQnDsZ=R5Bm@l-W5R0|zD;fwugn>^~KouN*D243wKUD{tD3iS`{J|43yznyF3~KDfU5 zAbs%szi-}_Vob>=B&8(Mk4X;zv5r0Z=F;&)c={9n!Day`d8v8U|Ee`W+2h}{z{`C| z$&(EMNiSciWumXa{p9C5xO`_K$)Z|yXWrCUkDS&3xYI~{9U=s^UNV3bE*m=JXtDG6GSe#bQO z=X$s&ynOG8e&x|#`JXSM$wG~k$4ksY^arsyr&0;V-C93SqIE7AYs()Al z=S!KYiF;cR3Bi+!aiTg)5XqV?BQ6k0C%n&tn0zmwhmOe75zOAbfd+mGp?*#~28dsK z^F`e>Q7*`j_21*zs_Me?Gv8$Ien*{x&c;2Lq%B@kQ`t1r5?zn)#{jA;{K94g&(tI# z7A!}PAP9s57*TjaIS3%bMa~n?I>mL88MQ);FoIf%8Emp9x&iW!u}FGBMFbky*dqc4 z5Q=SMJ1`H{W8hcj1u88ba?(SWyn)SmFvD<`fRErC0oFOXT040rQ=wQ7no_`fcF*w& zDJx;Y-&9aM8!M`SK&4$Ch-c)H%Xt=1k+i{o9){}{)TuWG>D&k7dfUCM8-Q-}T>Fhr zHZ_2BNbW}zVEcxXD?rw#d?t^Lg+BKJ{yk1eHFcCn_&Q<&mXmS507J+kCBG1{D3T8( zU4-RvxNwk+G@)cR9Z4(!6X`~vCn>gFO9@GwJE^M6;JW+Udl0bh@rMyLm|~cj+KHh1 zzLiM~i)!C-LLh8K64C+nJyG-i5IG*f2+b=IWsH!d;zW=XHZB(Ync}mc765V)W4uH% zCBDS;!v(!|$b2d{@MMS}J=N~k!CkH*ucN|*2j-~0o#L3AnXuOwCO@4~t{9>O`Ftkg z@t8nN!CAR3S5}&05cGPq`$D#R5o&y2sz^g;vvF#6ui91i;Dx6h@YwQ&}EYUVy-t@cm7tT zu{+Vq29*3o+cwh*<)@*#nS|ikTLK#i`+mb9L&=c?;6S6c5g4Or5+>!`fTelJOwCdW z-K$IZO=q%~%>YbZxY3R^m+=y|92_k#JFFEH%4zve(_PkbsrF6oy^_Gx^WG3P8kPd4 z(*;`$3af4mzynhVwG6^bE;v?X9+3)@Bf6b~UB7%wOMlXArnUdvG3Ox4@XCSh40H4r z2HFrL9M6pKOaO-GF7sk6Ye4t~i+_Qi9>g@ksN~!DN?kz`1k^@lx#vrIKPhA1m5Bsq z><75+;e}ytkNnNDfX|?S(!}Mv8<^l%LWD6W%hpB-9S39PT8fHlDwQBdxmC!aEm;gP zpBvbaT&^8^b=B7Q376HEhS%#eYxh*!U_g@N1{DI-yQwCKbsy+4>+GRQjTt>FKF#lJ z!!VCzb!HfwUR)L|!;6j$u+3bT6Cg30w-bpBGRCPKj510`-^}!)X)>H6D_5g%N|hpcJC&N%>-so@&k(N zK=VzJ6$S$=rE-{cTSDeLZ(EL18C$uVF>qGKuo5nL7+47l`k2Z9$B?g4%G3R#4MxYs zyQ)r5=8gUDv!bsQH_H(DBbKz0E>sytI!2W*cK{O?3|suRAbh%lT2CiZDZL`9EgY1= zAQ%if=J{egngZaf@kjxLF<2*X8Xzp`UL|`ZnDujX(bmK#eEobC^S?9M9cm|C^$pBU zFiSR|bXFaBUY6Imf^;roPn^!JyIACvorvG;mIGsDd#Fo8-$;t33Nu^t3QbjS3!QNozpgDA!i zipPiUqH004bZEg*#&(jZwi32NeItPjDCc~@kd|DQtBWqXQraTJCliPOxZ1O?_+3v2 z&Hze{?tUg}H6}#(V|#;UEws|Xt+hlKt#LOoLR^sE43h(4PfL=lJ>3dL362{K31(jj zjMcT52gMZKs@|~_^L(>>Dc?y)(YZg*@cefg%2;g^5xy}b6f|?8M1`%K5~#_K_<)9& zxOqx@p9i}fRge|sR9Hj|pew+5(|$P{+Yf$DrEg0Nwi}S;OZ~XjlU{TdllhIpl(PzQ z?bm2b%wMTbwOo`qdYMh;De4~UmHPNAe}}H8fmpVewEL(>qHU9xSU8!u%w#1eK)tW? zcljq21)}E)q%PfLln={U%-jeyRc=_xyL|cauSD48PzTEuVGJil3gREZMF+QDB)^B* zy}y)(H#X;C&l!nG$gE92;kB(bXSIG5^!iP;AVE6G-vklA2&*nO(DO?x%_eiy2nO-y z&0dn}{HD#XVh&~TYEgb0jKqh`Jn^KdY&Z@>GLt$eS&TeJK!$>8x{*AjI*N40@=?!0 zH&n0jSHiRe4-h+|M1&F1bk*$O6Fu;NZgtnp(0SE-E$_kWlLJYQU)al+%d?eGt%H6+ z)xl)(bKIZb=VOw&FYAQ6epZIx(OMvK^B;iZd%Icq>r;_|1B%jwAEx3t)O6zz5|`wO z)N!h-m2U9*(_BW4yeKIa$k|$wr#C8(FbR#>akjri%~T$pNg3EDqfcMje&nf02oVI7 zkxXJQw1`~7ABjBC07KDxj8yanFp?w4(meAT1}zjkpu8Gox^Q?}p!z^he|$`7D9_+U zYM01RKa<=H>Y2(Ak=glx_WT{+eW*tq`n7VoO`6xMl(afFR#`1THQ?G!v2vJ54jIlL zVD@{B0-9sem6!%w8_#QlL@&C#uK7uHs?z51eB_{TbydO9@ z#0Hv|@m22&x$0;F8Kg2p-7P>6IJ3xSjNlP7@bmQ--l@g1?!P(#Km2XJ zrYki9BE{NeS&yFzII|Wnk@szL_M;=~Gase1LwZGYfV~9g!qn_Qnt5H#T{lm&q+d^S zk4QW~1w_~L4Jz)S2k9%c5j0@bgmZyi=&rj0lbD+M2Cwe#n({j_J7N7dlYm4sNFHbr zMMOU0IIA2QMQC(yGIlsXnJ5+zhSCqkyI}W#3YPPdFnA316DQytbg7)&D@iqderD0O zjhj5unfVEm;A>6^+uyJe(O8g|+Se3cU=FFv*5A((~wicQ?9n^Uf;{ffZ@TaWIfn zEifd4*V^&K@qNZ2HS=2g80GGh7)K7=#msbF}_mda_Q1AhUBY?U!w3dd%T-*YY zSYtVFP|w+FmPDij3L{%Nd?9I;|N2>JVr#=j_P6wTEu(dK+vD#c2A~BQ-#D1cJ(D)d zhYGhQ3z6}7Rm{g6>gP+j2scf-5F-B`hM^rJ5d`|EjQKbQz(c5vAw&;(j9fhn{=kCq zvnJt8#Y0&4keH+|p}*PLRlUrp<{7gv;^o;JVSxhvGKomrH%%MJH}OOHIYg)%8@`)} z6C^SVCZr>|YD0-kfWaV^#2A8+enoBiMm&cFp`I1fm4MrHh`qMt3wgz8YhT%b+qN9#}vokrRizqtYimXtvRohE^|BP17 za*snWDy!;%1S9zZR;!VcwRM6m_B5gMHVb zFkA2kH@v`qIsNjwdXlpSlq^$f3NTv6I0G;lQQ5FG47|V%jwP`)RZH=bxC(^$qCLa{ z22e@N?n1i!IN-0^oZD8iI$fzbKW~+?Z6~TahND{REr|gO;+jEl$z%=p*GX60QB9sWT4@RWVEkfJa~g z@6`PZ@i0p~+S73y4+fAZvV<)OfhA3H*s&=ayILpuo6SH6^AcfpfbxGg z;GQ>4Wk~F{M8q+OC4@?cAi}Dthz)=fPjuhhHMH3NgOOE99=z$SFD?`)XVISK9 zb70f#M3d2t3YV;5pdt({J^GbsY+NYDJ0)>Z1Pe=6o!}F5!mlBSZ?04pnf0tFz!qSc zL4wzo>G4D+&+{U-XJQ&LDv7AeyibTuFB&f3gueNYM2952WaM-c$V{WnC)P@8$yH;J zP_IU8qFAVX|EcxOHoXt!NZ20LMTyD4jp>1{ra-SGB!mhnDP?RTvif2;nyBzCDjWcD zk5cd3lenU&p`X_f3#HJ}G>>_#F=`r)qyG10EA*v_VW2Kdi67+;v*9P5+ajTwKGstb z9V1M!?rT}}CKV|9CLFtA{l0L(gEI}8C!&TW1Yiom=#68zX3tz_E$RQo*?mPdwZ#t} zKk1DU2)!A4M?^$Qgn;xWO`3oKLKW#?K)?h7geoFk)JX3FQWd?SS2ZF6Dr%4-Dtb{t z(W^3<|C+UC&FkbjZ#iq_?7e^c`&r&AnHcL?X%F-Rvro~tAonV-ND`m zcqyPv7bkvCASs2&#)?b77G)w=XJ*XNgRcTR-=R=NRZDOaaUB8Tlm zpIfr0*iy~e)_&&0d8ZO4A^t^6&_|FGQ{hgUuqTng(?<&U7k7_BIKDz3y-$lR1i zm&QLg-2uzArA`(tPGvhi!W}CVm4&%-oYZY*-1ga;T?^o;%MB~=BLg%csdV)9k0M0A zJ)uw6gz_H{8}gvVw^tPMcc`#^mLO{wT0&FW1!1EPG;AhvQ7Pw9!NaO0?Mu)Jo~#@3 zRaX07JlaAn`Bqx|idi8~+8%u8M0n;l2(kD%pmCeUwg~g??n1}+i_YSwCeI@UyOo2? zC#&O$!k*N{NESEg%Nq@9sFDT86QOO~f;w^B5Y%JOf~gA0h=g4RM58V8QXXl#E@-;h zORTU8!uFNMUKJnWww$d^H3Yr(iP?^oV^R&~D7>Rngm57H%~>QX@7EZ@`ZKHpFvwEc zSg`M816c0zV*_sFL__=z?9^RvZ{_jKmmHoHjLcWuoS*9ylhp;nwEDS`< zuC0x+Zjg=IIsI;cc&-JJ&wx^z#!$`&%HJyhMBCbhSmIt`;G6|3D~&2l-a)XebqjJY z%2*6OldbV|{58}1hL*MZ=}_$xxRK)ZI%&|q5^VQUbGg6y*4BPEblphn^f{rfI3D=- zZLUF{-5Ac@vNYx9;1K$U8Q#Rc2V`6XATlLstxpumw@w1=?0z#;4W2I19n_wLx%0fP zdlgcsS9y3~yo*rGK_TBu8*wg2>1KMugNEp&;oNA#5dgPYha|I*Zo^2YGGz1? zgiN)ZM|L5JIl3jf7?ubJKhb&ndhwB3ugbdnS4&jQB*&;QZNE02$8%)s+toQ$LJwnk zo3rvK3-ybU`Yr_(t@~Xxegci(jmB>sAr?+Tl$gRfL>zG&?nH%=i5Q`W0p?T~^Fwuy z>Bn3~_fY7uxUW}Z;xhL>ybAs1${D`Np3#$q1N3iE77DxD$eZscASB$J{Uk%BM|cWY zbf-C*m%X5%CDG8lBwIztf4IWdyZ80_?y(A`LW+TDy6I+Os_9=1dI$wx@j)j z-WJd>)6uN567jyZSlBW|TW8kPFVS=-T z>^4d8z=lrT=fN)@3Tr z?feO=HkePt=5w)3N21Fb=qB4%y~CSHGA)~o_^;biHU$jmkH~EUmx9Of98)1Iq+6=D zaDC8fMkdLeDnhP5SwR2Wz-Na~jHM%PGNDSz;ajO;2u6Lnt0wQ%p6?G9JOYsKr19)f zlPatq@mTVt5LLjrK^CRZ#C<|C zG*#_c6(gp?L-kc<Agq1I$3MbUkSp zGWCwA!P~>bxM#5sA_k5+o4czbs4JU=QJ3qi&^Dd1 zEja~JBaGlqX7lnpRRERq{xGH@j|>6(1sLY~YhuWzW>fA~kI^BgeJbZ93au475}^tL zAu!TXomW7Uqi_isOOBZT@IgktjC=%Hb!`m1s3ucQvGxzN!C-V;$b;I$bRtx6Yg5V- z%L2r-Yk21~LayZB5;0HF9v-EO2*{yfNbM=xe2gXoTlsYZgL_EKHzZLxBX&>;wOx*j%mIF3uc~ahj=cfI?jMkVb$XUDy^Pj0w)eUVUrB5RfSnM!u z$wxav7ldU@XY$xG&qj340Ae$5=|7;7}y#G;a)#AyJjVV zqowmG;lpxgwQ5&0o)hA3K?RIQ-yfCEQdv#c)AivVRfe=&Rf5}#6=W;gdfkGEr%B$z z=+Z;MnwaiR03oZlbt{*LupCb3)o0Y$u0>4Y;phkIU*|s~b&$7I%(Yh`GRDl%XTl8& zW*B%2IW!NF)aeiA2mAvHlq){oRzyVfa6q(J5*~rhV$;%*S`2Cf<}j3KT4k@Yc$Ci_ z2!LTI%YczAoi&`L#^)tjoxwv3r#qS`tPk7V$;_fX-cK@9(l8+u~ND1Eon+F2HH z$s{Ii&xMY_4B*o-8jcPL=p4l^WM1wbDK=gBJ{gRS)4;{#`Ec*cL!bn8TPlCn0Fy5A zg2GgS!J1rHFq2wt4pwSM_H(3g`v@PWuoi950W>|z&{)3CL>z8krVa=#R#Cxn0!981 zoKOjol)fvcP|TY`Nyp%g8FC1%d;m=O9@|98^L7}hMIK{ka>x{ zk}P?ZuFMg_um>;?7G*w1XtljX88aTsQLq{MJ}j`NCrID{z)-fQq3U*7qKwY#h@uH4 zgW+Wu)L*`$Q%QNDJEsTAfwl`hIcYjd!&OnUc$V>S9~%&#xoF0Jw^U$uMI|^DPKOwC z+fsl-J?}?hi@4cU&gRpPnrOp_6i}6GGFbN)9v&y*5B6e!r8xMz8HrS+bSHC4uM?~S zutB<>>F~`1b6oxj0CQXoguBgbMCnFNz(-cvHo2V=UMavK%gzs-!zcMBtIS@NXwQ z_!aU{)jBk|t5`@-*$#|fpW1YkZ)9C0V0{n`&R)SOF^jYR{elwN z!?$I`^1M_?C`)%ZRyhf5RH+S-fF&ndF&mS9*3^6((P-}wa^8mbj70>FhT31!b5n_^7%w^5e)D=c&8z`WpPiBHH#YPMLfq$r?9K5BCPEx4JJnf zH4Lv_auIojT*sTJ6IyL0*!w^%9^4G9q7KqhBX3)Fp^M*$C5*Jmo%wnpQ@t954k5i0 zj=gbSKc2ecGJG3uObp{~+nd@&&tJ{ghJ1go3ZAG0K& z_M&OF`W;mGXBN1Oxj`VI3N45SP$IM=#E4knR~0y~i#MdOP$_tIGBMPW1%EdQZvt}Z zRCO{5wWF*grG{xy=~p2^O-)JIq6T<1ZtpyRVl*NhcfMknI*v-B= ztdD8ou(62i61-?berj~|Z{6BPW4txvgJ$2FvYNTOE(3uc1q0&{l}3aTsT9B$xi`bM z|4rlW1U(st(^bLf809t<4|aQbwUdq(NlPR|%Tul{1t0JWJ&py9bCp&Agu6k7N49Ow z-G;oL1Ct}o2YAu8%K9T_a2Zyk3`&DSGF8)n8=o{yA2XWx*MIvwOpnT&jK@^tkzd{& z-)3UZFd+w8sN9`*nL4*?)E*gDaUep_(II;I_i^36O^8`;)dcE=;N~J(x;vPs@?nEdRz)3iWc>vEnCk0J_ljNYA3PewK z0V0%%#yci_wwfy%&7IPK-6f`NDu*$#jlW4VfsoPUurfjz{Wui-&{KBp?h?2*e*64F5^L7y+Q zLkwBRz0LI{xIY&Wt_DLi;o(@0kQ^SC%qr(nNt9+Ur|yqBBuN-lDi4ZzkfAkc1-8f6 z#ZnPBm`dLu=&_G#-!smH;@OJ;E*UT|%f7cr6vdiuE?fNjJ(|Bh03t<# zn&o2-yWKimN#$bzNH>Krb91;m(a?i~X?XjL2}cYRAi>+0Dww_tZFBrM3ga}as1tp$uA6UkgYYp>5MEbJCIUqO#4Kp8{H0}V<5(j0%ghD745|{_C5i%D>YCG*Ox8DkcVqfOY`=GNov27t9Tc*t9U^d?$WPx84#t45#uXZ}4n2 ze%L{n-wT4}!ps9kLKV<20i=3O08C=QrOfP^AQc+CuMQk}u} zQCF2BnHCDp^*hNV$WEggx~-&)6;iibVk8gCWx&F4wA z;!&5*psVh56g7jrt2tlBdGLVg>+(!ZfU`s<9v5s_O^kp=WI*DtXuw#U=0h4-WFo1l$ z@%%M%xWP|Q_wo=`9>!!gCbwHy4br5Kf0LskX81{x%cyAB)o`KP024+uusTc@z*r=H5E zH3UGNB#YRMM%|E5?dKxRCl$k3NZnD0({zZQ^)tX)Q;qj@cOc|5KM+CkS~RK7{#c1T~rC zFx=EAgMU|54~cJ3a7!?GwBi426v5hBvL`~**DBXw{n2CQ2W+Mj8?ZiJ@3hUzjaJtT zK%Z4{G^;zQc=ea13{@)v8Z?Qh;T^g9n8a&^=NGx->#j(@9^}c_a-m%_E!$FU?lRGs zglg!go!fr$fGI{}qJ83z#QB3Mc+7-_508b2Ux=i_c>*I~M;^YfN_kPF{Lkq_|tWbuAkTgps%u+5~HyozI zLZ(b0)M~@(MnW~IXMQJJsW6Xa5)pI~l8)zZ!b8l7$J^R4l+Hrl@X}z{w~xR4Cb;rckD1DIokwW5S66cic!&d6aSSxqy$=M2Gf|#S@{clUg_-86llN38m{$|6G ztu9r|h5^qdR)EPjx6ihbjthNjee}JwT@Lo3Z6<)DC~?Fn5ga51Z4Y15gw=Vzz`b@W zv)++AJb;giI@d3y7U^9EYAXhfonL`&^r5{^H_K`0QS0rHUo<>>uW|l`+Ur+Qjwq_} z^T2o`@O<5EuxcXws{Ah2IgM}c_-^6DgEFF_9)2&Y{g@81cB>dX)1;hijo05#i44o`OIj)4f%~F-(BzYxgG|6#vn3++p-l(wPZMQI0)|x|f zFqs?9r;0xz-I{yb+I=!N`31Zr9ZYH!Xp}EnM5{F2KlVLypwJPL3w^Ge3jD5J*$ILC z^{p^$FbP&kwUkpE2zbe4p7sr(9z!7q0H;_OqO(?wM=`8!?(Yo-I*Z6-Wek@h!t+_E zh24MJkgNrZ3MgRidexJXBXBR$Q1E5@YZrx9X{orkTSFO%Uq#pbl~*9mu+QV@Uu!xU zbzx~Acph=mW*+2BZ!_pH^8=;xXY@Hdk!j)HC|>V4R?b~mJdrP4r25x*loar1%8{=M zj{)baC!Yowqvd6IB{{q(Aydnj`QjR^g3+3#;T6b0`0r zg|d5XUX`Mm))6zkT*<58(#zt9Poz~(b(Am)j<;9MQGoYiKqK;;dF?a1?TsaU7RHQx z`~gY01$V`O7^l0)9VbA5YG#XMRbBE`VunHKA|lxMPLe5-&q!RxZz}p01PsMlQUSw3NJ(J%t^R4ik`*LVB9f za}X*X1o93x@MIpZvA)`Q ziQ;3%RI)`xXQyd%hLrS{wm}>`S6Wge-;wi+1Ik8NQn9x{e`ZDH?NWgE9DlPsj2%EG z9@V&9AO9X4cRdyWjuNwD$UpdV4Jd?BNF!ZpiBhpdFQaGdj8lUgu0mj7+TkUcns~s-We0* z6I&(1EkV)4u+Xid5!jJ@_6P#EYi)|t*=Jv&$D!QoAfoo2)iA{{6_zy2FpCIP9aaDk zl1T;)fU~)5G0@z;$?^R+=*VlRq0F8sLgcmer1-gN*#Nkml=3K2J~{}*E8W%$J|nHY zx*|l3=9D{&JttbAV|s~o$k<4H22Xu;d~UrEkqmK=a|WowI_6A^P(Fr2u%uwLHZw$! zB}6j=szo*(C>#agnj`ax1zOxZaYZou(+?tIP-l2df`MH%c@LQ`4_~O&z}`p3c{R^4=UlA(G~@a9Ew#OUYaTmvji6oHcgpyF zy3inen)!w_N4r#NJv@JpJ#yyeu?;VbUm|!0W9r~%cClOrUuZGY-bv9e1&k$X9 zf}{k*!XRufvz_@p3H}JCfOruIOySUkeL$LeIwL|29LS-aNzmp~Q+Q`RM79LV=N%53 z)?J`IE>Qx1xl4>0dRsXyHbve0=522XQ0G?iJkS9|Tk?E;Wwe9Cou|`4C>tWl&F$;0 zqd%9#O7c@U7^f}MUQ1%BFsT7zNjl&NwXi{Ww>+c>Wq~J{3XGa_gc1x~Vq{1#8G8W!$=Yl^OZ;N9(_!^z1fr@ZV&IjGl^OG zNar6w@(=7(^F?eN^YAnaR@tF8?X!-%Y72Xl@x0C(grO-bcbgJ zgr>mK+Mw`YVIvT0?&xqV01>-NJ912&3Y)jzHb3d0#79+zaIdj-=%mZ2SRB@?Cc5jf zYk72)^%KL*hM<8oq~|Kgz6mT~9(t4y@CWlz0_~%<=~Du*tPgo_V9QqOIPIh0kIymS z2O|%ziD_K9^(7y2P#r5ii^S`Cvrk&WIDqjDONAitqW-J_fWg)yu&TC}Z_7(nSK$Tc zn4rdhox=>uG*W;Hj&ERtqD*f?{D5>M6 zPo6s6v;R0T>`9CW2jH#PfgwWi2tGC#Pt%9s_19&ktqX;9pZc2I*jG}*-+D80%qFX# zJjeY7@lW-<*`mE%;S0i_}ZFKJ_3GT1yr#dq}JS z_DQj{f&Gmm9LyYAg?*f%8{p)j-CJl4VscOafw}OjV zI$I7kZ0Wu3svLdL%LlPKTvziPhKJ0ap`cqV6)`|DG+|zW5~cm^zF4F>cT~ubaV0qJhH7zfnG(sPaZU?{IVrd|aO19<0f~ zsyhIdyy-(k7veFtdDQWO5h_3F41|l9J46P&Mw0E<72h1XA5xzwTt^5fiQlt!*j@yk ze!dx}_2;hLqZdkF6*^bUD4A7q>Dg_hJj;JgPs?dFQN)9~b;NH?kF3*6;!l_!Dxz*U zafyjZg8<|JAMZK=!pr)j#GSx8m{UlCcKUud!E3@UUln|L!37U-G2Wr&Ej2y{76&WHyAmSpG_yxq=yN+L81?lYwOqj{mX8@2Iil=sx z4=nJlXn=u}41f)|cPsJ@!rhV;$dXI#g=;LiIT*8j@0rq8JLjspl~WreSx6gPaLiK_$W9(4s0b%}D1#QENnj_b$O{1-S$W&RnGh0Kp;rD> zqplr`EX_Xd4L!6NA^x6-uOSO`Qt-Lta7LkjjvPEJ;D=`O96Sn4J#k4p_3E+w~uK4XuD1G>$3>^m~ z7C}Pkl9|QQ*)dXg8a2wAq9uvyJl~w3zyLz0-|YeI`n955;fqpu8yz=g{Z)v%2VI?e zrSF#i24hrh``d@!Fz9k8)hlTDUXo(C6i2Zqw%Xtc&kc3_5nha3mE! zl;N^$JpZceW;V+82}Cmh=hIl8%;s$sJkEoKd2_s;sDKV}U=K$CrB3{Ly(mn&zwfAd z^T`V3#Q*|HXKyr8GVq$KIPvQgE`Jp^ctt%$_qdOM81_rC2v|#f2PQ*Bc@VE!?hpj9 zu+}E@8xBm0jX(=zynW{`mI2fCk3^zG^oJn|9#N-NjPya*q=^tAgOGo%{hs#QeA9>6 z9o4yWTE_0`fn=3Sn9L5y4tqTdmvxq-w_u^|WbNxngQ=~iZc?u7c*W{}xqfc3WOxv- zd)(x4GnWy+AC1P+(Ehd6bCT%6?s;sbU4b(Bcp zmc7g}7NxD0*53w+wU(QFdF!42*5({E%qiyj^JQ)pOMuYUCm2$W=r(;D%z>;f9Gm@R=@be+T2vkt2D`XG8JC6FoQ82mU=cfF#@ZLt zPFnJ@c>loz$sE`}9He;Q*^Qva&8%B0-^;5lOLgD1dZ9Ifh;0hu#a9*L1WDFIQ%Xy2 z1+tTu{DKvAuoo{Lfd#q2;~~eR19WfX#lD1H)0 zN*+9{1SUrN9}Cy!?}VmrKn`K!nQLyhb1hCqcnE(0vD{%ej@vJ~HASjFSieiGU#gcKIjKBgn@wga?T0lrRKM z#;r{J2Y*T-#J0&(vj}N#3s$f9t0r z=BLi_Owd=xBSvtJyDl+2Gu71-)QIUsshP(7ndUa_nfmQ%`q0d6pP2%U*_ff}&WPE5 zo|#npnStt=?(NyTL$gB~b1gno`74v7Qj;Li|3!q(aSubB9n6YG4+)jG9z)z(QQ)K!-Y2c>mAHz6zA z>T4oBf5c}yUXBl=Q;y%Ae_5P=-oVy!?8P@_8C9+(#I=JgkBP=Iv>93MCc%=z&XBuXixTqA zPjr{~(y%laBSE(xb!Bcv#kpZIA`KB<<)!ZJR~UKux;=@R#f?$yhDv~k? z{@&+v1Y6i&3eNS# zlBA->!eg3hu?q4`r@j`?jpTDoc0O4^YBOeneg(y?{)VV z=~ZGD;^L__CG8VE(fXEgR|+0a7Il`_7B#rszSCCFBv{^3FXX<}g;DWY zy;GCzPaYNYjU`pqFV2oiI4ll4naQYIW401j?=#1?&e3n5HnvI|RyZ$H>Kn%ACQzO)O7Bj*`}8-jdvI%hy6{F_ z0OLc${pp3}#o*j;Q2$@q%~QI;E95I1uF09Bi?bPx-w>pwrOn@2%>#J*w^!P_!itxZ zo4-a@b_Zv#oGE?jeTB2|d?u;<3*6zrBKBFO`f+)WZ*ez`;2Ktpl9x8dwu6@`D zxbiC{>yA~KkXpsl15Nv{ zodf@(>}NzhhCaS+BnGb^Pk1Ires}!bzrg=|{vSk0O{mEXM$N*?+tT-o0!A~%j{XlK zWL1d0shc9#Eo&0rC!tx@BzJ1;vNjhHvWa6_2rJmBsgpEM+2kl#8MfK-f$-p$=7d(-?U$IuCbpQb&lJ8U<3a=xuD-J=}0 z^dW~=H(SVE+dMMfQm)>jiMpmH-Wqe#qbuU4Ti2FfE1~0S`0I!wosAPP^zzRj+worT zCL!}X*$(FJdSjbjD4@xI!f3_E^3Iy7$Ri5uk?*>_&r$OuFug9webviHo+KJZsBxN0 z(aW#^_Oe^ZQ@Iq__kn|8;k$=6-!Ep1oc*_V{SLVOn-i`vpi$agEqU7Ud)+B%+f(aZ z$j}XqnisaIbS2BQ>E1e-i&()8{ILaxz**bLih2i|QX$q1uBCU4q{FM{N;Onl{xWws zkG$Ws@ntIE(hu(_^G;JDvGZ zMf(DuJ^Io1iY=SNkJ};62$>dbX>~6>Gdbx8<4%B%>kAhaC~^DBMzqJ~ptH>aL)PU) z;&Rti+!8Uh?`_&#<*_NhLidz!pV})oUzxzL$ezap^Q*tCZ4^rf)(m+B+}9)`zKn~7w0)V7y0HCa5}&Q{bxPs? z6A_XWezD-@AuR#8yA~uYx=On3EqX_tOEC2*KcBcry4n8y1&s3W`!j(XsqB~WXMHcc zgg(1p^y28(gX=$D#W(WqFU5`i`SDVoKQci&7oo*oPOp{jU&%fm`E#i(Ls}*N%B;dq zVq*5E?;9B=cD+Co2Fv=;a{KeIkDcmF7U<43(tn?%qB+@zM0P*__wRjv{O_GH%w_Bs zq>wHP#Z}0Ee~V*l1Aw$!)O}*yT+GOKW%9o#cy*Z|jW1uEz4!*$3^9>iKAfOs{pycjzsd9IM^MCoG!Qol!tC%- zM6iB42XgxNGwd%@;P0tBCD!JOjzt+@(AjTr{Qb?KXuQ0}O_3)aBdET^nd8^a{_%Wg z`0OD&fqN{#8^;)x;$DCtEJ$;w0>?n?E()JQ0Ob1A*jq&`FxGlQC`>zBUh8s^IQccg zRK-jeAf~Lg%BW?PvwjRm0rJ=zVla-`!s@?QLwJb1QH;@-;w-2T6X5^D9)-YTfCpl) z)z5~FDe~1N^FkH0zIfUo6M+=bZ6@NCvVDND3%*GA=Ds17i;Mxnspgy=C&u(@jz9^B zv5MJKwmtS@C()pe`pLxxoTqsWGN*Fw)Dt_4W@j4_wMb*Pe0-{m?yWt+rc>c^+B9Evs`pXJ7aZ8=W)_YT%91wj4hxdRP4K3v$HvE{=-=i zB!X-)H}YC=41Nl`?Fs5YSxX(lg`j?h{FAFtv5f3#=!}#b`fnJ!<2MX z$KwnIDUj}{sQX#HvPRpKCf$wj37tny0L5bM!}q(E(cr{vLJy1do&s+jS!1LAl6T+=lH{5&MpU#rv_@571*+xM}=w$a+{y}1tRxMQyzAaD*e=3bNhK2=$3_Ke@_?|S|JUJD4hHcL>e8A)BkZKip( zn5_?&_CO1dg!5NBd@7rV!u1s+0zck^zV4z(CCcqN-DP!293FUlF7$Lx_LOR*evi}~ zDfj7z+7$!h4O8IDgb!59YeQ@dFk=C@8I%#i<&E!^@|it zZa0E_{em)v9`Hp*&3yj$HVdb6!sOAnad1aRzDN0srTVho9?3g=F$gOe-1kD2c5N;7 zVNYJW#7ES&Z{B-T!#~2J#tJODv<<{geCMsqNgawRJ1)iPL-nTJnAyDyMF< z=w3scF34B>Ghp|VE5nhr;jQBMxJ?* zRGR+xI`H>A8YCXn@=kK^QSUd_KLd*+aRzX|+gi1UXa3x)dU+|ZZ0JBgsoL>MaN5V2 zJ9wGvzVl%dKOVar_EXAfK4EBbJ*WQfVXcka)XYoW`FZas{7dJGl#@)4r%90ji;y(w z?@9lfpMW@7Yd>?W&b}Z!={SN5s#PWgm&RW5I1N62$!#p^nZl|0ptx0cZ;Re@5Nqn@ zgo)Ii$>7yMS6IsGMp(7gsr+NK1P|INtJJJ@WBCg~R=Pof^)6#VUZo1BdJ`$D-!Ii? zdVs{JU{IpTk_oy9btTv+Y%;L-nUO?)nwa$kfu^+KV|0t2(2gXn1HSt%5@St7reUF{FCjDZ(OID>%Cu8hDhIU4NQ%G?;{N4t&vT39vF(N`vz$ zRtZAMSM;%mmLkl1=xBv>@hM|bsO8wVQ;%vh221HuT#$BS;Ga!%MmQ@#Z~_DrL>{S@t%g-wgXsdaj& z>(Szubdx*p47C<=)lrFB%iaRqDe2vlCVeqEdj!;QQc`@BXRyUx;ZQ4RcKL#nw6;xs z$YtqDTT9hq{SeDb)|S9@9Pm7MeZpf&-w5b*UI_(-unVF+qIws?WPex{G0f$;0ptr8 zq^#-R&C_eF9h;%W$KI9wZc2YqSB$a3b_}E@g&D0L&rADxQ9;q=dYM(Wm$~f(-F7qY z-*rMTEJxrcVdcA>wEkst)k-0DS%29%Ta<0ETcTrS@lrj2Z14^BC|XfDb?G@n%Bt|5 z=Y?$5C@MMI`&m-Sl;_v@YvtBubH7XL6|a9@|6W0bGp|vseOohfv9`r0-j#gv zatj;Fovgfgcha&9QSoL!?-#0Y@%YS*&*t{p-ZuNvI&>AT!u zUHfP1h7R4Ms*iQ2d^R7HN|0< zJ!~y6?PuT6)58c{ff4KCdvJx-xx| zZbE5XwP`R=s+7XIJ+8Q+?M8a(hNas!)x=xAsBa2ey7&*o9~~C;Y`S57z3Ns|b7b$8 za_hqD5{*FL^_q%nm=9Ny?lOy2JyJr8F~=imEyW!lS{y4qY%<+0swT}Qm70hrpF`gW z^S*AVyIw7*AJ^VDmn__^Z)e>4&)XzW89)P_$--e* zmdbk)8XhGQp1RsVYzq~_L#82(iJr~1N{#1WfJ<_W=H0G2+a&GH`s;(KwyI6-5>0w9 za=!;wYYmhG+Bc)?sK=1aJTLRo2lHwU^uu5L>@3V7KGeH2zk4+%ml*LJk;-Hedb*m| zf!*+PO&iw+HhVr+8var1Rcf_7x|^zHlo0~l$=y0LJ|JNdnsZQ?z1)=8yo1cG&O{Nm8WY}=4(?b3LEhG*iF zk1aRHvOyP3{w{l53=2m8x^kzk@r>dKFH|qi+2v5jL18CiOcWf*SKB7$(s}M!-IA< z#WQyxUDrljFB>Pd%~mxcifm_%lD>YddHAs>&G6zA$zE<0kgq>G19|ghX(VdO$mCZ$ zPxHOc7>}#!gTIro0keIM7qAjixy3d~$+jTbl%XH9L%kvri+hdFN-KSAtDoHS{@LVF zdoO#riu6+KOk_ya$t~7h_1ym1zJS&$)BK5(8e^f`H|LfIhstg3=Ek_V-CXNG`q?Iz z(1|Y=MqKmmH`RKy+!@dEW`rTmbRAsGHnGOuo9!EMEeW)HP>i1BBXnIB8;m+#FEQKp zr*;hC)KeQil05g%e`4i7ZExw__5LFUuqn6H#cvw)Bo5;4iHCrMn5AEp2F(b75Vgz1 zr|&9Z5d39U?Ar9`9H=yJc6|&~;xx&W8nNOj#vVKN{DMh`wcCjw^ur~^x2rA}Oj5*i z8B!mv2&5z(eVJ4^_h3tMu;};1w0!0GT-o$DhLTFXN&U6Z;D2nT9^TY=sOA08X)asn zSfCSTcJ%p;f@~Ay!yDLl4li3+n{%U|FdZiUi=s3ChwA_0_?^|Pj5WI%#=ea;q#9!z zLiX&9HKC#;Np)u|jjfO*p|K={MkHHx?Q11bwrVVuqSCHDm9Os~aPJTIoO>RRd*83~ zeAah{_2=1wato|^%e z!I)Ex^S6)>9ij3$UHH=2LrorXbDFuIlDP?XIU`VfVrhEp2nOp1ac!D%;J!I?8Mrwa^)S zF#jYma3I0wm9E89?T1$mS$*iCMRPUuTzl#DlHGz5j_|#4iR1TfX4z@K;|K|sZjC-0 zYZ#V2(|KWIRQF%!id>-RpXc(lsq)i(lOF)N(Y}k@PZr#GfoXYRFS8U>c=y1!yCR!E z8Rq|De}+CC@SO?LNfCdTI@sk?qTcF1*G?b3v?GRdub0J~zxMTE{c=^yF}Zl{pq|8z zc8+krL|Wj&n}W^hWA&B$euO?jg8(se$7>5TN@wnu{clG}f01!DB^*Sb5p6pMRbynK}z7FYKC?1zfg z+4(&m-whvbscLk5tata+qqkOq_8%@V@5ATDUr*E|uHL^lja2}W0YT280E z+4T;iy=?cs`-f%4yZLuEGZi(S4<4Oq8PO9YH!jXw)B%rE{Y#yHC+@BxaI?MrLJzEJ zZAP#1^?FMYhkDAWgjn(|C?3()b9D{6m|DWD^h$#{VT3+hc;%% zbap;gcWI&Ct}fCqbu=H*X-$hBv%Vicbos{HG4`zH{feQc}`<>`&`EKVJ|RCT}*dieF}{=Qdf4{#5KF-`kKF>ZQx^TK#|QE?(0){EPW% zw&T_>hg+{G89%*!I(&amZQ}Uba{^6MSvSAJfIqN~(wCj;^xCk;_y5Fq{q~;Lca|iU z-Pzpz>x^QG)9#-Id*hD1`WF9R-t6gCHznDmnw~VhN)Gp)|BkqJ z*JfJqq^&h=c{3ION1{=(HX6C`v{Z~}i4}{@VIzb%VPkE1D)!lAO$8e1OQ-|lG=Uj* zg%6EhHbRcYFEF+s!Laz3^O`Ky7N1t=C819Ih8xP^BHWeN90`iR@*Q2FZy;72?G!7Z zcf-L{l8hpf9LwrW!>LLk=`fwqORDDae|(;Y4eSb>EBjM)hdK&Vk?l#=wCNe^wak(A zB0z7Qu34RZ@9Ecm)RV`&;1jXdc6Csa=;n`*RbT;i9c=u)V*yp(yFPpd>W;V(1API^8Gw?`%@md=Jfwc`WAgx z-z-T(Wi!^2Zl7=Yo_JmKy$#O{SzzP@%7`6vv8bS4`5@oDC}ju*zmx!?09Il~U=)mXpF@#0-Mku6l> z_7tOiWMhuA7+ zlD#I-?d!MZ=8obsIC(K+(;;!}r=M@dt4@67??Ul2hDs7F3JkHRX_uN6AK_=6p_<|s zv~RT}6L(IJ;MR~SG!uv|=5N$QdAb~Oe0wgVqVGbihn9otX4a_~ECv6q#RM_rQs@G^ zw({a`P4Zg>scHU&s`_S;I4NlgmtdKGco&uueChyJ!?Kaa`Tc7k9(k%4{`YF2Ucw=&(Txq|V!H-u>b z@HX_k#}jEi)FWqF%(JTC%n+LDy4la;D}MoF^PRhQ`+Q444_U9L5dILrb^of#>zc!~VvO!Fqb$+yktEd+S6b|7h19;Ze2p_yyJJy!DG`~=ZDau^ zM*{KE$ERztHqPfaR(TtVVy_~pj20b^AQ(I}d#RT>$igJnFX-1WMe z86KvW(aBZ58_p{fG!!*+h6y3LyJ2Bu^cjn}Z#)~B%QLhc!Qw3A=NjzCD7x?aubGd5 zb-wo-0~(IALQg)YsQnV7I@9IMB$z*NeQ1|}w&&O<6OT< zUB}Jqh09U96+(BeAp4UJPA-2Z6q#ulRikH+ZL^v z-EI5+TjMVJ=I0<+8dcd!K??`nrz#4{3=V3t{2d<-v@~hKr&ErNCrW>-*moscMha72 zML*=Ye52@#um1(i)jKU|XJ*{XkL>E`{HQt+)l)E39dsiQ9S#b=MAb+8OP8CX3yLuf zAB@Ej;AzDSo{JmZ$SOpsr2@6{o2}kzuC(ahjKq|`s=7=>wwS`{H4Iw1n(fv3;6a&9t%#rG*Ip%ZshV&vl}{R|GDW>^7kxE zdHGGz0+3gj;T@d4XQIRTJ6pBi=Ah?ldxWEudC%F!VUM-0;cwD2>cu~Xzk`h6I_9Uk zEsmK#B;?jP^YeIO%S9Uvj$hZos1uobA1V(J;FDsB9{uvL8)5{zE%N1{u8zB0=^~FJ z^16pBgUh|3qf_;K?}{72-azcD+%?AsuQEtB>y!H{AOmTsFT$?Wm;AnsHi%$W^^;|yh?27q|URxox2v^Os;0;xL>36RayVnNnt-d zF+F&Se8Kx$yHM$isiXU@#gjIBZs!aJt(uz}23>oXc5h@l;CkMpPOp0TZM)>>P|f@rXdstUOY^^JD?n7ivbCm*5RS!$Mj>b8+m=kBP^-Dwqytq6m}d<@q@+UKT~ zj4{ULq{ftyrNTFT#75`Wn_Ch=S7SxX-Dbv&?}$qMSx96J8YG#WS-N{mR`IMqVPUj+ zcT9n#%>|=Gyg|9yQn5zGl7urw_BrJuZAb4f^Ijmj$X+`mo!$Gj8A@{Rq6V}UuhyN; zx&pMd_s-G=_|0bj_1^Kf`uOB_`^maVuGMbC^Uh6$PBY}S9y9%{dotP&W=gN=DJ`0nI$HhHSHV9>1@lm7Or*JKuTG*4BVQ$R3X2oef(zy3S!&IeT z^m04LmI<+ec28^PuF>)to4h@i;l0Mwj%vsS zc8RIX-dTi;KAKs#pvYX7(MT!%V)+28v%7PgXd7)H1W+n`9TT1o9ZhXXoVR(s+}Q8Y z{@m-YYi; z(jBZ5fhrcY1J1+wh@dFc+cl*edXJmPoWVpaE3%|z^O%XsPD1je;32u#a_3|U!N}b zMrHzDH4zLAJJ@-hZ;zzMSuukLym(HP<7@^!}a~)DYYMQ#7=_YZpaFV0$jCdn%>v%y%tM%NT8w ze-N4jB_u=6FxZAM3GK`8U-H-`%JDi~>x?MeTy7ZQiP4c)cTN+qtb#+y`Nnac!f@T7 zhPKYnR>wW{1fRjg2|AcnffOEpz`9-=d8Q;zG5zL$CXPjwpn`28cno^6{+lWN0O%ZJZ%!O z-C|-`w{)A{cF)v)fl!YVtB!5fHYxlQS*Aap|c$B6&SY6Zbgy3e5I-=AEhA46IW@XZcCu z*U9dGv)nf1d8a^c{Ar827qj|bcTl~2zbyIHq+$ULz@crs`%>{+vI^#1OIe$i$gh&o zQ2#m%PzwXUyhUIsQT$K3vzELL}V`f9fncacRmgQo$?9X5ez< z{N|t+KfL}@sfNEwo}%$@S^Yp<|8Hv!x4vmLpf*y%rhT|mYb&wtE!WSiE**zi8E2E9 z881HxS9PCG8Pu0^z@&O-XYI8-G_PL_v!H31I9|CjR04+JJ_vM4BbYOBMr*E$qzU1_ z>oXn*JmAZ|Ud@-W> zOMa}o1PGFO6#3*Ez{?)WPHrEzFU^tfcY7G-cQJ9Nxykec!^0Qx*>qbu zloOcN6~F(|(~<8MinrY||E!a4CN9|I?3QRa|Bb${bOU~TuqeNXFoWZv6cbE}3oBqS+;S+`>t;y)h~U))S24zvu=d}K zCk@kO*YTo;K<1Fy7k>+5wMV%d{?1ZfFMZVaa}nZn&>zC=C~bP7TbsBHlBLr!i;zZU zNK02?2XMa^aR?y$Uyf=$^OaQt1Gwafl*a`$aR zO;E7EJ}kFz57?Dd8fHr@mF6}uwEwE#13BR3dK#0I>PCZE#imjqjzz9xxN+Ig755d* zgB$35SV?rr3AA}BhD|ei_I}$FJ_}22T-k6cjZ38xAKt%E5TgHd%PZaHsPJrr@5W!g|%Vum{iF`gpL_f&W975 zn6h^Rp)Y`4I*%naP#db=Cb@ZL>iW4=WEOh|ooVkm6n2Y!e`x=g+e!_kk#BO^)`H1s zm=naIK`AaYU_U0M=^1E7PW1=v<(EO20I-AropFG$1?th@&@l+PSfo68)qK)mQ2b>x zCG5`-=51$B>p$U9jpsJkx21MP&pcf1_)RpIdG+9>)#iV^2uo?WJ_NVqgD&HM9K@C! z2UvowJ)@MUBK&?Ij${pp@i3*_9@Pnw^C zGal@V@klwm^ZZKmgM?lI?~Tn4AlEd7B7hmKAn{y;1O#rO2;9N6`>Uo-WRy6RO7mf3 zivYqns7yvOpqMRWGlAY7?!+)D){XT#l-!8_7^_e6!<{v)zrB?4>&=eOb9Y{C%sJ<< zCT_d_eHmpWfGI|D=rqt_97KUIA}!Ww8fCe$Ovj`$d1;b92=X8szrt|?4ibw%As+xO z3U8@&6g@<^PE&n*D%e^ot`al5nf$rswzWR|!=r@bR0G9F=Z6j%4Sec=6NTO$v0vw? zt#cGbkVNS(Wc5@BpREdTOlkmv4`;g%Os?jrBE)f+PTPI!3lao&yEOOvPc=tBSa{9X zf6JxqUOww5cNX5~YhoB+{#;al{D3g&f#Qtw`BD9vuMQC0D3Y_AnW`4Kbx$M%lcFVb zl$f}VV|{D75306-SRX(>7Wq&ODbWUMs{?yJy?8wish@UHrjUo;hi86I;B9dKY;e3L z&+pB8^k1mb+`=oRF=eUB(mkyaq@wTnW+}ajYt}TxPNir?X*g~_2RjZJF%J`cU<7G+ zQz3j*4JK9u$T8D46BNIo`D|+@0B`&DveSDafq%%Ja69x6BTSAV&$9nW-Cf%}7Hu1M zLsaSSJKKwI0>l*x@T2tPjix0%^Iia?o+P8k80UyieF@ zddAlC0UnzoFl~v^+oz)?=OEd7!)=bh75VI@GC-7@qU;0W z$S^ny*!|3#&~@YG-0#NnS1%T^=MLQ#zPRwE(dV(1&Mmx^$}vJ=7xs|n_v!vNv`xuH z=@|s`?WU>PB}7}A$Ob1$I&HfdQeK)PIsN&=n^O;tfM^hgiT!gU2tIfMsaXS>2w;TB zKVxbzc@kTBg(FF4qsf3Yl&ErQKj{!7CCc{tP^wd;#M>o`>(7#f^5JIunCJeoj|7@h za?=AC7lG!;Z>;y*@ErI~I&*0UBrpj6dTP^?zA=)%bF5S3I17%G5SNM^H>(=Ds+Q5^ zS;X%_ix4OeS&4jPdOF40n@V;SsDp4LL(+8>@<6sU+z=BvJDHXRxTBavG7R)Y`Rz_N zi=|sVM*w~34M32>sq?-x0FWu@fa`Ez%nO{l`J9XX0iRyob_+s~yTmL>n@Eo$ha$Ma zd25ZuK9jRfNuPT{862dN8_VYNjSQk+oYs=Sih~q+if8i3Pgu_{C|^HmxZz7)$u4Ii zNa0%=56_yY>l3A0@I8D3&hTJ(qhxG12Zm(ECjCkDXq!}Jx{}KULc&3RKOSe%1t+`H zQ;_D5|5>XuE~usXim8q3k}6p*aLq?C!cq%-2rfjL83Uc3HI8BuG9LE(kxaAQPP{s zK$wwo0URmb3SS~i=L3jcf$9Z^4T?7Wy?UIzB!Ppl5#>y;g|tPtna?W)Nbl03G`R`A?j#@P7EwWnJUC6J`0WFL?<|L}Fg-Q_4$^9l9LInU$Mu%Gg* z?;Za&28W#XYhh&_1mOtnKeH&!;6&J}ox%d}=B8}e7|<&oznu46W15yqlr(lFql;9b zm~B)8I#W8j-c@Lrk!zMhdH}n7!fP_bH2`8g*H>qwdjach zrT*El7pmU2?b|73M_R!O~Ti z0mLmyk?jfMkSn)h`#tAqGs~s9Mb+*WRU7ysHnAECsW{ch%R=@SzT zA?>_fk;KFgst2#;%E*%G=&ktBPV>OM#urT~oMk6x78WfF0S&rz>eg@@iWG%CjBH5U z-R)1v=G-Qh)nuPWczQJ6-EPvsJhHVF@hT`mzEOhe9=;$Ew6bzZ77iV~ri@W^T1Q#3 zSn3)+Y<_%&3_$31lJ@sUh(qm28vxkDRCum7p1S+b0?Ur-Do^u9R{v#1qZkUqsUh2| zjMHqwY(g(=R>Q%azztWw^1_bBiaqbg(@xD@4Djg+FVts3)mf>|AghjKH}iD@TLGjdYj%3sf&Rh@=IQykw}fm3{j6JOS8p5gi+P` zeRv2ER%WnQP`6AEZmYrAX4qTpIh&)&*m$S?H=<-! zVlX!8*dD#TLwovsU)yGDzY*g7hSesQM+82R*jG2(!;jY@g!M9K$-F1IFC8*z>lk#s z%q9#z)}l_p$V4=H!;E;t#s^Cw)bvO_X4xTsbi-<$i-8?@{cx|&(kYa z(fuBKy$TeI{9cNLDGO`+F#f`u;EDnkMntf%>NQyqm7MSSPCn`X13`4)eU%g!~$ z?i^6VEM?3oiN>;b_E=}N*<~IHS%sTan4;-WmDU5pj&-cY8yGKK%g-ck{Cl^R*V_o4 zFT!1cD{YOCk6Ikrw(SSh#q0{kPLOR*h>*E@@m2_%&9Pym4aw@h_r!Z?|5b;%YId_| z6Ia_zE^VOTCf1Ti|MYk0%#$);vS>in=WHiw^7yor!ExKZxc2skCa%XsUj=wvdanZS zrk-YVr1Q9`fQ{%mr}+)h!0G;p5Ax|AR%S43F4jqNW?fmV7zhOJy;CTZVMYl~AjdcI z_Dnr!4rUR9wBfU_JRyVc=A4He#KWHUA3p@uy-+BRz0&&UVWFx7qGKF?JZ*`@L30`Z z@gP*6m3-B{NeQ+_+g`E`WXOCZwlc0~oa++F6zy^mz2~rB7jiP#!;T>~M>@&N&*A`j zln!t=Jbepd;7^n(b^;HsJ@@;C1bRw=u+16mJIvZz*_Xk4b-p`4Iw*xa|NO2z{V%2` z+Y8{=Lnszl69B15SV`*A$r4B!i9pDuh(4KSg3Py0bouye1u%L~$;7|xNfCbFPt*{i z>(Uu7r2Wd?f6hREBKx@x=+Gqj(IidmC@HpvDWNu!17-UK6o$Kb{kU==Ka8=}>~fJ% z_5vW1X2pbXWw6IJeO6YM48A1nN-h%QllQkH|9ull{VQD(Af)>1kw~Od3Q=B!?Dj!G zN395kj?4PzfhzSjC>BhW;;+&;Ms1Y+Do>81Z_A9?o1KmFahmc?#qVRjQqh4ij}Iet zh^Iv{KqTbc4UQiKD9BAn%*Vz>fbC^L_`_~j5+6>PKnP?pRkH%k%x%)4ueSv9%$=`v z4Nv6)wI%0My1i>--Ib^5dwB}MTYje+ZfrnhyQt*lb__Ngk5DT(>WNagl(rntkeBFI z>0@7+2GCrfZ<@kL5N14DAVorkxg2y=`jxh=)CYm9BkPcD(<|!xpG;oLp*fs!2_{>9 z|D_Tll{8=sNlVOMO-w!PMG*E(-)2*3obOcgx@^RTa;FWr9K3`^6$mib0&PaRY=t&h z0<-Wj5mDbW;pm_2$=Z0BDU6BmdMe_oDjzi@_1A}YDX53~1S!u!uRucv;MQ=z_0A_E z8&^i!^s8lEWE%r_C?Rl5h?FhA6E)S2rF$lZEo^OL28@n++Iz$abv?P_N4jV%D9}jS z|B+C2=AJOnwpXPaoc`t;vF?ZKDZiaYU{lB9zFk(fQ^8eD4gIAfv*nSwInm|kd#OuT zOB4sXhLJvYd#Hfjnb|l@+BLK1FAL^I!$aeEdrWujlY8f0RgkM-%h=Xu#RQl-ZzKk2 z4_9e)CTUE>7^28K^?(I~fA%8f=lo4b4!JK2K1-H4<<0WRqC4rfe_SKzz&~?Um?!kE z)CEz4RDRF1(b{+F2U@6MY*bT95H@{hd90nFw5K>tVS!Da7QsS&%&Mhw(XAHV%=<4J zi3aVYF;AwrD~c}p>-BVt5Of)@wD+{w>buJ+s^DMhI5L&p)0bHlZpVKj>}1SV;Uh)D ztD2c`1&K5&q#@gXLq}KAs|Nq@$^4P!`MWWXsnd^1q;dX1?ka6mq>IDu!M>Mg>{82h z0-3${rl{;mQi=PTXz}JH_wYgqWXr|Fl($a8-4qrm`~}K5+RGC+AZ?4-7+~+<{@md{DXWbxEk8p_JSge=GVkL8Q>Nx_tuR>N06&T3QkMv7 z&_48qfuc!e_nBExaV2;*I~dre=Zg4ar5uwQxp=;ziop&fW`%4LfW`Fsp4$2dQseBq zBDbPA`AhyKGJDEUo?UDiCt_KNmt^}RMZJi(D}7UA7b4>Onp)2z?_InQ3_;oQ>@`Yx z+|6DJwMBBlFWBlb7x^#IO4*Df1CSsV&@s>lXJM}<4t3%B>z_p(DH;lU7u|vMOqM#Y zi}mo`SdmR+tE@wC&j>d1u?QfASfhxx<1`bnC8Qx-uEaCh8|jmef$ze@=GS`l2FiQy8 z^$6|^605Y;z3c){_w^5bjBui(Cf8IJ-+K&+wSK$#ZR`phO%LnO_G1bIHVkQLSJa_FL3|6M?-Jv8PPN+A>Yk`q+(>>&k9vV~nmnUrXM=*W zR)Un9%T(`q^kv(HF=5t0XG!o{Nt>|>T@vU3Ap_DfvOC4 z>2P?YbD68AOtlJDpjSU}iQ1#|oT@a1^|7@;kCXcVZjX9yy`^p5oU1KAsf#^MRQ%* zNpGEI=$VK-=}ODfX9s~u`c>**nN{0v6I(Y?uB48V(9-+c!b5<(5(ZDTl9cX2a9zL_ zN0G)?Gx2?itwEBdF46PppZ^RPWsxx7CyM@l6l&_1b4&B~91MriYx=^Zt8#JzulB~e zq`K3ZyLx6ZH9t+*iT|F*7H5#0>+EGlOUEDOUYU%uq)V)A4FCuo135KK-SD;&8;V1i zF~pGvovNHs0h?;b76<7T{RiJt_eRsDyI|gzvpc9qv)#Y$+u?nF2zAJBZ-t;+tP9qs zW0jVfnl2%FjG-%P^>(!_v$mooop2+fo``G-Qnl^IS3#}1kkXf_r&4S&DjQSPE$n(- zN1ZK{NOvCvfUyhu*2_#w(C6Op3dMh*jkUS5jF@i#-YbY#`_1B4l=m`0%7PssqhHVh@85q(mzN#A^L;qkWzw{$jSek*Q zgC~vvTzd$;Vx>7m$7!$$EA&8TNY)dIxKFy(r{#4t& zi7M(>*Och?+{(iSsPgI34tLJaK@{fvopkb5(c{_Ew@rn5R(WX1GdX+v|`pEw(It@*dA$e2x=N|nu?RWcgunzce@{U$8Zm#D^UBo zlhB<-a*ccp;R%Sy928UFIyGF| zTK&5g6faR6_PAtEMS!iB4V-x)jl`{Z%7V1XF-!sWtz*9E-)W8O#{$1M;lx128|N`p zU9JFmM!@oW|(= zcr0REaqKv027kouuij4{cMINg)RIHC?9nXg*&|=_`bEasz&8#Ca^%I(66qDY7#p+i zeUtIU?U(fiAXv}yYog1|&#FL5z(%Q!)mF)wqR9=XHX*bI13BcVT#zvkm~lUhdR8VY z#W_F8&?r~s=-}0`-Q}3Ycp=5MEhz?L3ClSCv9GjBI6{83)Jem^Kzm2RqYfqCxUZER zFSiYFA(1YSqS0Ny9~29Kh+S52E`Z-6O76eE>+vKy)=G2@s_zt#su;=z9VvZ%NaWm# z45nEgvy$*==AMEF^AxWpJR}h1{_D_76izXfVF2{yZx2Rh(1WdeIcRM)I+p~4BQmfZ zw2f}E6$i8X4Aln;jjy7&&e@0v|ev1bv;+3a&9YPeF#xggA4R7Qowbr9II;Q$~(Ql^8*Ha%n; zUz<#S3B9j^=YC#SH!bH0B}lLJ2lZLpUdf%&^T=Y}$iwI}jOX_vPI zN`N$VF{ZMRuuL$1#3&}40I{qr5Cd=#m4&oS2LvFSNKPY?hjdY@#;zeLNKVKW6j3Xz zJ7wrE(OkLMmm~uwX#a2nIi990}dz+mQ2_ z(u$;DcFSZ`G#XY_m9N(|zchNUXPPrgyC?Q^G|g$3c@>=CO6ukTs41Z3(fgK~+lY5n z7hCdTAPV6MxYo!%FcTJq#pp5P167l@aMhxgOzU%r?b9G$AroKTE(Z)Pus7wTAV4im z%!f&VXRau#z+K1b=g=7GTk7yK9iWlGFVO~rUjLWHhXmsF)1mhyY;vvT4@#L5y+N-O zWz%M^4qE!z&}@ktRL)lGisZpEwp_trs`N^x2k%T0a2{{7#iX{ktzoB8eZb!Ls$q$U zJmQ&YI#!D|p1~3@6|z<`{!&@mw+#I%xK`raW8+z`{66jMIHOwF(92bQM#~X5a^mde z^Ls=UX>BYv-nfQ5{JaLGZCvuM<=IWqlN-GR#bSCe3Jt7(RK2sExrCZjC~d*19c?3@ zGj?Pu=V-~^qu`_n4&`_8G#cl#m%%jd9Lf~{bUuq2-o$J&X8z%7KW4U>?dy7eQNQu` zd+oJPKXDg%&-Z4>hT$~__`xVb$rK<&m{=z0oQINzj%GJh9EisB3K1UelA+bk_A6;vSIK+ty!xh?`(3CYz1 z@^$>yTdW8Zu{}V8aY~+42UQ0towd0S!xNH~BJbPYSAObGh|+&6>qpqy*#)~uAhW9* z9h5twMDJ-6(g}u%9CY_-QN8*oEG#uqb{H88%8ZZ=lk|c!BJ@D6kj4Ux(q=VPN0X4+ zh(O#L8A7XRaL|cB&_Q~ckH%NYbjgRFGj7Xxe@?+|`s0x3Zm)rLLx(QpoBR|CVfZ6L z2^+R38p`ic`f-kpj$cqEVsp@nh8AP}Rw`<~oVSj>h#gH;g$?ENTkm&6HfFFua~%?{ z1GqIG=z%+?tqv=$!xiS=pjE-%dh$513=_c3e5$S)E~-xh#O!P*sdl*CZB{ z-_~6g`-0)#Y!aY}MYCvk2&tMVD4-;E%Q5)k6>*V?x__R+7pwRyUXkZv-y+Or;11uJ z2OX&%Yl5WW%Va4$aFqm-`Q!Bwc~Iib3Zk%gZeC+-wYSU{+yM;8E-0y{5@?!sHgDBi zmj_geGq6a4C@0B^h1lWBSY^aoklv}WDX#nR*{&%*Zd}*_+?vnix7-zjqx`eZ!1wrm z#noR#pAVwSAsBUllDgnDOS!~bB-g;a>?sC8*b+4ufRw(<0;$bp-B2|*JKZwEd*V?%UMTiZ&fGowdQ(K z#+@MZCo?{MJ`OY-E4|2@kG^~_45rPRa(A9n-|p#*pj-OBWf@99IBk-gLuvDq zRg8^y*DfbfxG&J@_C1$aTX8@i1UAAsO>8|e5ex8Gc@xxD6X@{fxl2`pC%G;_YCtHQ zm9F7L2KVX&V=YMHSmxWl(DX4?RbTFJJ$^d2>+W@NjG!swez83c z*0jCUeF$ZJPEpxA_Qj4g@=F27RR@OJHV%{OTfW~IIcVYI3zM2y-W~no7ObVkN?h#8 zjnDNkU=ZOKHL+GM#6n@Wt$YXPBJWW9ZlWC_ge4E>^LT_n5EGE!&0=iPZ+-wQ_1wWK zEgrJZDI2K~$%_sNicIet*3H+~E8M$WMMWb8z@`K})SZO9aRke!W0Aqw$VK9#L3Bce z^+2^L4MYYZ&@2G#*aC|KM)DW_%CnKe117R8h7+UEMa7}G@;&p&cORBe8=&FMIS~(f z1lUU!38o4lj}AUg4Td$iwWQ& zirpx>OY9dHiI)JL@B}k)!#swCnN+`T$5E99k%~a7G&F(fSJkRgl@}5E$HOKI5^!rX6x>z{Ykxn_Ii&EsF^I6`GpJ17q$Qno}8Jc21SR5N`3B)8-!uWJ&JpeAw zoA9fI2hmS^tJ3q&0h`6hEu+%)kNl4OTgzMusrtgU3KmvzLE^SLVx=-vnIZw<@#8nl z6Y12}NTHK-b)TM|GpwV4fQdn&&p^R3_)$SHjYGp+%QpjDPeHg?YW~mo~>j@$7AhKByI$l}(b(zIO}YgB#}}Y7$q^M~iFL9(l8iRpg2V?C z(|NuD4M;@+yl)5r@!lf)_7+ojtbJzcRJ@_laeM~l{%aGoT4VsjnmeHS27R|{#Z`i- zxerQUKEyC=zZU^mA2MeC<$|$voz=m z(zx7Z$ndx-Is_!W+7q%7BtGQSR)dr-CuT|#ATn0C#m9Ff(ynSf z8^M^eKV5|I7sZ||&eVa%fA0B$%jy9|Muxn{eghqk3D8 zpENTYs*Mz{k{XAf!Omg}z)G_QcRpG^Sluob^hN2Wq7m=Wd zD=+Nc0<1nZ#&3Qp6nWF_)6K#~sw%r{!aiPL!ADOzr6_3wLIdDi^z{g%dMovi_;EDa zosJw46Vv(*%LYeVAxsM$-LDi7815zx( zcti!j%v+3BWefkYMkWA$e#j7I)Aa-a&awMY`K8a_=$Oc0l=A;mcnAjI+zb+ot;7qz zq83Hf{37Ez7*<+UwYM>Q9SsO9Ms<1w92`HZXs0aPubLp(EC5J0AW9DsssV6GEIf}6 zUTB5`0@O#IP*MYGJ^x418yohy)xs2G^C_WLuJOGJ71P%mvTs=3ra1Wfj0MFfLtuLx3};;PW9{TLH1=hkNEnRq4ljrRgHd zP)oYtSo+&7e>`LU&Hg2 z6_|(sZDtG@4@QutfpfP20v8BcZbk=Ho2+Rn*`|19=L@wQ653yPO~+;!otEkQ&e?>H zK1v^5etke6iZ5s3TY0FDAZ}h7pA2AlK#spaFOY~qes$ZNl13DfQGX;cAZwg2KxZOp znxR7Rf?H9UhfAw*TmjC9zLh#fEeeDP-98uTTgoU&aQhN;JpJUb0GCfk zwgLGmj7sK$Pz60DN)jGrNb$BsaHA3>U{1e4Q7((5<*K{~z%Y5pD1oZ5O`0%uz!jh> zf^;$`FFhjSMFUx7i{nm5CwCn86e->;qDP)=C-9|kAXxMMJz9&0@&l1#CLWKEN;$I3 z9>_`=SbM1RknTKO9bgpEuc8&38?YP_Z$-+4QavCs2qgTwfKLFW&+x+90dyFd*ha6Z z1SC?en7i1969PR09xfjs4S}K?0HKl0$>p8R12MUPX+ni738^fxoihDD*6#hE=|BD( z_l%3qyTBD6g*M5L^VQm`C$qA<@C|j;_ zV@-wNG@c*~R}7l_E|n9a6YgH+zRTiEhyg+SPc5*b5TA9P&q3~%@gA~CC^%8|3c$63 z=JFiCa1VO}cxV(V09Wl}I}vG}jFs_oDiv?*{a2vSe}m6ta5oof&-tu zhoCwz#>kv7akI8z!A*i9<02q(d5X>?*U%DfDk<*Izk_k6h}ATABPu^wpG$8E#fxF~ zum!OgF(o6b@KvFds`dq{gbhC2mWq5{$gf@1eRg{O5{df~38Kr=TU5syU5{*75OiYC zxDH;(R01Pu#76{(m4>*_CK%l8atVEXzLb2CeW!?xXkHb3N^R95O?6KqTS+(6rT&mI zUHF5Q!Lw_UEJSGkTpRFw%O06YeL@XHEaQiMQF#x?(9e{OxUl|9=Rmx@_iOG@|5f@1 z_akwevG|s$u&F4{B1<2JvcJuOV%4CbcwOBo^&!TNcYwOpSmf}ax-d<7UkkK?Y-FwdI5T z#k(OqAmmiB$#%Q)BTDT;pNy<_F@PBfJ~a$moZcN z{!6rkrK&3;YV&-*%eaLjO=jb`+gFfEW3W8i>*)WfNfCAYyg_w9=w$5a+C#~Y=K9xV0{m? z+wOv{Msodel|5FYv^zh)lqR{>+&Tvq5H>|g|3E~Tr}yKR#!1ibvEJ+ZS7fjeb4Abv zY8LMo@Khn6_6;OkduuR?8yJ9ONn@DZJ-g`sBm4rA;Up#+oPxN>@mO2Upb)SW$O6Cv zK#EEoUCX9MZS*jUPt`d*uC?DhS2Wf;rJ*&|mItk&2{i7k5Ag9S7N&HsK_FBu4R2R; z(}roT6d>!_GQ}E!9rZj4R5@c{#c&>^0-D-I_3ku?67E^^H_bQo8S|7I9RDJ6JjtW8 z$4ntzNJDJlk&08*PzuVWUeCYa9FwHr(r&McnX+bJ^_vq^@>XFy83KZnnP3nd4)6gA zo~>GDAFn%g*V?=@EfP{Zr7JF&w+?dF@b1d43K$}!avQ1RKSr*Bro_ZcJrOhSlu^9u zw&c=Qw)v4Ne%nW+-GHs@@0XAHpqU05)L*bn^3=BhNQweS?-< zGUbqH#-rFRMi+8KfzpILsCh6!uOI<4ZcOVc4UyhPG()1uN`nwNbhUY?oWhPIgoj(2p@V}7yxbpSjth338FRTm$Wg=b@Z?AG+e5uWBM%D zfbsBPc^Rng2ExK~1TLtE|KX41^<$ppME}}Mxx6eQAy7j+AP?cwMk(_iO-&I6q>vx` z;V85m1TbXRnrF;>2U0~ip?lBrK;ZyO9wOF*=Dvkl7=ZHoum@dK2!{^kzauqsMH41(Ce4si^*dQh&rG~gbARc@x5YDqQM!n7}Ok)UkTA>HwN9u4v z7*ag5Le#2xYJg7+-}XsVfncf)D2SU5bST!^3~;L?rP4a^MyuvW_}$qTc+To7TDPB3 z!hy0e_wTshJjJH;KN0(3WA!*u%M2=Y$y~HF&Mgil1D92qUcBLGaj+zuZNFxP)b)~f zg&54SB?KK8e-lHGXL3@xzGDZ2cVsir$wzFuhw_g|#vKy5h4h&e(<8BS)mHp25^od| zosm4S8RwsP%Mx)nk_Ep)2YM8$pxrtE;Ztd|>QFf7bLmBClZwaqo82~#s8VPu%3@E~ z&%b)}U>bfjVuN$cKrC(tfS)efv^XcSK}zA5t;G+mrd^&-4z_E4NE51Fpr#bBHfZyp z`*)sJ)2>rCOp!5J1vKmo(OXLqw}#041)ssooSg5hj8#wVakPoy;Wv>Gwh%>j^y zhtv2ZnH>niy%5ibApQ|b@_iP}O<;8lzU+2eO<|2&7M;BEdk`+)P7@H5qo*?1bgYjG zbYvFKtw{x;lg7BbD0Kc6JXCJ~^F<8$khZ4T3YMv5Ly9qG+=Z=BMFvZo-;>QoX*K7wv5$e4`hvH^x501-?$pmK?jP$C`dw#x6TM<(*XT%kLFD(7+7`%La-ZG7=s z9sm;}3Vn4SmIV7yq2dIP`bnI;c-6UFb8rBtn+Ox7u5pL2CMy+t9y8hTH+KUD(-}L* zR2Ep=n|J#85=Q1ntvrAy#OaCz<9ChR&r_tU#5Hk!iwRc$-^0Eam8I$v8QB#Wj_ z&ZL9XC11Ehk!SV~qq>1@5jMnNm43~=Kiy}?G{Qd|BF+TT0>Jhcyimy7WUpVDp)TU@kiyIKETbQq6+OO^W$dilm(? zedLq6@^`jU&Ax!AcViIm48U!CtFj^hx|GjPlM~T3QZAHcDT6bzmwidL2AsucD3E3v z4gj)*L98G;8HtU7dFt`-iUU3p^C}O>OL$>tG*}T`jl%5El8XbOJ@xZF3g{BPH-U#x zG_n&VzcMcF9-YhukiaO#i|>65E1^*LV)6~P^%9S~xI!0jN`;P;4zq9o;1;qtAJJ}R z3eTrin9CIO=-+{KX*Li?zZUF?m?4NIdd~gAF10+KL$6WBP@3497z&|1uO*X<5Q*WPvA@d z@NMnc(on}W|FW5NzbscUN=u3QVGS%K+X|7W$W&B+1W=Z49CtkgQ7@Bi=;p!0bRIG{ z#9;cHXfwJnRCQa`2sH2@37yJ4MkB+8Z%umFaE_#Gz!eP@uwuYtuj)GNRH6g(QIegV za3=p)5QrxNB^(s%sja`me&Y8O!*Y0EUreI}R!kAj76FiWU$YiGv;q}W46`AC#Xg8_ zh}f@!ah}SV7Zr{#SwQ9Fc3dHvQ&jX@Q=XRO=dfC03-_ZSu#@wJBO}DLl(76W2^#Oe zQqd>)3c2A>;3hKadhrYy(C88Us3|YhSN0Tuz9tMi|E*o7X{SVe zhbHi>Z(K3~2j4?SpFltTG~bs4TJ&s$(BSmGBihd0a>$FzOhzE&Xx0LsUNP=lNlT0wQw z$qBb(G9vPvV?y-n zVZVgHA(s%1BQefQiun)eA%D$akgn&5fEPUF%6WMh5f(&s_Man_1*D#-lCa#xgmpj^ zlTZE~acA@&iezmFJ^tuUP_9d8OEIv93_!a2=yr3E4SIN7F5mi9yWPsaAK>CO^ z_!31lj491WmUa*XdrmY90y+XPA* z!t8tOF08`srywsE(>1w7#Zh1}mcWbTFtuusMLz~lJn!HS{q@tb?kAw|3#Z_P`g%!? zk0f%82wMm=j=k(Z-~@4^D#r&=vD6#K8+9}Qb9Wqw0E5P&5rM7niME*VbQ#T3{*Ab6 z=KvVSj1y>u=n_FDD5n;XF&9m(7Y=ZakAA2%N7(?v%2&&`oRipxsrXq1^UDP;>$byW zBl!Zrt`+zwM2^_Oje}t6;xchH%=2Dgeo0|-de)wh5XM<{Paaj~3>kKbvcu`~;4S%y z@Uj#gho6dGPS-V;5@M%J-I;-pXUq9mu*fK zy#%au4HC${My^&0WQFiAmrGKPa!mucDd40Q2#dcAt&#{GPA&5|uGq?qD1)L_L7Vmd zQbg1ZD+M{+sdwLiGc36-y0WX5MuQS;#T2ZIgRdwFYqZ8VtS2pZ!$JWMRJzLvf#j7c zrM~1)T>|(R5i$c2+{5@a3n)ul%iHy2h~0psZykdC8)1Pg_-iL{8wdG}26-~A4FJ)y zdWqEgLT6g@>KV#%+_wB|FoAgq%MQlwVBC`>uq?>sP@P!3C=W^9+8N}HtF2H#q_@Jp zaGBczT(Q(^+BYcqy|76q(3XT*Xf=F!Skl})$8%8OPQHi^H4JT9vEf!pUi1DaXk68k zp(G-%D*$$#x@p{h;dHt(zpbb^G3*#g6RLE>X$kE9PRNCl=x$o^*vr&x)XD-aOB8PT z6&ZmgLUdOl-IAw6AH=MYVXv1HdP=}LBhc~=7$ur(s^qS@_YDQ2kZyb;7tyMs7d{YZ zl`!l&lo9qq-u!%(Ur-f@rFwK9bBOx$QkXIA!M6$$XF-mX;h*R<%i&PQ{o>V&J|6}& z1O;ViouJY=fFc2tYt6T3amfudE4Hc=M9AkJ2)(of0&#}968GoH5QQnuvIcn!Z}ZRZ z>Q@pTB}7OpO7SV(;2Z+>JnG^xJWQR^tu_ZJQZCB6z8-dv;nGkPRg@7m_8z~23RS*mMiVV(tg@Ty4fBzf+UGByjVPI#M3|HEv-6FH@6awNDJgXzZ zFV*G*_~?+T-ACs`NrkjXd#%g;##V5SY+K0kF*~)V=kV#*}uJ7rc=K(Xj{9!>*v1b`&CvAAoJD zHLj^BR@7QLwc4JF1OZI2B&ER^=QrWsf_tFG%Wjh!R2vaGz8x+4_9VO96Bdq#Vpfa3 z>Yw|PXYvJPo4H434OwDV;VKh21stgM!R6~45FKW)T03AduK&{9Yi|?!SY9%Kx7l(a z6<1>8PJ#^Na|`W&)hWo+PB1wp+@AH&_FrP{ja@)AAjlNBj}Lhuhkj_iP2YgLPLCrlT?bO6sq587wot*81?`Q z>4$8)fON3fQJSMqKKLS<^M1iy*}^B15N37K`;%$V9dLT7k|*a$^Q6W)jMIN5ta~pz ztie@e1}tlg?0mQ|>@GEeArdG0CszdJ5JJKVzqRbrp>9*+SKbM4)mUb)H8wa~2g(Pk zl8jR=dLq!;&tX?ysw*}YH_q?Ubt%YKbdd*yfW|eDLMv>3F~()!+8a+CKk9@43|eIb zl46=y;zhkHF20XeKGFUh=j>PJ<%tzYfk=r%^OT0FO`dJYCSnx?0Ei(oPxdqP4#feF zcNLlfKhA(oPd_mrMgpQO*L?2k_Jd=I@M~i>FGhu(aiD|qkj4e=%O^ETK445p1$Lfr zBXOAtnh6j4iYE(xCeLM+rdBc}le0qcZZ>aFuWaIzZX=ymPE|cB=SuDO%3do5F6i` ztG3_n{m8nAjXbZ{FB19C+ok`4)RdGE$9`>>J^})XYiUFe^>3VWYP%GzTu^&n;PjC- zCx2gMFJS%YZW8YTWLSQ~=`%>30%5yFj%_##%g>VOmg+=&`yzm)iYgb|xv`-hY~$H| z%;di!eV-moM1rhP9?m#;q8})XJxPNB7pqs_M?%H|QW5V!)&s8cE{?)(V0E_4Q7%9S zCwlOKcvttRW#8M8!5ZP}SdAxd;N zJ{=T`*4Q3MhVB58RGntCCIh@^3r*m7fuF&KWJ988F#&MlEvvqZ8+L+kpSPLFOU!f% zJIGY#ZG}8?J>|lNZ_E%}%oFO;+nJZAHMDM*o(uNDd%3Y^44J_54iAa9Ksw+NigI$L zTuN7vInxeUF(Fa^atfHRBrRFX8Li>&h-Qq@cOF2Jay%YpXS-&OS<6vHs~;8W+#YjK zQJUzqKN>;d@+Kl*FGCC+VVQz5?%xhsUoTx8;W3$oj%28;2=b+gu}@}J>-nIhoro}6 znk$vkTugygg9uJkoy>qIlUjy<=iJ}^%3Fzqa7;zE-VTDR>6xInbcK%SpdEqfGU`g|MfxmND*MzhCQw27tgS?r^B$OPBtV< zLA$k%XvhUvt0!%%nYRrE5OmrFyg%P)bM{e&e7V;g2G=;@=m+RC@9Vcok7;S}Z=dM; z9d$e(Tt?z*B3W1v!QO?3GL!yFz}lb^d-*= zp~Ixx%d5Yz2{fd{W;gSRQ`xFuXY%&ry64MBfY#Q~CKa$Oa>jCZQXSwrnxJCJlS@$X zm*>|_z$4WDGc&6eb{(hlozzb3PZu>)p_%Y$HmrdaZ8`n*{PjB|2;O##o{DWE`KR-t zspwRxIcD|kLdWC_V5~bEsN)L%W0PK4Iz#P3cmvfiHCZ(N_?=d@wb{clcQQc#29O;e zHAbY&KSlb~iqP*2g{|IR$bRJ90`^2=peo)w8kVoVB(U2bYU4hp@%Zhq_#6t6Rdb^C zrQl2h7s0Bu7ow1NnW!)Jav9QCp|x~A(buamb???YV60}3D)c=rm2F>G{M%7=`4WDp zrbmt7?{rokO`=QP%02)oUp^BJ2IE*qs2fq9&dSXdzsFSzM(^)pvC)h9+!{%7w7wr{ zy(GGr_M)9GFDb0yy7be}3)itp$SQb_5@8J_#}FUllVjqAxfI%4oBhShANF&fAW*3( zB3tk!kd+6ta%h(B3|Hfnr&zezo- zt~?_7D-xA!bTj)3&DEqz{3C2Q$vMZKxB7JhXM#Q+kohW!)0Jyd2lf)>FGb7o;qysI zbAI9BPy|a-uU4VBLA*w#GNFvh{SbbQ)hrxEUZp7%GWg~jk;wg*{U?>G(&7h0jpBLz za5G)VDEv@Nr?V%kp)UNt2&d7uN7PL2q_H)yLD&dYSKgf+wO6Y{$gR?4jLpJYi8M)1 zbydp{De?T_R8s)VD^7oY#F_F4Hb#wn`f-XUfe4a)L`~w4>*w=p1p_EWWxIygkAil= zr2s3?Qvfv7D%b$UbHe;kgy;@$XR&n z1Qhlt(0@h4o2w|4XtGUuuPi1{m6ZcP0x7(lvJ!xI#GIDES@HsfTC-(A+&~7X%bqiw4V&pF@bpCm@&If z@HGJ0ftc-nDd0>!YeAA!JQRyjZx0B7+(id0%bc1F!&FS_bW6N(x z96r}Wc;4WlqwzF1bYnqpqrI}14=oxXnLg4v0Y1K!8JDIa`f2X7T4o^r*Wyw|{c$Ia zXngj+wujENV1Jg=OphIqM_EAW`E!@)Px3hyVRe9h&9AmDYUg$!NMV|~TwGI7>`t-_ zgDYqrff*Si--KqAG01DK`W( zstOLD7)Mv01Hs4vRJ&CgH{*`3I^!ughFC5Y2Pi_vK?2Jz9jd4fCAiq|$RgABeWqgui*7SO+MN$uQ1G{C)Gw0Hzm6jo|gMS4L zn_6j~+ZlQ1l^Ijt#6SqsRPCBRUWQ(9`S1aH^4Vm+v)aF7=d$t*uD9pkYX;BU26~H% z9gi2zWrh6sb-XI5sUNx=SX1~2EysVPU)YmE6GSRJgPh~%N_k1uJyuGvq1nLtAs~Ky ziCWP-x7&=}$Ge_8hWcK2y~5Ltlvvw&x%I~c)XQ&I`YG1E$cW6IFh5(Kf2a&fa=+1* zk6tMxj2H`%zCwj6pvrMnN2n?YfSOI6=5M9y796=U;G9gFM}fUTc;W7LJ-dt6SB}wh zU?D{XBzXyS%Pov;7@);aG$}`zrTLf@mV!C!0!^O zK5B47lUyJo?+`E-^v%Z3kz~)w!`r_-NNKdsQw42ck4x0D+7FKlcR9CL0v|-DW6r0$L!gX?QY5Y*R&)r(_hLI&zN^PZRF{b&71aH(aX*QXsm=fAn0yLGWzNtWE zIQu%&Sr<&MR}trbll)NT&M}q>SfblVY#H=LH7nbtxlB&E_i{z=WjREZQ14FGPw`qS z8n;$ksj4I+h}Kt@C^3$1{ejD~T4ull82(GcO3ZrV~e2tb0Kt&Wg?@fa)(JS(MhtAgb7FuRGFaztU7 zgL;SR=3X0W;UzW1G=NwFL>rpxw{T^L)FS|qo&$Q4bEi>1C2s;^2JQy2w?`A2ZYTR3 z4fL<&{+MClRVafi==0>|RRJmBxv%{)1meWdTMepv8V3F~OgUw+Uemisl;{+QG)Gee zQvaA86UnB^;h_8^VZ=0TW}VyXhV@hv-A&cj^n~rT=6j{#)N|^#`9hP)L-|KN87R_7 zLj&gOLn@T3=pl+GbD)?|kS&a&p_r2Qp!B!9)TVvvmf0}@oUY{<+=5&`qX39A!2Wt# z^`z$IX^^JMF}aU-Du{*g0zBpUw3$DHc_(gP6P$cHa0JZ4e=j(dXE(_i%zAyJVt9(@ z1Zg=9NM=7zxp^iJGk5q9kF0Hd>Kd4xum|`QWb_F_H5p)u28a(n1+SVKvu;`*TEFW_ zl|%Kve$^~T)l0!`a9Z<}EjvPZxQ8h>J@I5zTq#7V6 z#_VB}S@AUwB*~1%HeP{qpyyASU#sjG`r|-{6v3Nru->aeG#;MG_z3|-w8!q=xfl57 z*&T6{!8vP-ed`Km3oJ%Zf~oonscIN?SC|d{wN%k{pjeBu(InEfcP8JM(T5vs6&iZp z25E|;?dI-3E|`OeQ)$c!vlm!|5iY`II()gXEMxlq%e+t*AHMAUPwO^gL)t z&?*BkW>lR%^itr8F0>2bhekb+W)y43(X<=rYDByyOY+5^nX`gfNCy3dJYYt2F#}-6 z>`XlrNT*ZPm_$8^>$gY{H~c*A22!>HyLO^y2lq$O3IHJvB>j0D?mJMBLJZ8CHkvdi z&;cT;_Rk5lMz1I=2(&a^7v{kK98Wij&q2R~Ssu`kNEmUE7Qg^k{HAey^=4!$G!7&J z(J-4*eI zEySm_ZxX*hhgIA-h>3V|i5sE`BCI-_#7@-4xjrEI`h^ zkUGvsaep;_!eWe@fpHP1DM(B~H1&FR3ByVM8QeDOOS+PG2Y1ibB?}!0{<{cZU=Q$a z_r_gDz+*=LVR?W;Q2KYR;6m|nvM_y-ra*u^rZfm{;kYMt@TKV2hiJRbcI4~zF(4qiTB#|3G zHjE_QWv;&!rkM7=n?{nwrG5Ox4TtuskBQc0=v`NHoi{d4J$9K6Rl;*d?*y530+(`>H9aAvI2F)* z(e~Iqo*ue_9jBn|)8hKwsbn7=jTC#%l^yug+@dCR!y<`T26M@McWRW^C~JsI>F(e&+-A%~Z@c&wBCz z4UnX}$(>u9;DgN$%H~V%E$YZ7m<=;*NdB3m;iCei`H?xDlC)wnU`LJ%-b`EA%BkPX zcHF$OK#q5BPEq=p`<$#yKc4A+p7DiD*AvD`5<>BGl3-R;|7LT=v*sZI-J`GscpZI?%EC*0k>YZ7|*);9A; zXyp;){}JZB0a0M!{}SdGH`6-*N0`4o_ThiS@*HQLgUoYOd5$^HLFPG_yf#4?tF6k> z=3Az>007`<^J+Me!KH6kJJ#IDxYChtl#31*{s)|YB`7V2mc?+K`HV}>988|2cH zFSy&DL^*LX2`Lq_)JZXYN%alj1`q26~AuzWZl#{hv!2S}lc)>}>7m%sfp|eS{KsiFv)GW1^t` z;)9v7l6u?w&wg+K`RBv=8_!#(i|T@mMbc}%?vA#f@(x~4%uB4!9-n)$@#&|q$5vL$ zc=3Y=H@Z^YWaK&~7c*`%270~gJ>64^Q4J$wx%FBZ^`%#hVZX>3z?P`y-uC$BP>48D0D9nI*No6LoFc z&xS8wscjJPSYGcPfcbCvrrap*yxlZCtmMAT6Y%fg*}$&;V1(!52WBm!=>bF6n$dng ztE=hNyA?@?t-uk1dkd;DzzeHggZ!E}x= zUr`FCnrERj0)##Dsz!6s=9$tq?Hla$5T)mX#d7a0Ga}@A`}MRwSQhAA-d-7>T{SuVwpAq8VIRnFD}+*(Rjw~cFTZ`u~gJCiI5W(t2%{yCklY3MFv*M%Ky4H>A9v)pf3 z&Q=Ytvggrlu}g{?E_*#uf*tahZ@Q4BKNrvvac`yJoco>SJB1mgEtkpa)4IV&G87Yv zwu0ZjV8t&t!?^*8Oxt1W-I$Gm zeN=BhclC#q60aSzelW1>jC|KcoutBV->W-B!qF9jq;n`4-!8yB(`Te$qOx+zzXiss zts_KfI91Oq0!61KhCs77jk{@=eI?&x@fO^l1Ul`xzZAX{xgs8nlyEx66tc6Q1X0VS zGJM4N5|3d!-|_^_!@|O&mtGRbLwQ~WjZVbg<#t^cA)||w$c3ycGHucbM_gvYn4|s zjrU74|Fv=b!l^+mvU}LIC@j`@{Cxn$?jq*B#1r21Il+shd3BscR8JAkLrCZUi!g7k z@tq^gU-&-nd0u88>=XO>`%9m!sGBwkQ!@b!a{kP;Aem2O@4b1mkl;)7{M`s?peKIV=m-$c5+`GHUUdM9{8zi92(W-^b$ z!G~JAoY;3+d)Hkq+}4-<;h4z3pJ3K_^g-;KpeV5}elQe`|H}R;%ibB_zxW3a;*DbO zB7})-aZQV3k9jJS)(7B==kNXZLyC9x@lW-nV|`}pC8wzPw>3}94nCCdQ+XlOoxi`o zPPEc_4_-a_`+Ju^<=TIu?6UxfL<39iP(ccGa0bx#g9bp~B%=@9S&Y{bU+H2{S$H~v zy1}IoKXLgDh^1`IAIF9%+52;YR%v{30I(ER$@{|EI4m*RPJB zHNrw7&8OP*uk|oO7Mc&Xujjqhed?RrZsPIo+5>Jz`rXKx*hQ?L za@J@+B-;sn&gad(ZJe2SuRzYS6q_$_(d10RX@PhPhUT-;zHe<8uYC`!mE++$q>K3M zUV}z%$fuKOrdN-FxNs^WPtLPLgTEC#NhYiGEcNqewq;KnDyr2y09|g{DbiSBtB3S} zTqbcC<4@-_|55ErFqth$esos5CZ0($nW{uVxA0)Xb?}e5JP_}yF@k7=PJ6+at*zHF zmavsc+AVN=kKRoabG+Wm0z!u=TFe1fooqmU}|+k62yCrRGuF6JNHQ4cm7UaXgSFc_5d zs|@%P(Vm4n5@8|qu)isDHXgRfrV0ER5YuIWwrgut`_#-!f8-B!`!pVnxAEWeT7Afu za!)&J@wBPrY)gyIYB+3*uv2#W+Wxc8CxqB%G(>ermU!R8>m(he4No5?OuUcef#o|+ z7T-%;DDpSvSvNU2-aXLda5n9o$B>O^-W09ktO-}yx{X!a(6fD6flCv3Sn-WG(uUl% zE1PrcsxjHYyldibnte{*p|oTE`$ovH5BmA5?Y?rv=ADuX-%pu8$3O4w0l~H|<}Uhq z=AQ!nlD8vCsaYwd=HW^=;Hnr2nH_51GFu`z>4oh64e2pYnHZ7scFGAWz zlpnr`{d(Q}=EH>j?$kBOQ*k`bQ_@%O@YhJZH1;!EKw(*#6V}ih2a(ryLQUP*yZ`>|`*!Q=HSFehv*_1@E1CCp?dJEd z`e#2|gR{UQ2ik7to`7}S8@4P?M@k4A_3++avGrT|w{21;&AA8Y6ZZJS)zgw=6<_Z6 z?aoGs@SGhRc)OpdoYn(9z99On9;_y*4T;56wFW(wBBbrHq`W_9bVV2 zF5TLy&Q3Bty5qbzw9PJID15yjU@z7$^}(g@I+pr6E^hnQ-$wC!Vy11PXG%mVIv$sA zq?`IgIe`gO80A7;*9GtQp!uJH?Lkoq^-()@&Il)W5l=hmmnQq)qqI|fd+Or8q+d!t zX>P3@B4`0EnhQ^UPuJ=?JMz*HJZ)pz4c) z?k@Q9x&?idw=bPbNguhiWf_t$%19MEI|Bvh-#!y0nnZ&7q|aMA9e%ewd~YbTfA++f zQT?2eA>vAXmsO~qHP3OzdAmDv<0q|a zB<{Y7pT_2;@0RvY9>jjxyxQjxfOO;d=7!j~nCben%mWALx3jwL$`>A|%6aA&wSss2IniZz4sow5tuLMd3gF zEC_b9QPLw*-`iWv10VHtKW*83(F?q(_V)_K6prO^IO* znGWe?7{p%qu@$UWpF8u;%y*b-D(cQ#i~)#*mKG?&zdvYhDHhj? zvbsm&w9mOm-pF%P3X#46G}Qw#`lY2}MeN~ghn=N^gzQ3cAmqTP=0h;)qixwdRkS3_F*t*Iy{aax|)p)qddpyLctf?WuPVXi~ zF|l3Dg4-fs9Pa5(E|+c!b?C{_Ru0r88>QooM0G055v0N7%3ofg`CJKHrN*a3BTbO! zwquwLvF3@{S-HVx5w(x{#Vt()`3AJ0u?}0W=wLS3;U_|~uHc3y!EBbBn!QIur z^x+4k7k-zLmM+6<&qtleut{*Gab@~)ePiv2#WZlym*3-$BCmZ@3`r9YX?tHH^R$-! zKJS%wQfeb-I-h*D0pd?K8p^nE=4qv$L5ZFf3`(JX!nchcK! zKRT@gulOU#t|?S@8Q6@Emp7;;s#OYnPc3Lja*KA$*bdfgOqR1us1+j=+gwc=xiTA{ za`U^rK?tZ#|Jv!8n{>~!O5OFNzwxk+@XnC(+U+W?R&K{%Sx!rgPvZ=cc}s{^;M4OL z&UMrs5YjGwxNwUc%gnrz0lylWYLbyg?A38-@VL5lzwv1klRGLU+}jc!74S~K<)}d^ zO6T(FP6t4=LS@@>E!1Z$`hs_++lMkvi$nce0oIgT&D~h0C4*_D673Pk=ypf(4yE*o z#dDELI!m)8KN=_Lw1CgFy!@S)0y7diOsziK-Fp5f{d;$j`*5YozU@st;O|%(6+zn# zs_AKnOww_vA)pkcnz#$^NjEZW<}YG5+r8~vXS|#ENViTTww4#)f>>ui-bxKqx{FnF zT(>aW(5^AobC%4?MD*5N+>X5%(y0c|%8zBV)nyKOm*}N5_MPV(zPfK8+Vax0)UZ6* zo80xbEabC9MOaLJSfcI8g&0JAnuWTvLY?ET?E{0dj%f8p#C%7JN7?1xn@Hgp=^m!( zlF7PQ%M5oZ?p0xy)P;YoyB>vg$t4tx1~yD^YKCiamE)5QJlnQiJE&1%(sqq|8?hGK z9o?Q+Wz!pjSvlwenvF3HZpatpsWG)~5VwT}6 zUv6IY$}24~wfcKI9~y9ymY3GF<(r8O>DCQ?TN4UU;p9~_W=0^VlJHa-fIQcN z=1y~qH}#DxCGB536K8s7#{2c#s~=tm&X;p6eSM;Z`Q?L+fv*&L1TDDrFOK&DLif{C(|a z4W-WmzEj9mkp9iVu-9ipi*F$eU-qf@Xlxm_ggaFRR}SB};Q8I@p_==~Y}?LcVf@fy z_50_Kv3|0l0~Y5-bbM?SWCne%3@#3iM+D7QG%pxA7=8K0xFGZLXb5UxyhLpFz!kor71rkXPD1ULVu_w3v6L+kh8+_MoatGbCJYZ%IM&W=2`n2j2@okTx1%62sFF-6pna4iU4ezhvpX? z!mUFiHqEwpd->k9z5c!^Wr7mVv2*@x?D4p8*Y+*Oe(~P^D-D@9Ng~aEdCj@)S<}tq zzgkA*Ql~^$iTo>cy@;3_N^|<0oeybxyu{Pk@zLbyvcCJu$)Semt>@a%x1W+w_8->@ z6TGz?AQJ4TW>M*Iak|08@>6PZM+h*aQ5!U2R6_~Hr}h$^k(tS z)P=qV-c{l2rY+$wzdXDgq5MoUg?;V%*z3W7?ITy6WwyGX&*%D%FmlST9Es#ceO1ey zlF|9c&imnp$w%1X&Drt0pJcsvpl?6kis*k~ylnDyhkP}u*`89fVJagG0&gYZk3?xH zusSY`eO}qDo}YB>^ZNa!in|$DjGni!-bLFl(%;NzM2x(`w( zi@NlK2OaDyP_8}4TT4&xFZBgu&z+qspFet5UH@CNKhBNG{@3Vy<-@Tnoy@j;F2&Ny z+wU&jFJ-@I3yR2u?C3;@dcAwREF;qR7``ZR-W27wp{)I)=U*i4`re7fb%gue`LP*D zSCG2(*TH|ElmbZ{m>pug|KY9Suygae>_wU;L41d2jK@trYef9Ib4M@k((=Zb?}vw9 zR4%Ni{yl)v0bknGn#*21$M+zM-8H4}WoF;LrF_rfz#@cXC^k)uScgP@1%M^NG>GSd zAtE#;S9$>+kWDKNp!MG6BZC2(<<)_B8B?&v#FRHEUj-ewKf&mV10jRKgGhWA4Wtv> zAXxyAqCp5O4#sf6+f>7kDM+DmsE}g&VsU&8smrYXWM68r7M2+YHuEf%rHLs^_wFTxy&ssPa9wty$a@ByArlIj>5J$yN1?+;7s~jDu>tBK$>W``VO} z@5uGdJFtAqNO!>dX6aYQi(o-oL5H6h~tRl|iSF zzLyDQ7e;@ER15)phJ|ZZ8cil?TzaC^>kJY!Uuni^iFO&7g6n8=HZ`frz4}=eJsute z`hHlOYX*QAy`@O{cS`AwOcb{b?Nl>%pCLOWw}`5PDolhJpid5t+}-;#k1pF(7q8L! zSgVbc+Q+N4l=n?Ypj zrqtheJD@d&vdLu~^odryCHvbM`KD8KJ!&+KAHsnWz0irSCf;+4yM3805_0{Je5otR zhI|i^H9wZ7F|`xP!g7>`5Z4qvg1skJM$&U6QJxc}fmQ;#ldZ{DkCYi_1a52B0Z+WR zIZQ;^%(3@(Q^hyI9YT zNe84UAk+(tVVB8;BT%c+<#_^ooy*}lwM(7yTW6fQl{gO!`5)eh-0UlsNU-_h>~v+z z|JwY_mwJ;Qn3^cPdwi72&K*xK4#cN^xun$a0I502M+v&)r?V6(NRTTC+Q^c`xkp8|5V zmTf3E>|U@AKegLoqa>>wTR$NhJF}{OxZJ%RYhJV*m-jO9TjRAA72)fcy!+Q}KM=Gv z%>%l_HG^t=^uCq6+Gw#8nxh!uL+a8O%kfX2)S%6Y%hcG~@<-1LIK{v(;{RLx(TTk! z8AAV5?6J$%^XHqg)L;Agsa|zuO}C`na`DC2neTWhSz#~i6jG{h#kG^MFm z>v6iIqFvoeep8zotUM}7c=8_dzg#k(kGy+yQpO`{n?ffOtE$jd5?P+pKBnB*1gezy5NW1Q0r;PgTCwrd+Vnd)m6JOgM&Imx>+AE(U5u(7ep zTv8b!LwWGC-<~Uu85y8(%jCjmr??*~7yh^4CDZKEJ`ku@Dk)g;2;)!5oQaXs6HhN| zb`P5!Q!rg&0~o zDDaD1pKkiKq|ZJ9b(}{umsd_TAPxx>9D*8O6GJls_WVqC*^6%~3#s#UxgxLQjgv8wGm)w(Bpu zRc^y`D?x0s&cNAU*3KqM${`*AV(lOg*7U|g z6o^+F)`!~?Mra?1b^YP9LVG)UBBd95TD&|8t_0Wz1>QeJ9(O>3Uzhv2=r$T3IvW_p zJcNw#cTDUW%QKUaUP1gGnaQW}>*iZ5i4#I!={6v6(r35%RW+QXzwq1kPju_D=!I;H}#1 z7g2(l%E4LG?R#gV`Rd|uJVYb!wM_nBJ5QAnX{f`h!RxkMIojpCwxt7SLfD^Ifyp(o zDLCB)jab$9eZH`71?yp%J{@_YBW#akKA1Z8jv{Ww7rvs{{`SADGatzR7u@qgQ@gU6 zt2m&(>WP8P+ulGMa8LtV$AjkyJ8z7UPn_d|UOncXs@S}`%Y6r8qx9O6b?7;MHi3Is z{^QzKjeqvn<^0)@5CgtY^+4qD%1B$`iWeGNkH1&Dnhvy*9;A;J%Ux-;3`$&U9PG6A~mG1sCw=Bs**TL;3-Q; zNhd(u{La5e1VG`uitw=3yVIK;H?@|2<^&?3>B^e3*K&_Zy0eQSpU5=}7G;R%UC*Q1 zKWS;>C5h{1^k~AIL2&>ubGGC4CviVBp(D|oKztiBqf&L4W1CtVd;^60&CGKxU$Z4r zK-_=Odh8(j`~T|Ke&#JY=dnG*D%Iih!k*>)OnlVL{*b6VCr-xv!e@M{d9bAiVrcJ= zFmXI5N{%VmxMEmxm;|}PZiw{S^}J!OQmL=W`q4UsBf%L_PtQ*8@QOsUZNf3$9H{$lRr0FEVTr6q9A<<%urSGGHXL zx~VK{>clw-u%HDG{8!>1W>@$#Zn?rd+wH`k%#=uo_QNK2r^O!5`Oev&2Hz4m_O&0e zTV(KYAu}T~^lUXkrc>uewC$o#*LswXf610`Z14)8;rjLym&gl2t;&ypq{@nf&!OG&R=1 z`x_O%n*gcl-oRgFKszrcA!U|`e$q|L6Gw^NOn>yuz(QN|a67t>_O%Cf0DApj=N{V7 zO;|`sJ2#;Fg+NWCr~c{0D7EAaxq`X;Tap5YM1w{xS;VnH{YNLFW%BgC3J6@*Zj7LC zU(6GhOyK1~U=X@|pE8vt;++Fir0Ph9`G{1Dj+Z|{JAhDtd7Gt&P{bde|HQkD6bgX| z`i)V-dgRb?vH07qWmz?8YHdTl4w>*1 zce^IzrndFl!GtFI0F)~|ySocJ^ur~$+?7kOIkl1Z{&k&%it8AxHhVpdx8-x~&a~lV zLe&e5o;XPC>Am}n@d;h6ne#R@WLHXgJ-btv`m8hM(2{51=|wV-4mqY_HONa_Z5`&; zY9p671NI5wt;*-KkH5WG@&}ogCyBnV5iN0jMCy7!yJpQFgRGGnU9gN4>QNiv>x@~_1ht*_>m(9hC*HBgi|ihwJr}0`7wXe*#G_4 zAt*UGK)%_UgVkWY85xuDa)QUd zu#yKk;)Tq<^yx*jLZLpW%70Vs>QO*H-Wo)3o$L(W`}g z$^tOS{aUX&&>}M(vVPN|R@m@g3`fT=@lQ!Ikw8K`*~N6wj(6%O zS9VDbW21-tSE93)LDX<>_1p;Ulg`c%p7)qVsq@VITH-t59Ojii#hoc$Bij||^q;^< z!H22Ozozn_aueQ)7)bJGsh`o?bjsJV%tz%o2wS ze|NQpP^Lp1etEHfo3Y!z{6wkPXu!=%fZe`+)a)I1E-seC!!%jrZ>s}eHm@o&(DL;s zL*${pqVX&w-*wH82RR=R`f+2!r0ZGiix#Q@_6ao> z;AkXGk_1j&&fN{Kv^lzY`>dY?P5_*JZ%-g5n07;!xM zwM%hvH|}iy@36}52%i7!?1L+gM=XxENS?wMV;epr4K8D)J`FevE$WXMp3t;|*(|DW zW{O|w;W?IL66>(oX4g1pdDnra{369{$1cS!zUHRm-%-+&tCcUQ&Pl}Ay#6Nf1=FWX z;!pVt8@kLlgv=AJnw={<6BX%7&6+>F|Gc4|q_P-Na7%D@P5W870(n}KJgzu7$2+bD z$gPgPk}evZy0!51L>uER4_L}IwrBRd@XIQ0V$zw;_lt8Fmqo=?0&-qp+B{r- zfuZyEA=Tmg;zSOxkl1d(^Y_9pSA_3`^`PXtslW1i31?%Uzj*%8N{G)~e>1h@27T~o z5`NzbUUo_>yK6wZrjaJex%7^vM$lFt{_c=I3M2h+P%%AWo4l5}aV~yS*9xPM@p@$G ziq1P22hwfRDDbb@UBP-cu7rNG5u-%xBQ6uEk<)5AJ^g=CN(Jv@|5%O#5$h{TyUj@bE1Gkyg zv+>{L11x;3)Pg_w z=&^ji%(%HcsQfY+|2gZutwgYps6h=^(4UN1FH0;~K5}8;r8nv~th`I7`7g}Y;;gHf zh3zkkx5zFx_Y=0uCu|Q@W&I z*aF6ZP>St)AOHTiz1tsVtooL9HjUhQi@snR%CmI){ndWdbwDCs3SBRl2DTQ~QEboH zpNAi{d2a67&5;jl^b-vXJ5ruZEH>_}go_38!TrZ9FPWY5w@le1c6?c!UxE~?9UpsO zoA{_|et}cq3cx04qID=?nZtP1bA4TOSb-uq}L>w@YwT^hp`p*#$>Lxjo5L z;5*-y`la$9gdsO~`}VB-X_=QACEa+5rOhY3hCl$P%v1i?aQz-(iiP+02Zm{!`WwCZ*hIWJLE~* z!a7{#4a{x%kd;PrH}K`M}J=*h-$w&s^?1zgC%7qm23CrFB=+e!7C138zHx z!{b9;9WjGRUO|Vq*WXkIZ;=xhU3Wv+-h1Q*1$g#dm2nFDmii;7-^=>^0{4JqaV3E- zGT|;t)CBr8xK3rg@cMcwHIxl4Gp0MY3@=D+HP-*!6K;QXSzp{m$%-u=? zIiq$W@WlIPCcY+G-o9mK);}w9Y>OxSy`VJ40G@i`$nq;bE?G4VO)UUlk@Ld9R@g|9vT-aP+!t7vRlm5)D;ocz)= zLp`!kfQ$_OF8K$9&;tPBcx(xtCcp+VL{RrhN61A9x$1a;28JT!ID`keNYP0EmKP^G z2{Dz$i8o|(+oE#gLy0=Fv}K=OX?f7%_Vp}jI8?3?6006_`8mwFvosKo<7M>$A(G6Uz{#(l@8y2Dw$5Fi_ zhuBi{T$mx4LTo9E8sO)__eF%NnBJ3DQNAt6H8OfnD0HdblqcHkfk5;>VN;$><2k+* z{%;eXGV4G})k^zf%%@JE(@{JhwVp&cKlVN3=lvr<>wS8&t#j}{osfZT7#g=0JW=v3 z0p_7M9;_E;(vPtDy*6b3)iO_G;76d$d0}uHz?8zn@Eq{u(`(78}rr(LX5M$&OV`$ zZv5%>srP2(L2)2{=bz5+?bZ9}Bw?<>u(QI6_#PqqM`sRtc|h>TOVSV>6&j9;IE+e= z=7{854jFX8(Kz^oe&o3Neg5WTc=?tL*M-~b>u*5duE)~UDBXi%vNHCd+YnctH+fz2 zc_m2!>eZ5OzL(+8uBVf^ckZqx zi-soI8cPPnZKmnpB1pp3EF`F~(7r7>SZJ_yVL@Gr9kTy7L^Z0#< zlpi!E;FGP_qvdK1iU9INgQ1Rfz*L&T>+(w=3SWAHP%@QlZdeQ~?@v2k$!x52urtkM zV~?Q5Badba!8>Y2tVEm#(2SgyG#owY=;FQ+9(o}qmT);V{9~x;@f)XBE=XU}NWYJH z99w$sdPQHlegYqG*@PvLdcP#~5+U|S%?`!MPyf;rTff%$&{!c4^~2RYDK#LpYc{6W zJ+acKMa$l>7t+9@!;8W}Jn_p=M~42fIGeKaWK@}q-1 z_gP>8DiiBWRrYGD193U`D(yDWRTkahgb*5!GCuC)AecuwgozO*fl%?ZQ(*`W$EX4Q zL>MdD&2$O5+MAvrEa@^7mfCXPKJNpf)+@q&a-jW((k1V^wi33qm*aQ!@EvV6>1hJX$ioi+6Cp7vsz@lgF-bBr(V24|P>ytVBGyb@KJ$1QzWrI~_a7 zFyawp0irfEki#>oV^q~BYV@-PRS+$z4{zxh-NcVvj3;y8t3CUI@O&E-*Em?NZla0! zv7roazwnIYxdAm*q-!N>m1i=2O*RP|Ekp~6y_IUmp0rO>2povwDWZX5s(VGWq~dhE zNLYaluyhe3>CIb7zliVnhYs zlMjP$WOk$>4OhZ|MlC|+I?#NuX;hY&3A2%_PM zT0iq{%x(ynhe!ph+4M}uF(G&+3-KQmGH(Gmo!ffke^mp7He>)O zEQn9*z6*F&M{tV0>5jwXIjW3IyB}vokI=01moLqmcEf~^LxZ+~J}v^h0d9GoZ_4?n zkp>6dkhFbq+;}dOjmat{;K))D%%~%F2rpX4liMN$I@JvbJnx{vElA*7qWV~a5C-DF z$rdufXppk}kiRx3zk2AE+!*ZdfBdW&+5e>VbNQM3_jvEk3EmNi8C1OlGOrXBX@>e{ z&G1_iwOhllW|t##WL9M8oT&Zy@KMyCfa&=KZ;<<9L9pE$oi*uBQ{H)jiP z7k2`^Wux6P6aO<`yD|dh;}n(5UXB(_Y^%cmu3L~OvK$V%T596Yj3QichdZ(iMQK!| zBa`%0rurcyHNIb=lU!meQdr3f-?9XRwI+v`huJDDYw}74bZn+Z2hO)XN*LtiLA~fvDD{cA z0)}vTOejv${e$hU8j?4JR#Y-d6O3O56E_~h$#jV5b`}&X4Z;j!_GdGxUJ@lEj1;>A_u`_>#*BAjm%vC-*{rxb5L@Oa!%8l6hjsztc}enFwi9WumZH z0#k}gTb<2$CMX=*ROG_{waHZbauV8r!PC-~^7Wqjg?1po&13)_u#reFh$Or;P{6&G zTKhPzz#zayu`|$|jb6-QT z7rvLwi2X8JrW~(iCZn%FD@VGI$@kQ(Ven!a_@k z;Iw;8BLnBO=5h-+UUQM4v&o;|p5JuS)K4}1!|-KTTL2|Lev%0qlY;&t=pqBK7Z^86 z+Ad)i%3ul>%tBQe#4!MtUI21qzJ7PVM+37Z2+SwYp*p0kVn8fp29~}oVp9OZ&?#M9 zYz1zJ^Mfvb-i^L?MsC8Md|ST2h@TSxFx@$#Pg#ib9#jG?D&(r3)I10KmSRuVSw+l>c}T^yPz}1fQ}kH^gt;J;vMi{=j7drD(wyAa zr1mv4=Uw!9uY&FS-=4E#Hv6Xwo38r`Sqr-kx^5SIJ6C>ORrEp0jQiURv}W&v66(q8 zchye}i~VLrP$dSb-MIQ*kqD72-APzA{Y^!Ib!2gVA0H6%F||0V}{@tgNkNmqdCBFAzDMd%u;0Yx@r~JL0+#YybpFS?Mlq}U-ob5dd zL!tCUul4qxZ(TP`rknY6OD-OE;nlfh3rX{z-|Xg;zR@J<3+9D#98dVNy4S^*Ela(v zo19Q925t9fj`hdYx(fN^m=vr)Bl6)QV8?jhGmaI$9Gp*M*Nx75TRoQc_~mXwJC=ww zqssKMu>7dX^@wMKrb}ZAI>}wt`a1s>Ff`B>oof#{J$rPmS|JwZvz4<{acRq%E<(rV zS62yAKWxLp^x^L)VLgN~* zt4MX3u;7pT-^e7_L;WpK5yBZ8G8*7(w_d0q*%)cluVMeRxewppr}EGL@;?29N+FrX zhT7!XuiEoWG znb2=mS+yA^QdL4))%*Iif;e|8?uCJGi4kV&YPwkl{12UGWCJ|BpN`3>*UrS>y!)6J z+U9T1=uQ9T!1kNO#y@A&n@X4W0+Y{yMGcv_K$kt6S}XF_1s}Q4fA>u?WPk{Hw)}vi zXA0k!gt9&5p+ zfP%qU7Khz947%l?KL|RE7Tc2KU7iJ;x@D_{ifk1I6K*auAM#8 z%?k~IMOPPb!F49cs6&x1=aMC%6Cd7WyoJ`wgD5PRuyqFnudQR z=-sz|t`{OZ)6ezJsMAN$$z2M(CGr^lw8~fx4e|zeE$@DpZpkDR)P-48CIq|Lkq=2G zO#skZE96mI6Ht7Fu!e|xH}~c2eip#^b;nF9xOhf#U+>l3rlBcA!@d`dfHn z)?XIttbgZqX->bAJy;kzsyKY!Mel4tpM$`$h__No&?6{8!sVQA)-eA8hWmp><)YNQLY!K5hbyx z|Hcx}VL`?Vn12_E#<7^|26^tcB2sFUE+@WI^{VSXkFoe!%73jp}fQm+)DM}Hpu zN=#BpV!x0Mw`SiY3vMBuaB-QCiOUM+gk?Fu?2e#ej#kqG;V{x0l$bhuGc2XQ`bSur z%D4lWdaT6ah$-AHDY*!>pdP!~Ew0h6B244JbV+S@Go?n6+ucFNw4=Ar<*NT?$R*2N zT>i4K(0w_Gx?fCTK)8eS(QfU;E)3X^L`Rv6ruZDfVl1lJH{|2RZz3?;3S#i!ei#dJ&9(Rf@ya*{L8rQ8U-1|cf|x|RN4 zt`aAU7H(J5v%SQ00a6KW;*q6vHB3}W@pQxFZN{1VZm0gbJDz`V@2C4<5o0D&@}S^A--29)0ZAvn-L)jS ze&ys0>Hhthrd%}nN8BadkmQ#E0M7KQ!vzEmZ<4^rYe@E}#84!aTaANuT-P&c!feG5IEP;m#|V5RK0{UD)<2Vny}6 zqC}k6W9EE``?DwRpr0t%_;Jf=kQ@0JuYu#QH{jBFWIP=*K|=(dBXP_?@6!~Lf4%Qt z%9;Xjpl>xkayYszQ?Sw|ciX+{yoZ{1lC;!Q{snA0->cu{@4NXdj;WmPlrz~GcW{Za zy?v1ayT0l{sjz?i?Lz>u!FMGE=KL?rRsHbmeMG>3`oIgMB-id09Q2ADK&wlfvCTO2@w^?jRMe^BQ{FMS>SM~Sq%QH_@>~EiKc(fg>!ZUT#m?lg8 z2!YC=_n!+0ijPzFqEj`p$q$pM zTy`D08m@BNm^&aXY`~1Cdsg?YQP-j7qhn5j$8Qw|pObt2_a7ol2>iI{nA3p2PV?nC zo9==gy$wO>Kek^EurrFy-o^jw-(C2=S7!(8@=p(Rt3Kmyhx~p}1MX~C%XuH_jeO4d z_Au7b7l8>~|F5&rs^e&Jg2k?ME8hCfhuy$Xx1JdL#iHCUeYhf%P;fWAIaIJaG)R|? zx@8x23l}F*es7E0b8D~pI?q*R;memf;9eMynh!IC#iT(Y;&GG+DlHZShH{CQvsfsc z83#^SXCp+PqIoj#=aHy{$qABo+QMQ1!f2j~KO6{|{xF6*1==q1&+>ugYkPJc9c?!) zL0so?YB33HU1%LDQv=j>2tvcLN8okl3SmxAz^aH90m7sU5^y*o5hCW?pn#t_!DNAf zHW3k01VAHE!EgY_ij0av^jw9RU$F^+BOy9~2G)5Wn)VXj>zBWeg=2B1&h$yIw-2GQ zVj#TMW?469mgJpkFBhI`mVo9p$GIAN8JnUm2$pkSoIJY5#X­#Y;^6yQiTLeN3y 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 ^ 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�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�tnUp6k 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Ð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

        #GR_ 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�{pQ#}+G}&XXuw35#5mbXbC@+b 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 $~)7FHB!3*txsRvf9jjSpI403q*-CWzIDr`16v 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%0AeskdHI-+Wke4++H7zgTS78qhn$6MAdHd0HBP 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

        uUJYDz$&q`^*

        IpM90x=s`)C_cM+hxmXj>Wl}LmMCFZ{% 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%0A{f8nt|DkZKfaqjaf)}`3`ilDe4 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 j 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ⅆ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%0D& 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 literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/reference/arkui-ts/figures/animationComponent2.png b/zh-cn/application-dev/reference/arkui-ts/figures/animationComponent2.png new file mode 100644 index 0000000000000000000000000000000000000000..c348c9305503698fab2f6b401450048a653e581a GIT binary patch literal 2091 zcmeH|>oc1P6vm@tOIsS&EY(t$QQd7$0?L5tr%~38D=NQMJ?VPNNqF zv#nc%in}CDl~jnd8+B<(DG@Z0mfffXsYax7v)Ru({R4KUAI_Y4&hza#bAG2NJQQZS zd;e|_2xJ-z2O>ZqgLHj;W4uE@IXw`bw{N zWx>y5K%l*xf6HJ9-Et8GGI|;e_?^v-Ulrtc@N;a3)*<%y69rCX_I-xCs^3qgN;cfK z$Fp50tgB7=*JZjy55)a_jcc3`@-F1FjFF>xw zu25tdRN2Y+H(35lBk9`-C>E+C4HZ+1l2OkpyRHON`W~k37CJg0CSwb{A2;?tsjn6A zMmaFF&&MvQMD=@=6T;Df_(&EmRLGgQNR0NliNYnz7av%#CfN^Z@(D2d)G%(#${Dgc zNI~l|D=f)N!*tc_LDh?6p`4wj&LxEGp*f1;u4wwm%{QDRscXs9V9H$OUbE8T89JlC zkB$ZN-G@<%X-5Xlw*RHm&eH&NVJK{hgzJ_cV6@TJ`s;~CS98-SJ&i#nNU%`{o2BAr zE{$*cbZxFRrbO^3dS(El*$K_qDFp^rn;(ON-4) zU1s`wyM0C68}7)nL`Va*CgJ{QD_si-Igw6N+o4EDmd}Y180n)t_g}7JJQClHieWC$ zc5UgmxyWcAb%dAegCe+?oek^b7V9xmkh1|nU0SHQi%(=BZ> zO+6KXkk+<&9YgIk+PH9et1m{EDCadNq}#1koTT{9Mz=$F?n>URo5>&9D zY=wgTji6ym5s}^xdvuT5uc|V;B@2op0oEH=eyLN|EG70Y_v0n;&?&sWD`;(Z`w?L?)8loB~tX&wSF6W69<+{ma~+ZhTwl$?vt z%G0I>{y>cFRVgz`q6AWmsIN?2{zsR%fQJhm+ZVyM9PQ|A?s9dkvibmBh-K5fuFY`K zf`#+$IsV!!FjtZ*Yl|}f;S4KTTo_vGNq4E8G-1z891ZU74}Y~Ois(tivNDjJo~q`; zX|8sx($5;w)Q?9LTujR!)^EjjopE2Pl1(RXr-E^$OeomFh>jC10FfvM~JwBgeXRUhU<{UuVzbEB{vIvcMV6Q(o;bTmp{A(d67WtAZ zPQDedqzKA0Hd@48RU?bl&VQr5*}l1Hth@-d6B7WKEAQ#z#VQ7C=IYNArIGWc^XGUQ zyK>gif;3=rH2?(Pr*!QBE39tiI4E|>3ry$`*5 z^;GxNsXnLnKGu<{$}*T}q-ZcOFqm?(lIk!punzBs1`6E!FNxFnsqZIPS9KY2n3_N2 z2k#dM)?!LxFfjFT=+CBz@7JhKvbwG?Fj#&69k4@=Wfm|nZ^d$wVqh<$;}_dHR=HHl z@PST??Hs-{|Fu`U+S7wCT4tR646s(XD6&AQULfQzsE|%wL{cumCX_BJIS2-&*M=(u zXu{bI*oJ{0H$ftHg2Avl(e-U>Z@cxmX?Z%$@g3|u@*ASP+V$1!&~((Sy=-@;U5TR- zImPk*bFoF4kl>=53MI9#svkrSQ>R$aF^~Bu447B8i1|2wpIYZZ^WVtN&}KZ{_km9O zs_fzSdoS2bPbBBxZ*@eqXKWZGwf9rd`IPW+US~_c_iyC;1Eg!X|L-quJgsxA=zd+_ zs`_xIlq4h*5nQw*DJA%PJkZi^n@*U$vAMZ6JCV#$&T55DcG16Nb10m}((|Qm8ZdVf z#evA1`@x+`{OkF8(lXTeWeZBx z+7>IH!}~6=1|mnoYi<|KOErglUtWPQMyy~=CK z^@6`X8Z_#1qd(v=qWEo@N@s{x1$#bsdnP2;TjTMl>(2BJ7}|9{2CWsTg4zoq{wD(h zQRg*LfMKSj=562is`yt=kvKAGdm)PdjlJEo9W+NXzr?KT=|BDwVflBesT2NX>sn0XVF{Fml~j) zzWc%39b<9sb8g^k<(tBRahK7w2uw-BwT;%hv?xi(7RS~{D0}VE&3N9VoN>jVO6VFt zK8ZbEz~!0T+cbxKz%gNPG`+_mG~kA@DBv;nTIRLoy6aI_=qLL*)pOppxbdUwo9bhI zSD3Zw+gbpA&VC5>pUyA#m6p1H`nFG(p6B{5vS*e?wk00o$7lXGjcV#*r*6N1mU=&F zDVf3#Whq8KAML+23IQ+Z(2mIKhrThXDG@KF!$mK>{q&WR)vS3&k%K^ zOi%Xd3GqwY! ztd~IrOE0@=R!r*!PFptHT^{`2C(~ZX9bMRkCPg|TQ7`}A_oNVJ>wK!w-wNm&AqM<` z$UWl0+C%6y$J_5~>{qsf)z*TyowfK?QhAX#>*9dhy`r}Ts)SC*y>FXoj)3j&Up*?X z`GN~T|2R8bdEZ7i?pMQ(q>RUWC;HqdosydeJt>dQ{s__ElXY>tIKDZjyh@8EjA2vA zcDd5UNGP&^l&+G!zxP+}LCeu|CXY9TPYX#Xi`Oa?x_TxnW@ZmueeZ+cLYU??v`TQ+ z5N!0WjbEJ)*4|#3pPCb_!pMq;woFLr6x^lqEyrp0MN`GGwnQQUk7@odR4KyX2C%j~z(QJ$5bE2cqmiOwxaK6>tv5}& zMmIl`QHs!xdGK}-ac=m8EdoM$?0OzvxCCy4dg)39#?IELrk|y}0QcYT+R#>ZU@OMa z8h*E?SD)SZ^ZgGnUSsx(-(Il62iR;jl-DA@x{p6a)GTvh!YHpeyUtLOyWC}G zGF3dKm5m+j@zqweEOw!q()1wK?AaO0Qs)m0#Byh!a z#g^*6pS5@9`>*@T+WW!(XMlL`aE52x8=bjEB4;axq&40312{8Jz&dmM(fQ~7+S7_T z_5c)2FMBCN>$uCfE#K*ZOdv&#w1Jv4wO9ZO#mh(FCk#_)nf&*+N`I~MCvnvU4R*)0lBAr8L0Mn829rkG6wZe$)Qv-VO&8|#T@ zw*Ip5S$^_IVbFhUcZM(9$mx19GvmyOYkXr~_XMmC*+gZe0Xq0=QisI>S&4)tGqVx3 ztvNYN)!dy82yLUDmwtR3(?O5R5EZqq3(QCezopKWo^Ia-Jlu&V|qVdQ6C=E z&A$9k7iOlzmiZ_7vaMk8z|H3~@%OQ((UJQ< zql9iI#k|S_R(gKGC7@eYa3AdK6CrtRARj^yG95ftIHrK#%6I)(V^V-e*P2mmn z`@=?I$bT=7Ogu}=I4K&cScc({{en_H#f6d2)433sNvT~;^M>m!ji0`{ zAPaV)VZl@ru~C^uCU8p9p`)fL3qE;xx$PMo_4Imo-|GKUD#dv4wHam13*Cg*K?wDV z%#P%+&_(ORrY?BVsX0~dZ?h8>+_ofVVYy3ONSPB&+=U2geocX)MZKXs-k)d%su}xH z6xB9e?#{Pcq#QH-t>yom!L1jugn_AOrt9-9zl#oDzrHW!oSa%4l3ryT@)w2%1?81v z0G95GLl?m-Bi24_>e~*WU?hDNXYzwNrlx0DPItp{!RDRe*?+c2_MezSkvuHQr9D$| zc$btYoHkayEa=ppLIvM#%Ju+s(u>bl?aAfyA0@+k#5=Lp zf2J$BiCHY^g53q8W1tGPG+0-_jEEzuW- zMQnIrikG~@bU9N4gGa0$`t&fxgw=ytqs}(}^W)`rOL@?dcxLFcp_Gd2GQ`lM9{Ytc zgHPH!D90O{PiYEaCGZY%*K)z|3jhA1fNEUVFWy|IoDbR#k!2VOK`7zq#!P_Bkzj7v zKjEBe4=5qKrTKzDvn0%h^6NYZQKZTAeD{5mU;ZAwE9cX@ty9TNSu4+^)RQG4>%I^y z(}zA-TJ~IoO~sGWF~NrFvAs(d5*3rYF?Xfs|0XIT zMj^A2ZZr#}5zAB07r0iTMqPSkc82Z29z7I4_U(W-f>YRuL#FL#5ItZN9N8G(szBd} z`z${A4YtqRVL#>^++b-V@@U}r(y{7D@y?UZuu|lWK#E@%F1x|QK@0Mzy;`;$5RfH4 zS|?BePz*9r&0*knXoHiigc>NTMWh?VH=Dh}S$EH6gg|(L62J_!7V+}+r{cfO=0gWj zEH(-x%AA=3+`A+rHOZP_m8SudX8ll1?sFf-NNb(YrnC0Ht7p{#s+;=n=q$98r^5H0 z+l2~m+`vRt(ytddA{`klfF?oAMyObBkibp83a>l55sfk?D^+DfW3jHOGb+yGje3h_ zgRhLp11V;x4-6Ixc??{rQE#pwL#PQ_J%5hWh#r(Q%RpRrVGqGc#axgS!gsBIg83vs z$SyrmQvK3H#4E*O?`QH~420f5!ZAKbxf=D{DRMv~{8$WE^%vLS%f;YUG94=O%z?_( zg~>2gOtp&O6BkI8pDe(6y}J|O{>BT)~9h%J#D%b z-0?{iS`dw9F`OMHC5znXVR;|~qCSyBTq=PpsymUu>@#{CP|5{s_{^+Y&N=5TpIz>+ zrAjV)Kj43h591se@f;7KlipYR)@s3<*3wZY)M>tPOuFX*FB+P3%4hZRge{{fOhhv*+^JN z#Ot<4&G7M~a6#Td6j_PHxPgnjHhA!m5nbODMSnmN$=ET7DZx7=?tqkx5JPW~jw3(| zo^OGUW(Ww53d1G67ij!Df2h6A#hmYBu{FzWRw6KQ`3GLFC6; z|E$OaJF~r9hESlYw}=(9>L9xfZ<22z3Jw*^s!Z(JLcyifW`vvPsnEr!;vS+c;dC60 z2hNr|9Y}f|mr4&rG5scp#8bAgt<{9|D2Fx_?2UbmK2B6l-pK)lTKc%hX>4YokBrmP z5BXp!Cr71G%IxNHo+pht1(K$R^q>#Ew&$P9Q+mZlqxvd-X< zqY79A3kBOU3OhSF%cCHt_52^Y6R?I#Q{X!v_>%^EXkpwTR1c<+BA!wh$f5% zrC2jOIe2BDSWd{6EV zPHxx+w?}g-^=Z}LIio`vL*5{B<6y@k< z<&9kPqxj{d0?0kT@x^udas1-aP|gw3jq@9wn4X6KnxfknUb=9g=qm!9`HIV|B9YGJ zLKBK~YBZaMw1Q-9$ObG+cIoF8(6*}b>d|7r{Qw(^{{H~T&r2*uJEI#M+I z0ymIN$~OFM84%`PR3xr^21OEu2MwLP7QusxztvCE|G44D;7)1lU<5MHO1r7g+se1C z>1_wxP*ndvsqQb(-&F9+m`@0s-Qiw=j(l}|8=Rr`W*l_gRUj)bV`l;roA}H_Y za4v2Qy<~s!DNK>z1PF!hrMa1N^dfQj2N&XYgWofIXzzr%A)ZJ;%i(`zarroHu^!Ho z%ed)6(@Sa`h8stccyB!>A=+I7D-5TIZ$EYKYb!ApwFz8o9i(UO!{vGaI#ALI?1Xx$ z+8TQUuA@HPTC7#1N)a5!0>Q7Lt|>!+Kp;;b?FkFBXOa8|)!{t$1Pryv*lkiYIW`Nw zUvX&s_oBH{*Zp7EZN3x8K|{pOJJ+yvw(Q|^TIFjlI^e${;eW+gu@Q;`sks1p;CG5i z*kWR;@R1wP*!5o!%4tg2%4G47VwFJvCV8d&pqwyv(bPiqG7g51_=h34>Dh^Hre5(u zJ!Am|5RCY$cr;lIkyWFh@r1}T#Ae0Uuu%X3fs>w1pt5S!cN7NLgfQ~f_%WJ8@?1O( z8*Hp+&CjOTi9{~Uj{}9Yr=L;N#E>fjGx@g>c{lZ2!W1I^4Cl5ldHdIne7E;2)RCcC zGmj6R?Aty`8X=;>!jdtHw<k%wM%h3eC69*<}-O2`*>iGl_JmQHq7BKxSQ^P@aayf`&2KxaXB?IEC z`IlZRH42pra`{=vTZ#QZ<|vd?J$(+WxixsurpUdMI_UGDkMz~VdxX`=2P`fg_TC(- zCCBQzUf=X1w9s)a2F5=uGb=theZ4e5GZNmx zRs_PJ_&6NEPY%xz?=QR z3F~JWVudvQxjH8!$vMfC;de{wAYW0as~JkhH{Ilp~) zN;pGr(iu4FDj0i^5O<7;@vH=OMlC$%ee3y0J-WvcLeCaWY+GMcmq={-y9wzWbab$x znhkIWk*lmxD02z7HX$R#eIr;b;ddq}u}wCiVGYwRGkJ|;g`He$=FsjIpwogX>ho^i+}0<8>O8DheSUrMTf{f!NOV|ZV?iI@c{y_8JuK!~&_dj$Fg3n2q1^`uT$1-RZA^ zR_rrCe<$96JsaM1X(n6NAMlhXMIow|kLK}Q9C&p&_;7ATKF3J?f^gGyl_k8%K>ru(ycY504cMOP8o40 zJslsPt)3PU$6EU&A&;)!Sz8AS7$r+5a#0`~7G2ED-ifd~!vI&-dz6mjWi9YCu^(dY_^T*_IB z!;uaO3Q%$og3F2V83HLJISmWOD;+m3*j#68=tY&n-}0hB`_dKZeTE9+pP%#Y@lM$ z5B%CZjVi-7XPgYi{D2T?{S*!oT)(qqw`MP}MJlaS7+T&$Vt+E|lx<}=cNmlB$5t*R z^k%qiD>zrcX7n@II{FVaJ_G3$ugun^9kbVS#s-A&cNv?q+>-r}zoV_06ykz-;cyV9 z@0H|<>0Qky0Z3A1ir>eH)0gBI9q>^p1CR1=q`p-i@`~3bUn2n^uew-xU7{x(@le3_z-1i$PQ{`{;a1hLi)s?B} zMi>jOmYBP!WG0ds+^9EiR~RsqG;E)0Y}=u7A&H3C{{fwgEnW6+#S) zXkm_GFS!P!qO&WmkjA~IF9E&Rt}4ahKYL=9c}>Bac8=jX3$mvAPJ9h7;YGLB3yNMh z{a6fq3*P@CX1#%)L8lb>C+e0UOc@thmJNR;tHA%90Jsq812TJ{!`?$*3#toi1*N4x zS>mj0zQoiw&CrULq|_8qfl2l)h|4 z>dVhsrM5_0MHVa-5^RbJX56FZr$ip>Mm5ogNtP-&1WGiuB7CRBMDv-;mhvh7yXk_u z89bhk>8h23oHr)1(B391#0cl4>3u43EV-c)@jFKl`)bCvpVi)v?LBnl!-T$vt_I`1 ze99%YLYo=UoXpUHF!zL0Z9yd_=0P*6CIS_~dL>sle*|77QiUE50&DO*y{I^-PtX5X zI2u+@NbUU=mZh{Q0@jOj@3;BJ{)QQ)#B%Y7^O1Ngol)KJYaOms z7!OY0ti)`-P*u_xkiZ{NDj1HDwrmCCOn|47)E@(6rJC3XV2?tHrlCU!8wE`?oJTB% z{MD#~8F%0p^N^!MHeSckfPJoIWGvDLok znr6*jR8RnkEsCX)(298JMKK*zEbcfbq~R4MFa;9hBQl;5?o!u{8$iR<>U9=};QH&- ziJZ}wkUc{i6eCKv+GOF~B-2cUS3at>yKuoY&?O|Kd1-G>lrHCqW zAkcvnYQQhtF(J50Tk51za{@B+12n{V={G0MaurbDCxw0W&EHHD*aHBUXCwX<`GLuo zp0y|*J2z)TNfjv-N{nwJgTBP`_oVL(?1(Rx^{*>EVB>V4k6OtLl&E9Fe?(hK%u*qz zr&G>qZ)3#7cN{-Xkwm^?*n`a!ziXx+Xi=x7T~?L`Sb@N$TBc=ziN2f{o{qKgLq!}R z#*zb4OviZ5p~+F%4+f^XhM1GqNVpVdx@4eU3bx@9xy(g?c?Bu zkLC8!dorLCOSW*(=z4zSngv_NdM19&C3c4os+jLtHI^p$OED3P{Vv5UO7EVzEs;RS zh~BWY?Y^1l!#Ee7mB7>!THRM2@i|h(U_MjvU=2=D7;<(61Ws+Ft9rZ zu?NKt2+)Zi5K!0JYTfNjq0S6fQx{m!AzaggR?;tA|Q+YWufnaE*Rw6j}aHn z%I%6aO+v9weqYobj*iX*f{pZrKkFM<;Y5=p;izNQ;VmJVc%+R=x^a0)I z8-J@SZ#JSF(@awaYmhcqr=Up`Ml3H3gA1%KgBc8PB)Vw);Xpn45|`?0E1FT@QBcYj zq2k=qFR(hxKWphlB+9$>^XvokZXTfeVBAwkhWvn5bFWqi`(>YDtBM$pi=2Z7j6M-` zTfJgBi~6yfQ5!bPAj)-n1j4}L^%0PUTj>-EZYpbzr>|qSN0c;b9hUldD@GIX+3+Lm zEpT{KoAv%lydeBM&ncK6{;PJVEeM~IOgQ9ekf02W`RXagBJCPzh(nPKjtOrJgkB<_L#=NQ*Z`eF%=M_;D|lHZTWN#aRnL?2c=z|4-)TP1l#&j6a?eqOG;WvL4Z}xa5c!5~AOw~z{41RPmbeCDBta$& zcX+r)errIF-uHEqG1ScjCg=ex-ZZ?5II%eIt@zu(y__v|ZlnT)IaI09HC^;m_QnOpcZY|n`T7bd+-Qv6ZPg|N;ioWSufoHuI%B>z59OrC#q($eK6XkkYa zb1DQAXDy;AT)_;PwK9m7AM{48`+VpEYE{I31f$SvhG|(#C79j!4RaXaeo)^|G8gPL z1F7DOy72p=n(3T#0y3`b&`HBZnF~j4C}s$%A{&s+S5tiACwj{X{DYN_*KJgtM&$iW zELrg!0@dqXFe{=E1i{?s27p5y`kuuC%G*-M9|m@!mBfG6m|PdPYS3 zzpLHVF!kD_ov}QX^+>&Z%iHO@dQl<%9-M+9;X?c?6SXLOW@}Y{UV;z1Dgn2Mt+z7G zMV{dF$anCifw=k~5qF?}OX_S+tfZ9rwrS`J0T}n;Wypd6KSY+9l>$AB9N_HkHx)|X zl|HPBI*pJ$fTyo)CHo*;>T_gn$_-Dc9LD+ z1#fj34KWUzUvTNtQ-`-qoaA=`V~S zW3Ntu!(L-%{d_eY@7FQ3>p_YKq3Pze?Gs~AR??4$*tF#h2bbK_0jfDuCn8zJcx3XT&N(e= zcrf1+NIgUr5DgT33>q<=lC(s`DFuEugc~|oK8y6AdsGlXCw!G3PJEG8#aHzA1_8xx zBmhA+(Zog+O5IN&gIWZ09+n}uW|)X!OKk6uFAHSsb7~p7E`lATc#1r8Bm5$N%94h8 zUdvem!!yRk<cxqSLH1v z_id-Wc29a`-;Sf}eB^=du;~+?V}Y!0=D6d(zrI&7d}F=!_8&FnYSub^o^JQ_ZuT;( z*|@5{7XY9iq=O?w1{)AnQx5(|$N3@^^W{BGyLN2+RpjRe-ZJ<0+BtK~b zkt*t5zJSc;dQ9~yQ(&XZN2QKo z?wrd<#tP^Qom5iTB13^Df%K@+HJU2~WVa4uoG2x%KynyT>7%S)4js$}P0a|=rUK_= zz1h@vUWIU)qfqQhJH_JtmZ)XJFy;^HlR=*8xkCYA=kh~K(#`4gzgKFnQ$z2X4T zqf`3$xM9$|Kujv~D?`Cgup0=GJeW`w!xQlAM?$a6Y}s{h$AE_vj_2dafQ>u1#` z?84`!-0%t+S${)E?*iR$=vfYB%DBJ;g+~Pqbu{7p=a|4v8dOymQ@Xf|5AjCLAZ3ZZ z4LH@(0*<>ZfK1TXAGIiLm+}!f98{zLQ)LwCDg5S+z_JFoO}ua6$oWhcsTuLotvA#~q zZNnx$T%kud@`wW_;hfLFI5n7O?TdbPCbj$mz)LV&mXkcjIN<4@@yl}vM~9WStpx99 zeOHH>bl>Ib+macF!;(~d!^W0rb$bd!sHI^7m9UTiS;R)+Nbch?l>=zL{!`i)!$!Oz zXAh6BnI$3ZjOoszwH2udbwZ=NGV}zts5+z=k(dny3F6SQ$tqP}MdVPXhS$c?;0zsp zev`)}VEE4W@Dtf#<9Zls1dNmqC^SLpJPuprQ!KIcbqPGUlA4Q=d4eF;lsBzz=xp&Y z!BRi=pOnv@u`0>2ZtJqj$pvt@ASF&4!8od6c$R-mUCGB-e+%R)QT#0Fv0Q?kt zARIgQYh^i_F`BSvE3pUFIW55yCnF?MABWFpik%$=_^I}7@Pgy5!p+UEnrG$${43ok=_EGoP4uqq2uT|3Z~S!lUd%F@&!l`3)5-ex zZI+v~p6a0ZA@YQ5;DSdegDeAg{JF=;iM($nbys}9+lMobN$AVo!=Qj zG(}a0_!_D~oF77KC3DjrQr#>{7`^XiJIkU@X&PXB3<0%}qP<0-g|Q;9wcDIjC&U69 z4zE`aPKLJb6LpY;e`+6Yr~@@Te%9Zu>gZ4yeq!{^2K*r0Ty}`XZtF{oLQA~p7pE^C zU*a^ay`6BgS`kvt4>2aq0V>nsXl}72sk%hjgG}p1;FZmraMkvihOzm^c@CIZ=U#!eN$0e{lj}&G6^KFfREOct`8q zQX`;I@+J~uun8>F!A5iasvH;xADoy{);9$HOo{OF(h?%)n}MxWPaD*zou>QYG--Ql zqm%&b8EOB_>+bStvsflq5WI`&?@3On=R?z0FmOS#aqjR$_;(hOl5Y1_;JwOFTGw^s zm1^oWYU^j;j%UeF=)LrL420jr+&8NZ3+!i6IU%o62)$)TWFL2R;qQk(;RFcfbh_^S z^xw$!yYTdP^?2UDTl>~w-+U~-KsPcUQ#Nd+OYYNCbL#fdb@?mESu3rXRq>Y31D8Wc z{^e&lQMkhwvMPV@hr1jQV$32piXu9>rsV<~D ztzkW4{+0y$Z1tdYhamSG50ti1WM(|R?^Eoi-h2_2fC}~1PNZ&yIRQknJ!IYfkt!aA zbp~&%=GLD6IS6E?6+sWd3HKgl9Wx&1pJ^A(y}aK?9M4^jG?8=8!vg&A0$&933c8Q8Tci_EL&3DBkGWopLcJ-+6Nt^daH89$7 zc_Qs+EwcY#kH2cE9sU>lEPZ|TMCldtr=(}A-o9L)TfQ_et*G-vR3nix;G@46BqBI; zNRIZIyFtGP>G=n1n>0irc_DS$8Aw*dI2Y%VkmelGIW4Jtb;JT;TNeu?p8Lx$D2d~A z?5e}h_~Qs(DQ3-%1p_;h7-HW+{o>=jy;Jt81M&!ueSTsP3#TD_T=1<{B&lxro@eI+b!BOOr7*( zIeNLU7A_zAt3P!2UfWEwgBK@4baR%e(~aGHh>(`%x*3qN*ZVb2Mm^H# z;ymF~@8}=1jR37EU_#4iTsN8txDKsC;*(c-1?(+_O#+`A!Me;ID8|L>^L1jiVzLHK zE|L29FaQz5SyNSRxai9-W()xgSsLs>1d-6e>tcX1n5?MI6CfSSy+_C?V9F~vr6pjv z>eQRnU%XDB<9vn0h)yD2*ZRt@BqkoK>MdIUCiWgFt!=IxAEKn9XWUc{-$JgXc=;pp z>+Mt5Zf=}ji(IDIX`u9ykJ4)U>Yp8PKFjxxG_s6J?-?O5h5j6l=cDfCkXmh5Lh1l3 z22HUl&&lh)P;BDfZS9b50X{S)MyYGq|K?ObC^g`s=LhymkR7uvC877M-KP$v;^}d> zavsdjlkRdFnEy4@+K)^G(juAu?bJ9x2W%`q_Rc#>Jqp}HM{zjeF zt?>%*Rqc;Qa85U39UEG0pm4lw1D`)lPN6?9AhA0K=^xH`auJ0>4YP}HG%~bKEh21; zR$x2Uq|D*A*Gg=t+&PMQ+9+@*?=RXEFTWHS4O{o;eE2`6auO9TgvljWBTnofAnC;R z6tyr1zWI#|Ysk4sW(iy?@rIyF+c=nn@m1$1{aipxwS`a$AArEVZWmVgEM8opQC1t8^R4TGLbV7hlGuXrEO6VmC@g`}Dk*`Oo{zPu)>J+DC(72^)@4_7$S`!)4EL(h(1$ePc97hX|?c z7!xf=`r3_O-?>nu>-tLMWj%%?Wu)7dC}U$ngOAm(y=K4J z)3rs*+#0%&BNwSnEbcJu0Cq&7bNse@X%3Pa&#k*uT%*u+aL88?(ipvy#{mZ}^rX(E z{RMKFxtbe~YH{w&2~RAl=@o0<$bSM4fPYgXoeeZ;ij9`bY##_4=MzXcR*>)BP+2t- z-raeRqQlJ|`^A@H23P8OoGtbIa&oNTeIfNi2PSzKhH#gJLV1*R=OhhDE`XG;%V#I+ z^s>N=Y`mF8{w1u3F`M^#jYB-~6DnPxbU+j`ztnSq0CfZ#l}mgjt^x4UEf32{LlXyO zWsd-@!AvD$?rSs*93IYgorKCS3^ywlFPscJ^;t3PR0xTY3_`7#(Ef*4=fT-P0D4|9 zK;HKi7_aMQ8D#kfvyteQv_&l}iOSkfHd_|(=XCAm-`Z<)?z4=@jrQ(qxhZp7O{p#T zOs;+tb62A;!L={I%{h0FP@*DBCK79K5E^Ga=)CK!E}UiL8WnvT5OZZ7ndYRsS0|5c+Xt+AlA z)wH;};$bI^i`a7D@O72^?NEzB^ZtCc8sEJ9$`zu> zhTlb}%1@LrRhThBl}qthptgpu+McT&C|k}#+D%-4uGBS@3@bB`%AHGRzVPrJ`=kY| z6+y*#8BN`a$`BeN5?VT0TSGZW7GgQBlQu61m_M6W>8h) zfr}fVGcCL?{O&|$LdWcRaoNjWQ7em^<>r!>k{+0%omp@7>@T^XZVE zEq_m1W@g!{!8_$gOnPeEY=#=WJlfw&()#_$ZFq7=Za^3G0*y+vrHT`mP~e|`At9@N z!UZTR1yhm-@&W^EdNlO;TnqMgsTS^)H3{6qNe3qKg-zysJDe(;;GZBtHRY}IRTHn9 z0iw0fB41OXEhh%;-$Jgx33}Qx;|+*u6*XsSI65dajNov=w^b#gn%v<12~>h()-E?h z+z!>!CYAG@4fimQ>Y)ed9k5UkMztdxV}3UX#*oW0f#dbGrPHnkKbN)ME2L}Rdwqn9#^hHcBLWwsxp6kHQ?$rDMfoqie-FwOSw!=?x7u& zi(Au|C!6k{H15OnhzSp==cfrEt;nXgSh<~EPH&{S0jrH0+AR4tq6v^ED-li8;zg@duV4aqH=r@gkjMXZ7j!Qr! z23~j9j1}+SI?|CL7)RibwIg}|&L9|Nk(s2xGQlcOirFC9n6TQQtRm!0Dv?0jx7p*w z{9Emv@4DorP{7^4_JFIQfK86Kl($XKfU7i~k0a22)w!4I7!%%+t;KqD5%;n*$_+8qzzg!p!2~lp88s7Lwi8c5YRiv3vo8f;9-ep={+GUBK3xTCx zz8-1|CreI6)|Q6$-jv>ChZ_jBzZ39>4g|2I=zBfmS2-};P4QGfdB7{x2$;;PX!GU> zko?rX48S&__!<}TzyiiEFpV$?5VhzuNPWM)CB`aiCLfYZrT*=fj%0?x0ca_cY07+H=lX;$A3qd$w*GiMNt6=I z6{U24ijji)A?nfB{F(R)NmUF3{A@xf(`W4FD{HGnoj7w)BtzQ zOI#39wlrfpRm(&nk3&jax)AsqyyV2)dL&$v{zilCG_GkzK70W+&v5CWgQVmYIbD65 z8Bt_0aw?G_zy|ytO;m zHI+s%FVE5HKl6W_Cz)!Fvx+lzExc8FA}moJjUnv=-nNS+X63rc#KqKUQH2LapiB8Yq{ZSLtmTh9;eSimCI^Ig34b!t+-k`>hBX6grv2k$@eMPoD ziS)Y10lQ&87Tz-`oMRttd0aK6e)!BtM&ZxM;-RVEG&bf}jZ~CpXJca)o<1C`V9IAV ziA8QM^4OaKvU78{b?x@0aZAMjQeq81msdY6x@AcN=(g=`3>v;z3to-(7MzA~A4#N|@G=k|}YXfzY72*<|~?a@KO7^cU(1O&}vV`9A=HKz+Z~>x1Lg z^(zC<_lxu_@=m?Es_V}@^Q>*!oz9lsXqIG0yeue!@JhcZ!ON?xg~+jvlFG6cGL0AZ zzyhnPAS_O}4`9hI%vUJ!LL>pE#TkH=9;=KPK4F%XmBI$d`dHKwTvE9J5+MY^Ksmhx zpBILGDn_rEDC!C@flXCp7U#Gq0v2gVK`248h`_yLIsyKHnt>cHBM}^&P`|5-Ktwtb zp2bLT6MRAyGm=yj(GtyWcx@H@qS_L~MxaKSziNFU91@rgfw&BCB1A`@>D1A1;J?5F^ogoFbt*KXt&ceO=5q4r(ZYpD+hby`D`=` z6h$>{J4#}TL>kSOsXMb-G?}^m?XF$3Fpw6ODp_)=yIxXncKjeURGY$DL$?jxvTF^+ zp!gzCWxTds)63~}p2o#&>dBI>N*YanvNVnSpr&aJb3-Yt!Nt_loOlx0s&hOXcK0@G zlDyO2=r!BjdP~WQrfw-_{cIkEasKw`8(i^luf_$R=!-T>uSmWVw|h6G(A|1OjFu3$Uz9Wrc7?m1heO zdrWmWL;pB{g@X|uT9H}Q5)#0SHDUCP8d-6C6$;Q`%fyQm>`k!n|H9J|M8Ojv5;zeW zuxk+g@*dHa)V|uUmJMKhkcJ0;IUz-jup1HdB(lfV{ zJoQ7G$|M^bojg~LPR^1%Yjqq|&GI5OEqgL?9j9qqw(CZuL>5gm3^`2PB9|SrzPs5g z%6KxL6=i1WS`cRQxo23G8xYd0jO$MA;%w@>$!r#cL8hsuRBG-th?CT=nU(p=EzR_%Nm{uDvPn7XXGEg||7y1jp>J~b;++!oHgaK8f8|6fJ&f3c6 z3|!VFAR)4%fQeOtr7bAf!44s>;zx5lI0LJ7MbUzbq3}J|CvIL67v4Zp^&SSss7kp5 zBC#Yc8Mvg%Ax1)kAzX@}fq@s6s#*(CR0Ka#t(ziR;{@0cK@pkq>xd%Aq4 zPdE{-#CZUm2rek7;fn$R?3zRoRbdHK19gN10X`uC8N@$W;i@E%3bx~dIlBT0))Gb)O>*=*Z(6R+N=)C~`>KoP|yVC^I)A-)nP z>;;-x>1CyMm?9u6Y+Mi_WC_Zz>M^6LyJT4Ii4&sH1w zu~8LfCV4P_Mtpd|YIaSWSz>@?_CBUKNESAQ~NriDL@k@fcMt2%t1}IMN;r z=nr~BX*?GKiL@gkxdRl_MWjeX_ycs9<{;b+ZW#iw<5d;v0MGlXW|<9b(a8zV0<8E- z+EEShvpC?Se>~k%CRur-?|eMJ*ZbXASlvH3_^z7pm%iPdDy)(zv}%7JOC z{jNEi4`<#q2>o`qt*P>8G$I8~vv?lNb<+u>crYBBhF+@WEXX`RRdh$uwR`u@(oBh? zJV}b_%qvPYO~_BQX=tj~>yn%W{-nRr>h?AsK05W{lz7rCZ8htW8+Of3!)~ZWnYex$ zm$K@FvtVau`*?J=-|4|ja;YZUc|hXhJc-LVGi0@1tM6Uee>5GQjmM+uWERZxGHf-? ze!tUfbWFRU876{!R<%m4Ik^M|b}A*}LOBH}M_R1#vsM*}1<)SRfDpKXOA7HI4GVdK zjdKveQ3K2g;+Tb-TM@FTUYSm18C;RqK&onxi5yiYYvpdyCgOZ%VlL`7m59!RUr?Ej zJuhYeuzdQfI0ZzAK|q%mRjMo+!_^Vf4(3E>kzwBiUJ1L7w1B3aIze6a232*hP|yk3$y1wmiKzU8%~6Rk$DvV*6)5v zRqZG(!Z6Scbut}KXJgAKEZdm5^LD2}3TEmy1%%r>+k>I&M?n}Tn_F9>$&B25lqH&> z(FmYwD$QG@QrA@5&}*cPQH-C?^*wJs^OCfra3&0V(>4kzKA+5@T;AN<)iooR63bTV zW?d;XcN|1>U(RI1sGkhy7t@(lultc}wTy{BscV)T=SIy+bxBT3cRYXSO=!f)!q}IJ zv+-y=o`6|3onl7gE#!B7*2zW;Z)U)+1&SotSk*0G)ChA<{y?F zMj3r}rm0IA1-@1iOP1x3zc3ATbEC1{ceXb>n_Dei*L*)T%vzpnxnyQiIdLavrzc6A z#J+rTJSQ=Oxu@3b-GeKp>FAkShQWjB$$2=uvcGc?xp7ku^eolWNj&xB{9fTrb{h}F z(Dx$hU!zp6UAx+GoK1)3L7J4SVJPqJK2xu4$fd?A$U3DcnDDRYEv4|tD0GlDyK*0_ z?Oe)khc@UWzp_YMzO{%T%;E_!k=?}OrGlB7qU#KoK%*shitLPxpZqYG@B)y-dm)cGQCsYv09B$;gyIMU18A@6Y89B^`BTAoc?!s& zvs4djsc?o>4N9R45Cj@+OAfAtdpyD|k^smNH5Z^Xf5GRmelkPV0(Wpx`glzc`O4xg zO(X`_g7M0uxk!Ah@ZE?+2)eGn^7RoUtFXc`cu*~M@+p19=R<0Pxq z9QsrT<7tw{CSI1TDQe-=t@+e93@eSKELPOg^j$xQ0-Ex)+s+HOu5}%!h*J9K4O2Hv zVx-xRMlGJ54C{?XmKT$`pC);hNOLa?;&eQn21%ewMW?ZGbaGy#$t(?`(0hLG%3gmr zqUsfbERS1uRVCTY&C~-pJq31FsBL5i!XkryLrW^wZwO3 z3SLaWS2-S2*$QG7Km|pSL(MBPKqW9%$Y4oawp3z~SQ`AwUKF8}5`uln%>0xlo29l$ zHcgrM+ijxqf|C>2*fNB9Q2PiCgb-#&4MCvsK6m}xGVErvspwLiCgczt#|eU1qNpUZqoC-t8%|wO)HKPG zTEhv0s0b6QRJMBC$W|<7~S5yda$uIIX&C7J8GPtr!&iHmSJI=MwpG8RN24! zs%V$#DsxFi5@s(_B0-lzWGgD}L5LPfx-c!6jbOl@JsM?@BI6LA1cqJNgJ33z^P&WZ zd@kyOhs!UM%hYl&07tUmppE1q4P4qDXcB*?jy5_O@KNN-ubak-2)aWR*?qvH;HEE? zz&Btahxmz3#Ee}G^%IwaK`aPR*n?0B{2ES(#tob>h`cn#pCPzWg-;n-;-Vm0bQYwl z7P><$*iM5J!paSnXbuhRH0` z9z7fsG+=A=`In=Md7jIb)$r!zQp%dG_BZWz*CL(Szj{#bbi$yRjAo=}UKo|S6{Y#X z_BMU2%?^biwY|NA^NZ>E`7A9I*A4O_HH>s)W9!b{M@b|-w{=Z(v*G!qSMME|z03`B zo5F{DQ*&m?B)4tZsQIazXd+pZQ;@#yVL6# zrdg67s8kCY#R(`ZDM28H}sb%gdd>@x^4tZeNUqK|H zDCcg&dx@9|=D6SxN7`Xy`Sb_-XD32wet1m6t5w-+(1CZjo6ACRUI2dXpQsT`bS-yAW=a_0{(}4LVc&{r3jYTX`;enPlrm9B9Hy#<^7gUzUE_t z@17IU@mPoZbN~H6rMWK!ueRy*yS?4*t+GsYQ`Tscb4@CB-As6Gb$4?&@?y)X*PKSZ z-iX7H27B8!hJ%p-kg7?uaUjdqXf_#n^O5V#Xxfryq%s%7NfJi0>FnfeFdVpwV$e9o zUlWgLqEe&jPk~3?UO2eftl?%bY18gze;m(dq3h`NezP<3=MSdy`=jIfww>EamgZf< z>21`$a`?{4Fr~@MCqMnkANhel{NhWWJh=Xx?R2OKEO{(JY7fmP!$tg!ft1p0sFbBY zF&eK_0EFJLEdfyG#{om+Qk2jJjb5lRCqxdakCdSBp4lr!$16`@(_%%2Yg7v#C=~~= z5hGV(Fb!Y^I0d#RERj@6jw7gSm6-revN~9EHJuT)QHu(Rfk;);B!{1~sXB$`Mc6@~ z9G)X$H$g%WJ-`KEY9ssw?O6z}I)9#25e}3;1Om5HommAEgIWshdrpLK{pyvU|Ak+eyL0;7$*GgGj+3C(Xl!k6 zg+Xq~>GQYxFTHqWGMfjkI~@(PB%96MkfMwtZ#Ar%t?d&{MaAYuYo3MEY2XK8r_+1+#h2P$^V#Qb9UeWHhBG&E`<+fq z9zsHp9V{fW&j=hn>| zo4W@|UTQi8M-+xYW8vFKozg&sCS#!zRzdWI2D8?Z#y>^`SPxkStg9ljUREgvWtl>Z zkAbzH=pYMAs4DWVDnkKe(*g4WB6AXD}Xl8-)5)Tgk5rX)F*OoeciiC*wm{t=H5jd^LK2?cu) z!G?{Eo3ZQzB>+kY=Yp*w3I+n5>B6ysh%EYxJa*JwRH^_Dv|fD|$d9uZcbimOls@(N zt~wFRG&g$PyZ7!=AmRC*j?0|y>~t?Kj?Pcdu3zcgyw*HFKT}I}f4l2>v!XPUG%_u< zQP)jN?zEiA#5K)2g&U=uwA+oXerGnDx~^|%W|?QLW~-F7Jj+Z)?QiWqxOdc3oR>fK zsacXvCe&a^!20f6{7ruS($RUJRc|^KiP)sAcGlWka`OJDMbS2dDEW41;(!8D8DrqJeETj}60a zbsDWsYj||3o8~kQqBtR^;7_L))6pRIr@`#@Ggr)78O$dq=M%5Eu$uji%^y0r@;O;D zbX|Anvp3)TV&omZ^~UeI?r9wONu0G>_3>yjpA3uaT-9f~N&T!r=~htb99xDk8>Uq| zGAbH(S?e)g!w*1%X=57K6-W9fW>_;U62NG=0I`X&v;vc8Cx-5nDsmoFI&G0^`J3sWBGXy@}#2O zYUQ#L=Y?r%xu(x2`F{K0wYT4K5eHd2o1K2&Nt5_uFi8ukR;xw6U$^af=o_Yy#hD$Y zH+Bz7S$*gY-x@vi!pZjb=J|!2E1F{Iv6RV1=l;FnE3f_5@yQ*-ly~;(_uqZ1(`;#a zaz4E0`=i;&-|63=-p29a`QWv7W7kl66k%K{BcswzR%M}f6@T~hXH@7wh)UcBm9UU(2*FqVs*O|OrnGmU`2Ii6He?&Fdu^?Lslgn!!M+w zBj6Bcx8zsEhug7BfrJi0RW<4+v4 zO#SjnpQjk#Z6`vX&6R_L|L*Vp-ADJ2X*BO{wzqb=?N)t zcBeiXy4~iMNvyKkZP08*9!)2PX$F3PNlmHD=YekW)8Ue?7BcyxFe|sV`Zum#`TQ4N zJ0JKNamnf=^x`C>2}--GU%R%eDwgMEilUvKpQ@&%X=cyv)=GV^-!xTqIGBuLPieP~ z=B}3nUO0bve6)RV(Aa1kp1rMV?kArA^zdTx;PCL(SKp#INY_m-nA=WfS!Khib=qC0 z-nvqPwzASu0;%9ajTuN*W&nL(En0wxq^hjD@B~5v7^{Em zmqgG6I8T)@Kj6A5uZ9wx%ojlmO9RL%*^dYzOyW!>137jeNWmP@2T0}(6`2hXY-kTy z3dBG0aU8+cOavCo5I=ASLB!7y2d)TN@#3Bf(r_Z|JH)mG%U_%a*p`c?f{jYxZ3W9} zv*4&8WB^>TiVOt8sjm^zXnh}hqN1cwdzjxrx<~2vsRPC7?x6{~{&s~b7Fr+42S&>X5} zE7xvZ8_m2D&$p)irqSx^ahm9cY<8qZyLmPm$Wpj_ut5`_&3=D2DIOl4@9Y`gbSUN4 z)$7+tk88DNtyX{Z=vbEXz@MI;-SdNyq|XawNFLx#jsBBAo|azO1)>^Qkn(XO9#!5!%IfK2Tp`$G&BPK_}~1yXJ?bC>z9)D zhyU33*Xycj*q%E}67Q|I-rCviXJx>jmh$o^uKT`wbnpCNr?1GVZW(c$sRi`1*=%(> zm@Ft|(YCCudRvjK`P`M|v^31gJjmm`*{GFr)@nDdZ0`)u&+;-(BmKeMv%UTP^&188;yyVT2?EWx%J$jmNt&oh z7VY#qd;RXtrq%AMR$Z<+wKUbtnm+L<=83}?zbvu4vE}*W?fphBg`@MxpU<3zc5*g3 zdgv;Jv(f9vkyjR8k_>!zmM2LXr3Y7T?H=sNMW|xF)shsNA>-ZS6kwCOA?n4&$XRU{ zPK7}!QhX>U5>RKMvaG~{h3d2UA_bFLjF%M~Dsqt^&_8lqO#hUpy^utP4ZG)3(IKF6 zA|T@cIs6YsfRg~65R8&e0M;Yq5X6x@$U^*5v=B)~3{QbRR~;cB%XFMkPM;-583NoV zn$FlmjcZvSb?N!FIo9*?75_tn_+4yz|{iH=6eK-rjsNn=0`vh$f@R8+%RD z)YJI-)@Bg~HB~Dn(@*YQefha(Uw!M9XP(`?fA_)m-horsOZPpuMGCLWZY;3h< z*-+IYla#}wv8b3g*zSHYyXya-o^R-PJ2^Rn}w9%i+GsJsIrnnE8z@O9(ti_LXG88E%CB)EPdi6dGO~e zM=A_=fCOtthw<2$c!r(mJfp#pfNF3t9ER}J3GC zW<5F{NNIWd%2ipDrZdmhYiXX9hI({(NV85^D|9=zG-I!~Kbg!<&xUqxywJaPyR)r^ z^BevCjh(%EA-&Yei!p^6af=Z{2=ADb79bfmFm7r<3Vve5-Y3OKVuB zIi3%r$U8eeIz77Qx^AI@oP}YFP1rUHMVc-i)klW>1(^x^5|%?$ zG%KX=j`n<5WMO7(NS78xO);C`TqZ@ETaV;MfcHOJ&spFH7Pl zQ}OtjXcAq;ijZU{Uoef`l{y9}rLf@Z`$7$wY zyLIiIcOJ>5PTIBE>ArLSu2XB+nicw?o5WcbH#D_onR9pMh5qPd)^BWI+t~Tx{ab(f z<`T}%d^n}m~WG#dLs)UX?-9$s90Sy2*0?_{N%rpIycdqr}eu8FF(R7DTG zabC_Y1`o-b7KCIyti<@ zoJ~k)TB_c(wLJ26+r3xsKYaDxJ2#%cK1?nq(Qy%_TN}GsAswEcnYE@GYN_ihnshpk z)2PtYux5A8NB-7cf9j6#qu-roI?w7!-Bx6+=^UPolhNemt*d%gx}F!rzG-W+maDpS zaBxeW6}`FCl=S<9i>-b?ac63&W|F1oHOHyB)3fu_H%5~$D}|S*YN43!{9S+YX6Rlh za;I6pl7``YcI^8D%Qo#=S1xOKs|c(Ks!O9X=_b@2wuCfKw?PvW$_N`^Dy2{^*qIHW zTt#IQV1A}k0S0eQv+;1mgCs~W5H4d-dL?%W(F||cEqOSF9sB~v8moZq@k4H?$F|6h z19b|1?FyYJq7?WM@(%EEv>`|#aSS0JJthxGY2?5lN|#_ZoEjy>1RVP}KE zDDZquQT7k64u|uu+1l%GCt+x-q(0eJe@Bz$t!~dy)JLbsomOLeqa$Zoo=7cc^W^xv zXEk5A@k|^=pM2(-TrEx8KJzECsqO9U%))u0M#-s#L zPW@!=x-Y-n&k9c}>ZWNpj@IjS(l|9@T^{C^s?JkCo+r=Mx2{W#oyN9O)9;;+&IdD1 zwKdf$i}bm@y(?OCtGUr=bP6xkRQV#lsBib5eeQFfH&4^?EIgdg&SsO-$#~N5ZH4}1 zG=66=ddF#~QW?yrgTckUJkOh*ebd+|3mu9It%N-Yn?Y<0^TsgDr6^_|vSGG;#1hbB zR%fs*qXUMRv*2klaKj#8ddme+-ZK@v0Gtcwz`+fOuH9}MpGvXq-xc8OC@mXZ_Ui%Fm& z5|2w<@$jURlcKkrg5SZNoP``w7YvjXS7>qWUX;DO|1{t0{a!i|MN#YZ#&7)Ye|z`c z@y_;@&3-G4{lE`#{9h%q7Jl8g8A|r=+ zJekGk<^~i#e5nC(F^-G z`t_z%MD6WHuFHm{8CpSuP7)NBL5{1qI5~@h#L;S7TBEK?X(zk7cW~3{+ldrK(Nv0G zJAR~SwaAm|_U3fpno;hg7HQ$62#zKL-;^^ajpBK))z>w7>YfJ4pe)lM^ph;A+4^|; zR-C@w*_cJ?JM-xscXrY4b~k#r8;$L`J24Cgn#sf30z5FYK4S{7SdtaGO=B+>W4RQ6 zq~(=r^PbIw4sb9?K&@c}U;qV6tyIWvfaq*Wf`v9Pp%$ANGH7rKd|jD}ggEpV@&!aC z%2GYp97`5_0JjJCm}e#CGUx?$j0S$VO!`j?IpsB1;e3SIR^s4Iaf6w~fHPu{_gO6oF=JZsI%!rSB-AdX*UcS)f<*m)6F<=4NI~d&3C6#nYQYVZ93!G zB*>#ivo>=lMVPnrwkBKtVA?U9gZ@FwwADQ8?QD)uPCK=ltgAFt$O6w$bjR6v{o!d| zx1-Fx+G-!vJ12*a%$i0a#?i$<)6^`_cQ(59(sX3Ulyt+k&quQ)Q8dlk>NZ>ZjY%}o zW4&M7nET-{i4V_Co3-{vb7$_BN^0Mhx>{-EhJNPz(=w0qGE9S7OAEZQZIwZEopLF3U9naY@G&tkX(6{D!jlB#l863lmnN$`;= zi#%=c2_m%s@nhnGPT~1CnyQdbMA)RLBn;69|8@+&AB0B9Hei4dkEZ#FrMX(};xb<-lZ9(dD+V_d&>kcMf^v@OG!%qF>1;AN|Z7Uqd=+lQmG zp*NJ2q;A&so4dhyc583%TBCQpw|#MXK`P%g3{puoNS#9IZ}k(cC{#?S?;Re$Jw2J! zl55+&ZYqbqx3#++WD%ZAD^lMLqtMe8t&v$psOXZe$f~KB@|ZZ{z{>r^o6g+X#B&l| zF0_{2wo)aU2QT0HzQ)eAi{sO0tqoPuFI;aj^Ws$MG&V+_=M~dTK36nfk?i@@N@61j zDGc(8EGx2HlY-2Rilq7QVR11~qacxs_|Ba#sz%&u*L7nPFIUHeo1FveE7Y4uej0vZ z9^_77v9L*eX`UEhV9;=N@^JKff75G6A z#&h4-EK@c$8lrkmqg9x<>ifE;b~`O;7MZ2&be%|#6D4zKK9b~h-3$`XO#^rC(&yQ# zTe22Aj`XavVJ9lNC&?yl)hNC(YFUj+W5Y1&{&1dqi4qrEwa#!h?Me3S#`fFOQ=Rl6 zDQaqqCQ-KzZpc0`C}`48hQPmpA?H^b7DY~hmGsyRU7Rvs z0wEJLoIT4~UIhkDc6nlga|J{Zr0R(LlRN|_S9F{JrFmP{tpIn9Ye%3)DZiZHfQvaP zA7|xrI}Trmrwtsweovuk#?2c)G#R?1$s`QYv*VFvIfi8viWC*4pT+aY(`wqq_&iVZ zZnvw+>fq!g4MR)TwNzClBZxxX)CS(ztx0dX7q88aUYXsU>hmxQb6uJ%d1gwDmX#NU zVOhOyd%I@m-hAqNgCdR`BU6iBuTv&ckz`UC*IR8xGd(HSEbE#5>$00&Ywc{FQtsnpYPQAnr zQz?@ST|T(dzkc&tN~T#T!{LQ#8D1Dr@So?os;G6_?l{f;jcrFU;Zxj6q~f=^Q@uQN zr@#L8YpGFKW*N@rifNDYIMgz^mXaUHr7VtuD?2-09Hf?ZI2qclR!aJsL^S_ywwqoM zWQDC5@+_Kbg{6C0+o?}a$35Bc!f2EQxkdI`?6XG80Ce(&i1mk;k#=#rKBcoIrdgUp;@D8_*rgrTA>bO8TC zhKT3c1&Ce|8>+#Zp>cAGDFP5kAPB=|M)W;L->QWh0%~#}2t?xt$sm>q?+-e3$P=aNQ!Gk=cp<2&CRFqd%YhDC!%Tk zy?ggw`^p=ZX6$VA^*pys{n4YN`E;(znp1beFpQ#Dr)f@E)C@CmgNm86m9XBQXqBvJBQ^TQ}iQa8w_ zu9+lRyJ?1Tl$E{FR57iMD+kZbr_(F@SKWCgD^{nwN%7Y!U-2!Y+m!XU_UC|%+$3xZ76Ko(0e zh%lO}3K9!jV&Ev!%&@dlfkl=I`S~#lIe1nE61s;Y?a1WBwyaJ`Vxydpj1a6U`T9T= z;V&TJ@@t9$kSETOHf8{2(N(SrfECwF1Vdbl!B>|vD4@#REg~>0e?}ls(Ktw++pgQj z)Ao{)4}}vU9PC|v?RS3j2VQ=;p{OmR7KCA1=KX#j9~&t$4Y@Q~E()h+Yo%n-Bu0@= z2B&j>n#*}yq`ISfk*BK8{riJ{e@ilqMy>YAPux76o<(wDIGR=~Q^_s$v~cu+I}4H| zh!Q`M&LtGr&6ATK}*s1>{gkT7o(wR7|mu&ty%YnXD8!}-F9coZcfHirCHakQa4J|tOY@u zBwCUbx}g`D93`@*8(AX9xn0QJFqV7WzLI6({QT9g{LY=X-{^N#&6uAbzwz+iSL&9u zzrSaiPL$zINzmtoieK84LgO=y_`K1}m`snXntJ2Pbwk1Zpi)XZ-Tq)WZd>&Y)h@Ck z^23_02Q}%;A1S#sIv?HG-s|WVOtzHICu8cv=ElZ!HYMkxIYyAjZW5|#_Ttw5LA}?m zS!a`D%SIfNXIhrYb8jBH9(j;@vlU1AXc8-$ZW)H5%AS8R8a*10CZ?{>CT~A{^u@b( z-#$KkWEk4n*~7z=I~zOOy4jZTf@qk8xQs$&iNKag1klM-fGBjiGC%zDSNnzX!=fln z*2Rx#5VHu_t0ElX4UohUKAlpR#wO%LT$M%`Q%yXW1^iryG$vfQcbgPN#(so`2Pzl7 zL-ai3hOnU>szmZ|9-xWtkeB4diaDd?GQ+6cA_M0p_A5n5(Voxcz10bPWq>MwnL<)v znO*L2K1gHZexc*k@YqXU+;2Q(51xI9PUf>e_J{mDo+qJKW~S3Y?Xd+u67Ed@?%A z<5X4KNvhZN*4d+}VVd3Tjk)J}7qcQ#WxbxN+SS`PHO)SJ=TQ+Qd0GT%5gSsVq@_Vk zPbXI4n@SmG`7FMehJLQRbmJLsIJlr9CI8*id*@}M+Ezq0Em?6C*;YcmI0+}S+z-6z zmSJ5nwl~{bgULiw3t1WV`kG3ygyB$lQg^JpG(5McnWi@zhv7xHFPTj|!|4Sx)k<4! zEsJH>iyj>v-Mf4L!GkyRWNfKn5}%f(kIM%|<-w0{lj3cuFhdYT?7*`IPJoZJTUpE( zF!v#)hbN@T3TwaE3+rGjS)^##fe&FXAprBhf{BXOmNe8yZ`kBn7S>eYAkePDJrN!R z<1@L8q$uO8pe@PqcnD5{x+f+B6wy?&0MP_Dzv$uuk7cUp+nNa3`=OY61z z^DpjOb;*yWo=?{$I5{~F{US-jtxYYD@6Ts^&^Ei%|}w}oQ^URB{BVPR~-bT~+${{rGr zo7@&Qb`8jqyTUI~VMc@KgM13&5#mv(bJ)-r)^~&;7$WzfI$&IfoT`go1=J-1x&&6? zcR0;ww}i;jUM%{Gv;dd0Z>$JR;ijL!Qmn|X$N(tEQgD|#PK)Pu>(rU5?4yqlkrUB0 zjpi12-g$dxdw1_(|LXPYjb?*vvQcl9sVt?^W@n?@Y3*I@D@LpuQoZBoj%ha=n_F$e zC^ehLI!h_FjqSGUdl%>Prq$|dwikq9k)KZ{BX_1Nx~!OLs}`$8O{>YL!5@6~Q>9)$ z93MF?^XkskG?OR>s`vZTxo6q+SunSoI*pMSA^j}(^IF50Ci8x$zuE2JN6BS5q)|MK zZ*{gU%RC>P+Ky$lYva^EO9L;8H?4Zdu1WRAZ#{VM#>H@w2Dv=yHQI5gQ53SdZCXxB z-XV0g@i2~~(sNT?wT>Q52j_ko>!BZwM#0>THnvPzo$nnqy1m}uG@H+6wVIb@uRG3k zqjyVITScyEvZ3NNWn_Y^>M$6#W`MFdh;f~*kF}Vr7PlnHCh^DRqKwUtnOOTPEX;>e zG_=B1k(XE$0m9yiOihTV(Gg8Z{3Hn9zoGj0y%_x9gIH4K;D{)QHQ?riD2|K(VV>MD z5^UuVzBn&{*|<|H;7(N(N>oO>!m=z~Ldbb9ogj$sTU3F|Rv9S01Q*~^5q%nDS2pZ+ z?df^&>_g;42nScLpB>$Q_W9?Yeg1jV(B0X1bbj*i-TR;VzR!kHQqz>(t+s5W7xRG| z2dbsJapdM+kj^{xTH9*9@#cdp$~v9S(b-_^2N#3UZmV~4c#`FK;fT_Z!=y;ObZ{{; z4Q+5T*zC6ZO~;!~6FI;6%(Gkl-IIF{`L>1@&BG+i<07{0(o5z+LKdM(s@mu`U1e6P zr1j}=K0BRwkNny0Zf~d7P{~dd>4d~(2}L!pAKne+q{sqUl_qKOz#E5ZWSL6Gshu5r zqoFFv-m}lwih|rnc5zJ6l^h1qcsR3cfNX zwXcB0BFnx8)DhiWV94Ij;%n%V1Z9G_1l!`j~2uw)r;3`w%iR{v}? zNOSq-?oG4QNYVGM@7H^JLsqw=mZH{PJ$-O=et&RrI1jSY%XY0!+icmEV^N5c>61xl zI2O4C$HDL8_`#&68+j~yQ8As(q$1OB!!c`g+Fw38eEq?L?JL`<6m9Kq**)iUHXcO5 z;b1@}(`z?$OPRR-WRmUdQLHnb42$`+_UPg0%C$X3je6bs&Q`yWLc>mNN1cvcyqmFT zy0a__D9-2|K0Gz`j-tw=(I||Qnxm+CFdV-zckfZ0b#geS9$L1;3QkrBGl87}WZ0!} zFtBSfX9O*z$84^w+wd{fq-5bASnY*VAd{ezgd|}s?d{AOd7Es2%i->60LRX1nf~PszRB50?`msH*W(f9J<%qe+$~WuCX& zo$=Yl_+s?K|Jn}?&X32#^T}|!)7!bScR-(q7tF8SyhYCE;ltxBPPRAOT21#RQ$w@d zq1SAffj7kyCS{o@N)l&kDc6lg7Ns|DKJ)9p^95ZkwTZOX*rAc$-mBqfAM9FpcgGvJ zle1BrX7jn%NLttJT`7@*A~9+-8!D|vb29Ndty-DormkPv-tHQ9k;GD6kJ2nnrS09_ zF!JjS`{nQZ;&Z)7xIiv8ZE8K<&k)TL54%)H&PIz8L8)gX-A`8e=T@^n&f>AlUK zs`MrCvz}Ob$X#zvQx(k~|BHnZA$hq6Fw>$*5PS!TA-a&t{i7aN&w3Dz zScyn%v_~my6?H^7M&Q`u5|Bcj0ShDv=T!O51wdOEKY?<~gaDKXvt1$8Zh@ zqj!%V&EqIb6Fj-?mzg_H>V-~TMb?W>qfX{>F+8s~`tRI-I*vGI=_6 zNv~8zqcE%8?6kV2T1%X|CP^`MDoLdv$b3(tkgDd?y4^;to#y4>2Y-0~^!WVIy+qaI zX3yW)(jMGDY1KE*kBbu$pJZ7cM%hKZY1!t6uGvvUbFe&!XLs(s5+l|#lX!V%Z2f>jZhh)3@i|#CYQ1e@~s|T_^8%C zND%MwBuH8+DX)esI#VUc!!Qpye5DFn*q#^N!iHASI6M=9=vBkwOt6Lwr$GOBJRLPf z4N9`xgcO{S@E{z2@%&53634~45Qy=K1YyCuipz4O=$}!MP=WvW9H&9@@VSYL;#oe&jg~#SQ%a_U6OmbEnfh z9gkE~R+ap8aNo32Tgu8z^}SRztdpVVlZ}PZ3kO#mNweFn2g9=h-`b^*RIXX-csAPH z?llYJy18vCcCFQ(MA5_PxWE%ATC>^EWTo3`dy!9b3pb7K9v)8v{~{jAb**NaDLDv3 zIy@V+n!SU~O~uJ#-3$GR@6BU5f9?L=nIC3p)@~86?9`jvJ00DK>+NE9Pu<=t3)NM$ zRFSgNN3$}sf+#vZn#+=D+vG*HFMsjPGyt1GWWUW+DT_S!=GAA8kAr%vChLRGd~V0m zYR8W}e`?OglINy*S~eVOd#gX5+%M&e$d4w|le59YSHAqK^Xa`T3j5t%)3oy(uWlt3 zm!wQCH8ML=bQ-Q<6D3~e3iB5?N^mzp4D93}@c20!0K9-0rcuHa`X|GHL%wSsFg4TE=E%Dy&l*an;WH;rimxVmju`-xR4b94;&l! z3~A<}KisGS#7b~g1Rp~X&*Opv1zfm1u!KcgU^Oec{RBi60@8xSsM0tku2+^(T67$J zr)`Onk2F4vPGoa)>kGgAtB$2#**_@qvetCs%%8dQyZ0VCb-PH@mQ(L+bdF9Rs;WYX zLXKwsn5G`v8@0q6&}=2hrMpKD5?S8eIv9;dUJ<)-ymzpfX2D)>doUWFj>p}0JImAE z{oOc>YmH{$C%1YB2WnrEbXS(%et4oaJ3&~6NqX)M!Za~;Q?|6sRHH1a)y!+xulcDL z59I!yB(*Yrl;Lr&34Fa14A|Q z*f>6%=aG{Jbxqc$^ApXCPfv@{I5H&1carFlLLve*6imAh}>nN0lQU^+ZIQHpGL<3K5FRg-8MWtfg!T9+ou zBQngGH}W7L6OE3GA(`}_Z606VM}7ge3RI(t{IhjZsK|SG z4Txkx0?ZAuf`hS4g2-5AmwN#cwp#kWz*VYtf*>bZ@yRPKk@-mD!{|g*RkdyXw?F?Y z4-U^plc{Z6-A=FD>h*hl3P;qaa1^!3!`4PCmGX$y?Iic zjOJca+8-D+xDOO;Jo!a5B_92lGF(v$1p83Y*v?W+-* ztt%s2W&Ia+B6#@YqA-N$c+!NegX|TrDTKQLKimY_dREPha9@U6KrOf_7KQsq;6$25 zZ~`f6LKu5Rr<7sb^(e8|+AkG3ylD8VQj-hWi zdwH1JsxH$ot|m0@pPir6d@6_n8cu!RZySy6_U`#)rZ)^Vj%XfU*7P}r4acWPgTW-p z{5X?z=jeD8#*!Z;MQV)Br}bLf3x^_X9kx_C2m(2mrQwOhvS<+~5D7$3dB4;EnrHi4TXC3OTwK&_BTKW%)StQ`aR%Nj zD^g9zv#_82%%|=h9u|hYvDu+%tD|UjN#1F1I+it_58E3J)s)BXB+l_Id|gwT&6chk zmRzQOXm+}at!Z)=r^&2HXwJ1|wd_Xg&e=sG>nG!rVXNQL; z6nJ&Jn;dk!ezn4!&b$3?JOU;i0)5$fh^gMU!o+(P9scBJY?asE-?3;EsFEmBg zt6Mpw;Rq72EP~j9UkgMg$Pa~yVHt5m&Ux}0F+vI$8@x9>0@Z?dVIh3TiBSX|s4UD9 zwhIb#fUq)FvPRw!c86K@_!iDo8J zOOao^af3$3cE3M39XG7nMz3>vdS0(Jr?V(Z3sqL0yLS6*GOM>*w{PsKQhD#_=xj38 z6m`45MUE-(JgmIzZ)Q$$K0A-|ge-$bI2zs@+aep&HA9nfH*htlTNY}|Hs-VWz2oDH z@hlF~PuzTYJPsaS42*_7p808%QN@O%rZfWyL*Gy1n3B?Tk~}&(PxC0t3yQFAJlE}Q z$%bK^ozBvPynt3pdB4Arq%jTax@PN|s>u{?B#pXWQqUrWPP<6T@a#N|!lt5H!$BHH zR+_4frdkw1vt{IIIUBf&Jil`F%JVP$>#|xuIe%A`GE=uzO`~}RskSf}vIqJn1Lh>1 z>cZ;y>3DKNyj%(wLE#;-W#mU-*_asdvml5|@O&x?G4hfaA(O{p7!UoigIJgqlAte9 z6>|~oD1jAINMJD>@4#&^3s{Su>2ki;Bfnvt0 ze^^ZuC|jW-ybo{+d>x1j(giPfATK1-P;P8G$b4k+p>`s_{4f6b*~OWKcbrNaG|n~~ z*RSuBIho{E9Lv=7XRh4P6|2|ZaO3D=62z%y+jbOr6rXJMd(Uj{I*Dva=Bsz_pH715 zEbg^hB&S(-XkeF3gC-z`(Rl05@yN~Qo=ZMqFc@CULe-?1M1wx!;e52w>lvnYZ*uHq zUcGLmSuuAbT{Yd=T+wMhk$Ik{OPcEF`2I|!o4I`Y;Ng|M8=rsU-QRt5@`ZQqlb*z} zXSQRfRcvnPH*Rz_-RtzMG$yOm!zigY>{5wG<3KmG>$h&&b;A!Qg;dtet@AUFB9Sl% zsWZAkR*Iiru`IpSG*qRCqtrCX1vtZT>c^&GtL<(x4ziRcOo?RM&G{_4e`k_}`D`|v zjmji6e1Ftv$ax-~oWFVa@b^4~C%IutrlqQ-L7sthoc=HeV2}Y|6##Jr-#0-JPGm9z zA}i!M$U2FLbr3P1Au^FJjg%62@fsL7+94|vfdsrn#Xtd0HQ%8uTbd{V&>QvulqN%j z5Ef3|V220M=pR@)n&K*Kv0_d{%)A!NWkeBgB%(AN8T&lcK%P=Wfj3T$}7KrbAMmYGDA^r-nzAS^~!iYoq71l z-FmZCbDT6!kLIJ3@#N@Y9_Om(`SjuR+Rk)*J|4~#x%L~s|CO_O;D^a>tG8=AH~O2T zv8U77TW>#{ddW0OMt(Y<#aH*Y6}j+&pxxah2Xl5Yd3b)N*y_%9*K?!sbb4iT>*DOp zs5M#An-?mrwwv3_wDtD4$yTCIA|G#%fK8qEedg?hb7wXfZ7Zf-e2 z=+~QuQxAOqXfQa6=V{dAzNhV6ecctzWQNUJZ3N84>r$j^1BEZKZ z7g&vg_3?Lt3)Dtk)WWS9^0Gy#<@`lEl0)M$dk|rq97@P4OqT7IEf+v3dkc04m2044 zl1UA~&OySc&I_g}qK#-&DufUjkBXo#L_i6X@w^>{sx)~+_c-pNmf)6fL|r6l&t^|` zDFG4OhyaUx%+0N0Sy5yOOHMu$^jT1-1AG<|O^xg3NBhCE5497ycKwDs8<5J3hBJ5W z*KFtZbI(7#cV8tp(Q46$krbJiM6bO2&cpLTn8;p`o}W)>o**e%66aa2&-|#>XzsVV zKXUtpz9f^?$7xU&vaL17gIFq5)1crYEwZp#Gs)8wigx(uJPk{otTxFET@9ky$=HpP z{Py-X>A=y&a2^J>V^9$V5s&U3*NrAMC>ge-S{qlcHai=JrnU?H~9 z#M7CZyz$1MQE%1kUKo_E_Ewr?oldJ(S7`<_9FA4pAO}G{gRAs>+%vB$Z<`);POU(07QT3+NyEqQ=SdM}K@4K#EO8Wg832M2gfc`TlUDd)6SxoDyJe%TmIY7~^AQ?*D`SJRfMr(sD%fD4 z2@Wwps}e|6#au&lCkGYw3t6;dv4RO*MQ16BkZF2DjsSTkGIv#p`v!`rMF5r91${vg zi6^jRAb@AVhBS$!%Yn{Z)+KHc@=#(Hray3_Qx$v!@u7Aigu}zbpZfbheRMYPgNO`w zcyTc}Kdsr8T9!4-rXiZfZQZtyN3;1n8BgZ)ksFpQX>yX5(JX#`Xa5sByEkZR)N*8_ zsP!9On(UYx*IT=Vrrf-J{e_#i@+59Ft^Q_rb9?WtcOPb{`~xq1YQNj)G&IvOf-s1Z zw9|B=V45hAX(`*g+rAsbUXn&dquzF7xv_O?=%&ZVBS|*GJlNc57kPF(Jc;DcX_n@u z-D&T?`{p2+7n)Xc8cjd+H~PIOj;a4;p}u?PP?mL?Nol&)?lfp#5k_8?6wP*n)`JHFxon3)zPG=p>qgD8-1%77YBhVy3zV(R1JY@76FgQ|%OV8W65o~NaDp5F z3ShEuE7gW}xB>+oSZ77ZAg862Vbp~y5oRXLh=UhSJqApj$lj15cJ>vNAgSt$$SS^?ul$$icz2fA}*$?FC^HMW(LKrqfo_p;4{b zY7E9B*Ynd%+S}cqQF)R&bwuhlQ_Hg?%cMNad)*B`PJJ~ioBBKty3KY?vmf1gm`1T* zhOggy+mw}?H*N%Jbno6vmj(@{al6^x z+}N3n=6m}Go!(B(*}i)7*#X(BADtf^7jkkjJPdQ`m7~)KQSf_jzcm_%VMscsV&X3; zCub+^PW$Y9oafr<$!IimgP`#I2(J$&C!x{2C_cE_@dD4Z^*l?-zG+rMbNOz!>&~Z+ zW8t0y#Yss_b2m-5dOf=={lrhp)F4}~Idu}Go9b{fDl&=EhAB7e{YMW+fu|<1l*9!^ zE;O|<4D0lGdVV&Sq)sV!uUz{?qtzv2U`vMfb1(wX2SJ9)N>7s%cmVQHq&zSIcn~V( zhyx2Bh|)26!GbI90aK7d6fzZd1u(1k0Vx?mKV2{brIRVd!md&_scyv4o zl8Z3NG%d|#%QAbtw(t3STf4EJI+i^QgI7<_-aR{=db74+Z5VAOQH@r!v(;^G_4?Nj zhSTYT<42v1PSenJNqO__dr)1a2ui#GXfpHVQcpwwIn);Q;*8V>$5Iq$d0zB--6YAUV~;#dmirw{l1tNcG}R>LD9n5}bnIHY?O2wT#8H;T z)MH6Xu3u~4ywMGUAPjTc*3*u$ETd7cJAqG* zcB9{a;Sc=SpS*tk)B6Xv72Nj1A9S0vy&7*}-Qvr%c<~3t5oD0CcCkt!!UQFQd9X9U z(2EjEm$;1u8%6EMEszR@eW4oI>5sZcEkYoo575#00vutWI;veBIOq_gJv%nR1A0}L z6X-vh;j`e|)a3Pu!ctJDN-ZFSh<(-3$3aE!M<;&T6gVx+3@?GxWPTzdg(d2xJHZ>z zp83e$>;14h5yI~7-aq=sKNChlS*E%o`M&FUGrW5>h_<%38{Pi-+Y*2HZuGA1?YFGvbTsWW>rotNs{VVw^F=bsxXcd^AMAE|Kl+$+k$y>U>3 zr5tjGsDM(mitcj%sQs!j^snk9T46DisA^pT{Cusrmz1M}5GBel6U#?txCH^ea?-Oq zb&>sO;UnNgHa0eX>$iXNY;az)jGX2yG^&=R?Kl+frg22k@@yVXX2E10Xm)Mp1pyhe ztdTCJ8CjY&55giZ&If~brxho$DrYzMwl=r6PEXEv+Wq_YAC_dhmgQ(#uVHPpTIXjM zhraLA-~W|+500nam)^Q_@6m$?hj$`(*0t<#JhoJ;rt6Q6 z4--E~gQy(4mZFZ`SvsA({KB(`=aVQZ$OmYKk|k-qR>M| z@3nfJe!cFc`FQGXb$Xxu4^pFDYmVf7?ecR9(lfTWgwD zlxd^cpb8X=9~|s!nmQVesVdE)WXW*qHOsE+ileLg>B*64Dy?4Is@a3d)DKC+8-rn} z8Fjm+#&OnaHYt#^43Zh>mi7E|KiKc@lXHXr;ILl+?IS}+7z~Zu8Da{G7ohzF9{=G- z$W!FJlDe=B7za2mEs$Rwf(ZXHTVo-@m=Lz$k8+@hpC1N4$ykV?%EUlN5t|@S00THn zav-_}S3)!~wi6(addXA)krI1u5e*VndRs9IIzbdwiK-OUs3&yM;3gOIH77d=L-QK-Y zt2GCcnQ2-ZosQkE>!!J7)V59MY(9vTywK!9o*hp8duM|ySFg`T!!QdKg!fqZOi~Jo zDB@7!I8juYLM=b=NcqoB&u~AN=EZWLX*x|?C`h5HL(S3SIHak3x7(h3^B@R^gOOpX z^SMunjeh6G?VZi-#xu9CPDZX}HRhh{#o^gtG^TkMH7etARlKPrOvWRhe1W2*x+WbQ z>^KgMibrRg>fkQ%wm4!FoC|)cNZjN>u%Vpml03?5nqtsQ zl7AGCj5;rILhv7$hJXojD8Yh6Jvzd_h`$xA&Q?VGB27Y=lbUAV!JvHAIcf=~D$cb6 z7`PzNg=C-QLERd)G zVp*0(Notv9p5>}4Kl|*?&1bA;C%bv$hCBC4Dbw|I6EBv>v}QV)W@%2=tZOFC!(>Gb zBR4OyIG+2_u@{^U#{1%$k^3tC}tC4F4QCqEEQHMa~$~sGzFOyg2f{!ZL8E zut>hgt{D)=M{*GyIS~^$SD3jr_m62{z^Nc3WQtP07@TAwONbW2w7A;)=-uo6$T*QJ zSFior=YMB1osn76Or3OPXaC^F?dJwF|9pJjYB$onOv_v=a#boDb!($r%Q9cpWT(-{ z6op(&7{|75>}~X)yM9ec)A@Y*{0lGKzIye>*5+ovN27P*&nJ_?`Fs`@xmn0BbhiJ% zi{JO?;?&q|Wm$gZ|IglkKHHLIcVbw2pLx8!-n{!s3?B`OM&E7c|hJ$t+TF!Fo7wN|_H;oXmd(ARVwCQR_|VakL-X&5zu z6@gE}Fu3{R6-|f8%kFQ`{Wb0A$&|{a{oS=j4FZ#V|6u#Y zNrV^&?=)k>S6{#8yYb8nSwV74Hw&V6v(;`kRZVq0$M;+q&}kNvb0DlJYLlti>g{$~ zFX+;Su2#q~#}#0R%Z+Cc2wGN1crG6jI2%9BM=5KfAgYNXK@MVsOzdQ3b%3<2TNV>7 zY=#H{AEXHj{WM^g_=6&x)i2K!flnuaiweF{T3(Eb8~Lo;s}C~Ms`=6aaST8WEtT8* z+(Dd`4)y^PmwA|mfBgKFzJYbz_*DUDU~{ED@)rCIEBYXteAz^~B_IngdG(8SuJ;Q= zB9bIMdi3y*e*a&$tCd=<7G-HfJ2B_3V~0_M7YpEx9y~bZJj?9wZ1mbK(+eFp zOj62^z$Hm)dcCUZo87go&8^6f{e}JblTUzmTD7KUTj0jiF}_~UJe_o^wRWv$n~Oal zjvsv(I9{*O7)>q$Dh$~apxfznqBzzRJ@(xk;)E~;@8iS4Io^mHg;bQS8OC~7@3m@o z4$mK+jFKp`96QeQrR{lMplMpK*Y}oz?}mN=Ta$~D)Na?Cjrwr72>c+9XwRn%A}1$< z>D;nxt6J??rVk?&!YJEvJ>TO65yqcUspwi|bTNU!7zT8nNN>FQ4g?-N&#Ia-8jmc? z0>}ekK#}Ds@OM~_oy^Qiv(E}jr_;_0UpGXa2lB+Tj0g^#bqQ$j10x8N=Se_T`$XU9RO8+uM(GP&=}$rFP^{jV@UpAkusN<2SLmNp8<<<7=xgJ z@@Ou66GaeGUW{jg zAogp`t@TaYv;xPistU!^lPDRw{^4Raih_wB+!>FLr*n#tjs~`ygQFk;M*&^LVGgbU z4EU4dizv(?2m@e4pdrg@mS+%fd0}ol32;Hbw{dcOvRKT+BmwH8C~-b@X_|%53ivCI zAgTdiv%U|k6%`bd0`E9pnox~;eKB7QM+4t;z`KW$>IWXgT+L1sJRa9|Yjqv`6MN}S z#xs%6!tiwIKbp_Z8ujZ*PUFob3=Co#ucknhtRR6HLcjr-%D|r>9hO)GC?q@SuLxE_ z9HQIuR0wzoaL5c#@>YTq0bcD<9#vh*Pw1>xh-E}N$pO6M%ZU-7D=C#$vp;SIQXj0t z=8;}ODRB-inF5Fv5&(G2M9WXx!BVoi$^ii-(nQ(HXQccoE-RxNc8VB;B21&FRT_LM zt2C4(Y5u~RUao#2wW3A7 zyS=?RJ{#a!6^1*XjP-uI-RTVnql2qgPR~ySfTHVEYSox#yePbS_3C^+KRG_)3%ahU z&3g6P?iHC9^@{P0Z@m4j?|jGh!$+qhN;L+v#mR6uTbO|pNxYgw3B&M?>&q(J-!NKT z-jB>UPLqV0PN!agPmBjQBno3$0-qt`d4^#NDq}r6gFz??g5xZ~V}}R}#xHOR$Mbkm zJU+u!@2~ZFo}Y}z^Ti}gLXL-t5Iu-6j&dr62+T5VmV+>g#@8KtF-P$=h2}V4Q}t%; zrEYg`G(HLgvr?@V1rLz{Iqrd1rUJB{PSmgp2q3d741EL!g7l{e!WN5&gYZ}2R^pgc z#eZTC@}N0@F!I#%MhONlGs>Fi4nV2^9|XRkd$0;d5ZOoPgY!@Cd@4}P+wZ)U z<#^JR6~uZS-$}`_!qNG~XgaZN(_UJlz$qLja?IL#XD}bx3-iYMR#g)6JgrwWE-yrm zo7?8ZT6jTJh{Xt!QFwH5!so@Ut)1;&pHbuwKKa;kovFDvJU(uB8((|vO%+_Bc9+NN zN`2_$gHJxu6v=da$B%Bk{L=Q`Hh4XidR5j92)nY}qv%-CxP$AB@BY%x?p3YUX8hP4 z4J;~^U}UmP%)y+-nfuP&^C zE~Ol0OArWgIzDopVt{|kF%AGL6F7|mRg*7-$6pZwEkGJT2I&B55zswF+%w35z$%nH zTfviSE61lKi|1QdsX%AYoq+Egf(mQ^{?QB=D#&$h*fXMtLQLZ-Ue8LH0;HsqvItgT z2|a`a*{)|@{Rt@x$ksg5DUE=v)_+1s5wwQIm$gder%O^!0V}~4Cs`p0%vM7|y)S}% z!AN9hXU8_3PQ5cY8{GN$e+o7UP2d+XUP2Su2fksASY4@H zN=ap4lw3)Is`y8wR3Kd>N@csC0VW7hln)buHOR;2i2X}$B(0NtEV{G?Qm&Rc@Q<-b zS#T+!P$r(%da4X5G)FQ)Ap5Bf2PA8y0W?9 z`%WI`omx9elDTK{s>HBtOcf@CG)a8x<(GL@SWL#>c;nieuXiO;()fBF#eU@5i@7NB z?QXMOH@clR_%;vj-){(dkx&jpPZkSR5qVj9@r_sYrvB*Y@b07I$zqu&g(3<-VT!6W zoBFrDajVg#(>zes+QSD&^@d?oC{+T(eb;Gn?V!g3e@#3t+R8w9%@G5~pjrv-AQ# zN+WbDI9`%90h}EHpChdsYG0FE^YMH%JdAQ%5L)&66;1Cm42NX#6cVcuPDVD~hk|SH zUuI+GN&s`DfE<5>KRn8SN?7?h1U;3q?xh9PKzNf|TS%ycJ_p)F|AD-0m>~`b3(iD| zcC51cE@25mER|gYCDgyl4cpc35(9+z%*xzz;76hjo#+b z`Ps!}EQr$5aWaM(F6O)>3MOyGM)MQS!H1#NlGEDkf@kD$kz!YYy|i%hLSxBDGIRN7r-eY0Ar zGwa*+vy*Y)rTDNej)91bm!ymiZrtiu8--$kZ^GDS5GRSQi+QoUdbQ0mg>8oL8wz5P zMU$GT;8VgR~< z)rcmsb7>ru%Z!r4%36>C0LSZMh$aYRl=?(>wR~R6QqsyZBc+ghatdeFpOutFAfD|Vyg=yd4W9>)opz)z-&(ZwY2 z5=j>B9iH5MbY|O$?Su@^D+(X@W~WpA`@iyc!o-44lvh6lFzjC8=qU;p83ZcPANECb;DPyUntgHh2>FD?eBXMgJ#ziTcgOB>=I zcQTnX6en^5$5IN%9d!CFqYASHz7!(KDF#47>AG=xF^toqsaAwEd;QA6&D}jWiUv#n z<2#RfJGG>+j0!$1`s{qPG~NBJJyq3B*PU6ez)SnRbwKGmU;Fy`a2OXUm>n*b%P0>M z=qa0|sU+~0wRrgCL8IBw^vb9A?z21(u2HR8x9uI0D`gk~o(YPE?9Uo0rs}T9Fz}s#=w01;{7jrM%iuf?zqDOdQ*xMW#`2vb2nF zC_eW z5~Ii^s7D}tNh^?rW-i?U?9=6mWU_>w;c-e-KnB6!3Iw%C=OGPUMBCWUr=Mqn+F%wt zi@p`G&8p_5VChejr}eGPU~i+t z0cI_y)oKssGcO3&yK7XEwCl}Br>Aqr5mm{v>{>x@_xmu!!!&#R@GMILS4%5YG+|n;svrnyLRafdcb%(LluE5So6U+iqY9a#E2rlU&(lo^Vrqs_ z)p;T2)unCvGoX*mYql$mmZ)g)i?7vdO)iC=1X&pQs-E{ZI7yEEAmW6a7qZ=}T7P$0 z@7T?rS8Kr*6y`kPIbaigKA&cBBuTU%h7j3R>;0|Go8b20&ke(x0DxfQ>7)u-h;|Uf zCjlpXK`yG{VGI<=#4`>kkNv~)Ci?I|ck}h1* z2dM>1)WifjpOB43r2;9y1qd;Qrpm=LW+dyELh2#CU|*4jpfY@yg`d$ayHTdgT4kCv zkAiJtui*1sHCQ2C!o+6_NMk5=klgI+iomYcKd-~ZLWH$J-%7@m=YFwbS0e|dM$T$(Uz z&ddeAzCTIpvb?*s8B&Sq*h_o))*D~5%=qEqX%NR1xf**^V5J+q4cqo6)0v=avQe3g zr+9#`;EqpEWKO8?($4zkqvNw6jTk=a_Srb~ikwZ0!l>0P)2`MVVH7Wy!DMPefDhv* z%cFL;BFkL6t4j*)x{SG?r=z7H7|Ufgn^Us|LL&Bg-=iTuS}sHIj68>$j{MG=s8!Qe zSK>vx+mG~0?zx;FP_Mn!QgpM@uy4N180~O#k8kyILH486;lz~Z1fG|jg=j94N~Ow+ ziK;=4N;CT2{x>R>>({QmDToam=Lj4G9Uy{?dGff|%gBX{egZWDPweG$a41tN;9=1U zf{-Gi2}!K5g~m!Dx@A>VxJ-jK5g4*~C<93Z6;^prjH_gcAIO7lG2F@>DovCsWq&{u zl`k8{EK;^ACQbyA6{0a8OOPeu1NCsF)Oe0WenN;ntX3{BJ5n0@OqHhvqzu#0L`v@K z-D-Z`&-H#$No0L}{k?bJuQysBeR$h-o$>hW&DUSMcJ(yU)^dY)@1VMW(X%YJlx zs5RIt*ZYQAlX9u4wQKsur}v&PvRvP2Gcp&2;qZ9Ss<#f051Z}AFa7f03d4ZoM9cMf zjZ&-W+NQjmWdA^5=9=SYKSt73O}Asy505T$L{@47kSEi zu3vA|1X-Fb;>nOzRF{_{LCkno34_@8n87JT;1!lHR9%1^P16A)Nm?*`rPux1?%p?Rjdh0Q za(u!eAdOH4o>9f-^s35*Lfh;8PsA7qLvXlUyz!);i!wFafOPKvJht#_?^clfp z4ftKwSm7NQhrAP$l$7~snn0Oou2SU}dOB#OjEzV$_zzZK9eM-(0x36y=>LQegIH9S zmi1w4SCp};Mg)@O8Z7ardCq2;z7)(`>0`%M6+u7=KalY>k0ciOLW$4&Lq@)+Bmx2< zz`O6h>nu%4uf?5%Zsjib@{bTIZj4<>&vOfA>F zn2asoTZVyUT9PQRngoNx3w%w*3(u1@xxTlzv$3ukwI^q1qCp4ITx1zl!aGhPpK_!4 z_M>}Vk#I7*7)^G%n^jd)1@_9p-uB+k%WuB===jmYllzR2RVo_I^1vy&uK9jA9?u-l z5yXNQiYWFrw>px{;T6y{lch`=v(_TL{UM&K)(p14E-O0adV$EdjvkI#S`NUWNk#BJ zk_d*Im?V^5OY$PjQeR*zkMD=GQSN)i&R%nEgL55=%GK#moD6eWmh)Ux<(6x+A}vqve4 zkfm(3ssQ!)q1W!I-9Dce@zG;oOA0i3PGPB59@RXDy*LA>E%tmzk}4c4#8ECvjHWbZ z6F-WWjsA^;E8kw1EI+oCW{oA1+Y8#4Wamf)#uqgq)tdFQ!SL?m)8q3o>^DQ#Adp$i7g|Hg=_2sbJV9z{)#}5+kP*bR z$PA;B#!-J=z4m%L;))MGxu0aLD02NxMb<6ZNb0TXWIhP}RF>6?!;!|x=NA(<2zuRy zAQTH{#Ov{R_Tc)Bb$e+K#%8squW##;?p5nTUL<)2kd~*jxg^U#3YN8?m?TTV7s!xA zatJ^i*9{9wsMZ=$1YSnkY}MzJFwIiE!q(~v!xS0xn`3w>7_tyrkXH7;&j;e3S%uJVeS_7T*^Wgw*lz zX|uM*(|H`*=sv)I!N%eI$)kT~j^Fo|lZw$~d5y+dc{S;Slt5Tvnj*Kplo&y$0{~N| zA-Gs+p<6)elwJVB4C}3CX*7d~CYt0@F0er|kv`yq@1wwHBLQrm6@hW6P7D*2vc&g+ zRczz3v#3MbK$^fMHiTBu0&)#f&#G@_88QzMl7YSlD&ZZ&pjVzrULD+k+T{D0kXk6^ zrj(Y-988iPtX40jyfPT_aXWLo03Reyi=C!i{T$!d`voTvz4DL#(f{T5|Kv}9_@fU` zP6tPa$6MQ*AH4sgk3PBc{)ZnfY|9PsiOyM0`Cc#@P5>1!kZ_Rme7E13O-B{Ouxual z+HJw8@^8L*v)xNO>zw7x(_9#wFJxIfxUoH-j~pkpY^&W9!_?MvWqe^*)JCJ$j&p#A z@1=`MSDJf+W>cHZPxU&V(m_F|TiaXH+3fgmqDWoG=1z|Bbc}5Us$w*oZCO%ORfj-E z5-Y$dqAUk~3TzTaL9<<97&gn8TCJsM^!9;LsY`yetTv(hzN*unlL8gi8k!_YqLk@X zN|WU{ge^^dKQ&sZpe8UJ2Pb(N^T1A)8QPW~#=fF*;GSd|TWbJ$(xPVW9;oXZN|O3v zI4zQ+!P%d%>|il}5=4WwcK__?FP5`ETTDKcWg(|2Nv$!AMDU1bPH@EIp%DDTl`{At zdk3%V03`qmln|l-0bGznC(i^x2&;f8BplSnOWamvn9p$dthd#aj@PT=MQ(Ui7gSqO z0zwkh$oXc{GY&qG2^C5g;S#P;1Of$weMl>$V=F+De=tCN8eCf$$CgW7v<3V@EE9hO zlc-j*-cx~`GEuhiw2;_aS%y{QjOQwrX_5yC>wy55qLg;!3mb23{2S>+LQ} z=Sn5Ja#eZxl{OF9XJ>H~(RtQr>DycDiY5$(W8cdw)n*v_dL^#6c+Fs`g4fm7{?6Wm zyN}v!gVtippDoOh>-uwR9uy`exJx^J|1XXQ7tv%A)*G9Hi-jT^i-kqytZn+OR(EhQ z3H-!bI52U>aW%TZRG@Zwn>&yNm2na@v|JRM&=n$C_seRP-?lIzSVR;pCjih@JXBX|jl z5Qm6P9QE)4R|Rl|Ntmtyub_#_MDgiWoh48aujE2Cf-fStUS7n;;7hp?#YAwIqrk?J zZ=|jA0|L-SAs`15!4^S?4pBmNh^=UjJah!t&`^1#mbfj%05*n%M*I@&EU`~&KnKuG zK~DkFXqI$|I1Z@!w0kSTc1bOwhKX`X@<{~{bhS|JsX{5(C}tx~L%tW~*LtcZeNNBy zez8deWNmHj-~7p+0AIvOlEevk90{P1JPsaqgdz#My8y%OEX^0@9B-h-A5~>B-rdp=gd9=?y*SG{;LsK^u&s**prud_10ZyFD-P`fFX^^TQ}P zJG%fdz)*pna$K@l*ilGjIiF@Bggxkwb6M;sjvX>Qj^p_>W@!xuFfYaUV0K14Kbv}P zQmJToIR&N7r`co_3Ze)xku?)$BgV0rdaZ8RW)#I|Cl*cfss>INH@dJ+4(C*+Nxbe` z;&cdsp)Sa&Z7(F5hrUITJf5VMRj@2=O_pcp1I6IMrK(ly(?#6q>_c2e_+mBmVXULC zK~RABfDeHNELO0DEhvjfc!By*0BfL#chQyV2>ho8Np(~t$!8cN?cg62qRmSUJWf;K zV*!8>2=$ak&>KPxXa!pX1qjpdk?=@)U<-d*hQ;3-jX+0o$jvpYS|GUDE50II@Z2}H`WY*bS^j1)DhiIJuXI1B=X$^JB+_a&{?+gP z?&HUYX_^49vlPwo{N~Q~t8cym10{~)H{N(#Rjc>z-*+5G5G6b#krts3z6LEZjLfrv zZ?11P3X1>1_wT}-2fn)H_=B+x_~hAiG8@GSGn&o77|Ta#62(5Jh!vKu#7oX!O=DD^Z+Q^jTw3xjcNo0;n;n$ZA*s;X^lu047DxB#F)U%$~X`fF{?P+`P-o(n@z z6xdo#HEKL~Qq!qb6hdCayu=9tuNvakPJKEZrAfN6-2$>;Xz}>*f=bzDP3iPnFg1og zqsSGC%^K~7Yg4jR({=sua4S*BxgcV>tO8as16L5u&^9s#u|*0oW`Hh|;0$xgvaE`bzf7ajYNhNF@gksAXr}Dv z^KzL34U%sZVy|ShOFNf>t7NOnGr?2lAKqaXDIg>9uiNK_yYudm1 z?cae}UE=w@o!xq^*6ws_jYb^DlkwQ7)Lwn{wa1ShdqD{KuIHy|3VR54S)*Qs<=Mqd zR4bF2ZP`H(B(RJVLDTD@n}!kVhRNArVJ`!SF9Of9%w?7cNhr@Jf+}bLiiApgyY)gy zeSF;UewxTX`tc(OOcYgD)k>DZumR^l)HG#2pBh!&aUF1}nHQ*}~d(49_A&H>3fR#uVsf86w5-Ep$eZ60J5&^k!?b;vw!5>aWW7zRP z9G>S_>-GNHnr*`jYR%{Kt5>f+xPN~-pJy3f29oCq8OL~5B7_QQR%zCQILLE+du+98 zoDZEemmItSxLBCp(stInn*eHA#s`}2?6nn13vF>a7`^oJu2xf?43AF-L({Y%Y=Ol2 z*pxLxl%!U(?K#OOcOHTh1Y;rqPGVVnqL>>_N2aD5NeJ!$ooAdVs-B17$UyVtL`cnDa)<+m-*^TIfQO%}i_F&DvXX2%idyR>6R3|$zNh+(X= zv)TE@X|rie&x7%JEUENxobK(v#t9lA0Ow;uABc?-V}LGlN@ax{Km*Ayi$IIGFI}) z)66m-lB9Ii7IDrl)6dDmOJ3itp!v_4d>KdtWHO!p*`IwMAR6O2hQM)`H*eh}uV`_H z7Z>**JUBl;hy4;KA;crF#{`iBM}X(qFbV~U&(f?`txV^$dZoI%xpjUqolG2#D+13> zf>e?On6u5rXrsSA7!CtJU^1Ob^lk$j1Y4;WQ~!8lr?t7&&1rTpnf5pK!Ze>QX5eU8 zizSd$6or5+51%>aFKs_fV5kZ1GRiX6_d}Q&p)25nF!*HC9KtOaY*`-XNe-i#7b%|8 zj}PaQLF76Ko{XhEaB<{HvbEp8IJe_C11CaOq|t?EnL(E3;G6qS8U$GYQ42nJk;+p> zmutOFbFsJpgS~#UR@27gAwXw%F^xl}UauN8){ngL1#}XepfF45D58eL8FYJTP3&3W zg;8f)()3ol^|Gv13p|-y4))cs1{lCBOTdBC^;680@PH+v1+!rlA&TF)UJ?gX#DfbZ z2a&R80xKB&lyf-fBI@w^_mVO|NDe5#YN@h0kkX=tCjbG=^@61jSC2;CKv&V8AbCOX#pHvw{TU z%a>JfUUG8+GcMh%*F!%ZUD$NWN+RcbKAt_Hxim{yRzQqUzAQ5r7sv4PfJ+jkCM$Zf zDj{BSy49++x=On%MX?zN8MNX!!F)n5=2?>Daab%ZZ|O!EC2a3ryLR=JrERK8#&a^q zh!`=TUq`+WNeCi>8v?2oXi>1B%s@1foJ(K=(%}m|2mBzAKuAUWlm-YZk?Q2w2l@*L zNhA@XzS2X-r(7-DK$F-Cd_a}#1;~d?AZVH+m%!09KJN_d5K<`XU=n>8T*EBF8zsiE zlu!)WAk4sT-1M?#Qmf1dDZ5PaFyQ)3{;Ke4-pU@@DW7TZoPZjbh?4xpjnCctdcPzj zqN?iY>FIm#{|M$W@JH&68n8x@7URJL@R?+I;6PFon3Z5^h9yk*FensRWSQ)Z*KanO z(r7x-3?--h^?q%$SG#g`Yh%4-nin@;SPvq9Jh4?(fq^Uuf@~}|x2v;>mvh-7Fegh} zlq;UA-2Q09a7w$^8c*lvBg+p{n5hL0FwFHkZ4sD2fWQH$qe#;XroZx8>d-L~WW_K= zRjP6Zjz-Rk60K@Nv#qt;?WMEa*fOYspN^KYDjwWub+_2=8ZUFLCl5l~jB*HH@|Y<& zk=KE13OWa83k-{rn5AjECpY^sFZc%swaqI@zu#kNl@kR&8dH=XI4SUHyIW%!{{AN; zbCPUqsasd1YD1ijfyo3_=Um(8IZoEV^C=C1EaOtioaF?V))N@} z__Bu_xN-#tGL@D<1Q0;@fnWH+;?mzB?6ZO z(ho?H28l8jJnJw>xq^B`$XeO$G6My2O2eylEJc1p&6NR^Wsu%j(^L_Cz|W6-Nk{~w z({BH>|MtHFK*Fx(I38Sy;l&U<5r8E)vanAiS%!TdB_Yg~0AB%Sbckx${H2$#bbHG6 z>l+u7>E?E~*J&iVJG17lKWnyV(>_rYVKjDU3s;gj@a-LU(OF}`PZm|C5Cq)q3?r-c zrJMA+eO2K-Kb)H`Ojf!o)eKoT#3+j9Gs|}I%D0>@G+jyXoHPbjUxqUVHm}6 z0X|3^LZp^oxv6jNr`rdtsxuigmlQ5d*rUgj^);zc%XO)_n7gbjJbEx3orQ74DGJMp zz92%NR~S`sYp*KG;np6%zQ-92-f<77le?C6?1jfUb73xi><16hI9K)Uf{}5+;{~PV zxG#YLeM4LUz6mffi4Z1^1<@o*$TuWiIxtW1gTD@B5VXNMk`yNJv&wpQlmP`14ErCO zTdfmVq6YCBfG*1GL@=nx3vx{^IS`A~g586;1rpF7bg9s9z!0N6l#6{wgRmsuqy;p- zaxcjB^<@hFpY@5zY8y}mjXvM!OWl$|p00wE^fdicpd-+kt37qK{`rtE4~aAyjXQVl zo*bXSJP+YO00BY*Q3gH9ji)Rby3E*0rip)#vssO4ISks%ot)rD~1pqoX4nQ(4mO*Jh@ZB+SM6 z%v>xN)^fT4n{2bLYYHRqlx2A^s{=+QSx{6702PHXzBL9feL}z(2Eer$1Q2`y;iQ5f z!r*DQTS4GCj$f@dAZCF9rDzI_A=}I=azAvK$-oc&4EknN45JE8PvYb2tcp%wQFV-i zdTY=FzDOg6VtH0s%#*+msXRzMuA=F{u=9BWU`S%&=!u!997QG2?$Rnemj!y--Pz1@ zzfxm4$z}xyn0dXYt3aJ}vGg2~Px#y{ida&v)*7!iktv46;!V6tZmD`OLmFB*^j6APaL#dU8zjp{!KTPM3k7_1F4d z=;svOX*M?3`?Kjn5Y!M{k2C_;2cH$d3+NuPJivwr4q;(>!~w+dKyhl8FiC`$#mS0x zes;mLvg^c_F&1G-KTUJWZqAVGBvybiaJYQ?RqSar@fvN!jS;7{+wVWxkoTfoRJ2_0| zG``{&k0TJ^A)pX!CFl@f$fHEit6DuObtQ-^@(16g4(2|Gpj9TB>dTz63eXaI9C+xI zxEmD31BpN;@og}gA_rpd#5D8;Q4aoTMqW#fq=ux21!xIFtg_GWhaE<2BPm=Wc~wfb zZ^bWVCh=zQa0%v-%CN-LQ%VAXDl3+Jnu!Ta;x7vMWo9YRYv}(@>vMEp@0W)}KpKtu zZ~W$Oo}HZu0;kB}u2y{s;CTl=FRI#-4@h}a7wANI4 zUcb0-oFyLJkY&;Jz2(Bh8|LDaq1olq)pSjifDwEcEt*UoLZHZGpcno1bui*Bqs7F^ zQ#y|0dcEqpcwUyFr6?%E0ETywWHAgcfh#yRosMQ%n#n4^zS*A5=8|a0vO?wDeCnMZ zPs5M`^MM8O66z<%-h3J_mo#u2$Fq6H`EHWs^l&&0!c>x_ zdc7V;c(?^f4(K&Wa!!!VS#f$YqbX@I58JJN=tn$9Lnz0vog_;Hj&hf$p7+3Uj#d2XKN(f@**{w1le+-~`dT5`sN~P1Htm0PPZ5puO@L zFpp@Ed;}q~1@bdNJl>RyULUy-7+NV&4IL@aML{zt;7foPi?Iu7IHO_Xq1(j3$}rI+ z-(`JFt_1z8vZxf?U_xymr9rGhRLg4Um!Vy9{;0H0Dwhc;xLo|CEWG6Hy~;DqpSOIe zNCaj@a9`hj_b){r->0Z5@^CtPcz8tTi40zAk=G6VowwiGzp^_R4<0^x62{5d*D`y!G;f^)SH@4OOmNK1Z5Iw0H5SkuGx$Ag< zWEjybhnMhyV`5v*T7UE5gUM(J!5Xb;2C$o^sz;CJww1|pZ9c`57f#0t5cObL0PpXj)e^wv^x8+9wK0^f|y7pzc-GUvF~0?-(xx?XM6@i`9HuN@eM=(v95Cp^c4tD@@c zU^G7;*ijw{N<=e>B1yAx5O_X#8%EWTRXxv{I1W0ks_%y5@jQ%ThGVik13w?46@lXb ze&2cfop!bU$=$o2<2Q8q)|Ku5;Mab&)9rnD=dNX&f+$vMRTzsIl>!EU6TxQaB}s(u z`ODHI3L~CZfFoF1uuV7cVtf-gzHTOt@H|jdZ3sID6_(@ENZ|!)K3!T1AAGG^tI#UK zY?85zP_0y^Gt;(~JkP<{g*d9!Zh$N2`=M=nNlGskOJESDz&GQhadGqJwb6yUv=f>w zjG6+yiqa)WRn3l{{K3WWA@u6#@o`ZkB5!Q0y(Fr&q5uxn5FQAck~aYT5GCLWzy+a; zu*b*;!G^Oxxk8oHK(_(egQ$~<8$Ki-!HPTpg;)g-zF-|9XbIgEYzvkQ3rleN%5pG+ zZUoeZl@hnGC=(@u34_6E=`7%fl#nJcYt;@kQ401H10b-mGC~$)Ns3`vhHuz5ZpEsI z=&Y=iMP-^~mPKXhN~e@0D_-9Gyu7dX%SIxqs{Zi(cYpB1?@LU&-><*(;MbbLT{6z7)hxXzLjF%DJ~MTRIy5c~bEC^4RIgX6H6I<;Ce z$>Y;=JI@8zc579|4FGh($;nbyXx(7{Hx!cm?pz= zB6Nad!ZhLpPLlX24w(Yt8la{mO=#c8TWnx3Tk{CQ3UJsHd{<_*zgDZ(_&AP$0X2=) zRnc>4$AM5Kh@ybJ`wp;^iJ~$YKwM*Z_-a5P39jC#L-+9P7P|CB5JViun+ua=IcSlg zxG+d=-gq&MsoB(NHtMX9RBHmm#A%+LoK8-Uk2J%NA}aEYljDJ)aI#eEcdpPh?2|Ub zQ~(~x5YS_S6T})q3;BRxg@6xJm;i7i{z>RVW_A3-hygU{@_iCW9~dtXtb-cN|4_d? zenHv-gcDO(M1yO};)4Xpp;naAM43h@JrrUDOhQMoPbAVnL-=$wNIVtn>q^iR>fk1n z6aY*3E*Y)lANZ84fu$=26k=v&tIWZ5B1EzLhfbmbSzDz{FTLLXyxiCOWg`)g*Is_9 zE*IZ?vPZX}i^4Op1!y;&{5*s`k5e z*s^}V+HPZqffCaopN)V*fE{vPWQ>}w8`{#w*U!wSp6^h#S_8V1B-vtag7GXZ@M&nW z>IFfyQiY#L5X30(bzL>|iswa-ADoUxvn)>piG_GA^ivuFF`vz1#Oh}Mh1rOoPkeCJ zIDttLAiPvjHd(Ghz=Ie7ToI5ELHywg5G%QR57STzh{mI>48Erdzah8CVTq;aK;Sto z;#HuKjrr?+yFZCy`OIcJ3wojH&@98SYB`*=!B7G2A!KOKpq8v^pavG%z**ZUDDdY2C4LaV+%73%82O4K@+?)W%B_0!>uv&WIZ zYrSTR%Zo>kPfiA7#|vQWiK5u)bZ2uD!VQ=gd(~Q9m2GnxhCU3Uciw#C>i(`1c;A2T z{e@+xS)pkfumdYFvdnv)D=B=dt7y97`Yy{ATU(u4O?F-D<_jB9Y*Pi^$($uP$Z{&7 zxfFwwAbac8w`S%P!jnq15~qQ#D|t?PP7Jel;AY^4@H~(20L*

        ij*0MdY)6>$(xfD{w_zycGb7EbNxlYk~UZfgJ*?@N=O|ocQZkD!`28>d#TWgd~E(iT~+8 z`p?sxGAb1p2745Go(BMiIX3V-fn^T%cCYMg!KD2k{s;g5z5DkLk586>puFY1Ali@Z=| z?DppR#c(>9*(Oj3J|YPss7O^bfF%rPmZFm&*xy-WMS410eCHeAOA`-bkl+6|e=s&} z+YdN$Y7!4q{uW80;JobPs(hxQZ-@=3EU1dBE%yFAL-QGI588mojmKosjiGr#aO@_(4-R{CP z^E?v-e3vkcV}{CPg-_FvW5p=SEYlBsAQUD`BRnl#q!b-Bn+O?9nTl0 zri1g{X4t3qeXPI*puww1!Al?qHC8h|vICUE0`XnumFR&S650S4AfiYeBFI9-AXbDG zWD)>ad3P@S)Eu?}e1dJ40+m)Ntnpj{tl<-8v9YoT&^jI(!NxHgq{RPE)G8IQfRsTE zQjQT32qsA;EXnmUm@I`fQJN~tpEnEZL>D;-}<)NTXi=^B?}u z^HJ=joq?pOCR_n{T}}y14k4zw^5%=jUFWaFW0mR2D-75yH%tWrZMc zx-PHv>svd$!El;p9Lsa_`9k2uT2(I~5b{EBH#kl>zc|UWh^Fx2Ben%>l_s%ya%f4S z{N9K6A&T(5C~^tnI%2$}1P+bJKTNfz6Y=qSv#O%2Ljp`v*6#F09i|n{Re`R)`taG7Q0U(yGx* zb3ZTet`gT>0+Au1F*`kR;1(CspylbD2$K?8M)= z^7DU&^OuuEIF4IeTl?iO?@PR<83X#u?w{DHbBSA*TKMGUdOE)(As>=EP(se?^Xqt9t+Geexa2)t1 zGyrKnp8;$Xu^u_>&gS0X$ys-;Kc6j&3`R7U<#??sbR&*Jo}sLTIWrfQyS$jrP0zDk z$56z*-R%dD9*rFz0w`LbL|Kf}Vl=dQP7*~SOABylJcsp{F`X4`p+vsesBEuyuYL02 ziRWaMn%?dAA%=VW+3Z|GPX7k6rIf}HVj=DxoMVAMWz{St1SkBE6b|6z;jhB$0`c%hgPK~$XeFy zi2Da^&soNJqR3Tc#WX$5s7sQeC@q$)Dw+XMz)Mdk9`*?C7QzOX@d9`jfEEJV=Y;?W zfQ4u#8BhnOa#9xrp@%5OTW0Y5Dy$OU1lI_4FjP*s1nH*q3)~(VK=}1_S^MF zouP{D%?;DC2h#=2oG;(p-vkGs(VZ5 ziGn1vv;a6jlpzohCC`wDg75`@A5 LK&9?(vZS@tbqTkxf+WRhnEBbyN$-1bUCU3 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

        sGDpmpV4)=7%V}VzR&7OdZEDsWg#a0~q9{iO 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 K%hk%5!~YNB6d1Aq literal 0 HcmV?d00001 diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md index 0fd6256dbc..9da948e8a3 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-listitem.md @@ -1,6 +1,6 @@ # ListItem -用来展示列表具体item,宽度默认充满List组件,必须配合List来使用。 +用来展示列表具体item,必须配合List来使用。 > **说明:** > diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md index e45219eff3..bcef3272e6 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-scroll.md @@ -131,7 +131,7 @@ scrollToIndex(value: number): void > **说明:** > -> 仅支持list组件。 +> 仅支持Grid、list、WaterFlow组件。 **参数:** diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-component.md b/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-component.md index b8ec7ae002..f61a028672 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-component.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-transition-animation-component.md @@ -60,4 +60,20 @@ struct TransitionExample { } ``` -![animateTo](figures/animateTo.gif) \ No newline at end of file +示意图: + +图片完全显示时: + +![animationComponent1](figures/animationComponent1.png) + +图片消失时配置顺时针旋转180°的过渡效果: + +![animationComponent3](figures/animationComponent3.png) + +图片完全消失时: + +![animationComponent2](figures/animationComponent2.png) + +图片显示时配置横向放大一倍的过渡效果: + +![animationComponent4](figures/animationComponent4.png) \ No newline at end of file diff --git a/zh-cn/application-dev/ui/ui-ts-building-data-model.md b/zh-cn/application-dev/ui/ui-ts-building-data-model.md index 4d516a2b3f..c2fe6aa7c7 100644 --- a/zh-cn/application-dev/ui/ui-ts-building-data-model.md +++ b/zh-cn/application-dev/ui/ui-ts-building-data-model.md @@ -59,7 +59,7 @@ ] ``` - 实际开发中,开发者可以自定义更多的数据资源,当食物资源很多时,建议使用数据懒加载LazyForEach。 + 实际开发中,开发者可以自定义更多的数据资源,当食物资源很多时,建议使用[数据懒加载LazyForEach](../quick-start/arkts-rendering-control.md#数据懒加载)。 5. 创建initializeOnStartUp方法来初始化FoodData的数组。在FoodDataModels.ets中使用了定义在FoodData.ets的FoodData和Category,所以要将FoodData.ets的FoodData类export,在FoodDataModels.ets内import FoodData和Category。 ```ts diff --git a/zh-cn/application-dev/ui/ui-ts-layout-grid-container-new.md b/zh-cn/application-dev/ui/ui-ts-layout-grid-container-new.md index 565bdddd40..e8eeba071e 100644 --- a/zh-cn/application-dev/ui/ui-ts-layout-grid-container-new.md +++ b/zh-cn/application-dev/ui/ui-ts-layout-grid-container-new.md @@ -27,12 +27,12 @@ 栅格系统以设备的水平宽度(屏幕密度像素值,单位vp)作为断点依据,定义设备的宽度类型,形成了一套断点规则。开发者可根据需求在不同的断点区间实现不同的页面布局效果。 栅格系统默认断点将设备宽度分为xs、sm、md、lg四类,尺寸范围如下: -| 断点名称 | 取值范围(vp)| -| --------| ------ | -| xs | [0, 320) | -| sm | [320, 520) | -| md | [520, 840) | -| lg | [840, +∞) | +| 断点名称 | 取值范围(vp)| +| --------| ------ | +| xs | [0, 320) | +| sm | [320, 520) | +| md | [520, 840) | +| lg | [840, +∞) | 在GridRow新栅格组件中,允许开发者使用breakpoints自定义修改断点的取值范围,最多支持6个断点,除了默认的四个断点外, 还可以启用xl,xxl两个断点,支持六种不同尺寸(xs, sm, md, lg, xl, xxl)设备的布局设置。 @@ -88,10 +88,10 @@ GridRow({ }.backgroundColor(color) }) } -``` + ``` ![](figures/breakpoints.gif) - + ### 栅格布局的总列数 @@ -333,8 +333,8 @@ GridCol组件作为GridRow组件的子组件,通过给GridCol传参或者设 ### order - 栅格子组件的序号,决定子组件排列次序。当子组件不设置order或者设置相同的order, 子组件按照代码顺序展示。当子组件设置不同的order时,order较大的组件在前,较小的在后。 - 当子组件部分设置order,部分不设置order时,未设置order的子组件依次排序靠前,设置了order的子组件按照数值从大到小排列。 + 栅格子组件的序号,决定子组件排列次序。当子组件不设置order或者设置相同的order, 子组件按照代码顺序展示。当子组件设置不同的order时,order较小的组件在前,较大的在后。 + 当子组件部分设置order,部分不设置order时,未设置order的子组件依次排序靠前,设置了order的子组件按照数值从小到大排列。 - 当类型为number时,子组件在任何尺寸下排序次序一致。 -- GitLab From 969d0513b97afb6276be519e39abb2a5b50fe045 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Mon, 16 Jan 2023 11:37:42 +0800 Subject: [PATCH 284/383] update docs Signed-off-by: Annie_wang --- .../apis/js-apis-useriam-faceauth.md | 47 +- .../apis/js-apis-useriam-userauth.md | 1052 ++++++++--------- .../reference/errorcodes/Readme-EN.md | 3 + .../errorcode-distributed-dataObject.md | 19 + .../reference/errorcodes/errorcode-useriam.md | 163 +++ 5 files changed, 693 insertions(+), 591 deletions(-) create mode 100644 en/application-dev/reference/errorcodes/errorcode-distributed-dataObject.md create mode 100644 en/application-dev/reference/errorcodes/errorcode-useriam.md diff --git a/en/application-dev/reference/apis/js-apis-useriam-faceauth.md b/en/application-dev/reference/apis/js-apis-useriam-faceauth.md index 81fac3a36b..7005776c80 100644 --- a/en/application-dev/reference/apis/js-apis-useriam-faceauth.md +++ b/en/application-dev/reference/apis/js-apis-useriam-faceauth.md @@ -1,4 +1,4 @@ -# @ohos.userIAM.faceAuth (Facial Authentication) +# @ohos.userIAM.faceAuth (Facial Authentication) The **userIAM.faceAuth** module provides APIs for face enrollment. @@ -34,17 +34,17 @@ A constructor used to create a **FaceAuthManager** object. **Example** - ```js - import userIAM_faceAuth from '@ohos.userIAM.faceAuth'; +```js +import userIAM_faceAuth from '@ohos.userIAM.faceAuth'; - let faceAuthManager = new userIAM_faceAuth.FaceAuthManager(); - ``` +let faceAuthManager = new userIAM_faceAuth.FaceAuthManager(); +``` ### setSurfaceId setSurfaceId(surfaceId: string): void; -Sets an [XComponent surface ID](../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid) for the face preview page in the face enrollment process. +Sets an [XComponent surface ID](../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid) for the face preview page in the face enrollment process. This API must be used with [AddCredential](./js-apis-osAccount.md#addcredential8). **System capability**: SystemCapability.UserIAM.UserAuth.FaceAuth @@ -56,17 +56,28 @@ Sets an [XComponent surface ID](../arkui-ts/ts-basic-components-xcomponent.md#ge | -------------- | ---------------------------------- | ---- | -------------------------- | | surfaceId | string | Yes | ID of the surface held by the [XComponent](../arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid).| +For details about the following error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 201 | Permission verification failed. | +| 202 | The caller is not a system application. | +| 12700001 | The operation is failed. | + **Example** - ```js - import faceAuth from '@ohos.userIAM.faceAuth'; - - let surfaceId = "123456"; - let manager = new faceAuth.FaceAuthManager(); - try { - manager.setSurfaceId(surfaceId); - console.info("Set the surface ID successfully"); - } catch (e) { - console.error("Failed to set the surface ID, error = " + e); - } - ``` +```js +import userIAM_faceAuth from '@ohos.userIAM.faceAuth'; + +// The surfaceId is obtained from the XComponent control. The surfaceId here is only an example. +let surfaceId = "123456"; +let manager = new userIAM_faceAuth.FaceAuthManager(); +try { + manager.setSurfaceId(surfaceId); + console.info("Set the surface ID successfully"); +} catch (e) { + console.error("Failed to set the surface ID, error = " + e); +} +``` diff --git a/en/application-dev/reference/apis/js-apis-useriam-userauth.md b/en/application-dev/reference/apis/js-apis-useriam-userauth.md index 64e92b13da..29044d135b 100644 --- a/en/application-dev/reference/apis/js-apis-useriam-userauth.md +++ b/en/application-dev/reference/apis/js-apis-useriam-userauth.md @@ -1,4 +1,4 @@ -# @ohos.userIAM.userAuth (User Authentication) +# @ohos.userIAM.userAuth (User Authentication) The **userIAM.userAuth** module provides user authentication capabilities in identity authentication scenarios, such as device unlocking, payment, and app login. @@ -12,268 +12,115 @@ The **userIAM.userAuth** module provides user authentication capabilities in ide import userIAM_userAuth from '@ohos.userIAM.userAuth'; ``` -## Sample Code - -```js -// API version 9 -import userIAM_userAuth from '@ohos.userIAM.userAuth'; - -export default { - getVersion() { - try { - let version = userIAM_userAuth.getVersion(); - console.info("auth version = " + version); - } catch (error) { - console.info("get version failed, error = " + error); - } - }, - - start() { - console.info("start auth"); - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.on("result", { - callback: (result: userIAM_userAuth.AuthResultInfo) => { - console.log("authV9 result " + result.result); - console.log("authV9 token " + result.token); - console.log("authV9 remainAttempts " + result.remainAttempts); - console.log("authV9 lockoutDuration " + result.lockoutDuration); - } - }); - // If tips are needed - auth.on("tip", { - callback : (result : userIAM_userAuth.TipInfo) => { - switch (result.tip) { - case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT: - // Do something; - case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK: - // Do something; - // ... - default: - // Do others. - } - } - }); - auth.start(); - console.log("authV9 start success"); - } catch (error) { - console.log("authV9 error = " + error); - // do error - } - }, +## AuthResultInfo9+ - getAvailableStatus() { - console.info("start check auth support"); - try { - userIAM_userAuth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); - console.info("current auth trust level is supported"); - } catch (error) { - console.info("current auth trust level is not supported, error = " + error); - } - }, +Defines the authentication result. - cancel() { - console.info("start cancel auth"); - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; +**System capability**: SystemCapability.UserIAM.UserAuth.Core - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.start(); - auth.cancel(); - console.info("cancel auth success"); - } catch (error) { - console.info("cancel auth failed, error = " + error); - } - } -} -``` +| Name | Type | Mandatory| Description | +| ------------ | ---------- | ---- | -------------------- | +| result | number | Yes | Authentication result. | +| token | Uint8Array | No | Token that has passed the user identity authentication.| +| remainAttempts | number | No | Number of remaining authentication times allowed.| +| lockoutDuration | number | No | Time for which the authentication operation is frozen.| -```js -// API version 8 -import userIAM_userAuth from '@ohos.userIAM.userAuth'; -let auth = new userIAM_userAuth.UserAuth(); +## TipInfo9+ -export default { - getVersion() { - console.info("start get version"); - let version = auth.getVersion(); - console.info("auth version = " + version); - }, - - startAuth() { - console.info("start auth"); - auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - try { - console.info("auth onResult result = " + result); - console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); - if (result == userIAM_userAuth.ResultCode.SUCCESS) { - // Add the logic to be executed when the authentication is successful. - } else { - // Add the logic to be executed when the authentication fails. - } - } catch (e) { - console.info("auth onResult error = " + e); - } - }, - - onAcquireInfo: (module, acquire, extraInfo) => { - try { - console.info("auth onAcquireInfo module = " + module); - console.info("auth onAcquireInfo acquire = " + acquire); - console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo)); - } catch (e) { - console.info("auth onAcquireInfo error = " + e); - } - } - }); - }, - - checkAuthSupport() { - console.info("start check auth support"); - let checkCode = this.auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); - if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) { - console.info("check auth support success"); - // Add the logic to be executed if the specified authentication type is supported. - } else { - console.error("check auth support fail, code = " + checkCode); - // Add the logic to be executed if the specified authentication type is not supported. - } - }, - - cancelAuth() { - console.info("start cancel auth"); - // Obtain contextId using auth(). - let contextId = auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - console.info("auth onResult result = " + result); - }, - - onAcquireInfo: (module, acquire, extraInfo) => { - console.info("auth onAcquireInfo module = " + module); - } - }); - let cancelCode = this.auth.cancel(contextId); - if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) { - console.info("cancel auth success"); - } else { - console.error("cancel auth fail"); - } - } -} -``` +Defines the authentication tip information. -```js -// API version 6 -import userIAM_userAuth from '@ohos.userIAM.userAuth'; +**System capability**: SystemCapability.UserIAM.UserAuth.Core -export default { - startAuth() { - console.info("start auth"); - let auth = userIAM_userAuth.getAuthenticator(); - auth.execute("FACE_ONLY", "S2").then((code)=>{ - console.info("auth success"); - // Add the logic to be executed when the authentication is successful. - }).catch((code)=>{ - console.error("auth fail, code = " + code); - // Add the logic to be executed when the authentication fails. - }); - } -} -``` +| Name | Type | Mandatory| Description | +| ------------ | ---------- | ---- | -------------------- | +| module | number | Yes | ID of the module that sends the tip information. | +| tip | number | Yes | Tip to be given during the authentication process. | ## EventInfo9+ -Defines the event information used in authentication. +Enumerates the authentication event information types. **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Type | Description | +| Value | Description | | --------- | ----------------------- | -| [AuthResultInfo](#authresultinfo9) | Authentication result information. | +| [AuthResultInfo](#authresultinfo9) | Authentication result. | | [TipInfo](#tipinfo9) | Authentication tip information. | +## AuthEventKey9+ + +Defines the keyword of the authentication event type. It is used as a parameter of [on](#on9). + +| Value | Description | +| ---------- | ----------------------- | +| "result" | If the first parameter of [on](#on9) is **result**, the [callback](#callback9) returns the authentication result.| +| "tip" | If the first parameter of [on](#on9) is **tip**, the [callback](#callback9) returns the authentication tip information.| + ## AuthEvent9+ -Provides callbacks to return authentication events. +Provides an asynchronous callback to return the authentication event information. ### callback9+ -callback: (result : EventInfo) => void +callback(result : EventInfo) : void -Called to return the authentication result or authentication tips. +Called to return the authentication result or authentication tip information. **System capability**: SystemCapability.UserIAM.UserAuth.Core **Parameters** -| Name | Type | Mandatory| Description | -| --------- | -------------------------- | ---- | -------------------------------------------------------- | -| result | [EventInfo](#eventinfo9) | Yes | Authentication result or tip information. | +| Name | Type | Mandatory| Description | +| --------- | -------------------------- | ---- | ------------------------------ | +| result | [EventInfo](#eventinfo9) | Yes | Authentication result or tip information. | **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.on("result", { +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); +let authType = userIAM_userAuth.UserAuthType.FACE; +let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; +// Obtain the authentication result through a callback. +try { + let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + auth.on("result", { callback: (result: userIAM_userAuth.AuthResultInfo) => { console.log("authV9 result " + result.result); console.log("authV9 token " + result.token); console.log("authV9 remainAttempts " + result.remainAttempts); console.log("authV9 lockoutDuration " + result.lockoutDuration); } - }); - auth.start(); - console.log("authV9 start success"); - } catch (error) { - console.log("authV9 error = " + error); - // do error - } - ``` - -## AuthResultInfo9+ - -Defines the authentication result information. - -**System capability**: SystemCapability.UserIAM.UserAuth.Core - -| Name | Type | Mandatory| Description | -| ------------ | ---------- | ---- | -------------------- | -| result | number | Yes | Authentication result. | -| token | Uint8Array | No | Token that has passed the user identity authentication.| -| remainAttempts | number | No | Number of remaining authentication times allowed.| -| lockoutDuration | number | No | Time for which the authentication operation is frozen.| - -## TipInfo9+ - -Defines the authentication tip information. - -**System capability**: SystemCapability.UserIAM.UserAuth.Core - -| Name | Type | Mandatory| Description | -| ------------ | ---------- | ---- | -------------------- | -| module | number | No | Authentication module. | -| tip | number | No | Tip to be given during the authentication process. | - -## AuthEventKey9+ - -Defines the keyword of an authentication event. - -| Value | Description | -| ---------- | ----------------------- | -| "result" | Indicates authentication result.| -| "tip" | If **AuthEventKey** is **result**, the callback returns the authentication tip information.| + }); + auth.start(); + console.log("authV9 start success"); +} catch (error) { + console.log("authV9 error = " + error); + // do error +} +// Obtain the authentication tip information through a callback. +try { + let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + auth.on("tip", { + callback : (result : userIAM_userAuth.TipInfo) => { + switch (result.tip) { + case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT: + // Do something; + case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK: + // Do something. + default: + // Do others. + } + } + }); + auth.start(); + console.log("authV9 start success"); +} catch (error) { + console.log("authV9 error = " + error); + // do error +} +``` ## AuthInstance9+ @@ -281,9 +128,12 @@ Implements user authentication. ### on9+ -on(name : AuthEventKey, callback : AuthEvent) : void +on : (name : AuthEventKey, callback : AuthEvent) => void -Enables authentication event listening. +Subscribes to the user authentication events of the specified type. + +> **NOTE**
        +> Use the [AuthInstance](#authinstance9) instance obtained to invoke this API to subscribe to events. **System capability**: SystemCapability.UserIAM.UserAuth.Core @@ -291,151 +141,210 @@ Enables authentication event listening. | Name | Type | Mandatory| Description | | --------- | -------------------------- | ---- | ------------------------- | -| name | AuthEventKey | Yes | Keyword of the authentication event to listen for. | -| callback | AuthEvent | Yes | Callback invoked to return the authentication event. | +| name | [AuthEventKey](#autheventkey9) | Yes | Authentication event type. If the value is **result**, the callback returns the authentication result. If the value is **tip**, the callback returns the authentication tip information.| +| callback | [AuthEvent](#authevent9) | Yes | Callback invoked to return the authentication result or tip information.| + +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 401 | Incorrect parameters. | +| 12500002 | General operation error. | **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.on("result", { +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); +let authType = userIAM_userAuth.UserAuthType.FACE; +let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; +try { + let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + // Subscribe to the authentication result. + auth.on("result", { callback: (result: userIAM_userAuth.AuthResultInfo) => { console.log("authV9 result " + result.result); console.log("authV9 token " + result.token); console.log("authV9 remainAttempts " + result.remainAttempts); console.log("authV9 lockoutDuration " + result.lockoutDuration); } - }); - // If tips are needed - auth.on("tip", { + }); + // Subscribe to authentication tip information. + auth.on("tip", { callback : (result : userIAM_userAuth.TipInfo) => { switch (result.tip) { case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_BRIGHT: // Do something; case userIAM_userAuth.FaceTips.FACE_AUTH_TIP_TOO_DARK: // Do something; - // ... default: // Do others. } } - }); - auth.start(); - console.log("authV9 start success"); - } catch (error) { - console.log("authV9 error = " + error); - // do error - } - ``` + }); + auth.start(); + console.log("authV9 start success"); +} catch (error) { + console.log("authV9 error = " + error); + // do error +} +``` ### off9+ -off(name : AuthEventKey) : void +off : (name : AuthEventKey) => void -Disables authentication event listening. +Unsubscribes from the user authentication events of the specific type. + +> **NOTE**
        +> Use the [AuthInstance](#authinstance9) instance obtained to invoke this API to unsubscribe from events. **System capability**: SystemCapability.UserIAM.UserAuth.Core | Name | Type | Mandatory| Description | | --------- | -------------------------- | ---- | ------------------------- | -| name | AuthEventKey | Yes | Keyword of the authentication event. | +| name | [AuthEventKey](#autheventkey9) | Yes | Type of the authentication event to unsubscribe from. If the value is **result**, the authentication result is unsubscribed from. If the value is **tip**, the authentication tip information is unsubscribed from.| + +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 401 | Incorrect parameters. | +| 12500002 | General operation error. | **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; +let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); +let authType = userIAM_userAuth.UserAuthType.FACE; +let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; +let auth; +try { + auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + console.log("get auth instance success"); +} catch (error) { + console.log("get auth instance failed" + error); +} - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.on("result", { +try { + // Subscribe to the authentication result. + auth.on("result", { callback: (result: userIAM_userAuth.AuthResultInfo) => { console.log("authV9 result " + result.result); console.log("authV9 token " + result.token); console.log("authV9 remainAttempts " + result.remainAttempts); console.log("authV9 lockoutDuration " + result.lockoutDuration); } - }); - console.log("turn on authentication event listening success"); - } catch (error) { - console.log("turn off authentication event listening failed " + error); - // do error - } - - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.off("result"); - console.info("turn off authentication event listening success"); - } catch (error) { - console.info("turn off authentication event listening failed, error = " + error); - } - ``` + }); + console.log("subscribe authentication event success"); +} catch (error) { + console.log("subscribe authentication event failed " + error); +} +// Unsubscribe from the authentication result. +try { + auth.off("result"); + console.info("cancel subscribe authentication event success"); +} catch (error) { + console.info("cancel subscribe authentication event failed, error = " + error); +} +``` ### start9+ -start() : void +start : () => void Starts authentication. +> **NOTE**
        +> Use the [AuthInstance](#authinstance9) instance obtained to invoke this API. + **Required permissions**: ohos.permission.ACCESS_BIOMETRIC **System capability**: SystemCapability.UserIAM.UserAuth.Core +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 201 | Permission verification failed. | +| 401 | Incorrect parameters. | +| 12500001 | Authentication failed. | +| 12500002 | General operation error. | +| 12500003 | The operation is canceled. | +| 12500004 | The operation is time-out. | +| 12500005 | The authentication type is not supported. | +| 12500006 | The authentication trust level is not supported. | +| 12500007 | The authentication task is busy. | +| 12500009 | The authenticator is locked. | +| 12500010 | The type of credential has not been enrolled. | + **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; - - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.start(); - console.info("authV9 start auth success"); - } catch (error) { - console.info("authV9 start auth failed, error = " + error); - } - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); +let authType = userIAM_userAuth.UserAuthType.FACE; +let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; + +try { + let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + auth.start(); + console.info("authV9 start auth success"); +} catch (error) { + console.info("authV9 start auth failed, error = " + error); +} +``` ### cancel9+ -cancel(): void +cancel : () => void -Cancels the authentication. +Cancels this authentication. + +> **NOTE**
        +> Use the [AuthInstance](#authinstance9) instance obtained to invoke this API. The [AuthInstance](#authinstance9) instance must be the one being authenticated. **Required permissions**: ohos.permission.ACCESS_BIOMETRIC **System capability**: SystemCapability.UserIAM.UserAuth.Core +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 201 | Permission verification failed. | +| 401 | Incorrect parameters. | +| 12500002 | General operation error. | + **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; - - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - auth.start(); - auth.cancel(); - console.info("cancel auth success"); - } catch (error) { - console.info("cancel auth failed, error = " + error); - } - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); +let authType = userIAM_userAuth.UserAuthType.FACE; +let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; + +try { + let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + auth.cancel(); + console.info("cancel auth success"); +} catch (error) { + console.info("cancel auth failed, error = " + error); +} +``` ## userIAM_userAuth.getAuthInstance9+ @@ -444,7 +353,7 @@ getAuthInstance(challenge : Uint8Array, authType : UserAuthType, authTrustLevel Obtains an **AuthInstance** instance for user authentication. > **NOTE**
        -> Each **AuthInstance** can be used to initiate an authentication only once. +> An **AuthInstance** instance can be used for an authentication only once. **System capability**: SystemCapability.UserIAM.UserAuth.Core @@ -460,23 +369,35 @@ Obtains an **AuthInstance** instance for user authentication. | Type | Description | | ----------------------------------------- | ------------ | -| [AuthInstance](#authinstance9) | **Authenticator** object obtained.| +| [AuthInstance](#authinstance9) | **Authenticator** instance obtained.| + +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 401 | Incorrect parameters. | +| 12500002 | General operation error. | +| 12500005 | The authentication type is not supported. | +| 12500006 | The authentication trust level is not supported. | **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); - let authType = userIAM_userAuth.UserAuthType.FACE; - let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; - try { - let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); - console.info("get auth instance success"); - } catch (error) { - console.info("get auth instance success failed, error = " + error); - } - ``` +let challenge = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]); +let authType = userIAM_userAuth.UserAuthType.FACE; +let authTrustLevel = userIAM_userAuth.AuthTrustLevel.ATL1; + +try { + let auth = userIAM_userAuth.getAuthInstance(challenge, authType, authTrustLevel); + console.info("get auth instance success"); +} catch (error) { + console.info("get auth instance success failed, error = " + error); +} +``` ## userIAM_userAuth.getVersion9+ @@ -494,24 +415,33 @@ Obtains the version of this authenticator. | ------ | ---------------------- | | number | Authenticator version obtained.| +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 201 | Permission verification failed. | +| 12500002 | General operation error. | + **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; - try { - let version = userIAM_userAuth.getVersion(); - console.info("auth version = " + version); - } catch (error) { - console.info("get version failed, error = " + error); - } - ``` +try { + let version = userIAM_userAuth.getVersion(); + console.info("auth version = " + version); +} catch (error) { + console.info("get version failed, error = " + error); +} +``` ## userIAM_userAuth.getAvailableStatus9+ getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel): void -Checks whether the authentication capability of the specified trust level is available. +Checks whether the specified authentication capability is supported. **Required permissions**: ohos.permission.ACCESS_BIOMETRIC @@ -522,54 +452,65 @@ Checks whether the authentication capability of the specified trust level is ava | Name | Type | Mandatory| Description | | -------------- | ---------------------------------- | ---- | -------------------------- | | authType | [UserAuthType](#userauthtype8) | Yes | Authentication type. Only **FACE** is supported.| -| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | Yes | Trust level of the authentication result. | +| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | Yes | Authentication trust level. | + +For details about the error codes, see [User Authentication Error Codes](../errorcodes/errorcode-useriam.md). + +**Error codes** + +| ID| Error Message| +| -------- | ------- | +| 201 | Permission verification failed. | +| 401 | Incorrect parameters. | +| 12500002 | General operation error. | +| 12500005 | The authentication type is not supported. | +| 12500006 | The authentication trust level is not supported. | +| 12500010 | The type of credential has not been enrolled. | **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; - try { - userIAM_userAuth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); - console.info("current auth trust level is supported"); - } catch (error) { - console.info("current auth trust level is not supported, error = " + error); - } - ``` +try { + userIAM_userAuth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); + console.info("current auth trust level is supported"); +} catch (error) { + console.info("current auth trust level is not supported, error = " + error); +} +``` - ## ResultCodeV99+ +## UserAuthResultCode9+ -Enumerates the operation results. +Enumerates the authentication result codes. **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name | Default Value| Description | +| Name | Value | Description | | ----------------------- | ------ | -------------------- | -| SUCCESS | 12500000 | The operation is successful. | -| FAIL | 12500001 | The operation failed. | -| GENERAL_ERROR | 12500002 | A common operation error occurred. | -| CANCELED | 12500003 | The operation is canceled. | -| TIMEOUT | 12500004 | The operation timed out. | +| SUCCESS | 12500000 | The authentication is successful. | +| FAIL | 12500001 | The authentication failed. | +| GENERAL_ERROR | 12500002 | A general operation error occurred. | +| CANCELED | 12500003 | The authentication is canceled. | +| TIMEOUT | 12500004 | The authentication timed out. | | TYPE_NOT_SUPPORT | 12500005 | The authentication type is not supported. | | TRUST_LEVEL_NOT_SUPPORT | 12500006 | The authentication trust level is not supported. | | BUSY | 12500007 | Indicates the busy state. | -| INVALID_PARAMETERS | 12500008 | Invalid parameters are detected. | | LOCKED | 12500009 | The authentication executor is locked. | | NOT_ENROLLED | 12500010 | The user has not entered the authentication information.| ## UserAuth8+ -Provides methods to manage an **Authenticator** object. +Provides APIs to manage an **Authenticator** object. ### constructor(deprecated) constructor() -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getAuthInstance](#useriam_userauthgetauthinstance9). +A constructor used to create an authenticator instance. -A constructor used to create an **authenticator** object. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getAuthInstance](#useriam_userauthgetauthinstance9). **System capability**: SystemCapability.UserIAM.UserAuth.Core @@ -577,25 +518,24 @@ A constructor used to create an **authenticator** object. | Type | Description | | ---------------------- | -------------------- | -| [UserAuth](#userauth8) | **Authenticator** object obtained.| +| [UserAuth](#userauth8) | **Authenticator** instance obtained.| **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; - let auth = new userIAM_userAuth.UserAuth(); - ``` +let auth = new userIAM_userAuth.UserAuth(); +``` ### getVersion(deprecated) getVersion() : number -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getVersion](#useriam_userauthgetversion9). +Obtains the version of this authenticator. -Obtains the authentication executor version. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getVersion](#useriam_userauthgetversion9). **Required permissions**: ohos.permission.ACCESS_BIOMETRIC @@ -609,23 +549,22 @@ Obtains the authentication executor version. **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; - let auth = new userIAM_userAuth.UserAuth(); - let version = auth.getVersion(); - console.info("auth version = " + version); - ``` +let auth = new userIAM_userAuth.UserAuth(); +let version = auth.getVersion(); +console.info("auth version = " + version); +``` ### getAvailableStatus(deprecated) getAvailableStatus(authType : UserAuthType, authTrustLevel : AuthTrustLevel) : number -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getAvailableStatus](#useriam_userauthgetavailablestatus9). +Checks whether the specified authentication capability is supported. -Obtains the available status of the specified authentication trust level. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getAvailableStatus](#useriam_userauthgetavailablestatus9). **Required permissions**: ohos.permission.ACCESS_BIOMETRIC @@ -636,40 +575,37 @@ Obtains the available status of the specified authentication trust level. | Name | Type | Mandatory| Description | | -------------- | ---------------------------------- | ---- | -------------------------- | | authType | [UserAuthType](#userauthtype8) | Yes | Authentication type. Only **FACE** is supported.| -| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | Yes | Trust level of the authentication result. | +| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | Yes | Authentication trust level. | **Return value** | Type | Description | | ------ | ------------------------------------------------------------ | -| number | Available status obtained. For details, see [ResultCode](#resultcodedeprecated).| +| number | Query result. If the authentication capability is supported, **SUCCESS** is returned. Otherwise, a [ResultCode](#resultcodedeprecated) is returned.| **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let auth = new userIAM_userAuth.UserAuth(); - let checkCode = auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); - if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) { - console.info("check auth support success"); - // Add the logic to be executed if the specified authentication type is supported. - } else { - console.error("check auth support fail, code = " + checkCode); - // Add the logic to be executed if the specified authentication type is not supported. - } - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let auth = new userIAM_userAuth.UserAuth(); +let checkCode = auth.getAvailableStatus(userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1); +if (checkCode == userIAM_userAuth.ResultCode.SUCCESS) { + console.info("check auth support success"); +} else { + console.error("check auth support fail, code = " + checkCode); +} +``` ### auth(deprecated) auth(challenge: Uint8Array, authType: UserAuthType, authTrustLevel: AuthTrustLevel, callback: IUserAuthCallback): Uint8Array -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [start](#start9). - Performs user authentication. This API uses a callback to return the result. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [start](#start9). + **Required permissions**: ohos.permission.ACCESS_BIOMETRIC **System capability**: SystemCapability.UserIAM.UserAuth.Core @@ -680,8 +616,8 @@ Performs user authentication. This API uses a callback to return the result. | -------------- | ---------------------------------------- | ---- | ------------------------ | | challenge | Uint8Array | Yes | Challenge value, which can be null. | | authType | [UserAuthType](#userauthtype8) | Yes | Authentication type. Only **FACE** is supported.| -| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | Yes | Trust level. | -| callback | [IUserAuthCallback](#iuserauthcallbackdeprecated) | Yes | Callback used to return the result. | +| authTrustLevel | [AuthTrustLevel](#authtrustlevel8) | Yes | Authentication trust level. | +| callback | [IUserAuthCallback](#iuserauthcallbackdeprecated) | Yes | Callback used to return the result. | **Return value** @@ -691,36 +627,35 @@ Performs user authentication. This API uses a callback to return the result. **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let auth = new userIAM_userAuth.UserAuth(); - auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - try { - console.info("auth onResult result = " + result); - console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); - if (result == userIAM_userAuth.ResultCode.SUCCESS) { - // Add the logic to be executed when the authentication is successful. - } else { - // Add the logic to be executed when the authentication fails. - } - } catch (e) { - console.info("auth onResult error = " + e); - } - } - }); - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let auth = new userIAM_userAuth.UserAuth(); +auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { + onResult: (result, extraInfo) => { + try { + console.info("auth onResult result = " + result); + console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); + if (result == userIAM_userAuth.ResultCode.SUCCESS) { + // Add the logic to be executed when the authentication is successful. + } else { + // Add the logic to be executed when the authentication fails. + } + } catch (e) { + console.info("auth onResult error = " + e); + } + } +}); +``` ### cancelAuth(deprecated) cancelAuth(contextID : Uint8Array) : number -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [cancel](#cancel9). +Cancels an authentication based on the context ID. -Cancels an authentication. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [cancel](#cancel9). **Required permissions**: ohos.permission.ACCESS_BIOMETRIC @@ -730,100 +665,86 @@ Cancels an authentication. | Name | Type | Mandatory| Description | | --------- | ---------- | ---- | ------------------------------------------ | -| contextID | Uint8Array | Yes | Context ID, which is obtained by using [auth](#authdeprecated).| +| contextID | Uint8Array | Yes | Context ID, which is obtained by [auth](#authdeprecated).| **Return value** | Type | Description | | ------ | ------------------------ | -| number | Whether the authentication is canceled.| +| number | Returns **SUCCESS** if the cancellation is successful. Returns a [ResultCode](#resultcodedeprecated) otherwise.| **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - // contextId can be obtained using auth(). In this example, it is defined here. - let contextId = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]); - let auth = new userIAM_userAuth.UserAuth(); - let cancelCode = auth.cancelAuth(contextId); - if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) { - console.info("cancel auth success"); - } else { - console.error("cancel auth fail"); - } - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +// contextId can be obtained by auth(). In this example, it is defined here. +let contextId = new Uint8Array([0, 1, 2, 3, 4, 5, 6, 7]); +let auth = new userIAM_userAuth.UserAuth(); +let cancelCode = auth.cancelAuth(contextId); +if (cancelCode == userIAM_userAuth.ResultCode.SUCCESS) { + console.info("cancel auth success"); +} else { + console.error("cancel auth fail"); +} +``` ## IUserAuthCallback(deprecated) -> **NOTE** -> ->This object is supported since API version 8 and deprecated since API version 9. You are advised to use [AuthEvent](#authevent9). +Provides callbacks to return the authentication result. -Defines the object of the result returned by the callback during authentication. +> **NOTE**
        +> This object is supported since API version 8 and deprecated since API version 9. You are advised to use [AuthEvent](#authevent9). ### onResult(deprecated) onResult: (result : number, extraInfo : AuthResult) => void -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [callback](#callback9). +Called to return the authentication result. -Obtains the authentication result. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [callback](#callback9). **System capability**: SystemCapability.UserIAM.UserAuth.Core **Parameters** -| Name | Type | Mandatory| Description | -| --------- | -------------------------- | ---- | ------------------------------------------------------------ | -| result | number | Yes | Authentication result. For details, see [ResultCode](#resultcodedeprecated). | +| Name | Type | Mandatory| Description | +| --------- | -------------------------- | ---- | ------------------------------------------------ | +| result | number | Yes | Authentication result. For details, see [ResultCode](#resultcodedeprecated).| | extraInfo | [AuthResult](#authresultdeprecated) | Yes | Extended information, which varies depending on the authentication result.
        If the authentication is successful, the user authentication token will be returned in **extraInfo**.
        If the authentication fails, the remaining number of authentication times will be returned in **extraInfo**.
        If the authentication executor is locked, the freeze time will be returned in **extraInfo**.| - **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let auth = new userIAM_userAuth.UserAuth(); - auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - try { - console.info("auth onResult result = " + result); - console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); - if (result == userIAM_userAuth.ResultCode.SUCCESS) { - // Add the logic to be executed when the authentication is successful. - } else { - // Add the logic to be executed when the authentication fails. - } - } catch (e) { - console.info("auth onResult error = " + e); - } - }, - - onAcquireInfo: (module, acquire, extraInfo) => { - try { - console.info("auth onAcquireInfo module = " + module); - console.info("auth onAcquireInfo acquire = " + acquire); - console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo)); - } catch (e) { - console.info("auth onAcquireInfo error = " + e); - } - } - }); - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; + +let auth = new userIAM_userAuth.UserAuth(); +auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { + onResult: (result, extraInfo) => { + try { + console.info("auth onResult result = " + result); + console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); + if (result == userIAM_userAuth.ResultCode.SUCCESS) { + // Add the logic to be executed when the authentication is successful. + } else { + // Add the logic to be executed when the authentication fails. + } + } catch (e) { + console.info("auth onResult error = " + e); + } + } +}); +``` ### onAcquireInfo(deprecated) onAcquireInfo ?: (module : number, acquire : number, extraInfo : any) => void -> **NOTE** -> ->This API is supported since API version 8 and deprecated since API version 9. You are advised to use [callback](#callback9). +Called to acquire authentication tip information. This API is optional. -Obtains the tip code information during authentication. This function is optional. +> **NOTE**
        +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [callback](#callback9). **System capability**: SystemCapability.UserIAM.UserAuth.Core @@ -831,89 +752,74 @@ Obtains the tip code information during authentication. This function is optiona | Name | Type | Mandatory| Description | | --------- | ------ | ---- | ------------------------------ | -| module | number | Yes | Type of the authentication executor. | -| acquire | number | Yes | Interaction information of the authentication executor during the authentication process.| +| module | number | Yes | ID of the module that sends the tip information. | +| acquire | number | Yes | Authentication tip information.| | extraInfo | any | Yes | Reserved field. | **Example** - ```js - import userIAM_userAuth from '@ohos.userIAM.userAuth'; - - let auth = new userIAM_userAuth.UserAuth(); - auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { - onResult: (result, extraInfo) => { - try { - console.info("auth onResult result = " + result); - console.info("auth onResult extraInfo = " + JSON.stringify(extraInfo)); - if (result == userIAM_userAuth.ResultCode.SUCCESS) { - // Add the logic to be executed when the authentication is successful. - } else { - // Add the logic to be executed when the authentication fails. - } - } catch (e) { - console.info("auth onResult error = " + e); - } - }, - - onAcquireInfo: (module, acquire, extraInfo) => { - try { - console.info("auth onAcquireInfo module = " + module); - console.info("auth onAcquireInfo acquire = " + acquire); - console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo)); - } catch (e) { - console.info("auth onAcquireInfo error = " + e); - } - } - }); - ``` +```js +import userIAM_userAuth from '@ohos.userIAM.userAuth'; -## AuthResult(deprecated) +let auth = new userIAM_userAuth.UserAuth(); +auth.auth(null, userIAM_userAuth.UserAuthType.FACE, userIAM_userAuth.AuthTrustLevel.ATL1, { + onAcquireInfo: (module, acquire, extraInfo) => { + try { + console.info("auth onAcquireInfo module = " + module); + console.info("auth onAcquireInfo acquire = " + acquire); + console.info("auth onAcquireInfo extraInfo = " + JSON.stringify(extraInfo)); + } catch (e) { + console.info("auth onAcquireInfo error = " + e); + } + } +}); +``` -> **NOTE** -> ->This object is supported since API version 8 and deprecated since API version 9. You are advised to use [AuthResultInfo](#authresultinfo9). +## AuthResult(deprecated) Represents the authentication result object. +> **NOTE**
        +> This object is supported since API version 8 and deprecated since API version 9. You are advised to use [AuthResultInfo](#authresultinfo9). + **System capability**: SystemCapability.UserIAM.UserAuth.Core | Name | Type | Mandatory| Description | -| ------------ | ---------- | ---- | -------------------- | -| token | Uint8Array | No | Identity authentication token. | +| ------------ | ---------- | ---- | -------------------| +| token | Uint8Array | No | Authentication token information.| | remainTimes | number | No | Number of remaining authentication operations.| | freezingTime | number | No | Time for which the authentication operation is frozen.| ## ResultCode(deprecated) -> **NOTE**
        -> This object is deprecated since API version 9. You are advised to use [ResultCodeV9](#resultcodev99). +Enumerates the authentication result codes. -Enumerates the operation results. +> **NOTE**
        +> This object is deprecated since API version 9. You are advised to use [UserAuthResultCode](#userauthresultcode9). **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name | Default Value| Description | +| Name | Value| Description | | ----------------------- | ------ | -------------------- | | SUCCESS | 0 | The operation is successful. | -| FAIL | 1 | The operation failed. | -| GENERAL_ERROR | 2 | A common operation error occurred. | -| CANCELED | 3 | The operation is canceled. | -| TIMEOUT | 4 | The operation timed out. | +| FAIL | 1 | The authentication failed. | +| GENERAL_ERROR | 2 | A general operation error occurred. | +| CANCELED | 3 | The authentication is canceled. | +| TIMEOUT | 4 | The authentication timed out. | | TYPE_NOT_SUPPORT | 5 | The authentication type is not supported. | | TRUST_LEVEL_NOT_SUPPORT | 6 | The authentication trust level is not supported. | | BUSY | 7 | Indicates the busy state. | +| INVALID_PARAMETERS | 8 | Invalid parameters are detected. | | LOCKED | 9 | The authentication executor is locked. | | NOT_ENROLLED | 10 | The user has not entered the authentication information.| - ## FaceTips8+ Enumerates the tip codes used during the facial authentication process. **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name | Default Value| Description | +| Name | Value | Description | | ----------------------------- | ------ | ------------------------------------ | | FACE_AUTH_TIP_TOO_BRIGHT | 1 | The obtained facial image is too bright due to high illumination. | | FACE_AUTH_TIP_TOO_DARK | 2 | The obtained facial image is too dark due to low illumination. | @@ -934,7 +840,7 @@ Enumerates the tip codes used during the fingerprint authentication process. **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name | Default Value| Description | +| Name | Value | Description | | --------------------------------- | ------ | -------------------------------------------------- | | FINGERPRINT_AUTH_TIP_GOOD | 0 | The obtained fingerprint image is in good condition. | | FINGERPRINT_AUTH_TIP_DIRTY | 1 | Large fingerprint image noise is detected due to suspicious or detected dirt on the sensor.| @@ -950,7 +856,7 @@ Enumerates the identity authentication types. **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name | Default Value| Description | +| Name | Value | Description | | ----------- | ------ | ---------- | | FACE | 2 | Facial authentication.| | FINGERPRINT | 4 | Fingerprint authentication.| @@ -961,7 +867,7 @@ Enumerates the trust levels of the authentication result. **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name| Default Value| Description | +| Name| Value | Description | | ---- | ------ | ------------------------- | | ATL1 | 10000 | Trust level 1.| | ATL2 | 20000 | Trust level 2.| @@ -972,18 +878,18 @@ Enumerates the trust levels of the authentication result. getAuthenticator(): Authenticator +Obtains an **Authenticator** instance for user authentication. + > **NOTE**
        > This API is deprecated since API version 8. You are advised to use [constructor](#constructordeprecated). -Obtains an **Authenticator** object for user authentication. - **System capability**: SystemCapability.UserIAM.UserAuth.Core **Return value** | Type | Description | | ----------------------------------------- | ------------ | -| [Authenticator](#authenticatordeprecated) | **Authenticator** object obtained.| +| [Authenticator](#authenticatordeprecated) | **Authenticator** instance obtained.| **Example** ```js @@ -992,61 +898,61 @@ Obtains an **Authenticator** object for user authentication. ## Authenticator(deprecated) +Defines the **Authenticator** object. + > **NOTE**
        > This object is deprecated since API version 8. You are advised to use [UserAuth](#userauth8). -Provides methods to manage an **Authenticator** object. - - ### execute(deprecated) execute(type: AuthType, level: SecureLevel, callback: AsyncCallback<number>): void +Performs user authentication. This API uses asynchronous callback to return the result. + > **NOTE**
        > This API is deprecated since API version 8. You are advised to use [auth](#authdeprecated). -Performs user authentication. This API uses asynchronous callback to return the result. - **Required permissions**: ohos.permission.ACCESS_BIOMETRIC **System capability**: SystemCapability.UserIAM.UserAuth.Core **Parameters** -| Name | Type | Mandatory| Description | -| -------- | --------------------------- | ---- | ------------------------------------------------------------ | +| Name | Type | Mandatory| Description | +| -------- | --------------------------- | ---- | -------------------------- | | type | AuthType | Yes | Authentication type. Only **FACE_ONLY** is supported.
        **ALL** is reserved and not supported by the current version.| -| level | SecureLevel | Yes | Security level of the authentication. It can be **S1** (lowest), **S2**, **S3**, or **S4** (highest).
        Devices capable of 3D facial recognition support S3 and lower-level authentication.
        Devices capable of 2D facial recognition support S2 and lower-level authentication.| -| callback | AsyncCallback<number> | No | Callback used to return the result. | +| level | SecureLevel | Yes | Security level of the authentication. It can be **S1** (lowest), **S2**, **S3**, or **S4** (highest).
        Devices capable of 3D facial recognition support S3 and lower-level authentication.
        Devices capable of 2D facial recognition support S2 and lower-level authentication.| +| callback | AsyncCallback<number> | Yes | Callback used to return the result. | - Parameters returned in callback +Parameters returned in callback | Type | Description | | ------ | ------------------------------------------------------------ | | number | Authentication result. For details, see [AuthenticationResult](#authenticationresultdeprecated).| **Example** - ```js - let authenticator = userIAM_userAuth.getAuthenticator(); - authenticator.execute("FACE_ONLY", "S2", (error, code)=>{ - if (code === userIAM_userAuth.ResultCode.SUCCESS) { - console.info("auth success"); - return; - } - console.error("auth fail, code = " + code); - }); - ``` + +```js +let authenticator = userIAM_userAuth.getAuthenticator(); +authenticator.execute("FACE_ONLY", "S2", (error, code)=>{ + if (code === userIAM_userAuth.ResultCode.SUCCESS) { + console.info("auth success"); + return; + } + console.error("auth fail, code = " + code); +}); +``` ### execute(deprecated) -execute(type:AuthType, level:SecureLevel): Promise<number> +execute(type : AuthType, level : SecureLevel): Promise<number> + +Performs user authentication. This API uses a promise to return the result. > **NOTE**
        > This API is deprecated since API version 8. You are advised to use [auth](#authdeprecated). -Performs user authentication. This API uses a promise to return the result. - **Required permissions**: ohos.permission.ACCESS_BIOMETRIC **System capability**: SystemCapability.UserIAM.UserAuth.Core @@ -1066,25 +972,25 @@ Performs user authentication. This API uses a promise to return the result. **Example** - ```js - let authenticator = userIAM_userAuth.getAuthenticator(); - authenticator.execute("FACE_ONLY", "S2").then((code)=>{ - console.info("auth success"); - }).catch((error)=>{ - console.error("auth fail, code = " + error); - }); - ``` +```js +let authenticator = userIAM_userAuth.getAuthenticator(); +authenticator.execute("FACE_ONLY", "S2").then((code)=>{ + console.info("auth success"); +}).catch((error)=>{ + console.error("auth fail, code = " + error); +}); +``` ## AuthenticationResult(deprecated) +Enumerates the authentication results. + > **NOTE**
        > This object is discarded since API version 8. You are advised to use [ResultCode](#resultcodedeprecated). -Enumerates the authentication results. - **System capability**: SystemCapability.UserIAM.UserAuth.Core -| Name | Default Value| Description | +| Name | Value | Description | | ------------------ | ------ | -------------------------- | | NO_SUPPORT | -1 | The device does not support the current authentication mode.| | SUCCESS | 0 | The authentication is successful. | diff --git a/en/application-dev/reference/errorcodes/Readme-EN.md b/en/application-dev/reference/errorcodes/Readme-EN.md index b286cbf232..28669ef9f2 100644 --- a/en/application-dev/reference/errorcodes/Readme-EN.md +++ b/en/application-dev/reference/errorcodes/Readme-EN.md @@ -33,8 +33,11 @@ - Security - [Ability Access Control Error Codes](errorcode-access-token.md) - [HUKS Error Codes](errorcode-huks.md) + - [User Authentication Error Codes](errorcode-useriam.md) - Data Management - [RDB Error Codes](errorcode-data-rdb.md) + - [DataShare Error Codes](errorcode-datashare.md) + - [Distributed Data Object Error Codes](errorcode-distributed-dataObject.md) - [Distributed KV Store Error Codes](errorcode-distributedKVStore.md) - [Preferences Error Codes](errorcode-preferences.md) - File Management diff --git a/en/application-dev/reference/errorcodes/errorcode-distributed-dataObject.md b/en/application-dev/reference/errorcodes/errorcode-distributed-dataObject.md new file mode 100644 index 0000000000..0ebad934ac --- /dev/null +++ b/en/application-dev/reference/errorcodes/errorcode-distributed-dataObject.md @@ -0,0 +1,19 @@ +# Distributed Data Object Error Codes + +## 15400001 Failed to Create the In-Memory Database + +**Error Message** + +Create table failed. + +**Description** + +The in-memory database fails to be created. + +**Possible Causes** + +An object with the same session ID already exists. + +**Solution** + +Check for the object has been added to the same session. diff --git a/en/application-dev/reference/errorcodes/errorcode-useriam.md b/en/application-dev/reference/errorcodes/errorcode-useriam.md new file mode 100644 index 0000000000..2e84641a54 --- /dev/null +++ b/en/application-dev/reference/errorcodes/errorcode-useriam.md @@ -0,0 +1,163 @@ +# User Authentication Error Codes + +## 201 Permission Verification Failed + +For details, see [Universal Error Codes](./errorcode-universal.md). + +## 202 Invoker Is Not a System Application + +For details, see [Universal Error Codes](./errorcode-universal.md). + +## 401 Parameter Check Failed. + +For details, see [Universal Error Codes](./errorcode-universal.md). + +## 12500001 Authentication Failed + +**Error Message** + +Authentication failed. + +**Possible Causes** + +The credential does not match the credential enrolled. + +**Solution** + +Initiate authentication again. + +## 12500002 General Operation Error + +**Error Message** + +General operation error. + +**Possible Causes** + +1. An error occurs when the NAPI layer parses parameters. +2. The process of the user authentication service is not started. +3. The proxy client fails to write data over IPC. +4. The stub server fails to parse data over IPC. +5. The driver service is not obtained. + +**Solution** + +Call the API again later or restart the device. + +## 12500003 Authentication Canceled + +**Error Message** + +Authentication canceled. + +**Possible Causes** + +The authentication operation has been canceled. + +**Solution** + +Initiate the authentication again. + +## 12500004 Authentication Timed Out + +**Error Message** + +Authentication timeout. + +**Possible Causes** + +The authentication is not complete within the specified time. + +**Solution** + +Initiate the authentication again. + +## 12500005 Unsupported Authentication Type + +**Error Message** + +The authentication type is not supported. + +**Possible Causes** + +1. The input authentication type parameter is not supported. For example, if the authentication type passed in **getAvailableStatus** of the **userAuth** module is not **FACE** or **FINGERPRINT**, error code 12500005 is returned. +2. The device does not support the authentication type. For example, if fingerprint authentication is initiated on a device that has no fingerprint sensor, error code 12500005 is returned. + +**Solution** + +Check the authentication type parameter and call the API again. + +## 12500006 Unsupported Authentication Trust Level + +**Error Message** + +The authentication trust level is not supported. + +**Possible Causes** + +1. The **authTrustLevel** value in **getAvailableStatus** or **getAuthInstance** of the **userAuth** module is not in the range [ATL1, ATL2, ATL3, ATL4]. +2. The device does not support the authentication trust level. For example, if facial authentication for payment is initiated on a device that has only 2D cameras, error code 12500006 is returned. + +**Solution** + +Check that the **authTrustLevel** passed in is within the value range, and the device supports the specified authentication trust level. + +## 12500007 Authentication Service Unavailable + +**Error Message** + +Authentication service is busy. + +**Possible Causes** + +Another authentication is initiated when the current authentication has not been finished yet. + +**Solution** + +Initiate authentication again later. + +## 12500009 Authentication Locked + +**Error Message** + +Authentication is lockout. + +**Possible Causes** + +The number of authentication failures exceeds the limit. + +**Solution** + +Initiate authentication later. + +## 12500010 Credential Not Enrolled + +**Error Message** + +The type of credential has not been enrolled. + +**Possible Causes** + +The **authType** parameter set in **getAvailableStatus** of the **userAuth** module is **FACE**, but no facial credential is enrolled in the device. +**start()** is called to initiate facial authentication, but no facial credential is enrolled in the device. + +**Solution** + +Check that the related type of credential has been enrolled in the device. + +## 12700001 Failed to Enroll Faces + +**Error Message** + +The operation is failed. + +**Possible Causes** + +1. The facial authentication service is not started when **setSurfaceId()** of the **userAuth** module is called. +2. The proxy client fails to write data over IPC. +3. The stub server fails to parse data over IPC. +4. An error occurs when the facial authentication driver is invoked. + +**Solution** + +Call the API again later or restart the device. -- GitLab From c39559ec88af8abf34a39e73ee767fc8fe6af831 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Mon, 16 Jan 2023 15:58:55 +0800 Subject: [PATCH 285/383] udpate docs Signed-off-by: Annie_wang --- .../reference/apis/Readme-EN.md | 2 +- .../reference/apis/js-apis-buffer.md | 351 +++++++++--------- 2 files changed, 185 insertions(+), 168 deletions(-) diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md index 7ec2ef1b9e..1cb11c6557 100644 --- a/en/application-dev/reference/apis/Readme-EN.md +++ b/en/application-dev/reference/apis/Readme-EN.md @@ -325,7 +325,7 @@ - [@ohos.enterprise.dateTimeManager](js-apis-enterprise-dateTimeManager.md) - Language Base Class Library - - [@ohos.buffer](js-apis-buffer.md) + - [@ohos.buffer (Buffer)](js-apis-buffer.md) - [@ohos.convertxml](js-apis-convertxml.md) - [@ohos.process](js-apis-process.md) - [@ohos.uri](js-apis-uri.md) diff --git a/en/application-dev/reference/apis/js-apis-buffer.md b/en/application-dev/reference/apis/js-apis-buffer.md index b5c914e772..72e65e53e6 100644 --- a/en/application-dev/reference/apis/js-apis-buffer.md +++ b/en/application-dev/reference/apis/js-apis-buffer.md @@ -1,11 +1,12 @@ -# Buffer +# @ohos.buffer (Buffer) -> **NOTE** -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +A **Buffer** object represents a byte sequence of a fixed length. It is used to store binary data. -A **Buffer** object represents a fixed-length sequence of bytes. It is used to store binary data. +You can use the APIs provided by the Buffer module to process images and a large amount of binary data, and receive or upload files. -You can use the APIs provided by the **Buffer** module to process images and a large amount of binary data, and receive or upload files. +> **NOTE** +> +> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import @@ -21,55 +22,23 @@ Enumerates the supported encoding formats of strings. | Encoding Format | Description | | ------- | -------------------- | -| ascii | ASCII format. | -| utf8 | UTF-8 | -| utf-8 | UTF-8 format.| -| utf16le | UTF-16LE format.| -| ucs2 | UTF-16LE format.| -| ucs-2 | UTF-16LE format.| -| base64 | Base64 format.| -| base64url | Base64 format.| -| latin1 | ASCII format.| -| binary | Binary format.| -| hex | Hexadecimal format.| - -## Buffer - -### Attributes - -**System capability**: SystemCapability.Utils.Lang - -| Name| Type| Readable| Writable| Description| -| -------- | -------- | -------- | -------- | -------- | -| length | number | Yes| No| Length of the buffer, in bytes.| -| buffer | ArrayBuffer | Yes| No| **ArrayBuffer** object.| -| byteOffset | number | Yes| No| Offset of the buffer in the memory pool.| - -**Error codes** - -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). - -| ID| Error Message| -| -------- | -------- | -| 10200013 | Cannot set property ${propertyName} of Buffer which has only a getter. | - -**Example** - -```ts -import buffer from '@ohos.buffer'; - -let buf = buffer.from("1236"); -console.log(JSON.stringify(buf.length)); -let arrayBuffer = buf.buffer; -console.log(JSON.stringify(new Uint8Array(arrayBuffer))); -console.log(JSON.stringify(buf.byteOffset)); -``` - -### alloc +| 'ascii' | ASCII format, which is case insensitive.| +| 'utf8' | UTF-8 format, which is case insensitive.| +| 'utf-8' | UTF-8 format, which is case insensitive.| +| 'utf16le' | UTF-16 little-endian format, which is case insensitive.| +| 'ucs2' | UTF-16 little-endian format, which is case insensitive.| +| 'ucs-2' | UTF-16 little-endian format, which is case insensitive.| +| 'base64' | Base64 format, which is case insensitive.| +| 'base64url' | Base64 format, which is case insensitive.| +| 'latin1' | ASCII format, which is case insensitive.| +| 'binary' | Binary format, which is case insensitive.| +| 'hex' | Hexadecimal format, which is case insensitive.| + +## buffer.alloc alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer -Allocates and initializes a **Buffer** instance of the specified size. +Creates and initializes a **Buffer** instance of the specified length. **System capability**: SystemCapability.Utils.Lang @@ -77,8 +46,8 @@ Allocates and initializes a **Buffer** instance of the specified size. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| size | number | Yes| Size of the **Buffer** instance to allocate, in bytes.| -| fill | string \| Buffer \| number | No| Pre-filled value. The default value is **0**.| +| size | number | Yes| Size of the **Buffer** instance to create, in bytes.| +| fill | string \| Buffer \| number | No| Value to be filled in the buffer. The default value is **0**.| | encoding | [BufferEncoding](#bufferencoding) | No| Encoding format (valid only when **fill** is a string). The default value is **utf-8**.| **Return value** @@ -97,12 +66,12 @@ let buf2 = buffer.alloc(5, 'a'); let buf3 = buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); ``` -### allocUninitializedFromPool +## buffer.allocUninitializedFromPool allocUninitializedFromPool(size: number): Buffer -Allocates a **Buffer** instance of the specified size from the buffer pool, without initializing it. -To initialize the **Buffer** instance, call **fill()**. +Creates a **Buffer** instance of the specified size from the buffer pool, without initializing it. +You need to use [fill()](#fill) to initialize the **Buffer** instance created. **System capability**: SystemCapability.Utils.Lang @@ -110,7 +79,7 @@ To initialize the **Buffer** instance, call **fill()**. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| size | number | Yes| Size of the **Buffer** instance to allocate, in bytes.| +| size | number | Yes| Size of the **Buffer** instance to create, in bytes.| **Return value** @@ -127,11 +96,12 @@ let buf = buffer.allocUninitializedFromPool(10); buf.fill(0); ``` -### allocUninitialized +## buffer.allocUninitialized allocUninitialized(size: number): Buffer -Allocates a **Buffer** instance of the specified size, without initializing it. This API does not allocate memory from the buffer pool. +Creates a **Buffer** instance of the specified size, without initializing it. This API does not allocate memory from the buffer pool. +You need to use [fill()](#fill) to initialize the **Buffer** instance created. **System capability**: SystemCapability.Utils.Lang @@ -139,7 +109,7 @@ Allocates a **Buffer** instance of the specified size, without initializing it. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| size | number | Yes|Size of the **Buffer** instance to allocate, in bytes.| +| size | number | Yes|Size of the **Buffer** instance to create, in bytes.| **Return value** @@ -156,7 +126,7 @@ let buf = buffer.allocUninitialized(10); buf.fill(0); ``` -### byteLength +## buffer.byteLength byteLength(string: string | Buffer | TypedArray | DataView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number @@ -169,7 +139,7 @@ Obtains the number of bytes of a string based on the encoding format. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | string | string \| Buffer \| TypedArray \| DataView \| ArrayBuffer \| SharedArrayBuffer | Yes| Target string.| -| encoding | [BufferEncoding](#bufferencoding) | No| Encoding format. The default value is **utf-8**.| +| encoding | [BufferEncoding](#bufferencoding) | No| Encoding format of the string. The default value is **utf-8**.| **Return value** @@ -187,7 +157,7 @@ console.log(`${str}: ${str.length} characters, ${buffer.byteLength(str, 'utf-8') // Print: ½ + ¼ = ¾: 9 characters, 12 bytes ``` -### compare +## buffer.compare compare(buf1: Buffer | Uint8Array, buf2: Buffer | Uint8Array): -1 | 0 | 1 @@ -221,11 +191,11 @@ let res = buf1.compare(buf2); console.log(Number(res).toString()); // Print 1. ``` -### concat +## buffer.concat concat(list: Buffer[] | Uint8Array[], totalLength?: number): Buffer -Concatenates an array of **Buffer** instances into a new instance of the specified length. +Concatenates an array of **Buffer** instances of the specified length into a new instance. **System capability**: SystemCapability.Utils.Lang @@ -234,7 +204,7 @@ Concatenates an array of **Buffer** instances into a new instance of the specifi | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | list | Buffer[] \| Uint8Array[] | Yes| Array of instances to concatenate.| -| totalLength | number | No| Total length of the new **Buffer** instance, in bytes.| +| totalLength | number | No| Total length of bytes to be copied.| **Return value** @@ -244,7 +214,7 @@ Concatenates an array of **Buffer** instances into a new instance of the specifi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -261,7 +231,7 @@ let buf = buffer.concat([buf1, buf2]); console.log(buf.toString('hex')); // 3132333461626364 ``` -### from +## buffer.from from(array: number[]): Buffer; @@ -290,11 +260,11 @@ let buf = buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); console.log(buf.toString('hex')); // 627566666572 ``` -### from +## buffer.from from(arrayBuffer: ArrayBuffer | SharedArrayBuffer, byteOffset?: number, length?: number): Buffer -Creates a **Buffer** instance that shares memory with the specified array of **Buffer** instances. +Creates a **Buffer** instance of the specified length that shares memory with **arrayBuffer**. **System capability**: SystemCapability.Utils.Lang @@ -314,7 +284,7 @@ Creates a **Buffer** instance that shares memory with the specified array of **B **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -329,7 +299,7 @@ let ab = new ArrayBuffer(10); let buf = buffer.from(ab, 0, 2); ``` -### from +## buffer.from from(buffer: Buffer | Uint8Array): Buffer @@ -341,7 +311,7 @@ Creates a **Buffer** instance with the copy of another instance. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| buffer | Buffer \| Uint8Array | Yes| **Buffer** instance to copy. | +| buffer | Buffer \| Uint8Array | Yes| **Buffer** instance to copy.| **Return value** @@ -358,7 +328,7 @@ let buf1 = buffer.from('buffer'); let buf2 = buffer.from(buf1); ``` -### from +## buffer.from from(object: Object, offsetOrEncoding: number | string, length: number): Buffer @@ -385,10 +355,10 @@ Creates a **Buffer** instance based on the specified object. ```ts import buffer from '@ohos.buffer'; -let buf = buffer.from(new String('this is a test')); +let buf = buffer.from(new String('this is a test'), 'utf8', 14); ``` -### from +## buffer.from from(string: String, encoding?: BufferEncoding): Buffer @@ -418,11 +388,11 @@ let buf1 = buffer.from('this is a test'); let buf2 = buffer.from('7468697320697320612074c3a97374', 'hex'); console.log (buf1.toString()); // Print: this is a test -console.log(buf2.toString()); +console.log (buf2.toString()); // print: this is a test ``` -### isBuffer +## buffer.isBuffer isBuffer(obj: Object): boolean @@ -454,7 +424,7 @@ buffer.isBuffer([]); // false buffer.isBuffer(new Uint8Array(1024)); // false ``` -### isEncoding +## buffer.isEncoding isEncoding(encoding: string): boolean @@ -485,6 +455,70 @@ console.log(buffer.isEncoding('utf/8').toString()); // Print: false console.log(buffer.isEncoding('').toString()); // Print: false ``` +## buffer.transcode + +transcode(source: Buffer | Uint8Array, fromEnc: string, toEnc: string): Buffer + +Transcodes the given **Buffer** or **Uint8Array** object from one encoding format to another. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| source | Buffer \| Uint8Array | Yes| Instance to encode.| +| fromEnc | string | Yes| Current encoding format.| +| toEnc | string | Yes| Target encoding format.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| Buffer | New **Buffer** instance in the target encoding format.| + +**Example** + +```ts +import buffer from '@ohos.buffer'; + +let buf = buffer.alloc(50); +let newBuf = buffer.transcode(buffer.from('€'), 'utf-8', 'ascii'); +console.log(newBuf.toString('ascii')); +``` + +## Buffer + +### Attributes + +**System capability**: SystemCapability.Utils.Lang + +| Name| Type| Readable| Writable| Description| +| -------- | -------- | -------- | -------- | -------- | +| length | number | Yes| No| Length of the **Buffer** instance, in bytes.| +| buffer | ArrayBuffer | Yes| No| **ArrayBuffer** object.| +| byteOffset | number | Yes| No| Offset of the **Buffer** instance in the memory pool.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message| +| -------- | -------- | +| 10200013 | Cannot set property ${propertyName} of Buffer which has only a getter. | + +**Example** + +```ts +import buffer from '@ohos.buffer'; + +let buf = buffer.from("1236"); +console.log(JSON.stringify(buf.length)); +let arrayBuffer = buf.buffer; +console.log(JSON.stringify(new Uint8Array(arrayBuffer))); +console.log(JSON.stringify(buf.byteOffset)); +``` + ### compare compare(target: Buffer | Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1 | 0 | 1 @@ -507,7 +541,15 @@ Compares this **Buffer** instance with another instance. | Type| Description| | -------- | -------- | -| number | Returns **0** if the two **Buffer** instances are the same.
        Returns **1** if this instance comes after the target instance when sorted.
        Returns **-1** if this instance comes before the target instance when sorted. | +| number | Returns **0** if the two **Buffer** instances are the same.
        Returns **1** if this instance comes after the target instance when sorted.
        Returns **-1** if this instance comes before the target instance when sorted.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message| +| -------- | -------- | +| 10200001 | The value of "[targetStart/targetEnd/sourceStart/sourceEnd]" is out of range. | **Example** @@ -547,7 +589,7 @@ Copies data at the specified position in this **Buffer** instance to the specifi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -578,6 +620,13 @@ Creates and returns an iterator that contains key-value pairs of this **Buffer** **System capability**: SystemCapability.Utils.Lang +**Return value** + +| Type| Description| +| -------- | -------- | +| number | Key of the iterator.| +| number | Value of the iterator.| + **Example** ```ts @@ -647,7 +696,7 @@ Fills this **Buffer** instance at the specified position. By default, data is fi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -739,7 +788,7 @@ Creates and returns an iterator that contains the keys of this **Buffer** instan | Type| Description| | -------- | -------- | -| IterableIterator<number> | Iterator.| +| IterableIterator<number> | Iterator created.| **Example** @@ -789,7 +838,7 @@ console.log(buf.lastIndexOf('buffer').toString()); // Print: 17 readBigInt64BE(offset?: number): bigint -Reads a signed, big-endian 64-bit Big integer from this **Buffer** instance at the specified offset. +Reads a signed, big-endian 64-bit integer from this **Buffer** instance at the specified offset. **System capability**: SystemCapability.Utils.Lang @@ -807,7 +856,7 @@ Reads a signed, big-endian 64-bit Big integer from this **Buffer** instance at t **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -848,7 +897,7 @@ Reads a signed, little-endian 64-bit Big integer from this **Buffer** instance a **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -889,7 +938,7 @@ Reads an unsigned, big-endian 64-bit Big integer from this **Buffer** instance a **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -930,7 +979,7 @@ Reads an unsigned, little-endian 64-bit Big integer from this **Buffer** instanc **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -971,7 +1020,7 @@ Reads a big-endian double-precision floating-point number from this **Buffer** i **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1011,7 +1060,7 @@ Reads a little-endian double-precision floating-point number from this **Buffer* **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1051,7 +1100,7 @@ Reads a big-endian single-precision floating-point number from this **Buffer** i **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1091,7 +1140,7 @@ Reads a little-endian single-precision floating-point number from this **Buffer* **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1131,7 +1180,7 @@ Reads a signed 8-bit integer from this **Buffer** instance at the specified offs **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1172,7 +1221,7 @@ Reads a signed, big-endian 16-bit integer from this **Buffer** instance at the s **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1212,7 +1261,7 @@ Reads a signed, little-endian 16-bit integer from this **Buffer** instance at th **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1252,7 +1301,7 @@ Reads a signed, big-endian 32-bit integer from this **Buffer** instance at the s **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1292,7 +1341,7 @@ Reads a signed, little-endian 32-bit integer from this **Buffer** instance at th **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1334,7 +1383,7 @@ Reads the specified number of bytes from this **Buffer** instance at the specifi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1378,7 +1427,7 @@ Reads the specified number of bytes from this **Buffer** instance at the specifi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1419,7 +1468,7 @@ Reads an unsigned 8-bit integer from this **Buffer** instance at the specified o **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1461,7 +1510,7 @@ Reads an unsigned, big-endian 16-bit integer from this **Buffer** instance at th **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1503,7 +1552,7 @@ Reads an unsigned, little-endian 16-bit integer from this **Buffer** instance at **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1545,7 +1594,7 @@ Reads an unsigned, big-endian 32-bit integer from this **Buffer** instance at th **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1586,7 +1635,7 @@ Reads an unsigned, little-endian 32-bit integer from this **Buffer** instance at **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1628,7 +1677,7 @@ Reads the specified number of bytes from this **Buffer** instance at the specifi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1670,7 +1719,7 @@ Reads the specified number of bytes from this **Buffer** instance at the specifi **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1741,7 +1790,7 @@ Interprets this **Buffer** instance as an array of unsigned 16-bit integers and **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1776,7 +1825,7 @@ Interprets this **Buffer** instance as an array of unsigned 32-bit integers and **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1811,7 +1860,7 @@ Interprets this **Buffer** instance as an array of unsigned 64-bit integers and **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1901,7 +1950,7 @@ Creates and returns an iterator that contains the values of this **Buffer** inst | Type| Description| | -------- | -------- | -| IterableIterator<number> | Iterator created.| +| IterableIterator<number> | Iterator.| **Example** @@ -1940,7 +1989,7 @@ Writes a string of the specified length to this **Buffer** instance at the speci **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -1984,7 +2033,7 @@ Writes a signed, big-endian 64-bit Big integer to this **Buffer** instance at th **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2023,7 +2072,7 @@ Writes a signed, little-endian 64-bit Big integer to this **Buffer** instance at **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2062,7 +2111,7 @@ Writes an unsigned, big-endian 64-bit Big integer to this **Buffer** instance at **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2101,7 +2150,7 @@ Writes an unsigned, little-endian 64-bit Big integer to this **Buffer** instance **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2140,7 +2189,7 @@ Writes a big-endian double-precision floating-point number to this **Buffer** in **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2179,7 +2228,7 @@ Writes a little-endian double-precision floating-point number to this **Buffer** **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2218,7 +2267,7 @@ Writes a big-endian single-precision floating-point number to this **Buffer** in **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2258,7 +2307,7 @@ Writes a little-endian single-precision floating-point number to this **Buffer** **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2297,7 +2346,7 @@ Writes a signed 8-bit integer to this **Buffer** instance at the specified offse **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2338,7 +2387,7 @@ Writes a signed, big-endian 16-bit integer to this **Buffer** instance at the sp **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2378,7 +2427,7 @@ Writes a signed, little-endian 16-bit integer to this **Buffer** instance at the **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2417,7 +2466,7 @@ Writes a signed, big-endian 32-bit integer to this **Buffer** instance at the sp **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2457,7 +2506,7 @@ Writes a signed, little-endian 32-bit integer to this **Buffer** instance at the **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2497,7 +2546,7 @@ Writes a big-endian signed value of the specified length to this **Buffer** inst **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2538,7 +2587,7 @@ Writes a little-endian signed value of the specified length to this **Buffer** i **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2577,7 +2626,7 @@ Writes an unsigned 8-bit integer to this **Buffer** instance at the specified of **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2619,7 +2668,7 @@ Writes an unsigned, big-endian 16-bit integer to this **Buffer** instance at the **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2659,7 +2708,7 @@ Writes an unsigned, little-endian 16-bit integer to this **Buffer** instance at **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2699,7 +2748,7 @@ Writes an unsigned, big-endian 32-bit integer to this **Buffer** instance at the **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2738,7 +2787,7 @@ Writes an unsigned, little-endian 32-bit integer to this **Buffer** instance at **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2778,7 +2827,7 @@ Writes an unsigned big-endian value of the specified length to this **Buffer** i **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2818,7 +2867,7 @@ Writes an unsigned little-endian value of the specified length to this **Buffer* **Error codes** -For details about the error codes, see [Buffer Error Codes](../errorcodes/errorcode-buffer.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -2833,38 +2882,6 @@ let buf = buffer.allocUninitializedFromPool(6); buf.writeUIntLE(0x1234567890ab, 0, 6); ``` -### transcode - -transcode(source: Buffer | Uint8Array, fromEnc: string, toEnc: string): Buffer - -Transcodes the given **Buffer** or **Uint8Array** instance from one encoding format to another. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| source | Buffer \| Uint8Array | Yes| Instance to transcode. | -| fromEnc | string | Yes| Current encoding format.| -| toEnc | string | Yes| Target encoding format.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| Buffer | New **Buffer** instance in the target encoding format.| - -**Example** - -```ts -import buffer from '@ohos.buffer'; - -let buf = buffer.alloc(50); -let newBuf = buffer.transcode(buffer.from('€'), 'utf-8', 'ascii'); -console.log(newBuf.toString('ascii')); -``` - ## Blob ### Attributes @@ -2941,7 +2958,7 @@ Creates a **Blob** instance by copying specified data from this **Blob** instanc **Return value** | Type| Description| | -------- | -------- | -| Blob | **Blob** instance created. | +| Blob | New **Blob** instance created.| **Example** ```ts @@ -2954,7 +2971,7 @@ let blob3 = blob.slice(0, 2, "MIME"); text(): Promise<string> -Returns text in UTF-8 format. +Returns text in UTF-8 format. This API uses a promise to return the result. **System capability**: SystemCapability.Utils.Lang -- GitLab From 75f4a53557690415bdfefb231c82ef0eafea9d98 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 17 Jan 2023 00:05:50 +0800 Subject: [PATCH 286/383] update docs Signed-off-by: Annie_wang --- .../security/permission-list.md | 1770 +++++++++++++++-- 1 file changed, 1605 insertions(+), 165 deletions(-) diff --git a/en/application-dev/security/permission-list.md b/en/application-dev/security/permission-list.md index 7f84d9cd05..ab9554fd7f 100644 --- a/en/application-dev/security/permission-list.md +++ b/en/application-dev/security/permission-list.md @@ -1,165 +1,1605 @@ -# App Permission List - -Before applying for required permissions, read and understand the [permission workflows](accesstoken-overview.md#permission-workflows). Then, determine whether the app can apply for the target permissions based on the table below. - -For details about permission usage examples, see [Permission Application Guide](accesstoken-guidelines.md). - -| Permission | APL | Authorization Mode | Enable ACL| Description | -| -------------------------------------------------------- | ------------ | ------------ | ------- | ------------------------------------------- | -| ohos.permission.USE_BLUETOOTH | normal | system_grant | TRUE | Allows an app to access to Bluetooth configuration. | -| ohos.permission.DISCOVER_BLUETOOTH | normal | system_grant | TRUE | Allows an app to configure Bluetooth on a device, initiate or cancel a scan for Bluetooth devices, and pair with Bluetooth devices. | -| ohos.permission.MANAGE_BLUETOOTH | system_basic | system_grant | TRUE | Allows an app to pair with a Bluetooth device and access the contacts or messages of the device. | -| ohos.permission.INTERNET | normal | system_grant | TRUE | Allows an app to access the Internet. | -| ohos.permission.
        MODIFY_AUDIO_SETTINGS | normal | system_grant | TRUE | Allows an app to modify audio settings. | -| ohos.permission.
        ACCESS_NOTIFICATION_POLICY | normal | system_grant | FALSE | Allows an app to access the notification policy on the device. | -| ohos.permission.GET_TELEPHONY_STATE | system_basic | system_grant | TRUE | Allows an app to read telephony information. | -| ohos.permission.REQUIRE_FORM | system_basic | system_grant | TRUE | Allows an app to obtain the Ability Form. | -| ohos.permission.GET_NETWORK_INFO | normal | system_grant | TRUE | Allows an app to obtain network information. | -| ohos.permission.PLACE_CALL | system_basic | system_grant | TRUE | Allows an app to make calls without starting the dialer. | -| ohos.permission.SET_NETWORK_INFO | normal | system_grant | TRUE | Allows an app to set data network information. | -| ohos.permission.REMOVE_CACHE_FILES | system_basic | system_grant | TRUE | Allows the cache of the specified app to be cleared. | -| ohos.permission.REBOOT | system_basic | system_grant | TRUE | Allows an app to restart the device. | -| ohos.permission.RUNNING_LOCK | normal | system_grant | TRUE | Allows an app to obtain a running lock. | -| ohos.permission.SET_TIME | system_basic | system_grant | TRUE | Allows an app to set the system time. | -| ohos.permission.SET_TIME_ZONE | system_basic | system_grant | TRUE | Allows an app to set the system time zone. | -| ohos.permission.
        DOWNLOAD_SESSION_MANAGER | system_core | system_grant | TRUE | Allows an app to manage the download sessions. | -| ohos.permission.COMMONEVENT_STICKY | normal | system_grant | TRUE | Allows an app to publish sticky common events. | -| ohos.permission.SYSTEM_FLOAT_WINDOW | system_basic | system_grant | TRUE | Allows an app to be displayed in a floating window on top of other apps. | -| ohos.permission.PRIVACY_WINDOW | system_basic | system_grant | TRUE | Allows an app to set screens that cannot be captured or recorded. | -| ohos.permission.POWER_MANAGER | system_core | system_grant | TRUE | Allows an app to hibernate or wake up the device by calling APIs. | -| ohos.permission.REFRESH_USER_ACTION | system_basic | system_grant | TRUE | Allows an app to reset the screen timeout counter when a user input event occurs, such as pressing a key or touching the screen. | -| ohos.permission.POWER_OPTIMIZATION | system_basic | system_grant | TRUE | Allows an app to set power saving mode, obtain configuration of the power saving mode, and receive notifications of the configuration changes.| -| ohos.permission.REBOOT_RECOVERY | system_basic | system_grant | TRUE | Allows an app to restart the device and enter Recovery mode. | -| ohos.permission.
        MANAGE_LOCAL_ACCOUNTS | system_basic | system_grant | TRUE | Allows an app to manage local user accounts. | -| ohos.permission.
        INTERACT_ACROSS_LOCAL_ACCOUNTS | system_basic | system_grant | TRUE | Allows access between multiple OS accounts. | -| ohos.permission.VIBRATE | normal | system_grant | TRUE | Allows an app to control vibration. | -| ohos.permission.CONNECT_IME_ABILITY | system_core | system_grant | TRUE | Allows an app or service to bind to the **InputMethodAbility**. | -| ohos.permission.
        CONNECT_SCREEN_SAVER_ABILITY | system_core | system_grant | TRUE | Allows an app or service to bind to the **ScreenSaverAbility**. | -| ohos.permission.
        READ_SCREEN_SAVER | system_basic | system_grant | TRUE | Allows an app to read the screen saver information, such as the list of screen savers that have been installed and the activated one. | -| ohos.permission.
        WRITE_SCREEN_SAVER | system_basic | system_grant | TRUE | Allows an app to modify the screen saver information, such as activating and previewing a screen saver. | -| ohos.permission.SET_WALLPAPER | normal | system_grant | TRUE | Allows an app to set a static wallpaper. | -| ohos.permission.GET_WALLPAPER | system_basic | system_grant | TRUE | Allows an app to read wallpaper files. | -| ohos.permission.
        CHANGE_ABILITY_ENABLED_STATE | system_basic | system_grant | TRUE | Allows an app to enable or disable an app or component. | -| ohos.permission.ACCESS_MISSIONS | system_basic | system_grant | TRUE | Allows an app to obtain information about running processes and mission in a mission stack. | -| ohos.permission.
        CLEAN_BACKGROUND_PROCESSES | normal | system_grant | TRUE | Allows an app to clear background processes based on their bundle names. | -| ohos.permission.
        KEEP_BACKGROUND_RUNNING | normal | system_grant | TRUE | Allows a Service ability to keep running in the background. | -| ohos.permission.
        UPDATE_CONFIGURATION | system_basic | system_grant | TRUE | Allows an app to modify system settings. | -| ohos.permission.UPDATE_SYSTEM | system_basic | system_grant | TRUE | Allows an app to call the update APIs. | -| ohos.permission.FACTORY_RESET | system_basic | system_grant | TRUE | Allows an app to call the APIs for restoring factory settings. | -| ohos.permission.
        GRANT_SENSITIVE_PERMISSIONS | system_core | system_grant | TRUE | Allows an app to grant sensitive permissions to other apps. | -| ohos.permission.
        REVOKE_SENSITIVE_PERMISSIONS | system_core | system_grant | TRUE | Allows an app to revoke sensitive permissions granted to other apps. | -| ohos.permission.
        GET_SENSITIVE_PERMISSIONS | system_core | system_grant | TRUE | Allows an app to obtain the sensitive permissions that have been granted to other apps. | -| ohos.permission.INTERACT_
        ACROSS_LOCAL_ACCOUNTS_EXTENSION | system_core | system_grant | TRUE | Allows an app to set the attributes of apps of other users. | -| ohos.permission.LISTEN_BUNDLE_CHANGE | system_basic | system_grant | TRUE | Allows an app to listen for changes in other apps, when they are installed, updated, or uninstalled. | -| ohos.permission.GET_BUNDLE_INFO | normal | system_grant | TRUE | Allows a non-system app to obtain information about other apps. | -| ohos.permission.ACCELEROMETER | normal | system_grant | TRUE | Allows an app to read data from an acceleration sensor, uncalibrated acceleration sensor, or linear acceleration sensor. | -| ohos.permission.GYROSCOPE | normal | system_grant | TRUE | Allows an app to read data from a gyroscope sensor or uncalibrated gyroscope sensor. | -| ohos.permission.
        GET_BUNDLE_INFO_PRIVILEGED | system_basic | system_grant | TRUE | Allows a non-system app to obtain information about other apps. | -| ohos.permission.INSTALL_BUNDLE | system_core | system_grant | TRUE | Allows an app to install and uninstall other apps. | -| ohos.permission.MANAGE_SHORTCUTS | system_core | system_grant | TRUE | Allows an app to query and start shortcuts of other apps.| -| ohos.permission.radio.ACCESS_FM_AM | system_core | system_grant | TRUE | Allows an app to access radio services. | -| ohos.permission.SET_TELEPHONY_STATE | system_basic | system_grant | TRUE | Allows an app to change the telephone state. | -| ohos.permission.
        START_ABILITIES_FROM_BACKGROUND | system_basic | system_grant | TRUE | Allows an app to start Feature abilities in the background. | -| ohos.permission.BUNDLE_ACTIVE_INFO | system_basic | system_grant | TRUE | Allows an app to obtain how long other apps have been running in the foreground or background. | -| ohos.permission.
        START_INVISIBLE_ABILITY | system_core | system_grant | TRUE | Allows an app to start an invisible ability. | -| ohos.permission.sec.ACCESS_UDID | system_basic | system_grant | TRUE | Allows an app to obtain the Unified Device ID (UDID). | -| ohos.permission.
        LAUNCH_DATA_PRIVACY_CENTER | system_basic | system_grant | TRUE | Allows an app to switch from its privacy statement page to the Data & privacy page. | -| ohos.permission.MANAGE_MEDIA_RESOURCES | system_basic | system_grant | TRUE | Allows an app to obtain and manage the media resources that are being played on the device.| -| ohos.permission.PUBLISH_AGENT_REMINDER | normal | system_grant | TRUE | Allows an app to use agent-powered reminders. | -| ohos.permission.
        CONTROL_TASK_SYNC_ANIMATOR | system_core | system_grant | TRUE | Allows apps to use sync task animations. | -| ohos.permission.INPUT_MONITORING | system_core | system_grant | TRUE | Allows an app to listen for input events. Only the system signature apps can apply for this permission. | -| ohos.permission.MANAGE_MISSIONS | system_core | system_grant | TRUE | Allows an app to manage ability mission stacks. | -| ohos.permission.
        NOTIFICATION_CONTROLLER | system_core | system_grant | TRUE | Allows an app to manage and subscribe to notifications. | -| ohos.permission.CONNECTIVITY_INTERNAL | system_basic | system_grant | TRUE | Allows an app to obtain network information or modify network settings. | -| ohos.permission.SET_ABILITY_CONTROLLER | system_basic | system_grant | TRUE | Allows an app to set the start and stop of an ability. | -| ohos.permission.USE_USER_IDM | system_basic | system_grant | FALSE | Allows an app to access the system identity credential information. | -| ohos.permission.MANAGE_USER_IDM | system_basic | system_grant | FALSE | Allows an app to use the system identity credential management capability to enroll, modify, and delete PINs, face images, and fingerprints.| -| ohos.permission.ACCESS_BIOMETRIC | normal | system_grant | TRUE | Allows an app to use biometric recognition for identity authentication. | -| ohos.permission.
        ACCESS_USER_AUTH_INTERNAL | system_basic | system_grant | FALSE | Allows an app to use the system identity authentication capability to authenticate or identify users. | -| ohos.permission.ACCESS_PIN_AUTH | system_basic | system_grant | FALSE | Allows a system app to call the PIN input APIs to present a password input dialog box for users.| -| ohos.permission.GET_RUNNING_INFO | system_basic | system_grant | TRUE | Allows an app to obtain running status information. | -| ohos.permission.CLEAN_APPLICATION_DATA | system_basic | system_grant | TRUE | Allows an app to clear app data. | -| ohos.permission.RUNNING_STATE_OBSERVER | system_basic | system_grant | TRUE | Allows an app to observe the app status. | -| ohos.permission.CAPTURE_SCREEN | system_core | system_grant | TRUE | Allows an app to take screenshots. | -| ohos.permission.GET_WIFI_INFO | normal | system_grant | TRUE | Allows an app to obtain WLAN information. | -| ohos.permission.GET_WIFI_INFO_INTERNAL | system_core | system_grant | TRUE | Allows an app to obtain WLAN information. | -| ohos.permission.SET_WIFI_INFO | normal | system_grant | TRUE | Allows an app to set WLAN devices. | -| ohos.permission.GET_WIFI_PEERS_MAC | system_core | system_grant | TRUE | Allows an app to obtain the MAC address of the peer WLAN or Bluetooth device. | -| ohos.permission.GET_WIFI_LOCAL_MAC | system_basic | system_grant | TRUE | Allows an app to obtain the MAC address of the local WLAN or Bluetooth device. | -| ohos.permission.GET_WIFI_CONFIG | system_basic | system_grant | TRUE | Allows an app to obtain the WLAN configuration. | -| ohos.permission.SET_WIFI_CONFIG | system_basic | system_grant | TRUE | Allows an app to set WLAN information. | -| ohos.permission.
        MANAGE_WIFI_CONNECTION | system_core | system_grant | TRUE | Allows an app to manage WLAN connections. | -| ohos.permission.MANAGE_WIFI_HOTSPOT | system_core | system_grant | TRUE | Allows an app to enable or disable Wi-Fi hotspots. | -| ohos.permission.GET_ALL_APP_ACCOUNTS | system_core | system_grant | FALSE | Allows an app to obtain all app account information. | -| ohos.permission.MANAGE_SECURE_SETTINGS | system_basic | system_grant | TRUE | Allows an app to modify security settings. | -| ohos.permission.READ_DFX_SYSEVENT | system_basic | system_grant | FALSE | Allows an app to obtain all app account information. | -| ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN | system_core | system_grant | TRUE | Allows an app to activate the device administrator app. | -| ohos.permission.SET_ENTERPRISE_INFO | system_basic | system_grant | TRUE | Allows the device administrator app to set enterprise information. | -| ohos.permission.ENTERPRISE_SUBSCRIBE_MANAGED_EVENT | system_basic | system_grant | TRUE | Allows the device administrator app to subscribe to management events. | -| ohos.permission.ENTERPRISE_SET_DATETIME | system_basic | system_grant | TRUE | Allows the device administrator app to set the system time. | -| ohos.permission.ENTERPRISE_GET_DEVICE_INFO | system_basic | system_grant | TRUE | Allows the device administrator app to obtain device information. | -| ohos.permission.NFC_TAG | normal | system_grant | FALSE | Allows an app to read NFC tag information. | -| ohos.permission.NFC_CARD_EMULATION | normal | system_grant | FALSE | Allows an app to implement card emulation. | -| ohos.permission.PERMISSION_USED_STATS | system_basic | system_grant | TRUE | Allows a system application to access the permission usage records. | -| ohos.permission.
        NOTIFICATION_AGENT_CONTROLLER | system_core | system_grant | TRUE | Allows an app to send agent-powered notifications. | -| ohos.permission.ANSWER_CALL | system_basic | user_grant | TRUE | Allows an app to answer incoming calls. | -| ohos.permission.READ_CALENDAR | normal | user_grant | TRUE | Allows an app to read calendar data. | -| ohos.permission.READ_CALL_LOG | system_basic | user_grant | TRUE | Allows an app to read call logs. | -| ohos.permission.READ_CELL_MESSAGES | system_basic | user_grant | TRUE | Allows an app to read cell broadcast messages received by the device. | -| ohos.permission.READ_CONTACTS | system_basic | user_grant | TRUE | Allows an app to read contacts. | -| ohos.permission.READ_MESSAGES | system_basic | user_grant | TRUE | Allows an app to read messages. | -| ohos.permission.RECEIVE_MMS | system_basic | user_grant | TRUE | Allows an app to receive and process MMS messages. | -| ohos.permission.RECEIVE_SMS | system_basic | user_grant | TRUE | Allows an app to receive and process SMS messages. | -| ohos.permission.RECEIVE_WAP_MESSAGES | system_basic | user_grant | TRUE | Allows an app to receive and process WAP messages. | -| ohos.permission.MICROPHONE | normal | user_grant | TRUE | Allows an app to access the microphone. | -| ohos.permission.SEND_MESSAGES | system_basic | user_grant | TRUE | Allows an app to send messages. | -| ohos.permission.WRITE_CALENDAR | normal | user_grant | TRUE | Allows an app to add, remove, and modify calendar events. | -| ohos.permission.WRITE_CALL_LOG | system_basic | user_grant | TRUE | Allows an app to add, remove, and modify call logs. | -| ohos.permission.WRITE_CONTACTS | system_basic | user_grant | TRUE | Allows an app to add, remove, and modify contacts. | -| ohos.permission.DISTRIBUTED_DATASYNC | normal | user_grant | TRUE | Allows an app to exchange data with other devices. | -| ohos.permission.MANAGE_VOICEMAIL | system_basic | user_grant | TRUE | Allows an app to leave messages in the voice mailbox. | -| ohos.permission.
        LOCATION_IN_BACKGROUND | normal | user_grant | FALSE | Allows an app running in the background to obtain the device location. | -| ohos.permission.LOCATION | normal | user_grant | TRUE | Allows an app to obtain the device location. | -| ohos.permission.APPROXIMATELY_LOCATION | normal | user_grant | FALSE | Allows an app to obtain the approximate location information of a device. | -| ohos.permission.MEDIA_LOCATION | normal | user_grant | TRUE | Allows an app to access geographical locations in the user's media file. | -| ohos.permission.CAMERA | normal | user_grant | TRUE | Allows an app to use the camera to take photos and record videos. | -| ohos.permission.READ_MEDIA | normal | user_grant | TRUE | Allows an app to read media files from the user's external storage. | -| ohos.permission.WRITE_MEDIA | normal | user_grant | TRUE | Allows an app to read media files from and write media files into the user's external storage. | -| ohos.permission.ACTIVITY_MOTION | normal | user_grant | TRUE | Allows an app to read the current workout status of the user. | -| ohos.permission.READ_HEALTH_DATA | normal | user_grant | TRUE | Allows an app to read the health data of the user. | -| ohos.permission.GET_DEFAULT_APPLICATION | system_core | system_grant | TRUE | Allows an app to query default apps. | -| ohos.permission.SET_DEFAULT_APPLICATION | system_core | system_grant | TRUE | Allows an app to set and reset default apps. | -| ohos.permission.
        MANAGE_DISPOSED_APP_STATUS | system_core | system_grant | TRUE | Allows an app to set and query the app handling state. | -| ohos.permission.ACCESS_IDS | system_core | system_grant | TRUE | Allows an app to query the unique identifier of a device. | -| ohos.permission.DUMP | system_core | system_grant | TRUE | Allows the basic system information and SA service information to be exported. | -| ohos.permission.
        DISTRIBUTED_SOFTBUS_CENTER | system_basic | system_grant | FALSE | Allows networking between different devices. | -| ohos.permission.ACCESS_DLP_FILE | system_core | system_grant | TRUE | Allows configuration and management of the permissions on .dlp files. | -| ohos.permission.PROVISIONING_MESSAGE | system_core | system_grant | TRUE | Allows the Super Device Manager application to be activated. | -| ohos.permission.
        ACCESS_SYSTEM_SETTINGS | system_basic | system_grant | TRUE | Allows an app to access or start system **Settings**. | -| ohos.permission.READ_IMAGEVIDEO | system_basic | user_grant | TRUE | Allows access to the images or video files in a user's directory. | -| ohos.permission.READ_AUDIO | system_basic | user_grant | TRUE | Allows access to the audio files in a user's directory. | -| ohos.permission.READ_DOCUMENT | system_basic | user_grant | TRUE | Allows access to the files in a user's directory. | -| ohos.permission.WRITE_IMAGEVIDEO | system_basic | user_grant | TRUE | Allows modification to the images or video files in a user's directory. | -| ohos.permission.WRITE_AUDIO | system_basic | user_grant | TRUE | Audio modification to the audio files in a user's directory. | -| ohos.permission.WRITE_DOCUMENT | system_basic | user_grant | TRUE | Allows modification to the files in a user's directory. | -| ohos.permission.
        ABILITY_BACKGROUND_COMMUNICATION | system_basic | system_grant | TRUE | Allows an app to start the Ability component in the background and establish a connection with it. | -| ohos.permission.
        securityguard.REPORT_SECURITY_INFO | system_basic | system_grant | FALSE | Allows an app to report risk data for security guard. | -| ohos.permission.
        securityguard.REQUEST_SECURITY_MODEL_RESULT | system_basic | system_grant | TRUE | Allows an app to obtain the device risk status. | -| ohos.permission.
        securityguard.REQUEST_SECURITY_EVENT_INFO | system_core | system_grant | FALSE | Allows an app to obtain detailed risk data. | -| ohos.permission.
        READ_ACCESSIBILITY_CONFIG | system_basic | system_grant | FALSE | Allows an app to read the accessibility configuration. | -| ohos.permission.
        WRITE_ACCESSIBILITY_CONFIG | system_basic | system_grant | FALSE | Allows an app to set the accessibility configuration. | -| ohos.permission.
        ACCESS_CERT_MANAGER_INTERNAL | system_basic | system_grant | FALSE | Allows an app to install, uninstall, enable, and disable certificates and credentials. | -| ohos.permission.
        ACCESS_CERT_MANAGER | normal | system_grant | FALSE | Allows an app to manage private credentials and query certificate status. | -| ohos.permission.
        ACCESS_PUSH_SERVICE | system_basic | system_grant | TRUE | Allows an app to to access the Ability of the push service. | -| ohos.permission.
        RECEIVER_STARTUP_COMPLETED | system_basic | system_grant | FALSE | Allows an app to subscribe to the startup broadcast. | -| ohos.permission.
        MANAGE_CAMERA_CONFIG | system_basic | system_grant | FALSE | Allows an app to enable or disable cameras globally. | -| ohos.permission.READ_WHOLE_CALENDAR | system_basic | uesr_grant | TRUE | Allows an app to read all calendar information. | -| ohos.permission.WRITE_WHOLE_CALENDAR | system_basic | uesr_grant | TRUE | Allows an app to add, remove, or change all calendar events. | -| ohos.permission.ENFORCE_USER_IAM | system_core | system_grant | TRUE | Allows an SA to delete user information from the IAM subsystem without a token. | -| ohos.permission.ACCESS_AUTH_RESPOOL | system_core | system_grant | TRUE | Allows an SA to register the executor. | -| ohos.permission.MOUNT_UNMOUNT_MANAGER | system_basic | system_grant | FALSE | Allows an app to mount and unmount external cards. | -| ohos.permission.MOUNT_FORMAT_MANAGER | system_basic | system_grant | FALSE | Allows an app to format external cards. | -| ohos.permission.STORAGE_MANAGER | system_basic | system_grant | TRUE | Allows an app to call the interfaces of the Storage Manager service to query space statistics and volume information. | -| ohos.permission.BACKUP | system_basic | system_grant | TRUE | Allows an app to have backup and restore capabilities. | -| ohos.permission.FILE_ACCESS_MANAGER | system_basic | system_grant | TRUE | Allows a file management app to access user data files through the FAF. | -| ohos.permission.MANAGE_AUDIO_CONFIG | system_basic | system_grant | TRUE | Allows an app to to mute microphones globally. | +# Application Permission List + +Before applying for required permissions, read and understand the [permission workflows](accesstoken-overview.md#permission-workflows). Then, determine the permissions required for your application. + +For details about how to apply for required permissions, see [Permission Application Guide](accesstoken-guidelines.md). + +## ohos.permission.USE_BLUETOOTH + +Allows an application to access Bluetooth configurations. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.DISCOVER_BLUETOOTH + +Allows an application to configure Bluetooth on a device, initiate or cancel a scan for Bluetooth devices, and pair with Bluetooth devices. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_BLUETOOTH + +Allows an application to pair with a Bluetooth device and access the contacts or messages of the device. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.INTERNET + +Allows an application to access the Internet. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MODIFY_AUDIO_SETTINGS + +Allows an application to modify audio settings. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_NOTIFICATION_POLICY + +Allows an application to access the notification policy on the device. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.GET_TELEPHONY_STATE + +Allows an application to read telephony information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.REQUIRE_FORM + +Allows an application to obtain widgets. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_NETWORK_INFO + +Allows an application to obtain network information. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.PLACE_CALL + +Allows an application to make calls without starting the dialer. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_NETWORK_INFO + +Allows an application to set data network information. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.REMOVE_CACHE_FILES + +Allows the cache of the specified application to be cleared. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.REBOOT + +Allows an application to restart the device. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.RUNNING_LOCK + +Allows an application to obtain a running lock. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_TIME + +Allows an application to set the system time. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_TIME_ZONE + +Allows an application to set the system time zone. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.DOWNLOAD_SESSION_MANAGER + +Allows an application to manage download sessions. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.COMMONEVENT_STICKY + +Allows an application to publish sticky common events. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SYSTEM_FLOAT_WINDOW + +Allows an application to be displayed in a floating window on top of other apps. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.PRIVACY_WINDOW + +Allows an application to set screens that cannot be captured or recorded. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.POWER_MANAGER + +Allows an application to hibernate or wake up the device by calling an API. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.REFRESH_USER_ACTION + +Allows an application to reset the screen timeout counter when a user input event occurs, such as pressing a key or touching the screen. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.POWER_OPTIMIZATION + +Allows an application to set power saving mode, obtain configuration of the power saving mode, and receive notifications of the configuration changes. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.REBOOT_RECOVERY + +Allows an application to restart the device and enter Recovery mode. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_LOCAL_ACCOUNTS + +Allows an application to manage local user accounts. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS + +Allows access between multiple OS accounts. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.VIBRATE + +Allows an application to control vibration. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CONNECT_IME_ABILITY + +Allows an application to bind the InputMethodAbility. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CONNECT_SCREEN_SAVER_ABILITY + +Allows an application to bind the ScreenSaverAbility. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_SCREEN_SAVER + +Allows an application to read the screen saver information, such as the list of screen savers that have been installed and the activated one. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_SCREEN_SAVER + +Allows an application to modify the screen saver information, such as activating and previewing a screen saver. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_WALLPAPER + +Allows an application to set a static wallpaper. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_WALLPAPER + +Allows an application to read wallpaper files. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CHANGE_ABILITY_ENABLED_STATE + +Allows an application to enable or disable an application or component. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_MISSIONS + +Allows an application to obtain information about running processes and mission in a mission stack. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CLEAN_BACKGROUND_PROCESSES + +Allows an application to clear background processes based on their bundle names. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.KEEP_BACKGROUND_RUNNING + +Allows a Service ability to keep running in the background. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.UPDATE_CONFIGURATION + +Allows an application to modify system settings. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.UPDATE_SYSTEM + +Allows an application to call the update APIs. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.FACTORY_RESET + +Allows an application to call the API for restoring factory settings. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GRANT_SENSITIVE_PERMISSIONS + +Allows an application to grant sensitive permissions to other apps. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.REVOKE_SENSITIVE_PERMISSIONS + +Allows an application to revoke sensitive permissions granted to other apps. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_SENSITIVE_PERMISSIONS + +Allows an application to obtain the sensitive permissions that have been granted to other apps. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION + +Allows an application to set the attributes of apps of other users. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.LISTEN_BUNDLE_CHANGE + +Allows an application to listen for changes in other applications, when they are installed, updated, or uninstalled. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_BUNDLE_INFO + +Allows an application to query information about another application. This permission applies only to third-party applications. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + +Allows an application to query information about other applications at the same time. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCELEROMETER + +Allows an application to read data from an acceleration sensor, uncalibrated acceleration sensor, or linear acceleration sensor. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GYROSCOPE + +Allows an application to read data from a gyroscope sensor or uncalibrated gyroscope sensor. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.INSTALL_BUNDLE + +Allows an application to install and uninstall other applications. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_SHORTCUTS + +Allows an application to query and start shortcuts of other apps. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.radio.ACCESS_FM_AM + +Allows an application to access radio services. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_TELEPHONY_STATE + +Allows an application to change the telephone state. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.START_ABILIIES_FROM_BACKGROUND + +Allows an application to start Feature abilities in the background. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.BUNDLE_ACTIVE_INFO + +Allows an application to obtain how long other apps have been running in the foreground or background. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.START_INVISIBLE_ABILITY + +Allows an application to start an invisible ability. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.sec.ACCESS_UDID + +Allows an application to obtain the Unified Device ID (UDID). + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.LAUNCH_DATA_PRIVACY_CENTER + +Allows an application to switch from its privacy statement page to the Data & privacy page. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_MEDIA_RESOURCES + +Allows an application to obtain and manage the media resources that are being played on the device. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.PUBLISH_AGENT_REMINDER + +Allows an application to use agent-powered reminders. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CONTROL_TASK_SYNC_ANIMATOR + +Allows apps to use sync task animations. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.INPUT_MONITORING + +Allows an application to listen for input events. Only the system signature apps can apply for this permission. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_MISSIONS + +Allows an application to manage ability mission stacks. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.NOTIFICATION_CONTROLLER + +Allows an application to manage and subscribe to notifications. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CONNECTIVITY_INTERNAL + +Allows an application to obtain network information or modify network settings. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_ABILITY_CONTROLLER + +Allows an application to set the start and stop of an ability. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.USE_USER_IDM + +Allows an application to access the system identity credential information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.MANAGE_USER_IDM + +Allows an application to use the system identity credential management capability to enroll, modify, and delete PINs, face images, and fingerprints. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.ACCESS_BIOMETRIC + +Allows an application to use biometric recognition for identity authentication. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_USER_AUTH_INTERNAL + +Allows an application to use the system identity authentication capability to authenticate or identify users. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.ACCESS_PIN_AUTH + +Allows a system application to call the PIN input APIs to present a password input dialog box for users. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.GET_RUNNING_INFO + +Allows an application to obtain running status information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CLEAN_APPLICATION_DATA + +Allows an application to clear application data. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.RUNNING_STATE_OBSERVER + +Allows an application to observe the application status. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.CAPTURE_SCREEN + +Allows an application to take screenshots. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_WIFI_INFO + +Allows an application to obtain WLAN information. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_WIFI_INFO_INTERNAL + +Allows an application to obtain WLAN information. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_WIFI_INFO + +Allows an application to set WLAN devices. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_WIFI_PEERS_MAC + +Allows an application to obtain the MAC address of the peer WLAN or Bluetooth device. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_WIFI_LOCAL_MAC + +Allows an application to obtain the MAC address of the local WLAN or Bluetooth device. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_WIFI_CONFIG + +Allows an application to obtain the WLAN configuration. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_WIFI_CONFIG + +Allows an application to set WLAN information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_WIFI_CONNECTION + +Allows an application to manage WLAN connections. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_WIFI_HOTSPOT + +Allows an application to enable or disable Wi-Fi hotspots. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_ALL_APP_ACCOUNTS + +Allows an application to obtain all application account information. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.MANAGE_SECURE_SETTINGS + +Allows an application to modify security settings. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_DFX_SYSEVENT + +Allows an application to access system event logging data. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_ENTERPRISE_DEVICE_ADMIN + +Allows an application to activate the device administrator app. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_ENTERPRISE_INFO + +Allows the device administrator application to set enterprise information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ENTERPRISE_SUBSCRIBE_MANAGED_EVENT + +Allows the device administrator application to subscribe to management events. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ENTERPRISE_SET_DATETIME + +Allows the device administrator application to set the system time. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ENTERPRISE_GET_DEVICE_INFO + +Allows the device administrator application to obtain device information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.NFC_TAG + +Allows an application to read NFC tag information. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.NFC_CARD_EMULATION + +Allows an application to implement card emulation. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.PERMISSION_USED_STATS + +Allows a system application to access the permission usage records. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.NOTIFICATION_AGENT_CONTROLLER + +Allows an application to send agent-powered notifications. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ANSWER_CALL + +Allows an application to answer incoming calls. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_CALENDAR + +Allows an application to read calendar data. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_CALL_LOG + +Allows an application to read call logs. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_CELL_MESSAGES + +Allows an application to read cell broadcast messages received by the device. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_CONTACTS + +Allows an application to read contacts. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_MESSAGES + +Allows an application to read messages. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.RECEIVE_MMS + +Allows an application to receive and process MMS messages. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.RECEIVE_SMS + +Allows an application to receive and process SMS messages. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.RECEIVE_WAP_MESSAGES + +Allows an application to receive and process WAP messages. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.MICROPHONE + +Allows an application to access the microphone. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.SEND_MESSAGES + +Allows an application to send messages. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_CALENDAR + +Allows an application to add, remove, and modify calendar events. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_CALL_LOG + +Allows an application to add, remove, and modify call logs. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_CONTACTS + +Allows an application to add, remove, and modify contacts. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.DISTRIBUTED_DATASYNC + +Allows an application to exchange data with other devices. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_VOICEMAIL + +Allows an application to leave messages in the voice mailbox. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.LOCATION_IN_BACKGROUND + +Allows an application running in the background to obtain the device location. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: FALSE + +## ohos.permission.LOCATION + +Allows an application to obtain the device location. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.APPROXIMATELY_LOCATION + +Allows an application to obtain the approximate location information of a device. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: FALSE + +## ohos.permission.MEDIA_LOCATION + +Allow an application to access geographical locations in the user's media file. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.CAMERA + +Allows an application to use the camera to take photos and record videos. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_MEDIA + +Allows an application to read media files from the user's external storage. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_MEDIA + +Allows an application to read media files from and write media files into the user's external storage. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACTIVITY_MOTION + +Allows an application to read the current workout status of the user. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_HEALTH_DATA + +Allows an application to read the health data of the user. + +**Permission level**: normal + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.GET_DEFAULT_APPLICATION + +Allows an application to query default apps. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.SET_DEFAULT_APPLICATION + +Allows an application to set and reset default apps. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_DISPOSED_APP_STATUS + +Allows an application to set and query the application handling state. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_IDS + +Allows an application to query the unique identifier of a device. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.DUMP + +Allows the basic system information and SA service information to be exported. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.DISTRIBUTED_SOFTBUS_CENTER + +Allows networking between different devices. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.ACCESS_DLP_FILE + +Allows configuration and management of the permissions on .dlp files. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.PROVISIONING_MESSAGE + +Allows the Super Device Manager application to be activated. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_SYSTEM_SETTINGS + +Allows an application to access or start system **Settings**. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_IMAGEVIDEO + +Allows access to the images or video files in a user's directory. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_AUDIO + +Allows access to the audio files in a user's directory. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.READ_DOCUMENT + +Allows access to the files in a user's directory. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_IMAGEVIDEO + +Allows modification to the images or video files in a user's directory. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_AUDIO + +Audio modification to the audio files in a user's directory. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_DOCUMENT + +Allows modification to the files in a user's directory. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.ABILITY_BACKGROUND_COMMUNICATION + +Allows an application to start the Ability component in the background and establish a connection with it. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.securityguard.REPORT_SECURITY_INFO + +Allows an application to report risk data for security guard. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.securityguard.REQUEST_SECURITY_MODEL_RESULT + +Allows an application to obtain the device risk status. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.securityguard.REQUEST_SECURITY_EVENT_INFO + +Allows an application to obtain detailed risk data. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.READ_ACCESSIBILITY_CONFIG + +Allows an application to read the accessibility configuration. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.WRITE_ACCESSIBILITY_CONFIG + +Allows an application to set the accessibility configuration. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.ACCESS_CERT_MANAGER_INTERNAL + +Allows an application to install, uninstall, enable, and disable certificates and credentials. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.ACCESS_CERT_MANAGER + +Allows an application to manage private credentials and query certificate status. + +**Permission level**: normal + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.ACCESS_PUSH_SERVICE + +Allows an application to to access the Ability of the push service. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.RECEIVER_STARTUP_COMPLETED + +Allows an application to subscribe to the startup broadcast. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.MANAGE_CAMERA_CONFIG + +Allows an application to enable or disable cameras globally. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.READ_WHOLE_CALENDAR + +Allows an application to read all calendar information. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.WRITE_WHOLE_CALENDAR + +Allows an application to add, remove, or change all calendar events. + +**Permission level**: system_basic + +**Authorization mode**: user_grant + +**Enable ACL**: TRUE + +## ohos.permission.ENFORCE_USER_IAM + +Allows an SA to delete user information from the IAM subsystem without a token. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_AUTH_RESPOOL + +Allows an SA to register the executor. + +**Permission level**: system_core + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MOUNT_UNMOUNT_MANAGER + +Allows an application to mount and unmount external cards. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.MOUNT_FORMAT_MANAGER + +Allows an application to format external cards. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: FALSE + +## ohos.permission.STORAGE_MANAGER + +Allows an application to call the interfaces of the Storage Manager service to query space statistics and volume information. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.BACKUP + +Allows an application to have backup and restore capabilities. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.FILE_ACCESS_MANAGER + +Allows a file management application to access user data files through the FAF. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.MANAGE_AUDIO_CONFIG + +Allows an application to to mute microphones globally. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.ACCESS_SERVICE_DM + +Allows a system application to obtain the authentication and networking capability of distributed devices. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.RUN_ANY_CODE + +Allows an application to run unsigned code. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE + +## ohos.permission.PUBLISH_SYSTEM_COMMON_EVENT + +Allows an application to publish system common events. + +**Permission level**: system_basic + +**Authorization mode**: system_grant + +**Enable ACL**: TRUE -- GitLab From 77c7d6ab1dde982d971ab4fedaa28d11130f67c3 Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 17 Jan 2023 10:43:48 +0800 Subject: [PATCH 287/383] update docs Signed-off-by: Annie_wang --- .../reference/apis/Readme-EN.md | 19 +- .../reference/apis/js-apis-cert.md | 2109 +++++++++++++++++ .../apis/js-apis-data-DataShareResultSet.md | 2 +- .../reference/apis/js-apis-data-ability.md | 356 +-- .../reference/apis/js-apis-data-dataShare.md | 2 +- .../apis/js-apis-data-dataSharePredicates.md | 2 +- .../apis/js-apis-data-distributedobject.md | 90 +- .../apis/js-apis-data-preferences.md | 4 +- .../reference/apis/js-apis-data-rdb.md | 2 +- .../apis/js-apis-data-valuesBucket.md | 8 +- .../apis/js-apis-distributedKVStore.md | 2 +- 11 files changed, 2353 insertions(+), 243 deletions(-) create mode 100644 en/application-dev/reference/apis/js-apis-cert.md diff --git a/en/application-dev/reference/apis/Readme-EN.md b/en/application-dev/reference/apis/Readme-EN.md index 1cb11c6557..80d0336aa0 100644 --- a/en/application-dev/reference/apis/Readme-EN.md +++ b/en/application-dev/reference/apis/Readme-EN.md @@ -196,21 +196,22 @@ - Security - [@ohos.abilityAccessCtrl (Ability Access Control)](js-apis-abilityAccessCtrl.md) - [@ohos.privacyManager (Privacy Management)](js-apis-privacyManager.md) + - [@ohos.security.cert (Certificate)](js-apis-cert.md) - [@ohos.security.cryptoFramework (Crypto Framework)](js-apis-cryptoFramework.md) - [@ohos.security.huks (HUKS)](js-apis-huks.md) - [@ohos.userIAM.faceAuth (Facial Authentication)](js-apis-useriam-faceauth.md) - [@ohos.userIAM.userAuth (User Authentication)](js-apis-useriam-userauth.md) - [@system.cipher (Cipher Algorithm)](js-apis-system-cipher.md) - Data Management - - [@ohos.data.dataAbility ](js-apis-data-ability.md) - - [@ohos.data.dataShare](js-apis-data-dataShare.md) - - [@ohos.data.dataSharePredicates](js-apis-data-dataSharePredicates.md) - - [@ohos.data.dataShareResultSet](js-apis-data-DataShareResultSet.md) - - [@ohos.data.distributedDataObject](js-apis-data-distributedobject.md) - - [@ohos.data.distributedKVStore](js-apis-distributedKVStore.md) - - [@ohos.data.preferences](js-apis-data-preferences.md) - - [@ohos.data.rdb](js-apis-data-rdb.md) - - [@ohos.data.ValuesBucket](js-apis-data-valuesBucket.md) + - [@ohos.data.dataAbility (DataAbility Predicates)](js-apis-data-ability.md) + - [@ohos.data.dataShare (DataShare)](js-apis-data-dataShare.md) + - [@ohos.data.dataSharePredicates (DataShare Predicates)](js-apis-data-dataSharePredicates.md) + - [@ohos.data.dataShareResultSet (DataShare Result Set)](js-apis-data-DataShareResultSet.md) + - [@ohos.data.distributedDataObject (Distributed Data Object)](js-apis-data-distributedobject.md) + - [@ohos.data.distributedKVStore (Distributed KV Store)](js-apis-distributedKVStore.md) + - [@ohos.data.preferences (Preferences)](js-apis-data-preferences.md) + - [@ohos.data.rdb (RDB)](js-apis-data-rdb.md) + - [@ohos.data.ValuesBucket (Value Bucket)](js-apis-data-valuesBucket.md) - data/rdb - [resultSet](js-apis-data-resultset.md) - File Management diff --git a/en/application-dev/reference/apis/js-apis-cert.md b/en/application-dev/reference/apis/js-apis-cert.md new file mode 100644 index 0000000000..50a40cdf15 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-cert.md @@ -0,0 +1,2109 @@ +# @ohos.security.cert (Certificate) + +The **certificate** module provides APIs for performing certificate operations. For details about the APIs for implementing the basic algorithm capabilities based on the cryptographic (crypto) framework, see [Crypto Framework](js-apis-cryptoFramework.md). + +> **NOTE** +> +> The initial APIs of this module are supported since API version 9. + +## Modules to Import + +```javascript +import cryptoCert from '@ohos.security.cert'; +import cryptoFramework from "@ohos.security.cryptoFramework" +``` + +## CertResult + + Enumerates the error codes. + + **System capability**: SystemCapability.Security.Cert + +| Name | Value | Description | +| --------------------------------------| -------- | -----------------------------| +| INVALID_PARAMS | 401 | Invalid parameters. | +| NOT_SUPPORT | 801 | This operation is not supported. | +| ERR_OUT_OF_MEMORY | 19020001 | Memory error. | +| ERR_RUNTIME_ERROR | 19020002 | Runtime error. | +| ERR_CRYPTO_OPERATION | 19030001 | Crypto operation error. | +| ERR_CERT_SIGNATURE_FAILURE | 19030002 | The certificate signature verification failed. | +| ERR_CERT_NOT_YET_VALID | 19030003 | The certificate has not taken effect. | +| ERR_CERT_HAS_EXPIRED | 19030004 | The certificate has expired. | +| ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY | 19030005 | Failed to obtain the certificate issuer. | +| ERR_KEYUSAGE_NO_CERTSIGN | 19030006 | The key cannot be used for signing a certificate. | +| ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE | 19030007 | The key cannot be used for digital signature. | + +## DataBlob +Defines a binary data array. + **System capability**: SystemCapability.Security.Cert +| Name | Type | Readable| Writable| Description | +| -------------- | -------------- | ---- | ---- | ----------------| +| data | Uint8Array | Yes | Yes | Data. | + +## DataArray + +Defines a list of data arrays. + **System capability**: SystemCapability.Security.Cert +| Name | Type | Readable| Writable| Description | +| -------------- | -------------- | ---- | ---- | ----------------| +| data | Uint8Array | Yes | Yes | Data list. | + +## EncodingFormat + + Enumerates the certificate encoding formats. + + **System capability**: SystemCapability.Security.Cert + +| Name | Value| Description | +| ---------- | ------ | --------- | +| FORMAT_DER | 0 | Distinguished Encoding Rules (DER) format.| +| FORMAT_PEM | 1 | Privacy-Enhanced Mail (PEM) format.| + + +## EncodingBlob + +Defines a certificate binary array in encoding format. + +### Attributes + +**System capability**: SystemCapability.Security.Cert + +| Name | Type | Readable| Writable| Description | +| -------------- | --------------------------------- | ---- | ---- | ------------------------------ | +| data | Uint8Array | Yes | Yes | Certificate data.| +| encodingFormat | [EncodingFormat](#encodingformat) | Yes | Yes | Certificate encoding format. | + + +## CertChainData + +Defines the certificate chain data, which is passed in as input parameters during certificate chain verification. + +### Attributes + +**System capability**: SystemCapability.Security.Cert + +| Name | Type | Readable| Writable| Description | +| -------------- | --------------------------------- | ---- | ---- | ------------------------------------------------------------ | +| data | Uint8Array | Yes | Yes | Certificate data, in the *length* (2 bytes) + *data* format. For example, **08ABCDEFGH07ABCDEFG**. The first two bytes indicate the length of the first certificate is eight bytes, and the following eight bytes indicate the certificate data. Then, the next two bytes indicate the length of another certificate is seven bytes, and the seven bytes followed indicate the certificate data.| +| count | number | Yes | Yes | Number of certificates contained in the input data. | +| encodingFormat | [EncodingFormat](#encodingformat) | Yes | Yes | Certificate encoding format. | + + +## cryptoCert.createX509Cert + +createX509Cert(inStream : EncodingBlob, callback : AsyncCallback\) : void + +Creates an **X509Cert** instance. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ----------------------------- | ---- | -------------------------- | +| inStream | [EncodingBlob](#encodingblob) | Yes | X.509 certificate serialization data. | +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. **X509Cer** instance created.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoFramework.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + } +}); +``` + +## cryptoCert.createX509Cert + +createX509Cert(inStream : EncodingBlob) : Promise\ + +Creates an **X509Cert** instance. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ----------------------------- | ---- | ------------------ | +| inStream | [EncodingBlob](#encodingblob) | Yes | X.509 certificate serialization data.| + +**Return value** + +| Type | Description | +| ------- | ---------------- | +| Promise\ | **X509Cer** instance created.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob).then(x509Cert => { + console.log("createX509Cert success"); +}, error => { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +## X509Cert + +Provides APIs for X.509 certificate operations. + +### verify + +verify(key : cryptoFramework.PubKey, callback : AsyncCallback\) : void + +Verifies the certificate signature. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------- | ---- | ------------------------------------------------------------ | +| key | cryptoFramework.PubKey | Yes | Public key used for signature verification. | +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. If **error** is **null**, the signature verification is successful. If **error** is not **null**, the signature verification fails.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; +import cryptoFramework from "@ohos.security.cryptoFramework" + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + // Generate a public key by AsyKeyGenerator or obtain the public key by using getPublicKey() of the X509Cert instance. + let pubKey = null; + x509Cert.verify(pubKey, function (error, data) { + if (error != null) { + console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("verify success"); + } + }); + } +}); +``` + +### verify + +verify(key : cryptoFramework.PubKey) : Promise\ + +Verifies the certificate signature. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ------------------ | +| key | cryptoFramework.PubKey | Yes | Public key used for signature verification.| + +**Return value** + +| Type | Description | +| -------------- | ----------- | +| Promise\ | Promise used to return the result.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob).then(x509Cert => { + console.log("createX509Cert success"); + // Generate a public key by AsyKeyGenerator or obtain the public key by using getPublicKey() of the X509Cert instance. + let pubKey = null; + x509Cert.verify(pubKey).then(result => { + console.log("verify success"); + }, error => { + console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message); + }); +}, error => { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### getEncoded + +getEncoded(callback : AsyncCallback\) : void + +Obtains the serialized X.509 certificate data. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------------------------------- | ---- | -------------------------------- | +| callback | AsyncCallback\<[EncodingBlob](#encodingblob)> | Yes | Callback invoked to return the result. Promise used to return the serialized X.509 certificate data obtained.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + x509Cert.getEncoded(function (error, data) { + if (error != null) { + console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("getEncoded success"); + } + }); + } +}); +``` + +### getEncoded + +getEncoded() : Promise\ + +Obtains the serialized X.509 certificate data. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------------------------- | ---------------------- | +| Promise\<[EncodingBlob](#encodingblob)> | Promise used to return the serialized X.509 certificate data obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob).then(x509Cert => { + console.log("createX509Cert success"); + x509Cert.getEncoded().then(result => { + console.log("getEncoded success"); + }, error => { + console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message); + }); +}, error => { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### getPublicKey + +getPublicKey() : cryptoFramework.PubKey + +Obtains the public key of this X.509 certificate. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ---------------- | +| cryptoFramework.PubKey | X.509 certificate public key obtained.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; +import cryptoFramework from "@ohos.security.cryptoFramework" + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let pubKey = null; + try { + pubKey = x509Cert.getPublicKey(); + } catch (error) { + console.log("getPublicKey failed, errCode: " + error.code + ", errMsg: " + error.message); + } + } +}); +``` + +### checkValidityWithDate + +checkValidityWithDate(date: string) : void + +Checks the validity period of this X.509 certificate. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------- | ---- | ---------- | +| date | string | Yes | Date of the certificate to check. | + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let date = "150527000001Z"; + + // Verify the certificate validity period. + try { + x509Cert.checkValidityWithDate(date); + } catch (error) { + console.log("checkValidityWithDate failed, errCode: " + error.code + ", errMsg: " + error.message); + } + } +}); +``` + +### getVersion + +getVersion() : number + +Obtains the X.509 certificate version. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ---------------- | +| number | X.509 certificate version obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let version = x509Cert.getVersion(); + } +}); +``` + +### getSerialNumber + +getSerialNumber() : number + +Obtains the X.509 certificate serial number. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ------------------ | +| number | X.509 certificate serial number obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let serialNumber = x509Cert.getSerialNumber(); + } +}); +``` + +### getIssuerName + +getIssuerName() : DataBlob + +Obtains the X.509 certificate issuer. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ---------------------- | +| [DataBlob](#datablob) | X.509 certificate issuer obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let issuerName = x509Cert.getIssuerName(); + } +}); +``` + +### getSubjectName + +getSubjectName() : DataBlob + +Obtains the subject of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | -------------------- | +| [DataBlob](#datablob) | Subject name obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let subjectName = x509Cert.getSubjectName(); + } +}); +``` + +### getNotBeforeTime + +getNotBeforeTime() : string + +Obtains the start time of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | -------------------------- | +| string | Start time of the X.509 certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let notBefore = x509Cert.getNotBeforeTime(); + } +}); +``` + +### getNotAfterTime + +getNotAfterTime() : string + +Obtains the expiration time of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | -------------------------- | +| string | Expiration time of the X.509 certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let notAfter = x509Cert.getNotAfterTime(); + } +}); +``` + +### getSignature + +getSignature() : DataBlob + +Obtains the signature data of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | -------------------- | +| [DataBlob](#datablob) | Signature data obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let signature = x509Cert.getSignature(); + } +}); +``` + +### getSignatureAlgName + +getSignatureAlgName() : string + +Obtains the signing algorithm of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ------------------------ | +| string | X.509 certificate signing algorithm obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let sigAlgName = x509Cert.getSignatureAlgName(); + } +}); +``` + +### getSignatureAlgOid + +getSignatureAlgOid() : string + +Obtains the object identifier (OID) of the X.509 certificate signing algorithm. OIDs are allocated by the International Organization for Standardization (ISO). + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | --------------------------------- | +| string | OID obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let sigAlgOid = x509Cert.getSignatureAlgOid(); + } +}); +``` + +### getSignatureAlgParams + +getSignatureAlgParams() : DataBlob + +Obtains the signing algorithm parameters of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ------------------------ | +| [DataBlob](#datablob) | X.509 certificate signing algorithm parameters obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let sigAlgParams = x509Cert.getSignatureAlgParams(); + } +}); +``` + +### getKeyUsage + +getKeyUsage() : DataBlob + +Obtains the key usage of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | -------------------- | +| [DataBlob](#datablob) | Key usage of the X.509 certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let keyUsage = x509Cert.getKeyUsage(); + } +}); +``` + +### getExtKeyUsage + +getExtKeyUsage() : DataArray + +Obtains the usage of the extended key of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ----------------------- | ------------------------ | +| [DataArray](#dataarray) | Usage of the extended key obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let extKeyUsage = x509Cert.getExtKeyUsage(); + } +}); +``` + +### getBasicConstraints + +getBasicConstraints() : number + +Obtains the basic constraints for obtaining this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | -------------------- | +| number | Basic constraints obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let basicConstraints = x509Cert.getBasicConstraints(); + } +}); +``` + +### getSubjectAltNames + +getSubjectAltNames() : DataArray + +Obtains the Subject Alternative Names (SANs) of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ----------------------- | ------------------------ | +| [DataArray](#dataarray) | SANs obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let subjectAltNames = x509Cert.getSubjectAltNames(); + } +}); +``` + +### getIssuerAltNames + +getIssuerAltNames() : DataArray + +Obtains the Issuer Alternative Names (IANs) of this X.509 certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ----------------------- | -------------------------- | +| [DataArray](#dataarray) | IANs obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Certificate binary data, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Cert(encodingBlob, function (error, x509Cert) { + if (error != null) { + console.log("createX509Cert failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Cert success"); + let issuerAltNames = x509Cert.getIssuerAltNames(); + } +}); +``` + +## cryptoCert.createX509Crl + +createX509Crl(inStream : EncodingBlob, callback : AsyncCallback\) : void + +Creates an **X509Crl** instance. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ----------------------------- | ---- | ------------------------------ | +| inStream | [EncodingBlob](#encodingblob) | Yes | Serialized certificate revocation list (CRL) data. | +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. Promise used to return the **X509Crl** instance created.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + } +}); +``` + +## cryptoCert.createX509Crl + +createX509Crl(inStream : EncodingBlob) : Promise\ + +Creates an **X509Crl** instance. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ----------------------------- | ---- | -------------------------- | +| inStream | [EncodingBlob](#encodingblob) | Yes | Serialized CRL data.| + +**Return value** + +| Type | Description | +| ----------------- | -------------------- | +| Promise\ | Promise used to return the **X509Crl** instance created.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob).then(x509Crl => { + console.log("createX509Crl success"); +}, error => { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +## X509Crl + +Provides APIs for X.509 certificate CRL operations. + +### isRevoked + +isRevoked(cert : X509Cert) : boolean + +Checks whether an X.509 certificate is revoked. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | -------- | ---- | -------------------- | +| cert | X509Cert | Yes | X.509 certificate to check.| + +**Return value** + +| Type | Description | +| --------- | --------------------------------------------- | +| boolean | Promise used to return the result. The value **true** indicates the certificate is revoked; the value **false** indicates the opposite.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + // Create an X509Cert instance. + let x509Cert = null; + try { + let revokedFlag = x509Crl.isRevoked(x509Cert); + } catch (error) { + console.log("isRevoked failed, errCode: " + error.code + ", errMsg: " + error.message); + } + } +}); +``` + +### getType + +getType() : string + +Obtains the CRL type. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | -------------------- | +| string | CRL type obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let type = x509Crl.getType(); + } +}); +``` + +### getEncoded + +getEncoded(callback : AsyncCallback\) : void + +Obtains the serialized X.509 CRL data. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ---------------------------- | ---- | ------------------------------------------ | +| callback | AsyncCallback\ | Yes | Callback invoked to return the serialized X.509 CRL data obtained.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + x509Crl.getEncoded(function (error, data) { + if (error != null) { + console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("getEncoded success"); + } + }); + } +}); +``` + +### getEncoded + +getEncoded() : Promise\ + +Obtains the serialized X.509 CRL data. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ---------------------- | -------------------------------- | +| Promise\ | Promise used to return the serialized X.509 CRL data obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob).then(x509Crl => { + console.log("createX509Crl success"); + x509Crl.getEncoded().then(result => { + console.log("getEncoded success"); + }, error => { + console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message); + }); +}, error => { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### verify + +verify(key : cryptoFramework.PubKey, callback : AsyncCallback\) : void + +Verifies the signature of the X.509 CRL. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------- | ---- | ------------------------------------------------------------ | +| key | cryptoFramework.PubKey | Yes | Public key used for signature verification. | +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. If **error** is **null**, the signature verification is successful. If **error** is not **null**, the signature verification fails.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; +import cryptoFramework from "@ohos.security.cryptoFramework" + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + // Generate the public key by AsyKeyGenerator. + let pubKey = null; + x509Crl.verify(pubKey, function (error, data) { + if (error != null) { + console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("verify success"); + } + }); + } +}); +``` + +### verify + +verify(key : cryptoFramework.PubKey) : Promise\ + +Verifies the signature of the X.509 CRL. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ---------------------- | +| key | cryptoFramework.PubKey | Yes | Public key used for signature verification.| + +**Return value** + +| Type| Description | +| ---- | ------------------------------------------------------------ | +| Promise\ | Promise used to return the result.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; +import cryptoFramework from "@ohos.security.cryptoFramework" + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob).then(x509Crl => { + console.log("createX509Crl success"); + // Generate the public key by AsyKeyGenerator. + let pubKey = null; + x509Crl.verify(pubKey).then(result => { + console.log("verify success"); + }, error => { + console.log("verify failed, errCode: " + error.code + ", errMsg: " + error.message); + }); +}, error => { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### getVersion + +getVersion() : number + +Obtains the version of the X.509 CRL. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | -------------------------------- | +| number | Version of the X.509 CRL obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let version = x509Crl.getVersion(); + } +}); +``` + +### getIssuerName + +getIssuerName() : DataBlob + +Obtains the issuer of the X.509 CRL. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ------------------------------ | +| [DataBlob](#datablob) | Issuer of the X.509 CRL obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let issuerName = x509Crl.getIssuerName(); + } +}); +``` + +### getLastUpdate + +getLastUpdate() : string + +Obtains the date when the X.509 CRL was last updated. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ------------------------------------ | +| string | Last update date of the X.509 CRL.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let lastUpdate = x509Crl.getLastUpdate(); + } +}); +``` + +### getNextUpdate + +getNextUpdate() : string + +Obtains the date when the CRL will be updated the next time. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ------------------------------------ | +| string | Next update date obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let nextUpdate = x509Crl.getNextUpdate(); + } +}); +``` + +### getRevokedCert + +getRevokedCert(serialNumber : number) : X509CrlEntry + +Obtains the revoked X.509 certificate based on the specified serial number of the certificate. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| ------------ | ------ | ---- | -------------- | +| serialNumber | number | Yes | Serial number of the certificate.| + +**Return value** + +| Type | Description | +| ---------------------- | --------------------- | +| X509CrlEntry | Promise used to return the revoked X.509 certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + // Set the serial number of the corresponding certificate. + let serialNumber = 1000; + try { + let entry = x509Crl.getRevokedCert(serialNumber); + } catch (error) { + console.log("getRevokedCert failed, errCode: " + error.code + ", errMsg: " + error.message); + } + } +}); +``` + +### getRevokedCertWithCert + +getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry + +Obtains the revoked X.509 certificate based on the specified certificate. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | -------- | ---- | ------------ | +| cert | X509Cert | Yes | Certificate based on which the revoked certificate is obtained.| + +**Return value** + +| Type | Description | +| ------------ | -------------------- | +| X509CrlEntry | Promise used to return the revoked X.509 certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + // Create an X509Cert instance. + let x509Cert = null; + try { + let entry = x509Crl.getRevokedCertWithCert(x509Cert); + } catch (error) { + console.log("getRevokedCertWithCert failed, errCode: " + error.code + ", errMsg: " + error.message); + } + } +}); +``` + +### getRevokedCerts + +getRevokedCerts(callback : AsyncCallback>) : void + +Obtains all the revoked X.509 certificates. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ----------------------------------- | ---- | -------------------------------- | +| callback | AsyncCallback> | Yes | Callback invoked to return the result. Promise used to return a list of revoked X.509 certificates.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + x509Crl.getRevokedCerts(function (error, array) { + if (error != null) { + console.log("getRevokedCerts failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("getRevokedCerts success"); + } + }); + } +}); +``` + +### getRevokedCerts + +getRevokedCerts() : Promise> + +Obtains all the revoked X.509 certificates. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ----------------------------- | ---------------------- | +| Promise> | Promise used to return a list of revoked X.509 certificates.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob).then(x509Crl => { + console.log("createX509Crl success"); + x509Crl.getRevokedCerts().then(array => { + console.log("getRevokedCerts success"); + }, error => { + console.log("getRevokedCerts failed, errCode: " + error.code + ", errMsg: " + error.message); + }); +}, error => { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### getTbsInfo + +getTbsInfo() : DataBlob + +Obtains the DER-encoded CRL information, the **tbsCertList** from this CRL. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ------------------------------- | +| [DataBlob](#datablob) | Promise used to return the **tbsCertList** information obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + try { + let tbsInfo = x509Crl.getTbsInfo(); + } catch (error) { + console.log("getTbsInfo failed, errCode: " + error.code + ", errMsg: " + error.message); + } + } +}); +``` + +### getSignature + +getSignature() : DataBlob + +Obtains the signature data of the X.509 CRL. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ------------------------------ | +| [DataBlob](#datablob) | Signature data of the X.509 CRL obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let signature = x509Crl.getSignature(); + } +}); +``` + +### getSignatureAlgName + +getSignatureAlgName() : string + +Obtains the signing algorithm of the X.509 CRL. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | -------------------------------- | +| string | Signing algorithm obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let sigAlgName = x509Crl.getSignatureAlgName(); + } +}); +``` + +### getSignatureAlgOid + +getSignatureAlgOid() : string + +Obtains the OID of the X.509 CRL signing algorithm. OIDs are allocated by the International Organization for Standardization (ISO). + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | --------------------------------------------- | +| string | OID of the X.509 CRL signing algorithm obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let sigAlgOid = x509Crl.getSignatureAlgOid(); + } +}); +``` + +### getSignatureAlgParams + +getSignatureAlgParams() : DataBlob + +Obtains the parameters of the X.509 CRL signing algorithm. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ---------------------------------- | +| [DataBlob](#datablob) | Algorithm parameters obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Binary data of the CRL, which must be set based on the service. +let encodingData = null; +let encodingBlob = { + data: encodingData, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +cryptoCert.createX509Crl(encodingBlob, function (error, x509Crl) { + if (error != null) { + console.log("createX509Crl failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("createX509Crl success"); + let sigAlgParams = x509Crl.getSignatureAlgParams(); + } +}); +``` + +## cryptoCert.createCertChainValidator + +createCertChainValidator(algorithm :string) : CertChainValidator + +Creates a **CertChainValidator** object. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| --------- | ------ | ---- | ------------------------------------------ | +| algorithm | string | Yes | Certificate chain validator algorithm. Currently, only **PKIX** is supported.| + +**Return value** + +| Type | Description | +| ------------------ | -------------------- | +| CertChainValidator | **CertChainValidator** object created.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +let validator = cryptoCert.createCertChainValidator("PKIX"); +``` + +## CertChainValidator + +Provides APIs for certificate chain validator operations. + + +### Attributes + +**System capability**: SystemCapability.Security.CryptoFramework + +| Name | Type | Readable| Writable| Description | +| ------- | ------ | ---- | ---- | -------------------------- | +| algorithm | string | Yes | No | Algorithm used by the X509 certificate chain validator.| + + +### validate + +validate(certChain : CertChainData, callback : AsyncCallback\) : void + +Validates the X.509 certificate chain. This API uses an asynchronous callback to return the result. +The certificate chain validator does not verify the certificate validity period because the system time on the device is untrusted. To check the validity period of a certificate, use the [checkValidityWithDate()](#checkvaliditywithdate) API of the **X509Cert** class. For details, see [Certificate Specifications](./../security/cert-overview.md#certificate-specifications). + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| --------- | ------------------------------- | ---- | ------------------------------------------------------------ | +| certChain | [CertChainData](#certchaindata) | Yes | Serialized X.509 certificate chain data. | +| callback | AsyncCallback\ | Yes | Callback invoked to return the result. If **error** is **null**, the X.509 certificate chain is valid. If **error** is not **null**, the X.509 certificate chain is not valid.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +let validator = cryptoCert.createCertChainValidator("PKIX"); +// Certificate chain binary data, which must be set based on the service. +let encodingData = null; +// Number of certificates in the certificate chain. It must be set based on the service. +let certCount = 2; +let certChainData = { + data: encodingData, + count: certCount, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +validator.validate(certChainData, function (error, data) { + if (error != null) { + console.log("validate failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("validate success"); + } +}); +``` + +### validate + +validate(certChain : CertChainData) : Promise\ + +Validates the X.509 certificate chain. This API uses a promise to return the result. +The certificate chain validator does not verify the certificate validity period because the system time on the device is untrusted. To check the validity period of a certificate, use the [checkValidityWithDate()](#checkvaliditywithdate) API of the **X509Cert** class. For details, see [Certificate Specifications](./../security/cert-overview.md#certificate-specifications). + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| --------- | ------------------------------- | ---- | -------------------------- | +| certChain | [CertChainData](#certchaindata) | Yes | Serialized X.509 certificate chain data.| + +**Return value** + +| Type | Description | +| -------------- | ----------- | +| Promise\ | Promise used to return the result.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +let validator = cryptoCert.createCertChainValidator("PKIX"); +// Certificate chain binary data, which must be set based on the service. +let encodingData = null; +// Number of certificates in the certificate chain. It must be set based on the service. +let certCount = 2; +let certChainData = { + data: encodingData, + count: certCount, + // Set the encoding format, which can be FORMAT_PEM or FORMAT_DER. + encodingFormat: cryptoCert.EncodingFormat.FORMAT_PEM +}; +validator.validate(certChainData).then(result => { + console.log("validate success"); +}, error => { + console.log("validate failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### algorithm + +algorithm : string + +Obtains the algorithm of the X.509 certificate chain validator. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ------------------------ | +| string | Algorithm of the X.509 certificate chain validator obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +let validator = cryptoCert.createCertChainValidator("PKIX"); +let algorithm = validator.algorithm; +``` + +## X509CrlEntry + +Provides APIs for operating the revoked certificates. + +### getEncoded + +getEncoded(callback : AsyncCallback\) : void + +Obtains the serialized data of this revoked certificate. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | --------------------------------------------- | ---- | ------------------------------------ | +| callback | AsyncCallback\<[EncodingBlob](#encodingblob)> | Yes | Callback invoked to return the result. Promise used to return the serialized data of the revoked certificate obtained.| + + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Obtain X509CrlEntry by using getRevokedCert() of X509Crl. +let x509CrlEntry = null; +x509CrlEntry.getEncoded(function (error, data) { + if (error != null) { + console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message); + } else { + console.log("getEncoded success"); + } +}); +``` + +### getEncoded + +getEncoded() : Promise\ + +Obtains the serialized data of this revoked certificate. This API uses a promise to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------------------------- | -------------------------- | +| Promise\<[EncodingBlob](#encodingblob)> | Promise used to return the serialized data of the revoked certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Obtain X509CrlEntry by using getRevokedCert() of X509Crl. +let x509CrlEntry = null; +x509CrlEntry.getEncoded().then(result => { + console.log("getEncoded success"); +}, error => { + console.log("getEncoded failed, errCode: " + error.code + ", errMsg: " + error.message); +}); +``` + +### getSerialNumber + +getSerialNumber() : number + +Obtains the serial number of this revoked certificate. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ---------------------- | +| number | Serial number of the revoked certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Obtain X509CrlEntry by using getRevokedCert() of X509Crl. +let x509CrlEntry = null; +let serialNumber = x509CrlEntry.getSerialNumber(); +``` + +### getCertIssuer + +getCertIssuer() : DataBlob + +Obtains the issuer of this revoked certificate. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| --------------------- | ---------------------- - | +| [DataBlob](#datablob) | Promise used to return the issuer of the revoked certificate obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Obtain X509CrlEntry by using getRevokedCert() of X509Crl. +let x509CrlEntry = null; +try { + let issuer = x509CrlEntry.getCertIssuer(); +} catch (error) { + console.log("getCertIssuer failed, errCode: " + error.code + ", errMsg: " + error.message); +} +``` + +### getRevocationDate + +getRevocationDate() : string + +Obtains the date when the certificate was revoked. This API uses an asynchronous callback to return the result. + +**System capability**: SystemCapability.Security.Cert + +**Return value** + +| Type | Description | +| ------ | ------------------ | +| string | Promise used to return the certificate revocation date obtained.| + +**Example** + +```js +import cryptoCert from '@ohos.security.cert'; + +// Obtain X509CrlEntry by using getRevokedCert() of X509Crl. +let x509CrlEntry = null; +try { + let date = x509CrlEntry.getRevocationDate(); +} catch (error) { + console.log("getRevocationDate failed, errCode: " + error.code + ", errMsg: " + error.message); +} +``` diff --git a/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md b/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md index ccc1f7b4e2..4cdef60fa6 100644 --- a/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md +++ b/en/application-dev/reference/apis/js-apis-data-DataShareResultSet.md @@ -1,4 +1,4 @@ -# @ohos.data.dataShareResultSet +# @ohos.data.dataShareResultSet (DataShare Result Set) The **DataShareResultSet** module provides APIs for accessing the result set obtained from the database. You can access the values in the specified rows or the value of the specified data type. diff --git a/en/application-dev/reference/apis/js-apis-data-ability.md b/en/application-dev/reference/apis/js-apis-data-ability.md index 779d30c402..f41bea4da4 100644 --- a/en/application-dev/reference/apis/js-apis-data-ability.md +++ b/en/application-dev/reference/apis/js-apis-data-ability.md @@ -1,4 +1,4 @@ -# DataAbilityPredicates +# @ohos.data.dataAbility (DataAbility Predicates) **DataAbility** provides APIs for creating predicates, which implement different query methods for relational database (RDB) stores. @@ -23,16 +23,16 @@ Creates an **RdbPredicates** object from a **DataAbilityPredicates** object. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | name | string | Yes| Name of a database table.| - | dataAbilityPredicates | [DataAbilityPredicates](#dataabilitypredicates) | Yes| **DataAbilityPredicates** object. | +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| name | string | Yes| Name of a database table.| +| dataAbilityPredicates | [DataAbilityPredicates](#dataabilitypredicates) | Yes| **DataAbilityPredicates** object. | **Return value** - | Type| Description| - | -------- | -------- | - | rdb.[RdbPredicates](js-apis-data-rdb.md#rdbpredicates) | **RdbPredicates** object created.| +| Type| Description| +| -------- | -------- | +| rdb.[RdbPredicates](js-apis-data-rdb.md#rdbpredicates) | **RdbPredicates** object created.| **Example** @@ -56,16 +56,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -83,16 +83,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -110,9 +110,9 @@ Adds a left parenthesis to this **DataAbilityPredicates**. **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with a left parenthesis.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with a left parenthesis.| **Example** @@ -135,9 +135,9 @@ Adds a right parenthesis to this **DataAbilityPredicates**. **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with a right parenthesis.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with a right parenthesis.| **Example** @@ -160,9 +160,9 @@ Adds the OR condition to this **DataAbilityPredicates**. **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with the OR condition.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with the OR condition.| **Example** @@ -182,9 +182,9 @@ Adds the AND condition to this **DataAbilityPredicates**. **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with the AND condition.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object with the AND condition.| **Example** @@ -204,16 +204,16 @@ Sets a **DataAbilityPredicates** object to match a string containing the specifi **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | string | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | string | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -231,16 +231,16 @@ Sets a **DataAbilityPredicates** object to match a string that starts with the s **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | string | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | string | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -258,16 +258,16 @@ Sets a **DataAbilityPredicates** object to match a string that ends with the spe **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | string | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | string | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -285,15 +285,15 @@ Sets a **DataAbilityPredicates** object to match the field whose value is null. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -311,15 +311,15 @@ Sets a **DataAbilityPredicates** object to match the field whose value is not nu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -337,16 +337,16 @@ Sets a **DataAbilityPredicates** object to match a string that is similar to the **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | string | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | string | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -364,16 +364,16 @@ Sets a **DataAbilityPredicates** object to match the specified string. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | string | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | string | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -391,17 +391,17 @@ Sets a **DataAbilityPredicates** object to match a field whose data type is **Va **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | low | [ValueType](#valuetype) | Yes| Minimum value to match the **DataAbilityPredicates**.| - | high | [ValueType](#valuetype) | Yes| Maximum value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| low | [ValueType](#valuetype) | Yes| Minimum value to match the **DataAbilityPredicates**.| +| high | [ValueType](#valuetype) | Yes| Maximum value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -419,17 +419,17 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | low | [ValueType](#valuetype) | Yes| Minimum value to match the **DataAbilityPredicates**.| - | high | [ValueType](#valuetype) | Yes| Maximum value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| low | [ValueType](#valuetype) | Yes| Minimum value to match the **DataAbilityPredicates**.| +| high | [ValueType](#valuetype) | Yes| Maximum value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -447,16 +447,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -474,16 +474,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -501,16 +501,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -528,16 +528,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type **Valu **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | [ValueType](#valuetype) | Yes| Value to match the **DataAbilityPredicates**.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -555,15 +555,15 @@ Sets a **DataAbilityPredicates** object to match the column with values sorted i **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -581,15 +581,15 @@ Sets a **DataAbilityPredicates** object to match the column with values sorted i **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -607,9 +607,9 @@ Sets a **DataAbilityPredicates** object to filter out duplicate records. **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that can filter out duplicate records.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that can filter out duplicate records.| **Example** @@ -627,15 +627,15 @@ Set a **DataAbilityPredicates** object to specify the maximum number of records. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | value | number | Yes| Maximum number of records.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | number | Yes| Maximum number of records.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that specifies the maximum number of records.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that specifies the maximum number of records.| **Example** @@ -653,15 +653,15 @@ Sets a **DataAbilityPredicates** object to specify the start position of the ret **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | rowOffset | number | Yes| Number of rows to offset from the beginning. The value is a positive integer.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| rowOffset | number | Yes| Number of rows to offset from the beginning. The value is a positive integer.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that specifies the start position of the returned result.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that specifies the start position of the returned result.| **Example** @@ -680,15 +680,15 @@ Sets a **DataAbilityPredicates** object to group rows that have the same value i **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | fields | Array<string> | Yes| Names of columns to group.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| fields | Array<string> | Yes| Names of columns to group.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that groups rows with the same value.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that groups rows with the same value.| **Example** @@ -706,15 +706,15 @@ Sets a **DataAbilityPredicates** object to specify the index column. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | indexName | string | Yes| Name of the index column.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| indexName | string | Yes| Name of the index column.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that specifies the index column.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that specifies the index column.| **Example** @@ -732,17 +732,17 @@ Sets a **DataAbilityPredicates** object to match the field with data type Array\ **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | Array<[ValueType](#valuetype)> | Yes| Array of **ValueType**s to match.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | Array<[ValueType](#valuetype)> | Yes| Array of **ValueType**s to match.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** @@ -760,16 +760,16 @@ Sets a **DataAbilityPredicates** object to match the field with data type Array\ **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | field | string | Yes| Column name in the table.| - | value | Array<[ValueType](#valuetype)> | Yes| Array of **ValueType**s to match.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| field | string | Yes| Column name in the table.| +| value | Array<[ValueType](#valuetype)> | Yes| Array of **ValueType**s to match.| **Return value** - | Type| Description| - | -------- | -------- | - | [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| +| Type| Description| +| -------- | -------- | +| [DataAbilityPredicates](#dataabilitypredicates) | **DataAbilityPredicates** object that matches the specified field.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-data-dataShare.md b/en/application-dev/reference/apis/js-apis-data-dataShare.md index 2a476aaf33..82a333b14b 100644 --- a/en/application-dev/reference/apis/js-apis-data-dataShare.md +++ b/en/application-dev/reference/apis/js-apis-data-dataShare.md @@ -1,4 +1,4 @@ -# @ohos.data.dataShare +# @ohos.data.dataShare (DataShare) The **DataShare** module allows an application to manage its own data and share data with other applications on the same device. diff --git a/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md index 4d2df994d9..7ce57c59a6 100644 --- a/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md +++ b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md @@ -1,4 +1,4 @@ -# Data Share Predicates +# @ohos.data.dataSharePredicates (DataShare Predicates) You can use **DataSharePredicates** to specify conditions for [updating](js-apis-data-dataShare.md#update), [deleting](js-apis-data-dataShare.md#delete), and [querying](js-apis-data-dataShare.md#query) data when **DataShare** is used to manage data. diff --git a/en/application-dev/reference/apis/js-apis-data-distributedobject.md b/en/application-dev/reference/apis/js-apis-data-distributedobject.md index 6f24aa3255..dc8bf8258b 100644 --- a/en/application-dev/reference/apis/js-apis-data-distributedobject.md +++ b/en/application-dev/reference/apis/js-apis-data-distributedobject.md @@ -1,4 +1,4 @@ -# Distributed Data Object +# @ohos.data.distributedDataObject (Distributed Data Object) The **distributedDataObject** module provides basic data object management, including creating, querying, deleting, modifying, and subscribing to data objects, and distributed data object collaboration for the same application among multiple devices. @@ -23,9 +23,9 @@ Creates a distributed data object. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | source | object | Yes| Attribute of the distributed data object to create.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| source | object | Yes| Attribute of the distributed data object to create.| **Return value** | Type| Description| @@ -49,9 +49,9 @@ Creates a random session ID. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Return value** - | Type| Description| - | -------- | -------- | - | string | Session ID created.| +| Type| Description| +| -------- | -------- | +| string | Session ID created.| **Example** ```js @@ -97,15 +97,15 @@ Sets a session ID for synchronization. Automatic synchronization is performed fo **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | sessionId | string | No| ID of a distributed data object on a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| sessionId | string | No| ID of a distributed data object on a trusted network. To remove a distributed data object from the network, set this parameter to "" or leave it empty.| **Return value** - | Type| Description| - | -------- | -------- | - | boolean | Returns **true** if the session ID is set successfully;
        returns **false** otherwise. | +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the session ID is set successfully;
        returns **false** otherwise. | **Example** @@ -128,10 +128,10 @@ Subscribes to the changes of this distributed data object. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type to subscribe to. The value is **change**, which indicates data changes.| - | callback | Callback<{ sessionId: string, fields: Array<string> }> | Yes| Callback used to return the changes of the distributed data object.
        **sessionId** indicates the session ID of the distributed data object.
        **fields** indicates the changed attributes of the distributed data object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type to subscribe to. The value is **change**, which indicates data changes.| +| callback | Callback<{ sessionId: string, fields: Array<string> }> | Yes| Callback used to return the changes of the distributed data object.
        **sessionId** indicates the session ID of the distributed data object.
        **fields** indicates the changed attributes of the distributed data object.| **Example** ```js @@ -157,10 +157,10 @@ Unsubscribes from the changes of this distributed data object. **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.| - | callback | Callback<{ sessionId: string, fields: Array<string> }> | No| Callback to be unregistered. If this parameter is not set, all data change callbacks of the object will be unregistered.
        **sessionId** indicates the session ID of the distributed data object.
        **fields** indicates the changed attributes of the distributed data object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type to unsubscribe from. The value is **change**, which indicates data changes.| +| callback | Callback<{ sessionId: string, fields: Array<string> }> | No| Callback to be unregistered. If this parameter is not set, all data change callbacks of the object will be unregistered.
        **sessionId** indicates the session ID of the distributed data object.
        **fields** indicates the changed attributes of the distributed data object.| **Example** @@ -182,10 +182,10 @@ Subscribes to the status change (online or offline) of this distributed data obj **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type to subscribe to. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| - | callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | Yes| Callback used to return the status change.
        **sessionId**: session ID of the distributed data object.
        **networkId**: object device ID, that is, **deviceId**.
        **status** indicates the object status, which can be online or offline.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type to subscribe to. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| +| callback | Callback<{ sessionId: string, networkId: string, status: 'online' \| 'offline' }> | Yes| Callback used to return the status change.
        **sessionId**: session ID of the distributed data object.
        **networkId**: object device ID, that is, **deviceId**.
        **status** indicates the object status, which can be online or offline.| **Example** ```js @@ -207,10 +207,10 @@ Unsubscribes from the status change (online or offline) of this distributed data **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type to unsubscribe from. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| - | callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | No| Callback used to return the status change. If this parameter is not specified, this API unsubscribes from all callbacks of this distributed data object.
        **sessionId**: session ID of the distributed data object.
        **deviceId** indicates the device ID of the distributed data object.
        **status** indicates the status, which can be online or offline.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type to unsubscribe from. The value is **status**, which indicates the status change (online or offline) of the distributed data object.| +| callback | Callback<{ sessionId: string, deviceId: string, status: 'online' \| 'offline' }> | No| Callback used to return the status change. If this parameter is not specified, this API unsubscribes from all callbacks of this distributed data object.
        **sessionId**: session ID of the distributed data object.
        **deviceId** indicates the device ID of the distributed data object.
        **status** indicates the status, which can be online or offline.| **Example** @@ -243,10 +243,10 @@ The saved data will be released in the following cases: **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | deviceId | string | Yes| ID of the device where data is stored. The value **local** indicates the local device.| - | callback | AsyncCallback<[SaveSuccessResponse](#savesuccessresponse9)> | Yes| Callback used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| deviceId | string | Yes| ID of the device where data is stored. The value **local** indicates the local device.| +| callback | AsyncCallback<[SaveSuccessResponse](#savesuccessresponse9)> | Yes| Callback used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| **Example** ```js @@ -279,15 +279,15 @@ The saved data will be released in the following cases: **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | deviceId | string | Yes| ID of the device where the data is saved. The default value is **local**, which indicates the local device. | +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| deviceId | string | Yes| ID of the device where the data is saved. The default value is **local**, which indicates the local device. | **Return value** - | Type| Description| - | -------- | -------- | - | Promise<[SaveSuccessResponse](#savesuccessresponse9)> | Promise used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| +| Type| Description| +| -------- | -------- | +| Promise<[SaveSuccessResponse](#savesuccessresponse9)> | Promise used to return **SaveSuccessResponse**, which contains information such as session ID, version, and device ID.| **Example** @@ -317,9 +317,9 @@ If the object is stored on another device, the data on the local device will be **System capability**: SystemCapability.DistributedDataManager.DataObject.DistributedObject **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)> | No| Callback used to return **RevokeSaveSuccessResponse**, which contains the session ID.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)> | No| Callback used to return **RevokeSaveSuccessResponse**, which contains the session ID.| **Example** @@ -345,9 +345,9 @@ If the object is stored on another device, the data on the local device will be **Return value** - | Type| Description| - | -------- | -------- | - | Promise<[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)> | Promise used to return **RevokeSaveSuccessResponse**, which contains the session ID.| +| Type| Description| +| -------- | -------- | +| Promise<[RevokeSaveSuccessResponse](#revokesavesuccessresponse9)> | Promise used to return **RevokeSaveSuccessResponse**, which contains the session ID.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-data-preferences.md b/en/application-dev/reference/apis/js-apis-data-preferences.md index cad744cb26..2b5f66fd6b 100644 --- a/en/application-dev/reference/apis/js-apis-data-preferences.md +++ b/en/application-dev/reference/apis/js-apis-data-preferences.md @@ -1,4 +1,4 @@ -# Preferences +# @ohos.data.preferences (Preferences) The **Preferences** module provides APIs for processing data in the form of key-value (KV) pairs and supports persistence of the KV pairs when required. @@ -497,7 +497,7 @@ Obtains the value of a key. This API uses a promise to return the result. If the **System capability**: SystemCapability.DistributedDataManager.Preferences.Core **Parameters** - + | Name | Type | Mandatory| Description | | -------- | ----------------------- | ---- | ------------------------------------------------------------ | | key | string | Yes | Key of the data to obtain. It cannot be empty. | diff --git a/en/application-dev/reference/apis/js-apis-data-rdb.md b/en/application-dev/reference/apis/js-apis-data-rdb.md index 89ebac58ef..bcebd097f3 100644 --- a/en/application-dev/reference/apis/js-apis-data-rdb.md +++ b/en/application-dev/reference/apis/js-apis-data-rdb.md @@ -1,4 +1,4 @@ -# @ohos.data.rdb +# @ohos.data.rdb (RDB) The relational database (RDB) manages data based on relational models. With the underlying SQLite database, the RDB provides a complete mechanism for managing local databases. To satisfy different needs in complicated scenarios, the RDB offers a series of methods for performing operations such as adding, deleting, modifying, and querying data, and supports direct execution of SQL statements. diff --git a/en/application-dev/reference/apis/js-apis-data-valuesBucket.md b/en/application-dev/reference/apis/js-apis-data-valuesBucket.md index 846f3f1548..009ff71b09 100644 --- a/en/application-dev/reference/apis/js-apis-data-valuesBucket.md +++ b/en/application-dev/reference/apis/js-apis-data-valuesBucket.md @@ -1,4 +1,4 @@ -# @ohos.data.ValuesBucket +# @ohos.data.ValuesBucket (Value Bucket) The **ValueBucket** module holds data in key-value (KV) pairs. You can use it to insert data into a database. @@ -34,6 +34,6 @@ Defines the types of the key and value in a KV pair. **System capability**: SystemCapability.DistributedDataManager.DataShare.Core -| Key Type | Value Type | -| ------------- | --------------------------------------------- | -| string | [ValueType](#valuetype)\| Uint8Array \| null | +| Key Type | Value Type | +| ------------- | --------------------------------------------- | +| string | [ValueType](#valuetype)\| Uint8Array \| null | diff --git a/en/application-dev/reference/apis/js-apis-distributedKVStore.md b/en/application-dev/reference/apis/js-apis-distributedKVStore.md index 81308054ab..e626dabb38 100644 --- a/en/application-dev/reference/apis/js-apis-distributedKVStore.md +++ b/en/application-dev/reference/apis/js-apis-distributedKVStore.md @@ -1,4 +1,4 @@ -# Distributed KV Store +# @ohos.data.distributedKVStore (Distributed KV Store) The **distributedKVStore** module implements collaboration between databases for different devices that forms a Super Device. The APIs provided by this module can be used to save data to a distributed key-value (KV) store and perform operations, such as adding, deleting, modifying, querying, and synchronizing data in distributed KV stores. -- GitLab From 579d38b421d1e6bc71d427a58aa57fe644e61333 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Tue, 17 Jan 2023 11:17:58 +0800 Subject: [PATCH 288/383] update doc Signed-off-by: shawn_he --- .../internationalization/i18n-guidelines.md | 88 +-- .../internationalization/intl-guidelines.md | 80 +-- .../reference/apis/js-apis-i18n.md | 533 +++++++++--------- .../reference/apis/js-apis-intl.md | 389 +++++++------ .../reference/errorcodes/errorcode-i18n.md | 2 +- 5 files changed, 585 insertions(+), 507 deletions(-) diff --git a/en/application-dev/internationalization/i18n-guidelines.md b/en/application-dev/internationalization/i18n-guidelines.md index 62bf66fd7c..bbdbe2f2d3 100644 --- a/en/application-dev/internationalization/i18n-guidelines.md +++ b/en/application-dev/internationalization/i18n-guidelines.md @@ -28,7 +28,7 @@ You can use APIs provided in the following table to obtain the system language a ```js - var language = i18n.getSystemLanguage(); + let language = i18n.getSystemLanguage(); ``` 2. Obtain the system region. @@ -36,7 +36,7 @@ You can use APIs provided in the following table to obtain the system language a Call the **getSystemRegion** method to obtain the system region. ```js - var region = i18n.getSystemRegion(); + let region = i18n.getSystemRegion(); ``` 3. Obtain the system locale. @@ -44,7 +44,7 @@ You can use APIs provided in the following table to obtain the system language a Call the **getSystemLocale** method to obtain the system locale. ```js - var locale = i18n.getSystemLocale(); + let locale = i18n.getSystemLocale(); ``` 4. Check whether the locale's language is RTL. @@ -53,7 +53,7 @@ You can use APIs provided in the following table to obtain the system language a ```js - var rtl = i18n.isRTL("zh-CN"); + let rtl = i18n.isRTL("zh-CN"); ``` 5. Check whether the system uses a 24-hour clock. @@ -61,7 +61,7 @@ You can use APIs provided in the following table to obtain the system language a Call the **is24HourClock** method to check whether the system uses a 24-hour clock. ```js - var hourClock = i18n.is24HourClock(); + let hourClock = i18n.is24HourClock(); ``` 6. Obtain the localized display of a language. @@ -69,10 +69,10 @@ You can use APIs provided in the following table to obtain the system language a Call the **getDisplayLanguage** method to obtain the localized display of a language. **language** indicates the language to be localized, **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized. ```js - var language = "en"; - var locale = "zh-CN"; - var sentenceCase = false; - var localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase); + let language = "en"; + let locale = "zh-CN"; + let sentenceCase = false; + let localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase); ``` 7. Obtain the localized display of a country. @@ -80,10 +80,10 @@ You can use APIs provided in the following table to obtain the system language a Call the **getDisplayCountry** method to obtain the localized display of a country name. **country** indicates the country code (a two-letter code in compliance with ISO-3166, for example, CN), **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized. ```js - var country = "US"; - var locale = "zh-CN"; - var sentenceCase = false; - var localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase); + let country = "US"; + let locale = "zh-CN"; + let sentenceCase = false; + let localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase); ``` @@ -118,7 +118,7 @@ You can use APIs provided in the following table to obtain the system language a ```js - var calendar = i18n.getCalendar("zh-CN", "gregory"); + let calendar = i18n.getCalendar("zh-CN", "gregory"); ``` 2. Set the time for the **Calendar** object. @@ -126,9 +126,9 @@ You can use APIs provided in the following table to obtain the system language a Call the **setTime** method to set the time of the **Calendar** object. This method receives two types of parameters. One is a **Date** object, and the other is a value indicating the number of milliseconds elapsed since January 1, 1970, 00:00:00 GMT. ```js - var date1 = new Date(); + let date1 = new Date(); calendar.setTime(date1); - var date2 = 1000; + let date2 = 1000; calendar.setTime(date2); ``` @@ -147,7 +147,7 @@ You can use APIs provided in the following table to obtain the system language a ```js calendar.setTimeZone("Asia/Shanghai"); - var timezone = calendar.getTimeZone(); + let timezone = calendar.getTimeZone(); ``` 5. Set and obtain the first day of a week for the **Calendar** object. @@ -157,7 +157,7 @@ You can use APIs provided in the following table to obtain the system language a ```js calendar.setFirstDayOfWeek(1); - var firstDayOfWeek = calendar.getFirstDayOfWeek(); + let firstDayOfWeek = calendar.getFirstDayOfWeek(); ``` 6. Set and obtain the minimum count of days in the first week for the **Calendar** object. @@ -166,7 +166,7 @@ You can use APIs provided in the following table to obtain the system language a ```js calendar.setMinimalDaysInFirstWeek(3); - var minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); + let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); ``` 7. Obtain the localized display of the **Calendar** object. @@ -175,7 +175,7 @@ You can use APIs provided in the following table to obtain the system language a ```js - var localizedName = calendar.getDisplayName("zh-CN"); + let localizedName = calendar.getDisplayName("zh-CN"); ``` 8. Check whether a date is a weekend. @@ -184,8 +184,8 @@ You can use APIs provided in the following table to obtain the system language a ```js - var date = new Date(); - var weekend = calendar.isWeekend(date); + let date = new Date(); + let weekend = calendar.isWeekend(date); ``` @@ -211,21 +211,21 @@ You can use APIs provided in the following table to obtain the system language a ```js - var phoneNumberFormat = new i18n.PhoneNumberFormat("CN", {type: "E164"}); + let phoneNumberFormat = new i18n.PhoneNumberFormat("CN", {type: "E164"}); ``` 2. Check whether the phone number format is correct. Call the **isValidNumber** method to check whether the format of the input phone number is correct. ```js - var validNumber = phoneNumberFormat.isValidNumber("15812341234"); + let validNumber = phoneNumberFormat.isValidNumber("15812341234"); ``` 3. Format a phone number. Call the **format** method of **PhoneNumberFormat** to format the input phone number. ```js - var formattedNumber = phoneNumberFormat.format("15812341234"); + let formattedNumber = phoneNumberFormat.format("15812341234"); ``` @@ -248,11 +248,11 @@ The **unitConvert** API is provided to help you implement measurement conversion ```js - var fromUnit = {unit: "cup", measureSystem: "US"}; - var toUnit = {unit: "liter", measureSystem: "SI"}; - var number = 1000; - var locale = "en-US"; - var style = "long"; + let fromUnit = {unit: "cup", measureSystem: "US"}; + let toUnit = {unit: "liter", measureSystem: "SI"}; + let number = 1000; + let locale = "en-US"; + let style = "long"; i18n.Util.unitConvert(fromUtil, toUtil, number, locale, style); ``` @@ -280,7 +280,7 @@ The **unitConvert** API is provided to help you implement measurement conversion ```js - var indexUtil = i18n.getInstance("zh-CN"); + let indexUtil = i18n.getInstance("zh-CN"); ``` 2. Obtain the index list. @@ -288,7 +288,7 @@ The **unitConvert** API is provided to help you implement measurement conversion Call the **getIndexList** method to obtain the alphabet index list of the current locale. ```js - var indexList = indexUtil.getIndexList(); + let indexList = indexUtil.getIndexList(); ``` 3. Add an index. @@ -304,7 +304,7 @@ The **unitConvert** API is provided to help you implement measurement conversion Call the **getIndex** method to obtain the alphabet index of a string. ```js - var text = "access index"; + let text = "access index"; indexUtil.getIndex(text); ``` @@ -338,8 +338,8 @@ When a text is displayed in more than one line, [BreakIterator8](../reference/ap ```js - var locale = "en-US" - var breakIterator = i18n.getLineInstance(locale); + let locale = "en-US" + let breakIterator = i18n.getLineInstance(locale); ``` 2. Set and access the text that requires line breaking. @@ -348,9 +348,9 @@ When a text is displayed in more than one line, [BreakIterator8](../reference/ap ```js - var text = "Apple is my favorite fruit"; + let text = "Apple is my favorite fruit"; breakIterator.setLineBreakText(text); - var breakText = breakIterator.getLineBreakText(); + let breakText = breakIterator.getLineBreakText(); ``` 3. Obtain the current position of the **BreakIterator** object. @@ -359,7 +359,7 @@ When a text is displayed in more than one line, [BreakIterator8](../reference/ap ```js - var pos = breakIterator.current(); + let pos = breakIterator.current(); ``` 4. Set the position of a **BreakIterator** object. @@ -368,15 +368,15 @@ When a text is displayed in more than one line, [BreakIterator8](../reference/ap ```js - var firstPos = breakIterator.first(); // Set a BreakIterator object to the first break point, that is, the start position of the text. - var lastPos = breakIterator.last(); // Set a BreakIterator object to the last break point, that is, the position after the text end. + let firstPos = breakIterator.first(); // Set a BreakIterator object to the first break point, that is, the start position of the text. + let lastPos = breakIterator.last(); // Set a BreakIterator object to the last break point, that is, the position after the text end. // Move a BreakIterator object forward or backward by a certain number of break points. // If a positive number is input, move backward. If a negative number is input, move forward. If no value is input, move one position backward. // When the object is moved out of the text length range, -1 is returned. - var nextPos = breakIterator.next(-2); - var previousPos = breakIterator.previous(); // Move a BreakIterator object to the previous break point. When the text length is out of the range, -1 is returned. + let nextPos = breakIterator.next(-2); + let previousPos = breakIterator.previous(); // Move a BreakIterator object to the previous break point. When the text length is out of the range, -1 is returned. // Move a BreakIterator object to the break point following the position specified by offset. If the object is moved out of the text length range, -1 is returned. - var followingPos = breakIterator.following(10); + let followingPos = breakIterator.following(10); ``` 5. Determine whether a position is a break point. @@ -385,7 +385,7 @@ When a text is displayed in more than one line, [BreakIterator8](../reference/ap ```js - var isboundary = breakIterator.isBoundary(5); + let isboundary = breakIterator.isBoundary(5); ``` ``` \ No newline at end of file diff --git a/en/application-dev/internationalization/intl-guidelines.md b/en/application-dev/internationalization/intl-guidelines.md index f123a0b29a..8f38269d95 100644 --- a/en/application-dev/internationalization/intl-guidelines.md +++ b/en/application-dev/internationalization/intl-guidelines.md @@ -44,9 +44,9 @@ Use [Locale](../reference/apis/js-apis-intl.md#locale) APIs to maximize or minim ```js - var locale = "zh-CN"; - var options = {caseFirst: "false", calendar: "chinese", collation: "pinyin"}; - var localeObj = new intl.Locale(locale, options); + let locale = "zh-CN"; + let options = {caseFirst: "false", calendar: "chinese", collation: "pinyin"}; + let localeObj = new intl.Locale(locale, options); ``` 2. Obtain the string representing a **Locale** object. @@ -54,7 +54,7 @@ Use [Locale](../reference/apis/js-apis-intl.md#locale) APIs to maximize or minim Call the **toString** method to obtain the string representing a **Locale** object, which includes the language, region, and other options. ```js - var localeStr = localeObj.toString(); + let localeStr = localeObj.toString(); ``` 3. Maximize locale information. @@ -62,7 +62,7 @@ Use [Locale](../reference/apis/js-apis-intl.md#locale) APIs to maximize or minim Call the **maximize** method to maximize locale information; that is, supplement the missing script and region information. ```js - var maximizedLocale = localeObj.maximize(); + let maximizedLocale = localeObj.maximize(); ``` 4. Minimize locale information. @@ -70,7 +70,7 @@ Use [Locale](../reference/apis/js-apis-intl.md#locale) APIs to maximize or minim Call the **minimize** method to minimize locale information; that is, delete the unnecessary script and region information. ```js - var minimizedLocale = localeObj.minimize(); + let minimizedLocale = localeObj.minimize(); ``` @@ -98,14 +98,14 @@ Use [DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat) APIs to f ```js - var dateTimeFormat = new intl.DateTimeFormat(); + let dateTimeFormat = new intl.DateTimeFormat(); ``` Alternatively, use your own locale and formatting parameters to create a **DateTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [DateTimeOptions](../reference/apis/js-apis-intl.md#datetimeoptions). ```js - var options = {dateStyle: "full", timeStyle: "full"}; - var dateTimeFormat = new intl.DateTimeFormat("zh-CN", options); + let options = {dateStyle: "full", timeStyle: "full"}; + let dateTimeFormat = new intl.DateTimeFormat("zh-CN", options); ``` 2. Format the date and time. @@ -113,8 +113,8 @@ Use [DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat) APIs to f Call the **format** method to format the date and time in the **DateTimeFormat** object. This method returns a string representing the formatting result. ```js - var date = new Date(); - var formatResult = dateTimeFormat.format(date); + let date = new Date(); + let formatResult = dateTimeFormat.format(date); ``` 3. Format a period. @@ -122,9 +122,9 @@ Use [DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat) APIs to f Call the **formatRange** method to format the period in the **DateTimeFormat** object. This method requires input of two **Date** objects, which respectively indicate the start date and end date of a period. This method returns a string representing the formatting result. ```js - var startDate = new Date(2021, 11, 17, 3, 24, 0); - var endDate = new Date(2021, 11, 18, 3, 24, 0); - var datefmt = new Intl.DateTimeFormat("en-GB"); + let startDate = new Date(2021, 11, 17, 3, 24, 0); + let endDate = new Date(2021, 11, 18, 3, 24, 0); + let datefmt = new Intl.DateTimeFormat("en-GB"); datefmt.formatRange(startDate, endDate); ``` @@ -133,7 +133,7 @@ Use [DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat) APIs to f Call the **resolvedOptions** method to obtain attributes of the **DateTimeFormat** object. This method will return an array that contains all attributes and values of the object. ```js - var options = dateTimeFormat.resolvedOptions(); + let options = dateTimeFormat.resolvedOptions(); ``` @@ -160,14 +160,14 @@ Use [NumberFormat](../reference/apis/js-apis-intl.md#numberformat) APIs to forma ```js - var numberFormat = new intl.NumberFormat(); + let numberFormat = new intl.NumberFormat(); ``` Alternatively, use your own locale and formatting parameters to create a **NumberFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [NumberOptions](../reference/apis/js-apis-intl.md#numberoptions). ```js - var options = {compactDisplay: "short", notation: "compact"}; - var numberFormat = new intl.NumberFormat("zh-CN", options); + let options = {compactDisplay: "short", notation: "compact"}; + let numberFormat = new intl.NumberFormat("zh-CN", options); ``` 2. Format a number. @@ -175,8 +175,8 @@ Use [NumberFormat](../reference/apis/js-apis-intl.md#numberformat) APIs to forma Call the **format** method to format a number. A string is returned as the formatting result. ```js - var number = 1234.5678 - var formatResult = numberFormat.format(number); + let number = 1234.5678 + let formatResult = numberFormat.format(number); ``` 3. Obtain attributes of the **NumberFormat** object. @@ -184,7 +184,7 @@ Use [NumberFormat](../reference/apis/js-apis-intl.md#numberformat) APIs to forma Call the **resolvedOptions** method to obtain attributes of the **NumberFormat** object. This method will return an array that contains all attributes and values of the object. ```js - var options = numberFormat.resolvedOptions(); + let options = numberFormat.resolvedOptions(); ``` @@ -211,13 +211,13 @@ Use [Collator](../reference/apis/js-apis-intl.md#collator8) APIs to sort strings ```js - var collator = new intl.Collator(); + let collator = new intl.Collator(); ``` Alternatively, use your own locale and formatting parameters to create a **Collator** object. For a full list of parameters, see [CollatorOptions](../reference/apis/js-apis-intl.md#collatoroptions9). ```js - var collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}); + let collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}); ``` 2. Compare two strings. @@ -225,9 +225,9 @@ Use [Collator](../reference/apis/js-apis-intl.md#collator8) APIs to sort strings Call the **compare** method to compare two input strings. This method returns a value as the comparison result. The return value **-1** indicates that the first string is shorter than the second string, the return value **1** indicates that the first string is longer than the second string, and the return value **0** indicates that the two strings are of equal lengths. This allows you to sort character strings based on the comparison result. ```js - var str1 = "first string"; - var str2 = "second string"; - var compareResult = collator.compare(str1, str2); + let str1 = "first string"; + let str2 = "second string"; + let compareResult = collator.compare(str1, str2); ``` 3. Obtain attributes of the **Collator** object. @@ -235,7 +235,7 @@ Use [Collator](../reference/apis/js-apis-intl.md#collator8) APIs to sort strings Call the **resolvedOptions** method to obtain attributes of the **Collator** object. This method will return an array that contains all attributes and values of the object. ```js - var options = collator.resolvedOptions(); + let options = collator.resolvedOptions(); ``` @@ -261,13 +261,13 @@ Use [PluralRules](../reference/apis/js-apis-intl.md#pluralrules8) APIs to determ ```js - var pluralRules = new intl.PluralRules(); + let pluralRules = new intl.PluralRules(); ``` Alternatively, use your own locale and formatting parameters to create a **PluralRules** object. For a full list of parameters, see [PluralRulesOptions](../reference/apis/js-apis-intl.md#pluralrulesoptions9). ```js - var pluralRules = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); + let pluralRules = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); ``` 2. Determine the singular-plural type. @@ -275,8 +275,8 @@ Use [PluralRules](../reference/apis/js-apis-intl.md#pluralrules8) APIs to determ Call the **select** method to determine the singular-plural type of an input number. This method will return a string representing the singular-plural type, which can be any of the following: **zero**, **one**, **two**, **few**, **many**, and **other**. ```js - var number = 1234.5678 - var categoryResult = plurals.select(number); + let number = 1234.5678 + let categoryResult = plurals.select(number); ``` @@ -304,13 +304,13 @@ Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8) ```js - var relativeTimeFormat = new intl.RelativeTimeFormat(); + let relativeTimeFormat = new intl.RelativeTimeFormat(); ``` Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md#relativetimeformatinputoptions9). ```js - var relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); + let relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); ``` 2. Format the relative time. @@ -318,9 +318,9 @@ Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8) Call the **format** method to format the relative time. This method receives a numeric value representing the time length and a string-form unit, like **year**, **quarter**, **month**, **week**, **day**, **hour**, **minute**, and **second**. This method returns a string representing the formatting result. ```js - var number = 2; - var unit = "year" - var formatResult = relativeTimeFormat.format(number, unit); + let number = 2; + let unit = "year" + let formatResult = relativeTimeFormat.format(number, unit); ``` 3. Obtain each part of the relative time format. @@ -328,9 +328,9 @@ Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8) Upon obtaining each part of the relative time format, customize the relative time formatting result. ```js - var number = 2; - var unit = "year" - var formatResult = relativeTimeFormat.formatToParts(number, unit); + let number = 2; + let unit = "year" + let formatResult = relativeTimeFormat.formatToParts(number, unit); ``` 4. Obtain attributes of the **RelativeTimeFormat** object. @@ -338,7 +338,7 @@ Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8) Call the **resolvedOptions** method to obtain attributes of the **RelativeTimeFormat** object. This method will return an array that contains all attributes and values of the object. For a full list of attributes, see [RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md#relativetimeformatresolvedoptions8). ```js - var options = numberFormat.resolvedOptions(); + let options = numberFormat.resolvedOptions(); ``` ## Samples diff --git a/en/application-dev/reference/apis/js-apis-i18n.md b/en/application-dev/reference/apis/js-apis-i18n.md index 08bf0cfe66..913fde73b3 100644 --- a/en/application-dev/reference/apis/js-apis-i18n.md +++ b/en/application-dev/reference/apis/js-apis-i18n.md @@ -1,15 +1,18 @@ -# Internationalization – I18N +# @ohos.i18n (Internationalization) -The I18N module provides system-related or enhanced I18N capabilities, such as locale management, phone number formatting, and calendar, through supplementary I18N APIs that are not defined in ECMA 402. -The [Intl](js-apis-intl.md) module provides basic I18N capabilities through the standard I18N APIs defined in ECMA 402. It works with the I18N module to provide a complete suite of I18N capabilities. + The **i18n** module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402. +The [intl](js-apis-intl.md) module provides basic i18n capabilities through the standard i18n APIs defined in ECMA 402. It works with the i18n module to provide a complete suite of i18n capabilities. > **NOTE** -> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +> - This module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402. For details about the basic i18n capabilities, see [intl](js-apis-intl.md). + ## Modules to Import ```js -import i18n from '@ohos.i18n'; +import I18n from '@ohos.i18n'; ``` @@ -39,16 +42,16 @@ Obtains the localized script for the specified country. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var displayCountry = i18n.System.getDisplayCountry("zh-CN", "en-GB"); + let displayCountry = I18n.System.getDisplayCountry("zh-CN", "en-GB"); // displayCountry = "China" } catch(error) { console.error(`call System.getDisplayCountry failed, error code: ${error.code}, message: ${error.message}.`) } @@ -78,16 +81,16 @@ Obtains the localized script for the specified language. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var displayLanguage = i18n.System.getDisplayLanguage("zh", "en-GB"); + let displayLanguage = I18n.System.getDisplayLanguage("zh", "en-GB"); // displayLanguage = Chinese } catch(error) { console.error(`call System.getDisplayLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -109,16 +112,16 @@ Obtains the list of system languages. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var systemLanguages = i18n.System.getSystemLanguages(); + let systemLanguages = I18n.System.getSystemLanguages(); // [ "en-Latn-US", "zh-Hans" ] } catch(error) { console.error(`call System.getSystemLanguages failed, error code: ${error.code}, message: ${error.message}.`) } @@ -134,9 +137,9 @@ Obtains the list of countries and regions supported for the specified language. **Parameters** -| Name | Type | Description | -| -------- | ------ | ----- | -| language | string | Language ID.| +| Name | Type | Mandatory | Description | +| -------- | ------ | ---- | ----- | +| language | string | Yes | Language ID.| **Return value** @@ -146,16 +149,16 @@ Obtains the list of countries and regions supported for the specified language. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var systemCountries = i18n.System.getSystemCountries('zh'); + let systemCountries = I18n.System.getSystemCountries('zh'); // systemCountries = [ "ZW", "YT", "YE", ..., "ER", "CN", "DE" ], 240 countries or regions in total } catch(error) { console.error(`call System.getSystemCountries failed, error code: ${error.code}, message: ${error.message}.`) } @@ -184,16 +187,16 @@ Checks whether the system language matches the specified region. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var res = i18n.System.isSuggested('zh', 'CN'); + let res = I18n.System.isSuggested('zh', 'CN'); // res = true } catch(error) { console.error(`call System.isSuggested failed, error code: ${error.code}, message: ${error.message}.`) } @@ -215,16 +218,16 @@ Obtains the system language. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var systemLanguage = i18n.System.getSystemLanguage(); + let systemLanguage = I18n.System.getSystemLanguage(); // systemLanguage indicates the current system language. } catch(error) { console.error(`call System.getSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -236,7 +239,7 @@ static setSystemLanguage(language: string): void Sets the system language. Currently, this API does not support real-time updating of the system language. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -244,22 +247,22 @@ This is a system API. **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ------ | ----- | ----- | -| language | string | Yes | Language ID.| +| Name | Type | Mandatory | Description | +| -------- | ------ | ---- | ----- | +| language | string | Yes | Language ID.| **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - i18n.System.setSystemLanguage('zh'); + I18n.System.setSystemLanguage('zh'); // Set the current system language to zh. } catch(error) { console.error(`call System.setSystemLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -281,16 +284,16 @@ Obtains the system region. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var systemRegion = i18n.System.getSystemRegion(); + let systemRegion = I18n.System.getSystemRegion(); // Obtain the current system region. } catch(error) { console.error(`call System.getSystemRegion failed, error code: ${error.code}, message: ${error.message}.`) } @@ -302,7 +305,7 @@ static setSystemRegion(region: string): void Sets the system region. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -310,22 +313,22 @@ This is a system API. **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ------ | ----- | ----- | -| region | string | Yes | Region ID.| +| Name | Type | Mandatory | Description | +| ------ | ------ | ---- | ----- | +| region | string | Yes | Region ID.| **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - i18n.System.setSystemRegion('CN'); + I18n.System.setSystemRegion('CN'); // Set the current system region to CN. } catch(error) { console.error(`call System.setSystemRegion failed, error code: ${error.code}, message: ${error.message}.`) } @@ -347,16 +350,16 @@ Obtains the system locale. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var systemLocale = i18n.System.getSystemLocale(); + let systemLocale = I18n.System.getSystemLocale(); // Obtain the current system locale. } catch(error) { console.error(`call System.getSystemLocale failed, error code: ${error.code}, message: ${error.message}.`) } @@ -368,7 +371,7 @@ static setSystemLocale(locale: string): void Sets the system locale. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -376,22 +379,22 @@ This is a system API. **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ------ | ----- | ----- | -| locale | string | Yes | System locale ID, for example, **zh-CN**.| +| Name | Type | Mandatory | Description | +| ------ | ------ | ---- | --------------- | +| locale | string | Yes | System locale ID, for example, **zh-CN**.| **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - i18n.System.setSystemLocale('zh-CN'); + I18n.System.setSystemLocale('zh-CN'); // Set the current system locale to zh-CN. } catch(error) { console.error(`call System.setSystemLocale failed, error code: ${error.code}, message: ${error.message}.`) } @@ -413,16 +416,16 @@ Checks whether the 24-hour clock is used. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var is24HourClock = i18n.System.is24HourClock(); + let is24HourClock = I18n.System.is24HourClock(); // Check whether the 24-hour clock is enabled. } catch(error) { console.error(`call System.is24HourClock failed, error code: ${error.code}, message: ${error.message}.`) } @@ -434,7 +437,7 @@ static set24HourClock(option: boolean): void Sets the 24-hour clock. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -448,17 +451,17 @@ This is a system API. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js // Set the system time to the 24-hour clock. try { - i18n.System.set24HourClock(true); + I18n.System.set24HourClock(true); } catch(error) { console.error(`call System.set24HourClock failed, error code: ${error.code}, message: ${error.message}.`) } @@ -470,7 +473,7 @@ static addPreferredLanguage(language: string, index?: number): void Adds a preferred language to the specified position on the preferred language list. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -485,19 +488,19 @@ This is a system API. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js // Add zh-CN to the preferred language list. - var language = 'zh-CN'; - var index = 0; + let language = 'zh-CN'; + let index = 0; try { - i18n.System.addPreferredLanguage(language, index); + I18n.System.addPreferredLanguage(language, index); // Add zh-CN to the first place in the preferred language list. } catch(error) { console.error(`call System.addPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -509,7 +512,7 @@ static removePreferredLanguage(index: number): void Deletes a preferred language from the specified position on the preferred language list. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -523,18 +526,18 @@ This is a system API. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js // Delete the first preferred language from the preferred language list. - var index = 0; + let index = 0; try { - i18n.System.removePreferredLanguage(index); + I18n.System.removePreferredLanguage(index); } catch(error) { console.error(`call System.removePreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -544,7 +547,7 @@ For details about the error codes, see [I18N Error Codes](../errorcodes/errorcod static getPreferredLanguageList(): Array<string> -Obtains the list of preferred languages. +Obtains the preferred language list. **System capability**: SystemCapability.Global.I18n @@ -552,20 +555,20 @@ Obtains the list of preferred languages. | Type | Description | | ------------------- | --------- | -| Array<string> | List of preferred languages.| +| Array<string> | Preferred language list.| **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var preferredLanguageList = i18n.System.getPreferredLanguageList(); + let preferredLanguageList = I18n.System.getPreferredLanguageList(); // Obtain the current preferred language list. } catch(error) { console.error(`call System.getPreferredLanguageList failed, error code: ${error.code}, message: ${error.message}.`) } @@ -587,16 +590,16 @@ Obtains the first language in the preferred language list. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var firstPreferredLanguage = i18n.System.getFirstPreferredLanguage(); + let firstPreferredLanguage = I18n.System.getFirstPreferredLanguage(); // Obtain the first language in the preferred language list. } catch(error) { console.error(`call System.getFirstPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -618,16 +621,16 @@ Obtains the preferred language of an application. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```js try { - var appPreferredLanguage = i18n.System.getAppPreferredLanguage(); + let appPreferredLanguage = I18n.System.getAppPreferredLanguage(); // Obtain the preferred language of an application. } catch(error) { console.error(`call System.getAppPreferredLanguage failed, error code: ${error.code}, message: ${error.message}.`) } @@ -637,9 +640,9 @@ For details about the error codes, see [I18N Error Codes](../errorcodes/errorcod static setUsingLocalDigit(flag: boolean): void -Sets whether to turn on the local digit switch. +Sets whether to enable the local digit switch. -This is a system API. +**System API**: This is a system API. **Permission required**: ohos.permission.UPDATE_CONFIGURATION @@ -649,20 +652,20 @@ This is a system API. | Name | Type | Mandatory | Description | | ---- | ------- | ---- | ------------------------------- | -| flag | boolean | Yes | Whether to turn on the local digit switch. The value **true** means to turn on the local digit switch, and the value **false** indicates the opposite.| +| flag | boolean | Yes | Whether to enable the local digit switch. The value **true** means to enable the local digit switch, and the value **false** indicates the opposite.| **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```ts try { - i18n.System.setUsingLocalDigit(true); + I18n.System.setUsingLocalDigit(true); // Enable the local digit switch. } catch(error) { console.error(`call System.setUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`) } @@ -684,23 +687,23 @@ Checks whether the local digit switch is turned on. **Error codes** -For details about the error codes, see [I18N Error Codes](../errorcodes/errorcode-i18n.md). +For details about the error codes, see [i18n Error Codes](../errorcodes/errorcode-i18n.md). -| ID| Error Message| -| -------- | ---------------------------------------- | -| 890001 | Unspported para value. | +| ID | Error Message | +| ------ | ---------------------- | +| 890001 | Unspported para value. | **Example** ```ts try { - var status = i18n.System.getUsingLocalDigit(); + let status = I18n.System.getUsingLocalDigit(); // Check whether the local digit switch is enabled. } catch(error) { console.error(`call System.getUsingLocalDigit failed, error code: ${error.code}, message: ${error.message}.`) } ``` -## i18n.isRTL7+ +## I18n.isRTL7+ isRTL(locale: string): boolean @@ -710,9 +713,9 @@ Checks whether the localized script for the specified language is displayed from **Parameters** -| Name | Type | Mandatory | Description | -| -------- | ------ | ----- | ----- | -| locale | string | Yes | Locale ID.| +| Name | Type | Mandatory | Description | +| ------ | ------ | ---- | ------- | +| locale | string | Yes | Locale ID.| **Return value** @@ -727,7 +730,7 @@ Checks whether the localized script for the specified language is displayed from ``` -## i18n.getCalendar8+ +## I18n.getCalendar8+ getCalendar(locale: string, type? : string): Calendar @@ -750,7 +753,7 @@ Obtains a **Calendar** object. **Example** ```js - i18n.getCalendar("zh-Hans", "gregory"); + I18n.getCalendar("zh-Hans", "chinese"); // Obtain the Calendar object for the Chinese lunar calendar. ``` @@ -773,8 +776,8 @@ Sets the date for this **Calendar** object. **Example** ```js - var calendar = i18n.getCalendar("en-US", "gregory"); - var date = new Date(2021, 10, 7, 8, 0, 0, 0); + let calendar = I18n.getCalendar("en-US", "gregory"); + let date = new Date(2021, 10, 7, 8, 0, 0, 0); calendar.setTime(date); ``` @@ -795,7 +798,7 @@ Sets the date and time for this **Calendar** object. The value is represented by **Example** ```js - var calendar = i18n.getCalendar("en-US", "gregory"); + let calendar = I18n.getCalendar("en-US", "gregory"); calendar.setTime(10540800000); ``` @@ -821,7 +824,7 @@ Sets the year, month, day, hour, minute, and second for this **Calendar** object **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); + let calendar = I18n.getCalendar("zh-Hans"); calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00 ``` @@ -842,7 +845,7 @@ Sets the time zone of this **Calendar** object. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); + let calendar = I18n.getCalendar("zh-Hans"); calendar.setTimeZone("Asia/Shanghai"); ``` @@ -863,9 +866,9 @@ Obtains the time zone of this **Calendar** object. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); + let calendar = I18n.getCalendar("zh-Hans"); calendar.setTimeZone("Asia/Shanghai"); - calendar.getTimeZone(); // Asia/Shanghai" + let timezone = calendar.getTimeZone(); // timezone = "Asia/Shanghai" ``` @@ -885,8 +888,8 @@ Obtains the start day of a week for this **Calendar** object. **Example** ```js - var calendar = i18n.getCalendar("en-US", "gregory"); - calendar.getFirstDayOfWeek(); + let calendar = I18n.getCalendar("en-US", "gregory"); + let firstDayOfWeek = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 1 ``` @@ -906,8 +909,9 @@ Sets the start day of a week for this **Calendar** object. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); - calendar.setFirstDayOfWeek(0); + let calendar = I18n.getCalendar("zh-Hans"); + calendar.setFirstDayOfWeek(3); + let firstDayOfWeek = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 3 ``` @@ -927,8 +931,8 @@ Obtains the minimum number of days in the first week of a year. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); - calendar.getMinimalDaysInFirstWeek(); + let calendar = I18n.getCalendar("zh-Hans"); + let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 1 ``` @@ -948,8 +952,9 @@ Sets the minimum number of days in the first week of a year. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); + let calendar = I18n.getCalendar("zh-Hans"); calendar.setMinimalDaysInFirstWeek(3); + let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 3 ``` @@ -975,9 +980,9 @@ Obtains the value of the specified field in the **Calendar** object. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); + let calendar = I18n.getCalendar("zh-Hans"); calendar.set(2021, 10, 1, 8, 0, 0); // set time to 2021.10.1 08:00:00 - calendar.get("hour_of_day"); // 8 + let hourOfDay = calendar.get("hour_of_day"); // hourOfDay = 8 ``` @@ -1003,8 +1008,8 @@ Obtains the **Calendar** object name displayed for the specified locale. **Example** ```js - var calendar = i18n.getCalendar("en-US", "buddhist"); - calendar.getDisplayName("zh"); // Obtain the name of the Buddhist calendar in zh. + let calendar = I18n.getCalendar("en-US", "buddhist"); + let calendarName = calendar.getDisplayName("zh"); // calendarName = "Buddhist Calendar" ``` @@ -1030,10 +1035,10 @@ Checks whether the specified date in this **Calendar** object is a weekend. **Example** ```js - var calendar = i18n.getCalendar("zh-Hans"); + let calendar = I18n.getCalendar("zh-Hans"); calendar.set(2021, 11, 11, 8, 0, 0); // set time to 2021.11.11 08:00:00 calendar.isWeekend(); // false - var date = new Date(2011, 11, 6, 9, 0, 0); + let date = new Date(2011, 11, 6, 9, 0, 0); calendar.isWeekend(date); // true ``` @@ -1054,11 +1059,11 @@ Creates a **PhoneNumberFormat** object. | Name | Type | Mandatory | Description | | ------- | ---------------------------------------- | ---- | ---------------- | | country | string | Yes | Country or region to which the phone number to be formatted belongs.| -| options | [PhoneNumberFormatOptions](#phonenumberformatoptions9) | No | Options of the **PhoneNumberFormat** object. | +| options | [PhoneNumberFormatOptions](#phonenumberformatoptions8) | No | Options of the **PhoneNumberFormat** object. | **Example** ```js - var phoneNumberFormat= new i18n.PhoneNumberFormat("CN", {"type": "E164"}); + let phoneNumberFormat= new I18n.PhoneNumberFormat("CN", {"type": "E164"}); ``` @@ -1084,8 +1089,8 @@ Checks whether the format of the specified phone number is valid. **Example** ```js - var phonenumberfmt = new i18n.PhoneNumberFormat("CN"); - phonenumberfmt.isValidNumber("15812312312"); + let phonenumberfmt = new I18n.PhoneNumberFormat("CN"); + let isValidNumber = phonenumberfmt.isValidNumber("15812312312"); // isValidNumber = true ``` @@ -1111,8 +1116,8 @@ Formats a phone number. **Example** ```js - var phonenumberfmt = new i18n.PhoneNumberFormat("CN"); - phonenumberfmt.format("15812312312"); + let phonenumberfmt = new I18n.PhoneNumberFormat("CN"); + let formattedPhoneNumber = phonenumberfmt.format("15812312312"); // formattedPhoneNumber = "158 1231 2312" ``` @@ -1139,18 +1144,18 @@ Obtains the home location of a phone number. **Example** ```js - var phonenumberfmt = new i18n.PhoneNumberFormat("CN"); - phonenumberfmt.getLocationName("15812312345", "zh-CN"); + let phonenumberfmt = new I18n.PhoneNumberFormat("CN"); + let locationName = phonenumberfmt.getLocationName("15812312345", "zh-CN"); // locationName = "Zhanjiang, Guangdong Province" ``` -## PhoneNumberFormatOptions9+ +## PhoneNumberFormatOptions8+ Defines the options for this PhoneNumberFormat object. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | ---- | ------ | ---- | ---- | ---------------------------------------- | | type | string | Yes | Yes | Format type of a phone number. The available options are as follows: E164, INTERNATIONAL, NATIONAL, and RFC3966.| @@ -1161,7 +1166,7 @@ Defines the measurement unit information. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | ------------- | ------ | ---- | ---- | ---------------------------------------- | | unit | string | Yes | Yes | Name of the measurement unit, for example, **meter**, **inch**, or **cup**.| | measureSystem | string | Yes | Yes | Measurement system. The value can be **SI**, **US**, or **UK**.| @@ -1189,7 +1194,7 @@ Creates an **IndexUtil** object. **Example** ```js - var indexUtil= i18n.getInstance("zh-CN"); + let indexUtil= I18n.getInstance("zh-CN"); ``` @@ -1212,8 +1217,10 @@ Obtains the index list for this **locale** object. **Example** ```js - var indexUtil = i18n.getInstance("zh-CN"); - var indexList = indexUtil.getIndexList(); + let indexUtil = I18n.getInstance("zh-CN"); + // indexList = [ "...", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", + // "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "..." ] + let indexList = indexUtil.getIndexList(); ``` @@ -1233,7 +1240,7 @@ Adds the index of the new **locale** object to the index list. **Example** ```js - var indexUtil = i18n.getInstance("zh-CN"); + let indexUtil = I18n.getInstance("zh-CN"); indexUtil.addLocale("en-US"); ``` @@ -1260,12 +1267,12 @@ Obtains the index of a text object. **Example** ```js - var indexUtil= i18n.getInstance("zh-CN"); - indexUtil.getIndex("hi"); // Return hi. + let indexUtil= I18n.getInstance("zh-CN"); + let index = indexUtil.getIndex("hi"); // index = "H" ``` -## i18n.getLineInstance8+ +## I18n.getLineInstance8+ getLineInstance(locale: string): BreakIterator @@ -1287,7 +1294,7 @@ Obtains a [BreakIterator](#breakiterator8) object for text segmentation. **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); ``` @@ -1310,8 +1317,8 @@ Sets the text to be processed by the [BreakIterator](#breakiterator8) object. **Example** ```js - var iterator = i18n.getLineInstance("en"); - iterator.setLineBreakText("Apple is my favorite fruit."); + let iterator = I18n.getLineInstance("en"); + iterator.setLineBreakText("Apple is my favorite fruit ."); // Set a short sentence as the text to be processed by the BreakIterator object. ``` @@ -1331,9 +1338,9 @@ Obtains the text being processed by the [BreakIterator](#breakiterator8) object. **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.getLineBreakText(); // Apple is my favorite fruit. + let breakText = iterator.getLineBreakText(); // breakText = "Apple is my favorite fruit." ``` @@ -1353,9 +1360,9 @@ Obtains the position of the [BreakIterator](#breakiterator8) object in the text **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.current(); // 0 + let currentPos = iterator.current(); // currentPos = 0 ``` @@ -1375,9 +1382,9 @@ Puts the [BreakIterator](#breakiterator8) object to the first text boundary, whi **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = i18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.first(); // 0 + let firstPos = iterator.first(); // firstPos = 0 ``` @@ -1397,9 +1404,9 @@ Puts the [BreakIterator](#breakiterator8) object to the last text boundary, whic **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.last(); // 27 + let lastPos = iterator.last(); // lastPos = 27 ``` @@ -1425,11 +1432,11 @@ Moves the [BreakIterator](#breakiterator8) object backward by the specified numb **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.first(); // 0 - iterator.next(); // 6 - iterator.next(10); // -1 + let pos = iterator.first(); // pos = 0 + pos = iterator.next(); // pos = 6 + pos = iterator.next(10); // pos = -1 ``` @@ -1449,11 +1456,11 @@ Moves the [BreakIterator](#breakiterator8) object to the previous text boundary. **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.first(); // 0 - iterator.next(3); // 12 - iterator.previous(); // 9 + let pos = iterator.first(); // pos = 0 + pos = iterator.next(3); // pos = 12 + pos = iterator.previous(); // pos = 9 ``` @@ -1479,11 +1486,11 @@ Moves the [BreakIterator](#breakiterator8) object to the text boundary after the **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.following(0); // 6 - iterator.following(100); // -1 - iterator.current(); // 27 + let pos = iterator.following(0); // pos = 6 + pos = iterator.following(100); // pos = -1 + pos = iterator.current(); // pos = 27 ``` @@ -1509,14 +1516,14 @@ Checks whether the position specified by the offset is a text boundary. If **tru **Example** ```js - var iterator = i18n.getLineInstance("en"); + let iterator = I18n.getLineInstance("en"); iterator.setLineBreakText("Apple is my favorite fruit."); - iterator.isBoundary(0); // true; - iterator.isBoundary(5); // false; + let isBoundary = iterator.isBoundary(0); // isBoundary = true; + isBoundary = iterator.isBoundary(5); // isBoundary = false; ``` -## i18n.getTimeZone7+ +## I18n.getTimeZone7+ getTimeZone(zoneID?: string): TimeZone @@ -1538,7 +1545,7 @@ Obtains the **TimeZone** object corresponding to the specified time zone ID. **Example** ```js - var timezone = i18n.getTimeZone(); + let timezone = I18n.getTimeZone(); ``` @@ -1561,8 +1568,8 @@ Obtains the ID of the specified **TimeZone** object. **Example** ```js - var timezone = i18n.getTimeZone(); - timezone.getID(); + let timezone = I18n.getTimeZone(); + let timezoneID = timezone.getID(); // timezoneID = "Asia/Shanghai" ``` @@ -1570,7 +1577,7 @@ Obtains the ID of the specified **TimeZone** object. getDisplayName(locale?: string, isDST?: boolean): string -Obtains the representation of a **TimeZone** object in the specified locale. +Obtains the localized representation of the time zone. **System capability**: SystemCapability.Global.I18n @@ -1589,8 +1596,8 @@ Obtains the representation of a **TimeZone** object in the specified locale. **Example** ```js - var timezone = i18n.getTimeZone(); - timezone.getDisplayName("zh-CN", false); + let timezone = I18n.getTimeZone(); + let timezoneName = timezone.getDisplayName("zh-CN", false); // timezoneName = "China Standard Time" ``` @@ -1610,8 +1617,8 @@ Obtains the offset between the time zone represented by a **TimeZone** object an **Example** ```js - var timezone = i18n.getTimeZone(); - timezone.getRawOffset(); + let timezone = I18n.getTimeZone(); + let offset = timezone.getRawOffset(); // offset = 28800000 ``` @@ -1631,8 +1638,8 @@ Obtains the offset between the time zone represented by a **TimeZone** object an **Example** ```js - var timezone = i18n.getTimeZone(); - timezone.getOffset(1234567890); + let timezone = I18n.getTimeZone(); + let offset = timezone.getOffset(1234567890); // offset = 28800000 ``` @@ -1652,7 +1659,8 @@ Obtains the list of time zone IDs supported by the system. **Example** ```ts - var ids = i18n.TimeZone.getAvailableIDs(); + // ids = ["America/Adak", "America/Anchorage", "America/Bogota", "America/Denver", "America/Los_Angeles", "America/Montevideo", "America/Santiago", "America/Sao_Paulo", "Asia/Ashgabat", "Asia/Hovd", "Asia/Jerusalem", "Asia/Magadan", "Asia/Omsk", "Asia/Shanghai", "Asia/Tokyo", "Asia/Yerevan", "Atlantic/Cape_Verde", "Australia/Lord_Howe", "Europe/Dublin", "Europe/London", "Europe/Moscow", "Pacific/Auckland", "Pacific/Easter", "Pacific/Pago-Pago"], 24 time zones supported in total + let ids = I18n.TimeZone.getAvailableIDs(); ``` @@ -1672,7 +1680,8 @@ Obtains the list of time zone city IDs supported by the system. **Example** ```ts - var cityIDs = i18n.TimeZone.getAvailableZoneCityIDs(); + // cityIDs = ["Auckland", "Magadan", "Lord Howe Island", "Tokyo", "Shanghai", "Hovd", "Omsk", "Ashgabat", "Yerevan", "Moscow", "Tel Aviv", "Dublin", "London", "Praia", "Montevideo", "Brasília", "Santiago", "Bogotá", "Easter Island", "Salt Lake City", "Los Angeles", "Anchorage", "Adak", "Pago Pago"], 24 time zone cities supported in total + let cityIDs = I18n.TimeZone.getAvailableZoneCityIDs(); ``` @@ -1680,7 +1689,7 @@ Obtains the list of time zone city IDs supported by the system. static getCityDisplayName(cityID: string, locale: string): string -Obtains the localized display of a time zone city in the specified locale. +Obtains the localized representation of a time zone city in the specified locale. **System capability**: SystemCapability.Global.I18n @@ -1699,7 +1708,7 @@ Obtains the localized display of a time zone city in the specified locale. **Example** ```ts - var displayName = i18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN"); + let displayName = I18n.TimeZone.getCityDisplayName("Shanghai", "zh-CN"); // displayName = "Shanghai (China)" ``` @@ -1725,7 +1734,7 @@ Obtains the **TimeZone** object corresponding to the specified time zone city ID **Example** ```ts - var timezone = i18n.TimeZone.getTimezoneFromCity("Shanghai"); + let timezone = I18n.TimeZone.getTimezoneFromCity("Shanghai"); ``` @@ -1748,7 +1757,9 @@ Obtains a list of IDs supported by the **Transliterator** object. **Example** ```ts - i18n.Transliterator.getAvailableIDs(); + // ids = ["ASCII-Latin", "Accents-Any", "Amharic-Latin/BGN", ...], 671 IDs supported in total + // Each ID consists of two parts separated by a hyphen (-). The format is source-destination. + let ids = I18n.Transliterator.getAvailableIDs(); ``` @@ -1774,7 +1785,7 @@ Creates a **Transliterator** object. **Example** ```ts - var transliterator = i18n.Transliterator.getInstance("Any-Latn"); + let transliterator = I18n.Transliterator.getInstance("Any-Latn"); ``` @@ -1800,8 +1811,8 @@ Converts the input string from the source format to the target format. **Example** ```ts - var transliterator = i18n.Transliterator.getInstance("Any-Latn"); - transliterator.transform ("China"); + let transliterator = I18n.Transliterator.getInstance("Any-Latn"); + let res = transliterator.transform("China"); // res = "zhōng guó" ``` @@ -1830,7 +1841,7 @@ Checks whether the input character string is composed of digits. **Example** ```js - var isdigit = i18n.Unicode.isDigit("1"); // Return true. + let isdigit = I18n.Unicode.isDigit("1"); // isdigit = true ``` @@ -1856,7 +1867,7 @@ Checks whether the input character is a space. **Example** ```js - var isspacechar = i18n.Unicode.isSpaceChar("a"); // Return false. + let isspacechar = I18n.Unicode.isSpaceChar("a"); // isspacechar = false ``` @@ -1882,7 +1893,7 @@ Checks whether the input character is a white space. **Example** ```js - var iswhitespace = i18n.Unicode.isWhitespace("a"); // Return false. + let iswhitespace = I18n.Unicode.isWhitespace("a"); // iswhitespace = false ``` @@ -1908,7 +1919,7 @@ Checks whether the input character is of the right to left (RTL) language. **Example** ```js - var isrtl = i18n.Unicode.isRTL("a"); // Return false. + let isrtl = I18n.Unicode.isRTL("a"); // isrtl = false ``` @@ -1934,7 +1945,7 @@ Checks whether the input character is an ideographic character. **Example** ```js - var isideograph = i18n.Unicode.isIdeograph("a"); // Return false. + let isideograph = I18n.Unicode.isIdeograph("a"); // isideograph = false ``` @@ -1960,7 +1971,7 @@ Checks whether the input character is a letter. **Example** ```js - var isletter = i18n.Unicode.isLetter("a"); // Return true. + let isletter = I18n.Unicode.isLetter("a"); // isletter = true ``` @@ -1986,7 +1997,7 @@ Checks whether the input character is a lowercase letter. **Example** ```js - var islowercase = i18n.Unicode.isLowerCase("a"); // Return true. + let islowercase = I18n.Unicode.isLowerCase("a"); // islowercase = true ``` @@ -2012,7 +2023,7 @@ Checks whether the input character is an uppercase letter. **Example** ```js - var isuppercase = i18n.Unicode.isUpperCase("a"); // Return false. + let isuppercase = I18n.Unicode.isUpperCase("a"); // isuppercase = false ``` @@ -2038,7 +2049,7 @@ Obtains the type of the input character string. **Example** ```js - var type = i18n.Unicode.getType("a"); + let type = I18n.Unicode.getType("a"); // type = "U_LOWERCASE_LETTER" ``` @@ -2071,7 +2082,7 @@ Converts one measurement unit into another and formats the unit based on the spe **Example** ```js - i18n.I18NUtil.unitConvert({unit: "cup", measureSystem: "US"}, {unit: "liter", measureSystem: "SI"}, 1000, "en-US", "long"); + let res = I18n.I18NUtil.unitConvert({unit: "cup", measureSystem: "US"}, {unit: "liter", measureSystem: "SI"}, 1000, "en-US", "long"); // res = 236.588 liters ``` @@ -2097,11 +2108,11 @@ Obtains the sequence of the year, month, and day in the specified locale. **Example** ```js - i18n.I18NUtil.getDateOrder("zh-CN"); + let order = I18n.I18NUtil.getDateOrder("zh-CN"); // order = "y-L-d" ``` -## i18n.getDisplayCountry(deprecated) +## I18n.getDisplayCountry(deprecated) getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string @@ -2127,12 +2138,12 @@ This API is deprecated since API version 9. You are advised to use [System.getDi **Example** ```js - i18n.getDisplayCountry("zh-CN", "en-GB", true); - i18n.getDisplayCountry("zh-CN", "en-GB"); + let countryName = I18n.getDisplayCountry("zh-CN", "en-GB", true); // countryName = true + countryName = I18n.getDisplayCountry("zh-CN", "en-GB"); // countryName = true ``` -## i18n.getDisplayLanguage(deprecated) +## I18n.getDisplayLanguage(deprecated) getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string @@ -2158,12 +2169,12 @@ This API is deprecated since API version 9. You are advised to use [System.getDi **Example** ```js - i18n.getDisplayLanguage("zh", "en-GB", true); - i18n.getDisplayLanguage("zh", "en-GB"); + let languageName = I18n.getDisplayLanguage("zh", "en-GB", true); // languageName = "Chinese" + languageName = I18n.getDisplayLanguage("zh", "en-GB"); // languageName = "Chinese" ``` -## i18n.getSystemLanguage(deprecated) +## I18n.getSystemLanguage(deprecated) getSystemLanguage(): string @@ -2181,11 +2192,11 @@ This API is deprecated since API version 9. You are advised to use [System.getSy **Example** ```js - i18n.getSystemLanguage(); + let systemLanguage = I18n.getSystemLanguage(); // Obtain the current system language. ``` -## i18n.getSystemRegion(deprecated) +## I18n.getSystemRegion(deprecated) getSystemRegion(): string @@ -2203,11 +2214,11 @@ This API is deprecated since API version 9. You are advised to use [System.getSy **Example** ```js - i18n.getSystemRegion(); + let region = I18n.getSystemRegion(); // Obtain the current system region. ``` -## i18n.getSystemLocale(deprecated) +## I18n.getSystemLocale(deprecated) getSystemLocale(): string @@ -2225,11 +2236,11 @@ This API is deprecated since API version 9. You are advised to use [System.getSy **Example** ```js - i18n.getSystemLocale(); + let locale = I18n.getSystemLocale (); // Obtain the system locale. ``` -## i18n.is24HourClock(deprecated) +## I18n.is24HourClock(deprecated) is24HourClock(): boolean @@ -2247,11 +2258,11 @@ This API is deprecated since API version 9. You are advised to use [System.is24H **Example** ```js - var is24HourClock = i18n.is24HourClock(); + let is24HourClock = I18n.is24HourClock(); ``` -## i18n.set24HourClock(deprecated) +## I18n.set24HourClock(deprecated) set24HourClock(option: boolean): boolean @@ -2278,11 +2289,11 @@ This API is deprecated since API version 9. You are advised to use [System.set24 **Example** ```js // Set the system time to the 24-hour clock. - var success = i18n.set24HourClock(true); + let success = I18n.set24HourClock(true); ``` -## i18n.addPreferredLanguage(deprecated) +## I18n.addPreferredLanguage(deprecated) addPreferredLanguage(language: string, index?: number): boolean @@ -2310,13 +2321,13 @@ This API is supported since API version 8 and is deprecated since API version 9. **Example** ```js // Add zh-CN to the preferred language list. - var language = 'zh-CN'; - var index = 0; - var success = i18n.addPreferredLanguage(language, index); + let language = 'zh-CN'; + let index = 0; + let success = I18n.addPreferredLanguage(language, index); ``` -## i18n.removePreferredLanguage(deprecated) +## I18n.removePreferredLanguage(deprecated) removePreferredLanguage(index: number): boolean @@ -2343,16 +2354,16 @@ This API is supported since API version 8 and is deprecated since API version 9. **Example** ```js // Delete the first preferred language from the preferred language list. - var index = 0; - var success = i18n.removePreferredLanguage(index); + let index = 0; + let success = I18n.removePreferredLanguage(index); ``` -## i18n.getPreferredLanguageList(deprecated) +## I18n.getPreferredLanguageList(deprecated) getPreferredLanguageList(): Array<string> -Obtains the list of preferred languages. +Obtains the preferred language list. This API is supported since API version 8 and is deprecated since API version 9. You are advised to use [System.getPreferredLanguageList](#getpreferredlanguagelist9) instead. @@ -2362,15 +2373,15 @@ This API is supported since API version 8 and is deprecated since API version 9. | Type | Description | | ------------------- | --------- | -| Array<string> | List of preferred languages.| +| Array<string> | Preferred language list.| **Example** ```js - var preferredLanguageList = i18n.getPreferredLanguageList(); + let preferredLanguageList = I18n.getPreferredLanguageList(); // Obtain the preferred language list. ``` -## i18n.getFirstPreferredLanguage(deprecated) +## I18n.getFirstPreferredLanguage(deprecated) getFirstPreferredLanguage(): string @@ -2388,7 +2399,7 @@ This API is supported since API version 8 and is deprecated since API version 9. **Example** ```js - var firstPreferredLanguage = i18n.getFirstPreferredLanguage(); + let firstPreferredLanguage = I18n.getFirstPreferredLanguage(); ``` diff --git a/en/application-dev/reference/apis/js-apis-intl.md b/en/application-dev/reference/apis/js-apis-intl.md index e3cb7bbfd6..ac8d4d80a5 100644 --- a/en/application-dev/reference/apis/js-apis-intl.md +++ b/en/application-dev/reference/apis/js-apis-intl.md @@ -1,20 +1,20 @@ -# Internationalization – Intl +# @ohos.intl (Internationalization) -The Intl module provides basic I18N capabilities, such as time and date formatting, number formatting, and string sorting, through the standard I18N APIs defined in ECMA 402. - -The [I18N](js-apis-i18n.md) module provides enhanced I18N capabilities through supplementary APIs that are not defined in ECMA 402. It works with the Intl module to provide a complete suite of I18N capabilities. + The **intl** module provides basic i18n capabilities, such as time and date formatting, number formatting, and string sorting, through the standard i18n APIs defined in ECMA 402. +The [i18n](i18n-guidelines.md) module provides enhanced i18n capabilities through supplementary interfaces that are not defined in ECMA 402. It works with the intl module to provide a complete suite of i18n capabilities. > **NOTE** -> -> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +> - This module provides basic i18n capabilities, such as time and date formatting, number formatting, and string sorting, through the standard i18n interfaces defined in ECMA 402. For details about the enhanced i18n capabilities, see [i18n](js-apis-i18n.md). ## Modules to Import -``` +```js import Intl from '@ohos.intl'; ``` - +Importing an incorrect bundle can lead to unexpected API behavior. ## Locale @@ -23,16 +23,16 @@ import Intl from '@ohos.intl'; **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | --------------- | ------- | ---- | ---- | ---------------------------------------- | | language | string | Yes | No | Language associated with the locale, for example, **zh**. | | script | string | Yes | No | Script type of the language, for example, **Hans**. | | region | string | Yes | No | Region associated with the locale, for example, **CN**. | | baseName | string | Yes | No | Basic key information about the locale, which consists of the language, script, and region, for example, **zh-Hans-CN**. | | caseFirst | string | Yes | No | Whether case is taken into account for the locale's collation rules. The value can be **upper**, **lower**, or **false**.| -| calendar | string | Yes | No | Calendar for the locale. The value can be any of the following: **buddhist**, **chinese**, **coptic**, **dangi**, **ethioaa**, **ethiopic**, **gregory**, **hebrew**, **indian**, **islamic**, **islamic-umalqura**, **islamic-tbla**, **islamic-civil**, **islamic-rgsa**, **iso8601**, **japanese**, **persian**, **roc**, **islamicc**.| +| calendar | string | Yes | No | Calendar for the locale. The value can be any of the following: **buddhist**, **chinese**, **coptic**, **dangi**, **ethioaa**, **ethiopic**, **gregory**, **hebrew**, **indian**, **islamic**, **islamic-umalqura**, **islamic-tbla**, **islamic-civil**, **islamic-rgsa**, **iso8601**, **japanese**, **persian**, **roc**, or **islamicc**.| | collation | string | Yes | No | Rule for sorting regions. The value can be any of the following: **big5han**, **compat**, **dict**, **direct**, **ducet**, **eor**, **gb2312**, **phonebk**, **phonetic**, **pinyin**, **reformed**, **searchjl**, **stroke**, **trad**, **unihan**, **zhuyin**.| -| hourCycle | string | Yes | No | Time system for the locale. The value can be any of the following: **h12**, **h23**, **h11**, **h24**.| +| hourCycle | string | Yes | No | Time system for the locale. The value can be any of the following: **h12**, **h23**, **h11**, or **h24**.| | numberingSystem | string | Yes | No | Numbering system for the locale. The value can be any of the following: **adlm**, **ahom**, **arab**, **arabext**, **bali**, **beng**, **bhks**, **brah**, **cakm**, **cham**, **deva**, **diak**, **fullwide**, **gong**, **gonm**, **gujr**, **guru**, **hanidec**, **hmng**, **hmnp**, **java**, **kali**, **khmr**, **knda**, **lana**, **lanatham**, **laoo**, **latn**, **lepc**, **limb**, **mathbold**, **mathdbl**, **mathmono**, **mathsanb**, **mathsans**, **mlym**, **modi**, **mong**, **mroo**, **mtei**, **mymr**, **mymrshan**, **mymrtlng**, **newa**, **nkoo**, **olck**, **orya**, **osma**, **rohg**, **saur**, **segment**, **shrd**, **sind**, **sinh**, **sora**, **sund**, **takr**, **talu**, **tamldec**, **telu**, **thai**, **tibt**, **tirh**, **vaii**, **wara**, **wcho**.| | numeric | boolean | Yes | No | Whether to apply special collation rules for numeric characters. | @@ -41,13 +41,16 @@ import Intl from '@ohos.intl'; constructor() -Creates a Locale object. +Creates a **Locale** object. **System capability**: SystemCapability.Global.I18n **Example** - ``` - var locale = new Intl.Locale(); + ```js + // The default constructor uses the current system locale to create a Locale object. + let locale = new Intl.Locale() + // Return the current system locale. + let localeID = locale.toString() ``` @@ -55,20 +58,22 @@ Creates a Locale object. constructor(locale: string, options?: LocaleOptions) -Creates a Locale object. +Creates a **Locale** object. **System capability**: SystemCapability.Global.I18n **Parameters** -| Name | Type | Mandatory | Description | -| ------- | ------------- | ---- | ---------------------------- | -| locale | string | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [LocaleOptions](#localeoptions9) | No | Options for creating the **Locale** object. | +| Name | Type | Mandatory | Description | +| -------------------- | -------------------------------- | ---- | ---------------------------- | +| locale | string | Yes | A string containing locale information, including the language, optional script, and region. For details about the international standards and combination modes for the language, script, and country or region, see [intl Development](../../internationalization/intl-guidelines.md#setting-locale-information).| +| options9+ | [LocaleOptions](#localeoptions6) | No | Options for creating the **Locale** object. | **Example** - ``` - var locale = new Intl.Locale("zh-CN"); + ```js + // Create a Locale object named zh-CN. + let locale = new Intl.Locale("zh-CN") + let localeID = locale.toString() // localeID = "zh-CN" ``` @@ -76,20 +81,21 @@ Creates a Locale object. toString(): string -Converts locale information to a string. +Obtains the string representation of a **Locale** object. **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** | Type | Description | | ------ | ----------- | -| string | String containing locale information.| +| string | String representation of the **Locale** object.| **Example** - ``` - var locale = new Intl.Locale("zh-CN"); - locale.toString(); + ```js + // Create a Locale object named en-GB. + let locale = new Intl.Locale("en-GB"); + let localeID = locale.toString(); // localeID = "en-GB" ``` @@ -101,16 +107,25 @@ Maximizes information of the **Locale** object. If the script and locale informa **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** | Type | Description | | ----------------- | ---------- | | [Locale](#locale) | **Locale** object with the maximized information.| **Example** - ``` - var locale = new Intl.Locale("zh-CN"); - locale.maximize(); + ```js + // Create a Locale object named zh. + let locale = new Intl.Locale("zh"); + // Complete the script and region of the Locale object. + let maximizedLocale = locale.maximize(); + let localeID = maximizedLocale.toString(); // localeID = "zh-Hans-CN" + + // Create a Locale object named en-US. + locale = new Intl.Locale("en-US"); + // Complete the script of the Locale object. + maximizedLocale = locale.maximize(); + localeID = maximizedLocale.toString(); // localeID = "en-Latn-US" ``` @@ -122,30 +137,39 @@ Minimizes information of the **Locale** object. If the script and locale informa **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** | Type | Description | | ----------------- | ---------- | | [Locale](#locale) | **Locale** object with the minimized information.| **Example** - ``` - var locale = new Intl.Locale("zh-CN"); - locale.minimize(); + ```js + // Create a Locale object named zh-Hans-CN. + let locale = new Intl.Locale("zh-Hans-CN"); + // Remove the script and region of the Locale object. + let minimizedLocale = locale.minimize(); + let localeID = minimizedLocale.toString(); // localeID = "zh" + + // Create a Locale object named en-US. + locale = new Intl.Locale("en-US"); + // Remove the region of the Locale object. + minimizedLocale = locale.minimize(); + localeID = minimizedLocale.toString(); // localeID = "en" ``` -## LocaleOptions9+ +## LocaleOptions6+ Represents the locale options. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | --------------- | ------- | ---- | ---- | ---------------------------------------- | -| calendar | string | Yes | Yes | Calendar for the locale. The value can be any of the following: **buddhist**, **chinese**, **coptic**, **dangi**, **ethioaa**, **ethiopic**, **gregory**, **hebrew**, **indian**, **islamic**, **islamic-umalqura**, **islamic-tbla**, **islamic-civil**, **islamic-rgsa**, **iso8601**, **japanese**, **persian**, **roc**, **islamicc**.| -| collation | string | Yes | Yes | Collation rule. The value can be any of the following: **big5han**, **compat**, **dict**, **direct**, **ducet**, **emoji**, **eor**, **gb2312**, **phonebk**, **phonetic**, **pinyin**, **reformed**,**search**, **searchjl**, **standard**, **stroke**, **trad**, **unihan**, **zhuyin**.| -| hourCycle | string | Yes | Yes | Time system for the locale. The value can be any of the following: **h11**, **h12**, **h23**, **h24**.| +| calendar | string | Yes | Yes | Calendar for the locale. The value can be any of the following: **buddhist**, **chinese**, **coptic**, **dangi**, **ethioaa**, **ethiopic**, **gregory**, **hebrew**, **indian**, **islamic**, **islamic-umalqura**, **islamic-tbla**, **islamic-civil**, **islamic-rgsa**, **iso8601**, **japanese**, **persian**, **roc**, or **islamicc**.| +| collation | string | Yes | Yes | Collation rule. The value can be any of the following: **big5han**, **compat**, **dict**, **direct**, **ducet**, **emoji**, **eor**, **gb2312**, **phonebk**, **phonetic**, **pinyin**, **reformed**, **search**, **searchjl**, **standard**, **stroke**, **trad**, **unihan**, **zhuyin**.| +| hourCycle | string | Yes | Yes | Time system for the locale. The value can be any of the following: **h11**, **h12**, **h23**, or **h24**.| | numberingSystem | string | Yes | Yes | Numbering system for the locale. The value can be any of the following: **adlm**, **ahom**, **arab**, **arabext**, **bali**, **beng**, **bhks**, **brah**, **cakm**, **cham**, **deva**, **diak**, **fullwide**, **gong**, **gonm**, **gujr**, **guru**, **hanidec**, **hmng**, **hmnp**, **java**, **kali**, **khmr**, **knda**, **lana**, **lanatham**, **laoo**, **latn**, **lepc**, **limb**, **mathbold**, **mathdbl**, **mathmono**, **mathsanb**, **mathsans**, **mlym**, **modi**, **mong**, **mroo**, **mtei**, **mymr**, **mymrshan**, **mymrtlng**, **newa**, **nkoo**, **olck**, **orya**, **osma**, **rohg**, **saur**, **segment**, **shrd**, **sind**, **sinh**, **sora**, **sund**, **takr**, **talu**, **tamldec**, **telu**, **thai**, **tibt**, **tirh**, **vaii**, **wara**, **wcho**.| | numeric | boolean | Yes | Yes | Whether to use the 12-hour clock. | | caseFirst | string | Yes | Yes | Whether upper case or lower case is sorted first. The value can be **upper**, **lower**, or **false**.| @@ -163,8 +187,9 @@ Creates a **DateTimeOptions** object for the specified locale. **System capability**: SystemCapability.Global.I18n **Example** - ``` - var datefmt= new Intl.DateTimeFormat(); + ```js + // Use the current system locale to create a DateTimeFormat object. + let datefmt= new Intl.DateTimeFormat(); ``` @@ -178,20 +203,22 @@ Creates a **DateTimeOptions** object for the specified locale. **Parameters** -| Name | Type | Mandatory | Description | -| ------- | ----------------------------------- | ---- | ---------------------------- | -| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [DateTimeOptions](#datetimeoptions9) | No | Options for creating a **DateTimeFormat** object. | +| Name | Type | Mandatory | Description | +| -------------------- | ------------------------------------ | ---- | ---------------------------- | +| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| +| options9+ | [DateTimeOptions](#datetimeoptions6) | No | Options for creating a **DateTimeFormat** object. | **Example** - ``` - var datefmt= new Intl.DateTimeFormat("zh-CN", { dateStyle: 'full', timeStyle: 'medium' }); + ```js + // Use locale zh-CN to create a DateTimeFormat object. Set dateStyle to full and timeStyle to medium. + let datefmt= new Intl.DateTimeFormat("zh-CN", { dateStyle: 'full', timeStyle: 'medium' }); ``` **Example** - ``` - var datefmt= new Intl.DateTimeFormat(["ban", "zh"], { dateStyle: 'full', timeStyle: 'medium' }); + ```js + // Use the locale list ["ban", "zh"] to create a DateTimeFormat object. Because ban is an invalid locale ID, locale zh is used to create the DateTimeFormat object. + let datefmt= new Intl.DateTimeFormat(["ban", "zh"], { dateStyle: 'full', timeStyle: 'medium' }); ``` @@ -209,17 +236,22 @@ Formats the specified date and time. | ---- | ---- | ---- | ------- | | date | Date | Yes | Date and time to be formatted.| -**Return Value** +**Return value** | Type | Description | | ------ | ------------ | | string | A string containing the formatted date and time.| **Example** - ``` - var date = new Date(2021, 11, 17, 3, 24, 0); - var datefmt = new Intl.DateTimeFormat("en-GB"); - datefmt.format(date); + ```js + let date = new Date(2021, 11, 17, 3, 24, 0); + // Use locale en-GB to create a DateTimeFormat object. + let datefmt = new Intl.DateTimeFormat("en-GB"); + let formattedDate = datefmt.format(date); // formattedDate "17/12/2021" + + // Use locale en-GB to create a DateTimeFormat object. Set dateStyle to full and timeStyle to medium. + datefmt = new Intl.DateTimeFormat("en-GB", { dateStyle: 'full', timeStyle: 'medium' }); + formattedDate = datefmt.format(date); // formattedDate "Friday, 17 December 2021 at 03:24:00" ``` @@ -238,18 +270,19 @@ Formats the specified date range. | startDate | Date | Yes | Start date and time to be formatted.| | endDate | Date | Yes | End date and time to be formatted.| -**Return Value** +**Return value** | Type | Description | | ------ | -------------- | | string | A string containing the formatted date and time range.| **Example** - ``` - var startDate = new Date(2021, 11, 17, 3, 24, 0); - var endDate = new Date(2021, 11, 18, 3, 24, 0); - var datefmt = new Intl.DateTimeFormat("en-GB"); - datefmt.formatRange(startDate, endDate); + ```js + let startDate = new Date(2021, 11, 17, 3, 24, 0); + let endDate = new Date(2021, 11, 18, 3, 24, 0); + // Use locale en-GB to create a DateTimeFormat object. + let datefmt = new Intl.DateTimeFormat("en-GB"); + let formattedDateRange = datefmt.formatRange(startDate, endDate); // formattedDateRange = "17/12/2021-18/12/2021" ``` @@ -261,31 +294,34 @@ Obtains the formatting options for **DateTimeFormat** object. **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** -| Type | Description | -| ----------------------------------- | ----------------------------- | -| [DateTimeOptions](#datetimeoptions9) | Formatting options for **DateTimeFormat** objects.| +| Type | Description | +| ------------------------------------ | ----------------------------- | +| [DateTimeOptions](#datetimeoptions6) | Formatting options for **DateTimeFormat** objects.| **Example** - ``` - var datefmt = new Intl.DateTimeFormat("en-GB"); - datefmt.resolvedOptions(); + ```js + let datefmt = new Intl.DateTimeFormat("en-GB", { dateStyle: 'full', timeStyle: 'medium' }); + // Obtain the options of the DateTimeFormat object. + let options = datefmt.resolvedOptions(); + let dateStyle = options.dateStyle; // dateStyle = "full" + let timeStyle = options.timeStyle; // timeStyle = "medium" ``` -## DateTimeOptions9+ +## DateTimeOptions6+ Provides the options for the **DateTimeFormat** object. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | --------------- | ------- | ---- | ---- | ---------------------------------------- | | locale | string | Yes | No | Locale, for example, **zh-Hans-CN**. | | dateStyle | string | Yes | Yes | Date display format. The value can be **long**, **short**, **medium**, or **full**.| | timeStyle | string | Yes | Yes | Time display format. The value can be **long**, **short**, **medium**, or **full**.| -| hourCycle | string | Yes | Yes | Time system for the locale. The value can be any of the following: **h11**, **h12**, **h23**, **h24**.| +| hourCycle | string | Yes | Yes | Time system for the locale. The value can be any of the following: **h11**, **h12**, **h23**, or **h24**.| | timeZone | string | Yes | Yes | Time zone represented by a valid IANA time zone ID. | | numberingSystem | string | Yes | Yes | Numbering system for the locale. The value can be any of the following: **adlm**, **ahom**, **arab**, **arabext**, **bali**, **beng**, **bhks**, **brah**, **cakm**, **cham**, **deva**, **diak**, **fullwide**, **gong**, **gonm**, **gujr**, **guru**, **hanidec**, **hmng**, **hmnp**, **java**, **kali**, **khmr**, **knda**, **lana**, **lanatham**, **laoo**, **latn**, **lepc**, **limb**, **mathbold**, **mathdbl**, **mathmono**, **mathsanb**, **mathsans**, **mlym**, **modi**, **mong**, **mroo**, **mtei**, **mymr**, **mymrshan**, **mymrtlng**, **newa**, **nkoo**, **olck**, **orya**, **osma**, **rohg**, **saur**, **segment**, **shrd**, **sind**, **sinh**, **sora**, **sund**, **takr**, **talu**, **tamldec**, **telu**, **thai**, **tibt**, **tirh**, **vaii**, **wara**, **wcho**.| | hour12 | boolean | Yes | Yes | Whether to use the 12-hour clock. | @@ -315,8 +351,9 @@ Creates a **NumberFormat** object for the specified locale. **System capability**: SystemCapability.Global.I18n **Example** - ``` - var numfmt = new Intl.NumberFormat(); + ```js + // Use the current system locale to create a NumberFormat object. + let numfmt = new Intl.NumberFormat(); ``` @@ -328,15 +365,17 @@ Creates a **NumberFormat** object for the specified locale. **System capability**: SystemCapability.Global.I18n -Parameters -| Name | Type | Mandatory | Description | -| ------- | ------------------------------- | ---- | ---------------------------- | -| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [NumberOptions](#numberoptions9) | No | Options for creating a **NumberFormat** object. | +**Parameters** + +| Name | Type | Mandatory | Description | +| -------------------- | -------------------------------- | ---- | ---------------------------- | +| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| +| options9+ | [NumberOptions](#numberoptions6) | No | Options for creating a **NumberFormat** object. | **Example** - ``` - var numfmt = new Intl.NumberFormat("en-GB", {style:'decimal', notation:"scientific"}); + ```js + // Use locale en-GB to create a NumberFormat object. Set style to decimal and notation to scientific. + let numfmt = new Intl.NumberFormat("en-GB", {style:'decimal', notation:"scientific"}); ``` @@ -354,7 +393,7 @@ Formats a number. | ------ | ------ | ---- | ---- | | number | number | Yes | Number to be formatted.| -**Return Value** +**Return value** | Type | Description | | ------ | ---------- | @@ -362,9 +401,10 @@ Formats a number. **Example** - ``` - var numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"}); - numfmt.format(1223); + ```js + // Use locale list ["en-GB", "zh"] to create a NumberFormat object. Because en-GB is a valid locale ID, it is used to create the NumberFormat object. + let numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"}); + let formattedNumber = numfmt.format(1223); // formattedNumber = 1.223E3 ``` @@ -376,27 +416,30 @@ Obtains the options of the **NumberFormat** object. **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** -| Type | Description | -| ------------------------------- | --------------------------- | -| [NumberOptions](#numberoptions9) | Formatting options for **NumberFormat** objects.| +| Type | Description | +| -------------------------------- | --------------------------- | +| [NumberOptions](#numberoptions6) | Formatting options for **NumberFormat** objects.| **Example** - ``` - var numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"}); - numfmt.resolvedOptions(); + ```js + let numfmt = new Intl.NumberFormat(["en-GB", "zh"], {style:'decimal', notation:"scientific"}); + // Obtain the options of the NumberFormat object. + let options = numfmt.resolvedOptions(); + let style = options.style; // style = decimal + let notation = options.notation // notation = scientific ``` -## NumberOptions9+ +## NumberOptions6+ -Provides the device capability. +Defines the device capability. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | ------------------------ | ------- | ---- | ---- | ---------------------------------------- | | locale | string | Yes | No | Locale, for example, **zh-Hans-CN**. | | currency | string | Yes | Yes | Currency unit, for example, **EUR**, **CNY**, or **USD**. | @@ -426,13 +469,14 @@ Provides the device capability. constructor() -Creates a Collator object. +Creates a **Collator** object. **System capability**: SystemCapability.Global.I18n **Example** - ``` - var collator = new Intl.Collator(); + ```js + // Use the system locale to create a Collator object. + let collator = new Intl.Collator(); ``` @@ -440,20 +484,21 @@ Creates a Collator object. constructor(locale: string | Array<string>, options?: CollatorOptions) -Creates a Collator object. +Creates a **Collator** object. **System capability**: SystemCapability.Global.I18n **Parameters** -| Name | Type | Mandatory | Description | -| ------- | ----------------------------------- | ---- | ---------------------------- | -| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [CollatorOptions](#collatoroptions9) | No | Options for creating a **Collator** object. | +| Name | Type | Mandatory | Description | +| -------------------- | ------------------------------------ | ---- | ---------------------------- | +| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| +| options9+ | [CollatorOptions](#collatoroptions8) | No | Options for creating a **Collator** object. | **Example** - ``` - var collator = new Intl.Collator("zh-CN", {localeMatcher: "lookup", usage: "sort"}); + ```js + // Use locale zh-CN to create a Collator object. Set localeMatcher to lookup and usage to sort. + let collator = new Intl.Collator("zh-CN", {localeMatcher: "lookup", usage: "sort"}); ``` @@ -472,16 +517,18 @@ Compares two strings based on the sorting policy of the **Collator** object. | first | string | Yes | First string to compare. | | second | string | Yes | Second string to compare.| -**Return Value** +**Return value** | Type | Description | | ------ | ---------------------------------------- | | number | Comparison result. If the value is a negative number, the first string is before the second string. If the value of number is **0**, the first string is equal to the second string. If the value of number is a positive number, the first string is after the second string.| **Example** - ``` - var collator = new Intl.Collator("zh-Hans"); - collator.compare("first", "second"); + ```js + // Use locale en-GB to create a Collator object. + let collator = new Intl.Collator("en-GB"); + // Compare the sequence of the first and second strings. + let compareResult = collator.compare("first", "second"); // compareResult = -1 ``` @@ -493,31 +540,33 @@ Returns properties reflecting the locale and collation options of a **Collator** **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** -| Type | Description | -| ----------------------------------- | ----------------- | -| [CollatorOptions](#collatoroptions9) | Properties of the **Collator** object.| +| Type | Description | +| ------------------------------------ | ----------------- | +| [CollatorOptions](#collatoroptions8) | Properties of the **Collator** object.| **Example** - - ``` - var collator = new Intl.Collator("zh-Hans"); - var options = collator.resolvedOptions(); + ```js + let collator = new Intl.Collator("zh-Hans", { usage: 'sort', ignorePunctuation: true }); + // Obtain the options of the Collator object. + let options = collator.resolvedOptions(); + let usage = options.usage; // usage = "sort" + let ignorePunctuation = options.ignorePunctuation // ignorePunctuation = true ``` -## CollatorOptions9+ +## CollatorOptions8+ Represents the properties of a **Collator** object. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | ----------------- | ------- | ---- | ---- | ---------------------------------------- | | localeMatcher | string | Yes | Yes | Locale matching algorithm. The value can be **lookup** or **best fit**.| | usage | string | Yes | Yes | Whether the comparison is for sorting or for searching. The value can be **sort** or **search**. | -| sensitivity | string | Yes | Yes | Differences in the strings that lead to non-zero return values. The value can be **base**, **accent**, **case**, or **variant**.| +| sensitivity | string | Yes | Yes | Differences in the strings that lead to non-zero return values. The value can be **base**, **accent**, **case**, or **letiant**.| | ignorePunctuation | boolean | Yes | Yes | Whether punctuation is ignored. The value can be **true** or **false**. | | collation | string | Yes | Yes | Rule for sorting regions. The value can be any of the following: **big5han**, **compat**, **dict**, **direct**, **ducet**, **eor**, **gb2312**, **phonebk**, **phonetic**, **pinyin**, **reformed**, **searchjl**, **stroke**, **trad**, **unihan**, **zhuyin**.| | numeric | boolean | Yes | Yes | Whether numeric collation is used. The value can be **true** or **false**. | @@ -531,13 +580,14 @@ Represents the properties of a **Collator** object. constructor() -Create a **PluralRules** object. +Creates a **PluralRules** object to obtain the singular-plural type of numbers. **System capability**: SystemCapability.Global.I18n **Example** - ``` - var pluralRules = new Intl.PluralRules(); + ```js + // Use the system locale to create a PluralRules object. + let pluralRules = new Intl.PluralRules(); ``` @@ -545,19 +595,21 @@ Create a **PluralRules** object. constructor(locale: string | Array<string>, options?: PluralRulesOptions) -Create a **PluralRules** object. +Creates a **PluralRules** object to obtain the singular-plural type of numbers. **System capability**: SystemCapability.Global.I18n -Parameters -| Name | Type | Mandatory | Description | -| ------- | ---------------------------------------- | ---- | ---------------------------- | -| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [PluralRulesOptions](#pluralrulesoptions9) | No | Options for creating a **PluralRules** object. | +**Parameters** + +| Name | Type | Mandatory | Description | +| -------------------- | ---------------------------------------- | ---- | ---------------------------- | +| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| +| options9+ | [PluralRulesOptions](#pluralrulesoptions8) | No | Options for creating a **PluralRules** object. | **Example** - ``` - var pluralRules= new Intl.PluralRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"}); + ```js + // Use locale zh-CN to create a PluralRules object. Set localeMatcher to lookup and type to cardinal. + let pluralRules= new Intl.PluralRules("zh-CN", {"localeMatcher": "lookup", "type": "cardinal"}); ``` @@ -575,26 +627,33 @@ Obtains a string that represents the singular-plural type of the specified numbe | ---- | ------ | ---- | ------------ | | n | number | Yes | Number for which the singular-plural type is to be obtained.| -**Return Value** +**Return value** | Type | Description | | ------ | ---------------------------------------- | | string | Singular-plural type. The value can be any of the following: **one**, **two**, **few**, **many**, **others**.| **Example** - ``` - var pluralRules = new Intl.PluralRules("zh-Hans"); - pluralRules.select(1); + ```js + // Use locale zh-Hans to create a PluralRules object. + let zhPluralRules = new Intl.PluralRules("zh-Hans"); + // Determine the singular-plural type corresponding to number 1 in locale zh-Hans. + let plural = zhPluralRules.select(1); // plural = other + + // Use locale en-US to create a PluralRules object. + let enPluralRules = new Intl.PluralRules("en-US"); + // Determine the singular-plural type corresponding to number 1 in locale en-US. + plural = enPluralRules.select(1); // plural = one ``` -## PluralRulesOptions9+ +## PluralRulesOptions8+ Represents the properties of a **PluralRules** object. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | ------------------------ | ------ | ---- | ---- | ---------------------------------------- | | localeMatcher | string | Yes | Yes | Locale matching algorithm. The value can be **lookup** or **best fit**.| | type | string | Yes | Yes | Sorting type. The value can be **cardinal** or **ordinal**. | @@ -617,8 +676,9 @@ Creates a **RelativeTimeFormat** object. **System capability**: SystemCapability.Global.I18n **Example** - ``` - var relativetimefmt = new Intl.RelativeTimeFormat(); + ```js + // Use the system locale to create a RelativeTimeFormat object. + let relativetimefmt = new Intl.RelativeTimeFormat(); ``` @@ -632,14 +692,15 @@ Creates a **RelativeTimeFormat** object. **Parameters** -| Name | Type | Mandatory | Description | -| ------- | ---------------------------------------- | ---- | ---------------------------- | -| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| -| options9+ | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions9) | No | Options for creating a **RelativeTimeFormat** object. | +| Name | Type | Mandatory | Description | +| -------------------- | ---------------------------------------- | ---- | ---------------------------- | +| locale | string \| Array<string> | Yes | A string containing locale information, including the language, optional script, and region.| +| options9+ | [RelativeTimeFormatInputOptions](#relativetimeformatinputoptions8) | No | Options for creating a **RelativeTimeFormat** object. | **Example** - ``` - var relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {"localeMatcher": "lookup", "numeric": "always", "style": "long"}); + ```js + // Use locale zh-CN to create a RelativeTimeFormat object. Set localeMatcher to lookup, numeric to always, and style to long. + let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {"localeMatcher": "lookup", "numeric": "always", "style": "long"}); ``` @@ -658,16 +719,18 @@ Formats the value and unit based on the specified locale and formatting options. | value | number | Yes | Value to format. | | unit | string | Yes | Unit to format. The value can be any of the following: **year**, **quarter**, **month**, **week**, **day**, **hour**, **minute**, **second**.| -**Return Value** +**Return value** | Type | Description | | ------ | ---------- | | string | Relative time after formatting.| **Example** - ``` - var relativetimefmt = new Intl.RelativeTimeFormat("zh-CN"); - relativetimefmt.format(3, "quarter") + ```js + // Use locale zh-CN to create a RelativeTimeFormat object. + let relativetimefmt = new Intl.RelativeTimeFormat("zh-CN"); + // Obtain the localized representation (in unit of quarter) of number 3 in locale zh-CN. + let formatResult = relativetimefmt.format(3, "quarter"); // formatResult = "3 quarters later" ``` @@ -675,7 +738,7 @@ Formats the value and unit based on the specified locale and formatting options. formatToParts(value: number, unit: string): Array<object> -Returns an array of RelativeTimeFormat objects in parts for locale-aware formatting. +Obtains an array of RelativeTimeFormat objects in parts for locale-aware formatting. **System capability**: SystemCapability.Global.I18n @@ -686,16 +749,17 @@ Returns an array of RelativeTimeFormat objects in parts for locale-aware formatt | value | number | Yes | Value to format. | | unit | string | Yes | Unit to format. The value can be any of the following: **year**, **quarter**, **month**, **week**, **day**, **hour**, **minute**, **second**.| -**Return Value** +**Return value** | Type | Description | | ------------------- | --------------------------- | | Array<object> | An array of **RelativeTimeFormat** objects in parts.| **Example** - ``` - var relativetimefmt = new Intl.RelativeTimeFormat("en", {"numeric": "auto"}); - var parts = relativetimefmt.format(10, "seconds"); + ```js + // Use locale en to create a RelativeTimeFormat object. Set numeric to auto. + let relativetimefmt = new Intl.RelativeTimeFormat("en", {"numeric": "auto"}); + let parts = relativetimefmt.formatToParts(10, "seconds"); // parts = [ {type: "literal", value: "in"}, {type: "integer", value: 10, unit: "second"}, {type: "literal", value: "seconds"} ] ``` @@ -707,39 +771,42 @@ Obtains the formatting options for **RelativeTimeFormat** objects. **System capability**: SystemCapability.Global.I18n -**Return Value** +**Return value** | Type | Description | | ---------------------------------------- | --------------------------------- | | [RelativeTimeFormatResolvedOptions](#relativetimeformatresolvedoptions8) | Formatting options for **RelativeTimeFormat** objects.| **Example** - ``` - var relativetimefmt= new Intl.RelativeTimeFormat("en-GB"); - relativetimefmt.resolvedOptions(); + ```js + // Use locale en-GB to create a RelativeTimeFormat object. + let relativetimefmt= new Intl.RelativeTimeFormat("en-GB", { style: "short" }); + // Obtain the options of the RelativeTimeFormat object. + let options = relativetimefmt.resolvedOptions(); + let style = options.style; // style = "short" ``` -## RelativeTimeFormatInputOptions9+ +## RelativeTimeFormatInputOptions8+ Represents the properties of a **RelativeTimeFormat** object. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | ------------- | ------ | ---- | ---- | ---------------------------------------- | | localeMatcher | string | Yes | Yes | Locale matching algorithm. The value can be **lookup** or **best fit**.| | numeric | string | Yes | Yes | Format of the output message. The value can be **always** or **auto**. | | style | string | Yes | Yes | Length of an internationalized message. The value can be **long**, **short**, or **narrow**.| -## RelativeTimeFormatResolvedOptions8+
        +## RelativeTimeFormatResolvedOptions8+ Represents the properties of a **RelativeTimeFormat** object. **System capability**: SystemCapability.Global.I18n -| Name | Type | Readable | Writable | Description | +| Name | Type | Readable | Writable | Description | | --------------- | ------ | ---- | ---- | ---------------------------------------- | | locale | string | Yes | Yes | A string containing locale information, including the language, optional script, and region. | | numeric | string | Yes | Yes | Format of the output message. The value can be **always** or **auto**. | diff --git a/en/application-dev/reference/errorcodes/errorcode-i18n.md b/en/application-dev/reference/errorcodes/errorcode-i18n.md index 71555203e6..8a13922864 100644 --- a/en/application-dev/reference/errorcodes/errorcode-i18n.md +++ b/en/application-dev/reference/errorcodes/errorcode-i18n.md @@ -1,4 +1,4 @@ -# I18N Error Codes +# i18n Error Codes ## 890001 Incorrect Parameter Type -- GitLab From 2a806cb55f6e658057abf6894c74563205a20bdc Mon Sep 17 00:00:00 2001 From: shawn_he Date: Tue, 17 Jan 2023 11:29:47 +0800 Subject: [PATCH 289/383] update doc Signed-off-by: shawn_he --- en/application-dev/device/inputdevice-guidelines.md | 6 +++--- en/application-dev/reference/apis/js-apis-pointer.md | 10 +++++++--- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/en/application-dev/device/inputdevice-guidelines.md b/en/application-dev/device/inputdevice-guidelines.md index d29d1ae340..da6eef71d7 100644 --- a/en/application-dev/device/inputdevice-guidelines.md +++ b/en/application-dev/device/inputdevice-guidelines.md @@ -16,8 +16,8 @@ The following table lists the common APIs for input device management. For detai | Instance| API | Description| | ----------- | ------------------------------------------------------------ | -------------------------- | -| inputDevice | function getDeviceList(callback: AsyncCallback\>): void; | Obtains the list of input devices.| -| inputDevice | function getKeyboardType(deviceId: number, callback: AsyncCallback\): void; | Obtains the keyboard type of the input device.| +| inputDevice | function getDeviceList(): Promise\>; | Obtains the list of input devices.| +| inputDevice | function getKeyboardType(deviceId: number): Promise\; | Obtains the keyboard type of the input device.| | inputDevice | function on(type: "change", listener: Callback\): void; | Enables listening for device hot swap events.| | inputDevice | function off(type: "change", listener?: Callback\): void; | Disables listening for device hot swap events.| @@ -51,7 +51,7 @@ try { // 2. Listen for device hot swap events. inputDevice.on("change", (data) => { console.log(`Device event info: ${JSON.stringify(data)}`); - inputDevice.getKeyboardType(data.deviceId, (error, type) => { + inputDevice.getKeyboardType(data.deviceId).then((type) => { console.log("The keyboard type is: " + type); if (type === inputDevice.KeyboardType.ALPHABETIC_KEYBOARD && data.type == 'add') { // The physical keyboard is inserted. diff --git a/en/application-dev/reference/apis/js-apis-pointer.md b/en/application-dev/reference/apis/js-apis-pointer.md index 2435d0a397..fc74447111 100644 --- a/en/application-dev/reference/apis/js-apis-pointer.md +++ b/en/application-dev/reference/apis/js-apis-pointer.md @@ -121,9 +121,13 @@ Checks the visible status of the mouse pointer. This API uses a promise to retur **Example** ```js -pointer.isPointerVisible().then((visible) => { - console.log(`Get pointer visible success, visible: ${JSON.stringify(visible)}`); -}); +try { + pointer.isPointerVisible().then((visible) => { + console.log(`Get pointer visible success, visible: ${JSON.stringify(visible)}`); + }); +} catch (error) { + console.log(`Get pointer visible failed, error: ${JSON.stringify(error, [`code`, `message`])}`); +} ``` ## pointer.setPointerSpeed9+ -- GitLab From 75d7cded0ded83cc05c8ecf1e9e843d3b07f9d8b Mon Sep 17 00:00:00 2001 From: hanfeng Date: Tue, 17 Jan 2023 03:32:14 +0000 Subject: [PATCH 290/383] har doc Signed-off-by: hanfeng --- zh-cn/application-dev/quick-start/har-structure.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zh-cn/application-dev/quick-start/har-structure.md b/zh-cn/application-dev/quick-start/har-structure.md index 34a14a5b5a..6bd6ad0d4f 100644 --- a/zh-cn/application-dev/quick-start/har-structure.md +++ b/zh-cn/application-dev/quick-start/har-structure.md @@ -1,10 +1,10 @@ # HAR包结构 -HAR(Harmony Ability Resources)包用于实现多个模块或多个工程间的代码共享。HAR包不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。 +HAR(OpenHarmony Archive)包用于实现多个模块或多个工程间的代码共享。HAR包不同于HAP,不能独立安装运行在设备上,只能作为应用模块的依赖项被引用。 HAR包对应DevEco Studio工程中的“Library”类型的[Module](https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/ohos-adding-deleting-module-0000001218760594-V3)。 -OpenHarmony的HAR包复用标准的[npm包](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-development-npm-package-0000001222578434)发布方式,会打包成tar包(后缀为.tgz)。打包后的HAR包中包含源代码、资源文件、module.json文件(Stage模型)或config.json文件(FA模型)等。 +OpenHarmony的[HAR包](https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ohos-development-npm-package-0000001222578434),是OpenHarmony静态共享包,可以包含代码、C++库、资源和module.json文件(Stage模型)或config.json文件(FA模型)等。 -- GitLab From 9158e82ff3f7bb8348709bde15e8ad5fa5e87f0e Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 17 Jan 2023 10:45:49 +0800 Subject: [PATCH 291/383] update docs Signed-off-by: Annie_wang --- .../reference/apis/js-apis-cert.md | 4 ++-- .../apis/js-apis-data-dataSharePredicates.md | 24 +++++++++---------- .../apis/js-apis-distributedKVStore.md | 4 ++-- .../security/permission-list.md | 22 ++++++++--------- 4 files changed, 27 insertions(+), 27 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-cert.md b/en/application-dev/reference/apis/js-apis-cert.md index 50a40cdf15..dc506245c6 100644 --- a/en/application-dev/reference/apis/js-apis-cert.md +++ b/en/application-dev/reference/apis/js-apis-cert.md @@ -1861,7 +1861,7 @@ Provides APIs for certificate chain validator operations. validate(certChain : CertChainData, callback : AsyncCallback\) : void Validates the X.509 certificate chain. This API uses an asynchronous callback to return the result. -The certificate chain validator does not verify the certificate validity period because the system time on the device is untrusted. To check the validity period of a certificate, use the [checkValidityWithDate()](#checkvaliditywithdate) API of the **X509Cert** class. For details, see [Certificate Specifications](./../security/cert-overview.md#certificate-specifications). +The certificate chain validator does not verify the certificate validity period because the system time on the device is untrusted. To check the validity period of a certificate, use the [checkValidityWithDate()](#checkvaliditywithdate) API of the **X509Cert** class. For details, see [Certificate Specifications](../../security/cert-overview.md#certificate-specifications). **System capability**: SystemCapability.Security.Cert @@ -1903,7 +1903,7 @@ validator.validate(certChainData, function (error, data) { validate(certChain : CertChainData) : Promise\ Validates the X.509 certificate chain. This API uses a promise to return the result. -The certificate chain validator does not verify the certificate validity period because the system time on the device is untrusted. To check the validity period of a certificate, use the [checkValidityWithDate()](#checkvaliditywithdate) API of the **X509Cert** class. For details, see [Certificate Specifications](./../security/cert-overview.md#certificate-specifications). +The certificate chain validator does not verify the certificate validity period because the system time on the device is untrusted. To check the validity period of a certificate, use the [checkValidityWithDate()](#checkvaliditywithdate) API of the **X509Cert** class. For details, see [Certificate Specifications](../../security/cert-overview.md#certificate-specifications). **System capability**: SystemCapability.Security.Cert diff --git a/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md index 7ce57c59a6..78d896c54a 100644 --- a/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md +++ b/en/application-dev/reference/apis/js-apis-data-dataSharePredicates.md @@ -35,7 +35,7 @@ Currently, only the relational database (RDB) and key-value database (KVDB, sche | Name| Type | Mandatory| Description | | ------ | --------------------------------------------------- | ---- | ---------------------- | | field | string | Yes | Column name in the database table. | -| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| +| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.| **Return value** @@ -65,7 +65,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name| Type | Mandatory| Description | | ------ | --------------------------------------------------- | ---- | ---------------------- | | field | string | Yes | Column name in the database table. | -| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| +| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.| **Return value** @@ -439,8 +439,8 @@ Currently, only the RDB supports this **DataSharePredicates** object. | Name| Type | Mandatory| Description | | ------ | --------------------------------------------------- | ---- | ------------------------ | | field | string | Yes | Column name in the database table. | -| low | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The lowest value of the range.| -| high | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The highest value of the range.| +| low | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | The lowest value of the range.| +| high | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | The highest value of the range.| **Return value** @@ -470,8 +470,8 @@ Currently, only the RDB supports this **DataSharePredicates** object. | Name| Type | Mandatory| Description | | ------ | --------------------------------------------------- | ---- | ------------------------ | | field | string | Yes | Column name in the database table. | -| low | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The lowest value of the range.| -| high | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | The highest value of the range.| +| low | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | The lowest value of the range.| +| high | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | The highest value of the range.| **Return value** @@ -501,7 +501,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name | Type | Mandatory| Description | | ------- | --------- | ---- | ---------------------- | | field | string | Yes | Column name in the database table. | -| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| +| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.| **Return value** @@ -531,7 +531,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name| Type | Mandatory| Description | | ------ | --------------------------------------------------- | ---- | ---------------------- | | field | string | Yes | Column name in the database table. | -| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| +| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.| **Return value** @@ -561,7 +561,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name | Type | Mandatory| Description | | ------- | --------- | ---- | ---------------------- | | field | string | Yes | Column name in the database table. | -| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| +| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.| **Return value** @@ -591,7 +591,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name | Type | Mandatory| Description | | ------- | --------- | ---- | ---------------------- | | field | string | Yes | Column name in the database table. | -| value | [ValueType](js-apis-data-ValuesBucket.md#valuetype) | Yes | Value to match.| +| value | [ValueType](js-apis-data-valuesBucket.md#valuetype) | Yes | Value to match.| **Return value** @@ -790,7 +790,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name | Type | Mandatory| Description | | ------- | ---------------- | ---- | --------------------------------------- | | field | string | Yes| Column name in the database table. | -| value | Array<[ValueType](js-apis-data-ValuesBucket.md#valuetype)> | Yes | Array of the values to match.| +| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | Yes | Array of the values to match.| **Return value** @@ -820,7 +820,7 @@ Currently, only the RDB and KVDB (schema) support this **DataSharePredicates** o | Name | Type | Mandatory| Description | | ------- | ---------------- | ---- | --------------------------------------- | | field | string | Yes | Column name in the database table. | -| value | Array<[ValueType](js-apis-data-ValuesBucket.md#valuetype)> | Yes | Array of the values to match.| +| value | Array<[ValueType](js-apis-data-valuesBucket.md#valuetype)> | Yes | Array of the values to match.| **Return value** diff --git a/en/application-dev/reference/apis/js-apis-distributedKVStore.md b/en/application-dev/reference/apis/js-apis-distributedKVStore.md index e626dabb38..9c3e0e6c94 100644 --- a/en/application-dev/reference/apis/js-apis-distributedKVStore.md +++ b/en/application-dev/reference/apis/js-apis-distributedKVStore.md @@ -2395,7 +2395,7 @@ Writes data to this single KV store. This API uses an asynchronous callback to r | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------ | -| value | Array<[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)> | Yes | Data to write.| +| value | Array<[ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket)> | Yes | Data to write.| | callback | AsyncCallback<void> | Yes | Callback invoked to return the result. | **Error codes** @@ -2447,7 +2447,7 @@ Write data to this KV store. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ------ | ------------------------------------------------------------ | ---- | ------------------ | -| value | Array<[ValuesBucket](js-apis-data-ValuesBucket.md#valuesbucket)> | Yes | Data to write. | +| value | Array<[ValuesBucket](js-apis-data-valuesBucket.md#valuesbucket)> | Yes | Data to write. | **Return value** diff --git a/en/application-dev/security/permission-list.md b/en/application-dev/security/permission-list.md index ab9554fd7f..073b31fc65 100644 --- a/en/application-dev/security/permission-list.md +++ b/en/application-dev/security/permission-list.md @@ -186,7 +186,7 @@ Allows an application to publish sticky common events. ## ohos.permission.SYSTEM_FLOAT_WINDOW -Allows an application to be displayed in a floating window on top of other apps. +Allows an application to be displayed in a floating window on top of other applications. **Permission level**: system_basic @@ -406,7 +406,7 @@ Allows an application to call the API for restoring factory settings. ## ohos.permission.GRANT_SENSITIVE_PERMISSIONS -Allows an application to grant sensitive permissions to other apps. +Allows an application to grant sensitive permissions to other applications. **Permission level**: system_core @@ -416,7 +416,7 @@ Allows an application to grant sensitive permissions to other apps. ## ohos.permission.REVOKE_SENSITIVE_PERMISSIONS -Allows an application to revoke sensitive permissions granted to other apps. +Allows an application to revoke sensitive permissions granted to other applications. **Permission level**: system_core @@ -426,7 +426,7 @@ Allows an application to revoke sensitive permissions granted to other apps. ## ohos.permission.GET_SENSITIVE_PERMISSIONS -Allows an application to obtain the sensitive permissions that have been granted to other apps. +Allows an application to obtain the sensitive permissions that have been granted to other applications. **Permission level**: system_core @@ -436,7 +436,7 @@ Allows an application to obtain the sensitive permissions that have been granted ## ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS_EXTENSION -Allows an application to set the attributes of apps of other users. +Allows an application to set the attributes of applications of other users. **Permission level**: system_core @@ -506,7 +506,7 @@ Allows an application to install and uninstall other applications. ## ohos.permission.MANAGE_SHORTCUTS -Allows an application to query and start shortcuts of other apps. +Allows an application to query and start shortcuts of other applications. **Permission level**: system_core @@ -546,7 +546,7 @@ Allows an application to start Feature abilities in the background. ## ohos.permission.BUNDLE_ACTIVE_INFO -Allows an application to obtain how long other apps have been running in the foreground or background. +Allows an application to obtain how long other applications have been running in the foreground or background. **Permission level**: system_basic @@ -606,7 +606,7 @@ Allows an application to use agent-powered reminders. ## ohos.permission.CONTROL_TASK_SYNC_ANIMATOR -Allows apps to use sync task animations. +Allows applications to use sync task animations. **Permission level**: system_core @@ -616,7 +616,7 @@ Allows apps to use sync task animations. ## ohos.permission.INPUT_MONITORING -Allows an application to listen for input events. Only the system signature apps can apply for this permission. +Allows an application to listen for input events. Only the system signed applications can apply for this permission. **Permission level**: system_core @@ -1216,7 +1216,7 @@ Allows an application to read the health data of the user. ## ohos.permission.GET_DEFAULT_APPLICATION -Allows an application to query default apps. +Allows an application to query default applications. **Permission level**: system_core @@ -1226,7 +1226,7 @@ Allows an application to query default apps. ## ohos.permission.SET_DEFAULT_APPLICATION -Allows an application to set and reset default apps. +Allows an application to set and reset default applications. **Permission level**: system_core -- GitLab From 98ed060d3eed1bdaf6515959bd06ffd37e0f33be Mon Sep 17 00:00:00 2001 From: x30034819 Date: Tue, 17 Jan 2023 15:47:30 +0800 Subject: [PATCH 292/383] avplayer avrecorder Signed-off-by: x30034819 Signed-off-by: x30034819 Change-Id: Ie57921e4553b6071e7b2357dfb8ea33ba1a45cff --- zh-cn/application-dev/media/avrecorder.md | 6 ++++-- zh-cn/application-dev/reference/apis/js-apis-media.md | 8 ++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/media/avrecorder.md b/zh-cn/application-dev/media/avrecorder.md index 46399704ae..85c5d6081b 100644 --- a/zh-cn/application-dev/media/avrecorder.md +++ b/zh-cn/application-dev/media/avrecorder.md @@ -20,7 +20,9 @@ ## 约束与限制 -开发者在进行录制功能开发前,需要先对所开发的应用配置麦克风权限(ohos.permission.MICROPHONE)和相机权限(ohos.permission.CAMERA),权限配置相关内容可参考:[访问控制权限申请指导](../security/accesstoken-guidelines.md) +开发者在进行录制功能开发前,需要先对所开发的应用配置相应权限。涉及音频录制,需要获取麦克风权限(ohos.permission.MICROPHONE),权限配置相关内容可参考:[访问控制权限申请指导](../security/accesstoken-guidelines.md)。 + +使用相机进行视频录制还需要与相机模块配合,接口使用以及权限获取详见[相机管理](../reference/apis/js-apis-camera.md)。 ## 开发指导 @@ -485,4 +487,4 @@ export class VideoRecorderDemo { 音视频录制APP案例包含:创建实例、设置录制参数、获取输入surface、开始录制、暂停录制、恢复录制、停止录制、释放资源等流程。 -详细代码可参考:[AVRecorderDemo]([multimedia_player_framework: Implementation of media playback and recording | 媒体播放和录制功能实现 - Gitee.com](https://gitee.com/openharmony/multimedia_player_framework/tree/master/test/appdemo/AVRecorderDemo)) +详细代码可参考:[AVRecorderDemo]([multimedia_player_framework: Implementation of media playback and recording | 媒体播放和录制功能实现 - Gitee.com](https://gitee.com/openharmony/multimedia_player_framework/tree/master/test/appdemo/AVRecorderDemo)) \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-media.md b/zh-cn/application-dev/reference/apis/js-apis-media.md index a576296a31..8f4c2dece5 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-media.md +++ b/zh-cn/application-dev/reference/apis/js-apis-media.md @@ -1692,7 +1692,9 @@ prepare(config: AVRecorderConfig, callback: AsyncCallback\): void **需要权限:** ohos.permission.MICROPHONE -不涉及音频录制时,可以不需要获取ohos.permission.MICROPHONE权限。涉及相机视频录制则需要额外获取相机权限ohos.permission.CAMERA。 +不涉及音频录制时,可以不需要获取ohos.permission.MICROPHONE权限。 + +使用相机视频录制还需要与相机模块配合,权限获取以及接口使用详见[相机管理](js-apis-camera.md)。 **系统能力:** SystemCapability.Multimedia.Media.AVRecorder @@ -1755,7 +1757,9 @@ prepare(config: AVRecorderConfig): Promise\ **需要权限:** ohos.permission.MICROPHONE -不涉及音频录制时,可以不需要获ohos.permission.MICROPHONE权限。涉及相机视频录制则需要额外获取相机权限ohos.permission.CAMERA。 +不涉及音频录制时,可以不需要获ohos.permission.MICROPHONE权限。 + +使用相机视频录制还需要与相机模块配合,权限获取以及接口使用详见[相机管理](js-apis-camera.md)。 **系统能力:** SystemCapability.Multimedia.Media.AVRecorder -- GitLab From 146279ccb0b644a89df178bcbd9787ac025b085d Mon Sep 17 00:00:00 2001 From: Annie_wang Date: Tue, 17 Jan 2023 15:12:46 +0800 Subject: [PATCH 293/383] update docs Signed-off-by: Annie_wang --- .../security/cert-guidelines.md | 250 ++++++++---------- .../security/cryptoFramework-guidelines.md | 50 ++-- .../security/cryptoFramework-overview.md | 134 +++++----- .../security/huks-guidelines.md | 6 +- .../security/userauth-overview.md | 2 +- 5 files changed, 199 insertions(+), 243 deletions(-) diff --git a/en/application-dev/security/cert-guidelines.md b/en/application-dev/security/cert-guidelines.md index 9ba67b2675..ed0e3e39a7 100644 --- a/en/application-dev/security/cert-guidelines.md +++ b/en/application-dev/security/cert-guidelines.md @@ -19,21 +19,20 @@ Typical operations involve the following: **Available APIs** +For details about the APIs, see [Certificate](../reference/apis/js-apis-cert.md). The table below describes the APIs used in this guide. | Instance | API | Description | | --------------- | ------------------------------------------------------------ | -------------------------------------------- | -| cryptoCert | createX509Cert(inStream : EncodingBlob, callback : AsyncCallback) : void | Parses certificate data to create an **X509Cert** instance. This API uses an asynchronous callback to return the result.| -| cryptoCert | createX509Cert(inStream : EncodingBlob) : Promise | Parses certificate data to create an **X509Cert** instance. This API uses a promise to return the result. | -| X509Cert | verify(key : cryptoFramework.PubKey, callback : AsyncCallback) : void | Verifies the certificate signature. This API uses an asynchronous callback to return the result. | -| X509Cert | verify(key : cryptoFramework.PubKey) : Promise | Verifies the certificate signature. This API uses a promise to return the result. | -| X509Cert | getEncoded(callback : AsyncCallback) : void | Obtains serialized certificate data. This API uses an asynchronous callback to return the result. | -| X509Cert | getEncoded() : Promise | Obtains serialized certificate data. This API uses a promise to return the result. | -| X509Cert | getPublicKey(callback : AsyncCallback) : void | Obtains the certificate public key. This API uses an asynchronous callback to return the result. | -| X509Cert | getPublicKey() : Promise | Obtains the certificate public key. This API uses a promise to return the result. | -| X509Cert | checkValidityWithDate(date: string, callback : AsyncCallback) : void | Verifies the certificate validity period. This API uses an asynchronous callback to return the result. | -| X509Cert | checkValidityWithDate(date: string) : Promise | Verifies the certificate validity period. This API uses a promise to return the result. | +| cryptoCert | createX509Cert(inStream : EncodingBlob, callback : AsyncCallback\) : void | Parses certificate data to create an **X509Cert** instance. This API uses an asynchronous callback to return the result.| +| cryptoCert | createX509Cert(inStream : EncodingBlob) : Promise\ | Parses certificate data to create an **X509Cert** instance. This API uses a promise to return the result. | +| X509Cert | verify(key : cryptoFramework.PubKey, callback : AsyncCallback\) : void | Verifies the certificate signature. This API uses an asynchronous callback to return the result. | +| X509Cert | verify(key : cryptoFramework.PubKey) : Promise\ | Verifies the certificate signature. This API uses a promise to return the result. | +| X509Cert | getEncoded(callback : AsyncCallback\) : void | Obtains serialized certificate data. This API uses an asynchronous callback to return the result. | +| X509Cert | getEncoded() : Promise\ | Obtains serialized certificate data. This API uses a promise to return the result. | +| X509Cert | getPublicKey() : cryptoFramework.PubKey | Obtains the certificate public key. | +| X509Cert | checkValidityWithDate(date: string) : void | Checks the certificate validity period. | | X509Cert | getVersion() : number | Obtains the certificate version. | | X509Cert | getSerialNumber() : number | Obtains the certificate serial number. | | X509Cert | getIssuerName() : DataBlob | Obtains the certificate issuer. | @@ -72,7 +71,7 @@ let certData = "-----BEGIN CERTIFICATE-----\n" + "I1Lwu6in1ruflZhzseWulXwcITf3bm/Y5X1g1XFWQUH\n" + "-----END CERTIFICATE-----\n"; -// Convert the string into a Uint8Array. +// Convert the certificate data form a string to a Uint8Array.. function stringToUint8Array(str) { var arr = []; for (var i = 0, j = str.length; i < j; i++) { @@ -94,11 +93,11 @@ function certSample() { cryptoCert.createX509Cert(encodingBlob, function (err, x509Cert) { if (err != null) { // Failed to create the X509Cert instance. - Console.log("createX509Cert failed, errCode: " + err.code + ", errMsg: " + err.message); + console.log("createX509Cert failed, errCode: " + err.code + ", errMsg: " + err.message); return; } // The X509Cert instance is successfully created. - Console.log("createX509Cert success"); + console.log("createX509Cert success"); // Obtain the certificate version. let version = x509Cert.getVersion(); @@ -107,51 +106,41 @@ function certSample() { x509Cert.getEncoded(function (err, data) { if (err != null) { // Failed to obtain the serialized data of the certificate. - Console.log("getEncoded failed, errCode: " + err.code + ", errMsg: " + err.message); + console.log("getEncoded failed, errCode: " + err.code + ", errMsg: " + err.message); } else { // The serialized data of the certificate is successfully obtained. - Console.log("getEncoded success"); + console.log("getEncoded success"); } }); - - // Obtain the certificate public key. - x509Cert.getPublicKey(function (err, pubKey) { - if (err != null) { - // Failed to obtain the certificate public key. - Console.log("getPublicKey failed, errCode: " + err.code + ", errMsg: " + err.message); - } else { - // The certificate public key is successfully obtained. - Console.log("getPublicKey success"); - } - }); - + // Obtain the public key object using the getPublicKey() of the upper-level certificate object or this (self-signed) certificate object. let pubKey = null; - + try { + pubKey = x509Cert.getPublicKey(); + } catch (error) { + console.log("getPublicKey failed, errCode: " + error.code + ", errMsg: " + error.message); + } + // Verify the certificate signature. x509Cert.verify(pubKey, function (err, data) { if (err == null) { // The signature verification is successful. - Console.log("verify success"); + console.log("verify success"); } else { // The signature verification failed. - Console.log("verify failed, errCode: " + err.code + ", errMsg: " + err.message); + console.log("verify failed, errCode: " + err.code + ", errMsg: " + err.message); } }); - + // Time represented in a string. let date = "150527000001Z"; // Verify the certificate validity period. - x509Cert.checkValidityWithDate(date, function (err, data) { - if (err != null) { - // Failed to verify the certificate validity period. - Console.log("checkValidityWithDate failed, errCode: " + err.code + ", errMsg: " + err.message); - } else { - // The certificate validity period is verified successfully. - Console.log("checkValidityWithDate success"); - } - }); + try { + x509Cert.checkValidityWithDate(date); + } catch (error) { + console.log("checkValidityWithDate failed, errCode: " + error.code + ", errMsg: " + error.message); + } }); } ``` @@ -171,36 +160,33 @@ Typical operations involve the following: **Available APIs** +For details about the APIs, see [Certificate](../reference/apis/js-apis-cert.md). The table below describes the APIs used in this guide. | Instance | API | Description | | --------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | -| cryptoCert | createX509Crl(inStream : EncodingBlob, callback : AsyncCallback) : void | Parses the X.509 CRL data to create an **X509Crl** instance. This API uses an asynchronous callback to return the result.| -| cryptoCert | createX509Crl(inStream : EncodingBlob) : Promise | Parses the X.509 CRL data to create an **X509Crl** instance. This API uses a promise to return the result. | -| X509Crl | isRevoked(cert : X509Cert, callback : AsyncCallback) : void | Checks whether the certificate is revoked. This API uses an asynchronous callback to return the result. | -| X509Crl | isRevoked(cert : X509Cert) : Promise | Checks whether the certificate is revoked. This API uses a promise to return the result. | -| X509Crl | getType() : string | Obtains the CRL type. | -| X509Crl | getEncoded(callback : AsyncCallback) : void | Obtains the serialized CRL data. This API uses an asynchronous callback to return the result. | -| X509Crl | getEncoded() : Promise | Obtains the serialized CRL data. This API uses a promise to return the result. | -| X509Crl | verify(key : cryptoFramework.PubKey, callback : AsyncCallback) : void | Verifies the CRL signature. This API uses an asynchronous callback to return the result. | -| X509Crl | verify(key : cryptoFramework.PubKey) : Promise | Verifies the CRL signature. This API uses a promise to return the result. | -| X509Crl | getVersion() : number | Obtains the CRL version. | +| cryptoCert | createX509Crl(inStream : EncodingBlob, callback : AsyncCallback\) : void | Parses the X.509 CRL data to create an **X509Crl** instance. This API uses an asynchronous callback to return the result.| +| cryptoCert | createX509Crl(inStream : EncodingBlob) : Promise\ | Parses the X.509 CRL data to create an **X509Crl** instance. This API uses a promise to return the result. | +| X509Crl | isRevoked(cert : X509Cert) : boolean | Checks whether the certificate is revoked. | +| X509Crl | getType() : string | Obtains the CRL type. | +| X509Crl | getEncoded(callback : AsyncCallback\) : void | Obtains the serialized CRL data. This API uses an asynchronous callback to return the result. | +| X509Crl | getEncoded() : Promise\ | Obtains the serialized CRL data. This API uses a promise to return the result. | +| X509Crl | verify(key : cryptoFramework.PubKey, callback : AsyncCallback\) : void | Verifies the CRL signature. This API uses an asynchronous callback to return the result. | +| X509Crl | verify(key : cryptoFramework.PubKey) : Promise\ | Verifies the CRL signature. This API uses a promise to return the result. | +| X509Crl | getVersion() : number | Obtains the CRL version. | | X509Crl | getIssuerName() : DataBlob | Obtains the CRL issuer. | | X509Crl | getLastUpdate() : string | Obtains the date when the CRL was last updated. | | X509Crl | getNextUpdate() : string | Obtains the next update date of the CRL. | -| X509Crl | getRevokedCert(serialNumber : number, callback : AsyncCallback) : void | Obtains the revoked certificate in the CRL based on the specified serial number. This API uses an asynchronous callback to return the result. | -| X509Crl | getRevokedCert(serialNumber : number) : Promise | Obtains the revoked certificate in the CRL based on the specified serial number. This API uses a promise to return the result. | -| X509Crl | getRevokedCertWithCert(cert : X509Cert, callback : AsyncCallback) : void | Obtains the specified X.509 certificate from the CRL. This API uses an asynchronous callback to return the result. | -| X509Crl | getRevokedCertWithCert(cert : X509Cert) : Promise | Obtains the specified X.509 certificate from the CRL. This API uses a promise to return the result. | -| X509Crl | getRevokedCerts(callback : AsyncCallback>) : void | Obtains all revoked certificates in the CRL. This API uses an asynchronous callback to return the result. | -| X509Crl | getRevokedCerts() : Promise> | Obtains all revoked certificates in the CRL. This API uses a promise to return the result. | -| X509Crl | getTbsInfo(callback : AsyncCallback) : void | Obtains the tbsCertList of the CRL. This API uses an asynchronous callback to return the result. | -| X509Crl | getTbsInfo() : Promise | Obtains the tbsCertList of the CRL. This API uses a promise to return the result. | +| X509Crl | getRevokedCert(serialNumber : number) : X509CrlEntry | Obtains the revoked certificate in the CRL based on the serial number. | +| X509Crl | getRevokedCertWithCert(cert : X509Cert) : X509CrlEntry | Obtains the revoked certificate in the CRL based on the X.509 certificate. | +| X509Crl | getRevokedCerts(callback : AsyncCallback\>) : void | Obtains all revoked certificates in the CRL. This API uses an asynchronous callback to return the result. | +| X509Crl | getRevokedCerts() : Promise\> | Obtains all revoked certificates in the CRL. This API uses a promise to return the result. | +| X509Crl | getTbsInfo() : DataBlob | Obtains **tbsCertList** of the CRL. | | X509Crl | getSignature() : DataBlob | Obtains the CRL signature. | -| X509Crl | getSignatureAlgName() : string | Obtains the CRL signing algorithm. | -| X509Crl | getSignatureAlgOid() : string | Obtains the signing algorithm OID of the CRL. | -| X509Crl | getSignatureAlgParams() : DataBlob | Obtains the signing algorithm parameters of the CRL. | +| X509Crl | getSignatureAlgName() : string | Obtains the CRL signing algorithm. | +| X509Crl | getSignatureAlgOid() : string | Obtains the signing algorithm OID of the CRL. | +| X509Crl | getSignatureAlgParams() : DataBlob | Obtains the signing algorithm parameters of the CRL. | **How to Develop** @@ -223,7 +209,7 @@ let crlData = "-----BEGIN X509 CRL-----\n" + "DrAA7hErVgXhtURLbAI=\n" + "-----END X509 CRL-----\n"; -// Convert the string into a Uint8Array. +// Convert the certificate data form a string to a Uint8Array.. function stringToUint8Array(str) { var arr = []; for (var i = 0, j = str.length; i < j; i++) { @@ -245,11 +231,11 @@ function crlSample() { cryptoCert.createX509Crl(encodingBlob, function (err, x509Crl) { if (err != null) { // Failed to create the X509Crl instance. - Console.log("createX509Crl failed, errCode: " + err.code + ", errMsg: " + err.message); + console.log("createX509Crl failed, errCode: " + err.code + ", errMsg: " + err.message); return; } // The X509Crl instance is successfully created. - Console.log("createX509Crl success"); + console.log("createX509Crl success"); // Obtain the CRL version. let version = x509Crl.getVersion(); @@ -257,55 +243,46 @@ function crlSample() { // Obtain the serialized data of the CRL. x509Crl.getEncoded(function (err, data) { if (err != null) { - // Failed to obtain the serialized CRL data. - Console.log("getEncoded failed, errCode: " + err.code + ", errMsg: " + err.message); + // Failed to obtain the serialized data of the certificate. + console.log("getEncoded failed, errCode: " + err.code + ", errMsg: " + err.message); } else { - // The serialized CRL data is successfully obtained. - Console.log("getEncoded success"); + // The serialized data of the certificate is successfully obtained. + console.log("getEncoded success"); } }); - + // Create an X509Cert instance by using createX509Cert() of cryptoFramework. let x509Cert = null; - // Check whether the certificate is revoked. - x509Crl.isRevoked(x509Cert, function (err, isRevoked) { - if (err != null) { - // The operation fails. - Console.log("isRevoked failed, errCode: " + err.code + ", errMsg: " + err.message); - } else { - // The operation is successful. - Console.log("isRevoked success, isRevoked? " + isRevoked); - } - }); - + try { + let revokedFlag = x509Crl.isRevoked(x509Cert); + } catch (error) { + console.log("isRevoked failed, errCode: " + error.code + ", errMsg: " + error.message); + } + // Obtain the PubKey instance by using generateKeyPair() or convertKey() of AsyKeyGenerator. The process is omitted here. let pubKey = null; // Verify the CRL signature. x509Crl.verify(pubKey, function (err, data) { if (err == null) { - // The operation is successful. - Console.log("verify success"); + // The signature verification is successful. + console.log("verify success"); } else { - // The operation fails. - Console.log("verify failed, errCode: " + err.code + ", errMsg: " + err.message); + // The signature verification failed. + console.log("verify failed, errCode: " + err.code + ", errMsg: " + err.message); } }); - + // Certificate serial number, which must be set based on the service. let serialNumber = 1000; - + // Obtain the revoked certificate based on the serial number. - x509Crl.getRevokedCert(serialNumber, function (err, entry) { - if (err != null) { - // The operation fails. - Console.log("getRevokedCert failed, errCode: " + err.code + ", errMsg: " + err.message); - } else { - // The operation is successful. - Console.log("getRevokedCert success"); - } - }); + try { + let entry = x509Crl.getRevokedCert(serialNumber); + } catch (error) { + console.log("getRevokedCert failed, errCode: " + error.code + ", errMsg: " + error.message); + } }); } ``` @@ -318,14 +295,15 @@ You need to use the certificate chain validator in certificate chain verificatio **Available APIs** +For details about the APIs, see [Certificate](../reference/apis/js-apis-cert.md). The table below describes the APIs used in this guide. | Instance | API | Description | | ------------------ | ------------------------------------------------------------ | -------------------------------- | | cryptoCert | createCertChainValidator(algorithm :string) : CertChainValidator | Creates a **CertChainValidator** instance.| -| CertChainValidator | validate(certChain : CertChainData, callback : AsyncCallback) : void | Verifies the certificate chain. This API uses an asynchronous callback to return the result. | -| CertChainValidator | validate(certChain : CertChainData) : Promise | Verifies the certificate chain. This API uses a promise to return the result. | +| CertChainValidator | validate(certChain : CertChainData, callback : AsyncCallback\) : void | Verifies the certificate chain. This API uses an asynchronous callback to return the result. | +| CertChainValidator | validate(certChain : CertChainData) : Promise\ | Verifies the certificate chain. This API uses a promise to return the result. | | CertChainValidator | algorithm : string | Obtains the certificate chain validator algorithm. | **How to Develop** @@ -349,7 +327,7 @@ let secondCaCertData = "-----BEGIN CERTIFICATE-----\n" + "...\n" + "-----END CERTIFICATE-----\n"; -// Convert the certificate data form a string to a Uint8Array. +// Convert the certificate data form a string to a Uint8Array.. function stringToUint8Array(str) { var arr = []; for (var i = 0, j = str.length; i < j; i++) { @@ -408,10 +386,10 @@ function certChainValidatorSample() { validator.validate(certChainData, function (err, data) { if (err != null) { // The operation fails. - Console.log("validate failed, errCode: " + err.code + ", errMsg: " + err.message); + console.log("validate failed, errCode: " + err.code + ", errMsg: " + err.message); } else { // The operation is successful. - Console.log("validate success"); + console.log("validate success"); } }); } @@ -429,18 +407,17 @@ Typical operations involve the following: **Available APIs** +For details about the APIs, see [Certificate](../reference/apis/js-apis-cert.md). The table below describes the APIs used in this guide. -| Instance | API | Description | -| ------------ | ----------------------------------------------------------- | ------------------------------------------ | -| X509CrlEntry | getEncoded(callback : AsyncCallback) : void; | Obtains the serialized data of the revoked certificate. This API uses an asynchronous callback to return the result.| -| X509CrlEntry | getEncoded() : Promise; | Obtains the serialized data of the revoked certificate. This API uses a promise to return the result. | -| X509CrlEntry | getSerialNumber() : number; | Obtains the serial number of the revoked certificate. | -| X509CrlEntry | getCertIssuer(callback : AsyncCallback) : void; | Obtains the issuer of the revoked certificate. This API uses an asynchronous callback to return the result. | -| X509CrlEntry | getCertIssuer() : Promise; | Obtains the issuer of the revoked certificate. This API uses a promise to return the result. | -| X509CrlEntry | getRevocationDate(callback : AsyncCallback) : void; | Obtains the revocation date of the certificate. This API uses an asynchronous callback to return the result. | -| X509CrlEntry | getRevocationDate() : Promise; | Obtains the issuer of the revoked certificate. This API uses a promise to return the result. | +| Instance | API | Description | +| ------------ | ----------------------------------------------------------- | ---------------------------------------- | +| X509CrlEntry | getEncoded(callback : AsyncCallback\) : void; | Obtains the serialized data of the revoked certificate. This API uses an asynchronous callback to return the result.| +| X509CrlEntry | getEncoded() : Promise\; | Obtains the serialized data of the revoked certificate. This API uses a promise to return the result. | +| X509CrlEntry | getSerialNumber() : number; | Obtains the serial number of the revoked certificate. | +| X509CrlEntry | getCertIssuer() : DataBlob; | Obtains the issuer of the revoked certificate. | +| X509CrlEntry | getRevocationDate() : string; | Obtains the revocation date of the revoked certificate. | **How to Develop** @@ -456,39 +433,32 @@ function crlEntrySample() { // Obtain a revoked certificate instance. In this example, the instance is obtained by using getRevokedCert(). let serialNumber = 1000; - x509Crl.getRevokedCert(serialNumber, function (err, crlEntry) { + let crlEntry = null; + try { + crlEntry = x509Crl.getRevokedCert(serialNumber); + } catch (error) { + console.log("getRevokedCert failed, errCode: " + error.code + ", errMsg: " + error.message); + } + + // Obtain the serial number of the revoked certificate. + let serialNumber = crlEntry.getSerialNumber(); + + // Obtain the revocation date of the revoked certificate. + try { + crlEntry.getRevocationDate(); + } catch (error) { + console.log("getRevocationDate failed, errCode: " + error.code + ", errMsg: " + error.message); + } + + // Obtain the serialized data of the revoked certificate instance. + crlEntry.getEncoded(function (err, data) { if (err != null) { - // Failed to obtain the revoked certificate instance. - Console.log("getRevokedCert failed, errCode: " + err.code + ", errMsg: " + err.message); - return; + // Failed to obtain the serialized data of the certificate. + console.log("getEncoded failed, errCode: " + err.code + ", errMsg: " + err.message); + } else { + // The serialized data of the certificate is successfully obtained. + console.log("getEncoded success"); } - // The revoked certificate instance is successfully obtained. - Console.log("getRevokedCert success"); - - // Obtain the serial number of the revoked certificate. - let serialNumber = crlEntry.getSerialNumber(); - - // Obtain the revocation date of the revoked certificate. - crlEntry.getRevocationDate(function (err, date) { - if (err != null) { - // Failed to obtain the revocation date. - Console.log("getRevocationDate failed, errCode: " + err.code + ", errMsg: " + err.message); - } else { - // The revocation date is successfully obtained. - Console.log("getRevocationDate success, date is: " + date); - } - }); - - // Obtain the serialized data of the revoked certificate instance. - crlEntry.getEncoded(function (err, data) { - if (err != null) { - // Failed to obtain the serialized data. - Console.log("getEncoded failed, errCode: " + err.code + ", errMsg: " + err.message); - } else { - // The serialized data is successfully obtained. - Console.log("getEncoded success"); - } - }); }); } ``` diff --git a/en/application-dev/security/cryptoFramework-guidelines.md b/en/application-dev/security/cryptoFramework-guidelines.md index 1d61382eb5..0ed590fbf8 100644 --- a/en/application-dev/security/cryptoFramework-guidelines.md +++ b/en/application-dev/security/cryptoFramework-guidelines.md @@ -32,10 +32,10 @@ The table below describes the APIs used in this guide. |AsyKeyGenerator|generateKeyPair() : Promise\|Generates an asymmetric key pair randomly. This API uses a promise to return the result.| |SymKeyGenerator|generateSymKey(callback : AsyncCallback\) : void|Generates a symmetric key randomly. This API uses an asynchronous callback to return the result.| |SymKeyGenerator|generateSymKey() : Promise\|Generates a symmetric key randomly. This API uses a promise to return the result.| -| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\) : void | Converts binary data into a key pair. This API uses an asynchronous callback to return the result.
        (**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the return **KeyPair** instance contains only the public or private key.)| -| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\ | Converts the binary data into a key pair. This API uses a promise to return the result.
        (**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the returned **KeyPair** instance contains only the public or private key.)| -| SymKeyGenerator | convertKey(key : DataBlob, callback : AsyncCallback\) : void| Converts binary data into a symmetric key. This API uses an asynchronous callback to return the result.| -| SymKeyGenerator |convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\| Converts binary data into a symmetric key. This API uses a promise to return the result.| +| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob, callback : AsyncCallback\) : void | Converts the binary data into a key pair. This API uses an asynchronous callback to return the result.
        (**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the return **KeyPair** instance contains only the public or private key.) | +| AsyKeyGenerator | convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\ | Converts the binary data into a key pair. This API uses a promise to return the result.
        (**pubKey** or **priKey** can be **null**. That is, you can pass in only **pubKey** or **priKey**. As a result, the returned **KeyPair** instance contains only the public or private key.) | +| SymKeyGenerator | convertKey(key : DataBlob, callback : AsyncCallback\) : void| Converts the binary data into a symmetric key. This API uses an asynchronous callback to return the result. | +| SymKeyGenerator |convertKey(pubKey : DataBlob, priKey : DataBlob) : Promise\| Converts the binary data into a symmetric key. This API uses a promise to return the result. | | Key | getEncoded() : DataBlob; | Obtains the binary data of a key. (The child class instances of **Key** include **SymKey**, **PubKey**, and **PriKey**.)| **How to Develop** @@ -121,11 +121,11 @@ function convertAsyKey() { } ``` -**NOTE** - -The public key returned by **convertKey()** must be in the DER format complying with X.509 specifications, and the private key must be in the DER format complying with PKCS #8 specifications. +> **NOTE** +> +> The public key returned by **convertKey()** must be in the DER format complying with X.509 specifications, and the private key must be in the DER format complying with PKCS #8 specifications. -Example 4: Generate an asymmetric key pair from the binary ECC key data. + Example 4: Generate an asymmetric key pair from the binary ECC key data. 1. Obtain the ECC binary key data and encapsulate it into a **DataBlob** instance. 2. Call **convertKey()** to convert the key binary data (data of the private or public key, or both) passed in to a **KeyPair** instance. @@ -492,17 +492,9 @@ function test3DesEcb() { Example 2: Encrypt and decrypt data using an asymmetric key pair. -1. Generate an RSA key pair. - - Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an RSA asymmetric key pair. - -2. Create a **Cipher** instance. - - Call **createCipher()** to create a **Cipher** instance, and set the key and encryption/decryption mode. - -3. Perform encryption and decryption operations. - - Call **doFinal()** provided by the **Cipher** instance to encrypt data or decrypt data. +1. Generate an RSA key pair.
        Call **createAsyKeyGenerator()** to create an **AsyKeyGenerator** instance and generate an RSA asymmetric key pair. +2. Create a **Cipher** instance.
        Call **createCipher()** to create a **Cipher** instance, and set the key and encryption/decryption mode. +3. Perform encryption and decryption operations.
        Call **doFinal()** provided by the **Cipher** instance to encrypt data or decrypt data. ```javascript import cryptoFramework from "@ohos.security.cryptoFramework" @@ -548,19 +540,19 @@ function encryptMessageCallback() { } ``` -**NOTE** - -- In RSA encryption and decryption, **init()** cannot be repeatedly called to initialize the **Cipher** instance. You must create a **Cipher** instance for each of encryption and decryption. -- The RSA encryption has a limit on the length of the plaintext to be encrypted. For details, see "Basic Concepts" in [Crypto Framework Overview](cryptoFramework-overview.md). -- In RSA decryption, the length of the ciphertext to be decrypted each time is the number of bits of the RSA key divided by 8. +> **NOTE** +> +> - In RSA encryption and decryption, **init()** cannot be repeatedly called to initialize the **Cipher** instance. You must create a **Cipher** instance for each of encryption and decryption. +> - The RSA encryption has a limit on the length of the plaintext to be encrypted. For details, see "Basic Concepts" in [Crypto Framework Overview](cryptoFramework-overview.md). +> - In RSA decryption, the length of the ciphertext to be decrypted each time is the number of bits of the RSA key divided by 8. ## Signing Data and Verifying Signatures **When to Use** A digital signature can be used to verify the authenticity of a message. Typical signing and signature verification operations involve the following: -1. Use RSA to sign data and verify the signature. -2. Use ECC to sign data and verify the signature. +- Use RSA to sign data and verify the signature. +- Use ECC to sign data and verify the signature. **Available APIs** @@ -764,7 +756,7 @@ Typical message digest operations involve the following: 1. Create an **Md** instance. 2. Add one or more segments of data for generating a digest. -3. Compute a digest. +3. Compute a digest. 4. Obtain the algorithm and length of a digest. **Available APIs** @@ -1058,8 +1050,8 @@ function doHmacByCallback(algName) { Typical random number operations involve the following: -- Generate a random number. -- Set a seed based on the random number generated. +1. Generate a random number. +2. Set a seed based on the random number generated. **Available APIs** diff --git a/en/application-dev/security/cryptoFramework-overview.md b/en/application-dev/security/cryptoFramework-overview.md index 4037a163e5..9b0248563b 100644 --- a/en/application-dev/security/cryptoFramework-overview.md +++ b/en/application-dev/security/cryptoFramework-overview.md @@ -1,14 +1,14 @@ # Crypto Framework Overview -The cryptographic (crypto for shot) framework shields the implementation differences of third-party cryptographic algorithm libraries and implements encryption and decryption, signing and signature verification, message authentication code (MAC), hash, and secure random number. You can use the APIs provided by this framework to implement cipher development quickly. +The cryptographic (crypto for shot) framework shields the implementation differences of third-party cryptographic algorithm libraries and implements encryption and decryption, signing and signature verification, message authentication code (MAC), hashes, and secure random numbers. You can use the APIs provided by this framework to implement cipher development quickly. ## Working Principles -The crypto framework provides components in the following layers: +The crypto framework provides components in the following layers: - Interface layer: provides unified JS interface externally. - Plugin layer: implements third-party algorithm libraries. -- Framework layer: flexibly loads the plugins in the plugin layer to adapt to third-party algorithm libraries and shields the implement differences between the third-party algorithm libraries. +- Framework layer: flexibly loads the plugins in the plugin layer to adapt to third-party algorithm libraries and shields the implementation differences between these libraries. ## Basic Concepts -### Symmetric Key +**Symmetric Key** A symmetric key is a key used both to encrypt and decrypt data. In symmetric encryption, the sender converts information in plaintext into ciphertext using a key and certain algorithm for security purposes. The receiver converts the ciphertext into plaintext using the same key and algorithm. @@ -19,7 +19,7 @@ A symmetric key is a key used both to encrypt and decrypt data. In symmetric enc Triple Data Encryption Standard (3DES), also called 3DESede or Triple DES, applies the DES cipher three times to each data block. It uses three 64-bit keys to encrypt a data block three times. Compared with DES, 3DES provides higher security due to longer key length, but its processing speed is lower. The AES is faster and more secure than 3DES. -### Asymmetric Key +**Asymmetric Key** In the asymmetric cryptography, a private and public key pair is required. The private key is used to encrypt the plaintext, and the public key is used to decrypt the ciphertext. The public key is public and open to anyone in the system, while the private key is private. For signing and signature verification, the private key is used to sign the plaintext, and the public key is used to verify the signature data. @@ -27,7 +27,7 @@ In the asymmetric cryptography, a private and public key pair is required. The p The security of RSA relies on the factoring problem, that is, the difficulty of factoring the product of two large prime numbers. The keys for the RSA algorithm are generated as follows: - 1. Generate two large prime numbers **p** and **q**. + 1. Generate two large prime numbers **p** and **q**. 2. Compute **n** = **p** x **q**. @@ -41,44 +41,37 @@ In the asymmetric cryptography, a private and public key pair is required. The p The public key consists of the modulus **n** and the public exponent **e**. The private key consists of **n** and the private exponent **d**. - In addition to the default RSA key generation from two primes, the crypto framework provides key generation from multiple primes. You can set the **primes** parameter (PRIMES_2, PRIMES_3, PRIMES_4, PRIMES_5) to specify the number of primes during key generation. The keys generated from multiple primes help reduce the computation workload in decryption and signing (Chinese remainder theorem). However, such keys are weak. The algorithm library defines specifications based on the rules for using OpenSSL prime numbers. For details, see **Constraints**. + In addition to the default RSA key generation from two primes, the crypto framework provides key generation from multiple primes. You can set the **primes** parameter (PRIMES_2, PRIMES_3, PRIMES_4, PRIMES_5) to specify the number of primes during key generation. The keys generated from multiple primes help reduce the computation workload in decryption and signing (Chinese remainder theorem). However, such keys are weak. The algorithm library defines specifications based on the rules for using OpenSSL prime numbers. For details, see [**Constraints**](#constraints). - ECC key Elliptic-Curve Cryptography (ECC) is a public-key encryption based on the algebraic structure of elliptic curve over finite fields. The crypto framework provides a variety of ECC key generation capabilities. -### Encryption and Decryption +**Encryption and Decryption** - Symmetric AES encryption and decryption - The algorithm library provides the following cipher modes of operation for AES: ECB, CBC, OFB, CFB, CTR, GCM, and CCM. - - AES is a block cipher, with a fixed block size of 128 bits. In actual applications, the last block of plaintext may be less than 128 bits and needs to be padded. The padding options are as follows: - + The algorithm library provides the following cipher modes of operation for AES: ECB, CBC, OFB, CFB, CTR, GCM, and CCM. AES is a block cipher, with a fixed block size of 128 bits. In actual applications, the last block of plaintext may be less than 128 bits and needs to be padded. The padding options are as follows: - **NoPadding**: no padding. - - **PKCS5**: pads a block cipher with a block size of 8 bytes. - **PKCS7**: The PKCS #7 padding scheme is the same as that of PKCS #5 padding except that PKCS #5 padding is defined for 8-byte block sizes, while PKCS #5 padding works for any block size from 1 to 255 bytes. - - > **NOTE** - > - > In ECB and CBC modes, the plaintext length is not an integer multiple of 128 bits and must be padded. - -- Symmetric 3DES encryption and decryption - - 3DES encryption and decryption apply the DES cipher three times to each data block obtain the ciphertext or plaintext. - The algorithm library provides the following cipher modes of operation for 3DES encryption and decryption: ECB, CBC, OFB, and CFB. + > **NOTE** + > + > In ECB and CBC, the plaintext must be padded if its length is not an integer multiple of 128 bits.
        Since the plaintext is padded to the block size, the PKCS #5 and PKCS #7 used in the algorithm library use the block size as the padding length. That is, data is padded to 16 bytes in AES encryption. + +- Symmetric 3DES encryption and decryption - DES is a block cipher, with a fixed block size of 64 bits. In actual applications, the last block of plaintext may be less than 64 bits and needs to be padded. The padding options are as follows: + 3DES encryption and decryption apply the DES cipher three times to each data block to obtain the ciphertext or plaintext. + The algorithm library provides the following cipher modes of operation for 3DES encryption and decryption: ECB, CBC, OFB, and CFB. DES is a block cipher, with a fixed block size of 64 bits. In actual applications, the last block of plaintext may be less than 64 bits and needs to be padded. The padding options are as follows: - **NoPadding**: no padding. - **PKCS5**: pads a block cipher with a block size of 8 bytes. - **PKCS7**: The PKCS #7 padding scheme is the same as that of PKCS #5 padding except that PKCS #5 padding is defined for 8-byte block sizes, while PKCS #5 padding works for any block size from 1 to 255 bytes. - > **NOTE** + > **NOTE** > - > In ECB and CBC, the plaintext length is not an integer multiple of 64 bits and must be padded. + > In ECB and CBC, the plaintext must be padded if its length is not an integer multiple of 64 bits.
        Since the plaintext is padded to the block size, the PKCS #5 and PKCS #7 used in the algorithm library use the block size as the padding length. That is, data is padded to 8 bytes in 3DES encryption. - Asymmetric RSA encryption and decryption @@ -90,21 +83,17 @@ In the asymmetric cryptography, a private and public key pair is required. The p Plaintext = Ciphertext ^ **d** mod **n** - The algorithm library provides the following modes of operation for RSA encryption and decryption: **PKCS1**, **PKCS1_ OAEP**, and **NoPadding**. - - RSA is a block cipher, with fixed-length blocks. In actual applications, diverse padding modes are used. The padding options are as follows: + The algorithm library provides the following modes of operation for RSA encryption and decryption: **PKCS1**, **PKCS1_ OAEP**, and **NoPadding**. RSA is a block cipher, with fixed-length blocks. In actual applications, diverse padding modes are used. The padding options are as follows: - **NoPadding**: No padding is required. The length of the input or output data must be the same as that of the RSA key modulus. - - **PKCS1**: PKCS #1 v1.5 is the default padding mode for RSA encryption and decryption. The length of the input data must be less than or equal to the RSA key modulus minus 11, and the length of the output data must be the same as that of the RSA key modulus. + - **PKCS1_OAEP**: The RSA_PKCS1_OAEP_PADDING is a new padding mode provided by PKCS #1. In this mode, two digests (**md** and **mgf1_md**) must be set. The length of the input data must be less than RSA key modulus length minus the **md** length, **mgf1_md** length, and two. The length of the output data must be the same as that of the RSA key modulus. - - **PKCS1_OAEP**: The RSA_PKCS1_OAEP_PADDING is a new padding mode provided by PKCS #1. In this mode, two digests (**md** and **mgf1_md**) must be set. The length of the input data must be less than RSA key modulus length minus **md** length, **mgf1_md** length, and two. The length of the output data must be the same as that of the RSA key modulus. - - **NOTE** - - Length of the RSA key modulus = (Number of RSA bits + 7)/8 + > **NOTE** + > + > Length of the RSA key modulus = (Number of RSA bits + 7)/8 -### Signing and Signature Verification +**Signing and Signature Verification** - RSA signing and signature verification @@ -116,41 +105,41 @@ In the asymmetric cryptography, a private and public key pair is required. The p Message = Signature ^ **d** mod **n** - The sender sends the message and the signature signed by the private key. The receiver decrypts the signature using the public key to verify the signature. Generally, the message sent is longer than the RSA key modulus. Therefore, the crypto framework provides two padding modes to extract the hash value of the message digest and then sign the message. The crypto framework provides the following padding modes for signing and signature verification: + The sender sends the message and the signature signed by the private key. The receiver decrypts the signature using the public key to verify the signature. Generally, the message sent is longer than the RSA key modulus. Therefore, the crypto framework provides two padding modes to extract the hash value of the message digest before signing the message. The crypto framework provides the following padding modes for signing and signature verification: - **PKCS1**: PKCS #1 v1.5 is the default padding mode for RSA encryption and decryption. When this mode is used, the digest (**md**) must be set. - **PSS**: The PSS mode is a padding algorithm based on the RSA algorithm. When it is used, the digest (**md**) and mask function (**mgf1_md**) are required. - ECDSA - The Elliptic Curve Digital Signature Algorithm (ECDSA) is a Digital Signature Algorithm (DSA) that uses the ECC. Compared with the ordinary Discrete Logarithm Problem (DLP) and Integer Factorization Problem (IFP), the unit bit strength of ECC is higher than that of other public-key cryptographic systems. The crypto framework provides the ECDSA that combines multiple elliptic curve and digest algorithms. + The Elliptic Curve Digital Signature Algorithm (ECDSA) is a Digital Signature Algorithm (DSA) that uses the ECC. Compared with the ordinary Discrete Logarithm Problem (DLP) and Integer Factorization Problem (IFP), the ECC provides a higher unit bit strength than other public-key cryptographic systems. The crypto framework provides the ECDSA that combines multiple elliptic curve and digest algorithms. -### Key Agreement +**Key Agreement** -**ECDH** +- **ECDH** -Elliptic Curve Diffie-Hellman (ECDH) allows two parties to establish a shared secret over an insecure channel. The crypto framework provides a variety of ECDH capabilities based on the open-source algorithm library. + Elliptic Curve Diffie-Hellman (ECDH) allows two parties to establish a shared secret over an insecure channel. The crypto framework provides a variety of ECDH capabilities based on the open-source algorithm library. -### Digest +**Digest** -The message digest algorithm allows a fixed-length digest to be generated from data of arbitrary size by using the hash algorithm. The message digest algorithm is used for sensitive information encryption because it is infeasible to invert or reverse the computation. The MD algorithm is also referred to as a hash algorithm or a one-way hash algorithm. +The message digest algorithm allows a fixed-length digest to be generated from data of arbitrary size by using the hash algorithm. It is used for sensitive information encryption because it is infeasible to invert or reverse the computation. The MD algorithm is also referred to as a hash algorithm or a one-way hash algorithm. When the same digest algorithm is used, the generated digest (hash value) has the following features: - The same message always results in the same hash value. - The digest generated is of the fixed length no matter the length of messages. (The digest length is determined by the algorithm used). -- It is almost impossible to find two different messages with the same hash value (the probability still exists, depending on the length of the digest). +- It is almost impossible to find two different messages with the same hash value. (The probability still exists, depending on the length of the digest.) -There are three types of message digest algorithms: MD, SHA, and MAC. For details, see section "**HMAC**". +There are three types of message digest algorithms: MD, SHA, and MAC. For details, see section **HMAC**. MD algorithms include MD2, MD4, and MD5. Major SHA algorithms include SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512. -### HMAC +**HMAC** -Hash-based Message Authentication Code (HMAC) is a key-based message authentication code algorithm. HMAC provides authentication using a shared secret instead of using a digital signature. The MAC generated can be used to verify both the integrity and authenticity of the message. The length of the MAC generated by HMAC is fixed. +Hash-based Message Authentication Code (HMAC) is a key-based message authentication code algorithm. HMAC provides authentication using a shared secret instead of using a digital signature. The MAC generated can be used to verify the integrity and authenticity of the message. The length of the MAC generated by HMAC is fixed. Compared with MAC, HMAC introduces the shared secret, which ensures data correctness. -### Random Number +**Random Number** -Random numbers are mainly used to generate temporary session keys or keys in asymmetric encryption. Random numbers can be generated by a hardware random number generator or software-based pseudo-random number generator. In encryption and decryption, a secure random number generator must feature randomness, repeatability, and unpredictability. The random numbers generated by the Cryptography Secure Random Number Generator (CSPRNG) meet the requirements of cryptography security pseudo-randomness. +Random numbers are mainly used to generate temporary session keys or keys in asymmetric encryption. They are generated by a hardware random number generator or software-based pseudo-random number generator. In encryption and decryption, a secure random number generator must feature randomness, unrepeatability, and unpredictability. The random numbers generated by the Cryptography Secure Random Number Generator (CSPRNG) meet the requirements of cryptography security pseudo-randomness. - Internal state @@ -163,7 +152,7 @@ Random numbers are mainly used to generate temporary session keys or keys in asy ## Constraints -- The crypto framework does not support concurrent operations of multiple threads. +The crypto framework does not support concurrent operations of multiple threads. ### Key Generation Specifications @@ -171,19 +160,24 @@ Random numbers are mainly used to generate temporary session keys or keys in asy The following parameters are supported: -|Symmetric Key Algorithm|Key Length|String for Generating a Key| +|Symmetric Key Algorithm|Key Length (Bit)|String Parameter| |---|---|---| |3DES|192|3DES192| |AES|128|AES128| |AES|192|AES192| |AES|256|AES256| + > **NOTE** + > + > **String Parameter** is a combination of **Symmetric Key Algorithm** and **Key Length**. It specifies the key specifications when a symmetric key generator is created. + **Asymmetric Key Generation Specifications** + - **RSA key generation** The following parameters are supported: - |Asymmetric Key Algorithm|Key Length|Number of Primes|String for Generating a Key| + |Asymmetric Key Algorithm|Key Length (Bit)|Number of Primes|String Parameter| |---|---|---|---| |RSA|512|2|RSA512\|PRIMES_2| |RSA|768|2|RSA768\|PRIMES_2| @@ -203,7 +197,7 @@ The following parameters are supported: > **NOTE** > - > When the RSA asymmetric key is generated, the default number of primes is 2 and the **PRIMES_2** parameter can be omitted. + > When an RSA asymmetric key is generated, the default prime number is 2, and **PRIMES_2** is optional. - **ECC key generation** @@ -214,7 +208,7 @@ The following parameters are supported: |ECC|ECC224| |ECC|ECC256| |ECC|ECC384| - |ECC|ECC512| + |ECC|ECC521| ### Encryption and Decryption Specifications @@ -222,7 +216,7 @@ The following parameters are supported: The following symmetric encryption algorithms are supported: -|Algorithm|Block Cipher Mode|Algorithm String| +|Algorithm|Block Cipher Mode| String Parameter | |---|---|---| |3DES|ECB|3DES192\|ECB\|[NoPadding\|PKCS5\|PKCS7]| |3DES|CBC|3DES192\|CBC\|[NoPadding\|PKCS5\|PKCS7]| @@ -237,56 +231,56 @@ The following symmetric encryption algorithms are supported: |AES|CCM|AES[128\|192\|256]\|CCM\|[NoPadding\|PKCS5\|PKCS7]| > **NOTE** -> -> The options included in the square brackets ([]) are mutually exclusive. +> - The options included in the square brackets ([]) are mutually exclusive. +> - **String Parameter** is a combination of **Algorithm** (including the key length), **Block Cipher Mode**, and padding mode. It specifies the symmetric encryption/decryption algorithm specifications when a symmetric encryption/decryption instance is created. **Asymmetric RSA Encryption and Decryption** -The following padding modes are involved in RSA encryption and decryption: **NoPadding**, **PKCS1**, and **PKCS1_OAEP**. -- When **NoPadding** is used, you can specify the following parameters: +The crypto framework provides three padding modes for RSA encryption/decryption: **NoPadding**, **PKCS1**, and **PKCS1_OAEP**. +- If **NoPadding** is used, specify the parameter as follows: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|NoPadding -- When **PKCS1** is used, you can specify the following parameters: +- If **PKCS1** is used, specify the parameter as follows: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PKCS1 -- When **PKCS1_OAEP** is used, you can specify the following parameters: +- If **PKCS1_OAEP** is used, specify the parameter as follows: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PKCS1_OAEP|[MD5|SHA1|SHA224|SHA256|SHA384|SHA512]|[MGF1_MD5|MGF1_SHA1|MGF1_SHA224|MGF1_SHA256|MGF1_SHA384|MGF1_SHA512] > **NOTE** > -> The options included in the square brackets ([]) are mutually exclusive. The options outside the square brackets are fixed values. +> The options included in the square brackets ([]) are mutually exclusive, and the options outside [] are fixed values. ### Signing and Signature Verification Specifications **RSA Signing and Signature Verification** -The following padding modes are involved in RSA encryption and decryption: **PKCS1** and **PSS**. -- When **PKCS1** is used, you can specify the following parameters: +The crypto framework provides two padding modes for RSA signing and signature verification: **PKCS1** and **PSS**. +- If **PKCS1** is used, specify the parameter as follows: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PKCS1|[MD5|SHA1|SHA224|SHA256|SHA384|SHA512] -- When **PSS** is used, you can specify the following parameters: +- If **PSS** is used, specify the parameter as follows: [RSA512|RSA768|RSA1024|RSA2048|RSA3072|RSA4096|RSA8192]|PSS|[MD5|SHA1|SHA224|SHA256|SHA384|SHA512]|[MGF1_MD5|MGF1_SHA1|MGF1_SHA224|MGF1_SHA256|MGF1_SHA384|MGF1_SHA512] > **NOTE** > -> The options included in the square brackets ([]) are mutually exclusive. The options outside the square brackets are fixed values. +> The options included in the square brackets ([]) are mutually exclusive, and the options outside [] are fixed values. **ECDSA Signing and Signature Verification** The following ECDSA parameters are supported: -|Asymmetric Key Algorithm|Supported Types| +|Asymmetric Key Algorithm|Supported Type| |---|---| |ECC|ECC224| |ECC|ECC256| |ECC|ECC384| -|ECC|ECC512| +|ECC|ECC521| -|Digest Algorithm|Supported Types| +|Digest Algorithm|Supported Type| |---|---| |HASH|SHA-1| |HASH|SHA-224| @@ -300,12 +294,12 @@ The following ECDSA parameters are supported: The following ECDH parameters are supported: -|Asymmetric Key Algorithm|Supported Types| +|Asymmetric Key Algorithm|Supported Type| |---|---| |ECC|ECC224| |ECC|ECC256| |ECC|ECC384| -|ECC|ECC512| +|ECC|ECC521| ### MD Algorithm Specifications The crypto framework supports only MD5. diff --git a/en/application-dev/security/huks-guidelines.md b/en/application-dev/security/huks-guidelines.md index cfeb93d8d7..b72be28c24 100644 --- a/en/application-dev/security/huks-guidelines.md +++ b/en/application-dev/security/huks-guidelines.md @@ -2,7 +2,7 @@ OpenHarmony Universal KeyStore (HUKS) provides KeyStore (KS) capabilities for applications, including key management and key cryptography operations. HUKS also provides APIs for applications to import or generate keys. -> **NOTE**
        +> **NOTE** > > This document is based on API version 9 and applies only to ArkTS development. @@ -20,9 +20,9 @@ Generate a key for an application by specifying the alias and key parameters. > **NOTE** > -> 1. When a key is used if the parameters passed in does not comply with the parameters passed in during the key generation, the parameter verification will fail. +> - When a key is used if the parameters passed in does not comply with the parameters passed in during the key generation, the parameter verification will fail. > -> 2. If an optional parameter required by the algorithm is not passed in during the key generation process, it must be passed in when the key is used. +> - If an optional parameter required by the algorithm is not passed in during the key generation process, it must be passed in when the key is used. **Supported Key Types** diff --git a/en/application-dev/security/userauth-overview.md b/en/application-dev/security/userauth-overview.md index f3e6a9a904..d7082741a0 100644 --- a/en/application-dev/security/userauth-overview.md +++ b/en/application-dev/security/userauth-overview.md @@ -16,7 +16,7 @@ Facial recognition establishes a secure channel between a camera and a trusted e Facial characteristics are stored in the TEE, which uses strong cryptographic algorithms to encrypt and protect the integrity of facial characteristics. The collected and stored facial characteristics will not be transferred out of the TEE without user authorization. This ensures that system or third-party applications cannot obtain facial characteristics, or send or back them up to any external storage medium. -## Limitations and Constraints +## Constraints - OpenHarmony only supports facial recognition and local authentication, and does not support an authentication UI. - To use biometric recognition, a device must have a camera with a face image pixel greater than 100x100. -- GitLab From b27867568afa9736014104faa810374bfa8e5eb2 Mon Sep 17 00:00:00 2001 From: ningning <3248127340@qq.com> Date: Tue, 17 Jan 2023 07:56:33 +0000 Subject: [PATCH 294/383] update zh-cn/application-dev/reference/apis/js-apis-screen-lock.md. Signed-off-by: ningning <3248127340@qq.com> --- zh-cn/application-dev/reference/apis/js-apis-screen-lock.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md b/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md index cc3bb710fe..5bbab36621 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md +++ b/zh-cn/application-dev/reference/apis/js-apis-screen-lock.md @@ -226,7 +226,7 @@ screenlock.lock().then((data) => { onSystemEvent(callback: Callback<SystemEvent>): boolean -注册锁屏相关的系统事件。 +注册锁屏相关的系统事件,仅系统锁屏应用可调用。 **系统能力:** SystemCapability.MiscServices.ScreenLock -- GitLab From 757461a0f5656a7b12e38215d710dd61ff50f520 Mon Sep 17 00:00:00 2001 From: Gloria Date: Tue, 17 Jan 2023 15:02:45 +0800 Subject: [PATCH 295/383] Update ability APIs against multiple issues and deleted redundant docs Signed-off-by: wusongqing --- .../device/device-location-geocoding.md | 87 -- .../device/device-location-info.md | 145 --- .../device/device-location-overview.md | 48 - .../reference/apis/js-apis-ability-ability.md | 2 +- .../reference/apis/js-apis-ability-context.md | 397 ++++---- .../apis/js-apis-ability-dataUriUtils.md | 2 +- .../apis/js-apis-ability-errorCode.md | 12 +- .../apis/js-apis-ability-featureAbility.md | 158 ++-- .../apis/js-apis-ability-particleAbility.md | 75 +- .../apis/js-apis-ability-wantConstant.md | 24 +- ...js-apis-accessibility-extension-context.md | 379 -------- .../apis/js-apis-app-ability-ability.md | 47 +- .../js-apis-app-ability-abilityConstant.md | 148 ++- ...is-app-ability-abilityDelegatorRegistry.md | 39 +- ...is-app-ability-abilityLifecycleCallback.md | 268 ++++-- .../js-apis-app-ability-abilityManager.md | 266 ++++-- .../apis/js-apis-app-ability-abilityStage.md | 72 +- .../apis/js-apis-app-ability-appManager.md | 872 +++++++++++------- .../apis/js-apis-app-ability-appRecovery.md | 51 +- .../apis/js-apis-app-ability-common.md | 38 +- .../apis/js-apis-app-ability-configuration.md | 50 +- ...-apis-app-ability-configurationConstant.md | 6 +- .../js-apis-app-ability-contextConstant.md | 10 +- .../apis/js-apis-app-ability-dataUriUtils.md | 2 +- ...js-apis-app-ability-environmentCallback.md | 8 +- .../apis/js-apis-app-ability-errorManager.md | 33 +- .../js-apis-app-ability-extensionAbility.md | 24 +- .../js-apis-app-ability-missionManager.md | 615 ++++++------ .../js-apis-app-ability-quickFixManager.md | 28 +- ...pis-app-ability-serviceExtensionAbility.md | 74 +- .../apis/js-apis-app-ability-startOptions.md | 6 +- .../apis/js-apis-app-ability-uiAbility.md | 277 +++--- .../apis/js-apis-app-ability-want.md | 92 +- .../apis/js-apis-app-ability-wantAgent.md | 2 +- .../apis/js-apis-app-ability-wantConstant.md | 23 +- .../apis/js-apis-app-form-formBindingData.md | 25 +- .../js-apis-app-form-formExtensionAbility.md | 104 ++- .../apis/js-apis-app-form-formHost.md | 551 ++++++----- .../apis/js-apis-app-form-formInfo.md | 24 +- .../apis/js-apis-app-form-formProvider.md | 233 ++--- .../reference/apis/js-apis-appControl.md | 14 +- .../apis/js-apis-application-ability.md | 68 +- .../js-apis-application-abilityConstant.md | 18 +- ...is-application-abilityDelegatorRegistry.md | 4 +- ...is-application-abilityLifecycleCallback.md | 126 +-- .../js-apis-application-abilityManager.md | 54 +- .../apis/js-apis-application-abilityStage.md | 36 +- .../apis/js-apis-application-appManager.md | 139 ++- .../apis/js-apis-application-configuration.md | 3 +- ...-apis-application-configurationConstant.md | 34 +- .../apis/js-apis-application-context.md | 2 +- ...js-apis-application-environmentCallback.md | 35 +- .../apis/js-apis-application-errorManager.md | 6 +- .../js-apis-application-extensionAbility.md | 4 +- .../js-apis-application-formBindingData.md | 21 +- .../apis/js-apis-application-formError.md | 6 +- .../apis/js-apis-application-formExtension.md | 2 +- .../apis/js-apis-application-formHost.md | 309 +++++-- .../apis/js-apis-application-formInfo.md | 33 +- .../apis/js-apis-application-formProvider.md | 185 ++-- .../js-apis-application-missionManager.md | 83 +- ...pis-application-serviceExtensionAbility.md | 63 +- .../apis/js-apis-application-startOptions.md | 4 +- ...cation-staticSubscriberExtensionAbility.md | 10 +- .../apis/js-apis-application-testRunner.md | 2 +- .../apis/js-apis-application-want.md | 54 +- ...apis-application-windowExtensionAbility.md | 3 +- .../reference/apis/js-apis-configuration.md | 26 - ...js-apis-continuation-continuationResult.md | 1 - .../apis/js-apis-distributedBundle.md | 479 ---------- .../js-apis-inner-ability-abilityResult.md | 18 +- .../js-apis-inner-ability-connectOptions.md | 42 +- ...js-apis-inner-ability-dataAbilityHelper.md | 405 ++++---- ...apis-inner-ability-dataAbilityOperation.md | 63 +- ...js-apis-inner-ability-dataAbilityResult.md | 102 +- ...pis-inner-ability-startAbilityParameter.md | 20 +- .../apis/js-apis-inner-ability-want.md | 80 +- .../apis/js-apis-inner-app-appVersionInfo.md | 29 +- .../apis/js-apis-inner-app-context.md | 50 +- .../apis/js-apis-inner-app-processInfo.md | 14 +- ...apis-inner-application-abilityDelegator.md | 9 +- ...-inner-application-abilityDelegatorArgs.md | 4 +- ...s-apis-inner-application-abilityMonitor.md | 5 +- ...is-inner-application-abilityRunningInfo.md | 2 +- ...s-inner-application-abilityStageContext.md | 6 +- ...apis-inner-application-abilityStateData.md | 43 +- ...is-inner-application-applicationContext.md | 19 +- ...er-application-applicationStateObserver.md | 16 +- .../js-apis-inner-application-baseContext.md | 29 +- .../apis/js-apis-inner-application-context.md | 83 +- ...apis-inner-application-continueCallback.md | 41 +- ...is-inner-application-continueDeviceInfo.md | 27 +- ...js-apis-inner-application-errorObserver.md | 18 +- .../js-apis-inner-application-eventHub.md | 161 ++-- ...apis-inner-application-extensionContext.md | 9 +- ...-inner-application-extensionRunningInfo.md | 54 +- ...-inner-application-formExtensionContext.md | 105 ++- ...apis-inner-application-missionCallbacks.md | 22 +- ...pis-inner-application-missionDeviceInfo.md | 2 +- .../js-apis-inner-application-missionInfo.md | 53 +- ...apis-inner-application-missionParameter.md | 2 +- ...-apis-inner-application-missionSnapshot.md | 48 +- .../js-apis-inner-application-processData.md | 9 +- ...is-inner-application-processRunningInfo.md | 7 +- ...r-application-processRunningInformation.md | 19 +- ...ner-application-serviceExtensionContext.md | 210 +++-- ...s-apis-inner-application-shellCmdResult.md | 4 +- ...apis-inner-application-uiAbilityContext.md | 768 +++++++-------- .../js-apis-inner-wantAgent-wantAgentInfo.md | 37 +- .../apis/js-apis-permissionrequestresult.md | 40 + .../reference/apis/js-apis-wantAgent.md | 2 +- .../device-test/{Readme.md => Readme-EN.md} | 0 112 files changed, 4832 insertions(+), 4986 deletions(-) delete mode 100644 en/application-dev/device/device-location-geocoding.md delete mode 100644 en/application-dev/device/device-location-info.md delete mode 100644 en/application-dev/device/device-location-overview.md delete mode 100644 en/application-dev/reference/apis/js-apis-accessibility-extension-context.md delete mode 100644 en/application-dev/reference/apis/js-apis-configuration.md delete mode 100644 en/application-dev/reference/apis/js-apis-distributedBundle.md create mode 100644 en/application-dev/reference/apis/js-apis-permissionrequestresult.md rename en/device-dev/device-test/{Readme.md => Readme-EN.md} (100%) diff --git a/en/application-dev/device/device-location-geocoding.md b/en/application-dev/device/device-location-geocoding.md deleted file mode 100644 index e18c3fbcce..0000000000 --- a/en/application-dev/device/device-location-geocoding.md +++ /dev/null @@ -1,87 +0,0 @@ -# Geocoding and Reverse Geocoding Capabilities - - -## When to Use - -Describing a location using coordinates is accurate, but neither intuitive nor user-friendly. With the geocoding and reverse geocoding capabilities, you will be able to convert geographic description into specific coordinates and vice versa. - -The geographic description helps users understand a location easily by providing several key attributes, for example, country, administrative region, street, house number, and address. - - -## Available APIs - -The following table describes APIs available for mutual conversion between coordinates and geographic description. For details, see [Geolocation Manager](../reference/apis/js-apis-geoLocationManager.md). - - **Table1** APIs for geocoding and reverse geocoding - -| API | Description | -| -------- | -------- | -| isGeocoderAvailable(): boolean; | Checks whether the (reverse) geocoding service is available.| -| getAddressesFromLocation(request: ReverseGeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void | Converts coordinates into geographic description through reverse geocoding. This API uses an asynchronous callback to return the result. | -| getAddressesFromLocation(request: ReverseGeoCodeRequest): Promise<Array<GeoAddress>> | Converts coordinates into geographic description through reverse geocoding. This API uses a promise to return the result. | -| getAddressesFromLocationName(request: GeoCodeRequest, callback: AsyncCallback<Array<GeoAddress>>): void | Converts geographic description into coordinates through geocoding. This API uses an asynchronous callback to return the result. | -| getAddressesFromLocationName(request: GeoCodeRequest): Promise<Array<GeoAddress>> | Converts geographic description into coordinates through geocoding. This API uses a promise to return the result. | - - -## How to Develop - -> **NOTE** -> -> The **GeoConvert** instance needs to access backend services to obtain information. Therefore, before performing the following steps, ensure that your device is connected to the network. - -1. Import the **geoLocationManager** module by which you can implement all APIs related to the geocoding and reverse geocoding conversion capabilities. - - ```ts - import geoLocationManager from '@ohos.geolocation'; - ``` - -2. Query whether geocoder service is available. - - Call **isGeoServiceAvailable** to query whether the geocoder service is available. If the service is available, continue with step 3. - ```ts - import geoLocationManager from '@ohos.geoLocationManager'; - try { - var isAvailable = geoLocationManager.isGeocoderAvailable(); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` - -3. Obtain the conversion result. - - Call **getAddressesFromLocation** to convert coordinates into geographical location information. - - ```ts - var reverseGeocodeRequest = {"latitude": 31.12, "longitude": 121.11, "maxItems": 1}; - try { - geoLocationManager.getAddressesFromLocation(reverseGeocodeRequest, (err, data) => { - if (err) { - console.log('getAddressesFromLocation err: ' + JSON.stringify(err)); - } else { - console.log('getAddressesFromLocation data: ' + JSON.stringify(data)); - } - }); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` - - Your application can obtain the **GeoAddress** list that matches the specified coordinates and then read location information from it. For details, see [Geolocation](../reference/apis/js-apis-geolocation.md). - - Call **getAddressesFromLocationName** to convert geographic description into coordinates. - - ```ts - var geocodeRequest = {"description": "No. xx, xx Road, Pudong District, Shanghai", "maxItems": 1}; - try { - geoLocationManager.getAddressesFromLocationName(geocodeRequest, (err, data) => { - if (err) { - console.log('getAddressesFromLocationName err: ' + JSON.stringify(err)); - } else { - console.log('getAddressesFromLocationName data: ' + JSON.stringify(data)); - } - }); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` - - Your application can obtain the **GeoAddress** list that matches the specified location information and read coordinates from it. For details, see [Geolocation](../reference/apis/js-apis-geolocation.md). - - To improve the accuracy of location results, you can set the longitude and latitude ranges in **GeoCodeRequest**. diff --git a/en/application-dev/device/device-location-info.md b/en/application-dev/device/device-location-info.md deleted file mode 100644 index 1a386fe6bb..0000000000 --- a/en/application-dev/device/device-location-info.md +++ /dev/null @@ -1,145 +0,0 @@ -# Obtaining Device Location Information - - -## When to Use - -You can call location-related APIs in OpenHarmony to obtain the real-time location or last known location of a mobile device. - -Real-time location of the device is recommended for location-sensitive services. If you want to lower power consumption when the real-time location of the device is not needed, you may consider obtaining the last known location of the device. - - -## Available APIs - -For details about the APIs used to obtain the device location information, see [Geolocation Manager](../reference/apis/js-apis-geoLocationManager.md). - -## How to Develop - -To learn more about the APIs for obtaining device location information, see [Geolocation](../reference/apis/js-apis-geoLocationManager.md). - -1. Before using basic location capabilities, check whether your application has been granted the permission to access the device location information. If not, your application needs to obtain the permission from the user as described below. - The system provides the following location permissions: - - ohos.permission.LOCATION - - - ohos.permission.APPROXIMATELY_LOCATION - - - ohos.permission.LOCATION_IN_BACKGROUND - - If your application needs to access the device location information, it must first apply for required permissions. Specifically speaking: - - API versions earlier than 9: Apply for **ohos.permission.LOCATION**. - - API version 9 and later: Apply for **ohos.permission.APPROXIMATELY\_LOCATION**, or apply for **ohos.permission.APPROXIMATELY\_LOCATION** and **ohos.permission.LOCATION**. Note that **ohos.permission.LOCATION** cannot be applied for separately. - - | Target API Level| Location Permission| Permission Application Result| Location Accuracy| - | -------- | -------- | -------- | -------- | - | Earlier than 9| ohos.permission.LOCATION | Success| Location accurate to meters| - | 9 and later| ohos.permission.LOCATION | Failure| No location obtained| - | 9 and later| ohos.permission.APPROXIMATELY_LOCATION | Success| Location accurate to 5 kilometers| - | 9 and later| ohos.permission.APPROXIMATELY_LOCATION and ohos.permission.LOCATION| Success| Location accurate to meters| - - If your application needs to access the device location information when running on the background, it must be configured to be able to run on the background and be granted the **ohos.permission.LOCATION_IN_BACKGROUND** permission. In this way, the system continues to report device location information after your application moves to the background. - - You can declare the required permission in your application's configuration file. For details, see [Access Control (Permission) Development](../security/accesstoken-guidelines.md). - -2. Import the **geoLocationManager** module by which you can implement all APIs related to the basic location capabilities. - - ```ts - import geoLocationManager from '@ohos.geolocation'; - ``` - -3. Instantiate the **LocationRequest** object. This object provides APIs to notify the system of the location service type and the interval of reporting location information.
        - **Method 1:** - - To better serve your needs for using APIs, the system has categorized APIs into different packages to match your common use cases of the location function. In this way, you can directly use the APIs specific to a certain use case, making application development much easier. The following table lists the use cases currently supported. - - - ``` - export enum LocationRequestScenario { - UNSET = 0x300, - NAVIGATION, - TRAJECTORY_TRACKING, - CAR_HAILING, - DAILY_LIFE_SERVICE, - NO_POWER, - } - ``` - - - **Table 2** Common use cases of the location function - - | Use Case | Constant | Description | - | ------------ | ------------------- | ------------------------------------------------------------ | - | Navigation | NAVIGATION | Applicable when your application needs to obtain the real-time location of a mobile device outdoors, such as navigation for driving or walking. In this scenario, the GNSS positioning technology is mainly used to ensure the location accuracy. However, due to its limitations, the technology may be unable to provide the location service when navigation is just started or when the user moves into a shielded environment such as indoors or a garage. To resolve this issue, the system uses the network positioning technology as an alternative to provide the location service for your application until the GNSS can provide stable location results. This helps achieve a smooth navigation experience for users.
        By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - | Trajectory tracking| TRAJECTORY_TRACKING | Applicable when your application needs to record user trajectories, for example, the track recording function of sports applications. In this scenario, the GNSS positioning technology is mainly used to ensure the location accuracy.
        By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - | Ride hailing| CAR_HAILING | Applicable when your application needs to obtain the current location of a user who is hailing a taxi.
        By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - | Life service| DAILY_LIFE_SERVICE | Applicable when your application only needs the approximate user location for recommendations and push notifications in scenarios such as when the user is browsing news, shopping online, and ordering food.
        By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - | Power efficiency | NO_POWER | Applicable when your application does not proactively start the location service for a higher battery efficiency. When responding to another application requesting the same location service, the system marks a copy of the location result to your application. In this way, your application will not consume extra power for obtaining the user location.
        By default, the system reports location results at a minimal interval of 1s. To adopt this use case, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - - Sample code for initializing **requestInfo** for navigation: - - ```ts - var requestInfo = {'scenario': geoLocationManager.LocationRequestScenario.NAVIGATION, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; - ``` - - **Method 2:** - - If the predefined use cases do not meet your needs, you can also use the basic location priority policies provided by the system. - - - ```ts - export enum LocationRequestPriority { - UNSET = 0x200, - ACCURACY, - LOW_POWER, - FIRST_FIX, - } - ``` - - - **Table 3** Location priority policies - - | Policy | Constant | Description | - | ------------------ | -------------- | ------------------------------------------------------------ | - | Location accuracy priority | ACCURACY | This policy mainly uses the GNSS positioning technology. In an open area, the technology can achieve the meter-level location accuracy, depending on the hardware performance of the device. However, in a shielded environment, the location accuracy may significantly decrease.
        To use this policy, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - | Fast location priority | FAST_FIRST_FIX | This policy uses the GNSS positioning, base station positioning, WLAN positioning, and Bluetooth positioning technologies simultaneously to obtain the device location in both the indoor and outdoor scenarios. When all positioning technologies provide a location result, the system provides the most accurate location result for your application. This policy can lead to significant hardware resource consumption and power consumption.
        To use this policy, you must declare the **ohos.permission.LOCATION** permission and obtain users' authorization.| - | Power efficiency priority| LOW_POWER | This policy mainly uses the base station positioning, WLAN positioning, and Bluetooth positioning technologies to obtain device location in both indoor and outdoor scenarios. The location accuracy depends on the distribution of surrounding base stations, visible WLANs, and Bluetooth devices and therefore may fluctuate greatly. This policy is recommended and can reduce power consumption when your application does not require high location accuracy or when base stations, visible WLANs, and Bluetooth devices are densely distributed.
        To use this policy, you must declare at least the **ohos.permission.LOCATION** permission and obtain users' authorization.| - - Sample code for initializing **requestInfo** for the location accuracy priority policy: - - ```ts - var requestInfo = {'priority': geoLocationManager.LocationRequestPriority.ACCURACY, 'timeInterval': 0, 'distanceInterval': 0, 'maxAccuracy': 0}; - ``` - -4. Instantiate the **Callback** object for the system to report location results. - Your application needs to implement the callback defined by the system. When the system successfully obtains the real-time location of a device, it will report the location result to your application through the callback interface. Your application can implement the callback interface in such a way to complete your own service logic. - - ```ts - var locationChange = (location) => { - console.log('locationChanger: data: ' + JSON.stringify(location)); - }; - ``` - -5. Start device location. - - ```ts - geoLocationManager.on('locationChange', requestInfo, locationChange); - ``` - -6. (Optional) Stop device location. - - ```ts - geoLocationManager.off('locationChange', locationChange); - ``` - -If your application does not need the real-time device location, it can use the last known device location cached in the system instead. - - ```ts - import geoLocationManager from '@ohos.geoLocationManager'; - try { - var location = geoLocationManager.getLastLocation(); - } catch (err) { - console.error("errCode:" + err.code + ",errMessage:" + err.message); - } - ``` - - To call this method, your application needs to request the **ohos.permission.LOCATION** permission from the user. diff --git a/en/application-dev/device/device-location-overview.md b/en/application-dev/device/device-location-overview.md deleted file mode 100644 index a26f0c5a70..0000000000 --- a/en/application-dev/device/device-location-overview.md +++ /dev/null @@ -1,48 +0,0 @@ -# Location Overview - - -People take their mobile devices wherever they go. Mobile devices have become a necessity in people's daily routines, whether it be for looking at the weather forecast, browsing news, hailing a taxi, navigating, or recording data from a workout. All these activities are so much associated with the location services on mobile devices. - - -With the location awareness capability offered by , mobile devices will be able to obtain real-time, accurate location data. Building location awareness into your application can also lead to a better contextual experience for application users. - - -Your application can call location-specific APIs to obtain the location information of a mobile device for offering location-based services such as drive navigation and motion track recording. - - -## Basic Concepts - -Location awareness helps determine where a mobile device locates. The system identifies the location of a mobile device with its coordinates, and uses location technologies such as Global Navigation Satellite System (GNSS) and network positioning (for example, base station positioning or WLAN/Bluetooth positioning) to provide diverse location-based services. These advanced location technologies make it possible to obtain the accurate location of the mobile device, regardless of whether it is indoors or outdoors. - -- **Coordinate** - - A coordinate describes a location on the earth using the longitude and latitude in reference to the World Geodetic Coordinate System 1984. - -- **GNSS positioning** - GNSS positioning locates a mobile device by using the location algorithm offered by the device chip to compute the location information provided by the Global Navigation Satellite System, for example, GPS, GLONASS, BeiDou, and Galileo. Whichever positioning system will be used during the location process depends on a hardware capability of the device. - -- **Base station positioning** - - Base station positioning estimates the current location of a mobile device based on the location of the resident base station in reference to the neighboring base stations. This technology provides only a low accuracy and requires access to the cellular network. - -- **WLAN or Bluetooth positioning** - - WLAN or Bluetooth positioning estimates the current location of a mobile device based on the locations of WLANs and Bluetooth devices that can be discovered by the device. The location accuracy of this technology depends on the distribution of fixed WLAN access points (APs) and Bluetooth devices around the device. A high density of WLAN APs and Bluetooth devices can produce a more accurate location result than base station positioning. This technology also requires access to the network. - - -## Working Principles - -Location awareness is offered by the system as a basic service for applications. Depending on the service scenario, an application needs to initiate a location request to the system and stop the location request when the service scenario ends. In this process, the system reports the location information to the application on a real-time basis. - - -## Limitations and Constraints - -Your application can use the location function only after the user has granted the permission and turned on the function. If the location function is off, the system will not provide the location service for any application. - -Since the location information is considered sensitive, your application still needs to obtain the location access permission from the user even if the user has turned on the location function. The system will provide the location service for your application only after it has been granted the permission to access the device location information. - -## Samples - -The following sample is provided to help you better understand how to develop location services: - --[`Location`: Location (eTS) (API9)](https://gitee.com/openharmony/applications_app_samples/tree/master/device/Location) diff --git a/en/application-dev/reference/apis/js-apis-ability-ability.md b/en/application-dev/reference/apis/js-apis-ability-ability.md index 84033dd0a9..37bf04c704 100644 --- a/en/application-dev/reference/apis/js-apis-ability-ability.md +++ b/en/application-dev/reference/apis/js-apis-ability-ability.md @@ -1,4 +1,4 @@ -# @ohos.ability.ability +# @ohos.ability.ability (Ability) The **Ability** module provides all level-2 module APIs for developers to export. diff --git a/en/application-dev/reference/apis/js-apis-ability-context.md b/en/application-dev/reference/apis/js-apis-ability-context.md index f77fd415a1..d345bbb9db 100644 --- a/en/application-dev/reference/apis/js-apis-ability-context.md +++ b/en/application-dev/reference/apis/js-apis-ability-context.md @@ -14,10 +14,10 @@ This module provides APIs for accessing ability-specific resources. You can use Before using the **AbilityContext** module, you must define a child class that inherits from **Ability**. ```ts -import Ability from '@ohos.app.ability.UIAbility'; +import UIAbility from '@ohos.app.ability.UIAbility'; - let context = undefined; -class MainAbility extends Ability { +let context = undefined; +class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { context = this.context; } @@ -30,8 +30,8 @@ class MainAbility extends Ability { | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| abilityInfo | AbilityInfo | Yes| No| Ability information.| -| currentHapModuleInfo | HapModuleInfo | Yes| No| Information about the current HAP.| +| abilityInfo | [AbilityInfo](js-apis-bundleManager-abilityInfo.md) | Yes| No| Ability information.| +| currentHapModuleInfo | [HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md) | Yes| No| Information about the current HAP.| | config | [Configuration](js-apis-application-configuration.md) | Yes| No| Configuration information.| ## AbilityContext.startAbility @@ -40,6 +40,11 @@ startAbility(want: Want, callback: AsyncCallback<void>): void; Starts an ability. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -54,13 +59,14 @@ Starts an ability. This API uses an asynchronous callback to return the result. | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { - bundleName: "com.example.myapp", + bundleName: "com.example.myapplication", abilityName: "MyAbility" }; @@ -89,6 +95,11 @@ startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void& Starts an ability with the start options specified. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -104,15 +115,16 @@ Starts an ability with the start options specified. This API uses an asynchronou | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var options = { windowMode: 0 @@ -142,6 +154,11 @@ startAbility(want: Want, options?: StartOptions): Promise<void>; Starts an ability. This API uses a promise to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -162,13 +179,14 @@ Starts an ability. This API uses a promise to return the result. | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { - bundleName: "com.example.myapp", + bundleName: "com.example.myapplication", abilityName: "MyAbility" }; var options = { @@ -198,7 +216,12 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): void; -Starts an ability. This API uses an asynchronous callback to return the result when the ability is terminated. +Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#abilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -214,15 +237,16 @@ Starts an ability. This API uses an asynchronous callback to return the result w | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -248,7 +272,12 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback<AbilityResult>): void; -Starts an ability with the start options specified. This API uses an asynchronous callback to return the result when the ability is terminated. +Starts an ability with the start options specified. After the ability is started, you can call [terminateSelfWithResult](#abilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -265,15 +294,16 @@ Starts an ability with the start options specified. This API uses an asynchronou | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var options = { windowMode: 0, @@ -303,7 +333,12 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityResult>; -Starts an ability. This API uses a promise to return the result when the ability is terminated. +Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#abilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses a promise to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -326,13 +361,14 @@ Starts an ability. This API uses a promise to return the result when the ability | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { - bundleName: "com.example.myapp", + bundleName: "com.example.myapplication", abilityName: "MyAbility" }; var options = { @@ -361,9 +397,14 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Starts an ability. This API uses an asynchronous callback to return the result when the account of the ability is destroyed. +Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result when the ability is terminated. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -375,22 +416,23 @@ Starts an ability. This API uses an asynchronous callback to return the result w | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| | accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| -| callback | AsyncCallback\ | Yes| Callback used to return the result.| +| callback | AsyncCallback\<[AbilityResult](js-apis-inner-ability-abilityResult.md)\> | Yes| Callback used to return the result.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -418,9 +460,14 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void; -Starts an ability with the start options specified. This API uses an asynchronous callback to return the result when the account of the ability is destroyed. +Starts an ability with the start options and account ID specified. This API uses an asynchronous callback to return the result when the ability is terminated. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -440,15 +487,16 @@ Starts an ability with the start options specified. This API uses an asynchronou | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -479,9 +527,14 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; -Starts an ability with the start options specified. This API uses a promise to return the result when the account of the ability is destroyed. +Starts an ability with the account ID specified. This API uses a promise to return the result when the ability is terminated. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -499,22 +552,23 @@ Starts an ability with the start options specified. This API uses a promise to r | Type| Description| | -------- | -------- | -| Promise<AbilityResult> | Promise used to return the result.| +| Promise<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise used to return the result.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -543,7 +597,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; -Starts a new Service Extension ability. This API uses an asynchronous callback to return the result. +Starts a ServiceExtensionAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -561,15 +615,16 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -594,7 +649,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startServiceExtensionAbility(want: Want): Promise\; -Starts a new Service Extension ability. This API uses a promise to return the result. +Starts a ServiceExtensionAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -611,15 +666,16 @@ Starts a new Service Extension ability. This API uses a promise to return the re | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -644,9 +700,9 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Starts a new Service Extension ability with the account ID specified. This API uses an asynchronous callback to return the result. +Starts a ServiceExtensionAbility with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -665,15 +721,16 @@ Starts a new Service Extension ability with the account ID specified. This API u | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -699,9 +756,9 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; -Starts a new Service Extension ability with the account ID specified. This API uses a promise to return the result. +Starts a ServiceExtensionAbility with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -719,15 +776,16 @@ Starts a new Service Extension ability with the account ID specified. This API u | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -752,7 +810,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; -Stops a Service Extension ability in the same application. This API uses an asynchronous callback to return the result. +Stops a ServiceExtensionAbility in the same application. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -770,20 +828,27 @@ Stops a Service Extension ability in the same application. This API uses an asyn | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { + this.context.startAbility(want, (error) => { + if (error.code != 0) { + console.log("start ability fail, err: " + JSON.stringify(err)); + } + }) + this.context.stopServiceExtensionAbility(want, (error) => { - if (error.code) { + if (error.code != 0) { // Process service logic errors. console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) + ' error.message: ' + JSON.stringify(error.message)); @@ -803,7 +868,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). stopServiceExtensionAbility(want: Want): Promise\; -Stops a Service Extension ability in the same application. This API uses a promise to return the result. +Stops a ServiceExtensionAbility in the same application. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -820,18 +885,25 @@ Stops a Service Extension ability in the same application. This API uses a promi | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { + this.context.startAbility(want, (error) => { + if (error.code != 0) { + console.log("start ability fail, err: " + JSON.stringify(err)); + } + }) + this.context.stopServiceExtensionAbility(want) .then((data) => { // Carry out normal service processing. @@ -853,9 +925,9 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Stops a Service Extension ability in the same application with the account ID specified. This API uses an asynchronous callback to return the result. +Stops a ServiceExtensionAbility in the same application with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -874,19 +946,26 @@ Stops a Service Extension ability in the same application with the account ID sp | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; try { + this.context.startAbilityWithAccount(want, accountId, (error) => { + if (error.code != 0) { + console.log("start ability fail, err: " + JSON.stringify(err)); + } + }) + this.context.stopServiceExtensionAbilityWithAccount(want, accountId, (error) => { if (error.code) { // Process service logic errors. @@ -908,9 +987,9 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; -Stops a Service Extension ability in the same application with the account ID specified. This API uses a promise to return the result. +Stops a ServiceExtensionAbility in the same application with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -928,19 +1007,26 @@ Stops a Service Extension ability in the same application with the account ID sp | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; try { + this.context.startAbilityWithAccount(want, accountId, (error) => { + if (error.code != 0) { + console.log("start ability fail, err: " + JSON.stringify(err)); + } + }) + this.context.stopServiceExtensionAbilityWithAccount(want, accountId) .then((data) => { // Carry out normal service processing. @@ -977,7 +1063,8 @@ Terminates this ability. This API uses an asynchronous callback to return the re | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** @@ -1014,7 +1101,8 @@ Terminates this ability. This API uses a promise to return the result. | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** @@ -1034,7 +1122,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<void>): void; -Terminates this ability. This API uses an asynchronous callback to return the ability result information. It is used together with **startAbilityForResult**. +Terminates this ability. If the ability is started by calling [startAbilityForResult](#abilitycontextstartabilityforresult), the result is returned to the caller in the form of a callback when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1050,7 +1138,8 @@ Terminates this ability. This API uses an asynchronous callback to return the ab | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** @@ -1088,8 +1177,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). ## AbilityContext.terminateSelfWithResult terminateSelfWithResult(parameter: AbilityResult): Promise<void>; - -Terminates this ability. This API uses a promise to return the ability result information. It is used together with **startAbilityForResult**. +Terminates this ability. If the ability is started by calling [startAbilityForResult](#abilitycontextstartabilityforresult), the result is returned to the caller in the form of a promise when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1110,7 +1198,8 @@ Terminates this ability. This API uses a promise to return the ability result in | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** @@ -1173,15 +1262,16 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var options = { onConnect(elementName, remote) { console.log('----------- onConnect -----------') }, @@ -1204,9 +1294,9 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number; -Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect this ability to another ability with the account ID specified. +Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to another ability with the account ID specified. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1231,15 +1321,16 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -1283,7 +1374,8 @@ Disconnects a connection. This API uses a promise to return the result. | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** @@ -1329,7 +1421,8 @@ Disconnects a connection. This API uses an asynchronous callback to return the r | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** @@ -1361,6 +1454,11 @@ startAbilityByCall(want: Want): Promise<Caller>; Starts an ability in the foreground or background and obtains the caller object for communicating with the ability. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - The rules for using this API in the same-device and cross-device scenarios are different. For details, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. @@ -1388,7 +1486,7 @@ Starts an ability in the foreground or background and obtains the caller object var wantBackground = { bundleName: "com.example.myservice", moduleName: "entry", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "" }; @@ -1419,7 +1517,7 @@ Starts an ability in the foreground or background and obtains the caller object var wantForeground = { bundleName: "com.example.myservice", moduleName: "entry", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "", parameters: { "ohos.aafwk.param.callAbilityToForeground": true @@ -1450,7 +1548,12 @@ startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\< Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1469,15 +1572,16 @@ Starts an ability with the account ID specified. This API uses an asynchronous c | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -1506,7 +1610,12 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca Starts an ability with the account ID and start options specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1526,15 +1635,16 @@ Starts an ability with the account ID and start options specified. This API uses | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -1566,7 +1676,12 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Starts an ability with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1585,15 +1700,16 @@ Starts an ability with the account ID specified. This API uses a promise to retu | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -1618,65 +1734,6 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). } ``` -## AbilityContext.requestPermissionsFromUser - -requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>) : void; - -Requests permissions from the user by displaying a dialog box. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| permissions | Array<string> | Yes| Permissions to request.| -| callback | AsyncCallback<[PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md)> | Yes| Callback used to return the result.| - -**Example** - - ```ts - var permissions=['com.example.permission'] - this.context.requestPermissionsFromUser(permissions,(result) => { - console.log('requestPermissionsFromUserresult:' + JSON.stringify(result)); - }); - - ``` - - -## AbilityContext.requestPermissionsFromUser - -requestPermissionsFromUser(permissions: Array<string>) : Promise<PermissionRequestResult>; - -Requests permissions from the user by displaying a dialog box. This API uses a promise to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| permissions | Array<string> | Yes| Permissions to request.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| Promise<[PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md)> | Promise used to return the result.| - -**Example** - - ```ts - var permissions=['com.example.permission'] - this.context.requestPermissionsFromUser(permissions).then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - - ``` - - ## AbilityContext.setMissionLabel setMissionLabel(label: string, callback:AsyncCallback<void>): void; @@ -1696,7 +1753,7 @@ Sets a label for this ability in the mission. This API uses an asynchronous call ```ts this.context.setMissionLabel("test",(result) => { - console.log('requestPermissionsFromUserresult:' + JSON.stringify(result)); + console.log('setMissionLabel result:' + JSON.stringify(result)); }); ``` @@ -1744,7 +1801,7 @@ Sets an icon for this ability in the mission. This API uses an asynchronous call | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| icon | image.PixelMap | Yes| Icon of the ability to set.| +| icon | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes| Icon of the ability to set.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Example** @@ -1786,7 +1843,7 @@ Sets an icon for this ability in the mission. This API uses a promise to return | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| icon | image.PixelMap | Yes| Icon of the ability to set.| +| icon | [image.PixelMap](js-apis-image.md#pixelmap7) | Yes| Icon of the ability to set.| **Return value** diff --git a/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md b/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md index 7b041a216d..f1301ad877 100644 --- a/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md +++ b/en/application-dev/reference/apis/js-apis-ability-dataUriUtils.md @@ -1,4 +1,4 @@ -# @ohos.ability.dataUriUtils +# @ohos.ability.dataUriUtils (dataUriUtils) The **DataUriUtils** module provides APIs to process URI objects. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI. This module will be replaced by the **app.ability.dataUriUtils** module in the near future. You are advised to use the **[@ohos.app.ability.dataUriUtils](js-apis-app-ability-dataUriUtils.md)** module. diff --git a/en/application-dev/reference/apis/js-apis-ability-errorCode.md b/en/application-dev/reference/apis/js-apis-ability-errorCode.md index c6e16f3f0c..dc0e8ae892 100644 --- a/en/application-dev/reference/apis/js-apis-ability-errorCode.md +++ b/en/application-dev/reference/apis/js-apis-ability-errorCode.md @@ -1,9 +1,9 @@ -# @ohos.ability.errorCode +# @ohos.ability.errorCode (ErrorCode) -The **ErrorCode** module defines the error codes that can be used when the ability is started. - - **NOTE** +The **ErrorCode** module defines the error codes that may be returned when an ability is started. +> **NOTE** +> > The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import @@ -14,13 +14,13 @@ import errorCode from '@ohos.ability.errorCode' ## ErrorCode -Defines the error codes used when the ability is started. +Enumerates the error codes that may be returned when an ability is started. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Value | Description | | ------------------------------ | ---- | ---------------------------------------- | -| NO_ERROR | 0 | No error occurs. | +| NO_ERROR | 0 | No error. | | INVALID_PARAMETER | -1 | Invalid parameter.| | ABILITY_NOT_FOUND | -2 | The ability is not found.| | PERMISSION_DENY | -3 | Permission denied. | diff --git a/en/application-dev/reference/apis/js-apis-ability-featureAbility.md b/en/application-dev/reference/apis/js-apis-ability-featureAbility.md index 2f1b927b61..b527edfcf7 100644 --- a/en/application-dev/reference/apis/js-apis-ability-featureAbility.md +++ b/en/application-dev/reference/apis/js-apis-ability-featureAbility.md @@ -1,6 +1,6 @@ -# @ohos.ability.featureAbility +# @ohos.ability.featureAbility (FeatureAbility) -The **FeatureAbility** module provides a UI for interacting with users. You can use APIs of this module to start a new ability, obtain the **dataAbilityHelper**, set a Page ability, obtain the window corresponding to this ability, and connect to a Service ability. +The **FeatureAbility** module provides APIs that enable user interaction. You can use the APIs to start or terminate an ability, obtain a **dataAbilityHelper** object, obtain the window corresponding to the current ability, and connect to or disconnect from a ServiceAbility. > **NOTE** > @@ -9,7 +9,7 @@ The **FeatureAbility** module provides a UI for interacting with users. You can ## Constraints -APIs of the **FeatureAbility** module can be called only by Page abilities. +The APIs of the **FeatureAbility** module can be called only by PageAbilities. ## Modules to Import @@ -23,6 +23,11 @@ startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\) Starts an ability. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel **Parameters** @@ -48,7 +53,7 @@ featureAbility.startAbility( deviceId: "", bundleName: "com.example.myapplication", /* In the FA model, abilityName consists of package and ability names. */ - abilityName: "com.example.entry.secondAbility", + abilityName: "com.example.myapplication.secondAbility", uri: "" }, }, @@ -66,6 +71,11 @@ startAbility(parameter: StartAbilityParameter): Promise\ Starts an ability. This API uses a promise to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel **Parameters** @@ -74,6 +84,12 @@ Starts an ability. This API uses a promise to return the result. | --------- | ---------------------------------------- | ---- | -------------- | | parameter | [StartAbilityParameter](js-apis-inner-ability-startAbilityParameter.md) | Yes | Ability to start.| +**Return value** + +| Type | Description | +| ---------------------------------------- | ------- | +| Promise\ | Promise used to return the result.| + **Example** ```ts @@ -90,7 +106,7 @@ featureAbility.startAbility( deviceId: "", bundleName: "com.example.myapplication", /* In the FA model, abilityName consists of package and ability names. */ - abilityName: "com.example.entry.secondAbility", + abilityName: "com.example.myapplication.secondAbility", uri: "" }, } @@ -105,6 +121,12 @@ acquireDataAbilityHelper(uri: string): DataAbilityHelper Obtains a **dataAbilityHelper** object. +Observe the following when using this API: + - To access a DataAbility of another application, the target application must be configured with associated startup (**AssociateWakeUp** set to **true**). + - If an application running in the background needs to call this API to access a DataAbility, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel **Parameters** @@ -117,7 +139,7 @@ Obtains a **dataAbilityHelper** object. | Type | Description | | ----------------- | ------------------------------- | -| DataAbilityHelper | A utility class used to help other abilities access the Data ability.| +| [DataAbilityHelper](js-apis-inner-ability-dataAbilityHelper.md) | A utility class used to help other abilities access the Data ability.| **Example** @@ -132,7 +154,12 @@ var dataAbilityHelper = featureAbility.acquireDataAbilityHelper( startAbilityForResult(parameter: StartAbilityParameter, callback: AsyncCallback\): void -Starts an ability. This API uses an asynchronous callback to return the execution result when the ability is destroyed. +Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#featureabilityterminateselfwithresult7) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -159,7 +186,7 @@ featureAbility.startAbilityForResult( deviceId: "", bundleName: "com.example.myapplication", /* In the FA model, abilityName consists of package and ability names. */ - abilityName: "com.example.entry.secondAbility", + abilityName: "com.example.myapplication.secondAbility", uri:"" }, }, @@ -173,7 +200,12 @@ featureAbility.startAbilityForResult( startAbilityForResult(parameter: StartAbilityParameter): Promise\ -Starts an ability. This API uses a promise to return the execution result when the ability is destroyed. +Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#featureabilityterminateselfwithresult7) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses a promise to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -187,7 +219,7 @@ Starts an ability. This API uses a promise to return the execution result when t | Type | Description | | ---------------------------------------- | ------- | -| Promise\<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promised returned with the execution result.| +| Promise\<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise used to return the result.| **Example** @@ -205,7 +237,7 @@ featureAbility.startAbilityForResult( deviceId: "", bundleName: "com.example.myapplication", /* In the FA model, abilityName consists of package and ability names. */ - abilityName: "com.example.entry.secondAbility", + abilityName: "com.example.myapplication.secondAbility", uri:"", parameters: { @@ -229,7 +261,7 @@ featureAbility.startAbilityForResult( terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback\): void -Destroys this Page ability, with the result code and data sent to the caller. This API uses an asynchronous callback to return the result. +Terminates this ability. If the ability is started by calling [startAbilityForResult](#featureabilitystartabilityforresult7), the result is returned to the caller in the form of a callback when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -237,7 +269,7 @@ Destroys this Page ability, with the result code and data sent to the caller. Th | Name | Type | Mandatory | Description | | --------- | ------------------------------- | ---- | -------------- | -| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Yes | Ability to start.| +| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Yes | Result returned after the ability is terminated.| | callback | AsyncCallback\ | Yes | Callback used to return the result. | **Example** @@ -257,7 +289,7 @@ featureAbility.terminateSelfWithResult( deviceId: "", bundleName: "com.example.myapplication", /* In the FA model, abilityName consists of package and ability names. */ - abilityName: "com.example.entry.secondAbility", + abilityName: "com.example.myapplication.secondAbility", uri:"", parameters: { mykey0: 2222, @@ -281,7 +313,7 @@ featureAbility.terminateSelfWithResult( terminateSelfWithResult(parameter: AbilityResult): Promise\ -Destroys this Page ability, with the result code and data sent to the caller. This API uses a promise to return the result. +Terminates this ability. If the ability is started by calling [startAbilityForResult](#featureabilitystartabilityforresult7), the result is returned to the caller in the form of a promise when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -289,7 +321,7 @@ Destroys this Page ability, with the result code and data sent to the caller. Th | Name | Type | Mandatory | Description | | --------- | ------------------------------- | ---- | ------------- | -| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Yes | Ability to start.| +| parameter | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Yes | Result returned after the ability is terminated.| **Return value** @@ -314,7 +346,7 @@ featureAbility.terminateSelfWithResult( deviceId: "", bundleName: "com.example.myapplication", /* In the FA model, abilityName consists of package and ability names. */ - abilityName: "com.example.entry.secondAbility", + abilityName: "com.example.myapplication.secondAbility", uri:"", parameters: { mykey0: 2222, @@ -345,7 +377,7 @@ Checks whether the main window of this ability has the focus. This API uses an a | Name | Type | Mandatory | Description | | -------- | ----------------------- | ---- | ---------------------------------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the result.
        Returns **true** if the main window of this ability has the focus; returns **false** otherwise.| +| callback | AsyncCallback\ | Yes | Callback used to return the result.
        If the main window has the focus, **true** is returned. Otherwise, **false** is returned.| **Example** @@ -368,7 +400,7 @@ Checks whether the main window of this ability has the focus. This API uses a pr | Type | Description | | ----------------- | ------------------------------------- | -| Promise\ | Returns **true** if the main window of this ability has the focus; returns **false** otherwise.| +| Promise\ | Promise used to return the result. If the main window has the focus, **true** is returned. Otherwise, **false** is returned.| **Example** @@ -383,7 +415,7 @@ featureAbility.hasWindowFocus().then((data) => { getWant(callback: AsyncCallback\): void -Obtains the **Want** object sent from this ability. This API uses an asynchronous callback to return the result. +Obtains the Want corresponding to the ability to start. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -391,7 +423,7 @@ Obtains the **Want** object sent from this ability. This API uses an asynchronou | Name | Type | Mandatory | Description | | -------- | ----------------------------- | ---- | --------- | -| callback | AsyncCallback\<[Want](js-apis-application-want.md)> | Yes | Callback used to return the result.| +| callback | AsyncCallback\<[Want](js-apis-application-want.md)> | Yes | Callback used to return the Want.| **Example** @@ -406,7 +438,7 @@ featureAbility.getWant((err, data) => { getWant(): Promise\ -Obtains the **Want** object sent from this ability. This API uses a promise to return the result. +Obtains the Want corresponding to the ability to start. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -414,7 +446,7 @@ Obtains the **Want** object sent from this ability. This API uses a promise to r | Type | Description | | ----------------------- | ---------------- | -| Promise\<[Want](js-apis-application-want.md)> | Promise used to return the result.| +| Promise\<[Want](js-apis-application-want.md)> | Promise used to return the Want.| **Example** @@ -453,7 +485,7 @@ context.getBundleName((err, data) => { terminateSelf(callback: AsyncCallback\): void -Destroys this Page ability, with the result code and data sent to the caller. This API uses an asynchronous callback to return the result. +Terminates this ability. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -478,7 +510,7 @@ featureAbility.terminateSelf( terminateSelf(): Promise\ -Destroys this Page ability, with the result code and data sent to the caller. This API uses a promise to return the result. +Terminates this ability. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -501,7 +533,13 @@ featureAbility.terminateSelf().then((data) => { connectAbility(request: Want, options:ConnectOptions): number -Connects this ability to a specific Service ability. This API uses an asynchronous callback to return the result. +Connects this ability to a ServiceAbility. + +Observe the following when using this API: + - To connect to a ServiceAbility of another application, the target application must be configured with associated startup (**AssociateWakeUp** set to **true**).. + - If an application running in the background needs to call this API to connect to a ServiceAbility, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -509,14 +547,14 @@ Connects this ability to a specific Service ability. This API uses an asynchrono | Name | Type | Mandatory | Description | | ------- | -------------- | ---- | --------------------- | -| request | [Want](js-apis-application-want.md) | Yes | Service ability to connect.| -| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes | Callback used to return the result. | +| request | [Want](js-apis-application-want.md) | Yes | ServiceAbility to connect.| +| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes | Connection options. | **Return value** | Type | Description | | ------ | -------------------- | -| number | ID of the Service ability connected.| +| number | ID of the connected ServiceAbility. The ID starts from 0 and is incremented by 1 each time a connection is set up.| **Example** @@ -536,7 +574,7 @@ var connectId = featureAbility.connectAbility( { deviceId: "", bundleName: "com.ix.ServiceAbility", - abilityName: "ServiceAbilityA", + abilityName: "com.ix.ServiceAbility.ServiceAbilityA", }, { onConnect: onConnectCallback, @@ -550,7 +588,7 @@ var connectId = featureAbility.connectAbility( disconnectAbility(connection: number, callback:AsyncCallback\): void -Disconnects this ability from a specific Service ability. This API uses an asynchronous callback to return the result. +Disconnects this ability from a specific ServiceAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -558,7 +596,7 @@ Disconnects this ability from a specific Service ability. This API uses an async | Name | Type | Mandatory | Description | | ---------- | -------------------- | ---- | ----------------------- | -| connection | number | Yes | ID of the Service ability to disconnect.| +| connection | number | Yes | ID of the ServiceAbility to disconnect.| | callback | AsyncCallback\ | Yes | Callback used to return the result. | **Example** @@ -578,7 +616,7 @@ function onFailedCallback(code){ var connectId = featureAbility.connectAbility( { bundleName: "com.ix.ServiceAbility", - abilityName: "ServiceAbilityA", + abilityName: "com.ix.ServiceAbility.ServiceAbilityA", }, { onConnect: onConnectCallback, @@ -597,7 +635,7 @@ var result = featureAbility.disconnectAbility(connectId, disconnectAbility(connection: number): Promise\ -Disconnects this ability from a specific Service ability. This API uses a promise to return the result. +Disconnects this ability from a specific ServiceAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -605,7 +643,7 @@ Disconnects this ability from a specific Service ability. This API uses a promis | Name | Type | Mandatory | Description | | ---------- | ------ | ---- | ----------------------- | -| connection | number | Yes | ID of the Service ability to disconnect.| +| connection | number | Yes | ID of the ServiceAbility to disconnect.| **Return value** @@ -630,7 +668,7 @@ function onFailedCallback(code){ var connectId = featureAbility.connectAbility( { bundleName: "com.ix.ServiceAbility", - abilityName: "ServiceAbilityA", + abilityName: "com.ix.ServiceAbility.ServiceAbilityA", }, { onConnect: onConnectCallback, @@ -659,7 +697,7 @@ Obtains the window corresponding to this ability. This API uses an asynchronous | Name | Type | Mandatory| Description | | -------- | ----------------------------- | ---- | ----------------------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the window.| +| callback | AsyncCallback\<[window.Window](js-apis-window.md#window)> | Yes | Callback used to return the window.| **Example** @@ -681,7 +719,7 @@ Obtains the window corresponding to this ability. This API uses a promise to ret | Type | Description | | ----------------------- | ----------------------------- | -| Promise\ | Promise used to return the window.| +| Promise\<[window.Window](js-apis-window.md#window)> | Promise used to return the window.| **Example** @@ -693,7 +731,7 @@ featureAbility.getWindow().then((data) => { ## AbilityWindowConfiguration -The value is obtained through the **featureAbility.AbilityWindowConfiguration** API. +Defines the window configuration corresponding to this ability. The configuration is obtained through **featureAbility.AbilityWindowConfiguration**. **Example** @@ -705,18 +743,18 @@ featureAbility.AbilityWindowConfiguration.WINDOW_MODE_UNDEFINED | Name | Value | Description | | ---------------------------------------- | ---- | ---------------------------------------- | -| WINDOW_MODE_UNDEFINED7+ | 0 | The Page ability is in an undefined window display mode.| -| WINDOW_MODE_FULLSCREEN7+ | 1 | The Page ability is in full screen mode. | -| WINDOW_MODE_SPLIT_PRIMARY7+ | 100 | The Page ability is displayed in the primary window when it is in split-screen mode.| -| WINDOW_MODE_SPLIT_SECONDARY7+ | 101 | The Page ability is displayed in the secondary window when it is in split-screen mode.| -| WINDOW_MODE_FLOATING7+ | 102 | The Page ability is displayed in floating window mode.| +| WINDOW_MODE_UNDEFINED7+ | 0 | The PageAbility is in an undefined window display mode.| +| WINDOW_MODE_FULLSCREEN7+ | 1 | The PageAbility is in full screen mode. | +| WINDOW_MODE_SPLIT_PRIMARY7+ | 100 | The PageAbility is displayed in the primary window when it is in split-screen mode.| +| WINDOW_MODE_SPLIT_SECONDARY7+ | 101 | The PageAbility is displayed in the secondary window when it is in split-screen mode.| +| WINDOW_MODE_FLOATING7+ | 102 | The PageAbility is displayed in floating window mode.| ## AbilityStartSetting -The **AbilityStartSetting** attribute is an object defined as [key: string]: any. The key is a type of **AbilityStartSetting**, and the value is a type of **AbilityWindowConfiguration**. +Defines the window attribute corresponding to this ability. The **abilityStartSetting** attribute is an object defined in the format of [**key: string]: any**, where **key** is an enumerated value of **AbilityStartSetting** and **value** is an enumerated value of **AbilityWindowConfiguration**. -The value is obtained through the **featureAbility.AbilityStartSetting** API. +The value is obtained through **featureAbility.AbilityStartSetting**. **Example** @@ -734,7 +772,7 @@ featureAbility.AbilityStartSetting.BOUNDS_KEY ## ErrorCode -Enumerates error codes. +Enumerates the error codes. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -743,12 +781,12 @@ Enumerates error codes. | NO_ERROR7+ | 0 | No error occurs.| | INVALID_PARAMETER7+ | -1 | Invalid parameter.| | ABILITY_NOT_FOUND7+ | -2 | The ability is not found.| -| PERMISSION_DENY7+ | -3 | The request is denied.| +| PERMISSION_DENY7+ | -3 | Permission denied.| ## DataAbilityOperationType -Enumerates operation types of the Data ability. +Enumerates the operation types of a DataAbility. The DataAbility can use an enumerated value to specify the operation type when operating data in batches. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -761,23 +799,25 @@ Enumerates operation types of the Data ability. ## flags +Enumerates the flags that specify how the Want will be handled. + **System capability**: SystemCapability.Ability.AbilityBase | Name | Value | Description | | ------------------------------------ | ---------- | ---------------------------------------- | -| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | Indicates the permission to read the URI. | -| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | Indicates the permission to write the URI. | +| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | Grants the permission to read the URI. | +| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | Grants the permission to write data to the URI. | | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | Returns the result to the ability. | -| FLAG_ABILITY_CONTINUATION | 0x00000008 | Indicates whether the ability on the local device can be migrated to a remote device. | +| FLAG_ABILITY_CONTINUATION | 0x00000008 | Continues the ability on a remote device. | | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | Indicates that a component does not belong to OHOS. | -| FLAG_ABILITY_FORM_ENABLED | 0x00000020 | Indicates whether to enable an ability. | -| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.
        **System API**: This is a system API and cannot be called by third-party applications. | -| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | Indicates the permission to verify URIs by prefix matching.
        **System API**: This is a system API and cannot be called by third-party applications. | -| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | Supports cross-device startup in a distributed scheduler. | -| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | Indicates that the Service ability is started regardless of whether the host application has been started.
        **System API**: This is a system API and cannot be called by third-party applications. | +| FLAG_ABILITY_FORM_ENABLED | 0x00000020 | Indicates whether the FormAbility is enabled. | +| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Grants the permission to make the URI persistent.
        **System API**: This is a system API and cannot be called by third-party applications. | +| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | Grants the permission to verify URIs by prefix matching.
        **System API**: This is a system API and cannot be called by third-party applications. | +| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | Indicates the support for cross-device startup in the distributed scheduler. | +| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | Indicates that the ability is started in the foreground regardless of whether the host application is started.
        **System API**: This is a system API and cannot be called by third-party applications. | | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | Indicates that the migration is reversible. | | FLAG_INSTALL_ON_DEMAND | 0x00000800 | Indicates that the specific ability will be installed if it has not been installed. | | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | Indicates that the specific ability will be installed in the background if it has not been installed. | | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | Clears other operation missions. This flag can be set for the **Want** object in the **startAbility** API passed to [ohos.app.Context](js-apis-ability-context.md) and must be used together with **flag_ABILITY_NEW_MISSION**.| -| FLAG_ABILITY_NEW_MISSION | 0x10000000 | Creates a mission on the historical mission stack. | -| FLAG_ABILITY_MISSION_TOP | 0x20000000 | Starts the mission on the top of the existing mission stack; creates an ability instance if no mission exists.| +| FLAG_ABILITY_NEW_MISSION | 0x10000000 | Creates a mission on an existing mission stack. | +| FLAG_ABILITY_MISSION_TOP | 0x20000000 | Reuses an ability instance if it is on the top of an existing mission stack; creates an ability instance otherwise.| diff --git a/en/application-dev/reference/apis/js-apis-ability-particleAbility.md b/en/application-dev/reference/apis/js-apis-ability-particleAbility.md index 46355b9262..7d00454ea5 100644 --- a/en/application-dev/reference/apis/js-apis-ability-particleAbility.md +++ b/en/application-dev/reference/apis/js-apis-ability-particleAbility.md @@ -1,6 +1,6 @@ -# @ohos.ability.particleAbility +# @ohos.ability.particleAbility (ParticleAbility) -The **particleAbility** module provides APIs for Service abilities. You can use the APIs to start and terminate a Particle ability, obtain a **dataAbilityHelper** object, connect the current ability to a specific Service ability, and disconnect the current ability from a specific Service ability. +The **particleAbility** module provides APIs for operating a ServiceAbility. You can use the APIs to start and terminate a ParticleAbility, obtain a **dataAbilityHelper** object, and connect to or disconnect from a ServiceAbility. > **NOTE** > @@ -21,7 +21,12 @@ import particleAbility from '@ohos.ability.particleAbility' startAbility(parameter: StartAbilityParameter, callback: AsyncCallback\): void -Starts a Particle ability. This API uses an asynchronous callback to return the result. +Starts a ParticleAbility. This API uses an asynchronous callback to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -48,7 +53,7 @@ particleAbility.startAbility( flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, deviceId: "", bundleName: "com.example.Data", - abilityName: "com.example.Data.MainAbility", + abilityName: "EntryAbility", uri: "" }, }, @@ -62,7 +67,12 @@ particleAbility.startAbility( startAbility(parameter: StartAbilityParameter): Promise\; -Starts a Particle ability. This API uses a promise to return the result. +Starts a ParticleAbility. This API uses a promise to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -94,7 +104,7 @@ particleAbility.startAbility( flags: wantConstant.Flags.FLAG_AUTH_READ_URI_PERMISSION, deviceId: "", bundleName: "com.example.Data", - abilityName: "com.example. Data.MainAbility", + abilityName: "EntryAbility", uri: "" }, }, @@ -107,7 +117,7 @@ particleAbility.startAbility( terminateSelf(callback: AsyncCallback\): void -Terminates this Particle ability. This API uses an asynchronous callback to return the result. +Terminates this ParticleAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -133,7 +143,7 @@ particleAbility.terminateSelf( terminateSelf(): Promise\ -Terminates this Particle ability. This API uses a promise to return the result. +Terminates this ParticleAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -161,6 +171,12 @@ acquireDataAbilityHelper(uri: string): DataAbilityHelper Obtains a **dataAbilityHelper** object. +Observe the following when using this API: + - To access a DataAbility of another application, the target application must be configured with associated startup (**AssociateWakeUp** set to **true**). + - If an application running in the background needs to call this API to access a DataAbility, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel **Parameters** @@ -173,7 +189,7 @@ Obtains a **dataAbilityHelper** object. | Type | Description | | ----------------- | -------------------------------------------- | -| DataAbilityHelper | A utility class used to help other abilities access a Data ability.| +| [DataAbilityHelper](js-apis-inner-ability-dataAbilityHelper.md) | A utility class used to help other abilities access a DataAbility.| **Example** @@ -222,7 +238,7 @@ let wantAgentInfo = { wants: [ { bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility" + abilityName: "EntryAbility" } ], operationType: wantAgent.OperationType.START_ABILITY, @@ -283,7 +299,7 @@ let wantAgentInfo = { wants: [ { bundleName: "com.example.myapplication", - abilityName: "com.example.myapplication.MainAbility" + abilityName: "EntryAbility" } ], operationType: wantAgent.OperationType.START_ABILITY, @@ -349,7 +365,7 @@ particleAbility.cancelBackgroundRunning(callback); cancelBackgroundRunning(): Promise<void>; -Requests a continuous task from the system. This API uses a promise to return the result. You are advised to use the new API [backgroundTaskManager.stopBackgroundRunning](js-apis-backgroundTaskManager.md#backgroundtaskmanagerstopbackgroundrunning8-1). +Requests to cancel a continuous task from the system. This API uses a promise to return the result. You are advised to use the new API [backgroundTaskManager.stopBackgroundRunning](js-apis-backgroundTaskManager.md#backgroundtaskmanagerstopbackgroundrunning8-1). **System capability**: SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask @@ -376,7 +392,13 @@ particleAbility.cancelBackgroundRunning().then(() => { connectAbility(request: Want, options:ConnectOptions): number -Connects this ability to a specific Service ability. This API uses a callback to return the result. +Connects this ability to a specific ServiceAbility. + +Observe the following when using this API: + - To connect to a ServiceAbility of another application, the target application must be configured with associated startup (**AssociateWakeUp** set to **true**).. + - If an application running in the background needs to call this API to connect to a ServiceAbility, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the FA model, see [Component Startup Rules (FA Model)](../../application-models/component-startup-rules-fa.md). **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -384,23 +406,14 @@ Connects this ability to a specific Service ability. This API uses a callback to | Name | Type | Mandatory| Description | | ------- | -------------- | ---- | ---------------------------- | -| request | [Want](js-apis-application-want.md) | Yes | Service ability to connect.| -| options | ConnectOptions | Yes | Callback used to return the result. | - - -ConnectOptions +| request | [Want](js-apis-application-want.md) | Yes | ServiceAbility to connect.| +| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes | Connection options. | -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -| Name | Type | Mandatory | Description | -| ------------ | -------- | ---- | ------------------------- | -| onConnect | function | Yes | Callback invoked when the connection is successful. | -| onDisconnect | function | Yes | Callback invoked when the connection fails. | -| onFailed | function | Yes | Callback invoked when **connectAbility** fails to be called.| **Example** ```ts +import particleAbility from '@ohos.ability.particleAbility' import rpc from '@ohos.rpc' function onConnectCallback(element, remote) { @@ -439,7 +452,7 @@ particleAbility.disconnectAbility(connId).then((data) => { disconnectAbility(connection: number, callback:AsyncCallback\): void; -Disconnects this ability from the Service ability. This API uses a callback to return the result. +Disconnects this ability from a specific ServiceAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -452,7 +465,8 @@ Disconnects this ability from the Service ability. This API uses a callback to r **Example** ```ts -import rpc from '@ohos.rpc' +import particleAbility from '@ohos.ability.particleAbility'; +import rpc from '@ohos.rpc'; function onConnectCallback(element, remote) { console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); @@ -489,7 +503,7 @@ var result = particleAbility.disconnectAbility(connId).then((data) => { disconnectAbility(connection: number): Promise\; -Disconnects this ability from the Service ability. This API uses a promise to return the result. +Disconnects this ability from a specific ServiceAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -502,7 +516,8 @@ Disconnects this ability from the Service ability. This API uses a promise to re **Example** ```ts -import rpc from '@ohos.rpc' +import particleAbility from '@ohos.ability.particleAbility'; +import rpc from '@ohos.rpc'; function onConnectCallback(element, remote) { console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); @@ -538,7 +553,7 @@ particleAbility.disconnectAbility(connId).then((data) => { ## ErrorCode -Enumerates error codes. +Enumerates the error codes. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel diff --git a/en/application-dev/reference/apis/js-apis-ability-wantConstant.md b/en/application-dev/reference/apis/js-apis-ability-wantConstant.md index 30fb8b3b97..87b52688c5 100644 --- a/en/application-dev/reference/apis/js-apis-ability-wantConstant.md +++ b/en/application-dev/reference/apis/js-apis-ability-wantConstant.md @@ -1,4 +1,4 @@ -# @ohos.ability.wantConstant +# @ohos.ability.wantConstant (wantConstant) The **wantConstant** module provides the actions, entities, and flags used in **Want** objects. @@ -14,7 +14,7 @@ import wantConstant from '@ohos.ability.wantConstant'; ## wantConstant.Action -Enumerates the action constants of the **Want** object. +Enumerates the action constants of the **Want** object. **action** specifies the operation to execute. **System capability**: SystemCapability.Ability.AbilityBase @@ -57,7 +57,7 @@ Enumerates the action constants of the **Want** object. ## wantConstant.Entity -Enumerates the entity constants of the **Want** object. +Enumerates the entity constants of the **Want** object. **entity** specifies additional information of the target ability. **System capability**: SystemCapability.Ability.AbilityBase @@ -72,25 +72,25 @@ Enumerates the entity constants of the **Want** object. ## wantConstant.Flags -Describes flags. +Enumerates the flags that specify how the Want will be handled. **System capability**: SystemCapability.Ability.AbilityBase | Name | Value | Description | | ------------------------------------ | ---------- | ------------------------------------------------------------ | -| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | Indicates the permission to read the URI. | -| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | Indicates the permission to write data to the URI. | +| FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | Grants the permission to read the URI. | +| FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | Grants the permission to write data to the URI. | | FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | Returns the result to the ability. | | FLAG_ABILITY_CONTINUATION | 0x00000008 | Indicates whether the ability on the local device can be continued on a remote device. | | FLAG_NOT_OHOS_COMPONENT | 0x00000010 | Indicates that a component does not belong to OHOS. | | FLAG_ABILITY_FORM_ENABLED | 0x00000020 | Indicates that an ability is enabled. | -| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.
        **System API**: This is a system API and cannot be called by third-party applications. | -| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | Indicates the permission to verify URIs by prefix matching.
        **System API**: This is a system API and cannot be called by third-party applications.| -| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | Supports cross-device startup in a distributed scheduler. | -| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | Indicates that the Service ability is started regardless of whether the host application has been started. | +| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Grants the permission to make the URI persistent.
        **System API**: This is a system API and cannot be called by third-party applications. | +| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | Grants the permission to verify URIs by prefix matching.
        **System API**: This is a system API and cannot be called by third-party applications.| +| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | Indicates the support for cross-device startup in the distributed scheduler. | +| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | Indicates that the ServiceAbility is started regardless of whether the host application has been started. | | FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | Indicates that ability continuation is reversible.
        **System API**: This is a system API and cannot be called by third-party applications. | | FLAG_INSTALL_ON_DEMAND | 0x00000800 | Indicates that the specific ability will be installed if it has not been installed. | | FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | Indicates that the specific ability will be installed in the background if it has not been installed. | | FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | Clears other operation missions. This flag can be set for the **Want** object in the **startAbility** API passed to [ohos.app.Context](js-apis-ability-context.md) and must be used together with **flag_ABILITY_NEW_MISSION**.| -| FLAG_ABILITY_NEW_MISSION | 0x10000000 | Indicates the operation of creating a mission on the history mission stack. | -| FLAG_ABILITY_MISSION_TOP | 0x20000000 | Starts the mission on the top of the existing mission stack; creates an ability instance if no mission exists.| +| FLAG_ABILITY_NEW_MISSION | 0x10000000 | Creates a mission on the history mission stack. | +| FLAG_ABILITY_MISSION_TOP | 0x20000000 | Reuses an ability instance if it is on the top of an existing mission stack; creates an ability instance otherwise.| diff --git a/en/application-dev/reference/apis/js-apis-accessibility-extension-context.md b/en/application-dev/reference/apis/js-apis-accessibility-extension-context.md deleted file mode 100644 index 9fee7500ea..0000000000 --- a/en/application-dev/reference/apis/js-apis-accessibility-extension-context.md +++ /dev/null @@ -1,379 +0,0 @@ -# AccessibilityExtensionContext - -The **AccessibilityExtensionContext** module, inherited from **ExtensionContext**, provides context for **Accessibility Extension** abilities. - -You can use the APIs of this module to configure the concerned information, obtain root information, and inject gestures. - -> **NOTE** -> -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> The APIs of this module can be used only in the stage model. - -## Usage - -Before using the **AccessibilityExtensionContext** module, you must define a child class that inherits from **AccessibilityExtensionAbility**. - -```js -import AccessibilityExtensionAbility from '@ohos.application.AccessibilityExtensionAbility' -class MainAbility extends AccessibilityExtensionAbility { - onConnect(): void { - console.log("AxExtensionAbility onConnect"); - let axContext = this.context; - } -} -``` - -## FocusDirection - -Enumerates the focus directions. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -| Name | Description | -| -------- | ------- | -| up | Search for the next focusable item above the current item in focus.| -| down | Search for the next focusable item below the current item in focus.| -| left | Search for the next focusable item on the left of the current item in focus.| -| right | Search for the next focusable item on the right of the current item in focus.| -| forward | Search for the next focusable item before the current item in focus.| -| backward | Search for the next focusable item after the current item in focus.| - -## FocusType - -Enumerates the focus types. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -| Name | Description | -| ------------- | ----------- | -| accessibility | Accessibility focus.| -| normal | Normal focus. | - -## Rect - -Defines a rectangle. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -| Name | Type | Readable | Writable | Description | -| ------ | ------ | ---- | ---- | --------- | -| left | number | Yes | No | Left boundary of the rectangle.| -| top | number | Yes | No | Top boundary of the rectangle.| -| width | number | Yes | No | Width of the rectangle. | -| height | number | Yes | No | Height of the rectangle. | - -## WindowType - -Enumerates the window types. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -| Name | Description | -| ----------- | --------- | -| application | Application window.| -| system | System window.| - -## AccessibilityExtensionContext.setTargetBundleName - -setTargetBundleName(targetNames: Array\): Promise\; - -Sets the concerned target bundle. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| ----------- | ------------------- | ---- | -------- | -| targetNames | Array<string> | Yes | Name of the target bundle.| - -**Return value** - -| Type | Description | -| ---------------------- | --------------------- | -| Promise<boolean> | Promise used to return the result.| - -**Example** - -```ts -this.context.setTargetBundleName(['com.ohos.mms']); -``` - -## AccessibilityExtensionContext.getFocusElement - -getFocusElement(isAccessibilityFocus?: boolean): Promise\; - -Obtains the focus element. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| -------------------- | ------- | ---- | ------------------- | -| isAccessibilityFocus | boolean | No | Whether the obtained focus element is an accessibility focus. The default value is **false**.| - -**Return value** - -| Type | Description | -| ----------------------------------- | ---------------------- | -| Promise<AccessibilityElement> | Promise used to return the current focus element.| - -**Example** - -```ts -this.context.getFocusElement().then(focusElement => { - console.log("AxExtensionAbility getFocusElement success"); -}) -``` - -## AccessibilityExtensionContext.getWindowRootElement - -getWindowRootElement(windowId?: number): Promise\; - -Obtains the root element of a window. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| -------- | ------ | ---- | --------------------------- | -| windowId | number | No | Window for which you want to obtain the root element. If this parameter is not specified, it indicates the current active window.| - -**Return value** - -| Type | Description | -| ----------------------------------- | ----------------------- | -| Promise<AccessibilityElement> | Promise used to return the root element.| - -**Example** - -```ts -this.context.getWindowRootElement().then(rootElement => { - console.log("AxExtensionAbility getWindowRootElement success"); -}) -``` - -## AccessibilityExtensionContext.getWindows - -getWindows(displayId?: number): Promise>; - -Obtains the list of windows visible to users. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| --------- | ------ | ---- | ------------------------- | -| displayId | number | No | Screen from which the window information is obtained. If this parameter is not specified, it indicates the default home screen.| - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------------------------ | -| Promise<Array<AccessibilityElement>> | Promise used to return the window list. | - -**Example** - -```ts -this.context.getWindows().then(windows => { - console.log("AxExtensionAbility getWindows success"); -}) -``` - -## AccessibilityExtensionContext.injectGesture - -injectGesture(gesturePath: GesturePath, callback: AsyncCallback\): void - -Injects a gesture. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| ----------- | ---------------------------------------- | ---- | -------------- | -| gesturePath | [GesturePath](js-apis-application-AccessibilityExtensionAbility.md#GesturePath) | Yes | Path of the gesture to inject. | -| callback | AsyncCallback<void> | Yes | Callback used to return the result.| - -**Example** - -```ts -let gesturePath = new GesturePath(100); -for (let i = 0; i < 10; i++) { - let gesturePoint = new GesturePosition(100, i * 200); - gesturePath.positions.push(gesturePoint); -} -this.context.gestureInject(gesturePath, (result) => { - console.info('gestureInject result: ' + result); -}) -``` -## AccessibilityElement.attributeNames - -attributeNames\(): Promise\>; - -Obtains all attribute names of this element. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------------------------ | -| Promise<Array<T>> | Promise used to return all attribute names of the element.| - -**Example** - -```ts -let accessibilityElement; -try { - accessibilityElement.attributeNames().then((values) => { - console.log("get attribute names success"); - }).catch((err) => { - console.log("get attribute names err: " + JSON.stringify(err)); - }); -} catch (e) { - console.log("An unexpected error occurred. Error:" + e); -} -``` - -## AccessibilityElement.attributeValue - -attributeValue\(attributeName: T): Promise\; - -Obtains the attribute value based on an attribute name. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| ----------- | ---------------------------------------- | ---- | -------------- | -| attributeName | T | Yes | Attribute name. | - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------------------------ | -| Promise<Array<ElementAttributeValues[T]>> | Promise used to return the attribute value.| - -**Example** - -```ts -let accessibilityElement; -try { - let attributeName = 'name'; - accessibilityElement.attributeValue(attributeName).then((value) => { - console.log("get attribute value by name success"); - }).catch((err) => { - console.log("get attribute value by name err: " + JSON.stringify(err)); - }); -} catch (e) { - console.log("An unexpected error occurred. Error:" + e); -} -``` - -## AccessibilityElement.actionNames - -actionNames(): Promise\>; - -Obtains the names of all actions supported by this element. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------------------------ | -| Promise<Array<string>> | Promise used to return the names of all actions supported by the element.| - -**Example** - -```ts -let accessibilityElement; -try { - accessibilityElement.actionNames().then((values) => { - console.log("get action names success"); - }).catch((err) => { - console.log("get action names err: " + JSON.stringify(err)); - }); -} catch (e) { - console.log("An unexpected error occurred. Error:" + e); -} -``` - -## AccessibilityElement.performAction - -performAction(actionName: string, parameters?: object): Promise\; - -Performs an action based on the specified action name. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| ----------- | ---------------------------------------- | ---- | -------------- | -| actionName | string | Yes | Action name. | -| parameters | object | No | Parameter required for performing the target action. | - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------------------------ | -| Promise<Array<boolean>> | Promise used to return the result.| - -**Example** - -```ts -let accessibilityElement; -try { - - accessibilityElement.performAction('action').then((result) => { - console.info('perform action result: ' + result); - }).catch((err) => { - console.log("perform action err: " + JSON.stringify(err)); - }); -} catch (e) { - console.log("An unexpected error occurred. Error:" + e); -} -``` - -## AccessibilityElement.findElement - -findElement(type: 'content', condition: string): Promise\>; - -Queries the information about this element based on the specified information type and condition. - -**System capability**: SystemCapability.BarrierFree.Accessibility.Core - -**Parameters** - -| Name | Type | Mandatory | Description | -| ----------- | ---------------------------------------- | ---- | -------------- | -| type | string | Yes | Information type. The value is fixed at **'content'**. | -| condition | string | Yes | Search criteria. | - -**Return value** - -| Type | Description | -| ---------------------------------------- | ------------------------ | -| Promise<Array<T>> | Promise used to return the result.| - -**Example** - -```ts -let accessibilityElement; -try { - let condition = 'keyword'; - accessibilityElement.findElement('content', condition).then((values) => { - console.log("find element success"); - }).catch((err) => { - console.log("find element err: " + JSON.stringify(err)); - }); -} catch (e) { - console.log("An unexpected error occurred. Error:" + e); -} -``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-ability.md b/en/application-dev/reference/apis/js-apis-app-ability-ability.md index 59e1e229f2..cfa11ddc30 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-ability.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-ability.md @@ -1,18 +1,12 @@ -# @ohos.app.ability.Ability +# @ohos.app.ability.Ability (Ability Base Class) -The **Ability** module manages the ability lifecycle and context, such as creating and destroying an ability, and dumping client information. +This is the base class of [UIAbility](js-apis-app-ability-uiAbility.md) and [ExtensionAbility](js-apis-app-ability-extensionAbility.md). It provides the callbacks for system configuration updates and memory level updates. You cannot inherit from this base class. > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. -## Modules to Import - -```ts -import Ability from '@ohos.app.ability.Ability'; -``` - ## Ability.onConfigurationUpdate onConfigurationUpdate(newConfig: Configuration): void; @@ -23,40 +17,45 @@ Called when the configuration of the environment where the ability is running is **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | newConfig | [Configuration](js-apis-app-ability-configuration.md) | Yes| New configuration.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| newConfig | [Configuration](js-apis-app-ability-configuration.md) | Yes| New configuration.| **Example** - ```ts - class myAbility extends Ability { - onConfigurationUpdate(config) { - console.log('onConfigurationUpdate, config:' + JSON.stringify(config)); - } - } +// You are not allowed to inherit from the top-level base class Ability. Therefore, the derived class UIAbility is used as an example. +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyUIAbility extends UIAbility { + onConfigurationUpdate(config) { + console.log('onConfigurationUpdate, config:' + JSON.stringify(config)); + } +} ``` ## Ability.onMemoryLevel onMemoryLevel(level: AbilityConstant.MemoryLevel): void; -Called when the system has decided to adjust the memory level. For example, this API can be used when there is not enough memory to run as many background processes as possible. +Called when the system adjusts the memory level. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | level | [AbilityConstant.MemoryLevel](js-apis-app-ability-abilityConstant.md#abilityconstantmemorylevel) | Yes| Memory level that indicates the memory usage status. When the specified memory level is reached, a callback will be invoked and the system will start adjustment.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| level | [AbilityConstant.MemoryLevel](js-apis-app-ability-abilityConstant.md#abilityconstantmemorylevel) | Yes| New memory level.| **Example** - + ```ts - class myAbility extends Ability { +// You are not allowed to inherit from the top-level base class Ability. Therefore, the derived class UIAbility is used as an example. +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyUIAbility extends UIAbility { onMemoryLevel(level) { console.log('onMemoryLevel, level:' + JSON.stringify(level)); } - } +} ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-abilityConstant.md b/en/application-dev/reference/apis/js-apis-app-ability-abilityConstant.md index 5d6c93e6e2..766636a7c7 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-abilityConstant.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-abilityConstant.md @@ -1,8 +1,6 @@ -# @ohos.app.ability.AbilityConstant +# @ohos.app.ability.AbilityConstant (AbilityConstant) -The **AbilityConstant** module provides ability launch parameters. - -The parameters include the initial launch reasons, reasons for the last exit, and ability continuation results. +The **AbilityConstant** module defines the ability-related enums, including the initial launch reasons, reasons for the last exit, ability continuation results, and window modes. > **NOTE** > @@ -17,31 +15,48 @@ import AbilityConstant from '@ohos.app.ability.AbilityConstant'; ## Attributes +## AbilityConstant.LaunchParam + +Defines the parameters for starting an ability. + **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| launchReason | LaunchReason| Yes| Yes| Ability launch reason.| -| lastExitReason | LastExitReason | Yes| Yes| Reason for the last exit.| +| launchReason | [LaunchReason](#abilityconstantlaunchreason)| Yes| Yes| Ability launch reason, which is an enumerated type.| +| lastExitReason | [LastExitReason](#abilityconstantlastexitreason) | Yes| Yes| Reason for the last exit, which is an enumerated type.| ## AbilityConstant.LaunchReason -Enumerates the ability launch reasons. +Enumerates the initial ability launch reasons. You can use it together with [onCreate(want, launchParam)](js-apis-app-ability-uiAbility.md#uiabilityoncreate) of [Ability](js-apis-app-ability-uiAbility.md) to complete different operations. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Value | Description | | ----------------------------- | ---- | ------------------------------------------------------------ | | UNKNOWN | 0 | Unknown reason.| -| START_ABILITY | 1 | Ability startup.| -| CALL | 2 | Call.| -| CONTINUATION | 3 | Ability continuation.| -| APP_RECOVERY | 4 | Application recovery.| +| START_ABILITY | 1 | The ability is started by calling [startAbility](js-apis-ability-context.md#abilitycontextstartability).| +| CALL | 2 | The ability is started by calling [startAbilityByCall](js-apis-ability-context.md#abilitycontextstartabilitybycall).| +| CONTINUATION | 3 | The ability is started by means of cross-device migration.| +| APP_RECOVERY | 4 | The ability is automatically started when the application is restored from a fault.| + +**Example** +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyAbility extends UIAbility { + onCreate(want, launchParam) { + if (launchParam.launchReason === AbilityConstant.LaunchReason.START_ABILITY) { + console.log("The ability has been started by the way of startAbility."); + } + } +} +``` ## AbilityConstant.LastExitReason -Enumerates reasons for the last exit. +Enumerates the reasons for the last exit. You can use it together with [onCreate(want, launchParam)](js-apis-app-ability-uiAbility.md#uiabilityoncreate) of [Ability](js-apis-app-ability-uiAbility.md) to complete different operations. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -49,12 +64,25 @@ Enumerates reasons for the last exit. | ----------------------------- | ---- | ------------------------------------------------------------ | | UNKNOWN | 0 | Unknown reason.| | ABILITY_NOT_RESPONDING | 1 | The ability does not respond.| -| NORMAL | 2 | Normal status.| +| NORMAL | 2 | The ability exits normally.| +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyAbility extends UIAbility { + onCreate(want, launchParam) { + if (launchParam.lastExitReason === AbilityConstant.LastExitReason.ABILITY_NOT_RESPONDING) { + console.log("The ability has exit last because the ability was not responding."); + } + } +} +``` ## AbilityConstant.OnContinueResult -Enumerates ability continuation results. +Enumerates the ability continuation results. You can use it together with [onContinue(wantParam)](js-apis-app-ability-uiAbility.md#uiabilityoncontinue) of [Ability](js-apis-app-ability-uiAbility.md) to complete different operations. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -64,9 +92,21 @@ Enumerates ability continuation results. | REJECT | 1 | Continuation denied.| | MISMATCH | 2 | Mismatch.| +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyAbility extends UIAbility { + onContinue(wantParam) { + return AbilityConstant.OnConinueResult.AGREE; + } +} +``` + ## AbilityConstant.WindowMode -Enumerates the window modes in which an ability can be displayed at startup. +Enumerates the window modes in which an ability can be displayed at startup. It can be used in **startAbility()** to specify the window mode when the ability is started. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -78,36 +118,81 @@ Enumerates the window modes in which an ability can be displayed at startup. | WINDOW_MODE_SPLIT_SECONDARY | 101 | The ability is displayed in the secondary window in split-screen mode. | | WINDOW_MODE_FLOATING | 102 | The ability is displayed in a floating window.| +**Example** + +```ts +let want = { + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" +}; +let option = { + windowMode: AbilityConstant.WindowMode.WINDOW_MODE_FULLSCREEN +}; + +// Ensure that the context is obtained. +this.context.startAbility(want, option).then(()={ + console.log("Succeed to start ability."); +}).catch((error)=>{ + console.log("Failed to start ability with error: " + JSON.stringify(error)); +}); +``` + ## AbilityConstant.MemoryLevel -Enumerates the memory levels. +Enumerates the memory levels. You can use it in [onMemoryLevel(level)](js-apis-app-ability-ability.md#abilityonmemorylevel) of [Ability](js-apis-app-ability-ability.md) to complete different operations. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Value| Description | -| --- | --- | --- | -| MEMORY_LEVEL_MODERATE | 0 | Moderate memory usage. | -| MEMORY_LEVEL_LOW | 1 | Low memory usage. | +| --- | --- | --- | +| MEMORY_LEVEL_MODERATE | 0 | Moderate memory usage.| +| MEMORY_LEVEL_LOW | 1 | Low memory usage. | | MEMORY_LEVEL_CRITICAL | 2 | High memory usage. | +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyAbility extends UIAbility { + onMemoryLevel(level) { + if (level === AbilityConstant.MemoryLevel.MEMORY_LEVEL_CRITICAL) { + console.log("The memory of device is critical, please release some memory."); + } + } +} +``` + ## AbilityConstant.OnSaveResult -Enumerates the result types for the operation of saving application data. +Enumerates the result types for the operation of saving application data. You can use it in [onSaveState(reason, wantParam)](js-apis-app-ability-uiAbility.md#uiabilityonsavestate) of [Ability](js-apis-app-ability-uiAbility.md) to complete different operations. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Value | Description | | ----------------------------- | ---- | ------------------------------------------------------------ | -| ALL_AGREE | 0 | Agreed to save the status.| +| ALL_AGREE | 0 | Always agreed to save the status.| | CONTINUATION_REJECT | 1 | Rejected to save the status in continuation.| | CONTINUATION_MISMATCH | 2 | Continuation mismatch.| | RECOVERY_AGREE | 3 | Agreed to restore the saved status.| | RECOVERY_REJECT | 4 | Rejected to restore the saved state.| -| ALL_REJECT | 5 | Rejected to save the status.| +| ALL_REJECT | 5 | Always rejected to save the status.| + +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyAbility extends UIAbility { + onSaveState(reason, wantParam) { + return AbilityConstant.OnSaveResult.ALL_AGREE; + } +} +``` ## AbilityConstant.StateType -Enumerates the scenarios for saving application data. +Enumerates the scenarios for saving application data. You can use it in [onSaveState(reason, wantParam)](js-apis-app-ability-uiAbility.md#uiabilityonsavestate) of [Ability](js-apis-app-ability-uiAbility.md) to complete different operations. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -115,3 +200,18 @@ Enumerates the scenarios for saving application data. | ----------------------------- | ---- | ------------------------------------------------------------ | | CONTINUATION | 0 | Saving the status in continuation.| | APP_RECOVERY | 1 | Saving the status in application recovery.| + +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class MyAbility extends UIAbility { + onSaveState(reason, wantParam) { + if (reason === AbilityConstant.StateType.CONTINUATION) { + console.log("Save the ability data when the ability continuation."); + } + return AbilityConstant.OnSaveResult.ALL_AGREE; + } +} +``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-abilityDelegatorRegistry.md b/en/application-dev/reference/apis/js-apis-app-ability-abilityDelegatorRegistry.md index 78fb6181c0..5cfa437047 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-abilityDelegatorRegistry.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-abilityDelegatorRegistry.md @@ -1,26 +1,27 @@ -# @ohos.app.ability.abilityDelegatorRegistry +# @ohos.app.ability.abilityDelegatorRegistry (AbilityDelegatorRegistry) -The **AbilityDelegatorRegistry** module provides APIs for storing the global registers of the registered **AbilityDelegator** and **AbilityDelegatorArgs** objects. You can use the APIs to obtain the **AbilityDelegator** and **AbilityDelegatorArgs** objects of an application. +**AbilityDelegatorRegistry**, a module of the [Test Framework](../../ability-deprecated/ability-delegator.md), is used to obtain [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) and [AbilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md) objects. **AbilityDelegator** provides APIs for creating **AbilityMonitor** objects, which can be used to listen for ability lifecycle changes. **AbilityDelegatorArgs** provides APIs for obtaining test parameters. > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs provided by this module can be used only in the test framework. ## Modules to Import ```ts -import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry' +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; ``` ## AbilityLifecycleState -Enumerates the ability lifecycle states. +Enumerates the ability lifecycle states. It can be used in [getAbilityState(ability)](js-apis-inner-application-abilityDelegator.md#getabilitystate9) of [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) to return different ability lifecycle states. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Value | Description | | ------------- | ---- | --------------------------- | -| UNINITIALIZED | 0 | The ability is in an invalid state. | +| UNINITIALIZED | 0 | The ability is in an invalid state. | | CREATE | 1 | The ability is created.| | FOREGROUND | 2 | The ability is running in the foreground. | | BACKGROUND | 3 | The ability is running in the background. | @@ -30,7 +31,7 @@ Enumerates the ability lifecycle states. getAbilityDelegator(): AbilityDelegator -Obtains the **AbilityDelegator** object of the application. +Obtains an [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) object. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -38,20 +39,33 @@ Obtains the **AbilityDelegator** object of the application. | Type | Description | | ------------------------------------------------------------ | ------------------------------------------------------------ | -| [AbilityDelegator](js-apis-inner-application-abilityDelegator.md#AbilityDelegator) | [AbilityDelegator](js-apis-inner-application-abilityDelegator.md#AbilityDelegator) object, which can be used to schedule functions related to the test framework.| +| [AbilityDelegator](js-apis-inner-application-abilityDelegator.md#AbilityDelegator) | [AbilityDelegator](js-apis-inner-application-abilityDelegator.md#AbilityDelegator) object, which can be used to schedule the functionalities of the test framework.| **Example** ```ts -var abilityDelegator; -abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + +let want = { + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" +}; +abilityDelegator.startAbility(want, (err) => { + if (err.code !== 0) { + console.log("Success start ability."); + } else { + console.log("Failed start ability, error: " + JSON.stringify(err)); + } +}) ``` ## AbilityDelegatorRegistry.getArguments getArguments(): AbilityDelegatorArgs -Obtains the **AbilityDelegatorArgs** object of the application. +Obtains an [AbilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md) object. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -64,8 +78,11 @@ Obtains the **AbilityDelegatorArgs** object of the application. **Example** ```ts -var args = AbilityDelegatorRegistry.getArguments(); +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +let args = AbilityDelegatorRegistry.getArguments(); console.info("getArguments bundleName:" + args.bundleName); +console.info("getArguments parameters:" + JSON.stringify(args.parameters)); console.info("getArguments testCaseNames:" + args.testCaseNames); console.info("getArguments testRunnerClassName:" + args.testRunnerClassName); ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md b/en/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md index f3e6e08396..84be193507 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-abilityLifecycleCallback.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.abilityLifecycleCallback +# @ohos.app.ability.abilityLifecycleCallback (AbilityLifecycleCallback) -The **AbilityLifecycleCallback** module provides callbacks, such as **onAbilityCreate**, **onWindowStageCreate**, and **onWindowStageDestroy**, to receive lifecycle state changes in the application context. +The **AbilityLifecycleCallback** module defines the callbacks to receive lifecycle changes of [ApplicationContext](js-apis-inner-application-applicationContext.md). The callbacks include [onAbilityCreate](#abilitylifecyclecallbackonabilitycreate), [onWindowStageCreate](#abilitylifecyclecallbackonwindowstagecreate), [onWindowStageActive](#abilitylifecyclecallbackonwindowstageactive), [onWindowStageInactive](#abilitylifecyclecallbackonwindowstageinactive), [onWindowStageDestroy](#abilitylifecyclecallbackonwindowstagedestroy), [onAbilityDestroy](#abilitylifecyclecallbackonabilitydestroy), [onAbilityForeground](#abilitylifecyclecallbackonabilityforeground), [onAbilityBackground](#abilitylifecyclecallbackonabilitybackground), and [onAbilityContinue](#abilitylifecyclecallbackonabilitycontinue). > **NOTE** > @@ -25,10 +25,18 @@ Called when an ability is created. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onAbilityCreate(ability){ + console.log("AbilityLifecycleCallback onAbilityCreate."); + } +}; +``` ## AbilityLifecycleCallback.onWindowStageCreate @@ -40,11 +48,19 @@ Called when the window stage of an ability is created. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onWindowStageCreate(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageCreate."); + } +}; +``` ## AbilityLifecycleCallback.onWindowStageActive @@ -56,11 +72,19 @@ Called when the window stage of an ability gains focus. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onWindowStageActive(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageActive."); + } +}; +``` ## AbilityLifecycleCallback.onWindowStageInactive @@ -72,11 +96,19 @@ Called when the window stage of an ability loses focus. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onWindowStageInactive(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageInactive."); + } +}; +``` ## AbilityLifecycleCallback.onWindowStageDestroy @@ -88,11 +120,19 @@ Called when the window stage of an ability is destroyed. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onWindowStageDestroy(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageDestroy."); + } +}; +``` ## AbilityLifecycleCallback.onAbilityDestroy @@ -104,10 +144,18 @@ Called when an ability is destroyed. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onAbilityDestroy(ability){ + console.log("AbilityLifecycleCallback onAbilityDestroy."); + } +}; +``` ## AbilityLifecycleCallback.onAbilityForeground @@ -119,10 +167,18 @@ Called when an ability is switched from the background to the foreground. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onAbilityForeground(ability){ + console.log("AbilityLifecycleCallback onAbilityForeground."); + } +}; +``` ## AbilityLifecycleCallback.onAbilityBackground @@ -134,10 +190,18 @@ Called when an ability is switched from the foreground to the background. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| +**Example** +```ts +let abilityLifecycleCallback = { + onAbilityBackground(ability){ + console.log("AbilityLifecycleCallback onAbilityBackground."); + } +}; +``` ## AbilityLifecycleCallback.onAbilityContinue @@ -149,63 +213,91 @@ Called when an ability is continued on another device. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [UIAbility](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [UIAbility](js-apis-app-ability-uiAbility.md) | Yes| **Ability** object.| + +**Example** +```ts +let abilityLifecycleCallback = { + onAbilityContinue(ability){ + console.log("AbilityLifecycleCallback onAbilityContinue."); + } +}; +``` + +## Usage of AbilityLifecycleCallback **Example** - - - ```ts - import UIAbility from "@ohos.app.ability.UIAbility"; - - export default class MyAbility extends UIAbility { - onCreate() { - console.log("MyAbility onCreate") - let AbilityLifecycleCallback = { - onAbilityCreate(ability){ - console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability)); - }, - onWindowStageCreate(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageCreate ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageCreate windowStage:" + JSON.stringify(windowStage)); - }, - onWindowStageActive(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageActive ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageActive windowStage:" + JSON.stringify(windowStage)); - }, - onWindowStageInactive(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageInactive ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageInactive windowStage:" + JSON.stringify(windowStage)); - }, - onWindowStageDestroy(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageDestroy ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageDestroy windowStage:" + JSON.stringify(windowStage)); - }, - onAbilityDestroy(ability){ - console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability)); - }, - onAbilityForeground(ability){ - console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability)); - }, - onAbilityBackground(ability){ - console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability)); - }, - onAbilityContinue(ability){ - console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability)); - } - } - // 1. Obtain applicationContext through the context attribute. - let applicationContext = this.context.getApplicationContext(); - // 2. Use applicationContext to register a listener for the ability lifecycle in the application. - let lifecycleid = applicationContext.on("abilityLifecycle", AbilityLifecycleCallback); - console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleid)); - }, - onDestroy() { - let applicationContext = this.context.getApplicationContext(); - applicationContext.off("abilityLifecycle", lifecycleid, (error, data) => { - console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error)); - }); - } - } - ``` + +MyFirstAbility.ts +```ts +import AbilityLifecycleCallback from "@ohos.app.ability.AbilityLifecycleCallback"; +import AbilityStage from "@ohos.app.ability.AbilityStage"; +import UIAbility from '@ohos.app.ability.UIAbility'; + +// Declare the ability lifecycle callbacks. A listener can be registered in applicationContext only after all the callbacks are configured. +let abilityLifecycleCallback = { + onAbilityCreate(ability){ + console.log("AbilityLifecycleCallback onAbilityCreate."); + }, + onWindowStageCreate(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageCreate."); + }, + onWindowStageActive(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageActive."); + }, + onWindowStageInactive(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageInactive."); + }, + onWindowStageDestroy(ability, windowStage){ + console.log("AbilityLifecycleCallback onWindowStageDestroy."); + }, + onAbilityDestroy(ability){ + console.log("AbilityLifecycleCallback onAbilityDestroy."); + }, + onAbilityForeground(ability){ + console.log("AbilityLifecycleCallback onAbilityForeground."); + }, + onAbilityBackground(ability){ + console.log("AbilityLifecycleCallback onAbilityBackground."); + }, + onAbilityContinue(ability){ + console.log("AbilityLifecycleCallback onAbilityContinue."); + } +}; + +export default class MyFirstAbility extends UIAbility { + onCreate() { + console.log("MyAbilityStage onCreate"); + // 1. Obtain applicationContext through the context attribute. + let applicationContext = this.context.getApplicationContext(); + // 2. Register the listener for the ability lifecycle changes through the applicationContext object. + try { + globalThis.lifecycleId = applicationContext.on("abilityLifecycle", abilityLifecycleCallback); + console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId)); + } catch (paramError) { + console.log("error: " + paramError.code + " ," + paramError.message); + } + } +} +``` + +MySecondAbility.ts +```ts +import UIAbility from "ohos.app.ability.UIAbility"; + +export default class MySecondAbility extends UIAbility { + onDestroy() { + let applicationContext = this.context.getApplicationContext(); + // 3. Deregister the listener for the environment changes through the applicationContext object. + applicationContext.off("abilityLifecycle", globalThis.lifecycleId, (error) => { + if (error.code != 0) { + console.log("unregisterAbilityLifecycleCallback failed, error: " + JSON.stringify(error)); + } else { + console.log("unregisterAbilityLifecycleCallback success."); + } + }); + } +} +``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md b/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md index 0a191c0038..f7f9c49a4c 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-abilityManager.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.abilityManager +# @ohos.app.ability.abilityManager (AbilityManager) -The **AbilityManager** module provides APIs for obtaining, adding, and modifying ability running information and state information. +The **AbilityManager** module provides APIs for obtaining, adding, and updating ability running information and state information. > **NOTE** > @@ -10,24 +10,24 @@ The **AbilityManager** module provides APIs for obtaining, adding, and modifying ## Modules to Import ```ts -import AbilityManager from '@ohos.app.ability.abilityManager' +import abilityManager from '@ohos.app.ability.abilityManager'; ``` ## AbilityState -Enumerates the ability states. +Enumerates the ability states. This enum can be used together with [AbilityRunningInfo](js-apis-inner-application-abilityRunningInfo.md) to return the ability state. **System capability**: SystemCapability.Ability.AbilityRuntime.Core -**System API**: This is a system API and cannot be called by third-party applications. +**System API**: This enum is an internal definition of a system API and cannot be called by third-party applications. | Name| Value| Description| | -------- | -------- | -------- | | INITIAL | 0 | The ability is in the initial state.| | FOREGROUND | 9 | The ability is in the foreground state. | | BACKGROUND | 10 | The ability is in the background state. | -| FOREGROUNDING | 11 | The ability is in the foregrounding state. | -| BACKGROUNDING | 12 | The ability is in the backgrounding state. | +| FOREGROUNDING | 11 | The ability is in the state of being switched to the foreground. | +| BACKGROUNDING | 12 | The ability is in the state of being switched to the background. | ## updateConfiguration @@ -43,25 +43,42 @@ Updates the configuration. This API uses an asynchronous callback to return the | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| config | [Configuration](js-apis-app-ability-configuration.md) | Yes | New configuration.| -| callback | AsyncCallback\ | Yes | Callback used to return the result. | +| config | [Configuration](js-apis-app-ability-configuration.md) | Yes | New configuration. You only need to configure the items to be updated.| +| callback | AsyncCallback\ | Yes | Callback used to return the API call result. You can perform error handling or custom processing in this callback. | + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; +import abilityManager from '@ohos.app.ability.abilityManager'; -var config = { - language: 'chinese' -} +const config = { + language: 'Zh-Hans', // Simplified Chinese. + colorMode: COLOR_MODE_LIGHT, // Light theme. + direction: DIRECTION_VERTICAL, // Vertical direction. + screenDensity: SCREEN_DENSITY_SDPI, // The screen resolution is SDPI. + displayId: 1, // The application is displayed on the display with ID 1. + hasPointerDevice: true, // A pointer device is connected. +}; try { - abilitymanager.updateConfiguration(config, () => { - console.log('------------ updateConfiguration -----------'); - }) + abilityManager.updateConfiguration(config, (err) => { + if (err.code !== 0) { + console.log("updateConfiguration fail, err: " + JSON.stringify(err)); + } else { + console.log("updateConfiguration success."); + } + }) } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -79,32 +96,45 @@ Updates the configuration. This API uses a promise to return the result. | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| config | [Configuration](js-apis-app-ability-configuration.md) | Yes | New configuration.| +| config | [Configuration](js-apis-app-ability-configuration.md) | Yes | New configuration. You only need to configure the items to be updated.| **Return value** | Type | Description | | ---------------------------------------- | ------- | -| Promise\ | Promise used to return the result.| +| Promise\ | Promise used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; +import abilityManager from '@ohos.app.ability.abilityManager'; -var config = { - language: 'chinese' -} +const config = { + language: 'Zh-Hans', // Simplified Chinese. + colorMode: COLOR_MODE_LIGHT, // Light theme. + direction: DIRECTION_VERTICAL, // Vertical direction. + screenDensity: SCREEN_DENSITY_SDPI, // The screen resolution is SDPI. + displayId: 1, // The application is displayed on the display with ID 1. + hasPointerDevice: true, // A pointer device is connected. +}; try { - abilitymanager.updateConfiguration(config).then(() => { - console.log('updateConfiguration success'); - }).catch((err) => { - console.log('updateConfiguration fail'); - }) + abilityManager.updateConfiguration(config).then(() => { + console.log('updateConfiguration success.'); + }).catch((err) => { + console.log('updateConfiguration fail, err: ' + JSON.stringify(err)); + }) } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -122,20 +152,32 @@ Obtains the ability running information. This API uses an asynchronous callback | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| callback | AsyncCallback\> | Yes | Callback used to return the result. | +| callback | AsyncCallback\> | Yes | Callback used to return the API call result and the ability running information. You can perform error handling or custom processing in this callback. | + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; +import abilityManager from '@ohos.app.ability.abilityManager'; try { - abilitymanager.getAbilityRunningInfos((err,data) => { - console.log("getAbilityRunningInfos err: " + err + " data: " + JSON.stringify(data)); - }); + abilityManager.getAbilityRunningInfos((err, data) => { + if (err.code !== 0) { + console.log("getAbilityRunningInfos fail, error: " + JSON.stringify(err)); + } else { + console.log("getAbilityRunningInfos success, data: " + JSON.stringify(data)); + } + }); } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -153,22 +195,30 @@ Obtains the ability running information. This API uses a promise to return the r | Type | Description | | ---------------------------------------- | ------- | -| Promise\> | Promise used to return the result.| +| Promise\> | Callback used to return the API call result and the ability running information. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; - +import abilityManager from '@ohos.app.ability.abilityManager'; + try { - abilitymanager.getAbilityRunningInfos().then((data) => { - console.log("getAbilityRunningInfos data: " + JSON.stringify(data)) - }).catch((err) => { - console.log("getAbilityRunningInfos err: " + err) - }); + abilityManager.getAbilityRunningInfos().then((data) => { + console.log("getAbilityRunningInfos success, data: " + JSON.stringify(data)) + }).catch((err) => { + console.log("getAbilityRunningInfos fail, err: " + JSON.stringify(err)); + }); } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -176,7 +226,7 @@ try { getExtensionRunningInfos(upperLimit: number, callback: AsyncCallback\>): void -Obtains the extension running information. This API uses an asynchronous callback to return the result. +Obtains the ExtensionAbility running information. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.GET_RUNNING_INFO @@ -186,23 +236,35 @@ Obtains the extension running information. This API uses an asynchronous callbac | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| upperLimit | number | Yes| Maximum number of messages that can be obtained.| -| callback | AsyncCallback\> | Yes | Callback used to return the result. | +| upperLimit | number | Yes| Maximum number of messages that can be obtained. The maximum value is 231-1.| +| callback | AsyncCallback\> | Yes | Callback used to return the API call result and the ExtensionAbility running information. You can perform error handling or custom processing in this callback. | + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; +import abilityManager from '@ohos.app.ability.abilityManager'; -var upperLimit = 0; +let upperLimit = 10; try { - abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => { - console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data)); - }); + abilityManager.getExtensionRunningInfos(upperLimit, (err, data) => { + if (err.code !== 0) { + console.log("getExtensionRunningInfos fail, err: " + JSON.stringify(err)); + } else { + console.log("getExtensionRunningInfos success, data: " + JSON.stringify(data)); + } + }); } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -210,7 +272,7 @@ try { getExtensionRunningInfos(upperLimit: number): Promise\> -Obtains the extension running information. This API uses a promise to return the result. +Obtains the ExtensionAbility running information. This API uses a promise to return the result. **Required permissions**: ohos.permission.GET_RUNNING_INFO @@ -220,30 +282,38 @@ Obtains the extension running information. This API uses a promise to return the | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| upperLimit | number | Yes| Maximum number of messages that can be obtained.| +| upperLimit | number | Yes| Maximum number of messages that can be obtained. The maximum value is 231-1.| **Return value** | Type | Description | | ---------------------------------------- | ------- | -| Promise\> | Promise used to return the result.| +| Promise\> | Promise used to return the API call result and the ExtensionAbility running information. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; +import abilityManager from '@ohos.app.ability.abilityManager'; -var upperLimit = 0; +let upperLimit = 10; try { - abilitymanager.getExtensionRunningInfos(upperLimit).then((data) => { - console.log("getAbilityRunningInfos data: " + JSON.stringify(data)); - }).catch((err) => { - console.log("getAbilityRunningInfos err: " + err); - }) + abilityManager.getExtensionRunningInfos(upperLimit).then((data) => { + console.log("getExtensionRunningInfos success, data: " + JSON.stringify(data)); + }).catch((err) => { + console.log("getExtensionRunningInfos fail, err: " + JSON.stringify(err)); + }) } catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -259,21 +329,28 @@ Obtains the top ability, which is the ability that has the window focus. This AP | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the result. | +| callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | Callback used to return the API call result and the element name of the top ability. You can perform error handling or custom processing in this callback. | + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; - -try { - abilitymanager.getTopAbility((err,data) => { - console.log("getTopAbility err: " + err + " data: " + JSON.stringify(data)); - }); -} catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); -} +import abilityManager from '@ohos.app.ability.abilityManager'; + +abilityManager.getTopAbility((err, data) => { + if (err.code !== 0) { + console.log("getTopAbility fail, err: " + JSON.stringify(err)); + } else { + console.log("getTopAbility success, data: " + JSON.stringify(data)); + } +}); ``` ## getTopAbility @@ -288,21 +365,24 @@ Obtains the top ability, which is the ability that has the window focus. This AP | Type | Description | | ---------------------------------------- | ------- | -| Promise\| Promise used to return the result.| +| Promise\<[ElementName](js-apis-bundleManager-elementName.md)>| Promise used to return the API call result and the element name of the top ability. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -import abilitymanager from '@ohos.app.ability.abilityManager'; +import abilityManager from '@ohos.app.ability.abilityManager'; -try { - abilitymanager.getTopAbility().then((data) => { - console.log("getTopAbility data: " + JSON.stringify(data)); - }).catch((err) => { - console.log("getTopAbility err: " + err); - }) -} catch (paramError) { - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); -} +abilityManager.getTopAbility().then((data) => { + console.log("getTopAbility success, data: " + JSON.stringify(data)); +}).catch((err) => { + console.log("getTopAbility fail, err: " + JSON.stringify(err)); +}) ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-abilityStage.md b/en/application-dev/reference/apis/js-apis-app-ability-abilityStage.md index b122684240..50feb82791 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-abilityStage.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-abilityStage.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.AbilityStage +# @ohos.app.ability.AbilityStage (AbilityStage) **AbilityStage** is a runtime class for HAP files. @@ -25,13 +25,15 @@ Called when the application is created. **Example** - ```ts - class MyAbilityStage extends AbilityStage { - onCreate() { - console.log("MyAbilityStage.onCreate is called") - } - } - ``` +```ts +import AbilityStage from '@ohos.app.ability.AbilityStage'; + +class MyAbilityStage extends AbilityStage { + onCreate() { + console.log("MyAbilityStage.onCreate is called"); + } +} +``` ## AbilityStage.onAcceptWant @@ -44,9 +46,9 @@ Called when a specified ability is started. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-app-ability-want.md) | Yes| Information about the ability to start, such as the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-app-ability-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| **Return value** @@ -56,14 +58,16 @@ Called when a specified ability is started. **Example** - ```ts - class MyAbilityStage extends AbilityStage { - onAcceptWant(want) { - console.log("MyAbilityStage.onAcceptWant called"); - return "com.example.test"; - } - } - ``` +```ts +import AbilityStage from '@ohos.app.ability.AbilityStage'; + +class MyAbilityStage extends AbilityStage { + onAcceptWant(want) { + console.log("MyAbilityStage.onAcceptWant called"); + return "com.example.test"; + } +} +``` ## AbilityStage.onConfigurationUpdate @@ -82,13 +86,15 @@ Called when the global configuration is updated. **Example** - ```ts - class MyAbilityStage extends AbilityStage { - onConfigurationUpdate(config) { - console.log('onConfigurationUpdate, language:' + config.language); - } - } - ``` +```ts +import AbilityStage from '@ohos.app.ability.AbilityStage'; + +class MyAbilityStage extends AbilityStage { + onConfigurationUpdate(config) { + console.log('onConfigurationUpdate, language:' + config.language); + } +} +``` ## AbilityStage.onMemoryLevel @@ -106,22 +112,24 @@ Called when the system has decided to adjust the memory level. For example, this **Example** - ```ts - class MyAbilityStage extends AbilityStage { +```ts +import AbilityStage from '@ohos.app.ability.AbilityStage'; + +class MyAbilityStage extends AbilityStage { onMemoryLevel(level) { console.log('onMemoryLevel, level:' + JSON.stringify(level)); } - } - ``` +} +``` ## AbilityStage.context context: AbilityStageContext; -Describes the configuration information about the context. +Defines the context of **AbilityStage**. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Type | Description | | ----------- | --------------------------- | ------------------------------------------------------------ | -| context | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | Called when initialization is performed during ability startup.| +| context | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | The context is obtained in the callback invoked when initialization is performed during ability startup.| diff --git a/en/application-dev/reference/apis/js-apis-app-ability-appManager.md b/en/application-dev/reference/apis/js-apis-app-ability-appManager.md index b6fae35d6d..840a395eac 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-appManager.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-appManager.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.appManager +# @ohos.app.ability.appManager (appManager) The **appManager** module implements application management. You can use the APIs of this module to query whether the application is undergoing a stability test, whether the application is running on a RAM constrained device, the memory size of the application, and information about the running process. @@ -12,7 +12,7 @@ The **appManager** module implements application management. You can use the API import appManager from '@ohos.app.ability.appManager'; ``` -## appManager.isRunningInStabilityTest9+ +## appManager.isRunningInStabilityTest static isRunningInStabilityTest(callback: AsyncCallback<boolean>): void @@ -22,21 +22,34 @@ Checks whether this application is undergoing a stability test. This API uses an **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<boolean> | Yes| Callback used to return the result. If the application is undergoing a stability test, **true** will be returned; otherwise, **false** will be returned.| + | Type| Description| + | -------- | -------- | + |AsyncCallback<boolean> |Callback used to return the API call result and the result **true** or **false**. You can perform error handling or custom processing in this callback. The value **true** means that the application is undergoing a stability test, and **false** means the opposite.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - import app from '@ohos.application.appManager'; - app.isRunningInStabilityTest((err, flag) => { - console.log('startAbility result:' + JSON.stringify(err)); - }) - ``` +```ts +import appManager from '@ohos.app.ability.appManager'; -## appManager.isRunningInStabilityTest9+ +appManager.isRunningInStabilityTest((err, flag) => { + if (err.code !== 0) { + console.log("isRunningInStabilityTest faile, err: " + JSON.stringify(err)); + } else { + console.log("The result of isRunningInStabilityTest is:" + JSON.stringify(flag)); + } +}) +``` + + +## appManager.isRunningInStabilityTest static isRunningInStabilityTest(): Promise<boolean> @@ -48,18 +61,27 @@ Checks whether this application is undergoing a stability test. This API uses a | Type| Description| | -------- | -------- | - | Promise<boolean> | Promise used to return the result. If the application is undergoing a stability test, **true** will be returned; otherwise, **false** will be returned.| + | Promise<boolean> | Promise used to return the API call result and the result **true** or **false**. You can perform error handling or custom processing in this callback. The value **true** means that the application is undergoing a stability test, and **false** means the opposite.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - import app from '@ohos.application.appManager'; - app.isRunningInStabilityTest().then((flag) => { - console.log('success:' + JSON.stringify(flag)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - ``` + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.isRunningInStabilityTest().then((flag) => { + console.log("The result of isRunningInStabilityTest is:" + JSON.stringify(flag)); +}).catch((error) => { + console.log("error:" + JSON.stringify(error)); +}); +``` ## appManager.isRamConstrainedDevice @@ -74,17 +96,27 @@ Checks whether this application is running on a RAM constrained device. This API | Type| Description| | -------- | -------- | - | Promise<boolean> | Promise used to return whether the application is running on a RAM constrained device. If the application is running on a RAM constrained device, **true** will be returned; otherwise, **false** will be returned.| + | Promise<boolean> | Promise used to return the API call result and the result **true** or **false**. You can perform error handling or custom processing in this callback. The value **true** means that the application is running on a RAM constrained device, and **false** means the opposite.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.isRamConstrainedDevice().then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - ``` + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.isRamConstrainedDevice().then((data) => { + console.log("The result of isRamConstrainedDevice is:" + JSON.stringify(data)); +}).catch((error) => { + console.log("error:" + JSON.stringify(error)); +}); +``` ## appManager.isRamConstrainedDevice @@ -96,18 +128,31 @@ Checks whether this application is running on a RAM constrained device. This API **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<boolean> | Yes| Callback used to return whether the application is running on a RAM constrained device. If the application is running on a RAM constrained device, **true** will be returned; otherwise, **false** will be returned.| + | Type| Description| + | -------- | -------- | + | AsyncCallback<boolean> |Callback used to return the API call result and the result **true** or **false**. You can perform error handling or custom processing in this callback. The value **true** means that the application is running on a RAM constrained device, and **false** means the opposite.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.isRamConstrainedDevice((err, data) => { - console.log('startAbility result failed:' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); - }) - ``` + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.isRamConstrainedDevice((err, data) => { + if (err.code !== 0) { + console.log("isRamConstrainedDevice faile, err: " + JSON.stringify(err)); + } else { + console.log("The result of isRamConstrainedDevice is:" + JSON.stringify(data)); + } +}) +``` ## appManager.getAppMemorySize @@ -121,17 +166,27 @@ Obtains the memory size of this application. This API uses a promise to return t | Type| Description| | -------- | -------- | - | Promise<number> | Size of the application memory.| + | Promise<number> | Promise used to return the API call result and the memory size. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.getAppMemorySize().then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - ``` + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.getAppMemorySize().then((data) => { + console.log("The size of app memory is:" + JSON.stringify(data)); +}).catch((error) => { + console.log("error:" + JSON.stringify(error)); +}); +``` ## appManager.getAppMemorySize @@ -143,20 +198,33 @@ Obtains the memory size of this application. This API uses an asynchronous callb **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<number> | Yes| Size of the application memory.| + | Type| Description| + | -------- | -------- | + |AsyncCallback<number> |Callback used to return the API call result and the memory size. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.getAppMemorySize((err, data) => { - console.log('startAbility result failed :' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); - }) - ``` -## appManager.getProcessRunningInformation9+ +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.getAppMemorySize((err, data) => { + if (err.code !== 0) { + console.log("getAppMemorySize faile, err: " + JSON.stringify(err)); + } else { + console.log("The size of app memory is:" + JSON.stringify(data)); + } +}) +``` + +## appManager.getProcessRunningInformation getProcessRunningInformation(): Promise\>; @@ -172,17 +240,27 @@ Obtains information about the running processes. This API uses a promise to retu | Type| Description| | -------- | -------- | -| Promise\> | Promise used to return the process information.| +| Promise\> | Promise used to return the API call result and the process running information. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.getProcessRunningInformation().then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - ``` + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.getProcessRunningInformation().then((data) => { + console.log("The process running information is:" + JSON.stringify(data)); +}).catch((error) => { + console.log("error:" + JSON.stringify(error)); +}); +``` ## appManager.getProcessRunningInformation9+ @@ -198,18 +276,31 @@ Obtains information about the running processes. This API uses an asynchronous c **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| callback | AsyncCallback\> | Yes| Callback used to return the process information.| +| Type| Description| +| -------- | -------- | +|AsyncCallback\> | Callback used to return the API call result and the process running information. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.getProcessRunningInformation((err, data) => { - console.log('startAbility result failed :' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); - }) - ``` + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.getProcessRunningInformation((err, data) => { + if (err.code !== 0) { + console.log("getProcessRunningInformation faile, err: " + JSON.stringify(err)); + } else { + console.log("The process running information is:" + JSON.stringify(data)); + } +}) +``` ## appManager.on @@ -227,37 +318,52 @@ Registers an observer to listen for the state changes of all applications. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | Yes| Numeric code of the observer.| +| type | string | Yes| Type of the API to call. It is fixed at **"applicationState"**.| +| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | Yes| Application state observer, which is used to observe the lifecycle change of an application.| + +**Return value** + +| Type| Description| +| --- | --- | +| number | Digital code of the observer, which will be used in **off()** to deregister the observer.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```js - var applicationStateObserver = { + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let applicationStateObserver = { onForegroundApplicationChanged(appStateData) { - console.log('------------ onForegroundApplicationChanged -----------', appStateData); + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); }, onAbilityStateChanged(abilityStateData) { - console.log('------------ onAbilityStateChanged -----------', abilityStateData); + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); }, onProcessCreated(processData) { - console.log('------------ onProcessCreated -----------', processData); + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); }, onProcessDied(processData) { - console.log('------------ onProcessDied -----------', processData); + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); }, onProcessStateChanged(processData) { - console.log('------------ onProcessStateChanged -----------', processData); + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); } - } - try { - const observerCode = app.on(applicationStateObserver); - console.log('-------- observerCode: ---------', observerCode); - } catch (paramError) { - console.log('error: ' + paramError.code + ', ' + paramError.message); - } - - ``` +} +try { + const observerId = appManager.on('applicationState', applicationStateObserver); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} +``` ## appManager.on @@ -275,39 +381,55 @@ Registers an observer to listen for the state changes of a specified application | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | Yes| Numeric code of the observer.| -| bundleNameList | Array | Yes| **bundleName** array of the application. A maximum of 128 bundle names can be passed.| +| type | string | Yes| Type of the API to call. It is fixed at **"applicationState"**.| +| observer | [ApplicationStateObserver](./js-apis-inner-application-applicationStateObserver.md) | Yes| Application state observer, which is used to observe the lifecycle change of an application.| +| bundleNameList | `Array` | Yes| **bundleName** array of the application. A maximum of 128 bundle names can be passed.| + +**Return value** + +| Type| Description| +| --- | --- | +| number | Digital code of the observer, which will be used in **off()** to deregister the observer.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```js - var applicationStateObserver = { + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let applicationStateObserver = { onForegroundApplicationChanged(appStateData) { - console.log('------------ onForegroundApplicationChanged -----------', appStateData); + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); }, onAbilityStateChanged(abilityStateData) { - console.log('------------ onAbilityStateChanged -----------', abilityStateData); + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); }, onProcessCreated(processData) { - console.log('------------ onProcessCreated -----------', processData); + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); }, onProcessDied(processData) { - console.log('------------ onProcessDied -----------', processData); + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); }, onProcessStateChanged(processData) { - console.log('------------ onProcessStateChanged -----------', processData); + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); } - } - var bundleNameList = ['bundleName1', 'bundleName2']; - try { - const observerCode = app.on("applicationState", applicationStateObserver, bundleNameList); - console.log('-------- observerCode: ---------', observerCode); - } catch (paramError) { - console.log('error: ' + paramError.code + ', ' + paramError.message); - } +} +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + const observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} +``` - ``` ## appManager.off off(type: "applicationState", observerId: number, callback: AsyncCallback\): void; @@ -321,29 +443,68 @@ Deregisters the application state observer. This API uses an asynchronous callba **System API**: This is a system API and cannot be called by third-party applications. **Parameters** - + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observerId | number | Yes| Numeric code of the observer.| -| callback | AsyncCallback\ | Yes| Callback used to return the result.| +| type | string | Yes| Type of the API to call. It is fixed at **"applicationState"**.| +| observerId | number | Yes| Digital code of the observer.| +| callback | AsyncCallback\ | Yes| Callback used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```js - var observerId = 100; - function unregisterApplicationStateObserverCallback(err) { - if (err) { - console.log('------------ unregisterApplicationStateObserverCallback ------------', err); - } +```ts +import appManager from '@ohos.app.ability.appManager'; + +let observeId = 0; + +// 1. Register an application state observer. +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); } - try { - app.off(observerId, unregisterApplicationStateObserverCallback); - } catch (paramError) { - console.log('error: ' + paramError.code + ', ' + paramError.message); +} +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} + +// 2. Deregister the application state observer. +function unregisterApplicationStateObserverCallback(err) { + if (err.code !== 0) { + console.log("unregisterApplicationStateObserverCallback faile, err: " + JSON.stringify(err)); + } else { + console.log("unregisterApplicationStateObserverCallback success."); } - ``` +} +try { + appManager.off("applicationState", observerId, unregisterApplicationStateObserverCallback); +} catch (paramError) { + console.log('error: ' + paramError.code + ', ' + paramError.message); +} +``` ## appManager.off @@ -361,38 +522,73 @@ Deregisters the application state observer. This API uses an asynchronous callba | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observerId | number | Yes| Numeric code of the observer.| +| type | string | Yes| Type of the API to call. It is fixed at **"applicationState"**.| +| observerId | number | Yes| Digital code of the observer.| **Return value** | Type| Description| | -------- | -------- | -| Promise\ | Promise used to return the result.| +| Promise\ | Promise used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```js - var observerId = 100; - - try { - app.off(observerId) - .then((data) => { - console.log('----------- unregisterApplicationStateObserver success ----------', data); - }) - .catch((err) => { - console.log('----------- unregisterApplicationStateObserver fail ----------', err); - }) - } catch (paramError) { - console.log('error: ' + paramError.code + ', ' + paramError.message); + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let observeId = 0; + +// 1. Register an application state observer. +let applicationStateObserver = { + onForegroundApplicationChanged(appStateData) { + console.log(`[appManager] onForegroundApplicationChanged: ${JSON.stringify(appStateData)}`); + }, + onAbilityStateChanged(abilityStateData) { + console.log(`[appManager] onAbilityStateChanged: ${JSON.stringify(abilityStateData)}`); + }, + onProcessCreated(processData) { + console.log(`[appManager] onProcessCreated: ${JSON.stringify(processData)}`); + }, + onProcessDied(processData) { + console.log(`[appManager] onProcessDied: ${JSON.stringify(processData)}`); + }, + onProcessStateChanged(processData) { + console.log(`[appManager] onProcessStateChanged: ${JSON.stringify(processData)}`); } - ``` +} +let bundleNameList = ['bundleName1', 'bundleName2']; +try { + observerId = appManager.on("applicationState", applicationStateObserver, bundleNameList); + console.log(`[appManager] observerCode: ${observerId}`); +} catch (paramError) { + console.log(`[appManager] error: ${paramError.code}, ${paramError.message} `); +} + +// 2. Deregister the application state observer. +try { + appManager.off("applicationState", observerId).then((data) => { + console.log("unregisterApplicationStateObserver success, data: " + JSON.stringify(data)); + }).catch((err) => { + console.log("unregisterApplicationStateObserver faile, err: " + JSON.stringify(err)); + }) +} catch (paramError) { + console.log('error: ' + paramError.code + ', ' + paramError.message); +} +``` ## appManager.getForegroundApplications getForegroundApplications(callback: AsyncCallback\>): void; -Obtains applications that are running in the foreground. This API uses an asynchronous callback to return the result. +Obtains applications that are running in the foreground. This API uses an asynchronous callback to return the result. The application information is defined by [AppStateData](js-apis-inner-application-appStateData.md). **Required permissions**: ohos.permission.GET_RUNNING_INFO @@ -400,96 +596,44 @@ Obtains applications that are running in the foreground. This API uses an asynch **System API**: This is a system API and cannot be called by third-party applications. -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| callback | AsyncCallback\> | Yes| Callback used to return the application state data.| - -**Example** - - ```js - function getForegroundApplicationsCallback(err, data) { - if (err) { - console.log('--------- getForegroundApplicationsCallback fail ---------', err.code + ': ' + err.message); - } else { - console.log('--------- getForegroundApplicationsCallback success ---------', data) - } - } - app.getForegroundApplications(getForegroundApplicationsCallback); - ``` - -unregisterApplicationStateObserver(observerId: number): Promise\; - -Deregisters the application state observer. This API uses a promise to return the result. - -**Required permissions**: ohos.permission.RUNNING_STATE_OBSERVER +**Error codes** -**System capability**: SystemCapability.Ability.AbilityRuntime.Core +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | -**System API**: This is a system API and cannot be called by third-party applications. +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| observerId | number | Yes| Numeric code of the observer.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| Promise\ | Promise used to return the result.| +| callback | AsyncCallback\> | Yes| Callback used to return the API call result and an array holding the application state data. You can perform error handling or custom processing in this callback.| **Example** - - ```ts - var observerId = 100; - app.unregisterApplicationStateObserver(observerId) - .then((data) => { - console.log('----------- unregisterApplicationStateObserver success ----------', data); - }) - .catch((err) => { - console.log('----------- unregisterApplicationStateObserver fail ----------', err); - }) - ``` - -## appManager.getForegroundApplications9+ - -getForegroundApplications(callback: AsyncCallback\>): void; - -Obtains applications that are running in the foreground. This API uses an asynchronous callback to return the result. - -**Required permissions**: ohos.permission.GET_RUNNING_INFO -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**System API**: This is a system API and cannot be called by third-party applications. - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| callback | AsyncCallback\> | Yes| Callback used to return the application state data.| +```ts +import appManager from '@ohos.app.ability.appManager'; -**Example** - - ```ts - function getForegroundApplicationsCallback(err, data) { - if (err) { - console.log('--------- getForegroundApplicationsCallback fail ---------', err); +function getForegroundApplicationsCallback(err, data) { + if (err.code !== 0) { + console.log("getForegroundApplicationsCallback fail, err: " + JSON.stringify(err)); } else { - console.log('--------- getForegroundApplicationsCallback success ---------', data) + console.log("getForegroundApplicationsCallback success, data: " + JSON.stringify(data)); } - } - app.getForegroundApplications(getForegroundApplicationsCallback); - ``` +} +try { + appManager.getForegroundApplications(getForegroundApplicationsCallback); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} +``` -## appManager.getForegroundApplications9+ +## appManager.getForegroundApplications getForegroundApplications(): Promise\>; -Obtains applications that are running in the foreground. This API uses a promise to return the result. +Obtains applications that are running in the foreground. This API uses a promise to return the result. The application information is defined by [AppStateData](js-apis-inner-application-appStateData.md). **Required permissions**: ohos.permission.GET_RUNNING_INFO @@ -501,27 +645,35 @@ Obtains applications that are running in the foreground. This API uses a promise | Type| Description| | -------- | -------- | -| Promise\> | Promise used to return the application state data.| +| Promise\> | Promise used to return an array holding the application state data| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - app.getForegroundApplications() - .then((data) => { - console.log('--------- getForegroundApplications success -------', data); - }) - .catch((err) => { - console.log('--------- getForegroundApplications fail -------', err); - }) - ``` - -## appManager.killProcessWithAccount9+ + +```ts +import appManager from '@ohos.app.ability.appManager'; + +appManager.getForegroundApplications().then((data) => { + console.log("getForegroundApplications success, data: " + JSON.stringify(data)); +}).catch((err) => { + console.log("getForegroundApplications fail, err: " + JSON.stringify(err)); +}) +``` + +## appManager.killProcessWithAccount killProcessWithAccount(bundleName: string, accountId: number): Promise\ Kills a process by bundle name and account ID. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) and ohos.permission.CLEAN_BACKGROUND_PROCESSES **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -529,27 +681,39 @@ Kills a process by bundle name and account ID. This API uses a promise to return **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | bundleName | string | Yes| Bundle name of an application.| - | accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| bundleName | string | Yes| Bundle name.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -var bundleName = 'bundleName'; -var accountId = 0; -app.killProcessWithAccount(bundleName, accountId) - .then((data) => { - console.log('------------ killProcessWithAccount success ------------', data); - }) - .catch((err) => { - console.log('------------ killProcessWithAccount fail ------------', err); - }) +import appManager from '@ohos.app.ability.appManager'; + +let bundleName = 'bundleName'; +let accountId = 0; +try { + appManager.killProcessWithAccount(bundleName, accountId).then(() => { + console.log("killProcessWithAccount success"); + }).catch((err) => { + console.log("killProcessWithAccount fail, err: " + JSON.stringify(err)); + }) +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} ``` -## appManager.killProcessWithAccount9+ +## appManager.killProcessWithAccount killProcessWithAccount(bundleName: string, accountId: number, callback: AsyncCallback\): void @@ -559,32 +723,42 @@ Kills a process by bundle name and account ID. This API uses an asynchronous cal **System API**: This is a system API and cannot be called by third-party applications. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) and ohos.permission.CLEAN_BACKGROUND_PROCESSES **Parameters** | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | bundleName | string | Yes| Bundle name of an application.| + | bundleName | string | Yes| Bundle name.| | accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| - | callback | AsyncCallback\ | Yes| Callback used to return the result.| + | callback | AsyncCallback\ | Yes| Callback used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts -var bundleName = 'bundleName'; -var accountId = 0; +import appManager from '@ohos.app.ability.appManager'; + +let bundleName = 'bundleName'; +let accountId = 0; function killProcessWithAccountCallback(err, data) { - if (err) { - console.log('------------- killProcessWithAccountCallback fail, err: --------------', err); - } else { - console.log('------------- killProcessWithAccountCallback success, data: --------------', data); - } + if (err.code !== 0) { + console.log("killProcessWithAccountCallback fail, err: " + JSON.stringify(err)); + } else { + console.log("killProcessWithAccountCallback success."); + } } -app.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback); +appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback); ``` -## appManager.killProcessesByBundleName9+ +## appManager.killProcessesByBundleName killProcessesByBundleName(bundleName: string, callback: AsyncCallback\); @@ -600,24 +774,38 @@ Kills a process by bundle name. This API uses an asynchronous callback to return | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| -| callback | AsyncCallback\ | Yes| Callback used to return the result.| +| bundleName | string | Yes| Bundle name.| +| callback | AsyncCallback\ | Yes| Callback used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - var bundleName = 'bundleName'; - function killProcessesByBundleNameCallback(err, data) { - if (err) { - console.log('------------- killProcessesByBundleNameCallback fail, err: --------------', err); + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let bundleName = 'bundleName'; +function killProcessesByBundleNameCallback(err, data) { + if (err.code !== 0) { + console.log("killProcessesByBundleNameCallback fail, err: " + JSON.stringify(err)); } else { - console.log('------------- killProcessesByBundleNameCallback success, data: --------------', data); + console.log("killProcessesByBundleNameCallback success."); } - } - app.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback); - ``` +} +try { + appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} +``` -## appManager.killProcessesByBundleName9+ +## appManager.killProcessesByBundleName killProcessesByBundleName(bundleName: string): Promise\; @@ -633,7 +821,7 @@ Kills a process by bundle name. This API uses a promise to return the result. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| +| bundleName | string | Yes| Bundle name.| **Return value** @@ -641,20 +829,32 @@ Kills a process by bundle name. This API uses a promise to return the result. | -------- | -------- | | Promise\ | Promise used to return the result.| +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + **Example** - - ```ts -var bundleName = 'bundleName'; -app.killProcessesByBundleName(bundleName) - .then((data) => { - console.log('------------ killProcessesByBundleName success ------------', data); - }) - .catch((err) => { - console.log('------------ killProcessesByBundleName fail ------------', err); - }) - ``` - -## appManager.clearUpApplicationData9+ + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let bundleName = 'bundleName'; +try { + appManager.killProcessesByBundleName(bundleName).then((data) => { + console.log("killProcessesByBundleName success."); + }).catch((err) => { + console.log("killProcessesByBundleName fail, err: " + JSON.stringify(err)); + }) +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} +``` + +## appManager.clearUpApplicationData clearUpApplicationData(bundleName: string, callback: AsyncCallback\); @@ -670,24 +870,38 @@ Clears application data by bundle name. This API uses an asynchronous callback t | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| -| callback | AsyncCallback\ | Yes| Callback used to return the result.| +| bundleName | string | Yes| Bundle name.| +| callback | AsyncCallback\ | Yes| Callback used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - var bundleName = 'bundleName'; - function clearUpApplicationDataCallback(err, data) { + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let bundleName = 'bundleName'; +function clearUpApplicationDataCallback(err, data) { if (err) { - console.log('------------- clearUpApplicationDataCallback fail, err: --------------', err); + console.log("clearUpApplicationDataCallback fail, err: " + JSON.stringify(err)); } else { - console.log('------------- clearUpApplicationDataCallback success, data: --------------', data); + console.log("clearUpApplicationDataCallback success."); } - } - app.clearUpApplicationData(bundleName, clearUpApplicationDataCallback); - ``` +} +try { + appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} +``` -## appManager.clearUpApplicationData9+ +## appManager.clearUpApplicationData clearUpApplicationData(bundleName: string): Promise\; @@ -703,28 +917,42 @@ Clears application data by bundle name. This API uses a promise to return the re | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| +| bundleName | string | Yes| Bundle name.| **Return value** | Type| Description| | -------- | -------- | -| Promise\ | Promise used to return the result.| +| Promise\ | Promise used to return the API call result. You can perform error handling or custom processing in this callback.| + +**Error codes** + +| ID| Error Message| +| ------- | -------- | +| 16000050 | Internal error. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** - - ```ts - var bundleName = 'bundleName'; - app.clearUpApplicationData(bundleName) - .then((data) => { - console.log('------------ clearUpApplicationData success ------------', data); - }) - .catch((err) => { - console.log('------------ clearUpApplicationData fail ------------', err); + +```ts +import appManager from '@ohos.app.ability.appManager'; + +let bundleName = 'bundleName'; +try { + appManager.clearUpApplicationData(bundleName).then((data) => { + console.log("clearUpApplicationData success."); + }).catch((err) => { + console.log("clearUpApplicationData fail, err: " + JSON.stringify(err)); }) - ``` +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} +``` -## ApplicationState9+ +## ApplicationState + +Enumerates the application states. This enum can be used together with [AbilityStateData](js-apis-inner-application-appStateData.md) to return the application state. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -738,7 +966,9 @@ Clears application data by bundle name. This API uses a promise to return the re | STATE_BACKGROUND | 4 | State indicating that the application is running in the background. | | STATE_DESTROY | 5 | State indicating that the application is destroyed. | -## ProcessState9+ +## ProcessState + +Enumerates the process states. This enum can be used together with [ProcessData](js-apis-inner-application-processData.md) to return the process state. **System capability**: SystemCapability.Ability.AbilityRuntime.Core diff --git a/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md b/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md index 6f512b4f9f..e066ac1193 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-appRecovery.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.appRecovery (Application Recovery) +# @ohos.app.ability.appRecovery (appRecovery) -The **appRecovery** module provides APIs for recovering failed applications. +The **appRecovery** module provides APIs for recovering faulty applications. > **NOTE** > @@ -8,13 +8,13 @@ The **appRecovery** module provides APIs for recovering failed applications. ## Modules to Import ```ts -import appRecovery from '@ohos.app.ability.appRecovery' +import appRecovery from '@ohos.app.ability.appRecovery'; ``` ## appRecovery.RestartFlag -Enumerates the application restart options used in [enableAppRecovery](#apprecoveryenableapprecovery). +Enumerates the application restart flags. This enum is used as an input parameter of [enableAppRecovery](#apprecoveryenableapprecovery). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -28,7 +28,7 @@ Enumerates the application restart options used in [enableAppRecovery](#apprecov ## appRecovery.SaveOccasionFlag -Enumerates the scenarios for saving the application state, which is used in [enableAppRecovery](#apprecoveryenableapprecovery). +Enumerates the scenarios for saving the application state. This enum is used as an input parameter of [enableAppRecovery](#apprecoveryenableapprecovery). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -39,7 +39,7 @@ Enumerates the scenarios for saving the application state, which is used in [ena ## appRecovery.SaveModeFlag -Enumerates the application state saving modes used in [enableAppRecovery](#apprecoveryenableapprecovery). +Enumerates the application state saving modes. This enum is used as an input parameter of [enableAppRecovery](#apprecoveryenableapprecovery). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -50,7 +50,7 @@ Enumerates the application state saving modes used in [enableAppRecovery](#appre ## appRecovery.enableAppRecovery -enableAppRecovery(restart?: RestartFlag, saveOccasion?: SaveOccasionFlag, saveMode?: SaveModeFlag) : void; +enableAppRecovery(restart?: [RestartFlag](#apprecoveryrestartflag), saveOccasion?: [SaveOccasionFlag](#apprecoverysaveoccasionflag), saveMode?: [SaveModeFlag](#apprecoverysavemodeflag)) : void; Enables application recovery. @@ -67,9 +67,17 @@ Enables application recovery. **Example** ```ts -export default class MyAbilityStage extends AbilityStage { +import appRecovery from '@ohos.app.ability.appRecovery'; +import AbilityStage from '@ohos.app.ability.AbilityStage'; +import UIAbility from '@ohos.app.ability.UIAbility'; + +export default class MyAbility extends UIAbility { onCreate() { - appRecovery.enableAppRecovery(RestartFlag::ALWAYS_RESTART, SaveOccasionFlag::SAVE_WHEN_ERROR, SaveModeFlag::SAVE_WITH_FILE); + appRecovery.enableAppRecovery( + appRecovery.RestartFlag::ALWAYS_RESTART, + appRecovery.SaveOccasionFlag::SAVE_WHEN_ERROR, + appRecovery.SaveModeFlag::SAVE_WITH_FILE + ); } } ``` @@ -86,13 +94,21 @@ Restarts the application. This API can be used together with APIs of [errorManag **Example** ```ts -var observer = { +import appRecovery from '@ohos.app.ability.appRecovery'; +import errorManager from '@ohos.app.ability.errorManager'; + +let observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg) appRecovery.restartApp(); } -} +}; +try { + errorManager.on("error", observer); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} ``` ## appRecovery.saveAppState @@ -107,15 +123,24 @@ Saves the application state. This API can be used together with APIs of [errorMa | Type| Description| | -------- | -------- | -| boolean | Whether the saving is successful.| +| boolean | Whether the application state is saved. The value **true** is returned if the application state is saved, and **false** is returned otherwise.| **Example** ```ts -var observer = { +import appRecovery from '@ohos.app.ability.appRecovery'; +import errorManager from '@ohos.app.ability.errorManager'; + +let observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg) appRecovery.saveAppState(); } +}; + +try { + errorManager.on("error", observer); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); } ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-common.md b/en/application-dev/reference/apis/js-apis-app-ability-common.md index 23184c6036..5cc9b61b90 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-common.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-common.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.common +# @ohos.app.ability.common (Context) The **Common** module provides all level-2 module APIs for developers to export. @@ -15,21 +15,21 @@ import common from '@ohos.app.ability.common' **System capability**: SystemCapability.Ability.AbilityBase -| Name | Type | Mandatory| Description | -| ----------- | -------------------- | ---- | ------------------------------------------------------------ | -| UIAbilityContext | [UIAbilityContext](js-apis-inner-application-uiAbilityContext.md) | No | Level-2 module **UIAbilityContext**. | -| AbilityStageContext | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | No | Level-2 module **AbilityStageContext**.| -| ApplicationContext | [ApplicationContext](js-apis-inner-application-applicationContext.md) | No | Level-2 module **ApplicationContext**.| -| BaseContext | [BaseContext](js-apis-inner-application-baseContext.md) | No | Level-2 module **BaseContext**.| -| Context | [Context](js-apis-inner-application-context.md) | No | Level-2 module **Context**.| -| ExtensionContext | [ExtensionContext](js-apis-inner-application-extensionContext.md) | No | Level-2 module **ExtensionContext**.| -| FormExtensionContext | [FormExtensionContext](js-apis-inner-application-formExtensionContext.md) | No | Level-2 module **FormExtensionContext**.| -| AreaMode | [AreaMode](#areamode) | No | Enumerated values of **AreaMode**.| -| EventHub | [EventHub](js-apis-inner-application-eventHub.md) | No | Level-2 module **EventHub**.| -| PermissionRequestResult | [PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md) | No | Level-2 module **PermissionRequestResult**.| -| PacMap | [PacMap](js-apis-inner-ability-dataAbilityHelper.md#PacMap) | No | Level-2 module **PacMap**.| -| AbilityResult | [AbilityResult](js-apis-inner-ability-abilityResult.md) | No | Level-2 module **AbilityResult**.| -| ConnectOptions | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | No | Level-2 module **ConnectOptions**.| +| Name | Type | Description | +| ----------- | -------------------- | ------------------------------------------------------------ | +| UIAbilityContext | [UIAbilityContext](js-apis-inner-application-uiAbilityContext.md) | Level-2 module **UIAbilityContext**. | +| AbilityStageContext | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | Level-2 module **AbilityStageContext**.| +| ApplicationContext | [ApplicationContext](js-apis-inner-application-applicationContext.md) | Level-2 module **ApplicationContext**.| +| BaseContext | [BaseContext](js-apis-inner-application-baseContext.md) | Level-2 module **BaseContext**.| +| Context | [Context](js-apis-inner-application-context.md) | Level-2 module **Context**.| +| ExtensionContext | [ExtensionContext](js-apis-inner-application-extensionContext.md) | Level-2 module **ExtensionContext**.| +| FormExtensionContext | [FormExtensionContext](js-apis-inner-application-formExtensionContext.md) | Level-2 module **FormExtensionContext**.| +| AreaMode | [AreaMode](#areamode) | Enumerated values of **AreaMode**.| +| EventHub | [EventHub](js-apis-inner-application-eventHub.md) | Level-2 module **EventHub**.| +| PermissionRequestResult | [PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md) | Level-2 module **PermissionRequestResult**.| +| PacMap | [PacMap](js-apis-inner-ability-dataAbilityHelper.md#PacMap) | Level-2 module **PacMap**.| +| AbilityResult | [AbilityResult](js-apis-inner-ability-abilityResult.md) | Level-2 module **AbilityResult**.| +| ConnectOptions | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Level-2 module **ConnectOptions**.| **Example** ```ts @@ -52,11 +52,11 @@ let connectOptions: common.ConnectOptions; ## AreaMode -Defines the area where the file to be access is located. Each area has its own content. +Enumerates the data encryption levels. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Value | Description | | --------------- | ---- | --------------- | -| EL1 | 0 | Device-level encryption area. | -| EL2 | 1 | User credential encryption area. The default value is **EL2**.| +| EL1 | 0 | Device-level encryption area, which is accessible after the device is powered on. | +| EL2 | 1 | User-level encryption area, which is accessible only after the device is powered on and the password is entered (for the first time).| diff --git a/en/application-dev/reference/apis/js-apis-app-ability-configuration.md b/en/application-dev/reference/apis/js-apis-app-ability-configuration.md index 90075377af..88aab2d402 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-configuration.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-configuration.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.Configuration +# @ohos.app.ability.Configuration (Configuration) The **Configuration** module defines environment change information. @@ -14,34 +14,42 @@ import Configuration from '@ohos.app.ability.Configuration' **System capability**: SystemCapability.Ability.AbilityBase -| Name| Type| Readable| Writable| Description| + | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| language | string | Yes| Yes| Language of the application.| +| language | string | Yes| Yes| Language of the application, for example, **zh**.| | colorMode | [ColorMode](js-apis-app-ability-configurationConstant.md#configurationconstantcolormode) | Yes| Yes| Color mode, which can be **COLOR_MODE_LIGHT** or **COLOR_MODE_DARK**. The default value is **COLOR_MODE_LIGHT**.| -| direction | Direction | Yes| No| Screen orientation, which can be **DIRECTION_HORIZONTAL** or **DIRECTION_VERTICAL**.| -| screenDensity | ScreenDensity | Yes| No| Screen resolution, which can be **SCREEN_DENSITY_SDPI** (120), **SCREEN_DENSITY_MDPI** (160), **SCREEN_DENSITY_LDPI** (240), **SCREEN_DENSITY_XLDPI** (320), **SCREEN_DENSITY_XXLDPI** (480), or **SCREEN_DENSITY_XXXLDPI** (640).| +| direction | [Direction](js-apis-app-ability-configurationConstant.md#configurationconstantdirection) | Yes| No| Screen orientation, which can be **DIRECTION_HORIZONTAL** or **DIRECTION_VERTICAL**.| +| screenDensity | [ScreenDensity](js-apis-app-ability-configurationConstant.md#configurationconstantscreendensity) | Yes| No| Screen resolution, which can be **SCREEN_DENSITY_SDPI** (120), **SCREEN_DENSITY_MDPI** (160), **SCREEN_DENSITY_LDPI** (240), **SCREEN_DENSITY_XLDPI** (320), **SCREEN_DENSITY_XXLDPI** (480), or **SCREEN_DENSITY_XXXLDPI** (640).| | displayId | number | Yes| No| ID of the display where the application is located.| | hasPointerDevice | boolean | Yes| No| Whether a pointer device, such as a keyboard, mouse, or touchpad, is connected.| For details about the fields, see the **ohos.app.ability.Configuration.d.ts** file. -**Example** - +**Example** + ```ts - let envCallback = { - onConfigurationUpdated(config) { - console.info(`envCallback onConfigurationUpdated success: ${JSON.stringify(config)}`) - let language = config.language; - let colorMode = config.colorMode; - let direction = config.direction; - let screenDensity = config.screenDensity; - let displayId = config.displayId; - let hasPointerDevice = config.hasPointerDevice; + import UIAbility from '@ohos.app.ability.UIAbility'; + + export default class EntryAbility extends UIAbility { + onCreate(want, launchParam) { + let envCallback = { + onConfigurationUpdated(config) { + console.info(`envCallback onConfigurationUpdated success: ${JSON.stringify(config)}`) + let language = config.language; + let colorMode = config.colorMode; + let direction = config.direction; + let screenDensity = config.screenDensity; + let displayId = config.displayId; + let hasPointerDevice = config.hasPointerDevice; + } + }; + try { + let applicationContext = this.context.getApplicationContext(); + let callbackId = applicationContext.on("environment", envCallback); + console.log("callbackId: " + callbackId); + } catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); + } } - }; - try { - var callbackId = applicationContext.on("environment", envCallback); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); } ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-configurationConstant.md b/en/application-dev/reference/apis/js-apis-app-ability-configurationConstant.md index 24b6b4745b..bd56e25660 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-configurationConstant.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-configurationConstant.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.ConfigurationConstant +# @ohos.app.ability.ConfigurationConstant (ConfigurationConstant) The **ConfigurationConstant** module provides the enumerated values of the environment configuration information. @@ -25,7 +25,7 @@ You can obtain the value of this constant by calling the **ConfigurationConstant | COLOR_MODE_LIGHT | 1 | Light mode.| -## ConfigurationConstant.Direction9+ +## ConfigurationConstant.Direction You can obtain the value of this constant by calling the **ConfigurationConstant.Direction** API. @@ -38,7 +38,7 @@ You can obtain the value of this constant by calling the **ConfigurationConstant | DIRECTION_HORIZONTAL | 1 | Horizontal direction.| -## ConfigurationConstant.ScreenDensity9+ +## ConfigurationConstant.ScreenDensity You can obtain the value of this constant by calling the **ConfigurationConstant.ScreenDensity** API. diff --git a/en/application-dev/reference/apis/js-apis-app-ability-contextConstant.md b/en/application-dev/reference/apis/js-apis-app-ability-contextConstant.md index dc1b5a1430..0c39c8fa01 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-contextConstant.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-contextConstant.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.contextConstant +# @ohos.app.ability.contextConstant (ContextConstant) -The **ContextConstant** module defines data encryption levels. +The **ContextConstant** module defines context-related enums. Currently, it defines only the enum of data encryption levels. > **NOTE** > @@ -19,7 +19,7 @@ You can obtain the value of this constant by calling the **ContextConstant.AreaM **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| EL1 | 0 | Device-level encryption area.| -| EL2 | 1 | User credential encryption area.| +| EL1 | 0 | Device-level encryption area, which is accessible after the device is powered on.| +| EL2 | 1 | User-level encryption area, which is accessible only after the device is powered on and the password is entered (for the first time).| diff --git a/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md b/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md index c7a6f60215..9a869f051a 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-dataUriUtils.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.dataUriUtils +# @ohos.app.ability.dataUriUtils (DataUriUtils) The **DataUriUtils** module provides APIs to process URI objects. You can use the APIs to attach an ID to the end of a given URI and obtain, delete, or update the ID attached to the end of a given URI. diff --git a/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md b/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md index 1208aeb8da..0cb95a9abf 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-environmentCallback.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.EnvironmentCallback +# @ohos.app.ability.EnvironmentCallback (EnvironmentCallback) The **EnvironmentCallback** module provides the **onConfigurationUpdated** API for the application context to listen for system environment changes. @@ -33,18 +33,18 @@ Called when the system environment changes. ```ts -import Ability from "@ohos.application.Ability"; +import UIAbility from "@ohos.app.ability.Ability"; var callbackId; -export default class MyAbility extends Ability { +export default class MyAbility extends UIAbility { onCreate() { console.log("MyAbility onCreate") globalThis.applicationContext = this.context.getApplicationContext(); let EnvironmentCallback = { onConfigurationUpdated(config){ console.log("onConfigurationUpdated config:" + JSON.stringify(config)); - }, + } } // 1. Obtain an applicationContext object. let applicationContext = globalThis.applicationContext; diff --git a/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md b/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md index f7203ef5de..e543a93e9c 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-errorManager.md @@ -1,13 +1,13 @@ -# @ohos.app.ability.errorManager (Error Manager) +# @ohos.app.ability.errorManager (ErrorManager) -The **errorManager** module provides APIs for registering and deregistering error observers. +The **ErrorManager** module provides APIs for registering and deregistering error observers. For example, you can use the APIs to register an observer when your application wants to capture JS crashes. > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import -``` +```ts import errorManager from '@ohos.app.ability.errorManager' ``` @@ -23,19 +23,26 @@ Registers an error observer. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observer | [ErrorObserver](./js-apis-inner-application-errorObserver.md) | Yes| Numeric code of the observer.| +| type | string | Yes| Type of the API to call. It is fixed at **"error"**.| +| observer | [ErrorObserver](./js-apis-inner-application-errorObserver.md) | Yes| Digital code of the observer.| + +**Return value** + + | Type| Description| + | -------- | -------- | + | number | Index of the observer.| **Example** -```js +```ts var observer = { onUnhandledException(errorMsg) { console.log('onUnhandledException, errorMsg: ', errorMsg) } } +var observerId = -1; try { - errorManager.on("error", observer); + observerId = errorManager.on("error", observer); } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); } @@ -53,13 +60,13 @@ Deregisters an error observer. This API uses an asynchronous callback to return | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observerId | number | Yes| Numeric code of the observer.| +| type | string | Yes| Type of the API to call. It is fixed at **"error"**.| +| observerId | number | Yes| Index of the observer returned by **on()**.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Example** -```js +```ts var observerId = 100; function unregisterErrorObserverCallback(err) { @@ -86,8 +93,8 @@ Deregisters an error observer. This API uses a promise to return the result. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| type | string | Yes| Type of the API to call.| -| observerId | number | Yes| Numeric code of the observer.| +| type | string | Yes| Type of the API to call. It is fixed at **"error"**.| +| observerId | number | Yes| Index of the observer returned by **on()**.| **Return value** @@ -97,7 +104,7 @@ Deregisters an error observer. This API uses a promise to return the result. **Example** -```js +```ts var observerId = 100; try { errorManager.off("error", observerId) diff --git a/en/application-dev/reference/apis/js-apis-app-ability-extensionAbility.md b/en/application-dev/reference/apis/js-apis-app-ability-extensionAbility.md index b53881f7fd..d532723b43 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-extensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-extensionAbility.md @@ -1,30 +1,10 @@ -# @ohos.app.ability.ExtensionAbility +# @ohos.app.ability.ExtensionAbility (ExtensionAbility Base Class) -The **ExtensionAbility** module manages the Extension ability lifecycle and context, such as creating and destroying an Extension ability, and dumping client information. +**ExtensionAbility** is the base class for scenario-specific ExtensionAbilities. It is inherited from [Ability](js-apis-app-ability-ability.md), with no attribute or method added. You cannot inherit from this base class. > **NOTE** > > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. -## Modules to Import - -```ts -import ExtensionAbility from '@ohos.app.ability.ExtensionAbility'; -``` - **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore - -**Example** - - ```ts - class MyExtensionAbility extends ExtensionAbility { - onConfigurationUpdated(config) { - console.log('onConfigurationUpdated, config:' + JSON.stringify(config)); - } - - onMemoryLevel(level) { - console.log('onMemoryLevel, level:' + JSON.stringify(level)); - } - } - ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md b/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md index 4f989652d5..434fb19383 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-missionManager.md @@ -1,15 +1,15 @@ -# @ohos.app.ability.missionManager +# @ohos.app.ability.missionManager (missionManager) The **missionManager** module provides APIs to lock, unlock, and clear missions, and switch a mission to the foreground. > **NOTE** -> +> > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ```ts -import missionManager from '@ohos.app.ability.missionManager' +import missionManager from '@ohos.app.ability.missionManager'; ``` ## Required Permissions @@ -32,19 +32,19 @@ Registers a listener to observe the mission status. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | listener | MissionListener | Yes| Listener to register.| + | listener | [MissionListener](js-apis-inner-application-missionListener.md) | Yes| Mission status listener to register.| **Return value** | Type| Description| | -------- | -------- | - | number | Returns the unique index of the mission status listener, which is created by the system and allocated when the listener is registered.| + | number | Index of the mission status listener, which is created by the system and allocated when the listener is registered.| **Example** ```ts -import Ability from '@ohos.application.Ability' import missionManager from '@ohos.app.ability.missionManager'; +import UIAbility from '@ohos.app.ability.UIAbility'; var listener = { onMissionCreated: function (mission) {console.log("--------onMissionCreated-------")}, @@ -52,14 +52,15 @@ var listener = { onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")}, onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")}, onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")}, - onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")} + onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")}, + onMissionLabelUpdated: function (mission) {console.log("--------onMissionLabelUpdated-------")} }; var listenerId = -1; -export default class MainAbility extends Ability { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.log("[Demo] MainAbility onCreate") + console.log("[Demo] EntryAbility onCreate"); globalThis.abilityWant = want; globalThis.context = this.context; } @@ -74,12 +75,12 @@ export default class MainAbility extends Ability { } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); } - console.log("[Demo] MainAbility onDestroy") + console.log("[Demo] EntryAbility onDestroy") } onWindowStageCreate(windowStage) { // The main window is created. Set a main page for this ability. - console.log("[Demo] MainAbility onWindowStageCreate") + console.log("[Demo] EntryAbility onWindowStageCreate") try { listenerId = missionManager.on("mission", listener); } catch (paramError) { @@ -106,7 +107,7 @@ export default class MainAbility extends Ability { off(type: "mission", listenerId: number, callback: AsyncCallback<void>): void; -Deregisters a mission status listener. This API uses an asynchronous callback to return the result. +Deregisters a mission status listener. **Required permissions**: ohos.permission.MANAGE_MISSIONS @@ -118,14 +119,14 @@ Deregisters a mission status listener. This API uses an asynchronous callback to | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | listenerId | number | Yes| Unique index of the mission status listener to unregister. It is returned by **registerMissionListener**.| + | listenerId | number | Yes| Index of the mission status listener to deregister. It is returned by **on()**.| | callback | AsyncCallback<void> | Yes| Callback used to return the result.| **Example** ```ts -import Ability from '@ohos.application.Ability' import missionManager from '@ohos.app.ability.missionManager'; +import UIAbility from '@ohos.app.ability.UIAbility'; var listener = { onMissionCreated: function (mission) {console.log("--------onMissionCreated-------")}, @@ -133,14 +134,15 @@ var listener = { onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")}, onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")}, onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")}, - onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")} + onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")}, + onMissionLabelUpdated: function (mission) {console.log("--------onMissionLabelUpdated-------")} }; var listenerId = -1; -export default class MainAbility extends Ability { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.log("[Demo] MainAbility onCreate") + console.log("[Demo] EntryAbility onCreate") globalThis.abilityWant = want; globalThis.context = this.context; } @@ -155,12 +157,12 @@ export default class MainAbility extends Ability { } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); } - console.log("[Demo] MainAbility onDestroy") + console.log("[Demo] EntryAbility onDestroy") } onWindowStageCreate(windowStage) { // The main window is created. Set a main page for this ability. - console.log("[Demo] MainAbility onWindowStageCreate") + console.log("[Demo] EntryAbility onWindowStageCreate") try { listenerId = missionManager.on("mission", listener); } catch (paramError) { @@ -199,19 +201,19 @@ Deregisters a mission status listener. This API uses a promise to return the res | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | listenerId | number | Yes| Unique index of the mission status listener to unregister. It is returned by **registerMissionListener**.| + | listenerId | number | Yes| Index of the mission status listener to deregister. It is returned by **on()**.| **Return value** - | Type| Description| + | Type| Description| | -------- | -------- | - | Promise<void> | Promise used to return the result.| + | Promise<void> | Promise used to return the result.| **Example** ```ts -import Ability from '@ohos.application.Ability' import missionManager from '@ohos.app.ability.missionManager'; +import UIAbility from '@ohos.app.ability.UIAbility'; var listener = { onMissionCreated: function (mission) {console.log("--------onMissionCreated-------")}, @@ -219,14 +221,15 @@ var listener = { onMissionSnapshotChanged: function (mission) {console.log("--------onMissionSnapshotChanged-------")}, onMissionMovedToFront: function (mission) {console.log("--------onMissionMovedToFront-------")}, onMissionIconUpdated: function (mission, icon) {console.log("--------onMissionIconUpdated-------")}, - onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")} + onMissionClosed: function (mission) {console.log("--------onMissionClosed-------")}, + onMissionLabelUpdated: function (mission) {console.log("--------onMissionLabelUpdated-------")} }; var listenerId = -1; -export default class MainAbility extends Ability { +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.log("[Demo] MainAbility onCreate") + console.log("[Demo] EntryAbility onCreate") globalThis.abilityWant = want; globalThis.context = this.context; } @@ -241,12 +244,12 @@ export default class MainAbility extends Ability { } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); } - console.log("[Demo] MainAbility onDestroy") + console.log("[Demo] EntryAbility onDestroy") } onWindowStageCreate(windowStage) { // The main window is created. Set a main page for this ability. - console.log("[Demo] MainAbility onWindowStageCreate") + console.log("[Demo] EntryAbility onWindowStageCreate") try { listenerId = missionManager.on("mission", listener); } catch (paramError) { @@ -292,19 +295,28 @@ Obtains the information about a given mission. This API uses an asynchronous cal **Example** ```ts - import missionManager from '@ohos.app.ability.missionManager' + import missionManager from '@ohos.app.ability.missionManager'; + let testMissionId = 1; try { - var allMissions=missionManager.getMissionInfos("",10).catch(function(err){console.log(err);}); - missionManager.getMissionInfo("", allMissions[0].missionId, (error, mission) => { - console.log("getMissionInfo is called, error.code = " + error.code) - console.log("mission.missionId = " + mission.missionId); - console.log("mission.runningState = " + mission.runningState); - console.log("mission.lockedState = " + mission.lockedState); - console.log("mission.timestamp = " + mission.timestamp); - console.log("mission.label = " + mission.label); - console.log("mission.iconPath = " + mission.iconPath); - }); + var allMissions=await missionManager.getMissionInfos("",10).catch(function(err){console.log(err);}); + if (allMissions && allMissions.length > 0) { + testMissionId = allMissions[0].missionId; + } + + missionManager.getMissionInfo("", testMissionId, (error, mission) => { + if (error) { + console.log("getMissionInfo failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + } else { + console.log("mission.missionId = " + mission.missionId); + console.log("mission.runningState = " + mission.runningState); + console.log("mission.lockedState = " + mission.lockedState); + console.log("mission.timestamp = " + mission.timestamp); + console.log("mission.label = " + mission.label); + console.log("mission.iconPath = " + mission.iconPath); + } + }); } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); } @@ -338,18 +350,20 @@ Obtains the information about a given mission. This API uses a promise to return **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - var mission = missionManager.getMissionInfo("", 10).catch(function (err){ - console.log(err); +let testMissionId = 1; +try { + missionManager.getMissionInfo("", testMissionId).then((data) => { + console.info('getMissionInfo successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('getMissionInfo failed. Cause: ' + error.message); }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (error) { + console.error('getMissionInfo failed. Cause: ' + error.message); +} +``` ## missionManager.getMissionInfos @@ -374,13 +388,17 @@ Obtains information about all missions. This API uses an asynchronous callback t **Example** ```ts - import missionManager from '@ohos.app.ability.missionManager' + import missionManager from '@ohos.app.ability.missionManager'; try { missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); + if (error) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + } else { + console.log("size = " + missions.length); + console.log("missions = " + JSON.stringify(missions)); + } }) } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); @@ -415,18 +433,19 @@ Obtains information about all missions. This API uses a promise to return the re **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - var allMissions = missionManager.getMissionInfos("", 10).catch(function (err){ - console.log(err); +try { + missionManager.getMissionInfos("", 10).then((data) => { + console.info('getMissionInfos successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('getMissionInfos failed. Cause: ' + error.message); }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (error) { + console.error('getMissionInfos failed. Cause: ' + error.message); +} +``` ## missionManager.getMissionSnapShot @@ -449,27 +468,22 @@ Obtains the snapshot of a given mission. This API uses an asynchronous callback | callback | AsyncCallback<[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)> | Yes| Callback used to return the snapshot information obtained.| **Example** +```ts +import missionManager from '@ohos.app.ability.missionManager'; - ```ts - import missionManager from '@ohos.app.ability.missionManager' - - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.getMissionSnapShot("", id, (error, snapshot) => { - console.log("getMissionSnapShot is called, error.code = " + error.code); - console.log("bundleName = " + snapshot.ability.bundleName); - }) - }) - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +let testMissionId = 2; +try { + missionManager.getMissionSnapShot("", testMissionId, (err, data) => { + if (err) { + console.error('getMissionSnapShot failed:' + err.message); + } else { + console.info('getMissionSnapShot successfully:' + JSON.stringify(data)); + } + }); +} catch (err) { + console.error('getMissionSnapShot failed:' + err.message); +} +``` ## missionManager.getMissionSnapShot @@ -497,26 +511,20 @@ Obtains the snapshot of a given mission. This API uses a promise to return the r | Promise<[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)> | Promise used to return the snapshot information obtained.| **Example** +```ts +import missionManager from '@ohos.app.ability.missionManager'; - ```ts - import missionManager from '@ohos.app.ability.missionManager' - - try { - var allMissions; - missionManager.getMissionInfos("",10).then(function(res){ - allMissions=res; - }).catch(function(err){console.log(err);}); - console.log("size = " + allMissions.length); - console.log("missions = " + JSON.stringify(allMissions)); - var id = allMissions[0].missionId; - - var snapshot = missionManager.getMissionSnapShot("", id).catch(function (err){ - console.log(err); - }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` +let testMissionId = 2; +try { + missionManager.getMissionSnapShot("", testMissionId).then((data) => { + console.info('getMissionSnapShot successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('getMissionSnapShot failed. Cause: ' + error.message); + }); +} catch (error) { + console.error('getMissionSnapShot failed. Cause: ' + error.message); +} +``` ## missionManager.getLowResolutionMissionSnapShot @@ -539,27 +547,22 @@ Obtains the low-resolution snapshot of a given mission. This API uses an asynchr | callback | AsyncCallback<[MissionSnapshot](js-apis-inner-application-missionSnapshot.md)> | Yes| Callback used to return the snapshot information obtained.| **Example** +```ts +import missionManager from '@ohos.app.ability.missionManager'; - ```ts - import missionManager from '@ohos.app.ability.missionManager' - - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.getLowResolutionMissionSnapShot("", id, (error, snapshot) => { - console.log("getLowResolutionMissionSnapShot is called, error.code = " + error.code); - console.log("bundleName = " + snapshot.ability.bundleName); - }) - }) - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +let testMissionId = 2; +try { + missionManager.getLowResolutionMissionSnapShot("", testMissionId, (err, data) => { + if (err) { + console.error('getLowResolutionMissionSnapShot failed:' + err.message); + } else { + console.info('getLowResolutionMissionSnapShot successfully:' + JSON.stringify(data)); + } + }); +} catch (err) { + console.error('getLowResolutionMissionSnapShot failed:' + err.message); +} +``` ## missionManager.getLowResolutionMissionSnapShot @@ -588,25 +591,20 @@ Obtains the low-resolution snapshot of a given mission. This API uses a promise **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - var allMissions; - missionManager.getMissionInfos("",10).then(function(res){ - allMissions=res; - }).catch(function(err){console.log(err);}); - console.log("size = " + allMissions.length); - console.log("missions = " + JSON.stringify(allMissions)); - var id = allMissions[0].missionId; - - var snapshot = missionManager.getLowResolutionMissionSnapShot("", id).catch(function (err){ - console.log(err); - }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` +let testMissionId = 2; +try { + missionManager.getLowResolutionMissionSnapShot("", testMissionId).then((data) => { + console.info('getLowResolutionMissionSnapShot successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('getLowResolutionMissionSnapShot failed. Cause: ' + error.message); + }); +} catch (error) { + console.error('getLowResolutionMissionSnapShot failed. Cause: ' + error.message); +} +``` ## missionManager.lockMission @@ -630,25 +628,22 @@ Locks a given mission. This API uses an asynchronous callback to return the resu **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.lockMission(id).then(() => { - console.log("lockMission is called "); - }); +let testMissionId = 2; +try { + missionManager.lockMission(testMissionId, (err, data) => { + if (err) { + console.error('lockMission failed:' + err.message); + } else { + console.info('lockMission successfully:' + JSON.stringify(data)); + } }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (err) { + console.error('lockMission failed:' + err.message); +} +``` ## missionManager.lockMission @@ -670,32 +665,25 @@ Locks a given mission. This API uses a promise to return the result. **Return value** - | Type| Description| + | Type| Description| | -------- | -------- | - | Promise<void> | Promise used to return the result.| + | Promise<void> | Promise used to return the result.| **Example** +```ts +import missionManager from '@ohos.app.ability.missionManager'; - ```ts - import missionManager from '@ohos.app.ability.missionManager' - - try { - var allMissions; - missionManager.getMissionInfos("",10).then(function(res){ - allMissions=res; - }).catch(function(err){console.log(err);}); - console.log("size = " + allMissions.length); - console.log("missions = " + JSON.stringify(allMissions)); - var id = allMissions[0].missionId; - - missionManager.lockMission(id).catch(function (err){ - console.log(err); +let testMissionId = 2; +try { + missionManager.lockMission(testMissionId).then((data) => { + console.info('lockMission successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('lockMission failed. Cause: ' + error.message); }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (error) { + console.error('lockMission failed. Cause: ' + error.message); +} +``` ## missionManager.unlockMission @@ -717,26 +705,22 @@ Unlocks a given mission. This API uses an asynchronous callback to return the re | callback | AsyncCallback<void> | Yes| Callback used to return the result.| **Example** +```ts +import missionManager from '@ohos.app.ability.missionManager'; - ```ts - import missionManager from '@ohos.app.ability.missionManager' - - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.unlockMission(id).then(() => { - console.log("unlockMission is called "); - }); +let testMissionId = 2; +try { + missionManager.unlockMission(testMissionId, (err, data) => { + if (err) { + console.error('unlockMission failed:' + err.message); + } else { + console.info('unlockMission successfully:' + JSON.stringify(data)); + } }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (err) { + console.error('unlockMission failed:' + err.message); +} +``` ## missionManager.unlockMission @@ -758,35 +742,26 @@ Unlocks a given mission. This API uses a promise to return the result. **Return value** - | Type| Description| + | Type| Description| | -------- | -------- | - | Promise<void> | Promise used to return the result.| + | Promise<void> | Promise used to return the result.| **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - var allMissions; - missionManager.getMissionInfos("",10).then(function(res){ - allMissions=res; - }).catch(function(err){console.log(err);}); - console.log("size = " + allMissions.length); - console.log("missions = " + JSON.stringify(allMissions)); - var id = allMissions[0].missionId; - - missionManager.lockMission(id).catch(function (err){ - console.log(err); - }); - missionManager.unlockMission(id).catch(function (err){ - console.log(err); +let testMissionId = 2; +try { + missionManager.unlockMission(testMissionId).then((data) => { + console.info('unlockMission successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('unlockMission failed. Cause: ' + error.message); }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (error) { + console.error('unlockMission failed. Cause: ' + error.message); +} +``` ## missionManager.clearMission @@ -809,24 +784,22 @@ Clears a given mission, regardless of whether it is locked. This API uses an asy **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.clearMission(id).then(() => { - console.log("clearMission is called "); - }); +let testMissionId = 2; +try { + missionManager.clearMission(testMissionId, (err, data) => { + if (err) { + console.error('clearMission failed:' + err.message); + } else { + console.info('clearMission successfully:' + JSON.stringify(data)); + } }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` +} catch (err) { + console.error('clearMission failed:' + err.message); +} +``` ## missionManager.clearMission @@ -849,32 +822,26 @@ Clears a given mission, regardless of whether it is locked. This API uses a prom **Return value** - | Type| Description| + | Type| Description| | -------- | -------- | - | Promise<void> | Promise used to return the result.| + | Promise<void> | Promise used to return the result.| **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - var allMissions; - missionManager.getMissionInfos("",10).then(function(res){ - allMissions=res; - }).catch(function(err){console.log(err);}); - console.log("size = " + allMissions.length); - console.log("missions = " + JSON.stringify(allMissions)); - var id = allMissions[0].missionId; - - missionManager.clearMission(id).catch(function (err){ - console.log(err); +let testMissionId = 2; +try { + missionManager.clearMission(testMissionId).then((data) => { + console.info('clearMission successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('clearMission failed. Cause: ' + error.message); }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (error) { + console.error('clearMission failed. Cause: ' + error.message); +} +``` ## missionManager.clearAllMissions @@ -890,14 +857,21 @@ Clears all unlocked missions. This API uses an asynchronous callback to return t **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' - - missionManager.clearAllMissions().then(() => { - console.log("clearAllMissions is called "); - }); - ``` +```ts +import missionManager from '@ohos.app.ability.missionManager'; +try { + missionManager.clearAllMissions(err => { + if (err) { + console.error('clearAllMissions failed:' + err.message); + } else { + console.info('clearAllMissions successfully.'); + } + }); +} catch (err) { + console.error('clearAllMissions failed:' + err.message); +} +``` ## missionManager.clearAllMissions @@ -913,19 +887,25 @@ Clears all unlocked missions. This API uses a promise to return the result. **Return value** - | Type| Description| + | Type| Description| | -------- | -------- | - | Promise<void> | Promise used to return the result.| + | Promise<void> | Promise used to return the result.| **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' - missionManager.clearAllMissions().catch(function (err){ - console.log(err); - }); - ``` +```ts +import missionManager from '@ohos.app.ability.missionManager'; +try { + missionManager.clearAllMissions(bundleName).then(() => { + console.info('clearAllMissions successfully.'); + }).catch(err => { + console.error('clearAllMissions failed:' + err.message); + }); +} catch (err) { + console.error('clearAllMissions failed:' + err.message); +} +``` ## missionManager.moveMissionToFront @@ -948,25 +928,22 @@ Switches a given mission to the foreground. This API uses an asynchronous callba **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.moveMissionToFront(id).then(() => { - console.log("moveMissionToFront is called "); - }); +let testMissionId = 2; +try { + missionManager.moveMissionToFront(testMissionId, (err, data) => { + if (err) { + console.error('moveMissionToFront failed:' + err.message); + } else { + console.info('moveMissionToFront successfully:' + JSON.stringify(data)); + } }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (err) { + console.error('moveMissionToFront failed:' + err.message); +} +``` ## missionManager.moveMissionToFront @@ -990,25 +967,22 @@ Switches a given mission to the foreground, with the startup parameters for the **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.moveMissionToFront(id,{windowMode : 101}).then(() => { - console.log("moveMissionToFront is called "); - }); +let testMissionId = 2; +try { + missionManager.moveMissionToFront(testMissionId, {windowMode : 101}, (err, data) => { + if (err) { + console.error('moveMissionToFront failed:' + err.message); + } else { + console.info('moveMissionToFront successfully:' + JSON.stringify(data)); + } }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` - +} catch (err) { + console.error('moveMissionToFront failed:' + err.message); +} +``` ## missionManager.moveMissionToFront @@ -1031,28 +1005,23 @@ Switches a given mission to the foreground, with the startup parameters for the **Return value** - | Type| Description| + | Type| Description| | -------- | -------- | - | Promise<void> | Promise used to return the result.| + | Promise<void> | Promise used to return the result.| **Example** - ```ts - import missionManager from '@ohos.app.ability.missionManager' +```ts +import missionManager from '@ohos.app.ability.missionManager'; - try { - var allMissions; - missionManager.getMissionInfos("",10).then(function(res){ - allMissions=res; - }).catch(function(err){console.log(err);}); - console.log("size = " + allMissions.length); - console.log("missions = " + JSON.stringify(allMissions)); - var id = allMissions[0].missionId; - - missionManager.moveMissionToFront(id).catch(function (err){ - console.log(err); +let testMissionId = 2; +try { + missionManager.moveMissionToFront(testMissionId).then((data) => { + console.info('moveMissionToFront successfully. Data: ' + JSON.stringify(data)); + }).catch(error => { + console.error('moveMissionToFront failed. Cause: ' + error.message); }); - } catch (paramError) { - console.log("error: " + paramError.code + ", " + paramError.message); - } - ``` +} catch (error) { + console.error('moveMissionToFront failed. Cause: ' + error.message); +} +``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md b/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md index c703726492..a2090ed00e 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-quickFixManager.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.quickFixManager +# @ohos.app.ability.quickFixManager (quickFixManager) The **quickFixManager** module provides APIs for quick fix. With quick fix, you can fix bugs in your application by applying patches, which is more efficient than by updating the entire application. @@ -36,7 +36,7 @@ Defines the quick fix information at the application level. | Name | Type | Mandatory| Description | | ----------- | -------------------- | ---- | ------------------------------------------------------------ | -| bundleName | string | Yes | Bundle name of the application. | +| bundleName | string | Yes | Bundle name. | | bundleVersionCode | number | Yes | Internal version number of the application. | | bundleVersionName | string | Yes | Version number of the application that is shown to users. | | quickFixVersionCode | number | Yes | Version code of the quick fix patch package. | @@ -65,8 +65,6 @@ Applies a quick fix patch. This API uses an asynchronous callback to return the **Example** ```ts - import quickFixManager from '@ohos.app.ability.quickFixManager' - try { let hapModuleQuickFixFiles = ["/data/storage/el2/base/entry.hqf"] quickFixManager.applyQuickFix(hapModuleQuickFixFiles, (error) => { @@ -108,8 +106,6 @@ Applies a quick fix patch. This API uses a promise to return the result. **Example** ```ts - import quickFixManager from '@ohos.app.ability.quickFixManager' - let hapModuleQuickFixFiles = ["/data/storage/el2/base/entry.hqf"] try { quickFixManager.applyQuickFix(hapModuleQuickFixFiles).then(() => { @@ -136,16 +132,14 @@ Obtains the quick fix information of the application. This API uses an asynchron **Parameters** - | Parameter| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | bundleName | string | Yes|Bundle name of the application. | - | callback | AsyncCallback\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | Yes| Callback used to return the quick fix information.| +| Parameter| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| bundleName | string | Yes|Bundle name. | +| callback | AsyncCallback\<[ApplicationQuickFixInfo](#applicationquickfixinfo)> | Yes| Callback used to return the quick fix information.| **Example** ```ts - import quickFixManager from '@ohos.app.ability.quickFixManager' - try { let bundleName = "bundleName" quickFixManager.getApplicationQuickFixInfo(bundleName, (error, data) => { @@ -174,9 +168,9 @@ Obtains the quick fix information of the application. This API uses a promise to **Parameters** - | Parameter| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | bundleName | string | Yes| Bundle name of the application. | +| Parameter| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| bundleName | string | Yes| Bundle name.| **Return value** @@ -187,8 +181,6 @@ Obtains the quick fix information of the application. This API uses a promise to **Example** ```ts - import quickFixManager from '@ohos.app.ability.quickFixManager' - try { let bundleName = "bundleName" quickFixManager.getApplicationQuickFixInfo(bundleName).then((data) => { @@ -199,4 +191,4 @@ Obtains the quick fix information of the application. This API uses a promise to } catch (paramError) { console.log("error: " + paramError.code + ", " + paramError.message); } -``` + ``` diff --git a/en/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md b/en/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md index 6c3e0e6e2a..0efdb59d5e 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-serviceExtensionAbility.md @@ -1,10 +1,10 @@ -# @ohos.app.ability.ServiceExtensionAbility +# @ohos.app.ability.ServiceExtensionAbility (ServiceExtensionAbility) -The **ServiceExtensionAbility** module provides APIs for Service Extension abilities. +The **ServiceExtensionAbility** module provides lifecycle callbacks when a ServiceExtensionAbility (background service) is created, destroyed, connected, or disconnected. > **NOTE** > -> The APIs of this module are supported and deprecated since API version 9. You are advised to use [@ohos.app.ability.ServiceExtensionAbility](js-apis-app-ability-serviceExtensionAbility.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. ## Modules to Import @@ -23,16 +23,16 @@ None. **System API**: This is a system API and cannot be called by third-party applications. -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md) | Yes| No| Service Extension context, which is inherited from **ExtensionContext**.| +| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md) | Yes| No| ServiceExtensionContext, which is inherited from **ExtensionContext**.| ## ServiceExtensionAbility.onCreate onCreate(want: Want): void; -Called when a Service Extension ability is created to initialize the service logic. +Called when a ServiceExtensionAbility is created to initialize the service logic. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -40,9 +40,9 @@ Called when a Service Extension ability is created to initialize the service log **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-app-ability-want.md) | Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-app-ability-want.md) | Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.| **Example** @@ -59,7 +59,7 @@ Called when a Service Extension ability is created to initialize the service log onDestroy(): void; -Called when this Service Extension ability is destroyed to clear resources. +Called when this ServiceExtensionAbility is destroyed to clear resources. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -80,7 +80,7 @@ Called when this Service Extension ability is destroyed to clear resources. onRequest(want: Want, startId: number): void; -Called after **onCreate** is invoked when a Service Extension ability is started by calling **startAbility**. The value of **startId** is incremented for each ability that is started. +Called following **onCreate()** when a ServiceExtensionAbility is started by calling **startAbility()**. The value of **startId** is incremented for each ability that is started. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -88,10 +88,10 @@ Called after **onCreate** is invoked when a Service Extension ability is started **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-app-ability-want.md) | Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| - | startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-app-ability-want.md) | Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.| +| startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.| **Example** @@ -108,7 +108,7 @@ Called after **onCreate** is invoked when a Service Extension ability is started onConnect(want: Want): rpc.RemoteObject; -Called after **onCreate** is invoked when a Service Extension ability is started by calling **connectAbility**. A **RemoteObject** object is returned for communication with the client. +Called following **onCreate()** when a ServiceExtensionAbility is started by calling **connectAbility()**. A **RemoteObject** object is returned for communication between the server and client. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -116,15 +116,15 @@ Called after **onCreate** is invoked when a Service Extension ability is started **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-app-ability-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-app-ability-want.md)| Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.| **Return value** - | Type| Description| - | -------- | -------- | - | rpc.RemoteObject | A **RemoteObject** object used for communication with the client.| +| Type| Description| +| -------- | -------- | +| rpc.RemoteObject | A **RemoteObject** object used for communication between the server and client.| **Example** @@ -150,7 +150,7 @@ Called after **onCreate** is invoked when a Service Extension ability is started onDisconnect(want: Want): void; -Called when this Service Extension ability is disconnected. +Called when a client is disconnected from this ServiceExtensionAbility. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -158,9 +158,9 @@ Called when this Service Extension ability is disconnected. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want |[Want](js-apis-app-ability-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want |[Want](js-apis-app-ability-want.md)| Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.| **Example** @@ -176,7 +176,7 @@ Called when this Service Extension ability is disconnected. onReconnect(want: Want): void; -Called when this Service Extension ability is reconnected. +Called when a new client attempts to connect to this ServiceExtensionAbility after all previous clients are disconnected. This capability is reserved. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -184,9 +184,9 @@ Called when this Service Extension ability is reconnected. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want |[Want](js-apis-app-ability-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want |[Want](js-apis-app-ability-want.md)| Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.| **Example** @@ -202,7 +202,7 @@ Called when this Service Extension ability is reconnected. onConfigurationUpdate(newConfig: Configuration): void; -Called when the configuration of this Service Extension ability is updated. +Called when the configuration of this ServiceExtensionAbility is updated. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -210,9 +210,9 @@ Called when the configuration of this Service Extension ability is updated. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | newConfig | [Configuration](js-apis-app-ability-configuration.md) | Yes| New configuration.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| newConfig | [Configuration](js-apis-app-ability-configuration.md) | Yes| New configuration.| **Example** @@ -236,9 +236,9 @@ Dumps the client information. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | params | Array\ | Yes| Parameters in the form of a command.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| params | Array\ | Yes| Parameters in the form of a command.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-app-ability-startOptions.md b/en/application-dev/reference/apis/js-apis-app-ability-startOptions.md index fc5215fe40..3e95fbf541 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-startOptions.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-startOptions.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.StartOptions +# @ohos.app.ability.StartOptions (StartOptions) -The **StartOptions** module implements ability startup options. +**StartOptions** is used as an input parameter of [startAbility()](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability-1) to specify the window mode of an ability. > **NOTE** > @@ -21,4 +21,4 @@ import StartOptions from '@ohos.app.ability.StartOptions'; | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | [windowMode](js-apis-application-abilityConstant.md#abilityconstantwindowmode) | number | No| Window mode.| -| displayId | number | No| Display ID.| +| displayId | number | No| Display ID. The default value is **0**, indicating the current display.| diff --git a/en/application-dev/reference/apis/js-apis-app-ability-uiAbility.md b/en/application-dev/reference/apis/js-apis-app-ability-uiAbility.md index cce8b81738..38d9f5428c 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-uiAbility.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-uiAbility.md @@ -1,11 +1,9 @@ -# @ohos.app.ability.UIAbility +# @ohos.app.ability.UIAbility (UIAbility) -The **Ability** module manages the ability lifecycle and context, such as creating and destroying an ability, and dumping client information. +UIAbility is an application component that has the UI. The **UIAbility** module provides lifecycle callback such as component creation, destruction, and foreground/background switching. It also provides the following capabilities related to component collaboration: -This module provides the following common ability-related functions: - -- [Caller](#caller): implements sending of sequenceable data to the target ability when an ability (caller ability) invokes the target ability (callee ability). -- [Callee](#callee): implements callbacks for registration and deregistration of caller notifications. +- [Caller](#caller): an object returned by [startAbilityByCall](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartabilitybycall). The CallerAbility (caller) uses this object to communicate with the CalleeAbility (callee). +- [Callee](#callee): an internal object of UIAbility. The CalleeAbility (callee) uses this object to communicate with the CallerAbility (caller). > **NOTE** > @@ -15,39 +13,39 @@ This module provides the following common ability-related functions: ## Modules to Import ```ts -import Ability from '@ohos.app.ability.UIAbility'; +import UIAbility from '@ohos.app.ability.UIAbility'; ``` ## Attributes **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| context | [UIAbilityContext](js-apis-inner-application-uiAbilityContext.md) | Yes| No| Context of an ability.| -| launchWant | [Want](js-apis-app-ability-want.md) | Yes| No| Parameters for starting the ability.| -| lastRequestWant | [Want](js-apis-app-ability-want.md) | Yes| No| Parameters used when the ability was started last time.| -| callee | [Callee](#callee) | Yes| No| Object that invokes the stub service.| +| context | [UIAbilityContext](js-apis-inner-application-uiAbilityContext.md) | Yes| No| Context of the UIAbility.| +| launchWant | [Want](js-apis-app-ability-want.md) | Yes| No| Parameters for starting the UIAbility.| +| lastRequestWant | [Want](js-apis-app-ability-want.md) | Yes| No| Parameters used when the UIAbility was started last time.| +| callee | [Callee](#callee) | Yes| No| Object that invokes the stub service.| -## Ability.onCreate +## UIAbility.onCreate onCreate(want: Want, param: AbilityConstant.LaunchParam): void; -Called to initialize the service logic when an ability is created. +Called to initialize the service logic when a UIAbility is created. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-app-ability-want.md) | Yes| Information related to this ability, including the ability name and bundle name.| - | param | AbilityConstant.LaunchParam | Yes| Parameters for starting the ability, and the reason for the last abnormal exit.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-app-ability-want.md) | Yes| Information related to this UIAbility, including the ability name and bundle name.| +| param | [AbilityConstant.LaunchParam](js-apis-app-ability-abilityConstant.md#abilityconstantlaunchparam) | Yes| Parameters for starting the UIAbility, and the reason for the last abnormal exit.| **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onCreate(want, param) { console.log('onCreate, want:' + want.abilityName); } @@ -55,24 +53,24 @@ Called to initialize the service logic when an ability is created. ``` -## Ability.onWindowStageCreate +## UIAbility.onWindowStageCreate onWindowStageCreate(windowStage: window.WindowStage): void -Called when a **WindowStage** is created for this ability. +Called when a **WindowStage** is created for this UIAbility. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | windowStage | window.WindowStage | Yes| **WindowStage** information.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** information.| **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onWindowStageCreate(windowStage) { console.log('onWindowStageCreate'); } @@ -80,18 +78,18 @@ Called when a **WindowStage** is created for this ability. ``` -## Ability.onWindowStageDestroy +## UIAbility.onWindowStageDestroy onWindowStageDestroy(): void -Called when the **WindowStage** is destroyed for this ability. +Called when the **WindowStage** is destroyed for this UIAbility. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onWindowStageDestroy() { console.log('onWindowStageDestroy'); } @@ -99,24 +97,24 @@ Called when the **WindowStage** is destroyed for this ability. ``` -## Ability.onWindowStageRestore +## UIAbility.onWindowStageRestore onWindowStageRestore(windowStage: window.WindowStage): void -Called when the **WindowStage** is restored during the migration of this ability, which is a multi-instance ability. +Called when the **WindowStage** is restored during the migration of this UIAbility, which is a multi-instance ability. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | windowStage | window.WindowStage | Yes| **WindowStage** information.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** information.| **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onWindowStageRestore(windowStage) { console.log('onWindowStageRestore'); } @@ -124,18 +122,18 @@ Called when the **WindowStage** is restored during the migration of this ability ``` -## Ability.onDestroy +## UIAbility.onDestroy onDestroy(): void; -Called when this ability is destroyed to clear resources. +Called when this UIAbility is destroyed to clear resources. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onDestroy() { console.log('onDestroy'); } @@ -143,18 +141,18 @@ Called when this ability is destroyed to clear resources. ``` -## Ability.onForeground +## UIAbility.onForeground onForeground(): void; -Called when this ability is switched from the background to the foreground. +Called when this UIAbility is switched from the background to the foreground. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onForeground() { console.log('onForeground'); } @@ -162,18 +160,18 @@ Called when this ability is switched from the background to the foreground. ``` -## Ability.onBackground +## UIAbility.onBackground onBackground(): void; -Called when this ability is switched from the foreground to the background. +Called when this UIAbility is switched from the foreground to the background. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onBackground() { console.log('onBackground'); } @@ -181,7 +179,7 @@ Called when this ability is switched from the foreground to the background. ``` -## Ability.onContinue +## UIAbility.onContinue onContinue(wantParam : {[key: string]: any}): AbilityConstant.OnContinueResult; @@ -191,21 +189,21 @@ Called to save data during the ability migration preparation process. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | wantParam | {[key: string]: any} | Yes| **want** parameter.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| wantParam | {[key: string]: any} | Yes| **want** parameter.| **Return value** - | Type| Description| - | -------- | -------- | - | AbilityConstant.OnContinueResult | Continuation result.| +| Type| Description| +| -------- | -------- | +| [AbilityConstant.OnContinueResult](js-apis-app-ability-abilityConstant.md#abilityconstantoncontinueresult) | Continuation result.| **Example** ```ts - import AbilityConstant from "@ohos.application.AbilityConstant" - class myAbility extends Ability { + import AbilityConstant from "@ohos.app.ability.AbilityConstant" + class MyUIAbility extends UIAbility { onContinue(wantParams) { console.log('onContinue'); wantParams["myData"] = "my1234567"; @@ -215,32 +213,33 @@ Called to save data during the ability migration preparation process. ``` -## Ability.onNewWant +## UIAbility.onNewWant onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void; -Called when the ability startup mode is set to singleton. +Called when a new Want is passed in and this UIAbility is started again. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want parameters, such as the ability name and bundle name.| - | launchParams | AbilityConstant.LaunchParam | Yes| Reason for the ability startup and the last abnormal exit.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-app-ability-want.md) | Yes| Want information, such as the ability name and bundle name.| +| launchParams | [AbilityConstant.LaunchParam](js-apis-app-ability-abilityConstant.md#abilityconstantlaunchparam) | Yes| Reason for the UIAbility startup and the last abnormal exit.| **Example** ```ts - class myAbility extends Ability { - onNewWant(want) { + class MyUIAbility extends UIAbility { + onNewWant(want, launchParams) { console.log('onNewWant, want:' + want.abilityName); + console.log('onNewWant, launchParams:' + JSON.stringify(launchParams)); } } ``` -## Ability.onDump +## UIAbility.onDump onDump(params: Array\): Array\; @@ -250,14 +249,14 @@ Dumps client information. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | params | Array\ | Yes| Parameters in the form of a command.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| params | Array\ | Yes| Parameters in the form of a command.| **Example** ```ts - class myAbility extends Ability { + class MyUIAbility extends UIAbility { onDump(params) { console.log('dump, params:' + JSON.stringify(params)); return ["params"] @@ -266,33 +265,33 @@ Dumps client information. ``` -## Ability.onSaveState +## UIAbility.onSaveState onSaveState(reason: AbilityConstant.StateType, wantParam : {[key: string]: any}): AbilityConstant.OnSaveResult; -Called when the framework automatically saves the ability state in the case of an application fault. This API is used together with [appRecovery](js-apis-app-ability-appRecovery.md). +Called when the framework automatically saves the UIAbility state in the case of an application fault. This API is used together with [appRecovery](js-apis-app-ability-appRecovery.md). If automatic state saving is enabled, **onSaveState** is called to save the state of this UIAbility. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | reason | [AbilityConstant.StateType](js-apis-application-abilityConstant.md#abilityconstantstatetype) | Yes| Reason for triggering the callback to save the ability state.| - | wantParam | {[key: string]: any} | Yes| **want** parameter.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| reason | [AbilityConstant.StateType](js-apis-app-ability-abilityConstant.md#abilityconstantstatetype) | Yes| Reason for triggering the callback to save the UIAbility state.| +| wantParam | {[key: string]: any} | Yes| **want** parameter.| **Return value** - | Type| Description| - | -------- | -------- | - | AbilityConstant.OnSaveResult | Whether the ability state is saved.| +| Type| Description| +| -------- | -------- | +| [AbilityConstant.OnSaveResult](js-apis-app-ability-abilityConstant.md#abilityconstantonsaveresult) | Whether the UIAbility state is saved.| **Example** ```ts -import AbilityConstant from '@ohos.application.AbilityConstant' +import AbilityConstant from '@ohos.app.ability.AbilityConstant' -class myAbility extends Ability { +class MyUIAbility extends UIAbility { onSaveState(reason, wantParam) { console.log('onSaveState'); wantParam["myData"] = "my1234567"; @@ -305,7 +304,7 @@ class myAbility extends Ability { ## Caller -Implements sending of sequenceable data to the target ability when an ability (caller ability) invokes the target ability (callee ability). +Implements sending of sequenceable data to the target ability when the CallerAbility invokes the target ability (CalleeAbility). ## Caller.call @@ -317,29 +316,29 @@ Sends sequenceable data to the target ability. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.| - | data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.| +| data | [rpc.Sequenceable](js-apis-rpc.md#sequenceabledeprecated) | Yes| Sequenceable data. You need to customize the data.| **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return a response.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return a response.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts - import Ability from '@ohos.app.ability.UIAbility'; - class MyMessageAble{ // Custom sequenceable data structure + class MyMessageAble{ // Custom sequenceable data structure. name:"" str:"" num: 1 @@ -360,13 +359,13 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). return true; } }; - var method = 'call_Function'; // Notification message string negotiated by the two abilities + var method = 'call_Function'; // Notification message string negotiated by the two abilities. var caller; - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onWindowStageCreate(windowStage) { - this.context.startAbilityByCall({ + this.context.startUIAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "MainUIAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -398,28 +397,28 @@ Sends sequenceable data to the target ability and obtains the sequenceable data **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.| - | data | rpc.Sequenceable | Yes| Sequenceable data. You need to customize the data.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| method | string | Yes| Notification message string negotiated between the two abilities. The message is used to instruct the callee to register a function to receive the sequenceable data.| +| data | [rpc.Sequenceable](js-apis-rpc.md#sequenceabledeprecated) | Yes| Sequenceable data. You need to customize the data.| **Return value** - | Type| Description| - | -------- | -------- | - | Promise<rpc.MessageParcel> | Promise used to return the sequenceable data from the target ability.| +| Type| Description| +| -------- | -------- | +| Promise<[rpc.MessageParcel](js-apis-rpc.md#sequenceabledeprecated)> | Promise used to return the sequenceable data from the target ability.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts - import Ability from '@ohos.app.ability.UIAbility'; class MyMessageAble{ name:"" str:"" @@ -443,11 +442,11 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). }; var method = 'call_Function'; var caller; - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onWindowStageCreate(windowStage) { - this.context.startAbilityByCall({ + this.context.startUIAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "MainUIAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -491,13 +490,12 @@ Releases the caller interface of the target ability. **Example** ```ts - import Ability from '@ohos.app.ability.UIAbility'; var caller; - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onWindowStageCreate(windowStage) { - this.context.startAbilityByCall({ + this.context.startUIAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "MainUIAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -525,20 +523,19 @@ Registers a callback that is invoked when the stub on the target ability is disc **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | OnReleaseCallBack | Yes| Callback used for the **onRelease** API.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | [OnReleaseCallBack](#onreleasecallback) | Yes| Callback used for the **onRelease** API.| **Example** ```ts - import Ability from '@ohos.application.Ability'; var caller; - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onWindowStageCreate(windowStage) { - this.context.startAbilityByCall({ + this.context.startUIAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "MainUIAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -568,28 +565,28 @@ Registers a callback that is invoked when the stub on the target ability is disc **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | type | string | Yes| Event type. The value is fixed at **release**.| - | callback | OnReleaseCallback | Yes| Callback used for the **onRelease** API.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| type | string | Yes| Event type. The value is fixed at **release**.| +| callback | [OnReleaseCallBack](#onreleasecallback) | Yes| Callback used for the **onRelease** API.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts - import Ability from '@ohos.app.ability.UIAbility'; var caller; - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onWindowStageCreate(windowStage) { - this.context.startAbilityByCall({ + this.context.startUIAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "MainUIAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -624,22 +621,22 @@ Registers a caller notification callback, which is invoked when the target abili **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | method | string | Yes| Notification message string negotiated between the two abilities.| - | callback | CalleeCallback | Yes| JS notification synchronization callback of the **rpc.MessageParcel** type. The callback must return at least one empty **rpc.Sequenceable** object. Otherwise, the function execution fails.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| method | string | Yes| Notification message string negotiated between the two abilities.| +| callback | [CalleeCallback](#calleecallback) | Yes| JS notification synchronization callback of the [rpc.MessageParcel](js-apis-rpc.md#messageparceldeprecated) type. The callback must return at least one empty [rpc.Sequenceable](js-apis-rpc.md#sequenceabledeprecated) object. Otherwise, the function execution fails.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts - import Ability from '@ohos.app.ability.UIAbility'; class MyMessageAble{ name:"" str:"" @@ -668,7 +665,7 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). pdata.readSequenceable(msg); return new MyMessageAble("test1", "Callee test"); } - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onCreate(want, launchParam) { console.log('Callee onCreate is called'); try { @@ -691,24 +688,24 @@ Deregisters a caller notification callback, which is invoked when the target abi **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | method | string | Yes| Registered notification message string.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| method | string | Yes| Registered notification message string.| **Error codes** | ID| Error Message| | ------- | -------------------------------- | | 401 | If the input parameter is not valid parameter. | -For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **Example** ```ts - import Ability from '@ohos.app.ability.UIAbility'; var method = 'call_Function'; - export default class MainAbility extends Ability { + export default class MainUIAbility extends UIAbility { onCreate(want, launchParam) { console.log('Callee onCreate is called'); try { @@ -727,9 +724,9 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore -| Name| Readable| Writable| Type| Description| +| Name| Readable| Writable| Type| Description| | -------- | -------- | -------- | -------- | -------- | -| (msg: string) | Yes| No| function | Prototype of the listener function registered by the caller.| +| (msg: string) | Yes| No| function | Prototype of the listener function registered by the caller.| ## CalleeCallback @@ -737,6 +734,6 @@ For other IDs, see [Ability Error Codes](../errorcodes/errorcode-ability.md). **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore -| Name| Readable| Writable| Type| Description| +| Name| Readable| Writable| Type| Description| | -------- | -------- | -------- | -------- | -------- | -| (indata: rpc.MessageParcel) | Yes| No| rpc.Sequenceable | Prototype of the listener function registered by the callee.| +| (indata: [rpc.MessageParcel](js-apis-rpc.md#messageparceldeprecated)) | Yes| No| [rpc.Sequenceable](js-apis-rpc.md#sequenceabledeprecated) | Prototype of the listener function registered by the callee.| diff --git a/en/application-dev/reference/apis/js-apis-app-ability-want.md b/en/application-dev/reference/apis/js-apis-app-ability-want.md index c7bd4f6e96..2840d2e03e 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-want.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-want.md @@ -1,6 +1,6 @@ -# @ohos.app.ability.Want +# @ohos.app.ability.Want (Want) -Want is a carrier for information transfer between objects (application components). Want can be used as a parameter of **startAbility** to specify a startup target and information that needs to be carried during startup, for example, **bundleName** and **abilityName**, which respectively indicate the bundle name of the target ability and the ability name in the bundle. When ability A needs to start ability B and transfer some data to ability B, it can use Want a carrier to transfer the data. +Want is a carrier for information transfer between objects (application components). Want can be used as a parameter of **startAbility** to specify a startup target and information that needs to be carried during startup, for example, **bundleName** and **abilityName**, which respectively indicate the bundle name of the target ability and the ability name in the bundle. When UIAbility A needs to start UIAbility B and transfer some data to UIAbility B, it can use Want a carrier to transfer the data. > **NOTE** > @@ -18,26 +18,26 @@ import Want from '@ohos.app.ability.Want'; | Name | Type | Mandatory| Description | | ----------- | -------------------- | ---- | ------------------------------------------------------------ | -| deviceId | string | No | ID of the device running the ability. | -| bundleName | string | No | Bundle name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability.| +| deviceId | string | No | ID of the device running the ability. If this field is unspecified, the local device is used. | +| bundleName | string | No | Bundle name of the ability.| +| moduleName | string | No| Name of the module to which the ability belongs.| | abilityName | string | No | Name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability. The value of **abilityName** must be unique in an application.| -| uri | string | No | URI information to match. If **uri** is specified in a **Want** object, the **Want** object will match the specified URI information, including **scheme**, **schemeSpecificPart**, **authority**, and **path**.| -| type | string | No | MIME type, that is, the type of the file to open, for example, **text/xml** and **image/***. For details about the MIME type definition, see https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com. | -| flags | number | No | How the **Want** object will be handled. By default, numbers are passed in. For details, see [flags](js-apis-ability-wantConstant.md#wantConstant.Flags).| -| action | string | No | Action to take, such as viewing and sharing application details. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data. | -| parameters | {[key: string]: any} | No | Want parameters in the form of custom key-value (KV) pairs. By default, the following keys are carried:
        **ohos.aafwk.callerPid**: PID of the caller.
        **ohos.aafwk.param.callerToken**: token of the caller.
        **ohos.aafwk.param.callerUid**: UID in [bundleInfo](js-apis-bundle-BundleInfo.md#bundleinfo-1), that is, the application UID in the bundle information. | -| entities | Array\ | No | Additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit Want and is used to filter ability types. | -| moduleName | string | No | Module to which the ability belongs.| +| [action](js-apis-app-ability-wantConstant.md#wantConstant.Action) | string | No | Action to take, such as viewing and sharing application details. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data. For details about the definition and matching rules of implicit Want, see [Matching Rules of Explicit Want and Implicit Want](application-models/explicit-implicit-want-mappings.md). | +| [entities](js-apis-app-ability-wantConstant.md#wantConstant.Entity) | Array\ | No| Additional category information (such as browser and video player) of the ability. It is a supplement to the **action** field for implicit Want. and is used to filter ability types.| +| uri | string | No| Data carried. This field is used together with **type** to specify the data type. If **uri** is specified in a Want, the Want will match the specified URI information, including **scheme**, **schemeSpecificPart**, **authority**, and **path**.| +| type | string | No| MIME type, that is, the type of the file to open, for example, **text/xml** and **image/***. For details about the MIME type definition, see https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com.| +| parameters | {[key: string]: any} | No | Want parameters in the form of custom key-value (KV) pairs. By default, the following keys are carried:
        - **ohos.aafwk.callerPid**: PID of the caller.
        - **ohos.aafwk.param.callerToken**: token of the caller.
        - **ohos.aafwk.param.callerUid**: UID in [BundleInfo](js-apis-bundleManager-bundleInfo.md#bundleinfo-1), that is, the application UID in the bundle information. | +| [flags](js-apis-ability-wantConstant.md#wantconstantflags) | number | No| How the **Want** object will be handled. By default, a number is passed in.
        For example, **wantConstant.Flags.FLAG_ABILITY_CONTINUATION** specifies whether to start the ability in cross-device migration scenarios.| **Example** -- Basic usage +- Basic usage (called in a UIAbility object, where context in the example is the context object of the UIAbility). ```ts - var want = { + let want = { "deviceId": "", // An empty deviceId indicates the local device. - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", + "bundleName": "com.example.myapplication", + "abilityName": "FuncAbility", "moduleName": "entry" // moduleName is optional. }; this.context.startAbility(want, (error) => { @@ -46,13 +46,13 @@ import Want from '@ohos.app.ability.Want'; }) ``` -- Data is transferred through user-defined fields. The following data types are supported: +- Data is transferred through user-defined fields. The following data types are supported (called in a UIAbility object, where context in the example is the context object of the UIAbility): * String ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "FuncAbility", parameters: { keyForString: "str", }, @@ -61,8 +61,8 @@ import Want from '@ohos.app.ability.Want'; * Number ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "FuncAbility", parameters: { keyForInt: 100, keyForDouble: 99.99, @@ -72,8 +72,8 @@ import Want from '@ohos.app.ability.Want'; * Boolean ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "FuncAbility", parameters: { keyForBool: true, }, @@ -82,8 +82,8 @@ import Want from '@ohos.app.ability.Want'; * Object ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "FuncAbility", parameters: { keyForObject: { keyForObjectString: "str", @@ -97,8 +97,8 @@ import Want from '@ohos.app.ability.Want'; * Array ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "FuncAbility", parameters: { keyForArrayString: ["str1", "str2", "str3"], keyForArrayInt: [100, 200, 300, 400], @@ -109,26 +109,28 @@ import Want from '@ohos.app.ability.Want'; ``` * File descriptor (FD) ```ts - import fileio from '@ohos.fileio'; - var fd; - try { - fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); - } catch(e) { - console.log("openSync fail:" + JSON.stringify(e)); + import fileio from '@ohos.fileio'; + let fd; + try { + fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); + } catch(e) { + console.log("openSync fail:" + JSON.stringify(e)); + } + let want = { + "deviceId": "", // An empty deviceId indicates the local device. + "bundleName": "com.example.myapplication", + "abilityName": "FuncAbility", + "moduleName": "entry", // moduleName is optional. + "parameters": { + "keyFd":{"type":"FD", "value":fd} } - var want = { - "deviceId": "", // An empty deviceId indicates the local device. - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", - "moduleName": "entry", // moduleName is optional. - "parameters": { - "keyFd":{"type":"FD", "value":fd} - } - }; - this.context.startAbility(want, (error) => { - // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability. - console.log("error.code = " + error.code) - }) + }; + this.context.startAbility(want, (error) => { + // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability. + console.log("error.code = " + error.code) + }) ``` +- For more details and examples, see [Want](../../application-models/want-overview.md). + diff --git a/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md b/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md index 3a73d86254..43b95743b2 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-wantAgent.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.wantAgent +# @ohos.app.ability.wantAgent (WantAgent) The **app.ability.WantAgent** module provides APIs for creating and comparing **WantAgent** objects, and obtaining the user ID and bundle name of a **WantAgent** object. You are advised to use this module, since it will replace the [@ohos.wantAgent](js-apis-wantAgent.md) module in the near future. diff --git a/en/application-dev/reference/apis/js-apis-app-ability-wantConstant.md b/en/application-dev/reference/apis/js-apis-app-ability-wantConstant.md index ece4baa69e..4d7a483eab 100644 --- a/en/application-dev/reference/apis/js-apis-app-ability-wantConstant.md +++ b/en/application-dev/reference/apis/js-apis-app-ability-wantConstant.md @@ -1,4 +1,4 @@ -# @ohos.app.ability.wantConstant +# @ohos.app.ability.wantConstant (wantConstant) The **wantConstant** module provides the actions, entities, and flags used in **Want** objects. @@ -14,7 +14,7 @@ import wantConstant from '@ohos.app.ability.wantConstant'; ## wantConstant.Action -Enumerates the action constants of the **Want** object. +Enumerates the action constants of the **Want** object. **action** specifies the operation to execute. **System capability**: SystemCapability.Ability.AbilityBase @@ -44,7 +44,7 @@ Enumerates the action constants of the **Want** object. | INTENT_PARAMS_INTENT | ability.want.params.INTENT | Action of displaying selection options with an action selector. | | INTENT_PARAMS_TITLE | ability.want.params.TITLE | Title of the character sequence dialog box used with the action selector. | | ACTION_FILE_SELECT | ohos.action.fileSelect | Action of selecting a file. | -| PARAMS_STREAM | ability.params.stream | URI of the data stream associated with the target when the data is sent. | | +| PARAMS_STREAM | ability.params.stream | URI of the data stream associated with the target when the data is sent. | | ACTION_APP_ACCOUNT_AUTH | account.appAccount.action.auth | Action of providing the authentication service. | | ACTION_MARKET_DOWNLOAD | ohos.want.action.marketDownload | Action of downloading an application from the application market.
        **System API**: This is a system API and cannot be called by third-party applications. | | ACTION_MARKET_CROWDTEST | ohos.want.action.marketCrowdTest | Action of crowdtesting an application from the application market.
        **System API**: This is a system API and cannot be called by third-party applications. | @@ -56,7 +56,7 @@ Enumerates the action constants of the **Want** object. ## wantConstant.Entity -Enumerates the entity constants of the **Want** object. +Enumerates the entity constants of the **Want** object. **entity** specifies additional information of the target ability. **System capability**: SystemCapability.Ability.AbilityBase @@ -71,7 +71,7 @@ Enumerates the entity constants of the **Want** object. ## wantConstant.Flags -Describes flags. + Enumerates the flags that specify how the Want will be handled. **System capability**: SystemCapability.Ability.AbilityBase @@ -79,17 +79,4 @@ Describes flags. | ------------------------------------ | ---------- | ------------------------------------------------------------ | | FLAG_AUTH_READ_URI_PERMISSION | 0x00000001 | Indicates the permission to read the URI. | | FLAG_AUTH_WRITE_URI_PERMISSION | 0x00000002 | Indicates the permission to write data to the URI. | -| FLAG_ABILITY_FORWARD_RESULT | 0x00000004 | Returns the result to the ability. | -| FLAG_ABILITY_CONTINUATION | 0x00000008 | Indicates whether the ability on the local device can be continued on a remote device. | -| FLAG_NOT_OHOS_COMPONENT | 0x00000010 | Indicates that a component does not belong to OHOS. | -| FLAG_ABILITY_FORM_ENABLED | 0x00000020 | Indicates that an ability is enabled. | -| FLAG_AUTH_PERSISTABLE_URI_PERMISSION | 0x00000040 | Indicates the permission to make the URI persistent.
        **System API**: This is a system API and cannot be called by third-party applications. | -| FLAG_AUTH_PREFIX_URI_PERMISSION | 0x00000080 | Indicates the permission to verify URIs by prefix matching.
        **System API**: This is a system API and cannot be called by third-party applications.| -| FLAG_ABILITYSLICE_MULTI_DEVICE | 0x00000100 | Supports cross-device startup in a distributed scheduler. | -| FLAG_START_FOREGROUND_ABILITY | 0x00000200 | Indicates that the Service ability is started regardless of whether the host application has been started. | -| FLAG_ABILITY_CONTINUATION_REVERSIBLE | 0x00000400 | Indicates that ability continuation is reversible.
        **System API**: This is a system API and cannot be called by third-party applications. | | FLAG_INSTALL_ON_DEMAND | 0x00000800 | Indicates that the specific ability will be installed if it has not been installed. | -| FLAG_INSTALL_WITH_BACKGROUND_MODE | 0x80000000 | Indicates that the specific ability will be installed in the background if it has not been installed. | -| FLAG_ABILITY_CLEAR_MISSION | 0x00008000 | Clears other operation missions. This flag can be set for the **Want** object in the **startAbility** API passed to [ohos.app.Context](js-apis-ability-context.md) and must be used together with **flag_ABILITY_NEW_MISSION**.| -| FLAG_ABILITY_NEW_MISSION | 0x10000000 | Indicates the operation of creating a mission on the history mission stack. | -| FLAG_ABILITY_MISSION_TOP | 0x20000000 | Starts the mission on the top of the existing mission stack; creates an ability instance if no mission exists.| diff --git a/en/application-dev/reference/apis/js-apis-app-form-formBindingData.md b/en/application-dev/reference/apis/js-apis-app-form-formBindingData.md index bf3f9cbb80..51637975d7 100644 --- a/en/application-dev/reference/apis/js-apis-app-form-formBindingData.md +++ b/en/application-dev/reference/apis/js-apis-app-form-formBindingData.md @@ -1,4 +1,4 @@ -# @ohos.app.form.formBindingData +# @ohos.application.formBindingData (formBindingData) The **FormBindingData** module provides APIs for widget data binding. You can use the APIs to create a **FormBindingData** object and obtain related information. @@ -48,20 +48,17 @@ Creates a **FormBindingData** object. **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility'; -import fileio from '@ohos.fileio'; -let context=featureAbility.getContext(); -context.getOrCreateLocalDir((err,data)=>{ - let path=data+"/xxx.jpg"; - let fd = fileio.openSync(path); +import fs from '@ohos.file.fs'; +import formBindingData from '@ohos.app.form.formBindingData'; + +try { + let fd = fs.openSync('/path/to/form.png') let obj = { "temperature": "21°", - "formImages": {"image": fd} + "formImages": { "image": fd } }; - try { - formBindingData.createFormBindingData(obj); - } catch (error) { - console.log(`catch err->${JSON.stringify(err)}`); - } -}) + formBindingData.createFormBindingData(obj); +} catch (error) { + console.log(`catch error, code: ${error.code}, message: ${error.message}`); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-app-form-formExtensionAbility.md b/en/application-dev/reference/apis/js-apis-app-form-formExtensionAbility.md index c2bedd6d4d..ef4e93e215 100644 --- a/en/application-dev/reference/apis/js-apis-app-form-formExtensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-app-form-formExtensionAbility.md @@ -1,6 +1,6 @@ -# @ohos.app.form.FormExtensionAbility +# @ohos.app.form.FormExtensionAbility (FormExtensionAbility) -The **FormExtensionAbility** module provides APIs related to Form Extension abilities. +The **FormExtensionAbility** module provides lifecycle callbacks invoked when a widget is created, destroyed, or updated. > **NOTE** > @@ -17,9 +17,9 @@ import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; **System capability**: SystemCapability.Ability.Form -| Name | Type | Readable| Writable| Description | -| ------- | ------------------------------------------------------- | ---- | ---- | --------------------------------------------------- | -| context | [FormExtensionContext](js-apis-inner-application-formExtensionContext.md) | Yes | No | Context of the **FormExtensionAbility**. This context is inherited from **ExtensionContext**.| +| Name | Type | Readable| Writable| Description | +| ------- | ------------------------------------------------------------ | ---- | ---- | ------------------------------------------------------------ | +| context | [FormExtensionContext](js-apis-inner-application-formExtensionContext.md) | Yes | No | Context of the FormExtensionAbility. This context is inherited from [ExtensionContext](js-apis-inner-application-extensionContext.md).| ## onAddForm @@ -33,7 +33,7 @@ Called to notify the widget provider that a **Form** instance (widget) has been | Name| Type | Mandatory| Description | | ------ | -------------------------------------- | ---- | ------------------------------------------------------------ | -| want | [Want](js-apis-application-want.md) | Yes | Information related to the Extension ability, including the widget ID, name, and style. The information must be managed as persistent data to facilitate subsequent widget update and deletion.| +| want | [Want](js-apis-application-want.md) | Yes | Want information related to the FormExtensionAbility, including the widget ID, name, and style. The information must be managed as persistent data to facilitate subsequent widget update and deletion.| **Return value** @@ -45,17 +45,19 @@ Called to notify the widget provider that a **Form** instance (widget) has been ```ts import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; +import formBindingData from '@ohos.app.form.formBindingData'; + export default class MyFormExtensionAbility extends FormExtensionAbility { onAddForm(want) { console.log('FormExtensionAbility onAddForm, want:' + want.abilityName); let dataObj1 = { - temperature:"11c", - "time":"11:00" + temperature: "11c", + "time": "11:00" }; let obj1 = formBindingData.createFormBindingData(dataObj1); return obj1; } -} +}; ``` ## onCastToNormalForm @@ -75,18 +77,20 @@ Called to notify the widget provider that a temporary widget has been converted **Example** ```ts +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + export default class MyFormExtensionAbility extends FormExtensionAbility { onCastToNormalForm(formId) { console.log('FormExtensionAbility onCastToNormalForm, formId:' + formId); } -} +}; ``` ## onUpdateForm onUpdateForm(formId: string): void -Called to notify the widget provider that a widget has been updated. After obtaining the latest data, the caller invokes **updateForm** of the [FormExtensionContext](js-apis-inner-application-formExtensionContext.md) class to update the widget data. +Called to notify the widget provider that a widget has been updated. After obtaining the latest data, your application should call [updateForm](js-apis-app-form-formProvider.md#updateform) of **formProvider** to update the widget data. **System capability**: SystemCapability.Ability.Form @@ -99,17 +103,24 @@ Called to notify the widget provider that a widget has been updated. After obtai **Example** ```ts -import formBindingData from '@ohos.app.form.formBindingData' +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; +import formBindingData from '@ohos.app.form.formBindingData'; +import formProvider from '@ohos.app.form.formProvider'; + export default class MyFormExtensionAbility extends FormExtensionAbility { onUpdateForm(formId) { console.log('FormExtensionAbility onUpdateForm, formId:' + formId); - let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); - this.context.updateForm(formId, obj2).then((data)=>{ + let obj2 = formBindingData.createFormBindingData({ + temperature: "22c", + time: "22:00" + }); + formProvider.updateForm(formId, obj2).then((data) => { console.log('FormExtensionAbility context updateForm, data:' + data); }).catch((error) => { - console.error('Operation updateForm failed. Cause: ' + error);}); - } -} + console.error('Operation updateForm failed. Cause: ' + error); + }); + } +}; ``` ## onChangeFormVisibility @@ -129,21 +140,28 @@ Called to notify the widget provider of the change of visibility. **Example** ```ts +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; import formBindingData from '@ohos.app.form.formBindingData' +import formProvider from '@ohos.app.form.formProvider'; + export default class MyFormExtensionAbility extends FormExtensionAbility { onChangeFormVisibility(newStatus) { - console.log('FormExtensionAbility onChangeFormVisibility, newStatus:' + newStatus); - let obj2 = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); - - for (let key in newStatus) { - console.log('FormExtensionAbility onChangeFormVisibility, key:' + key + ", value=" + newStatus[key]); - this.context.updateForm(key, obj2).then((data)=>{ + console.log('FormExtensionAbility onChangeFormVisibility, newStatus:' + newStatus); + let obj2 = formBindingData.createFormBindingData({ + temperature: "22c", + time: "22:00" + }); + + for (let key in newStatus) { + console.log('FormExtensionAbility onChangeFormVisibility, key:' + key + ", value=" + newStatus[key]); + formProvider.updateForm(key, obj2).then((data) => { console.log('FormExtensionAbility context updateForm, data:' + data); - }).catch((error) => { - console.error('Operation updateForm failed. Cause: ' + error);}); + }).catch((error) => { + console.error('Operation updateForm failed. Cause: ' + error); + }); } } -} +}; ``` ## onFormEvent @@ -164,11 +182,13 @@ Called to instruct the widget provider to receive and process the widget event. **Example** ```ts -export default class MyFormExtension extends FormExtensionAbility { +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + +export default class MyFormExtensionAbility extends FormExtensionAbility { onFormEvent(formId, message) { console.log('FormExtensionAbility onFormEvent, formId:' + formId + ", message:" + message); } -} +}; ``` ## onRemoveForm @@ -188,11 +208,13 @@ Called to notify the widget provider that a **Form** instance (widget) has been **Example** ```ts +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + export default class MyFormExtensionAbility extends FormExtensionAbility { onRemoveForm(formId) { console.log('FormExtensionAbility onRemoveForm, formId:' + formId); } -} +}; ``` ## onConfigurationUpdate @@ -207,16 +229,18 @@ Called when the configuration of the environment where the ability is running is | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| newConfig | [Configuration](js-apis-configuration.md) | Yes| New configuration.| +| newConfig | [Configuration](js-apis-application-configuration.md) | Yes| New configuration.| **Example** ```ts -class MyFormExtensionAbility extends FormExtensionAbility { +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + +export default class MyFormExtensionAbility extends FormExtensionAbility { onConfigurationUpdate(config) { console.log('onConfigurationUpdate, config:' + JSON.stringify(config)); } -} +}; ``` ## onAcquireFormState @@ -236,13 +260,15 @@ Called when the widget provider receives the status query result of a widget. By **Example** ```ts +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; import formInfo from '@ohos.app.form.formInfo'; -class MyFormExtensionAbility extends FormExtensionAbility { + +export default class MyFormExtensionAbility extends FormExtensionAbility { onAcquireFormState(want) { console.log('FormExtensionAbility onAcquireFormState, want:' + want); return formInfo.FormState.UNKNOWN; } -} +}; ``` ## onShareForm @@ -270,14 +296,16 @@ Called by the widget provider to receive shared widget data. **Example** ```ts -class MyFormExtensionAbility extends FormExtensionAbility { +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + +export default class MyFormExtensionAbility extends FormExtensionAbility { onShareForm(formId) { console.log('FormExtensionAbility onShareForm, formId:' + formId); let wantParams = { - "temperature":"20", - "time":"2022-8-8 09:59", + "temperature": "20", + "time": "2022-8-8 09:59", }; return wantParams; } -} +}; ``` diff --git a/en/application-dev/reference/apis/js-apis-app-form-formHost.md b/en/application-dev/reference/apis/js-apis-app-form-formHost.md index 826050a278..e78cf3647a 100644 --- a/en/application-dev/reference/apis/js-apis-app-form-formHost.md +++ b/en/application-dev/reference/apis/js-apis-app-form-formHost.md @@ -1,6 +1,6 @@ -# @ohos.app.form.formHost +# @ohos.app.form.formHost (formHost) -The **FormHost** module provides APIs related to the widget host, which is an application that displays the widget content and controls the position where the widget is displayed. You can use the APIs to delete, release, and update widgets installed by the same user, and obtain widget information and status. +The **formHost** module provides APIs related to the widget host, which is an application that displays the widget content and controls the position where the widget is displayed. You can use the APIs to delete, release, and update widgets installed by the same user, and obtain widget information and status. > **NOTE** > @@ -28,31 +28,32 @@ Deletes a widget. After this API is called, the application can no longer use th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is deleted, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is deleted, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; - formHost.deleteForm(formId, (error, data) => { + let formId = "12400633174999288"; + formHost.deleteForm(formId, (error) => { if (error) { - console.log('formHost deleteForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } else { console.log('formHost deleteForm success'); } }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } - ``` ## deleteForm @@ -82,21 +83,23 @@ Deletes a widget. After this API is called, the application can no longer use th | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Parameters** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; + let formId = "12400633174999288"; formHost.deleteForm(formId).then(() => { console.log('formHost deleteForm success'); }).catch((error) => { - console.log('formHost deleteForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -115,27 +118,29 @@ Releases a widget. After this API is called, the application can no longer use t | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is released, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is released, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; - formHost.releaseForm(formId, (error, data) => { + let formId = "12400633174999288"; + formHost.releaseForm(formId, (error) => { if (error) { - console.log('formHost releaseForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -155,27 +160,29 @@ Releases a widget. After this API is called, the application can no longer use t | -------------- | ------ | ---- | ----------- | | formId | string | Yes | Widget ID. | | isReleaseCache | boolean | Yes | Whether to release the cache.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is released, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is released, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; - formHost.releaseForm(formId, true, (error, data) => { + let formId = "12400633174999288"; + formHost.releaseForm(formId, true, (error) => { if (error) { - console.log('formHost releaseForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -206,21 +213,23 @@ Releases a widget. After this API is called, the application can no longer use t | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; + let formId = "12400633174999288"; formHost.releaseForm(formId, true).then(() => { console.log('formHost releaseForm success'); }).catch((error) => { - console.log('formHost releaseForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -239,27 +248,29 @@ Requests a widget update. This API uses an asynchronous callback to return the r | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is updated, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is updated, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; - formHost.requestForm(formId, (error, data) => { + let formId = "12400633174999288"; + formHost.requestForm(formId, (error) => { if (error) { - console.log('formHost requestForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -289,21 +300,23 @@ Requests a widget update. This API uses a promise to return the result. | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; + let formId = "12400633174999288"; formHost.requestForm(formId).then(() => { console.log('formHost requestForm success'); }).catch((error) => { - console.log('formHost requestForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -323,27 +336,29 @@ Converts a temporary widget to a normal one. This API uses an asynchronous callb | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is converted to a normal one, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is converted to a normal one, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; - formHost.castToNormalForm(formId, (error, data) => { + let formId = "12400633174999288"; + formHost.castToNormalForm(formId, (error) => { if (error) { - console.log('formHost castTempForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -373,21 +388,23 @@ Converts a temporary widget to a normal one. This API uses a promise to return t | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; + let formId = "12400633174999288"; formHost.castToNormalForm(formId).then(() => { console.log('formHost castTempForm success'); }).catch((error) => { - console.log('formHost castTempForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -406,27 +423,29 @@ Instructs the widget framework to make a widget visible. After this API is calle | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs. | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget visible, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget visible, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; - formHost.notifyVisibleForms(formId, (error, data) => { + let formId = ["12400633174999288"]; + formHost.notifyVisibleForms(formId, (error) => { if (error) { - console.log('formHost notifyVisibleForms, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -456,21 +475,23 @@ Instructs the widget framework to make a widget visible. After this API is calle | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; + let formId = ["12400633174999288"]; formHost.notifyVisibleForms(formId).then(() => { console.log('formHost notifyVisibleForms success'); }).catch((error) => { - console.log('formHost notifyVisibleForms, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -489,27 +510,29 @@ Instructs the widget framework to make a widget invisible. After this API is cal | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget invisible, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget invisible, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; - formHost.notifyInvisibleForms(formId, (error, data) => { + let formId = ["12400633174999288"]; + formHost.notifyInvisibleForms(formId, (error) => { if (error) { - console.log('formHost notifyInvisibleForms, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -539,21 +562,23 @@ Instructs the widget framework to make a widget invisible. After this API is cal | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; + let formId = ["12400633174999288"]; formHost.notifyInvisibleForms(formId).then(() => { console.log('formHost notifyInvisibleForms success'); }).catch((error) => { - console.log('formHost notifyInvisibleForms, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -572,27 +597,29 @@ Instructs the widget framework to make a widget updatable. After this API is cal | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs. | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget updatable, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget updatable, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; - formHost.enableFormsUpdate(formId, (error, data) => { + let formId = ["12400633174999288"]; + formHost.enableFormsUpdate(formId, (error) => { if (error) { - console.log('formHost enableFormsUpdate, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -622,21 +649,23 @@ Instructs the widget framework to make a widget updatable. After this API is cal | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; + let formId = ["12400633174999288"]; formHost.enableFormsUpdate(formId).then(() => { console.log('formHost enableFormsUpdate success'); }).catch((error) => { - console.log('formHost enableFormsUpdate, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -655,27 +684,29 @@ Instructs the widget framework to make a widget not updatable. After this API is | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs. | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget not updatable, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget not updatable, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; - formHost.disableFormsUpdate(formId, (error, data) => { + let formId = ["12400633174999288"]; + formHost.disableFormsUpdate(formId, (error) => { if (error) { - console.log('formHost disableFormsUpdate, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -705,21 +736,23 @@ Instructs the widget framework to make a widget not updatable. After this API is | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = ["12400633174999288"]; + let formId = ["12400633174999288"]; formHost.disableFormsUpdate(formId).then(() => { console.log('formHost disableFormsUpdate success'); }).catch((error) => { - console.log('formHost disableFormsUpdate, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -735,20 +768,21 @@ Checks whether the system is ready. This API uses an asynchronous callback to re | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the check is successful, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the check is successful, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; formHost.isSystemReady((error, data) => { if (error) { - console.log('formHost isSystemReady, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -769,15 +803,16 @@ Checks whether the system is ready. This API uses a promise to return the result **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formId = "12400633174999288"; formHost.isSystemReady().then(() => { console.log('formHost isSystemReady success'); }).catch((error) => { - console.log('formHost isSystemReady, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -795,21 +830,23 @@ Obtains the widget information provided by all applications on the device. This | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| callback | AsyncCallback<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **err** is undefined and **data** is the information obtained; otherwise, **err** is an error object.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **error** is undefined and **data** is the information obtained; otherwise, **error** is an error object.| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { formHost.getAllFormsInfo((error, data) => { if (error) { - console.log('formHost getAllFormsInfo, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } else { console.log('formHost getAllFormsInfo, data:' + JSON.stringify(data)); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -825,21 +862,23 @@ Obtains the widget information provided by all applications on the device. This **Return value** -| Type | Description | -| :------------ | :---------------------------------- | -| Promise<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Promise used to return the information obtained.| +| Type | Description | +| :----------------------------------------------------------- | :---------------------------------- | +| Promise<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Promise used to return the information obtained.| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { formHost.getAllFormsInfo().then((data) => { - console.log('formHost getAllFormsInfo data:' + JSON.stringify(data)); + console.log('formHost getAllFormsInfo data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost getAllFormsInfo, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -857,29 +896,31 @@ Obtains the widget information provided by a given application on the device. Th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| bundleName | string | Yes| Bundle name of the application.| -| callback | AsyncCallback<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **err** is undefined and **data** is the information obtained; otherwise, **err** is an error object.| +| bundleName | string | Yes| Bundle name of the application.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **error** is undefined and **data** is the information obtained; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { formHost.getFormsInfo("com.example.ohos.formjsdemo", (error, data) => { if (error) { - console.log('formHost getFormsInfo, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } else { console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -897,30 +938,32 @@ Obtains the widget information provided by a given application on the device. Th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| bundleName | string | Yes| Bundle name of the application.| +| bundleName | string | Yes| Bundle name of the application.| | moduleName | string | Yes| Module name.| -| callback | AsyncCallback<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **err** is undefined and **data** is the information obtained; otherwise, **err** is an error object.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **error** is undefined and **data** is the information obtained; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { formHost.getFormsInfo("com.example.ohos.formjsdemo", "entry", (error, data) => { if (error) { - console.log('formHost getFormsInfo, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } else { - console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); + console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -938,33 +981,35 @@ Obtains the widget information provided by a given application on the device. Th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| bundleName | string | Yes| Bundle name of the application.| +| bundleName | string | Yes| Bundle name of the application.| | moduleName | string | No| Module name.| **Return value** -| Type | Description | -| :------------ | :---------------------------------- | -| Promise<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Promise used to return the information obtained.| +| Type | Description | +| :----------------------------------------------------------- | :---------------------------------- | +| Promise<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Promise used to return the information obtained.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { formHost.getFormsInfo("com.example.ohos.formjsdemo", "entry").then((data) => { console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost getFormsInfo, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -983,22 +1028,24 @@ Deletes invalid widgets from the list. This API uses an asynchronous callback to | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of valid widget IDs.| -| callback | AsyncCallback<number> | Yes| Callback used to return the result. If the invalid widgets are deleted, **err** is undefined and **data** is the number of widgets deleted; otherwise, **err** is an error object.| +| callback | AsyncCallback<number> | Yes| Callback used to return the result. If the invalid widgets are deleted, **error** is undefined and **data** is the number of widgets deleted; otherwise, **error** is an error object.| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formIds = new Array("12400633174999288", "12400633174999289"); + let formIds = new Array("12400633174999288", "12400633174999289"); formHost.deleteInvalidForms(formIds, (error, data) => { if (error) { - console.log('formHost deleteInvalidForms, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } else { console.log('formHost deleteInvalidForms, data:' + JSON.stringify(data)); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1027,15 +1074,17 @@ Deletes invalid widgets from the list. This API uses a promise to return the res **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + try { - var formIds = new Array("12400633174999288", "12400633174999289"); + let formIds = new Array("12400633174999288", "12400633174999289"); formHost.deleteInvalidForms(formIds).then((data) => { console.log('formHost deleteInvalidForms, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost deleteInvalidForms, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1053,20 +1102,22 @@ Obtains the widget state. This API uses an asynchronous callback to return the r | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| want | [Want](js-apis-application-want.md) | Yes | **Want** information carried to query the widget state.| -| callback | AsyncCallback<[FormStateInfo](js-apis-app-form-formInfo.md#formstateinfo)> | Yes| Callback used to return the result. If the widget state is obtained, **err** is undefined and **data** is the widget state obtained; otherwise, **err** is an error object.| +| want | [Want](js-apis-application-want.md) | Yes | **Want** information carried to query the widget state. The information must contain the bundle name, ability name, module name, widget name, and widget dimensions.| +| callback | AsyncCallback<[formInfo.FormStateInfo](js-apis-app-form-formInfo.md#formstateinfo)> | Yes| Callback used to return the result. If the widget state is obtained, **error** is undefined and **data** is the widget state obtained; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var want = { +import formHost from '@ohos.app.form.formHost'; + +let want = { "deviceId": "", "bundleName": "ohos.samples.FormApplication", "abilityName": "FormAbility", @@ -1079,13 +1130,13 @@ var want = { try { formHost.acquireFormState(want, (error, data) => { if (error) { - console.log('formHost acquireFormState, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } else { console.log('formHost acquireFormState, data:' + JSON.stringify(data)); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1103,25 +1154,27 @@ Obtains the widget state. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| want | [Want](js-apis-application-want.md) | Yes | **Want** information carried to query the widget state.| +| want | [Want](js-apis-application-want.md) | Yes | **Want** information carried to query the widget state. The information must contain the bundle name, ability name, module name, widget name, and widget dimensions.| **Return value** | Type | Description | | :------------ | :---------------------------------- | -| Promise<[FormStateInfo](js-apis-app-form-formInfo.md#formstateinfo)> | Promise used to return the widget state obtained.| +| Promise<[formInfo.FormStateInfo](js-apis-app-form-formInfo.md#formstateinfo)> | Promise used to return the widget state obtained.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var want = { +import formHost from '@ohos.app.form.formHost'; + +let want = { "deviceId": "", "bundleName": "ohos.samples.FormApplication", "abilityName": "FormAbility", @@ -1135,10 +1188,10 @@ try { formHost.acquireFormState(want).then((data) => { console.log('formHost acquireFormState, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost acquireFormState, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1160,6 +1213,8 @@ Subscribes to widget uninstall events. This API uses an asynchronous callback to **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + let callback = function(formId) { console.log('formHost on formUninstall, formId:' + formId); } @@ -1179,11 +1234,13 @@ Unsubscribes from widget uninstall events. This API uses an asynchronous callbac | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | type | string | Yes | Event type. The value **formUninstall** indicates a widget uninstallation event.| -| callback | Callback<string> | No| Callback used to return the widget ID. If it is left unspecified, it indicates the callback for all the events that have been subscribed.| +| callback | Callback<string> | No| Callback used to return the widget ID. If it is left unspecified, it indicates the callback for all the events that have been subscribed.
        The value must be the same as that in **on("formUninstall")**.| **Example** ```ts +import formHost from '@ohos.app.form.formHost'; + let callback = function(formId) { console.log('formHost on formUninstall, formId:' + formId); } @@ -1206,27 +1263,29 @@ Instructs the widgets to make themselves visible. This API uses an asynchronous | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs.| | isVisible | boolean | Yes | Whether to make the widgets visible.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.app.form.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); try { - formHost.notifyFormsVisible(formIds, true, (error, data) => { + formHost.notifyFormsVisible(formIds, true, (error) => { if (error) { - console.log('formHost notifyFormsVisible, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1257,21 +1316,23 @@ Instructs the widgets to make themselves visible. This API uses a promise to ret | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.app.form.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); try { formHost.notifyFormsVisible(formIds, true).then(() => { console.log('formHost notifyFormsVisible success'); }).catch((error) => { - console.log('formHost notifyFormsVisible, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1291,27 +1352,29 @@ Instructs the widgets to enable or disable updates. This API uses an asynchronou | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs.| | isEnableUpdate | boolean | Yes | Whether to make the widgets updatable.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.app.form.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); try { - formHost.notifyFormsEnableUpdate(formIds, true, (error, data) => { + formHost.notifyFormsEnableUpdate(formIds, true, (error) => { if (error) { - console.log('formHost notifyFormsEnableUpdate, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1342,21 +1405,23 @@ Instructs the widgets to enable or disable updates. This API uses a promise to r | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.app.form.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); try { formHost.notifyFormsEnableUpdate(formIds, true).then(() => { console.log('formHost notifyFormsEnableUpdate success'); }).catch((error) => { - console.log('formHost notifyFormsEnableUpdate, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` ## shareForm @@ -1375,29 +1440,30 @@ Shares a specified widget with a remote device. This API uses an asynchronous ca | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| | deviceId | string | Yes | Remote device ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is shared, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is shared, **error** is undefined; otherwise, **error** is an error object.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). - +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formId = "12400633174999288"; -var deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; +import formHost from '@ohos.app.form.formHost'; + +let formId = "12400633174999288"; +let deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; try { - formHost.shareForm(formId, deviceId, (error, data) => { + formHost.shareForm(formId, deviceId, (error) => { if (error) { - console.log('formHost shareForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); } }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1428,22 +1494,24 @@ Shares a specified widget with a remote device. This API uses a promise to retur | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| -**Parameters** +**Example** ```ts -var formId = "12400633174999288"; -var deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; +import formHost from '@ohos.app.form.formHost'; + +let formId = "12400633174999288"; +let deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; try { formHost.shareForm(formId, deviceId).then(() => { console.log('formHost shareForm success'); }).catch((error) => { - console.log('formHost shareForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` @@ -1451,6 +1519,8 @@ try { notifyFormsPrivacyProtected(formIds: Array\, isProtected: boolean, callback: AsyncCallback\): void +Notifies that the privacy protection status of the specified widgets changes. This API uses an asynchronous callback to return the result. + **Required permissions**: ohos.permission.REQUIRE_FORM **System capability**: SystemCapability.Ability.Form @@ -1459,20 +1529,75 @@ notifyFormsPrivacyProtected(formIds: Array\, isProtected: boolean, callb | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| formId | string | Yes | Widget ID.| -| deviceId | string | Yes | Remote device ID.| +| formIds | Array\ | Yes | ID of the widgets.| +| isProtected | boolean | Yes | Whether privacy protection is enabled.| +| callback | AsyncCallback\ | Yes| Callback used to return the result. If privacy protection is set successfully, **error** is undefined; otherwise, **error** is an error object.| + +**Error codes** + +| Error Code ID | Error Message | +| ------------------------------------------------------------ | ------------------ | +| 401 | Incorrect input parameter.| +| For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| | + +**Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.app.form.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); +try { + formHost.notifyFormsPrivacyProtected(formIds, true, (error) => { + if (error) { + console.log(`error, code: ${error.code}, message: ${error.message}`); + } + }); +} catch(error) { + console.log(`catch error, code: ${error.code}, message: ${error.message}`); +} +``` + +## notifyFormsPrivacyProtected + +function notifyFormsPrivacyProtected(formIds: Array\, isProtected: boolean): Promise\; + +Notifies that the privacy protection status of the specified widgets changes. This API uses a promise to return the result. + +**Required permissions**: ohos.permission.REQUIRE_FORM + +**System capability**: SystemCapability.Ability.Form + +**Parameters** + +| Name | Type | Mandatory| Description | +| ----------- | --------------- | ---- | -------------------------------- | +| formIds | Array\ | Yes | ID of the widgets.| +| isProtected | boolean | Yes | Whether privacy protection is enabled. | + +**Return value** + +| Type | Description | +| ------------------- | ------------------------- | +| Promise<void> | Promise that returns no value.| + +**Error codes** + +| Error Code ID | Error Message | +| ------------------------------------------------------------ | ------------------ | +| 401 | Incorrect input parameter.| +| For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| | + +```ts +import formHost from '@ohos.app.form.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); try { formHost.notifyFormsPrivacyProtected(formIds, true).then(() => { - console.log('formHost shareForm success'); + console.log('formHost notifyFormsPrivacyProtected success'); }).catch((error) => { - console.log('formHost shareForm, error:' + JSON.stringify(error)); + console.log(`error, code: ${error.code}, message: ${error.message}`); }); } catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message}`); } ``` - - \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-app-form-formInfo.md b/en/application-dev/reference/apis/js-apis-app-form-formInfo.md index 5f1ff73b16..84b40a57a5 100644 --- a/en/application-dev/reference/apis/js-apis-app-form-formInfo.md +++ b/en/application-dev/reference/apis/js-apis-app-form-formInfo.md @@ -1,6 +1,6 @@ -# @ohos.app.form.formInfo +# @ohos.app.form.formInfo (formInfo) -The **FormInfo** module provides widget information and state. +The **formInfo** module provides types and enums related to the widget information and state. > **NOTE** > @@ -20,8 +20,8 @@ Describes widget information. | Name | Type | Readable | Writable | Description | | ----------- | -------- | -------- | -------------------- | ------------------------------------------------------------ | -| bundleName | string | Yes | No | Name of the bundle to which the widget belongs. | -| moduleName | string | Yes | No | Name of the module to which the widget belongs. | +| bundleName | string | Yes | No | Name of the bundle to which the widget belongs. | +| moduleName | string | Yes | No | Name of the module to which the widget belongs. | | abilityName | string | Yes | No | Name of the ability to which the widget belongs. | | name | string | Yes | No | Widget name. | | description | string | Yes | No | Description of the widget. | @@ -30,11 +30,11 @@ Describes widget information. | colorMode | [ColorMode](#colormode) | Yes | No | Color mode of the widget. | | isDefault | boolean | Yes | No | Whether the widget is the default one. | | updateEnabled | boolean | Yes | No | Whether the widget is updatable. | -| formVisibleNotify | string | Yes | No | Whether to send a notification when the widget is visible. | -| relatedBundleName | string | Yes | No | Name of the associated bundle to which the widget belongs. | +| formVisibleNotify | boolean | Yes | No | Whether to send a notification when the widget is visible. | +| relatedBundleName | string | Yes | No | Name of the associated bundle to which the widget belongs. | | scheduledUpdateTime | string | Yes | No | Time when the widget was updated. | | formConfigAbility | string | Yes | No | Configuration ability of the widget, that is, the ability corresponding to the option in the selection box displayed when the widget is long pressed. | -| updateDuration | string | Yes | No | Update period of the widget.| +| updateDuration | number | Yes | No | Update period of the widget.| | defaultDimension | number | Yes | No | Default dimension of the widget. | | supportDimensions | Array<number> | Yes | No | Dimensions supported by the widget. For details, see [FormDimension](#formdimension). | | customizeData | {[key: string]: [value: string]} | Yes | No | Custom data of the widget. | @@ -100,8 +100,8 @@ Enumerates the widget parameters. | WIDTH_KEY | "ohos.extra.param.key.form_width" | Widget width. | | HEIGHT_KEY | "ohos.extra.param.key.form_height" | Widget height. | | TEMPORARY_KEY | "ohos.extra.param.key.form_temporary" | Temporary widget. | -| ABILITY_NAME_KEY | "ohos.extra.param.key.ability_name" | Ability name. | -| DEVICE_ID_KEY | "ohos.extra.param.key.device_id" | Device ID.
        **System API**: This is a system API. | +| ABILITY_NAME_KEY | "ohos.extra.param.key.ability_name" | Ability name. | +| DEVICE_ID_KEY | "ohos.extra.param.key.device_id" | Device ID. | | BUNDLE_NAME_KEY | "ohos.extra.param.key.bundle_name" | Key that specifies the target bundle name.| ## FormDimension @@ -125,9 +125,9 @@ Defines the widget information filter. Only the widget information that meets th **System capability**: SystemCapability.Ability.Form -| Name | Description | -| ----------- | ------------ | -| moduleName | Only the information about the widget whose **moduleName** is the same as the provided value is returned.| +| Name | Type | Description | +| ----------- | ---- | ------------ | +| moduleName | string | Optional. Only the information about the widget whose **moduleName** is the same as the provided value is returned.
        If this parameter is not set, **moduleName** is not used for filtering. | ## VisibilityType diff --git a/en/application-dev/reference/apis/js-apis-app-form-formProvider.md b/en/application-dev/reference/apis/js-apis-app-form-formProvider.md index 392f053b31..d61484f86b 100644 --- a/en/application-dev/reference/apis/js-apis-app-form-formProvider.md +++ b/en/application-dev/reference/apis/js-apis-app-form-formProvider.md @@ -1,4 +1,4 @@ -# @ohos.app.form.formProvider +# @ohos.app.form.formProvider (formProvider) The **FormProvider** module provides APIs related to the widget provider. You can use the APIs to update a widget, set the next refresh time for a widget, obtain widget information, and request a widget release. @@ -31,23 +31,25 @@ Sets the next refresh time for a widget. This API uses an asynchronous callback | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formId = "12400633174999288"; +import formProvider from '@ohos.app.form.formProvider'; + +let formId = "12400633174999288"; try { formProvider.setFormNextRefreshTime(formId, 5, (error, data) => { if (error) { - console.log('formProvider setFormNextRefreshTime, error:' + JSON.stringify(error)); + console.log(`callback error, code: ${error.code}, message: ${error.message})`); } else { console.log(`formProvider setFormNextRefreshTime success`); } }); } catch (error) { - console.log("error" + JSON.stringify(error)) + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -76,21 +78,23 @@ Sets the next refresh time for a widget. This API uses a promise to return the r | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var formId = "12400633174999288"; +import formProvider from '@ohos.app.form.formProvider'; + +let formId = "12400633174999288"; try { formProvider.setFormNextRefreshTime(formId, 5).then(() => { - console.log('formProvider setFormNextRefreshTime success'); + console.log(`formProvider setFormNextRefreshTime success`); }).catch((error) => { - console.log('formProvider setFormNextRefreshTime, error:' + JSON.stringify(error)); + console.log(`promise error, code: ${error.code}, message: ${error.message})`); }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -114,25 +118,27 @@ Updates a widget. This API uses an asynchronous callback to return the result. | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts import formBindingData from '@ohos.application.formBindingData'; -var formId = "12400633174999288"; +import formProvider from '@ohos.app.form.formProvider'; + +let formId = "12400633174999288"; try { let obj = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); formProvider.updateForm(formId, obj, (error, data) => { if (error) { - console.log('formProvider updateForm, error:' + JSON.stringify(error)); + console.log(`callback error, code: ${error.code}, message: ${error.message})`); } else { console.log(`formProvider updateForm success`); } }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -161,23 +167,25 @@ Updates a widget. This API uses a promise to return the result. | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts import formBindingData from '@ohos.application.formBindingData'; -var formId = "12400633174999288"; -let obj = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); +import formProvider from '@ohos.app.form.formProvider'; + +let formId = "12400633174999288"; +let obj = formBindingData.createFormBindingData({ temperature: "22c", time: "22:00" }); try { formProvider.updateForm(formId, obj).then(() => { - console.log('formProvider updateForm success'); + console.log(`formProvider updateForm success`); }).catch((error) => { - console.log('formProvider updateForm, error:' + JSON.stringify(error)); + console.log(`promise error, code: ${error.code}, message: ${error.message})`); }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -193,29 +201,31 @@ Obtains the application's widget information on the device. This API uses an asy | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| callback | AsyncCallback<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the information obtained.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the information obtained.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts +import formProvider from '@ohos.app.form.formProvider'; + try { formProvider.getFormsInfo((error, data) => { if (error) { - console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); + console.log(`callback error, code: ${error.code}, message: ${error.message})`); } else { - console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); + console.log('formProvider getFormsInfo, data: ' + JSON.stringify(data)); } }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` ## getFormsInfo @@ -231,33 +241,35 @@ Obtains the application's widget information that meets a filter criterion on th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | filter | [formInfo.FormInfoFilter](js-apis-app-form-formInfo.md#forminfofilter) | Yes| Filter criterion.| -| callback | AsyncCallback<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the information obtained.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Yes| Callback used to return the information obtained.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -import formInfo from '@ohos.application.formInfo'; -const filter : formInfo.FormInfoFilter = { - // get info of forms belong to module entry. - moduleName : "entry" +import formInfo from '@ohos.app.form.formInfo'; +import formProvider from '@ohos.app.form.formProvider'; + +const filter: formInfo.FormInfoFilter = { + // get info of forms belong to module entry. + moduleName: "entry" }; try { formProvider.getFormsInfo(filter, (error, data) => { if (error) { - console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); + console.log(`callback error, code: ${error.code}, message: ${error.message})`); } else { - console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); + console.log('formProvider getFormsInfo, data: ' + JSON.stringify(data)); } }); -} catch(error) { - console.log(`catch err->${JSON.stringify(error)}`); +} catch (error) { + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -279,31 +291,33 @@ Obtains the application's widget information on the device. This API uses a prom | Type | Description | | :------------ | :---------------------------------- | -| Promise<Array<[FormInfo](js-apis-app-form-formInfo.md)>> | Promise used to return the information obtained.| +| Promise<Array<[formInfo.FormInfo](js-apis-app-form-formInfo.md)>> | Promise used to return the information obtained.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -import formInfo from '@ohos.application.formInfo'; -const filter : formInfo.FormInfoFilter = { - // get info of forms belong to module entry. - moduleName : "entry" +import formInfo from '@ohos.app.form.formInfo'; +import formProvider from '@ohos.app.form.formProvider'; + +const filter: formInfo.FormInfoFilter = { + // get info of forms belong to module entry. + moduleName: "entry" }; try { formProvider.getFormsInfo(filter).then((data) => { console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); + console.log(`promise error, code: ${error.code}, message: ${error.message})`); }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -322,21 +336,23 @@ Requests to publish a widget carrying data to the widget host. This API uses an | Name| Type | Mandatory| Description | | ------ | ---------------------------------------------------------------------- | ---- | ---------------- | | want | [Want](js-apis-application-want.md) | Yes | Request used for publishing. The following fields must be included:
        Information about the target widget.
        **abilityName**: ability of the target widget.
        **parameters**:
        "ohos.extra.param.key.form_dimension"
        "ohos.extra.param.key.form_name"
        "ohos.extra.param.key.module_name" | -| formBindingData.FormBindingData | [FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | Yes | Data used for creating the widget.| +| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | Yes | Data used for creating the widget.| | callback | AsyncCallback<string> | Yes| Callback used to return the widget ID.| **Error codes** | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts import formBindingData from '@ohos.application.formBindingData'; -var want = { +import formProvider from '@ohos.app.form.formProvider'; + +let want = { abilityName: "FormAbility", parameters: { "ohos.extra.param.key.form_dimension": 2, @@ -345,16 +361,16 @@ var want = { } }; try { - let obj = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); + let obj = formBindingData.createFormBindingData({ temperature: "22c", time: "22:00" }); formProvider.requestPublishForm(want, obj, (error, data) => { if (error) { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + console.log(`callback error, code: ${error.code}, message: ${error.message})`); } else { console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); } }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -379,13 +395,15 @@ Requests to publish a widget to the widget host. This API uses an asynchronous c | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var want = { +import formProvider from '@ohos.app.form.formProvider'; + +let want = { abilityName: "FormAbility", parameters: { "ohos.extra.param.key.form_dimension": 2, @@ -396,15 +414,14 @@ var want = { try { formProvider.requestPublishForm(want, (error, data) => { if (error) { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + console.log(`callback error, code: ${error.code}, message: ${error.message})`); } else { console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); } }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } - ``` ## requestPublishForm @@ -422,7 +439,7 @@ Requests to publish a widget to the widget host. This API uses a promise to retu | Name | Type | Mandatory| Description | | --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | want | [Want](js-apis-application-want.md) | Yes | Request used for publishing. The following fields must be included:
        Information about the target widget.
        **abilityName**: ability of the target widget.
        **parameters**:
        "ohos.extra.param.key.form_dimension"
        "ohos.extra.param.key.form_name"
        "ohos.extra.param.key.module_name" | -| formBindingData.FormBindingData | [FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | No | Data used for creating the widget. | +| formBindingData | [formBindingData.FormBindingData](js-apis-app-form-formBindingData.md#formbindingdata) | No | Data used for creating the widget. | **Return value** @@ -434,13 +451,15 @@ Requests to publish a widget to the widget host. This API uses a promise to retu | Error Code ID| Error Message| | -------- | -------- | -| 401 | If the input parameter is not valid parameter. | -For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md). +| 401 | Incorrect input parameter.| +|For details about the error codes, see [Form Error Codes](../errorcodes/errorcode-form.md).| **Example** ```ts -var want = { +import formProvider from '@ohos.app.form.formProvider'; + +let want = { abilityName: "FormAbility", parameters: { "ohos.extra.param.key.form_dimension": 2, @@ -452,10 +471,10 @@ try { formProvider.requestPublishForm(want).then((data) => { console.log('formProvider requestPublishForm success, form ID is :' + JSON.stringify(data)); }).catch((error) => { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + console.log(`promise error, code: ${error.code}, message: ${error.message})`); }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -478,37 +497,38 @@ Checks whether a widget can be published to the widget host. This API uses an as **Example** ```ts +import formProvider from '@ohos.app.form.formProvider'; + try { formProvider.isRequestPublishFormSupported((error, isSupported) => { - if (error) { - console.log('formProvider isRequestPublishFormSupported, error:' + JSON.stringify(error)); - } else { - if (isSupported) { - var want = { - abilityName: "FormAbility", - parameters: { - "ohos.extra.param.key.form_dimension": 2, - "ohos.extra.param.key.form_name": "widget", - "ohos.extra.param.key.module_name": "entry" - } - }; - try { - formProvider.requestPublishForm(want, (error, data) => { - if (error) { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); - } else { - console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); + if (error) { + console.log(`callback error, code: ${error.code}, message: ${error.message})`); + } else { + if (isSupported) { + var want = { + abilityName: "FormAbility", + parameters: { + "ohos.extra.param.key.form_dimension": 2, + "ohos.extra.param.key.form_name": "widget", + "ohos.extra.param.key.module_name": "entry" } - }); - } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + }; + try { + formProvider.requestPublishForm(want, (error, data) => { + if (error) { + console.log(`callback error, code: ${error.code}, message: ${error.message})`); + } else { + console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); + } + }); + } catch (error) { + console.log(`catch error, code: ${error.code}, message: ${error.message})`); + } } - } - } -}); + }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` @@ -531,34 +551,33 @@ Checks whether a widget can be published to the widget host. This API uses a pro **Example** ```ts +import formProvider from '@ohos.app.form.formProvider'; + try { formProvider.isRequestPublishFormSupported().then((isSupported) => { if (isSupported) { var want = { - abilityName: "FormAbility", - parameters: { - "ohos.extra.param.key.form_dimension": 2, - "ohos.extra.param.key.form_name": "widget", - "ohos.extra.param.key.module_name": "entry" - } + abilityName: "FormAbility", + parameters: { + "ohos.extra.param.key.form_dimension": 2, + "ohos.extra.param.key.form_name": "widget", + "ohos.extra.param.key.module_name": "entry" + } }; try { formProvider.requestPublishForm(want).then((data) => { console.log('formProvider requestPublishForm success, form ID is :' + JSON.stringify(data)); }).catch((error) => { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + console.log(`promise error, code: ${error.code}, message: ${error.message})`); }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } - } }).catch((error) => { - console.log('formProvider isRequestPublishFormSupported, error:' + JSON.stringify(error)); + console.log(`promise error, code: ${error.code}, message: ${error.message})`); }); } catch (error) { - console.log(`catch err->${JSON.stringify(error)}`); + console.log(`catch error, code: ${error.code}, message: ${error.message})`); } ``` - - \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-appControl.md b/en/application-dev/reference/apis/js-apis-appControl.md index 1cb94f6888..06b334d58c 100644 --- a/en/application-dev/reference/apis/js-apis-appControl.md +++ b/en/application-dev/reference/apis/js-apis-appControl.md @@ -1,4 +1,4 @@ -# appControl +# @ohos.bundle.appControl (appControl) The **appControl** module provides APIs for setting, obtaining, and deleting the disposed status of an application. An application in the disposed state is forbidden to run. When a user clicks the application icon on the home screen, the corresponding page is displayed based on the disposal intent. @@ -30,7 +30,7 @@ Sets the disposed status for an application. This API uses a promise to return t | Name | Type | Mandatory | Description | | ----------- | ------ | ---- | --------------------------------------- | -| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | +| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | | disposedWant | Want | Yes| Disposal intent of the application.| **Return value** @@ -81,7 +81,7 @@ Sets the disposed status for an application. This API uses an asynchronous callb | Name | Type | Mandatory | Description | | ----------- | ------------------------------- | ---- | --------------------------------------- | -| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | +| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | | disposedWant | Want | Yes| Disposal intent of the application.| | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**; otherwise, **err** is an error object.| @@ -128,7 +128,7 @@ Obtains the disposed status of an application. This API uses a promise to return | Name | Type | Mandatory | Description | | ----------- | ------ | ---- | --------------------------------------- | -| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | +| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | **Return value** @@ -177,7 +177,7 @@ Obtains the disposed status of an application. This API uses an asynchronous cal | Name | Type | Mandatory | Description | | ----------- | ------ | ---- | --------------------------------------- | -| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | +| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined** and **data** is the disposed status obtained; otherwise, **err** is an error object. | **Error codes** @@ -222,7 +222,7 @@ Deletes the disposed status for an application. This API uses a promise to retur | Name | Type | Mandatory | Description | | ----------- | ------ | ---- | --------------------------------------- | -| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | +| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | **Return value** @@ -271,7 +271,7 @@ Deletes the disposed status for an application. This API uses an asynchronous ca | Name | Type | Mandatory | Description | | ----------- | ------ | ---- | --------------------------------------- | -| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | +| appId | string | Yes | ID of the target application.
        **appId** is the unique identifier of an application and is determined by the bundle name and signature information of the application. For details about how to obtain **appId**, see [Obtaining appId of an Application](#obtaining-appid-of-an-application). | | callback | AsyncCallback\ | Yes | Callback used to return the result. If the operation is successful, **err** is **undefined**; otherwise, **err** is an error object. | **Error codes** diff --git a/en/application-dev/reference/apis/js-apis-application-ability.md b/en/application-dev/reference/apis/js-apis-application-ability.md index 8c1c83988c..efba928564 100644 --- a/en/application-dev/reference/apis/js-apis-application-ability.md +++ b/en/application-dev/reference/apis/js-apis-application-ability.md @@ -1,4 +1,4 @@ -# @ohos.application.Ability +# @ohos.application.Ability (Ability) The **Ability** module manages the ability lifecycle and context, such as creating and destroying an ability, and dumping client information. @@ -15,7 +15,7 @@ This module provides the following common ability-related functions: ## Modules to Import ```ts -import Ability from '@ohos.application.Ability'; +import UIAbility from '@ohos.app.ability.UIAbility'; ``` ## Attributes @@ -47,7 +47,7 @@ Called to initialize the service logic when an ability is created. **Example** ```ts - class myAbility extends Ability { + export default class EntryAbility extends UIAbility { onCreate(want, param) { console.log('onCreate, want:' + want.abilityName); } @@ -67,7 +67,7 @@ Called when a **WindowStage** is created for this ability. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | windowStage | window.WindowStage | Yes| **WindowStage** information.| + | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** information.| **Example** @@ -111,7 +111,7 @@ Called when the **WindowStage** is restored during the migration of this ability | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | windowStage | window.WindowStage | Yes| **WindowStage** information.| + | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** information.| **Example** @@ -219,23 +219,24 @@ Called to save data during the ability migration preparation process. onNewWant(want: Want, launchParams: AbilityConstant.LaunchParam): void; -Called when the ability startup mode is set to singleton. +Called when a new Want is passed in and this UIAbility is started again. **System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want parameters, such as the ability name and bundle name.| - | launchParams | AbilityConstant.LaunchParam | Yes| Reason for the ability startup and the last abnormal exit.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information, such as the ability name and bundle name.| +| launchParams | AbilityConstant.LaunchParam | Yes| Reason for the ability startup and the last abnormal exit.| **Example** ```ts class myAbility extends Ability { - onNewWant(want) { + onNewWant(want, launchParams) { console.log('onNewWant, want:' + want.abilityName); + console.log('onNewWant, launchParams:' + JSON.stringify(launchParams)); } } ``` @@ -388,8 +389,9 @@ Sends sequenceable data to the target ability. **Example** ```ts - import Ability from '@ohos.application.Ability'; - class MyMessageAble{ // Custom sequenceable data structure + import UIAbility from '@ohos.app.ability.UIAbility'; + + class MyMessageAble{ // Custom sequenceable data structure. name:"" str:"" num: 1 @@ -412,11 +414,11 @@ Sends sequenceable data to the target ability. }; var method = 'call_Function'; // Notification message string negotiated by the two abilities var caller; - export default class MainAbility extends Ability { + export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { this.context.startAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -472,7 +474,8 @@ Sends sequenceable data to the target ability and obtains the sequenceable data **Example** ```ts - import Ability from '@ohos.application.Ability'; + import UIAbility from '@ohos.app.ability.UIAbility'; + class MyMessageAble{ name:"" str:"" @@ -496,11 +499,11 @@ Sends sequenceable data to the target ability and obtains the sequenceable data }; var method = 'call_Function'; var caller; - export default class MainAbility extends Ability { + export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { this.context.startAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -543,14 +546,17 @@ Releases the caller interface of the target ability. **Example** + ```ts - import Ability from '@ohos.application.Ability'; + import UIAbility from '@ohos.app.ability.UIAbility'; + var caller; - export default class MainAbility extends Ability { + + export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { this.context.startAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -585,13 +591,15 @@ Registers a callback that is invoked when the stub on the target ability is disc **Example** ```ts - import Ability from '@ohos.application.Ability'; + import UIAbility from '@ohos.app.ability.UIAbility'; + var caller; - export default class MainAbility extends Ability { + + export default class EntryAbility extends UIAbility { onWindowStageCreate(windowStage) { this.context.startAbilityByCall({ bundleName: "com.example.myservice", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "" }).then((obj) => { caller = obj; @@ -642,7 +650,7 @@ Registers a caller notification callback, which is invoked when the target abili **Example** ```ts - import Ability from '@ohos.application.Ability'; + import UIAbility from '@ohos.app.ability.UIAbility'; class MyMessageAble{ name:"" str:"" @@ -671,7 +679,7 @@ Registers a caller notification callback, which is invoked when the target abili pdata.readSequenceable(msg); return new MyMessageAble("test1", "Callee test"); } - export default class MainAbility extends Ability { + export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { console.log('Callee onCreate is called'); try { @@ -710,9 +718,11 @@ Deregisters a caller notification callback, which is invoked when the target abi **Example** ```ts - import Ability from '@ohos.application.Ability'; + import UIAbility from '@ohos.app.ability.UIAbility'; + var method = 'call_Function'; - export default class MainAbility extends Ability { + + export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { console.log('Callee onCreate is called'); try { @@ -724,7 +734,7 @@ Deregisters a caller notification callback, which is invoked when the target abi } } ``` - + ## OnReleaseCallBack (msg: string): void; diff --git a/en/application-dev/reference/apis/js-apis-application-abilityConstant.md b/en/application-dev/reference/apis/js-apis-application-abilityConstant.md index c97e344590..70d679e5f4 100644 --- a/en/application-dev/reference/apis/js-apis-application-abilityConstant.md +++ b/en/application-dev/reference/apis/js-apis-application-abilityConstant.md @@ -1,12 +1,10 @@ -# @ohos.application.AbilityConstant +# @ohos.application.AbilityConstant (AbilityConstant) -The **AbilityConstant** module provides ability launch parameters. - -The parameters include the initial launch reasons, reasons for the last exit, and ability continuation results. +The **AbilityConstant** module defines the ability-related enums, including the initial launch reasons, reasons for the last exit, ability continuation results, and window modes. > **NOTE** > -> The APIs of this module are supported and deprecated since API version 9. You are advised to use [@ohos.app.ability.AbilityConstant](js-apis-app-ability-abilityConstant.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.AbilityConstant](js-apis-app-ability-abilityConstant.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. ## Modules to Import @@ -21,12 +19,12 @@ import AbilityConstant from '@ohos.application.AbilityConstant'; | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| launchReason | LaunchReason| Yes| Yes| Ability launch reason.| -| lastExitReason | LastExitReason | Yes| Yes| Reason for the last exit.| +| launchReason | [LaunchReason](#abilityconstantlaunchreason)| Yes| Yes| Ability launch reason.| +| lastExitReason | [LastExitReason](#abilityconstantlastexitreason) | Yes| Yes| Reason for the last exit.| ## AbilityConstant.LaunchReason -Enumerates ability launch reasons. +Enumerates the initial ability launch reasons. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -41,7 +39,7 @@ Enumerates ability launch reasons. ## AbilityConstant.LastExitReason -Enumerates reasons for the last exit. +Enumerates the reasons for the last exit. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -54,7 +52,7 @@ Enumerates reasons for the last exit. ## AbilityConstant.OnContinueResult -Enumerates ability continuation results. +Enumerates the ability continuation results. **System capability**: SystemCapability.Ability.AbilityRuntime.Core diff --git a/en/application-dev/reference/apis/js-apis-application-abilityDelegatorRegistry.md b/en/application-dev/reference/apis/js-apis-application-abilityDelegatorRegistry.md index c58eae8878..ae72afeca2 100644 --- a/en/application-dev/reference/apis/js-apis-application-abilityDelegatorRegistry.md +++ b/en/application-dev/reference/apis/js-apis-application-abilityDelegatorRegistry.md @@ -1,10 +1,10 @@ -# @ohos.application.abilityDelegatorRegistry +# @ohos.application.abilityDelegatorRegistry (AbilityDelegatorRegistry) The **AbilityDelegatorRegistry** module provides APIs for storing the global registers of the registered **AbilityDelegator** and **AbilityDelegatorArgs** objects. You can use the APIs to obtain the **AbilityDelegator** and **AbilityDelegatorArgs** objects of an application. > **NOTE** > -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 8 and deprecated since API version 9. You are advised to use [@ohos.app.ability.abilityDelegatorRegistry](js-apis-app-ability-abilityDelegatorRegistry.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import diff --git a/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md b/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md index cd4a4db736..040448220b 100644 --- a/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md +++ b/en/application-dev/reference/apis/js-apis-application-abilityLifecycleCallback.md @@ -1,10 +1,10 @@ -# @ohos.application.AbilityLifecycleCallback +# @ohos.application.AbilityLifecycleCallback (AbilityLifecycleCallback) -The **AbilityLifecycleCallback** module provides callbacks, such as **onAbilityCreate**, **onWindowStageCreate**, and **onWindowStageDestroy**, to receive lifecycle state changes in the application context. +The **AbilityLifecycleCallback** module provides callbacks, such as **onAbilityCreate**, **onWindowStageCreate**, and **onWindowStageDestroy**, to receive lifecycle state changes in the application context. These callbacks can be used as an input parameter of [registerAbilityLifecycleCallback](js-apis-inner-application-applicationContext.md#applicationcontextregisterabilitylifecyclecallback). > **NOTE** > -> The APIs of this module are supported and deprecated since API version 9. You are advised to use [@ohos.app.ability.AbilityLifecycleCallback](js-apis-app-ability-abilityLifecycleCallback.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.AbilityLifecycleCallback](js-apis-app-ability-abilityLifecycleCallback.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. @@ -25,9 +25,9 @@ Called when an ability is created. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| ## AbilityLifecycleCallback.onWindowStageCreate @@ -40,10 +40,10 @@ Called when the window stage of an ability is created. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| ## AbilityLifecycleCallback.onWindowStageActive @@ -56,10 +56,10 @@ Called when the window stage of an ability gains focus. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| ## AbilityLifecycleCallback.onWindowStageInactive @@ -72,10 +72,10 @@ Called when the window stage of an ability loses focus. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| ## AbilityLifecycleCallback.onWindowStageDestroy @@ -88,10 +88,10 @@ Called when the window stage of an ability is destroyed. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| - | windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| windowStage | [window.WindowStage](js-apis-window.md#windowstage9) | Yes| **WindowStage** object.| ## AbilityLifecycleCallback.onAbilityDestroy @@ -104,9 +104,9 @@ Called when an ability is destroyed. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| ## AbilityLifecycleCallback.onAbilityForeground @@ -119,9 +119,9 @@ Called when an ability is switched from the background to the foreground. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| ## AbilityLifecycleCallback.onAbilityBackground @@ -134,9 +134,9 @@ Called when an ability is switched from the foreground to the background. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| ## AbilityLifecycleCallback.onAbilityContinue @@ -149,64 +149,64 @@ Called when an ability is continued on another device. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| ability | [Ability](js-apis-application-ability.md#Ability) | Yes| **Ability** object.| **Example** - ```ts import AbilityStage from "@ohos.application.AbilityStage"; -var lifecycleid; +var lifecycleId; export default class MyAbilityStage extends AbilityStage { onCreate() { console.log("MyAbilityStage onCreate") - let AbilityLifecycleCallback = { - onAbilityCreate(ability){ - console.log("AbilityLifecycleCallback onAbilityCreate ability:" + JSON.stringify(ability)); + let AbilityLifecycleCallback = { + onAbilityCreate(ability) { + console.log("onAbilityCreate ability:" + JSON.stringify(ability)); }, - onWindowStageCreate(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageCreate ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageCreate windowStage:" + JSON.stringify(windowStage)); + onWindowStageCreate(ability, windowStage) { + console.log("onWindowStageCreate ability:" + JSON.stringify(ability)); + console.log("onWindowStageCreate windowStage:" + JSON.stringify(windowStage)); }, - onWindowStageActive(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageActive ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageActive windowStage:" + JSON.stringify(windowStage)); + onWindowStageActive(ability, windowStage) { + console.log("onWindowStageActive ability:" + JSON.stringify(ability)); + console.log("onWindowStageActive windowStage:" + JSON.stringify(windowStage)); }, - onWindowStageInactive(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageInactive ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageInactive windowStage:" + JSON.stringify(windowStage)); + onWindowStageInactive(ability, windowStage) { + console.log("onWindowStageInactive ability:" + JSON.stringify(ability)); + console.log("onWindowStageInactive windowStage:" + JSON.stringify(windowStage)); }, - onWindowStageDestroy(ability, windowStage){ - console.log("AbilityLifecycleCallback onWindowStageDestroy ability:" + JSON.stringify(ability)); - console.log("AbilityLifecycleCallback onWindowStageDestroy windowStage:" + JSON.stringify(windowStage)); + onWindowStageDestroy(ability, windowStage) { + console.log("onWindowStageDestroy ability:" + JSON.stringify(ability)); + console.log("onWindowStageDestroy windowStage:" + JSON.stringify(windowStage)); }, - onAbilityDestroy(ability){ - console.log("AbilityLifecycleCallback onAbilityDestroy ability:" + JSON.stringify(ability)); + onAbilityDestroy(ability) { + console.log("onAbilityDestroy ability:" + JSON.stringify(ability)); }, - onAbilityForeground(ability){ - console.log("AbilityLifecycleCallback onAbilityForeground ability:" + JSON.stringify(ability)); + onAbilityForeground(ability) { + console.log("onAbilityForeground ability:" + JSON.stringify(ability)); }, - onAbilityBackground(ability){ - console.log("AbilityLifecycleCallback onAbilityBackground ability:" + JSON.stringify(ability)); + onAbilityBackground(ability) { + console.log("onAbilityBackground ability:" + JSON.stringify(ability)); }, - onAbilityContinue(ability){ - console.log("AbilityLifecycleCallback onAbilityContinue ability:" + JSON.stringify(ability)); + onAbilityContinue(ability) { + console.log("onAbilityContinue ability:" + JSON.stringify(ability)); } } // 1. Obtain applicationContext through the context attribute. let applicationContext = this.context.getApplicationContext(); // 2. Use applicationContext to register a listener for the ability lifecycle in the application. - lifecycleid = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback); - console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleid)); + lifecycleId = applicationContext.registerAbilityLifecycleCallback(AbilityLifecycleCallback); + console.log("registerAbilityLifecycleCallback number: " + JSON.stringify(lifecycleId)); } + onDestroy() { let applicationContext = this.context.getApplicationContext(); - applicationContext.unregisterAbilityLifecycleCallback(lifecycleid, (error, data) => { - console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error)); + applicationContext.unregisterAbilityLifecycleCallback(lifecycleId, (error, data) => { + console.log("unregisterAbilityLifecycleCallback success, err: " + JSON.stringify(error)); }); } } diff --git a/en/application-dev/reference/apis/js-apis-application-abilityManager.md b/en/application-dev/reference/apis/js-apis-application-abilityManager.md index cf7f8da587..e509a1b5d1 100644 --- a/en/application-dev/reference/apis/js-apis-application-abilityManager.md +++ b/en/application-dev/reference/apis/js-apis-application-abilityManager.md @@ -1,16 +1,16 @@ -# @ohos.application.abilityManager +# @ohos.application.abilityManager (AbilityManager) The **AbilityManager** module provides APIs for obtaining, adding, and modifying ability running information and state information. > **NOTE** > -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 8 and deprecated since API version 9. You are advised to use [@ohos.app.ability.abilityManager](js-apis-app-ability-abilityManager.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module are system APIs and cannot be called by third-party applications. ## Modules to Import ```ts -import AbilityManager from '@ohos.application.abilityManager' +import abilityManager from '@ohos.application.abilityManager' ``` ## AbilityState @@ -26,8 +26,8 @@ Enumerates the ability states. | INITIAL | 0 | The ability is in the initial state.| | FOREGROUND | 9 | The ability is in the foreground state. | | BACKGROUND | 10 | The ability is in the background state. | -| FOREGROUNDING | 11 | The ability is in the foregrounding state. | -| BACKGROUNDING | 12 | The ability is in the backgrounding state. | +| FOREGROUNDING | 11 | The ability is in the state of being switched to the foreground. | +| BACKGROUNDING | 12 | The ability is in the state of being switched to the background. | ## updateConfiguration @@ -49,13 +49,11 @@ Updates the configuration. This API uses an asynchronous callback to return the **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - var config = { language: 'chinese' } -abilitymanager.updateConfiguration(config, () => { +abilityManager.updateConfiguration(config, () => { console.log('------------ updateConfiguration -----------'); }) ``` @@ -85,13 +83,11 @@ Updates the configuration. This API uses a promise to return the result. **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - var config = { language: 'chinese' } -abilitymanager.updateConfiguration(config).then(() => { +abilityManager.updateConfiguration(config).then(() => { console.log('updateConfiguration success'); }).catch((err) => { console.log('updateConfiguration fail'); @@ -112,14 +108,12 @@ Obtains the ability running information. This API uses an asynchronous callback | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| callback | AsyncCallback\> | Yes | Callback used to return the result. | +| callback | AsyncCallback\> | Yes | Callback used to return the result. | **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getAbilityRunningInfos((err,data) => { +abilityManager.getAbilityRunningInfos((err,data) => { console.log("getAbilityRunningInfos err: " + err + " data: " + JSON.stringify(data)); }); ``` @@ -138,14 +132,12 @@ Obtains the ability running information. This API uses a promise to return the r | Type | Description | | ---------------------------------------- | ------- | -| Promise\> | Promise used to return the result.| +| Promise\> | Promise used to return the result.| **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getAbilityRunningInfos().then((data) => { +abilityManager.getAbilityRunningInfos().then((data) => { console.log("getAbilityRunningInfos data: " + JSON.stringify(data)) }).catch((err) => { console.log("getAbilityRunningInfos err: " + err) @@ -167,16 +159,14 @@ Obtains the extension running information. This API uses an asynchronous callbac | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | | upperLimit | number | Yes| Maximum number of messages that can be obtained.| -| callback | AsyncCallback\> | Yes | Callback used to return the result. | +| callback | AsyncCallback\> | Yes | Callback used to return the result. | **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - var upperLimit = 0; -abilitymanager.getExtensionRunningInfos(upperLimit, (err,data) => { +abilityManager.getExtensionRunningInfos(upperLimit, (err,data) => { console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data)); }); ``` @@ -201,16 +191,14 @@ Obtains the extension running information. This API uses a promise to return the | Type | Description | | ---------------------------------------- | ------- | -| Promise\> | Promise used to return the result.| +| Promise\> | Promise used to return the result.| **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - var upperLimit = 0; -abilitymanager.getExtensionRunningInfos(upperLimit).then((data) => { +abilityManager.getExtensionRunningInfos(upperLimit).then((data) => { console.log("getAbilityRunningInfos data: " + JSON.stringify(data)); }).catch((err) => { console.log("getAbilityRunningInfos err: " + err); @@ -229,14 +217,12 @@ Obtains the top ability, which is the ability that has the window focus. This AP | Name | Type | Mandatory | Description | | --------- | ---------------------------------------- | ---- | -------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the result. | +| callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | Callback used to return the result. | **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getTopAbility((err,data) => { +abilityManager.getTopAbility((err,data) => { console.log("getTopAbility err: " + err + " data: " + JSON.stringify(data)); }); ``` @@ -253,14 +239,12 @@ Obtains the top ability, which is the ability that has the window focus. This AP | Type | Description | | ---------------------------------------- | ------- | -| Promise\| Promise used to return the result.| +| Promise\<[ElementName](js-apis-bundleManager-elementName.md)>| Promise used to return the result.| **Example** ```ts -import abilitymanager from '@ohos.application.abilityManager'; - -abilitymanager.getTopAbility().then((data) => { +abilityManager.getTopAbility().then((data) => { console.log("getTopAbility data: " + JSON.stringify(data)); }).catch((err) => { console.log("getTopAbility err: " + err); diff --git a/en/application-dev/reference/apis/js-apis-application-abilityStage.md b/en/application-dev/reference/apis/js-apis-application-abilityStage.md index 45227a89b2..1421dcd723 100644 --- a/en/application-dev/reference/apis/js-apis-application-abilityStage.md +++ b/en/application-dev/reference/apis/js-apis-application-abilityStage.md @@ -1,4 +1,4 @@ -# @ohos.application.AbilityStage +# @ohos.application.AbilityStage (AbilityStage) **AbilityStage** is a runtime class for HAP files. @@ -38,21 +38,21 @@ Called when the application is created. onAcceptWant(want: Want): string; -Called when a specified ability is started. +Called when a UIAbility is started. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Information about the ability to start, such as the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target UIAbility, such as the ability name and bundle name.| **Return value** - | Type| Description| - | -------- | -------- | - | string | Returns an ability ID. If this ability has been started, no new instance is created and the ability is placed at the top of the stack. Otherwise, a new instance is created and started.| +| Type| Description| +| -------- | -------- | +| string | Returns a UIAbility ID. If this UIAbility has been started, no new instance is created and the UIAbility is placed at the top of the stack. Otherwise, a new instance is created and started.| **Example** @@ -76,9 +76,9 @@ Called when the global configuration is updated. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | config | [Configuration](js-apis-application-configuration.md) | Yes| Callback invoked when the global configuration is updated. The global configuration indicates the configuration of the environment where the application is running and includes the language and color mode.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| config | [Configuration](js-apis-application-configuration.md) | Yes| Callback invoked when the global configuration is updated. The global configuration indicates the configuration of the environment where the application is running and includes the language and color mode.| **Example** @@ -100,9 +100,9 @@ Called when the system has decided to adjust the memory level. For example, this **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | level | [AbilityConstant.MemoryLevel](js-apis-application-abilityConstant.md#abilityconstantmemorylevel) | Yes| Memory level that indicates the memory usage status. When the specified memory level is reached, a callback will be invoked and the system will start adjustment.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| level | [AbilityConstant.MemoryLevel](js-apis-application-abilityConstant.md#abilityconstantmemorylevel) | Yes| Memory level that indicates the memory usage status. When the specified memory level is reached, a callback will be invoked and the system will start adjustment.| **Example** @@ -118,10 +118,10 @@ Called when the system has decided to adjust the memory level. For example, this context: AbilityStageContext; -Describes the configuration information about the context. +Defines the **Context** object of **AbilityStage**. **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name | Type | Description | -| ----------- | --------------------------- | ------------------------------------------------------------ | -| context | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | Called when initialization is performed during ability startup.| +| Name | Type | Description | +| ------- | ------------------------------------------------------------ | -------------------------- | +| context | [AbilityStageContext](js-apis-inner-application-abilityStageContext.md) | **Context** object of AbilityStage.| diff --git a/en/application-dev/reference/apis/js-apis-application-appManager.md b/en/application-dev/reference/apis/js-apis-application-appManager.md index a3f97be529..591f5ec77a 100644 --- a/en/application-dev/reference/apis/js-apis-application-appManager.md +++ b/en/application-dev/reference/apis/js-apis-application-appManager.md @@ -1,4 +1,4 @@ -# @ohos.application.appManager +# @ohos.application.appManager (appManager) The **appManager** module implements application management. You can use the APIs of this module to query whether the application is undergoing a stability test, whether the application is running on a RAM constrained device, the memory size of the application, and information about the running process. @@ -9,7 +9,7 @@ The **appManager** module implements application management. You can use the API ## Modules to Import ```ts -import app from '@ohos.application.appManager'; +import appManager from '@ohos.application.appManager'; ``` ## appManager.isRunningInStabilityTest8+ @@ -29,9 +29,9 @@ Checks whether this application is undergoing a stability test. This API uses an **Example** ```ts - import app from '@ohos.application.appManager'; - app.isRunningInStabilityTest((err, flag) => { - console.log('startAbility result:' + JSON.stringify(err)); + appManager.isRunningInStabilityTest((err, flag) => { + console.log('error:' + JSON.stringfy(err)); + console.log('The result of isRunningInStabilityTest is:' + JSON.stringify(flag)); }) ``` @@ -53,11 +53,10 @@ Checks whether this application is undergoing a stability test. This API uses a **Example** ```ts - import app from '@ohos.application.appManager'; - app.isRunningInStabilityTest().then((flag) => { - console.log('success:' + JSON.stringify(flag)); + appManager.isRunningInStabilityTest().then((flag) => { + console.log('The result of isRunningInStabilityTest is:' + JSON.stringify(flag)); }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); + console.log('error:' + JSON.stringify(error)); }); ``` @@ -79,10 +78,10 @@ Checks whether this application is running on a RAM constrained device. This API **Example** ```ts - app.isRamConstrainedDevice().then((data) => { - console.log('success:' + JSON.stringify(data)); + appManager.isRamConstrainedDevice().then((data) => { + console.log('The result of isRamConstrainedDevice is:' + JSON.stringify(data)); }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); + console.log('error:' + JSON.stringify(error)); }); ``` @@ -103,9 +102,9 @@ Checks whether this application is running on a RAM constrained device. This API **Example** ```ts - app.isRamConstrainedDevice((err, data) => { - console.log('startAbility result failed:' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); + appManager.isRamConstrainedDevice((err, data) => { + console.log('error:' + JSON.stringify(err)); + console.log('The result of isRamConstrainedDevice is:' + JSON.stringify(data)); }) ``` @@ -126,10 +125,10 @@ Obtains the memory size of this application. This API uses a promise to return t **Example** ```ts - app.getAppMemorySize().then((data) => { - console.log('success:' + JSON.stringify(data)); + appManager.getAppMemorySize().then((data) => { + console.log('The size of app memory is:' + JSON.stringify(data)); }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); + console.log('error:' + JSON.stringify(error)); }); ``` @@ -150,9 +149,9 @@ Obtains the memory size of this application. This API uses an asynchronous callb **Example** ```ts - app.getAppMemorySize((err, data) => { - console.log('startAbility result failed :' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); + appManager.getAppMemorySize((err, data) => { + console.log('error:' + JSON.stringify(err)); + console.log('The size of app memory is:' + JSON.stringify(data)); }) ``` ## appManager.getProcessRunningInfos(deprecated) @@ -171,15 +170,15 @@ Obtains information about the running processes. This API uses a promise to retu | Type| Description| | -------- | -------- | -| Promise\> | Promise used to return the process information.| +| Promise\> | Promise used to return the process information.| **Example** ```ts - app.getProcessRunningInfos().then((data) => { - console.log('success:' + JSON.stringify(data)); + appManager.getProcessRunningInfos().then((data) => { + console.log('The process running infos is:' + JSON.stringify(data)); }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); + console.log('error:' + JSON.stringify(error)); }); ``` @@ -199,14 +198,14 @@ Obtains information about the running processes. This API uses an asynchronous c | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| callback | AsyncCallback\> | Yes| Obtains information about the running processes. This API uses a promise to return the result.| +| callback | AsyncCallback\> | Yes| Obtains information about the running processes. This API uses a promise to return the result.| **Example** ```ts - app.getProcessRunningInfos((err, data) => { - console.log('startAbility result failed :' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); + appManager.getProcessRunningInfos((err, data) => { + console.log('error:' + JSON.stringify(err)); + console.log('The process running infos is:' + JSON.stringify(data)); }) ``` @@ -229,10 +228,10 @@ Obtains information about the running processes. This API uses a promise to retu **Example** ```ts - app.getProcessRunningInformation().then((data) => { - console.log('success:' + JSON.stringify(data)); + appManager.getProcessRunningInformation().then((data) => { + console.log('The process running info is:' + JSON.stringify(data)); }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); + console.log('error:' + JSON.stringify(error)); }); ``` @@ -255,9 +254,9 @@ Obtains information about the running processes. This API uses an asynchronous c **Example** ```ts - app.getProcessRunningInformation((err, data) => { - console.log('startAbility result failed :' + JSON.stringify(err)); - console.log('startAbility result success:' + JSON.stringify(data)); + appManager.getProcessRunningInformation((err, data) => { + console.log('error:' + JSON.stringify(err)); + console.log('The process running info is:' + JSON.stringify(data)); }) ``` @@ -299,7 +298,7 @@ Registers an observer to listen for the state changes of all applications. console.log('------------ onProcessStateChanged -----------', processData); } } - const observerCode = app.registerApplicationStateObserver(applicationStateObserver); + const observerCode = appManager.registerApplicationStateObserver(applicationStateObserver); console.log('-------- observerCode: ---------', observerCode); ``` @@ -343,7 +342,7 @@ Registers an observer to listen for the state changes of a specified application } } var bundleNameList = ['bundleName1', 'bundleName2']; - const observerCode = app.registerApplicationStateObserver(applicationStateObserver, bundleNameList); + const observerCode = appManager.registerApplicationStateObserver(applicationStateObserver, bundleNameList); console.log('-------- observerCode: ---------', observerCode); ``` ## appManager.unregisterApplicationStateObserver8+ @@ -359,7 +358,7 @@ Deregisters the application state observer. This API uses an asynchronous callba **System API**: This is a system API and cannot be called by third-party applications. **Parameters** - + | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | observerId | number | Yes| Numeric code of the observer.| @@ -375,7 +374,7 @@ Deregisters the application state observer. This API uses an asynchronous callba console.log('------------ unregisterApplicationStateObserverCallback ------------', err); } } - app.unregisterApplicationStateObserver(observerId, unregisterApplicationStateObserverCallback); + appManager.unregisterApplicationStateObserver(observerId, unregisterApplicationStateObserverCallback); ``` ## appManager.unregisterApplicationStateObserver8+ @@ -407,7 +406,7 @@ Deregisters the application state observer. This API uses a promise to return th ```ts var observerId = 100; - app.unregisterApplicationStateObserver(observerId) + appManager.unregisterApplicationStateObserver(observerId) .then((data) => { console.log('----------- unregisterApplicationStateObserver success ----------', data); }) @@ -420,8 +419,8 @@ Deregisters the application state observer. This API uses a promise to return th getForegroundApplications(callback: AsyncCallback\>): void; -Obtains applications that are running in the foreground. This API uses an asynchronous callback to return the result. - +Obtains information about the applications that are running in the foreground. This API uses an asynchronous callback to return the result. The application information is defined by [AppStateData](js-apis-inner-application-appStateData.md). + **Required permissions**: ohos.permission.GET_RUNNING_INFO **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -432,7 +431,7 @@ Obtains applications that are running in the foreground. This API uses an asynch | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| callback | AsyncCallback\> | Yes| Callback used to return the application state data.| +| callback | AsyncCallback\> | Yes| Callback used to return the application information.| **Example** @@ -444,14 +443,14 @@ Obtains applications that are running in the foreground. This API uses an asynch console.log('--------- getForegroundApplicationsCallback success ---------', data) } } - app.getForegroundApplications(getForegroundApplicationsCallback); + appManager.getForegroundApplications(getForegroundApplicationsCallback); ``` ## appManager.getForegroundApplications8+ getForegroundApplications(): Promise\>; -Obtains applications that are running in the foreground. This API uses a promise to return the result. +Obtains information about the applications that are running in the foreground. This API uses a promise to return the result. The application information is defined by [AppStateData](js-apis-inner-application-appStateData.md). **Required permissions**: ohos.permission.GET_RUNNING_INFO @@ -463,12 +462,12 @@ Obtains applications that are running in the foreground. This API uses a promise | Type| Description| | -------- | -------- | -| Promise\> | Promise used to return the application state data.| +| Promise\> | Promise used to return the application information.| **Example** ```ts - app.getForegroundApplications() + appManager.getForegroundApplications() .then((data) => { console.log('--------- getForegroundApplications success -------', data); }) @@ -483,7 +482,7 @@ killProcessWithAccount(bundleName: string, accountId: number): Promise\ Kills a process by bundle name and account ID. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) and ohos.permission.CLEAN_BACKGROUND_PROCESSES **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -491,17 +490,17 @@ Kills a process by bundle name and account ID. This API uses a promise to return **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | bundleName | string | Yes| Bundle name of an application.| - | accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| bundleName | string | Yes| Bundle name.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| **Example** ```ts var bundleName = 'bundleName'; var accountId = 0; -app.killProcessWithAccount(bundleName, accountId) +appManager.killProcessWithAccount(bundleName, accountId) .then((data) => { console.log('------------ killProcessWithAccount success ------------', data); }) @@ -521,15 +520,15 @@ Kills a process by bundle name and account ID. This API uses an asynchronous cal **System API**: This is a system API and cannot be called by third-party applications. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS and ohos.permission.CLEAN_BACKGROUND_PROCESSES +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) and ohos.permission.CLEAN_BACKGROUND_PROCESSES **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | bundleName | string | Yes| Bundle name of an application.| - | accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| - | callback | AsyncCallback\ | Yes| Callback used to return the result.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| bundleName | string | Yes| Bundle name.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| callback | AsyncCallback\ | Yes| Callback used to return the result.| **Example** @@ -543,7 +542,7 @@ function killProcessWithAccountCallback(err, data) { console.log('------------- killProcessWithAccountCallback success, data: --------------', data); } } -app.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback); +appManager.killProcessWithAccount(bundleName, accountId, killProcessWithAccountCallback); ``` ## appManager.killProcessesByBundleName8+ @@ -562,7 +561,7 @@ Kills a process by bundle name. This API uses an asynchronous callback to return | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| +| bundleName | string | Yes| Bundle name.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Example** @@ -576,7 +575,7 @@ Kills a process by bundle name. This API uses an asynchronous callback to return console.log('------------- killProcessesByBundleNameCallback success, data: --------------', data); } } - app.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback); + appManager.killProcessesByBundleName(bundleName, killProcessesByBundleNameCallback); ``` ## appManager.killProcessesByBundleName8+ @@ -595,7 +594,7 @@ Kills a process by bundle name. This API uses a promise to return the result. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| +| bundleName | string | Yes| Bundle name.| **Return value** @@ -604,10 +603,10 @@ Kills a process by bundle name. This API uses a promise to return the result. | Promise\ | Promise used to return the result.| **Example** - + ```ts - var bundleName = 'bundleName'; - app.killProcessesByBundleName(bundleName) + var bundleName = 'com.example.myapplication'; + appManager.killProcessesByBundleName(bundleName) .then((data) => { console.log('------------ killProcessesByBundleName success ------------', data); }) @@ -632,7 +631,7 @@ Clears application data by bundle name. This API uses an asynchronous callback t | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| +| bundleName | string | Yes| Bundle name.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Example** @@ -646,7 +645,7 @@ Clears application data by bundle name. This API uses an asynchronous callback t console.log('------------- clearUpApplicationDataCallback success, data: --------------', data); } } - app.clearUpApplicationData(bundleName, clearUpApplicationDataCallback); + appManager.clearUpApplicationData(bundleName, clearUpApplicationDataCallback); ``` ## appManager.clearUpApplicationData8+ @@ -665,7 +664,7 @@ Clears application data by bundle name. This API uses a promise to return the re | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| bundleName | string | Yes| Bundle name of an application.| +| bundleName | string | Yes| Bundle name.| **Return value** @@ -677,7 +676,7 @@ Clears application data by bundle name. This API uses a promise to return the re ```ts var bundleName = 'bundleName'; - app.clearUpApplicationData(bundleName) + appManager.clearUpApplicationData(bundleName) .then((data) => { console.log('------------ clearUpApplicationData success ------------', data); }) diff --git a/en/application-dev/reference/apis/js-apis-application-configuration.md b/en/application-dev/reference/apis/js-apis-application-configuration.md index 1fbb65c4ae..81870036a8 100644 --- a/en/application-dev/reference/apis/js-apis-application-configuration.md +++ b/en/application-dev/reference/apis/js-apis-application-configuration.md @@ -1,9 +1,8 @@ -# @ohos.application.Configuration +# @ohos.application.Configuration (Configuration) The **Configuration** module defines environment change information. > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. > This module is deprecated since API version 9. You are advised to use [@ohos.app.ability.Configuration](js-apis-app-ability-configuration.md) instead. diff --git a/en/application-dev/reference/apis/js-apis-application-configurationConstant.md b/en/application-dev/reference/apis/js-apis-application-configurationConstant.md index 316244503d..dabe32b2f9 100644 --- a/en/application-dev/reference/apis/js-apis-application-configurationConstant.md +++ b/en/application-dev/reference/apis/js-apis-application-configurationConstant.md @@ -1,4 +1,4 @@ -# @ohos.application.ConfigurationConstant +# @ohos.application.ConfigurationConstant (ConfigurationConstant) The **ConfigurationConstant** module provides the enumerated values of the environment configuration information. @@ -18,11 +18,11 @@ You can obtain the value of this constant by calling the **ConfigurationConstant **System capability**: SystemCapability.Ability.AbilityBase -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| COLOR_MODE_NOT_SET | -1 | Unspecified color mode.| -| COLOR_MODE_DARK | 0 | Dark mode.| -| COLOR_MODE_LIGHT | 1 | Light mode.| +| COLOR_MODE_NOT_SET | -1 | Unspecified color mode.| +| COLOR_MODE_DARK | 0 | Dark mode.| +| COLOR_MODE_LIGHT | 1 | Light mode.| ## ConfigurationConstant.Direction9+ @@ -31,11 +31,11 @@ You can obtain the value of this constant by calling the **ConfigurationConstant **System capability**: SystemCapability.Ability.AbilityBase -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| DIRECTION_NOT_SET | -1 | Unspecified direction.| -| DIRECTION_VERTICAL | 0 | Vertical direction.| -| DIRECTION_HORIZONTAL | 1 | Horizontal direction.| +| DIRECTION_NOT_SET | -1 | Unspecified direction.| +| DIRECTION_VERTICAL | 0 | Vertical direction.| +| DIRECTION_HORIZONTAL | 1 | Horizontal direction.| ## ConfigurationConstant.ScreenDensity9+ @@ -44,12 +44,12 @@ You can obtain the value of this constant by calling the **ConfigurationConstant **System capability**: SystemCapability.Ability.AbilityBase -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| SCREEN_DENSITY_NOT_SET | 0 | Unspecified screen resolution.| -| SCREEN_DENSITY_SDPI | 120 | The screen resolution is sdpi.| -| SCREEN_DENSITY_MDPI | 160 | The screen resolution is mdpi.| -| SCREEN_DENSITY_LDPI | 240 | The screen resolution is ldpi.| -| SCREEN_DENSITY_XLDPI | 320 | The screen resolution is xldpi.| -| SCREEN_DENSITY_XXLDPI | 480 | The screen resolution is xxldpi.| -| SCREEN_DENSITY_XXXLDPI | 640 | The screen resolution is xxxldpi.| +| SCREEN_DENSITY_NOT_SET | 0 | Unspecified screen resolution.| +| SCREEN_DENSITY_SDPI | 120 | The screen resolution is sdpi.| +| SCREEN_DENSITY_MDPI | 160 | The screen resolution is mdpi.| +| SCREEN_DENSITY_LDPI | 240 | The screen resolution is ldpi.| +| SCREEN_DENSITY_XLDPI | 320 | The screen resolution is xldpi.| +| SCREEN_DENSITY_XXLDPI | 480 | The screen resolution is xxldpi.| +| SCREEN_DENSITY_XXXLDPI | 640 | The screen resolution is xxxldpi.| diff --git a/en/application-dev/reference/apis/js-apis-application-context.md b/en/application-dev/reference/apis/js-apis-application-context.md index 88a5c84c61..d42e522c14 100644 --- a/en/application-dev/reference/apis/js-apis-application-context.md +++ b/en/application-dev/reference/apis/js-apis-application-context.md @@ -1,4 +1,4 @@ -# @ohos.application.context +# @ohos.application.context (Context) The **Context** module provides all level-2 module APIs for developers to export. diff --git a/en/application-dev/reference/apis/js-apis-application-environmentCallback.md b/en/application-dev/reference/apis/js-apis-application-environmentCallback.md index e1d2033c65..d4c2526923 100644 --- a/en/application-dev/reference/apis/js-apis-application-environmentCallback.md +++ b/en/application-dev/reference/apis/js-apis-application-environmentCallback.md @@ -1,10 +1,10 @@ -# @ohos.application.EnvironmentCallback +# @ohos.application.EnvironmentCallback (EnvironmentCallback) -The **EnvironmentCallback** module provides the **onConfigurationUpdated** API for the application context to listen for system environment changes. +The **EnvironmentCallback** module provides APIs, such as **onConfigurationUpdated** and **onMemoryLevel**, for the application context to listen for system environment changes. > **NOTE** > -> The APIs of this module are supported and deprecated since API version 9. You are advised to use [@ohos.app.ability.EnvironmentCallback](js-apis-app-ability-environmentCallback.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.EnvironmentCallback](js-apis-app-ability-environmentCallback.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. @@ -25,18 +25,32 @@ Called when the system environment changes. **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| config | [Configuration](js-apis-application-configuration.md) | Yes| **Configuration** object after the change.| + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | config | [Configuration](js-apis-application-configuration.md) | Yes| **Configuration** object after the change.| -**Example** +## EnvironmentCallback.onMemoryLevel + +onMemoryLevel(level: number): void; + +Called when the system memory level changes. + +**System capability**: SystemCapability.Ability.AbilityRuntime.AbilityCore + +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | level | [MemoryLevel](js-apis-application-abilityConstant.md#abilityconstantmemorylevel) | Yes| New memory level.| + +**Example** ```ts -import Ability from "@ohos.application.Ability"; +import UIAbility from '@ohos.app.ability.UIAbility'; var callbackId; -export default class MyAbility extends Ability { +export default class EntryAbility extends UIAbility { onCreate() { console.log("MyAbility onCreate") globalThis.applicationContext = this.context.getApplicationContext(); @@ -44,6 +58,9 @@ export default class MyAbility extends Ability { onConfigurationUpdated(config){ console.log("onConfigurationUpdated config:" + JSON.stringify(config)); }, + onMemoryLevel(level){ + console.log("onMemoryLevel level:" + level); + } } // 1. Obtain an applicationContext object. let applicationContext = globalThis.applicationContext; diff --git a/en/application-dev/reference/apis/js-apis-application-errorManager.md b/en/application-dev/reference/apis/js-apis-application-errorManager.md index b1a98049c7..c1eaa2d35e 100644 --- a/en/application-dev/reference/apis/js-apis-application-errorManager.md +++ b/en/application-dev/reference/apis/js-apis-application-errorManager.md @@ -1,10 +1,10 @@ -# @ohos.application.errorManager (Error Manager) +# @ohos.application.errorManager (ErrorManager) -The **errorManager** module provides APIs for registering and deregistering error observers. +The **ErrorManager** module provides APIs for registering and deregistering error observers. > **NOTE** > -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.errorManager](js-apis-app-ability-errorManager.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import ```ts diff --git a/en/application-dev/reference/apis/js-apis-application-extensionAbility.md b/en/application-dev/reference/apis/js-apis-application-extensionAbility.md index 055980e455..f18b293edd 100644 --- a/en/application-dev/reference/apis/js-apis-application-extensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-application-extensionAbility.md @@ -1,6 +1,6 @@ -# @ohos.application.ExtensionAbility +# @ohos.application.ExtensionAbility (ExtensionAbility) -The **ExtensionAbility** module manages the Extension ability lifecycle and context, such as creating and destroying an Extension ability, and dumping client information. +The **ExtensionAbility** module manages the ExtensionAbility lifecycle and context, such as creating and destroying an ExtensionAbility, and dumping client information. > **NOTE** > diff --git a/en/application-dev/reference/apis/js-apis-application-formBindingData.md b/en/application-dev/reference/apis/js-apis-application-formBindingData.md index f0cdf74799..5fbc52c95d 100644 --- a/en/application-dev/reference/apis/js-apis-application-formBindingData.md +++ b/en/application-dev/reference/apis/js-apis-application-formBindingData.md @@ -1,4 +1,4 @@ -# @ohos.application.formBindingData +# @ohos.application.formBindingData (formBindingData) The **FormBindingData** module provides APIs for widget data binding. You can use the APIs to create a **FormBindingData** object and obtain related information. @@ -48,16 +48,17 @@ Creates a **FormBindingData** object. **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility'; -import fileio from '@ohos.fileio'; -let context=featureAbility.getContext(); -context.getOrCreateLocalDir((err,data)=>{ - let path=data+"/xxx.jpg"; - let fd = fileio.openSync(path); +import formBindingData from @ohos.application.formBindingData; +import fs from '@ohos.file.fs'; + +try { + let fd = fs.openSync('/path/to/form.png') let obj = { "temperature": "21°", - "formImages": {"image": fd} + "formImages": { "image": fd } }; - let formBindingDataObj = formBindingData.createFormBindingData(obj); -}) + formBindingData.createFormBindingData(obj); +} catch (error.code) { + console.log('catch error, error:' + JSON.stringify(error)); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-application-formError.md b/en/application-dev/reference/apis/js-apis-application-formError.md index 7a9a6618cd..4ca6eecb8c 100644 --- a/en/application-dev/reference/apis/js-apis-application-formError.md +++ b/en/application-dev/reference/apis/js-apis-application-formError.md @@ -1,6 +1,6 @@ -# @ohos.application.formError +# @ohos.application.formError (formError) -The **FormError** module provides error codes for widgets. +The **formError** module provides error codes for widgets. > **NOTE** > @@ -50,5 +50,3 @@ SystemCapability.Ability.Form | ERR_FORM_DUPLICATE_ADDED | 31 | The widget has been added. | | ERR_IN_RECOVERY | 36 | Failed to overwrite the widget data. | | ERR_DISTRIBUTED_SCHEDULE_FAILED9+ | 37 | The distributed scheduler failed.
        **System API**: This is a system API. | - - \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-application-formExtension.md b/en/application-dev/reference/apis/js-apis-application-formExtension.md index a01e087109..fcde831bc2 100644 --- a/en/application-dev/reference/apis/js-apis-application-formExtension.md +++ b/en/application-dev/reference/apis/js-apis-application-formExtension.md @@ -1,4 +1,4 @@ -# @ohos.application.FormExtension +# @ohos.application.FormExtension (FormExtension) The **FormExtension** module provides APIs related to Form Extension abilities. diff --git a/en/application-dev/reference/apis/js-apis-application-formHost.md b/en/application-dev/reference/apis/js-apis-application-formHost.md index 8b44dbf345..11da810eff 100644 --- a/en/application-dev/reference/apis/js-apis-application-formHost.md +++ b/en/application-dev/reference/apis/js-apis-application-formHost.md @@ -1,11 +1,11 @@ -# @ohos.application.formHost +# @ohos.application.formHost (formHost) -The **FormHost** module provides APIs related to the widget host, which is an application that displays the widget content and controls the position where the widget is displayed. You can use the APIs to delete, release, and update widgets installed by the same user, and obtain widget information and status. +The **formHost** module provides APIs related to the widget host, which is an application that displays the widget content and controls the position where the widget is displayed. You can use the APIs to delete, release, and update widgets installed by the same user, and obtain widget information and status. > **NOTE** > > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> This module is deprecated since API version 9. You are advised to use [FormHost](js-apis-app-form-formHost.md) instead. +> This module is deprecated since API version 9. You are advised to use [formHost](js-apis-app-form-formHost.md) instead. > The APIs provided by this module are system APIs. ## Modules to Import @@ -34,10 +34,12 @@ Deletes a widget. After this API is called, the application can no longer use th **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.deleteForm(formId, (error, data) => { if (error.code) { - console.log('formHost deleteForm, error:' + JSON.stringify(error)); + console.error('formHost deleteForm, error:' + JSON.stringify(error)); } }); ``` @@ -67,11 +69,13 @@ Deletes a widget. After this API is called, the application can no longer use th **Parameters** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.deleteForm(formId).then(() => { console.log('formHost deleteForm success'); }).catch((error) => { - console.log('formHost deleteForm, error:' + JSON.stringify(error)); + console.error('formHost deleteForm, error:' + JSON.stringify(error)); }); ``` @@ -95,10 +99,14 @@ Releases a widget. After this API is called, the application can no longer use t **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.releaseForm(formId, (error, data) => { if (error.code) { - console.log('formHost releaseForm, error:' + JSON.stringify(error)); + console.error('formHost releaseForm, error:' + JSON.stringify(error)); + } else { + console.log('formHost releaseForm success'); } }); ``` @@ -124,10 +132,14 @@ Releases a widget. After this API is called, the application can no longer use t **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.releaseForm(formId, true, (error, data) => { if (error.code) { - console.log('formHost releaseForm, error:' + JSON.stringify(error)); + console.error('formHost releaseForm, error:' + JSON.stringify(error)); + } else { + console.log('formHost releaseForm success'); } }); ``` @@ -158,11 +170,13 @@ Releases a widget. After this API is called, the application can no longer use t **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.releaseForm(formId, true).then(() => { console.log('formHost releaseForm success'); }).catch((error) => { - console.log('formHost releaseForm, error:' + JSON.stringify(error)); + console.error('formHost releaseForm, error:' + JSON.stringify(error)); }); ``` @@ -186,10 +200,12 @@ Requests a widget update. This API uses an asynchronous callback to return the r **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.requestForm(formId, (error, data) => { if (error.code) { - console.log('formHost requestForm, error:' + JSON.stringify(error)); + console.error('formHost requestForm, error:' + JSON.stringify(error)); } }); ``` @@ -219,11 +235,13 @@ Requests a widget update. This API uses a promise to return the result. **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.requestForm(formId).then(() => { console.log('formHost requestForm success'); }).catch((error) => { - console.log('formHost requestForm, error:' + JSON.stringify(error)); + console.error('formHost requestForm, error:' + JSON.stringify(error)); }); ``` @@ -242,15 +260,17 @@ Converts a temporary widget to a normal one. This API uses an asynchronous callb | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is converted to a normal one, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is converted to a normal one, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.castTempForm(formId, (error, data) => { if (error.code) { - console.log('formHost castTempForm, error:' + JSON.stringify(error)); + console.error('formHost castTempForm, error:' + JSON.stringify(error)); } }); ``` @@ -280,11 +300,13 @@ Converts a temporary widget to a normal one. This API uses a promise to return t **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.castTempForm(formId).then(() => { console.log('formHost castTempForm success'); }).catch((error) => { - console.log('formHost castTempForm, error:' + JSON.stringify(error)); + console.error('formHost castTempForm, error:' + JSON.stringify(error)); }); ``` @@ -303,15 +325,17 @@ Instructs the widget framework to make a widget visible. After this API is calle | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs. | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget visible, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget visible, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.notifyVisibleForms(formId, (error, data) => { if (error.code) { - console.log('formHost notifyVisibleForms, error:' + JSON.stringify(error)); + console.error('formHost notifyVisibleForms, error:' + JSON.stringify(error)); } }); ``` @@ -341,11 +365,13 @@ Instructs the widget framework to make a widget visible. After this API is calle **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.notifyVisibleForms(formId).then(() => { console.log('formHost notifyVisibleForms success'); }).catch((error) => { - console.log('formHost notifyVisibleForms, error:' + JSON.stringify(error)); + console.error('formHost notifyVisibleForms, error:' + JSON.stringify(error)); }); ``` @@ -364,15 +390,17 @@ Instructs the widget framework to make a widget invisible. After this API is cal | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget invisible, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget invisible, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.notifyInvisibleForms(formId, (error, data) => { if (error.code) { - console.log('formHost notifyInvisibleForms, error:' + JSON.stringify(error)); + console.error('formHost notifyInvisibleForms, error:' + JSON.stringify(error)); } }); ``` @@ -402,11 +430,13 @@ Instructs the widget framework to make a widget invisible. After this API is cal **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.notifyInvisibleForms(formId).then(() => { console.log('formHost notifyInvisibleForms success'); }).catch((error) => { - console.log('formHost notifyInvisibleForms, error:' + JSON.stringify(error)); + console.error('formHost notifyInvisibleForms, error:' + JSON.stringify(error)); }); ``` @@ -425,15 +455,17 @@ Instructs the widget framework to make a widget updatable. After this API is cal | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs. | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget updatable, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget updatable, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.enableFormsUpdate(formId, (error, data) => { if (error.code) { - console.log('formHost enableFormsUpdate, error:' + JSON.stringify(error)); + console.error('formHost enableFormsUpdate, error:' + JSON.stringify(error)); } }); ``` @@ -463,11 +495,13 @@ Instructs the widget framework to make a widget updatable. After this API is cal **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.enableFormsUpdate(formId).then(() => { console.log('formHost enableFormsUpdate success'); }).catch((error) => { - console.log('formHost enableFormsUpdate, error:' + JSON.stringify(error)); + console.error('formHost enableFormsUpdate, error:' + JSON.stringify(error)); }); ``` @@ -486,15 +520,17 @@ Instructs the widget framework to make a widget not updatable. After this API is | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs. | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget not updatable, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If a notification is sent to the widget framework to make the widget not updatable, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.disableFormsUpdate(formId, (error, data) => { if (error.code) { - console.log('formHost disableFormsUpdate, error:' + JSON.stringify(error)); + console.error('formHost disableFormsUpdate, error:' + JSON.stringify(error)); } }); ``` @@ -524,11 +560,13 @@ Instructs the widget framework to make a widget not updatable. After this API is **Example** ```ts -var formId = ["12400633174999288"]; +import formHost from '@ohos.application.formHost'; + +let formId = ["12400633174999288"]; formHost.disableFormsUpdate(formId).then(() => { console.log('formHost disableFormsUpdate success'); }).catch((error) => { - console.log('formHost disableFormsUpdate, error:' + JSON.stringify(error)); + console.error('formHost disableFormsUpdate, error:' + JSON.stringify(error)); }); ``` @@ -544,15 +582,17 @@ Checks whether the system is ready. This API uses an asynchronous callback to re | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the check is successful, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the check is successful, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.isSystemReady((error, data) => { if (error.code) { - console.log('formHost isSystemReady, error:' + JSON.stringify(error)); + console.error('formHost isSystemReady, error:' + JSON.stringify(error)); } }); ``` @@ -574,11 +614,13 @@ Checks whether the system is ready. This API uses a promise to return the result **Example** ```ts -var formId = "12400633174999288"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; formHost.isSystemReady().then(() => { console.log('formHost isSystemReady success'); }).catch((error) => { - console.log('formHost isSystemReady, error:' + JSON.stringify(error)); + console.error('formHost isSystemReady, error:' + JSON.stringify(error)); }); ``` @@ -596,14 +638,16 @@ Obtains the widget information provided by all applications on the device. This | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| callback | AsyncCallback<Array<[FormInfo](js-apis-application-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **err** is undefined and **data** is the information obtained; otherwise, **err** is an error object.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-application-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **error** is undefined and **data** is the information obtained; otherwise, **error** is an error object.| **Example** ```ts +import formHost from '@ohos.application.formHost'; + formHost.getAllFormsInfo((error, data) => { if (error.code) { - console.log('formHost getAllFormsInfo, error:' + JSON.stringify(error)); + console.error('formHost getAllFormsInfo, error:' + JSON.stringify(error)); } else { console.log('formHost getAllFormsInfo, data:' + JSON.stringify(data)); } @@ -624,15 +668,17 @@ Obtains the widget information provided by all applications on the device. This | Type | Description | | :------------ | :---------------------------------- | -| Promise<Array<[FormInfo](js-apis-application-formInfo.md)>> | Promise used to return the information obtained.| +| Promise<Array<[formInfo.FormInfo](js-apis-application-formInfo.md)>> | Promise used to return the information obtained.| **Example** ```ts + import formHost from '@ohos.application.formHost'; + formHost.getAllFormsInfo().then((data) => { - console.log('formHost getAllFormsInfo data:' + JSON.stringify(data)); + console.log('formHost getAllFormsInfo data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost getAllFormsInfo, error:' + JSON.stringify(error)); + console.error('formHost getAllFormsInfo, error:' + JSON.stringify(error)); }); ``` @@ -650,15 +696,17 @@ Obtains the widget information provided by a given application on the device. Th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| bundleName | string | Yes| Bundle name of the application.| -| callback | AsyncCallback<Array<[FormInfo](js-apis-application-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **err** is undefined and **data** is the information obtained; otherwise, **err** is an error object.| +| bundleName | string | Yes| Bundle name of the application.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-application-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **error** is undefined and **data** is the information obtained; otherwise, **error** is an error object.| **Example** ```ts +import formHost from '@ohos.application.formHost'; + formHost.getFormsInfo("com.example.ohos.formjsdemo", (error, data) => { if (error.code) { - console.log('formHost getFormsInfo, error:' + JSON.stringify(error)); + console.error('formHost getFormsInfo, error:' + JSON.stringify(error)); } else { console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); } @@ -679,18 +727,20 @@ Obtains the widget information provided by a given application on the device. Th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| bundleName | string | Yes| Bundle name of the application.| +| bundleName | string | Yes| Bundle name of the application.| | moduleName | string | Yes| Module name.| -| callback | AsyncCallback<Array<[FormInfo](js-apis-application-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **err** is undefined and **data** is the information obtained; otherwise, **err** is an error object.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](js-apis-application-formInfo.md)>> | Yes| Callback used to return the result. If the widget information is obtained, **error** is undefined and **data** is the information obtained; otherwise, **error** is an error object.| **Example** ```ts +import formHost from '@ohos.application.formHost'; + formHost.getFormsInfo("com.example.ohos.formjsdemo", "entry", (error, data) => { if (error.code) { - console.log('formHost getFormsInfo, error:' + JSON.stringify(error)); + console.error('formHost getFormsInfo, error:' + JSON.stringify(error)); } else { - console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); + console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); } }); ``` @@ -709,22 +759,24 @@ Obtains the widget information provided by a given application on the device. Th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| bundleName | string | Yes| Bundle name of the application.| +| bundleName | string | Yes| Bundle name of the application.| | moduleName | string | No| Module name.| **Return value** | Type | Description | | :------------ | :---------------------------------- | -| Promise<Array<[FormInfo](js-apis-application-formInfo.md)>> | Promise used to return the information obtained.| +| Promise<Array<[formInfo.FormInfo](js-apis-application-formInfo.md)>> | Promise used to return the information obtained.| **Example** ```ts + import formHost from '@ohos.application.formHost'; + formHost.getFormsInfo("com.example.ohos.formjsdemo", "entry").then((data) => { console.log('formHost getFormsInfo, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost getFormsInfo, error:' + JSON.stringify(error)); + console.error('formHost getFormsInfo, error:' + JSON.stringify(error)); }); ``` @@ -743,15 +795,17 @@ Deletes invalid widgets from the list. This API uses an asynchronous callback to | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of valid widget IDs.| -| callback | AsyncCallback<number> | Yes| Callback used to return the result. If the invalid widgets are deleted, **err** is undefined and **data** is the number of widgets deleted; otherwise, **err** is an error object.| +| callback | AsyncCallback<number> | Yes| Callback used to return the result. If the invalid widgets are deleted, **error** is undefined and **data** is the number of widgets deleted; otherwise, **error** is an error object.| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.deleteInvalidForms(formIds, (error, data) => { if (error.code) { - console.log('formHost deleteInvalidForms, error:' + JSON.stringify(error)); + console.error('formHost deleteInvalidForms, error:' + JSON.stringify(error)); } else { console.log('formHost deleteInvalidForms, data:' + JSON.stringify(data)); } @@ -783,11 +837,13 @@ Deletes invalid widgets from the list. This API uses a promise to return the res **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.deleteInvalidForms(formIds).then((data) => { console.log('formHost deleteInvalidForms, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost deleteInvalidForms, error:' + JSON.stringify(error)); + console.error('formHost deleteInvalidForms, error:' + JSON.stringify(error)); }); ``` @@ -805,13 +861,15 @@ Obtains the widget state. This API uses an asynchronous callback to return the r | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| want | [Want](js-apis-application-want.md) | Yes | **Want** information carried to query the widget state.| -| callback | AsyncCallback<[FormStateInfo](js-apis-application-formInfo.md#formstateinfo)> | Yes| Callback used to return the result. If the widget state is obtained, **err** is undefined and **data** is the widget state obtained; otherwise, **err** is an error object.| +| want | [Want](js-apis-application-want.md) | Yes | **Want** information carried to query the widget state. The information must contain the bundle name, ability name, module name, widget name, and widget dimensions.| +| callback | AsyncCallback<[formInfo.FormStateInfo](js-apis-application-formInfo.md#formstateinfo)> | Yes| Callback used to return the result. If the widget state is obtained, **error** is undefined and **data** is the widget state obtained; otherwise, **error** is an error object.| **Example** ```ts -var want = { +import formHost from '@ohos.application.formHost'; + +let want = { "deviceId": "", "bundleName": "ohos.samples.FormApplication", "abilityName": "FormAbility", @@ -823,7 +881,7 @@ var want = { }; formHost.acquireFormState(want, (error, data) => { if (error.code) { - console.log('formHost acquireFormState, error:' + JSON.stringify(error)); + console.error('formHost acquireFormState, error:' + JSON.stringify(error)); } else { console.log('formHost acquireFormState, data:' + JSON.stringify(data)); } @@ -855,7 +913,9 @@ Obtains the widget state. This API uses a promise to return the result. **Example** ```ts -var want = { +import formHost from '@ohos.application.formHost'; + +let want = { "deviceId": "", "bundleName": "ohos.samples.FormApplication", "abilityName": "FormAbility", @@ -868,7 +928,7 @@ var want = { formHost.acquireFormState(want).then((data) => { console.log('formHost acquireFormState, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formHost acquireFormState, error:' + JSON.stringify(error)); + console.error('formHost acquireFormState, error:' + JSON.stringify(error)); }); ``` @@ -890,6 +950,8 @@ Subscribes to widget uninstall events. This API uses an asynchronous callback to **Example** ```ts +import formHost from '@ohos.application.formHost'; + let callback = function(formId) { console.log('formHost on formUninstall, formId:' + formId); } @@ -909,11 +971,13 @@ Unsubscribes from widget uninstall events. This API uses an asynchronous callbac | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | type | string | Yes | Event type. The value **formUninstall** indicates a widget uninstallation event.| -| callback | Callback<string> | No| Callback used to return the widget ID. If it is left unspecified, it indicates the callback for all the events that have been subscribed.| +| callback | Callback<string> | No| Callback used to return the widget ID. If it is left unspecified, it indicates the callback for all the events that have been subscribed.
        The value must be the same as that in **on("formUninstall")**.| **Example** ```ts +import formHost from '@ohos.application.formHost'; + let callback = function(formId) { console.log('formHost on formUninstall, formId:' + formId); } @@ -936,15 +1000,17 @@ Instructs the widgets to make themselves visible. This API uses an asynchronous | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs.| | isVisible | boolean | Yes | Whether to make the widgets visible.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.notifyFormsVisible(formIds, true, (error, data) => { if (error.code) { - console.log('formHost notifyFormsVisible, error:' + JSON.stringify(error)); + console.error('formHost notifyFormsVisible, error:' + JSON.stringify(error)); } }); ``` @@ -975,11 +1041,13 @@ Instructs the widgets to make themselves visible. This API uses a promise to ret **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.notifyFormsVisible(formIds, true).then(() => { console.log('formHost notifyFormsVisible success'); }).catch((error) => { - console.log('formHost notifyFormsVisible, error:' + JSON.stringify(error)); + console.error('formHost notifyFormsVisible, error:' + JSON.stringify(error)); }); ``` @@ -999,15 +1067,17 @@ Instructs the widgets to enable or disable updates. This API uses an asynchronou | ------ | ------ | ---- | ------- | | formIds | Array<string> | Yes | List of widget IDs.| | isEnableUpdate | boolean | Yes | Whether to make the widgets updatable.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the notification is sent, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.notifyFormsEnableUpdate(formIds, true, (error, data) => { if (error.code) { - console.log('formHost notifyFormsEnableUpdate, error:' + JSON.stringify(error)); + console.error('formHost notifyFormsEnableUpdate, error:' + JSON.stringify(error)); } }); ``` @@ -1038,11 +1108,13 @@ Instructs the widgets to enable or disable updates. This API uses a promise to r **Example** ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.notifyFormsEnableUpdate(formIds, true).then(() => { console.log('formHost notifyFormsEnableUpdate success'); }).catch((error) => { - console.log('formHost notifyFormsEnableUpdate, error:' + JSON.stringify(error)); + console.error('formHost notifyFormsEnableUpdate, error:' + JSON.stringify(error)); }); ``` ## shareForm9+ @@ -1051,7 +1123,7 @@ shareForm(formId: string, deviceId: string, callback: AsyncCallback<void>) Shares a specified widget with a remote device. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.REQUIRE_FORM +**Required permissions**: ohos.permission.REQUIRE_FORM and ohos.permission.DISTRIBUTED_DATASYNC **System capability**: SystemCapability.Ability.Form @@ -1061,16 +1133,18 @@ Shares a specified widget with a remote device. This API uses an asynchronous ca | ------ | ------ | ---- | ------- | | formId | string | Yes | Widget ID.| | deviceId | string | Yes | Remote device ID.| -| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is shared, **err** is undefined; otherwise, **err** is an error object.| +| callback | AsyncCallback<void> | Yes| Callback used to return the result. If the widget is shared, **error** is undefined; otherwise, **error** is an error object.| **Example** ```ts -var formId = "12400633174999288"; -var deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; +let deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; formHost.shareForm(formId, deviceId, (error, data) => { if (error.code) { - console.log('formHost shareForm, error:' + JSON.stringify(error)); + console.error('formHost shareForm, error:' + JSON.stringify(error)); } }); ``` @@ -1101,18 +1175,22 @@ Shares a specified widget with a remote device. This API uses a promise to retur **Parameters** ```ts -var formId = "12400633174999288"; -var deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; +import formHost from '@ohos.application.formHost'; + +let formId = "12400633174999288"; +let deviceId = "EFC11C0C53628D8CC2F8CB5052477E130D075917034613B9884C55CD22B3DEF2"; formHost.shareForm(formId, deviceId).then(() => { console.log('formHost shareForm success'); }).catch((error) => { - console.log('formHost shareForm, error:' + JSON.stringify(error)); + console.error('formHost shareForm, error:' + JSON.stringify(error)); }); ``` ## notifyFormsPrivacyProtected9+ -notifyFormsPrivacyProtected(formIds: Array\, isProtected: boolean, callback: AsyncCallback\): void +notifyFormsPrivacyProtected(formIds: Array<string>, isProtected: boolean, callback: AsyncCallback<void>): void + +Notifies that the privacy protection status of the specified widgets changes. This API uses an asynchronous callback to return the result. **Required permissions**: ohos.permission.REQUIRE_FORM @@ -1126,10 +1204,51 @@ notifyFormsPrivacyProtected(formIds: Array\, isProtected: boolean, callb | deviceId | string | Yes | Remote device ID.| ```ts -var formIds = new Array("12400633174999288", "12400633174999289"); +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); formHost.notifyFormsPrivacyProtected(formIds, true).then(() => { console.log('formHost shareForm success'); }).catch((error) => { - console.log('formHost shareForm, error:' + JSON.stringify(error)); + console.error('formHost shareForm, error:' + JSON.stringify(error)); }); ``` + +## notifyFormsPrivacyProtected + +function notifyFormsPrivacyProtected(formIds: Array<string>, isProtected: boolean): Promise<void>; + +Notifies that the privacy protection status of the specified widgets changes. This API uses a promise to return the result. + +**Required permissions**: ohos.permission.REQUIRE_FORM + +**System capability**: SystemCapability.Ability.Form + +**Parameters** + +| Name | Type | Mandatory| Description | +| ----------- | --------------- | ---- | -------------------------------- | +| formIds | Array<string> | Yes | ID of the widgets.| +| isProtected | boolean | Yes | Whether privacy protection is enabled. | + +**Return value** + +| Type | Description | +| ------------------- | ------------------------- | +| Promise<void> | Promise that returns no value.| + + +```ts +import formHost from '@ohos.application.formHost'; + +let formIds = new Array("12400633174999288", "12400633174999289"); +try { + formHost.notifyFormsPrivacyProtected(formIds, true).then(() => { + console.log('formHost notifyFormsPrivacyProtected success'); + }).catch((error) => { + console.log('formHost notifyFormsPrivacyProtected, error:' + JSON.stringify(error)); + }); +} catch(error) { + console.log('formHost notifyFormsPrivacyProtected, error:' + JSON.stringify(error)); +} +``` diff --git a/en/application-dev/reference/apis/js-apis-application-formInfo.md b/en/application-dev/reference/apis/js-apis-application-formInfo.md index de5bd8f6b2..df591cea22 100644 --- a/en/application-dev/reference/apis/js-apis-application-formInfo.md +++ b/en/application-dev/reference/apis/js-apis-application-formInfo.md @@ -1,11 +1,11 @@ -# @ohos.application.formInfo +# @ohos.application.formInfo (formInfo) -The **FormInfo** module provides widget information and state. +The **formInfo** module provides types and enums related to the widget information and state. > **NOTE** > > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> This module is deprecated since API version 9. You are advised to use [FormInfo](js-apis-app-form-formInfo.md) instead. +> This module is deprecated since API version 9. You are advised to use [formInfo](js-apis-app-form-formInfo.md) instead. ## Modules to Import @@ -21,9 +21,9 @@ Describes widget information. | Name | Type | Readable | Writable | Description | | ----------- | -------- |-------- | -------------------- | ------------------------------------------------------------ | -| bundleName | string | Yes | No | Name of the bundle to which the widget belongs. | +| bundleName | string | Yes | No | Name of the bundle to which the widget belongs. | | moduleName | string | Yes | No | Name of the module to which the widget belongs. | -| abilityName | string | Yes | No | Name of the ability to which the widget belongs. | +| abilityName | string | Yes | No | Name of the ability to which the widget belongs. | | name | string | Yes | No | Widget name. | | description | string | Yes | No | Description of the widget. | | type | [FormType](#formtype) | Yes | No | Type of the widget. Currently, only JS widgets are supported.| @@ -31,11 +31,11 @@ Describes widget information. | colorMode | [ColorMode](#colormode) | Yes | No | Color mode of the widget. | | isDefault | boolean | Yes | No | Whether the widget is the default one. | | updateEnabled | boolean | Yes | No | Whether the widget is updatable. | -| formVisibleNotify | string | Yes | No | Whether to send a notification when the widget is visible. | -| relatedBundleName | string | Yes | No | Name of the associated bundle to which the widget belongs. | +| formVisibleNotify | boolean | Yes | No | Whether to send a notification when the widget is visible. | +| relatedBundleName | string | Yes | No | Name of the associated bundle to which the widget belongs. | | scheduledUpdateTime | string | Yes | No | Time when the widget was updated. | | formConfigAbility | string | Yes | No | Configuration ability of the widget. | -| updateDuration | string | Yes | No | Update period of the widget.| +| updateDuration | number | Yes | No | Update period of the widget.| | defaultDimension | number | Yes | No | Default dimension of the widget. | | supportDimensions | Array<number> | Yes | No | Dimensions supported by the widget. | | customizeData | {[key: string]: [value: string]} | Yes | No | Custom data of the widget. | @@ -102,7 +102,7 @@ Enumerates the widget parameters. | HEIGHT_KEY | "ohos.extra.param.key.form_height" | Widget height. | | TEMPORARY_KEY | "ohos.extra.param.key.form_temporary" | Temporary widget. | | ABILITY_NAME_KEY9+ | "ohos.extra.param.key.ability_name" | Ability name. | -| DEVICE_ID_KEY9+ | "ohos.extra.param.key.device_id" | Device ID.
        **System API**: This is a system API. | +| DEVICE_ID_KEY9+ | "ohos.extra.param.key.device_id" | Device ID. | | BUNDLE_NAME_KEY9+ | "ohos.extra.param.key.bundle_name" | Key that specifies the target bundle name.| ## FormDimension9+ @@ -117,18 +117,7 @@ Enumerates the widget dimensions. | Dimension_2_2 9+ | 2 | 2 x 2. | | Dimension_2_4 9+ | 3 | 2 x 4. | | Dimension_4_4 9+ | 4 | 4 x 4. | -| Dimension_2_1 9+ | 5 | 2 x 1. | - -## VisibilityType - -Enumerates the visibility types of the widget. - -**System capability**: SystemCapability.Ability.Form - -| Name | Value | Description | -| ----------- | ---- | ------------ | -| FORM_VISIBLE9+ | 1 | The card is visible. | -| FORM_INVISIBLE9+ | 2 | The card is invisible.| +| Dimension_2_1 9+ | 5 | 2 x 1. | ## FormInfoFilter9+ @@ -138,7 +127,7 @@ Defines the widget information filter. Only the widget information that meets th | Name | Description | | ----------- | ------------ | -| moduleName9+ | Only the information about the widget whose **moduleName** is the same as the provided value is returned.| +| moduleName9+ | Optional. Only the information about the widget whose **moduleName** is the same as the provided value is returned.
        If this parameter is not set, **moduleName** is not used for filtering.| ## VisibilityType9+ diff --git a/en/application-dev/reference/apis/js-apis-application-formProvider.md b/en/application-dev/reference/apis/js-apis-application-formProvider.md index 05318bda39..4d604ff729 100644 --- a/en/application-dev/reference/apis/js-apis-application-formProvider.md +++ b/en/application-dev/reference/apis/js-apis-application-formProvider.md @@ -1,10 +1,10 @@ -# @ohos.application.formProvider +# @ohos.application.formProvider (formProvider) The **FormProvider** module provides APIs related to the widget provider. You can use the APIs to update a widget, set the next refresh time for a widget, obtain widget information, and request a widget release. > **NOTE** > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> This module is deprecated since API version 9. You are advised to use [FormProvider](js-apis-app-form-formProvider.md) instead. +> This module is deprecated since API version 9. You are advised to use [formProvider](js-apis-app-form-formProvider.md) instead. ## Modules to Import @@ -31,11 +31,13 @@ Sets the next refresh time for a widget. This API uses an asynchronous callback **Example** ```ts - var formId = "12400633174999288"; + import formProvider from '@ohos.app.form.formProvider'; + + let formId = "12400633174999288"; formProvider.setFormNextRefreshTime(formId, 5, (error, data) => { - if (error.code) { - console.log('formProvider setFormNextRefreshTime, error:' + JSON.stringify(error)); - } + if (error.code) { + console.log('formProvider setFormNextRefreshTime, error:' + JSON.stringify(error)); + } }); ``` @@ -63,11 +65,13 @@ Sets the next refresh time for a widget. This API uses a promise to return the r **Example** ```ts - var formId = "12400633174999288"; + import formProvider from '@ohos.app.form.formProvider'; + + let formId = "12400633174999288"; formProvider.setFormNextRefreshTime(formId, 5).then(() => { - console.log('formProvider setFormNextRefreshTime success'); + console.log('formProvider setFormNextRefreshTime success'); }).catch((error) => { - console.log('formProvider setFormNextRefreshTime, error:' + JSON.stringify(error)); + console.log('formProvider setFormNextRefreshTime, error:' + JSON.stringify(error)); }); ``` @@ -84,19 +88,21 @@ Updates a widget. This API uses an asynchronous callback to return the result. | Name| Type | Mandatory| Description | | ------ | ---------------------------------------------------------------------- | ---- | ---------------- | | formId | string | Yes | ID of the widget to update.| - | formBindingData.FormBindingData | [FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | Yes | Data to be used for the update. | + | formBindingData | [formBindingData.FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | Yes | Data to be used for the update. | | callback | AsyncCallback<void> | Yes| Callback used to return the result.| **Example** ```ts import formBindingData from '@ohos.application.formBindingData'; - var formId = "12400633174999288"; + import formProvider from '@ohos.app.form.formProvider'; + + let formId = "12400633174999288"; let obj = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); formProvider.updateForm(formId, obj, (error, data) => { - if (error.code) { - console.log('formProvider updateForm, error:' + JSON.stringify(error)); - } + if (error.code) { + console.log('formProvider updateForm, error:' + JSON.stringify(error)); + } }); ``` @@ -113,7 +119,7 @@ Updates a widget. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ------ | ---------------------------------------------------------------------- | ---- | ---------------- | | formId | string | Yes | ID of the widget to update.| - | formBindingData.FormBindingData | [FormBindingData](js-apis-application-formBindingData.md#formbindingdat) | Yes | Data to be used for the update. | + | formBindingData | [formBindingData.FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | Yes | Data to be used for the update. | **Return value** @@ -125,12 +131,14 @@ Updates a widget. This API uses a promise to return the result. ```ts import formBindingData from '@ohos.application.formBindingData'; - var formId = "12400633174999288"; + import formProvider from '@ohos.app.form.formProvider'; + + let formId = "12400633174999288"; let obj = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); formProvider.updateForm(formId, obj).then(() => { - console.log('formProvider updateForm success'); + console.log('formProvider updateForm success'); }).catch((error) => { - console.log('formProvider updateForm, error:' + JSON.stringify(error)); + console.log('formProvider updateForm, error:' + JSON.stringify(error)); }); ``` @@ -146,17 +154,19 @@ Obtains the application's widget information on the device. This API uses an asy | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | -| callback | AsyncCallback<Array<[FormInfo](./js-apis-application-formInfo.md#forminfo-1)>> | Yes| Callback used to return the information obtained.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](./js-apis-application-formInfo.md#forminfo-1)>> | Yes| Callback used to return the information obtained.| **Example** ```ts +import formProvider from '@ohos.app.form.formProvider'; + formProvider.getFormsInfo((error, data) => { - if (error.code) { - console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); - } else { - console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); - } + if (error.code) { + console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); + } else { + console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); + } }); ``` ## getFormsInfo9+ @@ -172,22 +182,24 @@ Obtains the application's widget information that meets a filter criterion on th | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ------- | | filter | [formInfo.FormInfoFilter](./js-apis-application-formInfo.md#forminfofilter) | Yes| Filter criterion.| -| callback | AsyncCallback<Array<[FormInfo](./js-apis-application-formInfo.md#forminfo-1)>> | Yes| Callback used to return the information obtained.| +| callback | AsyncCallback<Array<[formInfo.FormInfo](./js-apis-application-formInfo.md#forminfo-1)>> | Yes| Callback used to return the information obtained.| **Example** ```ts import formInfo from '@ohos.application.formInfo'; +import formProvider from '@ohos.app.form.formProvider'; + const filter : formInfo.FormInfoFilter = { - // get info of forms belong to module entry. - moduleName : "entry" + // get info of forms belong to module entry. + moduleName : "entry" }; formProvider.getFormsInfo(filter, (error, data) => { - if (error.code) { - console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); - } else { - console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); - } + if (error.code) { + console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); + } else { + console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); + } }); ``` @@ -209,20 +221,22 @@ Obtains the application's widget information on the device. This API uses a prom | Type | Description | | :------------ | :---------------------------------- | -| Promise<Array<[FormInfo](./js-apis-application-formInfo.md#forminfo-1)>> | Promise used to return the information obtained.| +| Promise<Array<[formInfo.FormInfo](./js-apis-application-formInfo.md#forminfo-1)>> | Promise used to return the information obtained.| **Example** ```ts import formInfo from '@ohos.application.formInfo'; +import formProvider from '@ohos.app.form.formProvider'; + const filter : formInfo.FormInfoFilter = { - // get info of forms belong to module entry. - moduleName : "entry" + // get info of forms belong to module entry. + moduleName : "entry" }; formProvider.getFormsInfo(filter).then((data) => { - console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); + console.log('formProvider getFormsInfo, data:' + JSON.stringify(data)); }).catch((error) => { - console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); + console.log('formProvider getFormsInfo, error:' + JSON.stringify(error)); }); ``` @@ -241,28 +255,29 @@ Requests to publish a widget carrying data to the widget host. This API uses an | Name| Type | Mandatory| Description | | ------ | ---------------------------------------------------------------------- | ---- | ---------------- | | want | [Want](js-apis-application-want.md) | Yes | Request used for publishing. The following fields must be included:
        Information about the target widget.
        **abilityName**: ability of the target widget.
        **parameters**:
        "ohos.extra.param.key.form_dimension"
        "ohos.extra.param.key.form_name"
        "ohos.extra.param.key.module_name" | -| formBindingData.FormBindingData | [FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | Yes | Data used for creating the widget.| +| formBindingData | [formBindingData.FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | Yes | Data used for creating the widget.| | callback | AsyncCallback<string> | Yes| Callback used to return the widget ID.| **Example** ```ts import formBindingData from '@ohos.application.formBindingData'; - var want = { - abilityName: "FormAbility", - parameters: { - "ohos.extra.param.key.form_dimension": 2, - "ohos.extra.param.key.form_name": "widget", - "ohos.extra.param.key.module_name": "entry" - } + import formProvider from '@ohos.app.form.formProvider'; + let want = { + abilityName: "FormAbility", + parameters: { + "ohos.extra.param.key.form_dimension": 2, + "ohos.extra.param.key.form_name": "widget", + "ohos.extra.param.key.module_name": "entry" + } }; let obj = formBindingData.createFormBindingData({temperature:"22c", time:"22:00"}); formProvider.requestPublishForm(want, obj, (error, data) => { - if (error.code) { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); - } else { - console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); - } + if (error.code) { + console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + } else { + console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); + } }); ``` @@ -286,20 +301,22 @@ Requests to publish a widget to the widget host. This API uses an asynchronous c **Example** ```ts - var want = { - abilityName: "FormAbility", - parameters: { - "ohos.extra.param.key.form_dimension": 2, - "ohos.extra.param.key.form_name": "widget", - "ohos.extra.param.key.module_name": "entry" - } + import formProvider from '@ohos.app.form.formProvider'; + + let want = { + abilityName: "FormAbility", + parameters: { + "ohos.extra.param.key.form_dimension": 2, + "ohos.extra.param.key.form_name": "widget", + "ohos.extra.param.key.module_name": "entry" + } }; formProvider.requestPublishForm(want, (error, data) => { - if (error.code) { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); - } else { - console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); - } + if (error.code) { + console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + } else { + console.log('formProvider requestPublishForm, form ID is: ' + JSON.stringify(data)); + } }); ``` @@ -318,7 +335,7 @@ Requests to publish a widget to the widget host. This API uses a promise to retu | Name | Type | Mandatory| Description | | --------------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | | want | [Want](js-apis-application-want.md) | Yes | Request used for publishing. The following fields must be included:
        Information about the target widget.
        **abilityName**: ability of the target widget.
        **parameters**:
        "ohos.extra.param.key.form_dimension"
        "ohos.extra.param.key.form_name"
        "ohos.extra.param.key.module_name" | -| formBindingData.FormBindingData | [FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | No | Data used for creating the widget. | +| formBindingData | [formBindingData.FormBindingData](js-apis-application-formBindingData.md#formbindingdata) | Yes | Data used for creating the widget.| **Return value** @@ -329,18 +346,20 @@ Requests to publish a widget to the widget host. This API uses a promise to retu **Example** ```ts - var want = { - abilityName: "FormAbility", - parameters: { - "ohos.extra.param.key.form_dimension": 2, - "ohos.extra.param.key.form_name": "widget", - "ohos.extra.param.key.module_name": "entry" - } + import formProvider from '@ohos.app.form.formProvider'; + + let want = { + abilityName: "FormAbility", + parameters: { + "ohos.extra.param.key.form_dimension": 2, + "ohos.extra.param.key.form_name": "widget", + "ohos.extra.param.key.module_name": "entry" + } }; formProvider.requestPublishForm(want).then((data) => { - console.log('formProvider requestPublishForm success, form ID is :' + JSON.stringify(data)); + console.log('formProvider requestPublishForm success, form ID is :' + JSON.stringify(data)); }).catch((error) => { - console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); + console.log('formProvider requestPublishForm, error: ' + JSON.stringify(error)); }); ``` @@ -368,13 +387,13 @@ formProvider.isRequestPublishFormSupported((error, isSupported) => { console.log('formProvider isRequestPublishFormSupported, error:' + JSON.stringify(error)); } else { if (isSupported) { - var want = { - abilityName: "FormAbility", - parameters: { - "ohos.extra.param.key.form_dimension": 2, - "ohos.extra.param.key.form_name": "widget", - "ohos.extra.param.key.module_name": "entry" - } + let want = { + abilityName: "FormAbility", + parameters: { + "ohos.extra.param.key.form_dimension": 2, + "ohos.extra.param.key.form_name": "widget", + "ohos.extra.param.key.module_name": "entry" + } }; formProvider.requestPublishForm(want, (error, data) => { if (error.code) { @@ -409,13 +428,13 @@ Checks whether a widget can be published to the widget host. This API uses a pro ```ts formProvider.isRequestPublishFormSupported().then((isSupported) => { if (isSupported) { - var want = { - abilityName: "FormAbility", - parameters: { + let want = { + abilityName: "FormAbility", + parameters: { "ohos.extra.param.key.form_dimension": 2, "ohos.extra.param.key.form_name": "widget", "ohos.extra.param.key.module_name": "entry" - } + } }; formProvider.requestPublishForm(want).then((data) => { console.log('formProvider requestPublishForm success, form ID is :' + JSON.stringify(data)); diff --git a/en/application-dev/reference/apis/js-apis-application-missionManager.md b/en/application-dev/reference/apis/js-apis-application-missionManager.md index c30dda422d..17de66e193 100644 --- a/en/application-dev/reference/apis/js-apis-application-missionManager.md +++ b/en/application-dev/reference/apis/js-apis-application-missionManager.md @@ -1,10 +1,10 @@ -# @ohos.application.missionManager +# @ohos.application.missionManager (missionManager) The **missionManager** module provides APIs to lock, unlock, and clear missions, and switch a mission to the foreground. > **NOTE** > -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 8 and deprecated since API version 9. You are advised to use [@ohos.app.ability.missionManager](js-apis-app-ability-missionManager.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import @@ -32,13 +32,13 @@ Registers a listener to observe the mission status. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | listener | [MissionListener](js-apis-inner-application-missionListener.md) | Yes| Listener to register.| + | listener | [MissionListener](js-apis-inner-application-missionListener.md) | Yes| Mission status listener to register.| **Return value** | Type| Description| | -------- | -------- | - | number | Returns the unique index of the mission status listener, which is created by the system and allocated when the listener is registered.| + | number | Index of the mission status listener, which is created by the system and allocated when the listener is registered.| **Example** @@ -73,7 +73,7 @@ Deregisters a mission status listener. This API uses an asynchronous callback to | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | listenerId | number | Yes| Unique index of the mission status listener to unregister. It is returned by **registerMissionListener**.| + | listenerId | number | Yes| Index of the mission status listener to deregister. It is returned by **registerMissionListener()**.| | callback | AsyncCallback<void> | Yes| Callback used to return the result.| **Example** @@ -113,7 +113,7 @@ Deregisters a mission status listener. This API uses a promise to return the res | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | - | listenerId | number | Yes| Unique index of the mission status listener to unregister. It is returned by **registerMissionListener**.| + | listenerId | number | Yes| Index of the mission status listener to deregister. It is returned by **registerMissionListener()**.| **Return value** @@ -169,7 +169,12 @@ Obtains the information about a given mission. This API uses an asynchronous cal var allMissions=missionManager.getMissionInfos("",10).catch(function(err){console.log(err);}); missionManager.getMissionInfo("", allMissions[0].missionId, (error, mission) => { - console.log("getMissionInfo is called, error.code = " + error.code) + if (error.code) { + console.log("getMissionInfo failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } + console.log("mission.missionId = " + mission.missionId); console.log("mission.runningState = " + mission.runningState); console.log("mission.lockedState = " + mission.lockedState); @@ -242,7 +247,11 @@ Obtains information about all missions. This API uses an asynchronous callback t import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); }) @@ -311,14 +320,22 @@ Obtains the snapshot of a given mission. This API uses an asynchronous callback import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; missionManager.getMissionSnapShot("", id, (error, snapshot) => { - console.log("getMissionSnapShot is called, error.code = " + error.code); - console.log("bundleName = " + snapshot.ability.bundleName); + if (error.code) { + console.log("getMissionSnapShot failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } + console.log("bundleName = " + snapshot.ability.bundleName); }) }) ``` @@ -393,14 +410,22 @@ Obtains the low-resolution snapshot of a given mission. This API uses an asynchr import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; missionManager.getLowResolutionMissionSnapShot("", id, (error, snapshot) => { - console.log("getLowResolutionMissionSnapShot is called, error.code = " + error.code); - console.log("bundleName = " + snapshot.ability.bundleName); + if (error.code) { + console.log("getLowResolutionMissionSnapShot failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } + console.log("bundleName = " + snapshot.ability.bundleName); }) }) ``` @@ -475,7 +500,11 @@ Locks a given mission. This API uses an asynchronous callback to return the resu import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; @@ -554,7 +583,11 @@ Unlocks a given mission. This API uses an asynchronous callback to return the re import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; @@ -637,7 +670,11 @@ Clears a given mission, regardless of whether it is locked. This API uses an asy import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; @@ -768,7 +805,11 @@ Switches a given mission to the foreground. This API uses an asynchronous callba import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; @@ -806,7 +847,11 @@ Switches a given mission to the foreground, with the startup parameters for the import missionManager from '@ohos.application.missionManager' missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } console.log("size = " + missions.length); console.log("missions = " + JSON.stringify(missions)); var id = missions[0].missionId; diff --git a/en/application-dev/reference/apis/js-apis-application-serviceExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-serviceExtensionAbility.md index ba59d9a6ea..beb8c007b0 100644 --- a/en/application-dev/reference/apis/js-apis-application-serviceExtensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-application-serviceExtensionAbility.md @@ -1,10 +1,13 @@ -# @ohos.application.ServiceExtensionAbility +# @ohos.application.ServiceExtensionAbility (ServiceExtensionAbility) The **ServiceExtensionAbility** module provides APIs for Service Extension abilities. > **NOTE** -> -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.ServiceExtensionAbility](js-apis-app-ability-serviceExtensionAbility.md) instead. +> +> Newly added APIs will be marked with a superscript to indicate their earliest API version. +> > The APIs of this module can be used only in the stage model. ## Modules to Import @@ -23,9 +26,9 @@ None. **System API**: This is a system API and cannot be called by third-party applications. -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md) | Yes| No| Service Extension context, which is inherited from **ExtensionContext**.| +| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md) | Yes| No| Service Extension context, which is inherited from **ExtensionContext**.| ## ServiceExtensionAbility.onCreate @@ -40,9 +43,9 @@ Called when a Service Extension ability is created to initialize the service log **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| **Example** @@ -88,10 +91,10 @@ Called after **onCreate** is invoked when a Service Extension ability is started **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| - | startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.| **Example** @@ -116,15 +119,15 @@ Called after **onCreate** is invoked when a Service Extension ability is started **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| **Return value** - | Type| Description| - | -------- | -------- | - | rpc.RemoteObject | A **RemoteObject** object used for communication with the client.| +| Type| Description| +| -------- | -------- | +| rpc.RemoteObject | A **RemoteObject** object used for communication with the client.| **Example** @@ -158,9 +161,9 @@ Called when this Service Extension ability is disconnected. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want |[Want](js-apis-application-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want |[Want](js-apis-application-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| **Example** @@ -184,9 +187,9 @@ Called when this Service Extension ability is reconnected. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want |[Want](js-apis-application-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want |[Want](js-apis-application-want.md)| Yes| Want information related to this Service Extension ability, including the ability name and bundle name.| **Example** @@ -210,9 +213,9 @@ Called when the configuration of this Service Extension ability is updated. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | config | [Configuration](js-apis-application-configuration.md) | Yes| New configuration.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| config | [Configuration](js-apis-application-configuration.md) | Yes| New configuration.| **Example** @@ -236,9 +239,9 @@ Dumps the client information. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | params | Array\ | Yes| Parameters in the form of a command.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| params | Array\ | Yes| Parameters in the form of a command.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-application-startOptions.md b/en/application-dev/reference/apis/js-apis-application-startOptions.md index 40ad2a5163..7634b27649 100644 --- a/en/application-dev/reference/apis/js-apis-application-startOptions.md +++ b/en/application-dev/reference/apis/js-apis-application-startOptions.md @@ -1,10 +1,10 @@ -# @ohos.application.StartOptions +# @ohos.application.StartOptions (StartOptions) The **StartOptions** module implements ability startup options. > **NOTE** > -> The APIs of this module are supported and deprecated since API version 9. You are advised to use [@ohos.app.ability.StartOptions](js-apis-app-ability-startOptions.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use [@ohos.app.ability.StartOptions](js-apis-app-ability-startOptions.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The APIs of this module can be used only in the stage model. ## Modules to Import diff --git a/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md index b9086a6ce6..5fc9b09999 100644 --- a/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-application-staticSubscriberExtensionAbility.md @@ -1,10 +1,11 @@ -# @ohos.application.StaticSubscriberExtensionAbility +# @ohos.application.StaticSubscriberExtensionAbility (StaticSubscriberExtensionAbility) The **StaticSubscriberExtensionAbility** module provides Extension abilities for static subscribers. > **NOTE** -> +> > The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> > The APIs of this module can be used only in the stage model. ## Modules to Import @@ -26,9 +27,10 @@ Callback of the common event of a static subscriber. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| event | [CommonEventData](js-apis-commonEvent.md#commoneventdata) | Yes| Common event of a static subscriber.| +| event | [CommonEventData](js-apis-commonEventManager.md#commoneventdata) | Yes| Common event of a static subscriber.| -**Example** +**Example** + ```ts var StaticSubscriberExtensionAbility = requireNapi("application.StaticSubscriberExtensionAbility") { diff --git a/en/application-dev/reference/apis/js-apis-application-testRunner.md b/en/application-dev/reference/apis/js-apis-application-testRunner.md index 688774a0d4..d2146524c0 100644 --- a/en/application-dev/reference/apis/js-apis-application-testRunner.md +++ b/en/application-dev/reference/apis/js-apis-application-testRunner.md @@ -1,4 +1,4 @@ -# @ohos.application.testRunner +# @ohos.application.testRunner (TestRunner) The **TestRunner** module provides a test framework. You can use the APIs of this module to prepare the unit test environment and run test cases. diff --git a/en/application-dev/reference/apis/js-apis-application-want.md b/en/application-dev/reference/apis/js-apis-application-want.md index 620885945b..44cc01a00c 100644 --- a/en/application-dev/reference/apis/js-apis-application-want.md +++ b/en/application-dev/reference/apis/js-apis-application-want.md @@ -1,10 +1,10 @@ -# @ohos.application.Want +# @ohos.application.Want (Want) -Want is a carrier for information transfer between objects (application components). Want can be used as a parameter of **startAbility** to specify a startup target and information that needs to be carried during startup, for example, **bundleName** and **abilityName**, which respectively indicate the bundle name of the target ability and the ability name in the bundle. When ability A needs to start ability B and transfer some data to ability B, it can use Want a carrier to transfer the data. +Want is a carrier for information transfer between objects (application components). Want can be used as a parameter of **startAbility()** to specify a startup target and information that needs to be carried during startup, for example, **bundleName** and **abilityName**, which respectively indicate the bundle name of the target ability and the ability name in the bundle. When ability A needs to start ability B and transfer some data to ability B, it can use Want a carrier to transfer the data. > **NOTE** > -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module are supported since API version 8 and deprecated since API version 9. You are advised to use [Want](js-apis-app-ability-want.md) instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## Modules to Import @@ -18,26 +18,26 @@ import Want from '@ohos.application.Want'; | Name | Type | Mandatory| Description | | ----------- | -------------------- | ---- | ------------------------------------------------------------ | -| deviceId | string | No | ID of the device running the ability. | -| bundleName | string | No | Bundle name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability.| +| deviceId | string | No | ID of the device running the ability. If this field is unspecified, the local device is used. | +| bundleName | string | No | Bundle name.| | abilityName | string | No | Name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability. The value of **abilityName** must be unique in an application.| | uri | string | No | URI information to match. If **uri** is specified in a **Want** object, the **Want** object will match the specified URI information, including **scheme**, **schemeSpecificPart**, **authority**, and **path**.| | type | string | No | MIME type, that is, the type of the file to open, for example, **text/xml** and **image/***. For details about the MIME type definition, see https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com. | | flags | number | No | How the **Want** object will be handled. By default, numbers are passed in. For details, see [flags](js-apis-ability-wantConstant.md#wantConstant.Flags).| -| action | string | No | Action to take, such as viewing and sharing application details. In implicit **Want**, you can define this attribute and use it together with **uri** or **parameters** to specify the operation to be performed on the data. | +| action | string | No | Action to take, such as viewing and sharing application details. In implicit **Want**, you can define this attribute and use it together with **uri** or **parameters** to specify the operation to be performed on the data. For details, see [action](js-apis-app-ability-wantConstant.md#wantConstant.Action). For details about the definition and matching rules of implicit Want, see [Matching Rules of Explicit Want and Implicit Want](application-models/explicit-implicit-want-mappings.md). | | parameters | {[key: string]: any} | No | Want parameters in the form of custom key-value (KV) pairs. By default, the following keys are carried:
        **ohos.aafwk.callerPid**: PID of the caller.
        **ohos.aafwk.param.callerToken**: token of the caller.
        **ohos.aafwk.param.callerUid**: UID in [bundleInfo](js-apis-bundle-BundleInfo.md#bundleinfo-1), that is, the application UID in the bundle information. | -| entities | Array\ | No | Additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit **Want** and is used to filter ability types. | +| entities | Array\ | No | Additional category information (such as browser and video player) of the ability. It is a supplement to the **action** field for implicit Want. and is used to filter ability types. For details, see [entity](js-apis-app-ability-wantConstant.md#wantConstant.Entity). | | moduleName9+ | string | No | Module to which the ability belongs.| **Example** -- Basic usage +- Basic usage (called in a UIAbility object, where context in the example is the context object of the UIAbility). ```ts - var want = { + let want = { "deviceId": "", // An empty deviceId indicates the local device. - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", + "bundleName": "com.example.myapplication", + "abilityName": "EntryAbility", "moduleName": "entry" // moduleName is optional. }; this.context.startAbility(want, (error) => { @@ -46,13 +46,13 @@ import Want from '@ohos.application.Want'; }) ``` -- Data is transferred through user-defined fields. The following data types are supported: +- Data is transferred through user-defined fields. The following data types are supported (called in a UIAbility object, where context in the example is the context object of the UIAbility): * String ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", parameters: { keyForString: "str", }, @@ -61,8 +61,8 @@ import Want from '@ohos.application.Want'; * Number ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", parameters: { keyForInt: 100, keyForDouble: 99.99, @@ -72,8 +72,8 @@ import Want from '@ohos.application.Want'; * Boolean ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", parameters: { keyForBool: true, }, @@ -82,8 +82,8 @@ import Want from '@ohos.application.Want'; * Object ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", parameters: { keyForObject: { keyForObjectString: "str", @@ -97,8 +97,8 @@ import Want from '@ohos.application.Want'; * Array ```ts let want = { - bundleName: "com.example.demo", - abilityName: "com.example.demo.MainAbility", + bundleName: "com.example.myapplication", + abilityName: "EntryAbility", parameters: { keyForArrayString: ["str1", "str2", "str3"], keyForArrayInt: [100, 200, 300, 400], @@ -110,16 +110,16 @@ import Want from '@ohos.application.Want'; * File descriptor (FD) ```ts import fileio from '@ohos.fileio'; - var fd; + let fd; try { fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); } catch(e) { console.log("openSync fail:" + JSON.stringify(e)); } - var want = { + let want = { "deviceId": "", // An empty deviceId indicates the local device. - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", + "bundleName": "com.example.myapplication", + "abilityName": "EntryAbility", "moduleName": "entry", // moduleName is optional. "parameters": { "keyFd":{"type":"FD", "value":fd} @@ -131,4 +131,6 @@ import Want from '@ohos.application.Want'; }) ``` +- For more details and examples, see [Want](../../application-models/want-overview.md). + diff --git a/en/application-dev/reference/apis/js-apis-application-windowExtensionAbility.md b/en/application-dev/reference/apis/js-apis-application-windowExtensionAbility.md index 882578cc31..bd6d74bbcb 100644 --- a/en/application-dev/reference/apis/js-apis-application-windowExtensionAbility.md +++ b/en/application-dev/reference/apis/js-apis-application-windowExtensionAbility.md @@ -1,4 +1,5 @@ -# Window Extension Ability +# @ohos.application.WindowExtensionAbility (WindowExtensionAbility) + **WindowExtensionAbility** inherits from **ExtensionAbility**. The content in a **WindowExtensionAbility** object can be displayed as an ability component in other application windows. > **NOTE** diff --git a/en/application-dev/reference/apis/js-apis-configuration.md b/en/application-dev/reference/apis/js-apis-configuration.md deleted file mode 100644 index 25c57c7d5f..0000000000 --- a/en/application-dev/reference/apis/js-apis-configuration.md +++ /dev/null @@ -1,26 +0,0 @@ -# Configuration - -The **Configuration** module provides environment configuration information. - -> **NOTE** -> -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. - -## Modules to Import - -```js -import Configuration from '@ohos.application.Configuration'; -``` - -## Attributes - -**System capability**: SystemCapability.Ability.AbilityBase - - | Name| Type| Readable| Writable| Description| -| -------- | -------- | -------- | -------- | -------- | -| language | string | Yes| Yes| Language of the application.| -| colorMode | [ColorMode](js-apis-configurationconstant.md) | Yes| Yes| Color mode, which can be **COLOR_MODE_LIGHT** or **COLOR_MODE_DARK**. The default value is **COLOR_MODE_LIGHT**.| -| direction9+ | Direction | Yes| No| Screen orientation, which can be **DIRECTION_HORIZONTAL** or **DIRECTION_VERTICAL**.| -| screenDensity9+ | ScreenDensity | Yes| No| Screen resolution, which can be **SCREEN_DENSITY_SDPI** (120), **SCREEN_DENSITY_MDPI** (160), **SCREEN_DENSITY_LDPI** (240), **SCREEN_DENSITY_XLDPI** (320), **SCREEN_DENSITY_XXLDPI** (480), or **SCREEN_DENSITY_XXXLDPI** (640).| -| displayId9+ | number | Yes| No| ID of the display where the application is located.| -| hasPointerDevice9+ | boolean | Yes| No| Whether a pointer device, such as a keyboard, mouse, or touchpad, is connected.| diff --git a/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md b/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md index 0e0bd18e5e..d02b0dd61b 100644 --- a/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md +++ b/en/application-dev/reference/apis/js-apis-continuation-continuationResult.md @@ -1,7 +1,6 @@ # ContinuationResult > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. ## ContinuationResult diff --git a/en/application-dev/reference/apis/js-apis-distributedBundle.md b/en/application-dev/reference/apis/js-apis-distributedBundle.md deleted file mode 100644 index 2ddd4b9138..0000000000 --- a/en/application-dev/reference/apis/js-apis-distributedBundle.md +++ /dev/null @@ -1,479 +0,0 @@ -# @ohos.bundle.distributedBundle - -The **distributedBundle** module provides APIs for managing distributed bundles. - -> **NOTE** -> -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> -> The APIs provided by this module are system APIs. - -## Modules to Import - -``` -import distributedBundle from '@ohos.bundle.distributedBundle'; -``` - -## System Capability - -SystemCapability.BundleManager.DistributedBundleFramework - -## Required Permissions - -| Permission | Permission Level | Description | -| ------------------------------------------ | ------------ | ------------------ | -| ohos.permission.GET_BUNDLE_INFO_PRIVILEGED | system_basic | Permission to query information about all bundles.| - -For details, see [Permission Levels](../../security/accesstoken-overview.md#permission-levels). - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementName: ElementName, callback: AsyncCallback\): void; - -Obtains information about the remote ability that matches the given element name. This API uses an asynchronous callback to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| elementName | [ElementName](js-apis-bundleManager-elementName.md) | Yes | Target element name. | -| callback | AsyncCallback<[RemoteAbilityInfo](js-apis-bundleManager-remoteAbilityInfo.md)> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the **RemoteAbilityInfo** object obtained. Otherwise, **err** is an error object.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|--------------------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - { - deviceId: '1', - bundleName: 'com.example.application', - abilityName: 'MainAbility' - }, (err, data) => { - if (err) { - console.error('Operation failed:' + JSON.stringify(err)); - } else { - console.info('Operation succeed:' + JSON.stringify(data)); - } - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementName: ElementName): Promise\; - -Obtains information about the remote ability that matches the given element name. This API uses a promise to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | -------------------------------------------- | ---- | ----------------------- | -| elementName | [ElementName](js-apis-bundleManager-elementName.md) | Yes | Target element name.| - -**Return value** - -| Type | Description | -| ------------------------------------------------------------ | --------------------------------- | -| Promise\<[RemoteAbilityInfo](js-apis-bundleManager-remoteAbilityInfo.md)> | Promise used to return the **RemoteAbilityInfo** object obtained.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - { - deviceId: '1', - bundleName: 'com.example.application', - abilityName: 'MainAbility' - }).then(data => { - console.info('Operation succeed:' + JSON.stringify(data)); - }).catch(err => { - console.error('Operation failed:' + JSON.stringify(err)); - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementNames: Array\, callback: AsyncCallback\>): void; - -Obtains information about remote abilities that match the given element names. This API uses an asynchronous callback to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------------ | ------------------------------------------------------------ | ---- | ------------------------------------------------------------ | -| elementNames | Array<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | **ElementName** array, whose maximum length is 10. | -| callback | AsyncCallback\> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the array of **RemoteAbilityInfo** objects obtained. Otherwise, **err** is an error object.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - [ - { - deviceId: '1', - bundleName: 'com.example.application1', - abilityName: 'MainAbility1' - }, - { - deviceId: '1', - bundleName: 'com.example.application2', - abilityName: 'MainAbility' - } - ], (err, data) => { - if (err) { - console.error('Operation failed:' + JSON.stringify(err)); - } else { - console.info('Operation succeed:' + JSON.stringify(data)); - } - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementNames: Array\): Promise\>; - -Obtains information about remote abilities that match the given element names and locales. This API uses a promise to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------------ | --------------------------------------------------- | ---- | ----------------------- | -| elementNames | Array<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | **ElementName** array, whose maximum length is 10.| - -**Return value** - -| Type | Description | -| ------------------------------------------------------------ | --------------------------------- | -| Promise\> | Promise used to return the array of **RemoteAbilityInfo** objects obtained.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - [ - { - deviceId: '1', - bundleName: 'com.example.application', - abilityName: 'MainAbility' - }, - { - deviceId: '1', - bundleName: 'com.example.application2', - abilityName: 'MainAbility' - } - ]).then(data => { - console.info('Operation succeed:' + JSON.stringify(data)); - }).catch(err => { - console.error('Operation failed:' + JSON.stringify(err)); - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementName: ElementName, locale: string, callback: AsyncCallback\): void; - -Obtains information about the remote ability that matches the given element name and locale. This API uses an asynchronous callback to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | ------------------------------------------------------------ | ---- | -------------------------------------------------- | -| elementName | [ElementName](js-apis-bundleManager-elementName.md) | Yes | Target element name. | -| locale | string |Yes| Target locale.| -| callback | AsyncCallback<[RemoteAbilityInfo](js-apis-bundleManager-remoteAbilityInfo.md)> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the **RemoteAbilityInfo** object obtained. Otherwise, **err** is an error object.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - { - deviceId: '1', - bundleName: 'com.example.application', - abilityName: 'MainAbility' - }, 'zh-Hans-CN', (err, data) => { - if (err) { - console.error('Operation failed:' + JSON.stringify(err)); - } else { - console.info('Operation succeed:' + JSON.stringify(data)); - } - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementName: ElementName, locale: string): Promise\; - -Obtains information about the remote ability that matches the given element name and locale. This API uses a promise to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ----------- | -------------------------------------------- | ---- | ----------------------- | -| elementName | [ElementName](js-apis-bundleManager-elementName.md) | Yes | Target element name.| -| locale | string |Yes| Target locale.| - -**Return value** - -| Type | Description | -| ------------------------------------------------------------ | --------------------------------- | -| Promise\<[RemoteAbilityInfo](js-apis-bundleManager-remoteAbilityInfo.md)> | Promise used to return the **RemoteAbilityInfo** object obtained.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - { - deviceId: '1', - bundleName: 'com.example.application', - abilityName: 'MainAbility' - }, 'zh-Hans-CN').then(data => { - console.info('Operation succeed:' + JSON.stringify(data)); - }).catch(err => { - console.error('Operation failed:' + JSON.stringify(err)); - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementNames: Array\, locale: string, callback: AsyncCallback\>): void; - -Obtains information about remote abilities that match the given element names and locales. This API uses an asynchronous callback to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------------ | ------------------------------------------------------------ | ---- | -------------------------------------------------- | -| elementNames | Array<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | **ElementName** array, whose maximum length is 10. | -| locale | string |Yes| Target locale.| -| callback | AsyncCallback\> | Yes | Callback used to return the result. If the operation is successful, **err** is **null** and **data** is the array of **RemoteAbilityInfo** objects obtained. Otherwise, **err** is an error object.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID | Error Message | -|---------------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - [ - { - deviceId: '1', - bundleName: 'com.example.application1', - abilityName: 'MainAbility1' - }, - { - deviceId: '1', - bundleName: 'com.example.application2', - abilityName: 'MainAbility' - } - ], 'zh-Hans-CN', (err, data) => { - if (err) { - console.error('Operation failed:' + JSON.stringify(err)); - } else { - console.info('Operation succeed:' + JSON.stringify(data)); - } - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` - -## distributedBundle.getRemoteAbilityInfo - -getRemoteAbilityInfo(elementNames: Array\, locale: string): Promise\>; - -Obtains information about remote abilities that match the given element names and locales. This API uses a promise to return the result. - -**System API**: This is a system API. - -**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED - -**System capability**: SystemCapability.BundleManager.DistributedBundleFramework - -**Parameters** - -| Name | Type | Mandatory| Description | -| ------------ | --------------------------------------------------- | ---- | ----------------------- | -| elementNames | Array<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | **ElementName** array, whose maximum length is 10.| -| locale | string |Yes| Target locale.| - -**Return value** - -| Type | Description | -| ------------------------------------------------------------ | --------------------------------- | -| Promise\> | Promise used to return the array of **RemoteAbilityInfo** objects obtained.| - -**Error codes** - -For details about the error codes, see [Bundle Error Codes](../errorcodes/errorcode-bundle.md). - -| ID| Error Message | -|----------|-------------------------| -| 17700001 | The specified bundle name is not found. | -| 17700003 | The specified ability name is not found. | -| 17700007 | The specified device ID is not found. | -| 17700027 | The distributed service is not running. | - -**Example** - -```ts -try { - distributedBundle.getRemoteAbilityInfo( - [ - { - deviceId: '1', - bundleName: 'com.example.application', - abilityName: 'MainAbility' - }, - { - deviceId: '1', - bundleName: 'com.example.application2', - abilityName: 'MainAbility' - } - ], 'zh-Hans-CN').then(data => { - console.info('Operation succeed:' + JSON.stringify(data)); - }).catch(err => { - console.error('Operation failed:' + JSON.stringify(err)); - }); -} catch (err) { - console.error('Operation failed:' + JSON.stringify(err)); -} -``` diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-abilityResult.md b/en/application-dev/reference/apis/js-apis-inner-ability-abilityResult.md index f776c56334..54c8f0400b 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-abilityResult.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-abilityResult.md @@ -1,6 +1,6 @@ # AbilityResult -The **AbilityResult** module defines the result code and data returned when an ability is started or destroyed. +The **AbilityResult** module defines the result code and data returned when an ability is terminated after being started. You can use [startAbilityForResult](js-apis-ability-context.md#abilitycontextstartabilityforresult) to obtain the **AbilityResult** object returned after the started ability is terminated. The startedability returns the **AbilityResult** object by calling [terminateSelfWithResult](js-apis-ability-context.md#abilitycontextterminateselfwithresult). > **NOTE** > @@ -10,17 +10,5 @@ The **AbilityResult** module defines the result code and data returned when an a | Name | Readable | Writable | Type | Mandatory| Description | | ----------- | -------- |-------- | -------------------- | ---- | ------------------------------------------------------------ | -| resultCode | Yes | No | number | No | Result code returned when the ability is started or destroyed. | -| want | Yes | No | [Want](./js-apis-app-ability-want.md) | No | Data returned when the ability is destroyed.| - -**Example** - ```ts - let want = { - bundleName: 'com.example.mydocapplication', - abilityName: 'MainAbility', - }; - this.context.startAbilityForResult(want, (error, data) => { - let resultCode = data.resultCode; - let want = data.want; - }); - ``` +| resultCode | Yes | Yes | number | Yes | Result code returned after the started ability is terminated. | +| want | Yes | Yes | [Want](./js-apis-app-ability-want.md) | No | Data returned after the started ability is terminated. | diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-connectOptions.md b/en/application-dev/reference/apis/js-apis-inner-ability-connectOptions.md index 685329b15f..db0814fa14 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-connectOptions.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-connectOptions.md @@ -1,45 +1,11 @@ # ConnectOptions -The **ConnectOptions** module defines the options for connection. +**ConnectOptions** can be used as an input parameter to receive status changes during the connection to a background service. For example, it is used as an input parameter of [connectServiceExtensionAbility](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextconnectserviceextensionability) to connect to a ServiceExtensionAbility. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Type | Mandatory | Description | | ------------ | -------- | ---- | ------------------------- | -| onConnect7+ | function | Yes | Callback invoked when the connection is successful. | -| onDisconnect7+ | function | Yes | Callback invoked when the connection fails. | -| onFailed7+ | function | Yes | Callback invoked when **connectAbility** fails to be called.| - -**Return value** - -| Type | Description | -| ------ | -------------------- | -| number | ID of the Service ability connected.| - -**Example** - -```ts -import rpc from '@ohos.rpc'; -import featureAbility from '@ohos.ability.featureAbility'; -function onConnectCallback(element, remote){ - console.log('ConnectAbility onConnect remote is proxy:' + (remote instanceof rpc.RemoteProxy)); -} -function onDisconnectCallback(element){ - console.log('ConnectAbility onDisconnect element.deviceId : ' + element.deviceId) -} -function onFailedCallback(code){ - console.log('featureAbilityTest ConnectAbility onFailed errCode : ' + code) -} -var connectId = featureAbility.connectAbility( - { - deviceId: "", - bundleName: "com.ix.ServiceAbility", - abilityName: "ServiceAbilityA", - }, - { - onConnect: onConnectCallback, - onDisconnect: onDisconnectCallback, - onFailed: onFailedCallback, - }, -); -``` +| onConnect7+ | function | Yes | Callback invoked when a connection is set up. | +| onDisconnect7+ | function | Yes | Callback invoked when a connection is interrupted. | +| onFailed7+ | function | Yes | Callback invoked when a connection fails.| diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityHelper.md b/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityHelper.md index f06df85ac5..d6b0c51051 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityHelper.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityHelper.md @@ -1,5 +1,7 @@ # DataAbilityHelper +The **DataAbilityHelper** object is obtained through [acquireDataAbilityHelper](js-apis-ability-featureAbility.md#featureabilityacquiredataabilityhelper7). + > **NOTE** > > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -9,15 +11,15 @@ Import the following modules based on the actual situation before using the current module: ```ts -import ohos_data_ability from '@ohos.data.dataAbility' -import ohos_data_rdb from '@ohos.data.rdb' +import ohos_data_ability from '@ohos.data.dataAbility'; +import ohos_data_rdb from '@ohos.data.rdb'; ``` ## DataAbilityHelper.openFile openFile(uri: string, mode: string, callback: AsyncCallback\): void -Opens a file with a specified URI. This API uses an asynchronous callback to return the result. +Opens a file with a specified URI. This API uses an asynchronous callback to return a file descriptor. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -26,22 +28,19 @@ Opens a file with a specified URI. This API uses an asynchronous callback to ret | Name | Type | Mandatory| Description | | -------- | ---------------------- | ---- | ---------------------------------- | | uri | string | Yes | URI of the file to open. | -| mode | string | Yes | Mode for opening the file. The value can be **rwt**. | +| mode | string | Yes | Mode for opening the file. The value **r** indicates read-only access, **w** indicates **write-only** access, and **rw** indicates read-write access. | | callback | AsyncCallback\ | Yes | Callback used to return the file descriptor.| **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -var mode = "rwt"; -DAHelper.openFile( - "dataability:///com.example.DataAbility", - mode, - (err) => { - console.info("==========================>Called=======================>"); +var mode = "rw"; +DAHelper.openFile("dataability:///com.example.DataAbility", mode, (err, data) => { + console.info("openFile err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -49,7 +48,7 @@ DAHelper.openFile( openFile(uri: string, mode: string): Promise\ -Opens a file with a specified URI. This API uses a promise to return the result. +Opens a file with a specified URI. This API uses a promise to return a file descriptor. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -58,7 +57,7 @@ Opens a file with a specified URI. This API uses a promise to return the result. | Name| Type | Mandatory| Description | | ---- | ------ | ---- | ------------------------ | | uri | string | Yes | URI of the file to open.| -| mode | string | Yes | Mode for opening the file. The value can be **rwt**. | +| mode | string | Yes | Mode for opening the file. The value **r** indicates read-only access, **w** indicates **write-only** access, and **rw** indicates read-write access. | **Return value** @@ -69,15 +68,13 @@ Opens a file with a specified URI. This API uses a promise to return the result. **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -var mode = "rwt"; -DAHelper.openFile( - "dataability:///com.example.DataAbility", - mode).then((data) => { - console.info("==========================>openFileCallback=======================>"); +var mode = "rw"; +DAHelper.openFile("dataability:///com.example.DataAbility", mode).then((data) => { + console.info("openFile data: " + JSON.stringify(data)); }); ``` @@ -85,7 +82,7 @@ DAHelper.openFile( on(type: 'dataChange', uri: string, callback: AsyncCallback\): void -Registers an observer to observe data specified by a given URI. This API uses an asynchronous callback to return the result. +Registers an observer to listen for changes in the data specified by a given URI. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -93,32 +90,32 @@ Registers an observer to observe data specified by a given URI. This API uses an | Name | Type | Mandatory| Description | | -------- | -------------------- | ---- | ------------------------ | -| type | string | Yes | Type of the event to observe. The value is **dataChange**. | +| type | string | Yes | The value **dataChange** means data changes. | | uri | string | Yes | URI of the data.| | callback | AsyncCallback\ | Yes | Callback invoked when the data is changed. | **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -var helper = featureAbility.acquireDataAbilityHelper( +import featureAbility from '@ohos.ability.featureAbility'; +var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); function onChangeNotify() { - console.info("==========================>onChangeNotify=======================>"); + console.info("onChangeNotify call back"); }; -helper.on( +DAHelper.on( "dataChange", "dataability:///com.example.DataAbility", onChangeNotify -) +); ``` ## DataAbilityHelper.off off(type: 'dataChange', uri: string, callback?: AsyncCallback\): void -Deregisters the observer used to observe data specified by a given URI. This API uses an asynchronous callback to return the result. +Deregisters the observer that listens for changes in the data specified by a given URI. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -126,36 +123,36 @@ Deregisters the observer used to observe data specified by a given URI. This API | Name | Type | Mandatory| Description | | -------- | -------------------- | ---- | ------------------------ | -| type | string | Yes | Type of the event to observe. The value is **dataChange**. | +| type | string | Yes | The value **dataChange** means data changes. | | uri | string | Yes | URI of the data.| -| callback | AsyncCallback\ | No | Callback used to return the result. | +| callback | AsyncCallback\ | No | Callback of the listener to deregister. If the callback is set to **null**, all data change listeners are canceled. | **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -var helper = featureAbility.acquireDataAbilityHelper( +import featureAbility from '@ohos.ability.featureAbility'; +var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); function onChangeNotify() { - console.info("==========================>onChangeNotify=======================>"); + console.info("onChangeNotify call back"); }; -helper.off( +DAHelper.off( "dataChange", "dataability:///com.example.DataAbility", -) -helper.off( + onChangeNotify +); +DAHelper.off( "dataChange", "dataability:///com.example.DataAbility", - onChangeNotify -) +); ``` ## DataAbilityHelper.getType getType(uri: string, callback: AsyncCallback\): void -Obtains the MIME type of the data specified by a given URI. This API uses an asynchronous callback to return the result. +Obtains the media resource type of the data specified by a given URI. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -164,19 +161,17 @@ Obtains the MIME type of the data specified by a given URI. This API uses an asy | Name | Type | Mandatory| Description | | -------- | ---------------------- | ---- | --------------------------------------------- | | uri | string | Yes | URI of the data. | -| callback | AsyncCallback\ | Yes | Callback used to return the MIME type.| +| callback | AsyncCallback\ | Yes | Callback used to return the media resource type.| **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.getType( - "dataability:///com.example.DataAbility", - (err, data) => { - console.info("==========================>Called=======================>"); +DAHelper.getType("dataability:///com.example.DataAbility", (err, data) => { + console.info("getType err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -184,7 +179,7 @@ DAHelper.getType( getType(uri: string): Promise\ -Obtains the MIME type of the data specified by a given URI. This API uses a promise to return the result. +Obtains the media resource type of the data specified by a given URI. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -198,19 +193,17 @@ Obtains the MIME type of the data specified by a given URI. This API uses a prom | Type | Description | | ---------------- | ----------------------------------- | -| Promise\ | Promise used to return the MIME type.| +| Promise\ | Promise used to return the media resource type.| **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.getType( - "dataability:///com.example.DataAbility" - ).then((data) => { - console.info("==========================>getTypeCallback=======================>"); +DAHelper.getType("dataability:///com.example.DataAbility").then((data) => { + console.info("getType data: " + JSON.stringify(data)); }); ``` @@ -218,7 +211,7 @@ DAHelper.getType( getFileTypes(uri: string, mimeTypeFilter: string, callback: AsyncCallback>): void -Obtains the supported MIME types of a specified file. This API uses an asynchronous callback to return the result. +Obtains the supported media resource types of a specified file. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -227,31 +220,26 @@ Obtains the supported MIME types of a specified file. This API uses an asynchron | Name | Type | Mandatory| Description | | -------------- | ------------------------------ | ---- | ---------------------------------- | | uri | string | Yes | URI of the file. | -| mimeTypeFilter | string | Yes | MIME type of the file. | -| callback | AsyncCallback\> | Yes | Callback used to return the supported MIME types.| +| mimeTypeFilter | string | Yes | Media resource type of the file to obtain. | +| callback | AsyncCallback\> | Yes | Callback used to return an array holding the media resource type.| **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.getFileTypes( - "dataability:///com.example.DataAbility", - "image/*", - (err, data) => { - console.info("==========================>Called=======================>"); +DAHelper.getFileTypes( "dataability:///com.example.DataAbility", "image/*", (err, data) => { + console.info("getFileTypes err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` - - ## DataAbilityHelper.getFileTypes getFileTypes(uri: string, mimeTypeFilter: string): Promise\> -Obtains the supported MIME types of a specified file. This API uses a promise to return the result. +Obtains the supported media resource types of a specified file. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -260,26 +248,23 @@ Obtains the supported MIME types of a specified file. This API uses a promise to | Name | Type | Mandatory| Description | | -------------- | ------ | ---- | ---------------------------- | | uri | string | Yes | URI of the file. | -| mimeTypeFilter | string | Yes | MIME type of the file.| +| mimeTypeFilter | string | Yes | Media resource type of the file to obtain.| **Return value** | Type | Description | | ------------------------ | ------------------------ | -| Promise\> | Promise used to return the supported MIME types.| +| Promise\> | Promise used to return an array holding the media resource type.| **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.getFileTypes( - "dataability:///com.example.DataAbility", - "image/*" - ).then((data) => { - console.info("==========================>getFileTypesCallback=======================>"); +DAHelper.getFileTypes("dataability:///com.example.DataAbility", "image/*").then((data) => { + console.info("getFileTypes data: " + JSON.stringify(data)); }); ``` @@ -301,14 +286,12 @@ Converts the URI that refers to a Data ability into a normalized URI. This API u **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.normalizeUri( - "dataability:///com.example.DataAbility", - (err, data) => { - console.info("==========================>Called=======================>"); +DAHelper.normalizeUri("dataability:///com.example.DataAbility", (err, data) => { + console.info("normalizeUri err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -335,14 +318,12 @@ Converts the URI that refers to a Data ability into a normalized URI. This API u **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.normalizeUri( - "dataability:///com.example.DataAbility", - ).then((data) => { - console.info("==========================>normalizeUriCallback=======================>"); +DAHelper.normalizeUri("dataability:///com.example.DataAbility",).then((data) => { + console.info("normalizeUri data: " + JSON.stringify(data)); }); ``` @@ -358,25 +339,21 @@ Converts a normalized URI generated by **DataAbilityHelper.normalizeUri(uri: str | Name | Type | Mandatory| Description | | -------- | ---------------------- | ---- | --------------------------------------------------- | -| uri | string | Yes | URI object to normalize. | +| uri | string | Yes | URI object to denormalize. | | callback | AsyncCallback\ | Yes | Callback used to return the denormalized URI object.| **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.denormalizeUri( - "dataability:///com.example.DataAbility", - (err, data) => { - console.info("==========================>Called=======================>"); +DAHelper.denormalizeUri("dataability:///com.example.DataAbility", (err, data) => { + console.info("denormalizeUri err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` - - ## DataAbilityHelper.denormalizeUri denormalizeUri(uri: string): Promise\ @@ -400,14 +377,12 @@ Converts a normalized URI generated by **DataAbilityHelper.normalizeUri(uri: str **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.denormalizeUri( - "dataability:///com.example.DataAbility", - ).then((data) => { - console.info("==========================>denormalizeUriCallback=======================>"); +DAHelper.denormalizeUri("dataability:///com.example.DataAbility",).then((data) => { + console.info("denormalizeUri data: " + JSON.stringify(data)); }); ``` @@ -423,20 +398,18 @@ Notifies the registered observer of a change to the data specified by the URI. T | Name | Type | Mandatory| Description | | -------- | -------------------- | ---- | ------------------------ | -| uri | string | Yes | URI of the data.| +| uri | string | Yes | URI of the data that changes.| | callback | AsyncCallback\ | Yes | Callback used to return the result. | **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -var helper = featureAbility.acquireDataAbilityHelper( +import featureAbility from '@ohos.ability.featureAbility'; +var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -helper.notifyChange( - "dataability:///com.example.DataAbility", - (err) => { - console.info("==========================>Called=======================>"); +DAHelper.notifyChange("dataability:///com.example.DataAbility", (err) => { + console.info("==========================>Called=======================>"); }); ``` @@ -452,7 +425,7 @@ Notifies the registered observer of a change to the data specified by the URI. T | Name| Type | Mandatory| Description | | ---- | ------ | ---- | ------------------------ | -| uri | string | Yes | URI of the data.| +| uri | string | Yes | URI of the data that changes.| **Return value** @@ -463,14 +436,12 @@ Notifies the registered observer of a change to the data specified by the URI. T **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -DAHelper.notifyChange( - "dataability:///com.example.DataAbility", - ).then(() => { - console.info("==========================>notifyChangeCallback=======================>"); +DAHelper.notifyChange("dataability:///com.example.DataAbility").then(() => { + console.info("================>notifyChangeCallback================>"); }); ``` @@ -493,7 +464,7 @@ Inserts a single data record into the database. This API uses an asynchronous ca **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); @@ -502,12 +473,9 @@ const valueBucket = { "age": 22, "salary": 200.5, "blobType": "u8", -} -DAHelper.insert( - "dataability:///com.example.DataAbility", - valueBucket, - (err, data) => { - console.info("==========================>Called=======================>"); +}; +DAHelper.insert("dataability:///com.example.DataAbility", valueBucket, (err, data) => { + console.info("insert err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -535,7 +503,7 @@ Inserts a single data record into the database. This API uses a promise to retur **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); @@ -544,12 +512,9 @@ const valueBucket = { "age": 221, "salary": 20.5, "blobType": "u8", -} -DAHelper.insert( - "dataability:///com.example.DataAbility", - valueBucket - ).then((data) => { - console.info("==========================>insertCallback=======================>"); +}; +DAHelper.insert("dataability:///com.example.DataAbility", valueBucket).then((data) => { + console.info("insert data: " + JSON.stringify(data)); }); ``` @@ -572,18 +537,15 @@ Inserts multiple data records into the database. This API uses an asynchronous c **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": "u8",}, {"name": "roe12", "age": 21, "salary": 20.5, "blobType": "u8",}, - {"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",}) -DAHelper.batchInsert( - "dataability:///com.example.DataAbility", - cars, - (err, data) => { - console.info("==========================>Called=======================>"); + {"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",}); +DAHelper.batchInsert("dataability:///com.example.DataAbility", cars, (err, data) => { + console.info("batchInsert err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -600,7 +562,7 @@ Inserts multiple data records into the database. This API uses a promise to retu | Name | Type | Mandatory| Description | | ------------ | ----------------------- | ---- | ------------------------ | | uri | string | Yes | URI of the data to insert.| -| valuesBucket | Array | Yes | Data record to insert. | +| valuesBucket | Array | Yes | Data records to insert. | **Return value** @@ -611,18 +573,15 @@ Inserts multiple data records into the database. This API uses a promise to retu **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' +import featureAbility from '@ohos.ability.featureAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); var cars = new Array({"name": "roe11", "age": 21, "salary": 20.5, "blobType": "u8",}, {"name": "roe12", "age": 21, "salary": 20.5, "blobType": "u8",}, - {"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",}) -DAHelper.batchInsert( - "dataability:///com.example.DataAbility", - cars - ).then((data) => { - console.info("==========================>batchInsertCallback=======================>"); + {"name": "roe13", "age": 21, "salary": 20.5, "blobType": "u8",}); +DAHelper.batchInsert("dataability:///com.example.DataAbility", cars).then((data) => { + console.info("batchInsert data: " + JSON.stringify(data)); }); ``` @@ -645,17 +604,14 @@ Deletes one or more data records from the database. This API uses an asynchronou **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -import ohos_data_ability from '@ohos.data.dataAbility' +import featureAbility from '@ohos.ability.featureAbility'; +import ohos_data_ability from '@ohos.data.dataAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -let da = new ohos_data_ability.DataAbilityPredicates() -DAHelper.delete( - "dataability:///com.example.DataAbility", - da, - (err, data) => { - console.info("==========================>Called=======================>"); +let da = new ohos_data_ability.DataAbilityPredicates(); +DAHelper.delete("dataability:///com.example.DataAbility", da, (err, data) => { + console.info("delete err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -683,17 +639,14 @@ Deletes one or more data records from the database. This API uses a promise to r **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -import ohos_data_ability from '@ohos.data.dataAbility' +import featureAbility from '@ohos.ability.featureAbility'; +import ohos_data_ability from '@ohos.data.dataAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -let da = new ohos_data_ability.DataAbilityPredicates() -DAHelper.delete( - "dataability:///com.example.DataAbility", - da - ).then((data) => { - console.info("==========================>deleteCallback=======================>"); +let da = new ohos_data_ability.DataAbilityPredicates(); +DAHelper.delete("dataability:///com.example.DataAbility", da).then((data) => { + console.info("delete data: " + JSON.stringify(data)); }); ``` @@ -717,8 +670,8 @@ Updates data records in the database. This API uses an asynchronous callback to **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -import ohos_data_ability from '@ohos.data.dataAbility' +import featureAbility from '@ohos.ability.featureAbility'; +import ohos_data_ability from '@ohos.data.dataAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); @@ -727,14 +680,10 @@ const va = { "age": 21, "salary": 20.5, "blobType": "u8", -} -let da = new ohos_data_ability.DataAbilityPredicates() -DAHelper.update( - "dataability:///com.example.DataAbility", - va, - da, - (err, data) => { - console.info("==========================>Called=======================>"); +}; +let da = new ohos_data_ability.DataAbilityPredicates(); +DAHelper.update("dataability:///com.example.DataAbility", va, da, (err, data) => { + console.info("update err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -763,8 +712,8 @@ Updates data records in the database. This API uses a promise to return the resu **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -import ohos_data_ability from '@ohos.data.dataAbility' +import featureAbility from '@ohos.ability.featureAbility'; +import ohos_data_ability from '@ohos.data.dataAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); @@ -773,14 +722,10 @@ const va = { "age": 21, "salary": 20.5, "blobType": "u8", -} -let da = new ohos_data_ability.DataAbilityPredicates() -DAHelper.update( - "dataability:///com.example.DataAbility", - va, - da - ).then((data) => { - console.info("==========================>updateCallback=======================>"); +}; +let da = new ohos_data_ability.DataAbilityPredicates(); +DAHelper.update("dataability:///com.example.DataAbility", va, da).then((data) => { + console.info("update data: " + JSON.stringify(data)); }); ``` @@ -804,19 +749,15 @@ Queries data in the database. This API uses an asynchronous callback to return t **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -import ohos_data_ability from '@ohos.data.dataAbility' +import featureAbility from '@ohos.ability.featureAbility'; +import ohos_data_ability from '@ohos.data.dataAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); var cars=new Array("value1", "value2", "value3", "value4"); -let da = new ohos_data_ability.DataAbilityPredicates() -DAHelper.query( - "dataability:///com.example.DataAbility", - cars, - da, - (err, data) => { - console.info("==========================>Called=======================>"); +let da = new ohos_data_ability.DataAbilityPredicates(); +DAHelper.query("dataability:///com.example.DataAbility", cars, da, (err, data) => { + console.info("query err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); ``` @@ -847,27 +788,23 @@ Queries data in the database. This API uses a promise to return the result. **Example** ```ts -import featureAbility from '@ohos.ability.featureAbility' -import ohos_data_ability from '@ohos.data.dataAbility' +import featureAbility from '@ohos.ability.featureAbility'; +import ohos_data_ability from '@ohos.data.dataAbility'; var DAHelper = featureAbility.acquireDataAbilityHelper( "dataability:///com.example.DataAbility" ); -var cars=new Array("value1", "value2", "value3", "value4"); -let da = new ohos_data_ability.DataAbilityPredicates() -DAHelper.query( - "dataability:///com.example.DataAbility", - cars, - da - ).then((data) => { - console.info("==========================>queryCallback=======================>"); +var cars = new Array("value1", "value2", "value3", "value4"); +let da = new ohos_data_ability.DataAbilityPredicates(); +DAHelper.query("dataability:///com.example.DataAbility", cars, da).then((data) => { + console.info("query data: " + JSON.stringify(data)); }); ``` ## DataAbilityHelper.call -call(uri: string, method: string, arg: string, extras: PacMap): Promise\ +call(uri: string, method: string, arg: string, extras: PacMap, callback: AsyncCallback\): void -Calls the extended API of the Data ability. This API uses a promise to return the result. +Calls an extended API of the DataAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -875,35 +812,35 @@ Calls the extended API of the Data ability. This API uses a promise to return th | Name | Type | Mandatory| Description | | ---------- | --------------------------------- | ---- | ------------------------------------------------ | -| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx". | +| uri | string | Yes | URI of the DataAbility. Example: "dataability:///com.example.xxx.xxxx". | | method | string | Yes | Name of the API to call. | -| arg | string | Yes |Parameter to pass. | +| arg | string | Yes | Parameter to pass in. | | extras | [PacMap](#pacmap) | Yes | Key-value pair parameter. | - -**Return value** - -| Type| Description| -|------ | ------- | -|Promise\<[PacMap](#pacmap)> | Promise used to return the result.| +| callback | AsyncCallback\<[PacMap](#pacmap)> | Yes| Callback used to return the result. | **Example** ```ts import featureAbility from '@ohos.ability.featureAbility'; -let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility"); -dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "method", "arg", {"key1":"value1"}).then((data) => { +let dataAbilityHelper = featureAbility.acquireDataAbilityHelper( + "dataability:///com.example.jsapidemo.UserDataAbility" +); +dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", + "method", "arg", {"key1":"value1"}, (err, data) => { + if (err) { + console.error('Operation failed. Cause: ' + err); + return; + } console.info('Operation succeeded: ' + data); -}).catch((error) => { - console.error('Operation failed. Cause: ' + error); }); ``` ## DataAbilityHelper.call -call(uri: string, method: string, arg: string, extras: PacMap, callback: AsyncCallback\): void +call(uri: string, method: string, arg: string, extras: PacMap): Promise\ -Calls the extended API of the Data ability. This API uses an asynchronous callback to return the result. +Calls an extended API of the DataAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -911,24 +848,30 @@ Calls the extended API of the Data ability. This API uses an asynchronous callba | Name | Type | Mandatory| Description | | ---------- | --------------------------------- | ---- | ------------------------------------------------ | -| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx". | +| uri | string | Yes | URI of the DataAbility. Example: "dataability:///com.example.xxx.xxxx". | | method | string | Yes | Name of the API to call. | -| arg | string | Yes |Parameter to pass. | +| arg | string | Yes | Parameter to pass in. | | extras | [PacMap](#pacmap) | Yes | Key-value pair parameter. | -| callback | AsyncCallback\<[PacMap](#pacmap)> | Yes| Callback used to return the result. | + +**Return value** + +| Type| Description| +|------ | ------- | +|Promise\<[PacMap](#pacmap)> | Promise used to return the result.| **Example** ```ts import featureAbility from '@ohos.ability.featureAbility'; -let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility"); -dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", "method", "arg", {"key1":"value1"}, (err, data) => { - if (err) { - console.error('Operation failed. Cause: ' + err); - return; - } +let dataAbilityHelper = featureAbility.acquireDataAbilityHelper( + "dataability:///com.example.jsapidemo.UserDataAbility" +); +dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", + "method", "arg", {"key1":"value1"}).then((data) => { console.info('Operation succeeded: ' + data); +}).catch((error) => { + console.error('Operation failed. Cause: ' + error); }); ``` @@ -936,17 +879,17 @@ dataAbilityHelper.call("dataability:///com.example.jsapidemo.UserDataAbility", " executeBatch(uri: string, operations: Array\, callback: AsyncCallback\>): void; -Operates data in the database. This API uses an asynchronous callback to return the result. +Operates data in the database in batches. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel **Parameters** -| Name | Type | Mandatory| Description | -| ---------- | --------------------------------- | ---- | ------------------------------------------------ | -| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx".| -| operations | Array\<[DataAbilityOperation](js-apis-inner-ability-dataAbilityOperation.md)> | Yes | A list of data operations on the database. | -| callback | AsyncCallback\> | Yes |Callback used to return the result of each operation in the **DataAbilityResult** array. | +| Name | Type | Mandatory| Description | +| ----------| ---------------------------------| ---- | ------------------------------------------------ | +| uri | string | Yes | URI of the DataAbility. Example: "dataability:///com.example.xxx.xxxx".| +| operations | Array\<[DataAbilityOperation](js-apis-inner-ability-dataAbilityOperation.md)> | Yes | An array holding the data operations on the database. | +| callback | AsyncCallback\> | Yes | Callback used to return the result of each operation in the **DataAbilityResult** array. | **Example** @@ -955,7 +898,9 @@ import featureAbility from '@ohos.ability.featureAbility'; // Select the operations to be performed on the database according to the DataAbilityOperation array. let op=new Array(); -let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility"); +let dataAbilityHelper = featureAbility.acquireDataAbilityHelper( + "dataability:///com.example.jsapidemo.UserDataAbility" +); dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility", op, (err, data) => { if (err) { console.error('Operation failed. Cause: ' + err); @@ -969,7 +914,7 @@ dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbi executeBatch(uri: string, operations: Array\): Promise\>; -Operates data in the database. This API uses a promise to return the result. +Operates data in the database in batches. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.FAModel @@ -977,14 +922,14 @@ Operates data in the database. This API uses a promise to return the result. | Name | Type | Mandatory| Description | | ---------- | -------------------------------| ---- | ------------------------------------------------ | -| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx".| -| operations | Array\<[DataAbilityOperation](js-apis-inner-ability-dataAbilityOperation.md)> | Yes | A list of data operations on the database. | +| uri | string | Yes | URI of the DataAbility. Example: "dataability:///com.example.xxx.xxxx".| +| operations | Array\<[DataAbilityOperation](js-apis-inner-ability-dataAbilityOperation.md)> | Yes | An array holding the data operations on the database. | **Return value** | Type| Description| |------ | ------- | -|Promise\> | Callback used to return the result of each operation in the **DataAbilityResult** array.| +|Promise\> | Promise used to return the result of each operation in the **DataAbilityResult** array.| **Example** @@ -993,8 +938,10 @@ import featureAbility from '@ohos.ability.featureAbility'; // Select the operations to be performed on the database according to the DataAbilityOperation array. let op=new Array(); -let dataAbilityHelper = featureAbility.acquireDataAbilityHelper("dataability:///com.example.jsapidemo.UserDataAbility"); -dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility",op ).then((data) => { +let dataAbilityHelper = featureAbility.acquireDataAbilityHelper( + "dataability:///com.example.jsapidemo.UserDataAbility" +); +dataAbilityHelper.executeBatch("dataability:///com.example.jsapidemo.UserDataAbility", op).then((data) => { console.info('Operation succeeded: ' + data); }).catch((error) => { console.error('Operation failed. Cause: ' + error); diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityOperation.md b/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityOperation.md index 30148ab3a6..0b96b8caa9 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityOperation.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityOperation.md @@ -1,6 +1,6 @@ # DataAbilityOperation -The **DataAbilityOperation** module defines the operation on Data abilities. +The **DataAbilityOperation** module defines the operation on DataAbilities. It can be used as an input parameter of [executeBatch](js-apis-inner-ability-dataAbilityHelper.md#dataabilityhelperexecutebatch) to specify the database operation information. > **NOTE** > @@ -11,56 +11,11 @@ The **DataAbilityOperation** module defines the operation on Data abilities. | Name | Template | Mandatory| Description | | -------- | -------- | --------| -------- | -| uri | string | Yes | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx". | -| type | featureAbility.DataAbilityOperationType | Yes | Operation type. | -| valuesBucket? | rdb.ValuesBucket | No | Data value to set. | -| valueBackReferences? | rdb.ValuesBucket | No | **ValuesBucket** object that contains a set of key-value pairs. | -| predicates? | dataAbility.DataAbilityPredicates | No | Predicates to set. If no predicate is set, all data records are displayed. | -| predicatesBackReferences? | Map\ | No | Back references of the predicates. | -| interrupted? | boolean | No | Whether batch operations can be interrupted. | -| expectedCount? | number | No | Expected number of rows to be updated or deleted. | - -**Example** -```ts -import featureAbility from '@ohos.ability.featureAbility' - -let dataAbilityUri = ("dataability:///com.example.myapplication.TestDataAbility"); -let DAHelper; -try { - DAHelper = featureAbility.acquireDataAbilityHelper(dataAbilityUri); - if(DAHelper == null){ - console.error('DAHelper is null'); - return; - } -} catch (err) { - console.error('acquireDataAbilityHelper fail, error:' + JSON.stringify(err)); - return; -} - -let valueBucket = { - "name": "DataAbilityHelperTest", - "age": 24, - "salary": 2024.20, -}; -let dataAbilityOperation = { - uri: dataAbilityUri, - type: featureAbility.DataAbilityOperationType.TYPE_INSERT, - valuesBucket: valueBucket, - predicates: null, - expectedCount: 1, - PredicatesBackReferences: {}, - interrupted: true -} -let operations = [ - dataAbilityOperation -]; -try { - DAHelper.executeBatch(dataAbilityUri, operations, - (err, data) => { - console.log("executeBatch, data: " + JSON.stringify(data)); - } - ); -} catch (err) { - console.error('executeBatch fail: ' + JSON.stringify(err)); -} -``` +| uri | string | Yes | URI of the DataAbility. Example: "dataability:///com.example.xxx.xxxx". | +| type | featureAbility.DataAbilityOperationType | Yes | Operation type. | +| valuesBucket? | rdb.ValuesBucket | No | Data value to set. | +| valueBackReferences? | rdb.ValuesBucket | No | **ValuesBucket** object that contains a set of key-value pairs. | +| predicates? | dataAbility.DataAbilityPredicates | No | Predicates to set. If no predicate is set, all data records are displayed. | +| predicatesBackReferences? | Map\ | No | Back references of the predicates. | +| interrupted? | boolean | No | Whether batch operations can be interrupted. | +| expectedCount? | number | No | Expected number of rows to be updated or deleted. | diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityResult.md b/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityResult.md index fe602f38ef..49b14bebed 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityResult.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-dataAbilityResult.md @@ -1,6 +1,6 @@ # DataAbilityResult -The **DataAbilityResult** module defines the operation result on Data abilities. +The **DataAbilityResult** module defines the operation result on DataAbilities. When you call [executeBatch](js-apis-inner-ability-dataAbilityHelper.md#dataabilityhelperexecutebatch) to operate the database, the operation result is returned through the **DataAbilityResult** object. > **NOTE** > @@ -11,63 +11,67 @@ The **DataAbilityResult** module defines the operation result on Data abilities. | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | -| uri? | string | No | URI of the Data ability. Example: "dataability:///com.example.xxx.xxxx". | -| count? | number | No | Number of rows affected by the operation. | +| uri? | string | No | URI of the DataAbility. Example: "dataability:///com.example.xxx.xxxx". | +| count? | number | No | Number of rows affected by the operation. | **Example** + ```ts import featureAbility from '@ohos.ability.featureAbility' -let dataAbilityUri = ("dataability:///com.example.myapplication.TestDataAbility"); -let DAHelper; -try { - DAHelper = featureAbility.acquireDataAbilityHelper(dataAbilityUri); - if(DAHelper == null){ - console.error('DAHelper is null'); +// Perform database operations in batches. +function executeBatchOperation() { + let dataAbilityUri = ("dataability:///com.example.myapplication.TestDataAbility"); + let DAHelper; + try { + DAHelper = featureAbility.acquireDataAbilityHelper(dataAbilityUri); + if (DAHelper == null) { + console.error('DAHelper is null'); + return; + } + } catch (err) { + console.error('acquireDataAbilityHelper fail, error:' + JSON.stringify(err)); return; } -} catch (err) { - console.error('acquireDataAbilityHelper fail, error:' + JSON.stringify(err)); - return; -} -let valueBucket = { - "name": "DataAbilityHelperTest", - "age": 24, - "salary": 2024.20, -}; -let operations = [ -{ - uri: dataAbilityUri, - type: featureAbility.DataAbilityOperationType.TYPE_INSERT, - valuesBucket: valueBucket, - predicates: null, - expectedCount: 1, - PredicatesBackReferences: {}, - interrupted: true, -}, -{ - uri: dataAbilityUri, - type: featureAbility.DataAbilityOperationType.TYPE_INSERT, - valuesBucket: valueBucket, - predicates: null, - expectedCount: 1, - PredicatesBackReferences: {}, - interrupted: true, -} -]; + let valueBucket = { + "name": "DataAbilityHelperTest", + "age": 24, + "salary": 2024.20, + }; + let operations = [ + { + uri: dataAbilityUri, + type: featureAbility.DataAbilityOperationType.TYPE_INSERT, + valuesBucket: valueBucket, + predicates: null, + expectedCount: 1, + PredicatesBackReferences: {}, + interrupted: true, + }, + { + uri: dataAbilityUri, + type: featureAbility.DataAbilityOperationType.TYPE_INSERT, + valuesBucket: valueBucket, + predicates: null, + expectedCount: 1, + PredicatesBackReferences: {}, + interrupted: true, + } + ]; -try { - let promise = DAHelper.executeBatch(dataAbilityUri, operations).then((data) => { - for (let i = 0; i < data.length; i++) { - let dataAbilityResult = data[i]; - console.log('dataAbilityResult.uri: ' + dataAbilityResult.uri); - console.log('dataAbilityResult.count: ' + dataAbilityResult.count); - } - }).catch(err => { + try { + DAHelper.executeBatch(dataAbilityUri, operations).then((data) => { + for (let i = 0; i < data.length; i++) { + let dataAbilityResult = data[i]; + console.log('dataAbilityResult.uri: ' + dataAbilityResult.uri); + console.log('dataAbilityResult.count: ' + dataAbilityResult.count); + } + }).catch(err => { + console.error('executeBatch error: ' + JSON.stringify(err)); + }); + } catch (err) { console.error('executeBatch error: ' + JSON.stringify(err)); - }); -} catch (err) { - console.error('executeBatch error: ' + JSON.stringify(err)); + } } ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-startAbilityParameter.md b/en/application-dev/reference/apis/js-apis-inner-ability-startAbilityParameter.md index bbb025920d..71b8d52970 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-startAbilityParameter.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-startAbilityParameter.md @@ -1,6 +1,6 @@ # StartAbilityParameter -The **StartAbilityParameter** module defines the parameters for starting an ability. +The **StartAbilityParameter** module defines the parameters for starting an ability. The parameters can be used as input parameters in [startAbility](js-apis-ability-featureAbility.md#featureabilitystartability) to start the specified ability. > **NOTE** > @@ -11,8 +11,8 @@ The **StartAbilityParameter** module defines the parameters for starting an abil | Name | Type | Mandatory | Description | | ------------------- | -------- | ---- | -------------------------------------- | -| want | [Want](js-apis-application-want.md)| Yes | Information about the ability to start. | -| abilityStartSetting | {[key: string]: any} | No | Special attribute of the ability to start. This attribute can be passed in the method call.| +| want | [Want](js-apis-application-want.md)| Yes | Want information about the target ability. | +| abilityStartSetting | {[key: string]: any} | No | Special attribute of the target ability. This attribute can be passed in the call.| **Example** ```ts @@ -20,7 +20,7 @@ import featureAbility from '@ohos.ability.featureAbility' let Want = { bundleName: "com.example.abilityStartSettingApp2", - abilityName: "com.example.abilityStartSettingApp.MainAbility", + abilityName: "com.example.abilityStartSettingApp.EntryAbility", } let abilityStartSetting ={ @@ -31,13 +31,15 @@ let abilityStartSetting ={ } let startAbilityParameter = { - want:Want, - abilityStartSetting:abilityStartSetting + want : Want, + abilityStartSetting : abilityStartSetting } -featureAbility.startAbility(startAbilityParameter, (err,data)=>{ - console.log('errCode : ' + JSON.stringify(err)); - console.log('data : ' + JSON.stringify(data)); +try { + featureAbility.startAbility(startAbilityParameter, (err, data) => { + console.log('errCode : ' + JSON.stringify(err)); + console.log('data : ' + JSON.stringify(data)); + }); } catch(error) { console.log("startAbility error: " + JSON.stringify(error)); } diff --git a/en/application-dev/reference/apis/js-apis-inner-ability-want.md b/en/application-dev/reference/apis/js-apis-inner-ability-want.md index 4eea38a4e2..a91b19e881 100644 --- a/en/application-dev/reference/apis/js-apis-inner-ability-want.md +++ b/en/application-dev/reference/apis/js-apis-inner-ability-want.md @@ -1,6 +1,6 @@ # Want -Want is a carrier for information transfer between objects (application components). Want can be used as a parameter of **startAbility** to specify a startup target and information that needs to be carried during startup, for example, **bundleName** and **abilityName**, which respectively indicate the bundle name of the target ability and the ability name in the bundle. When ability A needs to start ability B and transfer some data to ability B, it can use Want a carrier to transfer the data. +Want is a carrier for information transfer between objects (application components). Want can be used as a parameter of [startAbility](js-apis-inner-application-uiAbilityContext.md#uiabilitycontextstartability) to specify a startup target and information that needs to be carried during startup, for example, **bundleName** and **abilityName**, which respectively indicate the bundle name of the target ability and the ability name in the bundle. When ability A needs to start ability B and transfer some data to ability B, it can use Want a carrier to transfer the data. > **NOTE** > @@ -10,56 +10,62 @@ Want is a carrier for information transfer between objects (application componen | Name | Type | Mandatory| Description | | ----------- | -------------------- | ---- | ------------------------------------------------------------ | -| deviceId | string | No | ID of the device running the ability. | -| bundleName | string | No | Bundle name of the application. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability.| +| deviceId | string | No | ID of the device running the ability. If this field is unspecified, the local device is used. | +| bundleName | string | No | Bundle name.| | abilityName | string | No | Name of the ability. If both **bundleName** and **abilityName** are specified in a **Want** object, the **Want** object can match a specific ability. The value of **abilityName** must be unique in an application.| | uri | string | No | URI. If **uri** is specified in a **Want** object, the **Want** object will match the specified URI information, including **scheme**, **schemeSpecificPart**, **authority**, and **path**.| | type | string | No | MIME type, that is, the type of the file to open, for example, **text/xml** and **image/***. For details about the MIME type definition, see https://www.iana.org/assignments/media-types/media-types.xhtml?utm_source=ld246.com. | | flags | number | No | How the **Want** object will be handled. By default, numbers are passed in. For details, see [flags](js-apis-ability-wantConstant.md#wantConstant.Flags).| -| action | string | No | Action to take, such as viewing and sharing application details. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data. | +| action | string | No | Action to take, such as viewing and sharing application details. In implicit Want, you can define this field and use it together with **uri** or **parameters** to specify the operation to be performed on the data. For details, see [action](js-apis-app-ability-wantConstant.md#wantConstant.Action). For details about the definition and matching rules of implicit Want, see [Matching Rules of Explicit Want and Implicit Want](application-models/explicit-implicit-want-mappings.md). | | parameters | {[key: string]: any} | No | Want parameters in the form of custom key-value (KV) pairs. By default, the following keys are carried:
        **ohos.aafwk.callerPid**: PID of the caller.
        **ohos.aafwk.param.callerToken**: token of the caller.
        **ohos.aafwk.param.callerUid**: UID in [bundleInfo](js-apis-bundle-BundleInfo.md#bundleinfo-1), that is, the application UID in the bundle information. | -| entities | Array\ | No | Additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit Want and is used to filter ability types. | +| entities | Array\ | No | Additional category information (such as browser and video player) of the target ability. It is a supplement to **action** in implicit Want and is used to filter ability types. For details, see [entity](js-apis-app-ability-wantConstant.md#wantConstant.Entity). | | moduleName9+ | string | No | Module to which the ability belongs.| **Example** -- Basic usage +- Basic usage (called in a UIAbility object, where context in the example is the context object of the UIAbility). ```ts - var want = { - "deviceId": "", // An empty deviceId indicates the local device. - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", - "moduleName": "entry" // moduleName is optional. - }; - this.context.startAbility(want, (error) => { - // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability. - console.log("error.code = " + error.code) - }) + let want = { + "deviceId": "", // An empty deviceId indicates the local device. + "bundleName": "com.example.myapplication", + "abilityName": "EntryAbility", + "moduleName": "entry" // moduleName is optional. + }; + this.context.startAbility(want, (error) => { + // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability. + console.log("error.code = " + error.code) + }) ``` -- Passing a file descriptor (FD) +- Passing a file descriptor (FD) (called in the UIAbility object, where context in the example is the context object of the UIAbility): ```ts - import fileio from '@ohos.fileio'; - var fd; - try { - fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); - } catch(e) { - console.log("openSync fail:" + JSON.stringify(e)); - } - var want = { - "deviceId": "", // An empty deviceId indicates the local device. - "bundleName": "com.extreme.test", - "abilityName": "MainAbility", - "moduleName": "entry", // moduleName is optional. - "parameters": { - "keyFd":{"type":"FD", "value":fd} - } - }; - this.context.startAbility(want, (error) => { - // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability. - console.log("error.code = " + error.code) - }) + import fileio from '@ohos.fileio'; + + // ... + let fd; + try { + fd = fileio.openSync("/data/storage/el2/base/haps/pic.png"); + } catch(e) { + console.log("openSync fail:" + JSON.stringify(e)); + } + let want = { + "deviceId": "", // An empty deviceId indicates the local device. + "bundleName": "com.example.myapplication", + "abilityName": "EntryAbility", + "moduleName": "entry", // moduleName is optional. + "parameters": { + "keyFd":{"type":"FD", "value":fd} + } + }; + this.context.startAbility(want, (error) => { + // Start an ability explicitly. The bundleName, abilityName, and moduleName parameters work together to uniquely identify an ability. + console.log("error.code = " + error.code) + }) + // ... ``` + +- For more details and examples, see [Want](../../application-models/want-overview.md). + diff --git a/en/application-dev/reference/apis/js-apis-inner-app-appVersionInfo.md b/en/application-dev/reference/apis/js-apis-inner-app-appVersionInfo.md index a8eb10e600..39c846bb6e 100644 --- a/en/application-dev/reference/apis/js-apis-inner-app-appVersionInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-app-appVersionInfo.md @@ -1,24 +1,15 @@ # AppVersionInfo -The **AppVersionInfo** module defines the application version information. +The **AppVersionInfo** module defines the application version information. You can use [getAppVersionInfo](js-apis-inner-app-context.md#contextgetappversioninfo7) to obtain the version information of the current application. -**System capability**: SystemCapability.Ability.AbilityRuntime.Core +> **NOTE** +> +> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. -| Name | Type | Readable | Writable | Description | -| ----------- | ------ | ---- | ---- | ------- | -| appName | string | Yes | No | Module name. | -| versionCode | number | Yes | No | Module description.| -| versionName | string | Yes | No | Module description ID.| +**System capability**: SystemCapability.Ability.AbilityRuntime.Core -**Example** -```ts -let appName; -let versionCode; -let versionName; -this.context.getAppVersionInfo((error, data) => { - console.info('getAppVersionInfo data is:' + JSON.stringify(data)); - appName = data.appName; - versionCode = data.versionCode; - versionName = data.versionName; -}); -``` +| Name | Type | Readable| Writable| Description | +| ----------- | ------ | ---- | ---- | -------------- | +| appName | string | Yes | No | Application name. | +| versionCode | number | Yes | No | Application version code.| +| versionName | string | Yes | No | Application version name. | diff --git a/en/application-dev/reference/apis/js-apis-inner-app-context.md b/en/application-dev/reference/apis/js-apis-inner-app-context.md index 84b46fd028..ec72919480 100644 --- a/en/application-dev/reference/apis/js-apis-inner-app-context.md +++ b/en/application-dev/reference/apis/js-apis-inner-app-context.md @@ -5,11 +5,12 @@ The **Context** module provides context for abilities or applications. It allows > **NOTE** > > The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> > The APIs of this module can be used only in the FA model. ## Usage -The **Context** object is created in a **featureAbility** and returned through its **getContext()** API. Therefore, you must import the **@ohos.ability.featureAbility** package before using the **Context** module. An example is as follows: +The **Context** object is created in a **featureAbility** and returned through its [getContext](js-apis-ability-featureAbility.md#featureabilitygetcontext) API. Therefore, you must import the **@ohos.ability.featureAbility** package before using the **Context** module. An example is as follows: ```ts import featureAbility from '@ohos.ability.featureAbility'; @@ -93,14 +94,15 @@ Verifies whether a specific PID and UID have the given permission. This API uses ```ts import featureAbility from '@ohos.ability.featureAbility'; -import bundle from '@ohos.bundle'; +import bundle from '@ohos.bundle.bundleManager'; var context = featureAbility.getContext(); bundle.getBundleInfo('com.context.test', 1, (err, datainfo) =>{ - context.verifyPermission("com.example.permission", {uid:datainfo.uid}, (err, data) =>{ + context.verifyPermission("com.example.permission", {uid:datainfo.appInfo.uid}, (err, data) =>{ console.info("verifyPermission err: " + JSON.stringify(err) + "data: " + JSON.stringify(data)); }); }); ``` +For details about **getBundleInfo** in the sample code, see [bundleManager](js-apis-bundleManager.md). @@ -250,7 +252,7 @@ Obtains information about the current application. This API uses an asynchronous | Name | Type | Mandatory | Description | | -------- | ------------------------------- | ---- | ------------ | -| callback | AsyncCallback\<[ApplicationInfo](js-apis-bundle-ApplicationInfo.md)> | Yes | Callback used to return the application information.| +| callback | AsyncCallback\<[ApplicationInfo](js-apis-bundleManager-applicationInfo.md)> | Yes | Callback used to return the application information.| **Example** @@ -352,7 +354,7 @@ Obtains the display orientation of this ability. This API uses an asynchronous c | Name | Type | Mandatory| Description | | -------- | ------------------------------------------------------------ | ---- | ------------------ | -| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation)> | Yes | Callback used to return the display orientation.| +| callback | AsyncCallback\<[bundle.DisplayOrientation](js-apis-bundleManager.md#displayorientation)> | Yes | Callback used to return the display orientation.| **Example** @@ -376,7 +378,7 @@ Obtains the display orientation of this ability. This API uses a promise to retu | Type | Description | | ---------------------------------------- | --------- | -| Promise\<[bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation)> | Promise used to return the display orientation.| +| Promise\<[bundle.DisplayOrientation](js-apis-bundleManager.md#displayorientation)> | Promise used to return the display orientation.| **Example** @@ -448,7 +450,7 @@ Sets the display orientation for this ability. This API uses an asynchronous cal | Name | Type | Mandatory | Description | | ----------- | ---------------------------------------- | ---- | ------------ | -| orientation | [bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation) | Yes | Display orientation to set.| +| orientation | [bundle.DisplayOrientation](js-apis-bundleManager.md#displayorientation) | Yes | Display orientation to set.| | callback | AsyncCallback\ | Yes | Callback used to return the display orientation. | **Example** @@ -457,7 +459,7 @@ Sets the display orientation for this ability. This API uses an asynchronous cal import featureAbility from '@ohos.ability.featureAbility'; import bundle from '@ohos.bundle'; var context = featureAbility.getContext(); -var orientation=bundle.DisplayOrientation.UNSPECIFIED +var orientation = bundle.DisplayOrientation.UNSPECIFIED; context.setDisplayOrientation(orientation, (err) => { console.info("setDisplayOrientation err: " + JSON.stringify(err)); }); @@ -475,7 +477,7 @@ Sets the display orientation for this ability. This API uses a promise to return | Type | Description | | ---------------------------------------- | ---------------------------------------- | -| orientation | [bundle.DisplayOrientation](js-apis-Bundle.md#displayorientation) | +| orientation | [bundle.DisplayOrientation](js-apis-bundleManager.md#displayorientation) | | Promise\ | Promise used to return the display orientation. | **Example** @@ -484,7 +486,7 @@ Sets the display orientation for this ability. This API uses a promise to return import featureAbility from '@ohos.ability.featureAbility'; import bundle from '@ohos.bundle'; var context = featureAbility.getContext(); -var orientation=bundle.DisplayOrientation.UNSPECIFIED +var orientation = bundle.DisplayOrientation.UNSPECIFIED; context.setDisplayOrientation(orientation).then((data) => { console.info("setDisplayOrientation data: " + JSON.stringify(data)); }); @@ -510,7 +512,7 @@ Sets whether to show this feature at the top of the lock screen so that the feat ```ts import featureAbility from '@ohos.ability.featureAbility'; var context = featureAbility.getContext(); -var show=true +var show = true; context.setShowOnLockScreen(show, (err) => { console.info("setShowOnLockScreen err: " + JSON.stringify(err)); }); @@ -541,7 +543,7 @@ Sets whether to show this feature at the top of the lock screen so that the feat ```ts import featureAbility from '@ohos.ability.featureAbility'; var context = featureAbility.getContext(); -var show=true +var show = true; context.setShowOnLockScreen(show).then((data) => { console.info("setShowOnLockScreen data: " + JSON.stringify(data)); }); @@ -567,7 +569,7 @@ Sets whether to wake up the screen when this feature is restored. This API uses ```ts import featureAbility from '@ohos.ability.featureAbility'; var context = featureAbility.getContext(); -var wakeUp=true +var wakeUp = true; context.setWakeUpScreen(wakeUp, (err) => { console.info("setWakeUpScreen err: " + JSON.stringify(err)); }); @@ -598,7 +600,7 @@ Sets whether to wake up the screen when this feature is restored. This API uses ```ts import featureAbility from '@ohos.ability.featureAbility'; var context = featureAbility.getContext(); -var wakeUp=true +var wakeUp = true; context.setWakeUpScreen(wakeUp).then((data) => { console.info("setWakeUpScreen data: " + JSON.stringify(data)); }); @@ -673,7 +675,7 @@ This API is available only to Page abilities. | Name | Type | Mandatory | Description | | -------- | --------------------------- | ---- | -------------------------------------- | -| callback | AsyncCallback\<[ElementName](js-apis-bundle-ElementName.md)> | Yes | Callback used to return the **ohos.bundle.ElementName** object.| +| callback | AsyncCallback\<[ElementName](js-apis-bundleManager-elementName.md)> | Yes | Callback used to return the **ohos.bundle.ElementName** object.| **Example** @@ -701,7 +703,7 @@ This API is available only to Page abilities. | Type | Description | | --------------------- | ------------------------------------ | -| Promise\<[ElementName](js-apis-bundle-ElementName.md)> | Promise used to return the **ohos.bundle.ElementName** object.| +| Promise\<[ElementName](js-apis-bundleManager-elementName.md)> | Promise used to return the **ohos.bundle.ElementName** object.| **Example** @@ -769,7 +771,7 @@ context.getProcessName().then((data) => { getCallingBundle(callback: AsyncCallback\): void -Obtains the bundle name of the calling ability. This API uses an asynchronous callback to return the result. +Obtains the bundle name of the caller ability. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -795,7 +797,7 @@ context.getCallingBundle((err, data) => { getCallingBundle(): Promise\ -Obtains the bundle name of the calling ability. This API uses a promise to return the result. +Obtains the bundle name of the caller ability. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -925,7 +927,7 @@ If the distributed file path does not exist, the system will create one and retu | Name | Type | Mandatory | Description | | -------- | ---------------------- | ---- | ---------------------------------------- | -| callback | AsyncCallback\ | Yes | Callback used to return the distributed file path. If the distributed file path does not exist, the system will create one and return the created path.| +| callback | AsyncCallback\ | Yes | Callback used to return the distributed file path.
        If the path does not exist, the system will create one and return the created path.| **Example** @@ -951,7 +953,7 @@ If the distributed file path does not exist, the system will create one and retu | Type | Description | | ---------------- | ----------------------------------- | -| Promise\ | Promise used to return the distributed file path. If this API is called for the first time, a new path will be created.| +| Promise\ | Promise used to return the distributed file path. If this API is called for the first time, a path will be created.| **Example** @@ -1023,7 +1025,7 @@ Obtains the **ModuleInfo** object of the application. This API uses an asynchron | Name | Type | Mandatory | Description | | -------- | ---------------------------------------- | ---- | --------------------------------------- | -| callback | AsyncCallback\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | Yes | Callback used to return the **ModuleInfo** object.| +| callback | AsyncCallback\<[HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md)> | Yes | Callback used to return the **ModuleInfo** object.| **Example** @@ -1047,7 +1049,7 @@ Obtains the **ModuleInfo** object of the application. This API uses a promise to | Type | Description | | ---------------------------------------- | ------------------ | -| Promise\<[HapModuleInfo](js-apis-bundle-HapModuleInfo.md)> | Promise used to return the **ModuleInfo** object.| +| Promise\<[HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md)> | Promise used to return the **ModuleInfo** object.| **Example** @@ -1119,7 +1121,7 @@ Obtains information about this ability. This API uses an asynchronous callback t | Name | Type | Mandatory | Description | | -------- | ---------------------------------------- | ---- | --------------------------------------- | -| callback | AsyncCallback\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | Yes | Callback used to return the ability information.| +| callback | AsyncCallback\<[AbilityInfo](js-apis-bundleManager-abilityInfo.md)> | Yes | Callback used to return the ability information.| **Example** @@ -1143,7 +1145,7 @@ Obtains information about this ability. This API uses a promise to return the re | Type | Description | | ---------------------------------------- | ------------------ | -| Promise\<[AbilityInfo](js-apis-bundle-AbilityInfo.md)> | Promise used to return the ability information.| +| Promise\<[AbilityInfo](js-apis-bundleManager-abilityInfo.md)> | Promise used to return the ability information.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-inner-app-processInfo.md b/en/application-dev/reference/apis/js-apis-inner-app-processInfo.md index 0da1d45efc..351d6ad145 100644 --- a/en/application-dev/reference/apis/js-apis-inner-app-processInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-app-processInfo.md @@ -1,13 +1,19 @@ # ProcessInfo -The **ProcessInfo** module defines process information. +The **ProcessInfo** module defines process information. You can use [getProcessInfo](js-apis-inner-app-context.md#contextgetprocessinfo7) to obtain information about the processes running on the current ability. + +> **NOTE** +> +> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +> The APIs of this module can be used only in the FA model. **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| pid | number | Yes| No| Process ID.| -| processName | string | Yes| No| Process name.| +| pid | number | Yes| No| Process ID.| +| processName | string | Yes| No| Process name.| **Example** ```ts diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md index 71163a1d85..ad4f7e19a9 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegator.md @@ -8,14 +8,11 @@ The **AbilityDelegator** module provides APIs for managing **AbilityMonitor** in ## Usage -The ability delegator can be obtained by calling **getAbilityDelegator** in **AbilityDelegatorRegistry**. +An **AbilityDelegator** object is obtained by calling [getAbilityDelegator](js-apis-app-ability-abilityDelegatorRegistry.md#abilitydelegatorregistrygetabilitydelegator) in **AbilityDelegatorRegistry**. ```ts import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' -var abilityDelegator; - -abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); - +let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); ``` ## AbilityDelegator @@ -1044,7 +1041,7 @@ abilityDelegator.waitAbilityStageMonitor(monitor, (err : any, data : any) => { console.info("waitAbilityStageMonitor callback"); }); ``` - + ### waitAbilityStageMonitor9+ waitAbilityStageMonitor(monitor: AbilityStageMonitor, timeout?: number): Promise\; diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegatorArgs.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegatorArgs.md index 97ecb0ed8b..a5f131c3e0 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegatorArgs.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityDelegatorArgs.md @@ -1,6 +1,6 @@ # AbilityDelegatorArgs -The **AbilityDelegatorArgs** module provides a global register to store the registered **AbilityDelegator** and **AbilityDelegatorArgs** instances during application startup. +The **AbilityDelegatorArgs** module provides APIs to obtain an **AbilityDelegatorArgs** object during the execution of test cases. > **NOTE** > @@ -8,7 +8,7 @@ The **AbilityDelegatorArgs** module provides a global register to store the regi ## Usage -The ability delegator arguments are obtained by calling **getArguments** in **AbilityDelegatorRegistry**. +An **AbilityDelegatorArgs** object is obtained by calling [getArguments](js-apis-app-ability-abilityDelegatorRegistry.md#abilitydelegatorregistrygetarguments) in **AbilityDelegatorRegistry**. ## AbilityDelegatorArgs diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityMonitor.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityMonitor.md index 7aef330348..d8726205b8 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-abilityMonitor.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityMonitor.md @@ -8,7 +8,7 @@ The **AbilityMonitor** module provides monitors for abilities that meet specifie ## Usage -The ability monitor can be set by calling **addAbilityMonitor** in **abilityDelegator**. +**AbilityMonitor** can be used as an input parameter of [addAbilityMonitor](js-apis-inner-application-abilityDelegator.md#addabilitymonitor9) in **abilityDelegator** to listen for lifecycle changes of an ability. ## AbilityMonitor @@ -31,7 +31,6 @@ Describes an ability monitor. ```ts import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' -var abilityDelegator; function onAbilityCreateCallback(data) { console.info("onAbilityCreateCallback"); @@ -42,7 +41,7 @@ var monitor = { onAbilityCreate: onAbilityCreateCallback } -abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); +var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.addAbilityMonitor(monitor, (err : any) => { console.info("addAbilityMonitor callback"); }); diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityRunningInfo.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityRunningInfo.md index 4f553001c6..62b1f7e1fa 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-abilityRunningInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityRunningInfo.md @@ -8,7 +8,7 @@ The **AbilityRunningInfo** module defines the running information and state of a ## Usage -The ability running information is obtained by using the **getAbilityRunningInfos** API in **abilityManager**. +The ability running information is obtained by calling [getAbilityRunningInfos](js-apis-app-ability-abilityManager.md#getabilityrunninginfos) in **abilityManager**. ## Attributes diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityStageContext.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityStageContext.md index 99a2453d84..79f750797c 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-abilityStageContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityStageContext.md @@ -26,7 +26,7 @@ class MyAbilityStage extends AbilityStage { **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| currentHapModuleInfo | HapModuleInfo | Yes| No| **ModuleInfo** object corresponding to the **AbilityStage**.| -| config | [Configuration](js-apis-configuration.md) | Yes| No| Configuration for the environment where the application is running.| +| currentHapModuleInfo | HapModuleInfo | Yes| No| **ModuleInfo** object corresponding to the **AbilityStage**.| +| config | [Configuration](js-apis-app-ability-configuration.md) | Yes| No| Configuration for the environment where the application is running.| diff --git a/en/application-dev/reference/apis/js-apis-inner-application-abilityStateData.md b/en/application-dev/reference/apis/js-apis-inner-application-abilityStateData.md index b86ba33545..eb539bd981 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-abilityStateData.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-abilityStateData.md @@ -1,33 +1,36 @@ # AbilityStateData -The **AbilityStateData** module defines the ability state information. +The **AbilityStateData** module defines the ability state information, which can be obtained through the **onAbilityStateChanged** lifecycle callback of [ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md). The callback can be invoked after a lifecycle change listener is registered through [registerApplicationStateObserver](js-apis-application-appManager.md#appmanagerregisterapplicationstateobserver8). **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Type | Readable| Writable| Description | | ----------------------- | ---------| ---- | ---- | ------------------------- | | pid8+ | number | Yes | No | Process ID. | -| bundleName8+ | string | Yes | No | Bundle name of an application. | +| bundleName8+ | string | Yes | No | Bundle name. | | abilityName8+ | string | Yes | No | Ability name. | | uid8+ | number | Yes | No | User ID. | -| state8+ | number | Yes | No | Ability state. | +| state8+ | number | Yes | No | [Ability state](#ability-states). | | moduleName9+ | string | Yes | No | Name of the HAP file to which the ability belongs. | -| abilityType8+ | string | Yes | No | Ability type. | +| abilityType8+ | number | Yes | No | [Ability type](#ability-types), which can be **page** or **service**.| -**Example** -```ts -import appManager from "@ohos.application.appManager" +#### Ability States -appManager.getForegroundApplications((error, data) => { - for(let i=0; i { diff --git a/en/application-dev/reference/apis/js-apis-inner-application-applicationStateObserver.md b/en/application-dev/reference/apis/js-apis-inner-application-applicationStateObserver.md index 15925c305a..e6d3137582 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-applicationStateObserver.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-applicationStateObserver.md @@ -1,18 +1,18 @@ # ApplicationStateObserver -The **ApplicationStateObserver** module defines the listener to observe the application state. +The **ApplicationStateObserver** module defines an observer to listen for application state changes. It can be used as an input parameter in [registerApplicationStateObserver](js-apis-application-appManager.md#appmanagerregisterapplicationstateobserver8) to listen for lifecycle changes of the current application. **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. -| Name | Type | Readable| Writable| Description | -| ----------------------- | ---------| ---- | ---- | ------------------------- | -| onForegroundApplicationChanged8+ | AsyncCallback\ | Yes | No | Callback invoked when the foreground or background state of an application changes. | -| onAbilityStateChanged8+ | AsyncCallback\ | Yes | No | Callback invoked when the ability state changes. | -| onProcessCreated8+ | AsyncCallback\ | Yes | No | Callback invoked when a process is created. | -| onProcessDied8+ | AsyncCallback\ | Yes | No | Callback invoked when a process is destroyed. | -| onProcessStateChanged8+ | AsyncCallback\ | Yes | No | Callback invoked when the process state is changed. | +| Name | | Type | Readable| Writable| Description | +| ----------------------- | ---------| ---- | ---- | ------------------------- | ------------------------- | +| onForegroundApplicationChanged8+ | [AppStateData](js-apis-inner-application-appStateData.md) | AsyncCallback\ | Yes | No | Callback invoked when the foreground or background state of an application changes. | +| onAbilityStateChanged8+ | [AbilityStateData](js-apis-inner-application-abilityStateData.md) | AsyncCallback\ | Yes | No | Callback invoked when the ability state changes. | +| onProcessCreated8+ | [ProcessData](js-apis-inner-application-processData.md) | AsyncCallback\ | Yes | No | Callback invoked when a process is created. | +| onProcessDied8+ | [ProcessData](js-apis-inner-application-processData.md) | AsyncCallback\ | Yes | No | Callback invoked when a process is destroyed. | +| onProcessStateChanged8+ | [ProcessData](js-apis-inner-application-processData.md) | AsyncCallback\ | Yes | No | Callback invoked when the process state is changed. | **Example** ```ts diff --git a/en/application-dev/reference/apis/js-apis-inner-application-baseContext.md b/en/application-dev/reference/apis/js-apis-inner-application-baseContext.md index 24b284ed85..3c0e5e3806 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-baseContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-baseContext.md @@ -1,23 +1,28 @@ # BaseContext -The abstract class **BaseContext** specifies whether its child class **Context** is used for the stage model or FA model. +**BaseContext** is an abstract class that specifies whether a child class **Context** is used for the stage model or FA model. It is the parent class for all types of **Context**. > **NOTE** -> -> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> +> The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **System capability**: SystemCapability.Ability.AbilityRuntime.Core | Name | Type | Readable | Writable | Description | | -------- | ------ | ---- | ---- | ------- | -| stageMode | boolean | Yes | Yes | Whether the context is used for the stage model.| +| stageMode | boolean | Yes | Yes | Whether the child class **Context** is used for the stage model.
        **true**: used for the stage model.
        **false**: used for the FA model.| **Example** - - ```ts - class MyContext extends BaseContext { - constructor(stageMode) { - this.stageMode = stageMode; - } - } - ``` + +Take the stage model as an example. You can access the **stageMode** field through **UIAbilityContext**. + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +class EntryAbility extends UIAbility { + onCreate(want, launchParam) { + // EntryAbility onCreate, isStageMode: true + console.log("EntryAbility onCreate, isStageMode: " + this.context.stageMode); + } +} +``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-context.md b/en/application-dev/reference/apis/js-apis-inner-application-context.md index 15e249798f..2a4fe5eaaf 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-context.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-context.md @@ -1,11 +1,11 @@ # Context -The **Context** module provides context for abilities or applications. It allows access to application-specific resources, as well as permission requests and verification. +The **Context** module provides context for abilities or applications. It allows access to application-specific resources. > **NOTE** > -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> The APIs of this module can be used only in the stage model. +> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - The APIs of this module can be used only in the stage model. ## Attributes @@ -13,8 +13,8 @@ The **Context** module provides context for abilities or applications. It allows | Name | Type | Readable | Writable | Description | | ----------- | ------ | ---- | ---- | ------- | -| resourceManager | resmgr.ResourceManager | Yes | No | Object for resource management. | -| applicationInfo | ApplicationInfo | Yes | No | Application information.| +| resourceManager | resmgr.[ResourceManager](js-apis-resource-manager.md) | Yes | No | Object for resource management. | +| applicationInfo | [ApplicationInfo](js-apis-bundle-ApplicationInfo.md) | Yes | No | Application information.| | cacheDir | string | Yes | No | Cache directory.| | tempDir | string | Yes | No | Temporary directory.| | filesDir | string | Yes | No | File directory.| @@ -25,20 +25,21 @@ The **Context** module provides context for abilities or applications. It allows | eventHub | string | Yes | No | Event hub that implements event subscription, unsubscription, and triggering.| | area | [AreaMode](#areamode) | Yes | No | Area in which the file to be access is located.| - ## Context.createBundleContext createBundleContext(bundleName: string): Context; Creates the context based on the bundle name. +**Required permissions**: ohos.permission.GET_BUNDLE_INFO_PRIVILEGED + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** | Name | Type | Mandatory | Description | | -------- | ---------------------- | ---- | ------------- | -| bundleName | string | Yes | Bundle name of the application.| +| bundleName | string | Yes | Bundle name.| **Return value** @@ -46,10 +47,24 @@ Creates the context based on the bundle name. | -------- | -------- | | Context | Context created.| +**Error codes** + +| ID| Error Message| +| ------- | -------------------------------- | +| 401 | If the input parameter is not valid parameter. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + **Example** ```ts -let bundleContext = this.context.createBundleContext("com.example.test"); +let bundleContext; +try { + bundleContext = this.context.createBundleContext("com.example.test"); +} catch (error) { + console.log('createBundleContext failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); +} ``` ## Context.createModuleContext @@ -72,10 +87,24 @@ Creates the context based on the module name. | -------- | -------- | | Context | Context created.| +**Error codes** + +| ID| Error Message| +| ------- | -------------------------------- | +| 401 | If the input parameter is not valid parameter. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + **Example** ```ts -let moduleContext = this.context.createModuleContext("entry"); +let moduleContext; +try { + moduleContext = this.context.createModuleContext("entry"); +} catch (error) { + console.log('createModuleContext failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); +} ``` createModuleContext(bundleName: string, moduleName: string): Context; @@ -88,7 +117,7 @@ Creates the context based on the bundle name and module name. | Name | Type | Mandatory | Description | | -------- | ---------------------- | ---- | ------------- | -| bundleName | string | Yes | Bundle name of the application.| +| bundleName | string | Yes | Bundle name.| | moduleName | string | Yes | Module name.| **Return value** @@ -97,17 +126,31 @@ Creates the context based on the bundle name and module name. | -------- | -------- | | Context | Context created.| +**Error codes** + +| ID| Error Message| +| ------- | -------------------------------- | +| 401 | If the input parameter is not valid parameter. | + +For details about the error codes, see [Ability Error Codes](../errorcodes/errorcode-ability.md). + **Example** ```ts -let moduleContext = this.context.createModuleContext("com.example.test", "entry"); +let moduleContext; +try { + moduleContext = this.context.createModuleContext("com.example.test", "entry"); +} catch (error) { + console.log('createModuleContext failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); +} ``` ## Context.getApplicationContext getApplicationContext(): ApplicationContext; -Obtains the application context. +Obtains the context of this application. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -115,12 +158,18 @@ Obtains the application context. | Type| Description| | -------- | -------- | -| Context | Application context obtained.| +| [ApplicationContext](js-apis-inner-application-applicationContext.md) | Application context obtained.| **Example** ```ts -let applicationContext = this.context.getApplicationContext(); +let applicationContext; +try { + applicationContext = this.context.getApplicationContext(); +} catch (error) { + console.log('getApplicationContext failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); +} ``` ## AreaMode @@ -129,7 +178,7 @@ Enumerates the areas in which the file to be access can be located. **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name| Value| Description| +| Name| Value| Description| | -------- | -------- | -------- | -| EL1 | 0 | Device-level encryption area.| -| EL2 | 1 | User credential encryption area.| +| EL1 | 0 | Device-level encryption area, which is accessible after the device is powered on.| +| EL2 | 1 | User-level encryption area, which is accessible only after the device is powered on and the password is entered (for the first time).| diff --git a/en/application-dev/reference/apis/js-apis-inner-application-continueCallback.md b/en/application-dev/reference/apis/js-apis-inner-application-continueCallback.md index 93d138db23..b67c612c1b 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-continueCallback.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-continueCallback.md @@ -1,37 +1,46 @@ # ContinueCallback -The **ContinueCallback** module defines the callback invoked when the mission continuation is complete. +The **ContinueCallback** module defines the callback function that indicates the result of mission continuation. For details about mission continuation, see [continueMission](js-apis-distributedMissionManager.md#distributedmissionmanagercontinuemission). + +## ContinueCallback.onContinueDone + +onContinueDone(result: number): void; + +Called when the mission continuation is complete. **System capability**: SystemCapability.Ability.AbilityRuntime.Mission -| Name | Type | Readable | Writable | Description | -| --------------------- | -------- | ---- | ---- | ------------------ | -| onContinueDone | function | Yes | No | Callback used to notify the user that the mission continuation is complete and return the continuation result. | +**Parameters** + + | Name| Type| Mandatory| Description| + | -------- | -------- | -------- | -------- | + | result | number | No| Mission continuation result.| **Example** ```ts - import distributedMissionManager from '@ohos.distributedMissionManager'; + import distributedMissionManager from '@ohos.distributedMissionManager' let continueDeviceInfo = { - srcDeviceId: "123", - dstDeviceId: "456", - missionId: 123, - wantParam: { - "key":"value" - } + srcDeviceId: "123", + dstDeviceId: "456", + missionId: 123, + wantParam: { + "key":"value" + } }; let continueCallback = { onContinueDone(result) { console.log('onContinueDone, result: ' + JSON.stringify(result)); } - } + }; distributedMissionManager.continueMission(continueDeviceInfo, continueCallback, (error) => { - if (error.code != 0) { - console.error('continueMission failed, cause: ' + JSON.stringify(error)) - } - console.info('continueMission finished') + if (error && error.code) { + console.log('continueMission failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + } + console.log('continueMission finished'); }) ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-continueDeviceInfo.md b/en/application-dev/reference/apis/js-apis-inner-application-continueDeviceInfo.md index b42044ef89..5582132e3f 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-continueDeviceInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-continueDeviceInfo.md @@ -1,6 +1,6 @@ # ContinueDeviceInfo -The **ContinueDeviceInfo** module defines the parameters required for mission continuation. +The **ContinueDeviceInfo** module defines the parameters required for initiating mission continuation. For details about mission continuation, see [continueMission](js-apis-distributedMissionManager.md#distributedmissionmanagercontinuemission). **System capability**: SystemCapability.Ability.AbilityRuntime.Mission @@ -14,27 +14,28 @@ The **ContinueDeviceInfo** module defines the parameters required for mission co **Example** ```ts - import distributedMissionManager from '@ohos.distributedMissionManager'; + import distributedMissionManager from '@ohos.distributedMissionManager' let continueDeviceInfo = { - srcDeviceId: "123", - dstDeviceId: "456", - missionId: 123, - wantParam: { - "key":"value" - } + srcDeviceId: "123", + dstDeviceId: "456", + missionId: 123, + wantParam: { + "key":"value" + } }; let continueCallback = { onContinueDone(result) { console.log('onContinueDone, result: ' + JSON.stringify(result)); } - } + }; distributedMissionManager.continueMission(continueDeviceInfo, continueCallback, (error) => { - if (error.code != 0) { - console.error('continueMission failed, cause: ' + JSON.stringify(error)) - } - console.info('continueMission finished') + if (error && error.code) { + console.log('continueMission failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + } + console.log('continueMission finished'); }) ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-errorObserver.md b/en/application-dev/reference/apis/js-apis-inner-application-errorObserver.md index 056a2313dd..271f269780 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-errorObserver.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-errorObserver.md @@ -1,8 +1,8 @@ # ErrorObserver -The **ErrorObserver** module defines the listener to observe errors. +The **ErrorObserver** module defines an observer to listen for application errors. It can be used as an input parameter in [ErrorManager.on](js-apis-app-ability-errorManager.md#errormanageron) to listen for errors that occur in the current application. -## onUnhandledException +## ErrorObserver.onUnhandledException onUnhandledException(errMsg: string): void; @@ -16,15 +16,21 @@ Called when an unhandled exception occurs in the JS runtime. | -------- | -------- | -------- | -------- | | errMsg | string | No| Message and error stack trace about the exception.| -**Example** +**Example** ```ts -import errorManager from '@ohos.application.errorManager'; +import errorManager from '@ohos.app.ability.errorManager' let observer = { onUnhandledException(errorMsg) { - console.log('onUnhandledException, errorMsg: ' + JSON.stringify(errorMsg)); + console.log('HXW onUnhandledException, errorMsg: ', errorMsg); } } -errorManager.registerErrorObserver(observer) + +try { + errorManager.on("error", observer); +} catch (error) { + console.log('registerErrorObserver' + ' failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-eventHub.md b/en/application-dev/reference/apis/js-apis-inner-application-eventHub.md index 9c45684cd9..8b580177c7 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-eventHub.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-eventHub.md @@ -3,22 +3,24 @@ The **EventHub** module provides APIs to subscribe to, unsubscribe from, and trigger events. > **NOTE** -> -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> The APIs of this module can be used only in the stage model. +> +> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - The APIs of this module can be used only in the stage model. ## Usage -Before using any APIs in the **EventHub**, you must obtain an **EventHub** instance through the member variable **context** of the **Ability** instance. +Before using any APIs in the **EventHub**, you must obtain an **EventHub** instance through the member variable **context** of the **UIAbility** instance. ```ts -import Ability from '@ohos.application.Ability'; -export default class MainAbility extends Ability { - func1(){ - console.log("func1 is called"); +import UIAbility from '@ohos.app.ability.UIAbility'; + +export default class EntryAbility extends UIAbility { + eventFunc(){ + console.log("eventFunc is called"); } + onForeground() { - this.context.eventHub.on("123", this.func1); + this.context.eventHub.on("myEvent", this.eventFunc); } } ``` @@ -38,34 +40,37 @@ Subscribes to an event. | event | string | Yes| Event name.| | callback | Function | Yes| Callback invoked when the event is triggered.| -**Example** - - ```ts - import Ability from '@ohos.application.Ability'; - - export default class MainAbility extends Ability { - onForeground() { - this.context.eventHub.on("123", this.func1); - this.context.eventHub.on("123", () => { - console.log("call anonymous func 1"); - }); - // Result - // func1 is called - // call anonymous func 1 - this.context.eventHub.emit("123"); - } - func1() { - console.log("func1 is called"); - } - } - ``` +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; +export default class EntryAbility extends UIAbility { + onForeground() { + this.context.eventHub.on("myEvent", this.eventFunc); + // Anonymous functions can be used to subscribe to events. + this.context.eventHub.on("myEvent", () => { + console.log("call anonymous eventFunc"); + }); + // Result + // eventFunc is called + // call anonymous eventFunc + this.context.eventHub.emit("myEvent"); + } + + eventFunc() { + console.log("eventFunc is called"); + } +} +``` ## EventHub.off off(event: string, callback?: Function): void; -Unsubscribes from an event. If **callback** is specified, this API unsubscribes from the specified callback. If **callback** is not specified, this API unsubscribes from all callbacks in the event. +Unsubscribes from an event. + - If **callback** is specified, this API unsubscribes from the given event with the specified callback. + - If **callback** is not specified, this API unsubscribes from the given event with all callbacks. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -74,30 +79,31 @@ Unsubscribes from an event. If **callback** is specified, this API unsubscribes | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | event | string | Yes| Event name.| -| callback | Function | No| Callback for the event. If **callback** is unspecified, all callbacks of the event are unsubscribed.| - -**Example** - - ```ts - import Ability from '@ohos.application.Ability'; - - export default class MainAbility extends Ability { - onForeground() { - this.context.eventHub.on("123", this.func1); - this.context.eventHub.off("123", this.func1); // Unsubscribe from func1. - this.context.eventHub.on("123", this.func1); - this.context.eventHub.on("123", this.func2); - this.context.eventHub.off("123"); // Unsubscribe from func1 and func2. - } - func1() { - console.log("func1 is called"); - } - func2() { - console.log("func2 is called"); - } - } - ``` +| callback | Function | No| Callback for the event. If **callback** is unspecified, the given event with all callbacks is unsubscribed.| + +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +export default class EntryAbility extends UIAbility { + onForeground() { + this.context.eventHub.on("myEvent", this.eventFunc1); + this.context.eventHub.off("myEvent", this.eventFunc1); // Unsubscribe from the myEvent event with the callback eventFunc1. + this.context.eventHub.on("myEvent", this.eventFunc1); + this.context.eventHub.on("myEvent", this.eventFunc2); + this.context.eventHub.off("myEvent"); // Unsubscribe from the myEvent event with all the callbacks (eventFunc1 and eventFunc2). + } + + eventFunc1() { + console.log("eventFunc1 is called"); + } + eventFunc2() { + console.log("eventFunc2 is called"); + } +} +``` ## EventHub.emit @@ -114,26 +120,27 @@ Triggers an event. | event | string | Yes| Event name.| | ...args | Object[] | Yes| Variable parameters, which are passed to the callback when the event is triggered.| -**Example** - - ```ts - import Ability from '@ohos.application.Ability'; - - export default class MainAbility extends Ability { - onForeground() { - this.context.eventHub.on("123", this.func1); - // Result - // func1 is called,undefined,undefined - this.context.eventHub.emit("123"); - // Result - // func1 is called,1,undefined - this.context.eventHub.emit("123", 1); - // Result - // func1 is called,1,2 - this.context.eventHub.emit("123", 1, 2); - } - func1(a, b) { - console.log("func1 is called," + a + "," + b); - } - } - ``` +**Example** + +```ts +import UIAbility from '@ohos.app.ability.UIAbility'; + +export default class EntryAbility extends UIAbility { + onForeground() { + this.context.eventHub.on("myEvent", this.eventFunc); + // Result + // eventFunc is called,undefined,undefined + this.context.eventHub.emit("myEvent"); + // Result + // eventFunc is called,1,undefined + this.context.eventHub.emit("myEvent", 1); + // Result + // eventFunc is called,1,2 + this.context.eventHub.emit("myEvent", 1, 2); + } + + eventFunc(argOne, argTwo) { + console.log("eventFunc is called," + argOne + "," + argTwo); + } +} +``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-extensionContext.md b/en/application-dev/reference/apis/js-apis-inner-application-extensionContext.md index 1ed64e2a07..a855d9577c 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-extensionContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-extensionContext.md @@ -5,7 +5,7 @@ The **ExtensionContext** module, inherited from **Context**, implements the cont This module provides APIs for accessing resources of a specific Extension ability. An Extension ability can use the context directly provided by **ExtensionContext** or that extended from **ExtensionContext**. For example, **ServiceExtension** uses [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md), which extends the capabilities of starting, stopping, binding, and unbinding abilities based on **ExtensionContext**. > **NOTE** -> +> > - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. > - The APIs of this module can be used only in the stage model. @@ -61,10 +61,11 @@ export default class TheServiceExtension extends ServiceExtension { Start **ServiceExtension** within the **onCreate** callback of the main ability of the entry. ```ts -import Ability from '@ohos.app.ability.Ability' -export default class MainAbility extends Ability { +import UIAbility from '@ohos.app.ability.UIAbility'; + +export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { - console.log("[Demo] MainAbility onCreate"); + console.log("[Demo] EntryAbility onCreate"); let wantExt = { deviceId: "", bundleName: "com.example.TheServiceExtension", diff --git a/en/application-dev/reference/apis/js-apis-inner-application-extensionRunningInfo.md b/en/application-dev/reference/apis/js-apis-inner-application-extensionRunningInfo.md index 9184ae6ce0..9485de9efd 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-extensionRunningInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-extensionRunningInfo.md @@ -1,15 +1,15 @@ # ExtensionRunningInfo -The **ExtensionRunningInfo** module provides running information and states for Extension abilities. +The **ExtensionRunningInfo** module encapsulates ExtensionAbility running information, which can be obtained through [getExtensionRunningInfos](js-apis-app-ability-abilityManager.md#getextensionrunninginfos). > **NOTE** > -> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. -> The APIs of this module are system APIs and cannot be called by third-party applications. +> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> - This module is marked as @systemapi and not visible to third-party applications. ## Usage -The Extension ability running information is obtained through an **abilityManager** instance. +Import the **abilityManager** module and obtain the ExtensionAbility running information by calling the method in the **abilityManager** module. ## Attributes @@ -17,29 +17,37 @@ The Extension ability running information is obtained through an **abilityManage | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| extension | ElementName | Yes| No| Information that matches an Extension ability.| +| extension | [ElementName](js-apis-bundleManager-elementName.md) | Yes| No| ExtensionAbility information.| | pid | number | Yes| No| Process ID.| -| uid | number | Yes| No| User ID.| +| uid | number | Yes| No| UID of the application.| | processName | string | Yes| No| Process name.| -| startTime | number | Yes| No| Start time of the Extension ability.| +| startTime | number | Yes| No| Timestamp when the ExtensionAbility is started.| | clientPackage | Array<String> | Yes| No| Names of all packages in the process.| -| type | [bundle.ExtensionAbilityType](js-apis-Bundle.md) | Yes| No| Extension ability type.| +| type | [ExtensionAbilityType](js-apis-bundleManager.md#extensionabilitytype) | Yes| No| ExtensionAbility type.| **Example** ```ts -import abilityManager from '@ohos.application.abilityManager'; -let upperLimit=1; -abilityManager.getExtensionRunningInfos(upperLimit, (err,data) => { - console.log("getExtensionRunningInfos err: " + err + " data: " + JSON.stringify(data)); - for (let i=0; i { + if (error && error.code) { + console.log('getForegroundApplications failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + return; + } + + for (let i = 0; i < data.length; i++) { + let extensionRunningInfo = data[i]; + console.log("extensionRunningInfo.extension: " + JSON.stringify(extensionRunningInfo.extension)); + console.log("extensionRunningInfo.pid: " + JSON.stringify(extensionRunningInfo.pid)); + console.log("extensionRunningInfo.uid: " + JSON.stringify(extensionRunningInfo.uid)); + console.log("extensionRunningInfo.processName: " + JSON.stringify(extensionRunningInfo.processName)); + console.log("extensionRunningInfo.startTime: " + JSON.stringify(extensionRunningInfo.startTime)); + console.log("extensionRunningInfo.clientPackage: " + JSON.stringify(extensionRunningInfo.clientPackage)); + console.log("extensionRunningInfo.type: " + JSON.stringify(extensionRunningInfo.type)); + } + }); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-formExtensionContext.md b/en/application-dev/reference/apis/js-apis-inner-application-formExtensionContext.md index bc9cb28c60..d888ccdc51 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-formExtensionContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-formExtensionContext.md @@ -1,8 +1,8 @@ # FormExtensionContext -The **FormExtensionContext** module, inherited from **ExtensionContext**, provides context for Form Extension abilities. +The **FormExtensionContext** module, inherited from **ExtensionContext**, provides context for FormExtensionAbilities. -You can use the APIs of this module to start Form Extension abilities. +You can use the APIs of this module to start FormExtensionAbilities. > **NOTE** > @@ -11,21 +11,24 @@ You can use the APIs of this module to start Form Extension abilities. ## Usage -Before using the **ServiceExtensionContext** module, you must first obtain a **FormExtension** instance. +Before using the **ServiceExtensionContext** module, you must first obtain a **FormExtensionAbility** instance. ```ts import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; import formBindingData from '@ohos.app.form.formBindingData'; + export default class MyFormExtensionAbility extends FormExtensionAbility { - onAddForm() { - let dataObj1 = { - temperature:"11c", - "time":"11:00" - }; - let obj1 = formBindingData.createFormBindingData(dataObj1); - return obj1; - } -} + onAddForm(want) { + let formContext = this.context; // Obtain a FormExtensionContext instance. + // ... + let dataObj1 = { + temperature: "11c", + "time": "11:00" + }; + let obj1 = formBindingData.createFormBindingData(dataObj1); + return obj1; + } +}; ``` ## startAbility @@ -48,23 +51,29 @@ Starts an ability. This API uses an asynchronous callback to return the result. **Example** ```ts -var want = { - deviceId: "", - bundleName: "com.example.formstartability", - abilityName: "MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: {} -} -this.context.startAbility(want, (error, data) => { - if (error) { - console.log('FormExtensionContext startAbility, error:' + JSON.stringify(error)); - } else { - console.log(`FormExtensionContext startAbility success`); - } -}) +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + +export default class MyFormExtensionAbility extends FormExtensionAbility { + onFormEvent(formId, message) { + // Call startAbility() when the message event is triggered. + console.log('FormExtensionAbility onFormEvent, formId:' + formId + ", message:" + message); + let want = { + deviceId: "", + bundleName: "com.example.formstartability", + abilityName: "EntryAbility", + parameters: { + "message": message + } + }; + this.context.startAbility(want, (error, data) => { + if (error) { + console.log('FormExtensionContext startAbility, error:' + JSON.stringify(error)); + } else { + console.log('FormExtensionContext startAbility success'); + } + }); + } +}; ``` ## startAbility @@ -87,24 +96,30 @@ Starts an ability. This API uses a promise to return the result. | Type | Description | | ------------ | ---------------------------------- | -| Promise<void< | Promise that returns no value.| +| Promise<void> | Promise that returns no value.| **Example** ```ts -var want = { - deviceId: "", - bundleName: "com.example.formstartability", - abilityName: "MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: {} -} -this.context.startAbility(want).then(() => { - console.info("StartAbility Success"); -}).catch((error) => { - console.info("StartAbility failed"); -}); +import FormExtensionAbility from '@ohos.app.form.FormExtensionAbility'; + +export default class MyFormExtensionAbility extends FormExtensionAbility { + onFormEvent(formId, message) { + // Call startAbility() when the message event is triggered. + console.log('FormExtensionAbility onFormEvent, formId:' + formId + ", message:" + message); + let want = { + deviceId: "", + bundleName: "com.example.formstartability", + abilityName: "EntryAbility", + parameters: { + "message": message + } + }; + this.context.startAbility(want).then(() => { + console.info("StartAbility Success"); + }).catch((error) => { + console.info("StartAbility failed"); + }); + } +}; ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionCallbacks.md b/en/application-dev/reference/apis/js-apis-inner-application-missionCallbacks.md index e56a2a43e4..7ccae03fa3 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-missionCallbacks.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-missionCallbacks.md @@ -1,14 +1,14 @@ -# MissionCallbacks +# MissionCallback -The **MissionCallbacks** module defines the callbacks that can be registered as a mission status listener. +The **MissionCallback** module defines the callbacks invoked after synchronization starts. These callbacks can be used as input parameters in [registerMissionListener](js-apis-distributedMissionManager.md#distributedmissionmanagerregistermissionlistener). **System capability**: SystemCapability.Ability.AbilityRuntime.Mission -| Name | Template | Readable | Writable | Description | -| --------------------- | -------- | ---- | ---- | ------------------ | -| notifyMissionsChanged | function | Yes | No | Callback used to notify the mission change event and return the device ID. | -| notifySnapshot | function | Yes | No | Callback used to notify the snapshot change event and return the device ID and mission ID.| -| notifyNetDisconnect | function | Yes | No | Callback used to notify the disconnection event and return the device ID and network status.| +| Name | Template | Readable| Writable| Description | +| ---------------------------------------------------- | -------- | ---- | ---- | ---------------------------------- | +| notifyMissionsChanged(deviceId: string) | function | Yes | No | Callback used to notify the mission change event and return the device ID. | +| notifySnapshot(deviceId: string, mission: number) | function | Yes | No | Callback used to notify the snapshot change event and return the device ID and mission ID. | +| notifyNetDisconnect(deviceId: string, state: number) | function | Yes | No | Callback used to notify the disconnection event and return the device ID and network status.| **Example** ```ts @@ -21,12 +21,12 @@ let missionCallback = { notifyMissionsChanged: function (deviceId) { console.log("notifyMissionsChanged deviceId: " + JSON.stringify(deviceId)); }, - notifySnapshot: function (mission, deviceId) { - console.log("notifySnapshot mission: " + JSON.stringify(mission)); + notifySnapshot: function (deviceId, mission) { console.log("notifySnapshot deviceId: " + JSON.stringify(deviceId)); + console.log("notifySnapshot mission: " + JSON.stringify(mission)); }, - notifyNetDisconnect: function (mission, state) { - console.log("notifyNetDisconnect mission: " + JSON.stringify(mission)); + notifyNetDisconnect: function (deviceId, state) { + console.log("notifyNetDisconnect deviceId: " + JSON.stringify(deviceId)); console.log("notifyNetDisconnect state: " + JSON.stringify(state)); } }; diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionDeviceInfo.md b/en/application-dev/reference/apis/js-apis-inner-application-missionDeviceInfo.md index 028e5dafad..9157fc6973 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-missionDeviceInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-missionDeviceInfo.md @@ -1,6 +1,6 @@ # MissionDeviceInfo -The **MissionDeviceInfo** module defines the parameters required for registering a listener. +The **MissionDeviceInfo** module defines the parameters required for registering a listener. It can be used as an input parameter in [registerMissionListener](js-apis-distributedMissionManager.md#distributedmissionmanagerregistermissionlistener). **System capability**: SystemCapability.Ability.AbilityRuntime.Mission diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionInfo.md b/en/application-dev/reference/apis/js-apis-inner-application-missionInfo.md index 5240d4229f..afefb70c5a 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-missionInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-missionInfo.md @@ -1,34 +1,45 @@ # MissionInfo -The **MissionInfo** module defines the mission information of an ability. +The **MissionInfo** module defines detailed information about a mission. The information can be obtained through [getMissionInfo](js-apis-app-ability-missionManager.md#missionmanagergetmissioninfo). **System capability**: SystemCapability.Ability.AbilityRuntime.Mission **System API**: This is a system API and cannot be called by third-party applications. -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| missionId | number | Yes| Yes| Mission ID.| -| runningState | number | Yes| Yes| Running state of the mission.| -| lockedState | boolean | Yes| Yes| Locked state of the mission.| -| timestamp | string | Yes| Yes| Latest time when the mission was created or updated.| -| want | [Want](js-apis-application-want.md) | Yes| Yes| Want information of the mission.| -| label | string | Yes| Yes| Label of the mission.| -| iconPath | string | Yes| Yes| Path of the mission icon.| -| continuable | boolean | Yes| Yes| Whether the mission can be continued on another device.| +| missionId | number | Yes| Yes| Mission ID.| +| runningState | number | Yes| Yes| Running state of the mission.| +| lockedState | boolean | Yes| Yes| Locked state of the mission.| +| timestamp | string | Yes| Yes| Latest time when the mission was created or updated.| +| want | [Want](js-apis-application-want.md) | Yes| Yes| Want information of the mission.| +| label | string | Yes| Yes| Label of the mission.| +| iconPath | string | Yes| Yes| Path of the mission icon.| +| continuable | boolean | Yes| Yes| Whether the mission can be continued on another device.| **Example** ```ts -import missionManager from '@ohos.application.missionManager' +import missionManager from '@ohos.app.ability.missionManager' -missionManager.getMissionInfo("12345", 1, (error, data) => { - console.info('getMissionInfo missionId is:' + JSON.stringify(data.missionId)); - console.info('getMissionInfo runningState is:' + JSON.stringify(data.runningState)); - console.info('getMissionInfo lockedState is:' + JSON.stringify(data.lockedState)); - console.info('getMissionInfo timestamp is:' + JSON.stringify(data.timestamp)); - console.info('getMissionInfo want is:' + JSON.stringify(data.want)); - console.info('getMissionInfo label is:' + JSON.stringify(data.label)); - console.info('getMissionInfo iconPath is:' + JSON.stringify(data.iconPath)); - console.info('getMissionInfo continuable is:' + JSON.stringify(data.continuable)); -}); +try { + missionManager.getMissionInfo("", 1, (error, data) => { + if (error.code) { + // Process service logic errors. + console.log("getMissionInfo failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } + + console.log('getMissionInfo missionId is:' + JSON.stringify(data.missionId)); + console.log('getMissionInfo runningState is:' + JSON.stringify(data.runningState)); + console.log('getMissionInfo lockedState is:' + JSON.stringify(data.lockedState)); + console.log('getMissionInfo timestamp is:' + JSON.stringify(data.timestamp)); + console.log('getMissionInfo want is:' + JSON.stringify(data.want)); + console.log('getMissionInfo label is:' + JSON.stringify(data.label)); + console.log('getMissionInfo iconPath is:' + JSON.stringify(data.iconPath)); + console.log('getMissionInfo continuable is:' + JSON.stringify(data.continuable)); + }); +} catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); +} ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionParameter.md b/en/application-dev/reference/apis/js-apis-inner-application-missionParameter.md index 5dc8a42552..9e2e2aa23a 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-missionParameter.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-missionParameter.md @@ -1,6 +1,6 @@ # MissionParameter -The **MissionParameter** module defines the parameters required for mission synchronization. +The **MissionParameter** module defines the parameters required for mission synchronization. It can be used an input parameter in [startSyncRemoteMissions](js-apis-distributedMissionManager.md#distributedmissionmanagerstartsyncremotemissions). **System capability**: SystemCapability.Ability.AbilityRuntime.Mission diff --git a/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md b/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md index bac1c9f6c3..a97f3b32b7 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-missionSnapshot.md @@ -1,6 +1,6 @@ # MissionSnapshot -The **MissionSnapshot** module provides the mission snapshot information of an ability. +The **MissionSnapshot** module defines the snapshot of a mission. The snapshot can be obtained through [getMissionSnapShot](js-apis-app-ability-missionManager.md#missionmanagergetmissionsnapshot). > **NOTE** > @@ -11,7 +11,7 @@ The **MissionSnapshot** module provides the mission snapshot information of an a | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| ability | ElementName | Yes| Yes| Information that matches an ability.| +| ability | ElementName | Yes| Yes| Ability information of the mission.| | snapshot | [image.PixelMap](js-apis-image.md) | Yes| Yes| Snapshot of the mission.| ## How to Use @@ -20,19 +20,33 @@ The mission snapshot information can be obtained by using **getMissionSnapShot** **Example** ```ts -import ElementName from '@ohos.bundle'; -import image from '@ohos.multimedia.image'; -import missionManager from '@ohos.application.missionManager'; - -missionManager.getMissionInfos("", 10, (error, missions) => { - console.log("getMissionInfos is called, error.code = " + error.code); - console.log("size = " + missions.length); - console.log("missions = " + JSON.stringify(missions)); - var id = missions[0].missionId; - - missionManager.getMissionSnapShot("", id, (error, snapshot) => { - console.log("getMissionSnapShot is called, error.code = " + error.code); - console.log("bundleName = " + snapshot.ability.bundleName); - }) -}) + import ElementName from '@ohos.bundle'; + import image from '@ohos.multimedia.image'; + import missionManager from '@ohos.app.ability.missionManager'; + + try { + missionManager.getMissionInfos("", 10, (error, missions) => { + if (error.code) { + console.log("getMissionInfos failed, error.code:" + JSON.stringify(error.code) + + "error.message:" + JSON.stringify(error.message)); + return; + } + console.log("size = " + missions.length); + console.log("missions = " + JSON.stringify(missions)); + var id = missions[0].missionId; + + missionManager.getMissionSnapShot("", id, (err, snapshot) => { + if (err.code) { + console.log("getMissionInfos failed, err.code:" + JSON.stringify(err.code) + + "err.message:" + JSON.stringify(err.message)); + return; + } + + // Carry out normal service processing. + console.log("bundleName = " + snapshot.ability.bundleName); + }) + }) + } catch (paramError) { + console.log("error: " + paramError.code + ", " + paramError.message); + } ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-processData.md b/en/application-dev/reference/apis/js-apis-inner-application-processData.md index 75d7312c71..c6e91944c5 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-processData.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-processData.md @@ -1,6 +1,6 @@ # ProcessData -The **ProcessData** module defines process data. +The **ProcessData** module defines process data. If a lifecycle change listener is registered by calling [registerApplicationStateObserver](js-apis-application-appManager.md#appmanagerregisterapplicationstateobserver8), the **onProcessCreated** callback in [ApplicationStateObserver](js-apis-inner-application-applicationStateObserver.md) is invoked when the lifecycle of an application or ability changes. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -10,9 +10,10 @@ The **ProcessData** module defines process data. | ----------------------- | ---------| ---- | ---- | ------------------------- | | pid8+ | number | Yes | No | Process ID. | | bundleName8+ | string | Yes | No | Bundle name of the application. | -| uid8+ | number | Yes | No | User ID. | -| isContinuousTask9+ | boolean | Yes | No | Whether the process is a continuous task. | -| isKeepAlive9+ | boolean | Yes | No | Whether the process remains active. | +| uid8+ | number | Yes | No | UID of the application. | +| isContinuousTask9+ | boolean | Yes | No | Whether the task is a continuous task. The value **true** means that the task is a continuous task, and **false** means the opposite. | +| isKeepAlive9+ | boolean | Yes | No | Whether the process is a resident task. The value **true** means that the process is a resident, and **false** means the opposite. | +| state9+ | number | Yes | No | Application state. The value can be **0** (newly created), **2** (foreground), **4** (background), or **5** (terminated). | **Example** ```ts diff --git a/en/application-dev/reference/apis/js-apis-inner-application-processRunningInfo.md b/en/application-dev/reference/apis/js-apis-inner-application-processRunningInfo.md index 8534ed1980..0652791f72 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-processRunningInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-processRunningInfo.md @@ -1,6 +1,6 @@ # ProcessRunningInfo -The **ProcessRunningInfo** module provides process running information. +The **ProcessRunningInfo** module defines the running information of a process. > **NOTE** > - The APIs provided by this module are deprecated since API version 9. You are advised to use [ProcessRunningInformation9+](js-apis-inner-application-processRunningInformation.md) instead. @@ -19,12 +19,13 @@ The **ProcessRunningInfo** module provides process running information. ## Usage -The process running information is obtained through [getProcessRunningInfos](js-apis-application-appManager.md##appManager.getProcessRunningInfos(deprecated)). +The process running information is obtained by using [getProcessRunningInfos](js-apis-application-appManager.md#appmanagergetprocessrunninginfosdeprecated) in **appManager**. **Example** ```ts import appManager from '@ohos.application.appManager'; -app.getProcessRunningInfos().then((data) => { + +appManager.getProcessRunningInfos().then((data) => { console.log('success:' + JSON.stringify(data)); }).catch((error) => { console.log('failed:' + JSON.stringify(error)); diff --git a/en/application-dev/reference/apis/js-apis-inner-application-processRunningInformation.md b/en/application-dev/reference/apis/js-apis-inner-application-processRunningInformation.md index bae1a6f276..a376446b2a 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-processRunningInformation.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-processRunningInformation.md @@ -1,6 +1,6 @@ # ProcessRunningInformation -The **ProcessRunningInformation** module provides process running information. +The **ProcessRunningInformation** module defines the running information of a process. > **NOTE** > @@ -8,12 +8,13 @@ The **ProcessRunningInformation** module provides process running information. ## How to Use -The process running information is obtained through [appManager](js-apis-application-appManager.md#appmanagergetprocessrunninginformation9). +The process running information is obtained through [getProcessRunningInformation](js-apis-application-appManager.md#appmanagergetprocessrunninginformation9) in **appManager**. ```ts import appManager from '@ohos.application.appManager'; -appManager.getProcessRunningInformation((error,data) => { - console.log("getProcessRunningInformation error: " + error.code + " data: " + JSON.stringify(data)); + +appManager.getProcessRunningInformation((error, data) => { + console.log("error: " + error.code + " data: " + JSON.stringify(data)); }); ``` @@ -21,9 +22,9 @@ appManager.getProcessRunningInformation((error,data) => { **System capability**: SystemCapability.Ability.AbilityRuntime.Core -| Name| Type| Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| pid | number | Yes| No| Process ID.| -| uid | number | Yes| No| User ID.| -| processName | string | Yes| No| Process name.| -| bundleNames | Array<string> | Yes| No| Names of all running bundles in the process.| +| pid | number | Yes| No| Process ID.| +| uid | number | Yes| No| User ID.| +| processName | string | Yes| No| Process name.| +| bundleNames | Array<string> | Yes| No| Names of all running bundles in the process.| diff --git a/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md b/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md index bfe660ebd6..ae6beb1357 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-serviceExtensionContext.md @@ -1,6 +1,6 @@ # ServiceExtensionContext -The **ServiceExtensionContext** module, inherited from **ExtensionContext**, provides context for Service Extension abilities. +The **ServiceExtensionContext** module, inherited from **ExtensionContext**, provides context for ServiceExtensionAbilities. You can use the APIs of this module to start, terminate, connect, and disconnect abilities. @@ -17,9 +17,9 @@ Before using the **ServiceExtensionContext** module, you must define a child cla import ServiceExtensionAbility from '@ohos.app.ability.ServiceExtensionAbility'; let context = undefined; - class MainAbility extends ServiceExtensionAbility { + class EntryAbility extends ServiceExtensionAbility { onCreate() { - context = this.context; + context = this.context; // Obtain a ServiceExtensionContext instance. } } ``` @@ -36,10 +36,10 @@ Starts an ability. This API uses an asynchronous callback to return the result. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| - | callback | AsyncCallback<void> | No| Callback used to return the result.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| +| callback | AsyncCallback<void> | No| Callback used to return the result.| **Error codes** @@ -103,16 +103,16 @@ Starts an ability. This API uses a promise to return the result. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| - | options | [StartOptions](js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| +| options | [StartOptions](js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.| **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -214,8 +214,8 @@ Starts an ability with the start options specified. This API uses an asynchronou ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var options = { windowMode: 0 @@ -245,6 +245,11 @@ startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\< Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. @@ -287,8 +292,8 @@ Starts an ability with the account ID specified. This API uses an asynchronous c ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -316,6 +321,11 @@ startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, ca Starts an ability with the account ID and start options specified. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. @@ -359,8 +369,8 @@ Starts an ability with the account ID and start options specified. This API uses ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -392,6 +402,11 @@ startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Starts an ability with the account ID specified. This API uses a promise to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. @@ -406,9 +421,9 @@ Starts an ability with the account ID specified. This API uses a promise to retu **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -440,8 +455,8 @@ Starts an ability with the account ID specified. This API uses a promise to retu ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -470,7 +485,7 @@ Starts an ability with the account ID specified. This API uses a promise to retu startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; -Starts a new Service Extension ability. This API uses an asynchronous callback to return the result. +Starts a new ServiceExtensionAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -505,8 +520,8 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -531,7 +546,7 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t startServiceExtensionAbility(want: Want): Promise\; -Starts a new Service Extension ability. This API uses a promise to return the result. +Starts a new ServiceExtensionAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -545,9 +560,9 @@ Starts a new Service Extension ability. This API uses a promise to return the re **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -571,8 +586,8 @@ Starts a new Service Extension ability. This API uses a promise to return the re ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -597,9 +612,9 @@ Starts a new Service Extension ability. This API uses a promise to return the re startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Starts a new Service Extension ability with the account ID specified. This API uses an asynchronous callback to return the result. +Starts a new ServiceExtensionAbility with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -637,8 +652,8 @@ Starts a new Service Extension ability with the account ID specified. This API u ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -664,9 +679,9 @@ Starts a new Service Extension ability with the account ID specified. This API u startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; -Starts a new Service Extension ability with the account ID specified. This API uses a promise to return the result. +Starts a new ServiceExtensionAbility with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -681,9 +696,9 @@ Starts a new Service Extension ability with the account ID specified. This API u **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -708,8 +723,8 @@ Starts a new Service Extension ability with the account ID specified. This API u ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -735,7 +750,7 @@ Starts a new Service Extension ability with the account ID specified. This API u stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; -Stops a Service Extension ability in the same application. This API uses an asynchronous callback to return the result. +Stops a ServiceExtensionAbility in the same application. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -767,8 +782,8 @@ Stops a Service Extension ability in the same application. This API uses an asyn ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -793,7 +808,7 @@ Stops a Service Extension ability in the same application. This API uses an asyn stopServiceExtensionAbility(want: Want): Promise\; -Stops a Service Extension ability in the same application. This API uses a promise to return the result. +Stops a ServiceExtensionAbility in the same application. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -807,9 +822,9 @@ Stops a Service Extension ability in the same application. This API uses a promi **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -830,8 +845,8 @@ Stops a Service Extension ability in the same application. This API uses a promi ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; try { @@ -856,9 +871,9 @@ Stops a Service Extension ability in the same application. This API uses a promi stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Stops a Service Extension ability in the same application with the account ID specified. This API uses an asynchronous callback to return the result. +Stops a ServiceExtensionAbility in the same application with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -892,8 +907,8 @@ Stops a Service Extension ability in the same application with the account ID sp ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -919,9 +934,9 @@ Stops a Service Extension ability in the same application with the account ID sp stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; -Stops a Service Extension ability in the same application with the account ID specified. This API uses a promise to return the result. +Stops a ServiceExtensionAbility in the same application with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -936,9 +951,9 @@ Stops a Service Extension ability in the same application with the account ID sp **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -960,8 +975,8 @@ Stops a Service Extension ability in the same application with the account ID sp ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; @@ -995,9 +1010,9 @@ Terminates this ability. This API uses an asynchronous callback to return the re **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | callback | AsyncCallback<void> | No| Callback used to return the result.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| callback | AsyncCallback<void> | No| Callback used to return the result.| **Error codes** @@ -1037,9 +1052,9 @@ Terminates this ability. This API uses a promise to return the result. **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -1069,7 +1084,7 @@ Terminates this ability. This API uses a promise to return the result. connectServiceExtensionAbility(want: Want, options: ConnectOptions): number; -Connects this ability to a Service ability. +Connects this ability to a ServiceAbility. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1077,16 +1092,16 @@ Connects this ability to a Service ability. **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| - | options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Callback used to return the information indicating that the connection is successful, interrupted, or failed.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability, such as the ability name and bundle name.| +| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Callback used to return the information indicating that the connection is successful, interrupted, or failed.| **Return value** - | Type| Description| - | -------- | -------- | - | number | A number, based on which the connection will be interrupted.| +| Type| Description| +| -------- | -------- | +| number | A number, based on which the connection will be interrupted.| **Error codes** @@ -1165,8 +1180,8 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "EntryAbility" }; var accountId = 100; var options = { @@ -1189,7 +1204,7 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback<void>): void; -Disconnects this ability from the Service ability. This API uses an asynchronous callback to return the result. +Disconnects this ability from the ServiceAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1197,10 +1212,10 @@ Disconnects this ability from the Service ability. This API uses an asynchronous **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | connection | number | Yes| Number returned after **connectAbility** is called.| - | callback | AsyncCallback<void> | No| Callback used to return the result.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| connection | number | Yes| Number returned after **connectAbility** is called.| +| callback | AsyncCallback<void> | No| Callback used to return the result.| **Error codes** @@ -1241,7 +1256,7 @@ Disconnects this ability from the Service ability. This API uses an asynchronous disconnectServiceExtensionAbility(connection: number): Promise<void>; -Disconnects this ability from the Service ability. This API uses a promise to return the result. +Disconnects this ability from the ServiceAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1249,15 +1264,15 @@ Disconnects this ability from the Service ability. This API uses a promise to re **Parameters** - | Name| Type| Mandatory| Description| - | -------- | -------- | -------- | -------- | - | connection | number | Yes| Number returned after **connectAbility** is called.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| connection | number | Yes| Number returned after **connectAbility** is called.| **Return value** - | Type| Description| - | -------- | -------- | - | Promise<void> | Promise used to return the result.| +| Type| Description| +| -------- | -------- | +| Promise<void> | Promise used to return the result.| **Error codes** @@ -1300,6 +1315,11 @@ startAbilityByCall(want: Want): Promise<Caller>; Starts an ability in the foreground or background and obtains the caller object for communicating with the ability. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - The rules for using this API in the same-device and cross-device scenarios are different. For details, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **System API**: This is a system API and cannot be called by third-party applications. @@ -1341,7 +1361,7 @@ Starts an ability in the foreground or background and obtains the caller object var wantBackground = { bundleName: "com.example.myservice", moduleName: "entry", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "" }; @@ -1372,7 +1392,7 @@ Starts an ability in the foreground or background and obtains the caller object var wantForeground = { bundleName: "com.example.myservice", moduleName: "entry", - abilityName: "MainAbility", + abilityName: "EntryAbility", deviceId: "", parameters: { "ohos.aafwk.param.callAbilityToForeground": true diff --git a/en/application-dev/reference/apis/js-apis-inner-application-shellCmdResult.md b/en/application-dev/reference/apis/js-apis-inner-application-shellCmdResult.md index 23c4e8d48a..51b10659d3 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-shellCmdResult.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-shellCmdResult.md @@ -25,7 +25,7 @@ let cmd = "cmd"; abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); abilityDelegator.executeShellCommand(cmd, (err: any, data: any) => { - console.info("executeShellCommand callback, failed: ", err); - console.info("executeShellCommand callback, success: ", data); + console.info("executeShellCommand callback, result: ", err); + console.info("executeShellCommand callback, data: ", data); }); ``` diff --git a/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md b/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md index 394f484144..f8528cc1bf 100644 --- a/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md +++ b/en/application-dev/reference/apis/js-apis-inner-application-uiAbilityContext.md @@ -1,8 +1,6 @@ # UIAbilityContext -The **UIAbilityContext** module, inherited from **Context**, implements the context for abilities. - -This module provides APIs for accessing ability-specific resources. You can use the APIs to start and terminate an ability, obtain the caller interface, and request permissions from users by displaying a dialog box. +**UIAbilityContext**, inherited from [Context](js-apis-inner-application-context.md), provides the context environment for [UIAbility](js-apis-app-ability-uiAbility.md). **UIAbilityContext** provides UIAbility-related configuration and APIs for operating UIAbilities and ServiceExtensionAbilities. For example, you can use the APIs to start a UIAbility, terminate a UIAbility to which the UIAbilityContext belongs, and start, terminate, connect to, or disconnect from a ServiceExtensionAbility. > **NOTE** > @@ -15,16 +13,24 @@ This module provides APIs for accessing ability-specific resources. You can use | Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | -| abilityInfo | [AbilityInfo](js-apis-bundleManager-abilityInfo.md) | Yes| No| Ability information.| -| currentHapModuleInfo | [HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md) | Yes| No| Information about the current HAP.| -| config | [Configuration](js-apis-app-ability-configuration.md) | Yes| No| Configuration information.| +| abilityInfo | [AbilityInfo](js-apis-bundleManager-abilityInfo.md) | Yes| No| UIAbility information.| +| currentHapModuleInfo | [HapModuleInfo](js-apis-bundleManager-hapModuleInfo.md) | Yes| No| HAP information.| +| config | [Configuration](js-apis-app-ability-configuration.md) | Yes| No| UIAbility configuration, such as the language and color mode.| + +> **NOTE** +> - In the sample code provided in this topic, **this.context** is used to obtain **UIAbilityContext**, where **this** indicates a UIAbility instance inherited from **UIAbility**. To use **UIAbilityContext** capabilities on pages, see [Obtaining the Context of UIAbility](../../application-models/uiability-usage.md#obtaining-the-context-of-uiability). -## AbilityContext.startAbility +## UIAbilityContext.startAbility startAbility(want: Want, callback: AsyncCallback<void>): void; Starts an ability. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -71,7 +77,7 @@ Starts an ability. This API uses an asynchronous callback to return the result. if (error.code) { // Process service logic errors. console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -79,18 +85,22 @@ Starts an ability. This API uses an asynchronous callback to return the result. }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` - -## AbilityContext.startAbility +## UIAbilityContext.startAbility startAbility(want: Want, options: StartOptions, callback: AsyncCallback<void>): void; Starts an ability with the start options specified. This API uses an asynchronous callback to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -103,7 +113,7 @@ Starts an ability with the start options specified. This API uses an asynchronou **Error codes** -| ID| Error Message +| ID| Error Message| | ------- | -------------------------------- | | 201 | The application does not have permission to call the interface. | | 401 | Invalid input parameter. | @@ -130,7 +140,7 @@ Starts an ability with the start options specified. This API uses an asynchronou ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var options = { @@ -142,7 +152,7 @@ Starts an ability with the start options specified. This API uses an asynchronou if (error.code) { // Process service logic errors. console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -150,17 +160,22 @@ Starts an ability with the start options specified. This API uses an asynchronou }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbility +## UIAbilityContext.startAbility startAbility(want: Want, options?: StartOptions): Promise<void>; Starts an ability. This API uses a promise to return the result. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -208,33 +223,37 @@ Starts an ability. This API uses a promise to return the result. abilityName: "MyAbility" }; var options = { - windowMode: 0, + windowMode: 0, }; try { this.context.startAbility(want, options) - .then((data) => { + .then(() => { // Carry out normal service processing. console.log('startAbility succeed'); }) .catch((error) => { // Process service logic errors. console.log('startAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` - -## AbilityContext.startAbilityForResult +## UIAbilityContext.startAbilityForResult startAbilityForResult(want: Want, callback: AsyncCallback<AbilityResult>): void; -Starts an ability. This API uses an asynchronous callback to return the result when the ability is terminated. +Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#uiabilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -274,7 +293,7 @@ Starts an ability. This API uses an asynchronous callback to return the result w ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; @@ -283,25 +302,29 @@ Starts an ability. This API uses an asynchronous callback to return the result w if (error.code) { // Process service logic errors. console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. - console.log("startAbilityForResult succeed, result.resultCode = " + - result.resultCode) + console.log("startAbilityForResult succeed, result.resultCode = " + result.resultCode) }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityForResult +## UIAbilityContext.startAbilityForResult startAbilityForResult(want: Want, options: StartOptions, callback: AsyncCallback<AbilityResult>): void; -Starts an ability with the start options specified. This API uses an asynchronous callback to return the result when the ability is terminated. +Starts an ability with the start options specified. After the ability is started, you can call [terminateSelfWithResult](#uiabilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses an asynchronous callback to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -342,7 +365,7 @@ Starts an ability with the start options specified. This API uses an asynchronou ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var options = { @@ -354,26 +377,30 @@ Starts an ability with the start options specified. This API uses an asynchronou if (error.code) { // Process service logic errors. console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. - console.log("startAbilityForResult succeed, result.resultCode = " + - result.resultCode) + console.log("startAbilityForResult succeed, result.resultCode = " + result.resultCode) }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityForResult +## UIAbilityContext.startAbilityForResult startAbilityForResult(want: Want, options?: StartOptions): Promise<AbilityResult>; -Starts an ability. This API uses a promise to return the result when the ability is terminated. +Starts an ability. After the ability is started, you can call [terminateSelfWithResult](#uiabilitycontextterminateselfwithresult) to terminate the ability and return the result to the caller. If an exception occurs, for example, the ability is killed, exception information is returned to the caller. This API uses a promise to return the result. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -419,11 +446,11 @@ Starts an ability. This API uses a promise to return the result when the ability ```ts var want = { - bundleName: "com.example.myapp", - abilityName: "MyAbility" + bundleName: "com.example.myapplication", + abilityName: "MainAbility" }; var options = { - windowMode: 0, + windowMode: 0, }; try { @@ -435,22 +462,27 @@ Starts an ability. This API uses a promise to return the result when the ability .catch((error) => { // Process service logic errors. console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityForResult failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityForResultWithAccount +## UIAbilityContext.startAbilityForResultWithAccount startAbilityForResultWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Starts an ability. This API uses an asynchronous callback to return the result when the account of the ability is destroyed. +Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result when the ability is terminated. + +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -461,8 +493,8 @@ Starts an ability. This API uses an asynchronous callback to return the result w | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| -| callback | AsyncCallback\ | Yes| Callback used to return the result.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| +| callback | AsyncCallback<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Yes| Callback used to return the result.| **Error codes** @@ -494,7 +526,7 @@ Starts an ability. This API uses an asynchronous callback to return the result w ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var accountId = 100; @@ -504,28 +536,33 @@ Starts an ability. This API uses an asynchronous callback to return the result w if (error.code) { // Process service logic errors. console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. console.log("startAbilityForResultWithAccount succeed, result.resultCode = " + - result.resultCode) + result.resultCode + ' result.want = ' + JSON.stringify(result.want)) }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityForResultWithAccount +## UIAbilityContext.startAbilityForResultWithAccount startAbilityForResultWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void; -Starts an ability with the start options specified. This API uses an asynchronous callback to return the result when the account of the ability is destroyed. +Starts an ability with the start options and account ID specified. This API uses an asynchronous callback to return the result when the ability is terminated. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -536,9 +573,9 @@ Starts an ability with the start options specified. This API uses an asynchronou | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| | options | [StartOptions](js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.| -| callback | AsyncCallback\ | Yes| Callback used to return the result.| +| callback | AsyncCallback\ | Yes| Callback invoked when the ability is terminated.| **Error codes** @@ -570,7 +607,7 @@ Starts an ability with the start options specified. This API uses an asynchronou ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var accountId = 100; @@ -579,32 +616,36 @@ Starts an ability with the start options specified. This API uses an asynchronou }; try { - this.context.startAbilityForResultWithAccount(want, accountId, options, (error, result) => { + this.context.startAbilityForResultWithAccount(want, accountId, options, (error) => { if (error.code) { // Process service logic errors. console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. - console.log("startAbilityForResultWithAccount succeed, result.resultCode = " + - result.resultCode) + console.log("startAbilityForResultWithAccount succeed") }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityForResultWithAccount +## UIAbilityContext.startAbilityForResultWithAccount startAbilityForResultWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; -Starts an ability with the start options specified. This API uses a promise to return the result when the account of the ability is destroyed. +Starts an ability with the account ID specified. This API uses a promise to return the result when the ability is terminated. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -615,14 +656,14 @@ Starts an ability with the start options specified. This API uses a promise to r | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| | options | [StartOptions](js-apis-app-ability-startOptions.md) | No| Parameters used for starting the ability.| **Return value** | Type| Description| | -------- | -------- | -| Promise<AbilityResult> | Promise used to return the result.| +| Promise<[AbilityResult](js-apis-inner-ability-abilityResult.md)> | Promise used to return the ability result when the ability is terminated.| **Error codes** @@ -654,7 +695,7 @@ Starts an ability with the start options specified. This API uses a promise to r ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var accountId = 100; @@ -667,24 +708,24 @@ Starts an ability with the start options specified. This API uses a promise to r .then((result) => { // Carry out normal service processing. console.log("startAbilityForResultWithAccount succeed, result.resultCode = " + - result.resultCode) + result.resultCode) }) .catch((error) => { // Process service logic errors. console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityForResultWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startServiceExtensionAbility +## UIAbilityContext.startServiceExtensionAbility startServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; -Starts a new Service Extension ability. This API uses an asynchronous callback to return the result. +Starts a ServiceExtensionAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -694,7 +735,7 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -719,8 +760,8 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; try { @@ -728,7 +769,7 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t if (error.code) { // Process service logic errors. console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -736,16 +777,16 @@ Starts a new Service Extension ability. This API uses an asynchronous callback t }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startServiceExtensionAbility +## UIAbilityContext.startServiceExtensionAbility startServiceExtensionAbility(want: Want): Promise\; -Starts a new Service Extension ability. This API uses a promise to return the result. +Starts a ServiceExtensionAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -755,7 +796,7 @@ Starts a new Service Extension ability. This API uses a promise to return the re | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| **Error codes** @@ -779,35 +820,35 @@ Starts a new Service Extension ability. This API uses a promise to return the re ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; try { this.context.startServiceExtensionAbility(want) - .then((data) => { + .then(() => { // Carry out normal service processing. console.log('startServiceExtensionAbility succeed'); }) .catch((error) => { // Process service logic errors. console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startServiceExtensionAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startServiceExtensionAbilityWithAccount +## UIAbilityContext.startServiceExtensionAbilityWithAccount startServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Starts a new Service Extension ability with the account ID specified. This API uses an asynchronous callback to return the result. +Starts a ServiceExtensionAbility with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -817,8 +858,8 @@ Starts a new Service Extension ability with the account ID specified. This API u | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -840,8 +881,8 @@ Starts a new Service Extension ability with the account ID specified. This API u ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; var accountId = 100; @@ -850,7 +891,7 @@ Starts a new Service Extension ability with the account ID specified. This API u if (error.code) { // Process service logic errors. console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -858,18 +899,18 @@ Starts a new Service Extension ability with the account ID specified. This API u }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startServiceExtensionAbilityWithAccount +## UIAbilityContext.startServiceExtensionAbilityWithAccount startServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; -Starts a new Service Extension ability with the account ID specified. This API uses a promise to return the result. +Starts a ServiceExtensionAbility with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -880,7 +921,7 @@ Starts a new Service Extension ability with the account ID specified. This API u | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| **Error codes** @@ -905,8 +946,8 @@ Starts a new Service Extension ability with the account ID specified. This API u ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; var accountId = 100; @@ -919,19 +960,19 @@ Starts a new Service Extension ability with the account ID specified. This API u .catch((error) => { // Process service logic errors. console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.stopServiceExtensionAbility +## UIAbilityContext.stopServiceExtensionAbility stopServiceExtensionAbility(want: Want, callback: AsyncCallback\): void; -Stops a Service Extension ability in the same application. This API uses an asynchronous callback to return the result. +Stops a ServiceExtensionAbility in the same application. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -941,7 +982,7 @@ Stops a Service Extension ability in the same application. This API uses an asyn | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -963,8 +1004,8 @@ Stops a Service Extension ability in the same application. This API uses an asyn ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; try { @@ -972,7 +1013,7 @@ Stops a Service Extension ability in the same application. This API uses an asyn if (error.code) { // Process service logic errors. console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -980,16 +1021,16 @@ Stops a Service Extension ability in the same application. This API uses an asyn }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.stopServiceExtensionAbility +## UIAbilityContext.stopServiceExtensionAbility stopServiceExtensionAbility(want: Want): Promise\; -Stops a Service Extension ability in the same application. This API uses a promise to return the result. +Stops a ServiceExtensionAbility in the same application. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -999,7 +1040,7 @@ Stops a Service Extension ability in the same application. This API uses a promi | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| **Error codes** @@ -1020,8 +1061,8 @@ Stops a Service Extension ability in the same application. This API uses a promi ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; try { @@ -1033,22 +1074,22 @@ Stops a Service Extension ability in the same application. This API uses a promi .catch((error) => { // Process service logic errors. console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('stopServiceExtensionAbility failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.stopServiceExtensionAbilityWithAccount +## UIAbilityContext.stopServiceExtensionAbilityWithAccount stopServiceExtensionAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; -Stops a Service Extension ability in the same application with the account ID specified. This API uses an asynchronous callback to return the result. +Stops a ServiceExtensionAbility with the account ID specified in the same application. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1058,8 +1099,8 @@ Stops a Service Extension ability in the same application with the account ID sp | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -1082,8 +1123,8 @@ Stops a Service Extension ability in the same application with the account ID sp ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; var accountId = 100; @@ -1092,7 +1133,7 @@ Stops a Service Extension ability in the same application with the account ID sp if (error.code) { // Process service logic errors. console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -1100,18 +1141,18 @@ Stops a Service Extension ability in the same application with the account ID sp }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.stopServiceExtensionAbilityWithAccount +## UIAbilityContext.stopServiceExtensionAbilityWithAccount stopServiceExtensionAbilityWithAccount(want: Want, accountId: number): Promise\; -Stops a Service Extension ability in the same application with the account ID specified. This API uses a promise to return the result. +Stops a ServiceExtensionAbility with the account ID specified in the same application. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1121,8 +1162,8 @@ Stops a Service Extension ability in the same application with the account ID sp | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ServiceExtensionAbility.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| **Error codes** @@ -1144,8 +1185,8 @@ Stops a Service Extension ability in the same application with the account ID sp ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; var accountId = 100; @@ -1158,16 +1199,16 @@ Stops a Service Extension ability in the same application with the account ID sp .catch((error) => { // Process service logic errors. console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('stopServiceExtensionAbilityWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.terminateSelf +## UIAbilityContext.terminateSelf terminateSelf(callback: AsyncCallback<void>): void; @@ -1195,20 +1236,26 @@ Terminates this ability. This API uses an asynchronous callback to return the re **Example** ```ts - this.context.terminateSelf((error) => { - if (error.code) { - // Process service logic errors. - console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); - return; - } - // Carry out normal service processing. - console.log('terminateSelf succeed'); - }); + try { + this.context.terminateSelf((error) => { + if (error.code) { + // Process service logic errors. + console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + return; + } + // Carry out normal service processing. + console.log('terminateSelf succeed'); + }); + } catch (error) { + // Capture the synchronization parameter error. + console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + } ``` -## AbilityContext.terminateSelf +## UIAbilityContext.terminateSelf terminateSelf(): Promise<void>; @@ -1236,22 +1283,30 @@ Terminates this ability. This API uses a promise to return the result. **Example** ```ts - this.context.terminateSelf().then((data) => { - // Carry out normal service processing. - console.log('terminateSelf succeed'); - }).catch((error) => { - // Process service logic errors. + try { + this.context.terminateSelf() + .then(() => { + // Carry out normal service processing. + console.log('terminateSelf succeed'); + }) + .catch((error) => { + // Process service logic errors. + console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + }); + } catch (error) { + // Capture the synchronization parameter error. console.log('terminateSelf failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); - }); + ' error.message: ' + JSON.stringify(error.message)); + } ``` -## AbilityContext.terminateSelfWithResult +## UIAbilityContext.terminateSelfWithResult terminateSelfWithResult(parameter: AbilityResult, callback: AsyncCallback<void>): void; -Terminates this ability. This API uses an asynchronous callback to return the ability result information. It is used together with **startAbilityForResult**. +Terminates this ability. If the ability is started by calling [startAbilityForResult](#uiabilitycontextstartabilityforresult), the result is returned to the caller in the form of a callback when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1277,8 +1332,8 @@ Terminates this ability. This API uses an asynchronous callback to return the ab ```ts var want = { - bundleName: "com.extreme.myapplication", - abilityName: "SecondAbility" + bundleName: "com.example.myapplication", + abilityName: "MainAbility" } var resultCode = 100; // AbilityResult information returned to the caller. @@ -1292,25 +1347,25 @@ Terminates this ability. This API uses an asynchronous callback to return the ab if (error.code) { // Process service logic errors. console.log('terminateSelfWithResult failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. console.log('terminateSelfWithResult succeed'); }); } catch (paramError) { - // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + // Process input parameter errors. + console.log('terminateSelfWithResult failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.terminateSelfWithResult +## UIAbilityContext.terminateSelfWithResult terminateSelfWithResult(parameter: AbilityResult): Promise<void>; -Terminates this ability. This API uses a promise to return the ability result information. It is used together with **startAbilityForResult**. +Terminates this ability. If the ability is started by calling [startAbilityForResult](#uiabilitycontextstartabilityforresult), the result is returned to the caller in the form of a promise when **terminateSelfWithResult** is called. Otherwise, no result is returned to the caller when **terminateSelfWithResult** is called. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1342,8 +1397,8 @@ Terminates this ability. This API uses a promise to return the ability result in ```ts var want = { - bundleName: "com.extreme.myapplication", - abilityName: "SecondAbility" + bundleName: "com.example.myapplication", + abilityName: "MainAbility" } var resultCode = 100; // AbilityResult information returned to the caller. @@ -1361,20 +1416,20 @@ Terminates this ability. This API uses a promise to return the ability result in .catch((error) => { // Process service logic errors. console.log('terminateSelfWithResult failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('terminateSelfWithResult failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.connectServiceExtensionAbility +## UIAbilityContext.connectServiceExtensionAbility connectServiceExtensionAbility(want: Want, options: ConnectOptions): number; -Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to another ability. +Connects this ability to an ability that uses the **AbilityInfo.AbilityType.SERVICE** template. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1384,8 +1439,8 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | No| Parameters for the connection.| +| want | [Want](js-apis-application-want.md) | Yes| Want information for connecting to the ServiceExtensionAbility.| +| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Instance of the callback function after the connection to the ServiceExtensionAbility is set up.| **Return value** @@ -1410,13 +1465,19 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; var options = { - onConnect(elementName, remote) { console.log('----------- onConnect -----------') }, - onDisconnect(elementName) { console.log('----------- onDisconnect -----------') }, - onFailed(code) { console.log('----------- onFailed -----------') } + onConnect(elementName, remote) { + console.log('----------- onConnect -----------') + }, + onDisconnect(elementName) { + console.log('----------- onDisconnect -----------') + }, + onFailed(code) { + console.log('----------- onFailed -----------') + } } var connection = null; @@ -1425,18 +1486,18 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template to connect this ability to } catch (paramError) { // Process input parameter errors. console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.connectServiceExtensionAbilityWithAccount +## UIAbilityContext.connectServiceExtensionAbilityWithAccount connectServiceExtensionAbilityWithAccount(want: Want, accountId: number, options: ConnectOptions): number; -Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect this ability to another ability with the account ID specified. +Connects this ability to an ability that uses the **AbilityInfo.AbilityType.SERVICE** template, with the account ID specified. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1447,8 +1508,8 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| -| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | No| Parameters for the connection.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| +| options | [ConnectOptions](js-apis-inner-ability-connectOptions.md) | Yes| Instance of the callback function after the connection to the ServiceExtensionAbility is set up.| **Return value** @@ -1474,14 +1535,20 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", - abilityName: "MainAbility" + bundleName: "com.example.myapplication", + abilityName: "ServiceExtensionAbility" }; var accountId = 100; var options = { - onConnect(elementName, remote) { console.log('----------- onConnect -----------') }, - onDisconnect(elementName) { console.log('----------- onDisconnect -----------') }, - onFailed(code) { console.log('----------- onFailed -----------') } + onConnect(elementName, remote) { + console.log('----------- onConnect -----------') + }, + onDisconnect(elementName) { + console.log('----------- onDisconnect -----------') + }, + onFailed(code) { + console.log('----------- onFailed -----------') + } } var connection = null; @@ -1490,15 +1557,15 @@ Uses the **AbilityInfo.AbilityType.SERVICE** template and account ID to connect } catch (paramError) { // Process input parameter errors. console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.disconnectServiceExtensionAbility +## UIAbilityContext.disconnectServiceExtensionAbility disconnectServiceExtensionAbility(connection: number): Promise\; -Disconnects a connection. This API uses a promise to return the result. +Disconnects from a ServiceExtensionAbility. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1508,7 +1575,7 @@ Disconnects a connection. This API uses a promise to return the result. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| connection | number | Yes| Result code of the ability connection.| +| connection | number | Yes| Digital code of the connected ServiceExtensionAbility, that is, connectionId returned by **connectServiceExtensionAbility**.| **Return value** @@ -1551,11 +1618,11 @@ Disconnects a connection. This API uses a promise to return the result. } ``` -## AbilityContext.disconnectServiceExtensionAbility +## UIAbilityContext.disconnectServiceExtensionAbility disconnectServiceExtensionAbility(connection: number, callback:AsyncCallback\): void; -Disconnects a connection. This API uses an asynchronous callback to return the result. +Disconnects from a ServiceExtensionAbility. This API uses an asynchronous callback to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1565,7 +1632,7 @@ Disconnects a connection. This API uses an asynchronous callback to return the r | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| connection | number | Yes| Result code of the ability connection.| +| connection | number | Yes| Digital code of the connected ServiceExtensionAbility, that is, connectionId returned by **connectServiceExtensionAbility**.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -1590,7 +1657,7 @@ Disconnects a connection. This API uses an asynchronous callback to return the r if (error.code) { // Process service logic errors. console.log('disconnectServiceExtensionAbility failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -1599,16 +1666,21 @@ Disconnects a connection. This API uses an asynchronous callback to return the r } catch (paramError) { // Process input parameter errors. console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityByCall +## UIAbilityContext.startAbilityByCall startAbilityByCall(want: Want): Promise<Caller>; Starts an ability in the foreground or background and obtains the caller object for communicating with the ability. +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - The rules for using this API in the same-device and cross-device scenarios are different. For details, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + **System capability**: SystemCapability.Ability.AbilityRuntime.Core **Parameters** @@ -1632,10 +1704,10 @@ Starts an ability in the foreground or background and obtains the caller object // Start an ability in the background by not passing parameters. var wantBackground = { - bundleName: "com.example.myservice", - moduleName: "entry", - abilityName: "MainAbility", - deviceId: "" + bundleName: "com.example.myservice", + moduleName: "entry", + abilityName: "MainAbility", + deviceId: "" }; try { @@ -1645,14 +1717,14 @@ Starts an ability in the foreground or background and obtains the caller object caller = obj; console.log('startAbilityByCall succeed'); }).catch((error) => { - // Process service logic errors. - console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); - }); + // Process service logic errors. + console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + }); } catch (paramError) { // Process input parameter errors. console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + ' error.message: ' + JSON.stringify(paramError.message)); } ``` @@ -1663,13 +1735,13 @@ Starts an ability in the foreground or background and obtains the caller object // Start an ability in the foreground with ohos.aafwk.param.callAbilityToForeground in parameters set to true. var wantForeground = { - bundleName: "com.example.myservice", - moduleName: "entry", - abilityName: "MainAbility", - deviceId: "", - parameters: { - "ohos.aafwk.param.callAbilityToForeground": true - } + bundleName: "com.example.myservice", + moduleName: "entry", + abilityName: "MainAbility", + deviceId: "", + parameters: { + "ohos.aafwk.param.callAbilityToForeground": true + } }; try { @@ -1679,24 +1751,29 @@ Starts an ability in the foreground or background and obtains the caller object caller = obj; console.log('startAbilityByCall succeed'); }).catch((error) => { - // Process service logic errors. - console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); - }); + // Process service logic errors. + console.log('startAbilityByCall failed, error.code: ' + JSON.stringify(error.code) + + ' error.message: ' + JSON.stringify(error.message)); + }); } catch (paramError) { // Process input parameter errors. console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityWithAccount +## UIAbilityContext.startAbilityWithAccount startAbilityWithAccount(want: Want, accountId: number, callback: AsyncCallback\): void; Starts an ability with the account ID specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1707,7 +1784,7 @@ Starts an ability with the account ID specified. This API uses an asynchronous c | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -1740,7 +1817,7 @@ Starts an ability with the account ID specified. This API uses an asynchronous c ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var accountId = 100; @@ -1750,7 +1827,7 @@ Starts an ability with the account ID specified. This API uses an asynchronous c if (error.code) { // Process service logic errors. console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -1759,18 +1836,23 @@ Starts an ability with the account ID specified. This API uses an asynchronous c } catch (paramError) { // Process input parameter errors. console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityWithAccount +## UIAbilityContext.startAbilityWithAccount startAbilityWithAccount(want: Want, accountId: number, options: StartOptions, callback: AsyncCallback\): void; Starts an ability with the account ID and start options specified. This API uses an asynchronous callback to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1781,8 +1863,8 @@ Starts an ability with the account ID and start options specified. This API uses | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| -| options | [StartOptions](js-apis-app-ability-startOptions.md) | No| Parameters used for starting the ability.| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| +| options | [StartOptions](js-apis-app-ability-startOptions.md) | Yes| Parameters used for starting the ability.| | callback | AsyncCallback\ | Yes| Callback used to return the result.| **Error codes** @@ -1815,7 +1897,7 @@ Starts an ability with the account ID and start options specified. This API uses ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var accountId = 100; @@ -1828,7 +1910,7 @@ Starts an ability with the account ID and start options specified. This API uses if (error.code) { // Process service logic errors. console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); return; } // Carry out normal service processing. @@ -1836,19 +1918,24 @@ Starts an ability with the account ID and start options specified. This API uses }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.startAbilityWithAccount +## UIAbilityContext.startAbilityWithAccount startAbilityWithAccount(want: Want, accountId: number, options?: StartOptions): Promise\; Starts an ability with the account ID specified. This API uses a promise to return the result. -**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS +Observe the following when using this API: + - If an application running in the background needs to call this API to start an ability, it must have the **ohos.permission.START_ABILITIES_FROM_BACKGROUND** permission. + - If **visible** of the target ability is **false** in cross-application scenarios, the caller must have the **ohos.permission.START_INVISIBLE_ABILITY** permission. + - For details about the startup rules for the components in the stage model, see [Component Startup Rules (Stage Model)](../../application-models/component-startup-rules.md). + +**Required permissions**: ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS (required only when the account ID is not the current user) **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -1859,7 +1946,7 @@ Starts an ability with the account ID specified. This API uses a promise to retu | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | want | [Want](js-apis-application-want.md) | Yes| Want information about the target ability.| -| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getosaccountlocalidfromprocess).| +| accountId | number | Yes| ID of a system account. For details, see [getCreatedOsAccountsCount](js-apis-osAccount.md#getCreatedOsAccountsCount).| | options | [StartOptions](js-apis-app-ability-startOptions.md) | No| Parameters used for starting the ability.| **Error codes** @@ -1892,7 +1979,7 @@ Starts an ability with the account ID specified. This API uses a promise to retu ```ts var want = { deviceId: "", - bundleName: "com.extreme.test", + bundleName: "com.example.myapplication", abilityName: "MainAbility" }; var accountId = 100; @@ -1909,75 +1996,16 @@ Starts an ability with the account ID specified. This API uses a promise to retu .catch((error) => { // Process service logic errors. console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(error.code) + - ' error.message: ' + JSON.stringify(error.message)); + ' error.message: ' + JSON.stringify(error.message)); }); } catch (paramError) { // Process input parameter errors. - console.log('error.code: ' + JSON.stringify(paramError.code) + - ' error.message: ' + JSON.stringify(paramError.message)); + console.log('startAbilityWithAccount failed, error.code: ' + JSON.stringify(paramError.code) + + ' error.message: ' + JSON.stringify(paramError.message)); } ``` -## AbilityContext.requestPermissionsFromUser - -requestPermissionsFromUser(permissions: Array<string>, requestCallback: AsyncCallback<PermissionRequestResult>) : void; - -Requests permissions from the user by displaying a dialog box. This API uses an asynchronous callback to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| permissions | Array<string> | Yes| Permissions to request.| -| callback | AsyncCallback<[PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md)> | Yes| Callback used to return the result.| - -**Example** - - ```ts - var permissions=['com.example.permission'] - this.context.requestPermissionsFromUser(permissions,(result) => { - console.log('requestPermissionsFromUserresult:' + JSON.stringify(result)); - }); - - ``` - - -## AbilityContext.requestPermissionsFromUser - -requestPermissionsFromUser(permissions: Array<string>) : Promise<PermissionRequestResult>; - -Requests permissions from the user by displaying a dialog box. This API uses a promise to return the result. - -**System capability**: SystemCapability.Ability.AbilityRuntime.Core - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| permissions | Array<string> | Yes| Permissions to request.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| Promise<[PermissionRequestResult](js-apis-inner-application-permissionRequestResult.md)> | Promise used to return the result.| - -**Example** - - ```ts - var permissions=['com.example.permission'] - this.context.requestPermissionsFromUser(permissions).then((data) => { - console.log('success:' + JSON.stringify(data)); - }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); - }); - - ``` - - -## AbilityContext.setMissionLabel +## UIAbilityContext.setMissionLabel setMissionLabel(label: string, callback:AsyncCallback<void>): void; @@ -1995,13 +2023,12 @@ Sets a label for this ability in the mission. This API uses an asynchronous call **Example** ```ts - this.context.setMissionLabel("test",(result) => { - console.log('requestPermissionsFromUserresult:' + JSON.stringify(result)); + this.context.setMissionLabel("test", (result) => { + console.log('setMissionLabel:' + JSON.stringify(result)); }); ``` - -## AbilityContext.setMissionLabel +## UIAbilityContext.setMissionLabel setMissionLabel(label: string): Promise<void>; @@ -2025,12 +2052,12 @@ Sets a label for this ability in the mission. This API uses a promise to return ```ts this.context.setMissionLabel("test").then(() => { - console.log('success'); + console.log('success'); }).catch((error) => { - console.log('failed:' + JSON.stringify(error)); + console.log('failed:' + JSON.stringify(error)); }); ``` -## AbilityContext.setMissionIcon +## UIAbilityContext.setMissionIcon setMissionIcon(icon: image.PixelMap, callback:AsyncCallback\): void; @@ -2050,29 +2077,29 @@ Sets an icon for this ability in the mission. This API uses an asynchronous call **Example** ```ts - import image from '@ohos.multimedia.image'; - var imagePixelMap; - var color = new ArrayBuffer(0); - var initializationOptions = { - size: { - height: 100, - width: 100 - } - }; - image.createPixelMap(color, initializationOptions) - .then((data) => { - imagePixelMap = data; - }) - .catch((err) => { - console.log('--------- createPixelMap fail, err: ---------', err) - }); - this.context.setMissionIcon(imagePixelMap, (err) => { - console.log('---------- setMissionIcon fail, err: -----------', err); + import image from '@ohos.multimedia.image'; + var imagePixelMap; + var color = new ArrayBuffer(0); + var initializationOptions = { + size: { + height: 100, + width: 100 + } + }; + image.createPixelMap(color, initializationOptions) + .then((data) => { + imagePixelMap = data; }) + .catch((err) => { + console.log('--------- createPixelMap fail, err: ---------', err) + }); + this.context.setMissionIcon(imagePixelMap, (err) => { + console.log('---------- setMissionIcon fail, err: -----------', err); + }) ``` -## AbilityContext.setMissionIcon +## UIAbilityContext.setMissionIcon setMissionIcon(icon: image.PixelMap): Promise\; @@ -2097,31 +2124,30 @@ Sets an icon for this ability in the mission. This API uses a promise to return **Example** ```ts - import image from '@ohos.multimedia.image'; - var imagePixelMap; - var color = new ArrayBuffer(0); - var initializationOptions = { - size: { - height: 100, - width: 100 - } - }; - image.createPixelMap(color, initializationOptions) - .then((data) => { - imagePixelMap = data; - }) - .catch((err) => { - console.log('--------- createPixelMap fail, err: ---------', err) - }); - this.context.setMissionIcon(imagePixelMap) - .then(() => { - console.log('-------------- setMissionIcon success -------------'); - }) - .catch((err) => { - console.log('-------------- setMissionIcon fail, err: -------------', err); - }); + var imagePixelMap; + var color = new ArrayBuffer(0); + var initializationOptions = { + size: { + height: 100, + width: 100 + } + }; + image.createPixelMap(color, initializationOptions) + .then((data) => { + imagePixelMap = data; + }) + .catch((err) => { + console.log('--------- createPixelMap fail, err: ---------', err) + }); + this.context.setMissionIcon(imagePixelMap) + .then(() => { + console.log('-------------- setMissionIcon success -------------'); + }) + .catch((err) => { + console.log('-------------- setMissionIcon fail, err: -------------', err); + }); ``` -## AbilityContext.restoreWindowStage +## UIAbilityContext.restoreWindowStage restoreWindowStage(localStorage: LocalStorage) : void; @@ -2138,11 +2164,11 @@ Restores the window stage data for this ability. **Example** ```ts - var storage = new LocalStorage(); - this.context.restoreWindowStage(storage); + var storage = new LocalStorage(); + this.context.restoreWindowStage(storage); ``` -## AbilityContext.isTerminating +## UIAbilityContext.isTerminating isTerminating(): boolean; diff --git a/en/application-dev/reference/apis/js-apis-inner-wantAgent-wantAgentInfo.md b/en/application-dev/reference/apis/js-apis-inner-wantAgent-wantAgentInfo.md index 6d93123f0c..8facc43fc8 100644 --- a/en/application-dev/reference/apis/js-apis-inner-wantAgent-wantAgentInfo.md +++ b/en/application-dev/reference/apis/js-apis-inner-wantAgent-wantAgentInfo.md @@ -1,6 +1,6 @@ # WantAgentInfo -The **WantAgentInfo** module defines the information required for triggering the WantAgent. +The **WantAgentInfo** module defines the information required for triggering a **WantAgent** object. The information can be used as an input parameter in [getWantAgent](js-apis-app-ability-wantAgent.md#wantagentgetwantagent) to obtain a specified **WantAgent** object. **System capability**: SystemCapability.Ability.AbilityRuntime.Core @@ -9,38 +9,5 @@ The **WantAgentInfo** module defines the information required for triggering the | wants | Array\ | Yes | Array of all **Want** objects. | | operationType | wantAgent.OperationType | Yes | Operation type. | | requestCode | number | Yes | Request code defined by the user.| -| wantAgentFlags | Array<[wantAgent.WantAgentFlags](js-apis-wantAgent.md#WantAgentFlags)> | No | Array of flags for using the **WantAgent** object. | +| wantAgentFlags | Array<[wantAgent.WantAgentFlags](js-apis-app-ability-wantAgent.md#wantagentflags)> | No | Array of flags for using the **WantAgent** object. | | extraInfo | {[key: string]: any} | No | Extra information. | - -**Example** -```ts -import wantAgent from '@ohos.wantAgent'; - -let wantAgentInfo = { - wants: [ - { - deviceId: "", - bundleName: "com.example.apicoverhaptest", - abilityName: "com.example.apicoverhaptest.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true.true,false}", - parameters: { - myKey0: 2222 - } - } - ], - operationType: wantAgent.OperationType.START_ABILITIES, - requestCode: 0, - wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG], - extraInfo:{ - "key": "value" - } -} -wantAgent.getWantAgent(wantAgentInfo).then((data) =>{ - console.info("getWantAgent data: " + JSON.stringify(data)); -}).catch((err) => { - console.error("getWantAgent err: " + JSON.stringify(err)); -}) -``` diff --git a/en/application-dev/reference/apis/js-apis-permissionrequestresult.md b/en/application-dev/reference/apis/js-apis-permissionrequestresult.md new file mode 100644 index 0000000000..03e049e9a1 --- /dev/null +++ b/en/application-dev/reference/apis/js-apis-permissionrequestresult.md @@ -0,0 +1,40 @@ +# PermissionRequestResult + +The **PermissionRequestResult** module defines the result of a permission request. The result is returned when [requestPermissionsFromUser](js-apis-abilityAccessCtrl.md#requestpermissionsfromuser9) is called to request permissions. + +> **NOTE** +> +> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. +> The APIs of this module can be used only in the stage model. + +## Attributes + +**System capability**: SystemCapability.Security.AccessToken + +| Name| Type| Readable| Writable| Description| +| -------- | -------- | -------- | -------- | -------- | +| permissions | Array<string> | Yes| No| Permissions requested.| +| authResults | Array<number> | Yes| No| Whether the requested permissions are granted. The value **0** means that the requests permissions are granted, and a non-zero value means the opposite.| + +## Usage + +The permission request result is obtained through an **atManager** instance. + +**Example** +```ts +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; +let atManager = abilityAccessCtrl.createAtManager(); +try { + atManager.requestPermissionsFromUser(this.context, ["ohos.permission.CAMERA"]).then((data) => { + console.info("data:" + JSON.stringify(data)); + console.info("data permissions:" + data.permissions); + console.info("data authResults:" + data.authResults); + }).catch((err) => { + console.info("data:" + JSON.stringify(err)); + }) +} catch(err) { + console.log(`catch err->${JSON.stringify(err)}`); +} +``` + + \ No newline at end of file diff --git a/en/application-dev/reference/apis/js-apis-wantAgent.md b/en/application-dev/reference/apis/js-apis-wantAgent.md index b0bad9b58f..215816e358 100644 --- a/en/application-dev/reference/apis/js-apis-wantAgent.md +++ b/en/application-dev/reference/apis/js-apis-wantAgent.md @@ -707,7 +707,7 @@ WantAgent.equal(wantAgent1, wantAgent2, equalCallback) equal(agent: WantAgent, otherAgent: WantAgent): Promise\ -Checks whether two **WantAgent** objects are equal to determine whether the same operation is from the same application. This API uses an asynchronous callback to return the result. +Checks whether two **WantAgent** objects are equal to determine whether the same operation is from the same application. This API uses a promise to return the result. **System capability**: SystemCapability.Ability.AbilityRuntime.Core diff --git a/en/device-dev/device-test/Readme.md b/en/device-dev/device-test/Readme-EN.md similarity index 100% rename from en/device-dev/device-test/Readme.md rename to en/device-dev/device-test/Readme-EN.md -- GitLab From 5f504f5f012544a87569a60712581e5b9a9e7163 Mon Sep 17 00:00:00 2001 From: zhangxin_T Date: Tue, 17 Jan 2023 16:19:34 +0800 Subject: [PATCH 296/383] bgtask doc modify Signed-off-by: zhangxin_T --- ...-resourceschedule-backgroundTaskManager.md | 54 ++++++---- .../background-task-overview.md | 10 +- .../continuous-task-dev-guide.md | 98 ++++++++++-------- .../efficiency-resources-apply-dev-guide.md | 28 +++-- .../task-management/figures/bgtask_choice.png | Bin 39202 -> 38904 bytes 5 files changed, 113 insertions(+), 77 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md b/zh-cn/application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md index 2486de75b8..be9f645ab4 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md +++ b/zh-cn/application-dev/reference/apis/js-apis-resourceschedule-backgroundTaskManager.md @@ -66,8 +66,8 @@ requestSuspendDelay(reason: string, callback: Callback<void>): DelaySuspen let delayInfo = backgroundTaskManager.requestSuspendDelay(myReason, () => { console.info("Request suspension delay will time out."); }) - var id = delayInfo.requestId; - var time = delayInfo.actualDelayTime; + let id = delayInfo.requestId; + let time = delayInfo.actualDelayTime; console.info("The requestId is: " + id); console.info("The actualDelayTime is: " + time); } catch (error) { @@ -257,7 +257,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want ```js import UIAbility from '@ohos.app.ability.UIAbility'; import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; -import wantAgent from '@ohos.wantAgent'; +import wantAgent from '@ohos.app.ability.wantAgent'; function callback(error, data) { if (error) { @@ -281,14 +281,18 @@ export default class EntryAbility extends UIAbility { wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] }; - wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { - try { - backgroundTaskManager.startBackgroundRunning(this.context, - backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback) - } catch (error) { - console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - } - }); + try { + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + try { + backgroundTaskManager.startBackgroundRunning(this.context, + backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj, callback) + } catch (error) { + console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); + } + }); + } catch (error) { + console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`); + } } }; ``` @@ -336,7 +340,7 @@ startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: Want ```js import UIAbility from '@ohos.app.ability.UIAbility'; import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; -import wantAgent from '@ohos.wantAgent'; +import wantAgent from '@ohos.app.ability.wantAgent'; export default class EntryAbility extends UIAbility { onCreate(want, launchParam) { @@ -352,18 +356,22 @@ export default class EntryAbility extends UIAbility { wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG] }; - wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { - try { - backgroundTaskManager.startBackgroundRunning(this.context, - backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => { - console.info("Operation startBackgroundRunning succeeded"); - }).catch((error) => { + try { + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + try { + backgroundTaskManager.startBackgroundRunning(this.context, + backgroundTaskManager.BackgroundMode.LOCATION, wantAgentObj).then(() => { + console.info("Operation startBackgroundRunning succeeded"); + }).catch((error) => { + console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); + }); + } catch (error) { console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - }); - } catch (error) { - console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - } - }); + } + }); + } catch (error) { + console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`); + } } }; ``` diff --git a/zh-cn/application-dev/task-management/background-task-overview.md b/zh-cn/application-dev/task-management/background-task-overview.md index 0113cfccde..d4f67c0747 100644 --- a/zh-cn/application-dev/task-management/background-task-overview.md +++ b/zh-cn/application-dev/task-management/background-task-overview.md @@ -100,13 +100,13 @@ OpenHarmony提供了九种后台模式,供需要在后台做长时任务的业 - 携带参数信息支持number、string、bool三种类型。 ## 申请能效资源 -能效资源可以分为四种:CPU资源,WORK_SCHEDULER资源,软件资源(COMMON_EVENT,TIMER),硬件资源(GPS,BLUETOOTH,AUDIO)。 +供系统应用使用的能效资源可以分为两类:软件资源(WORK_SCHEDULER, COMMON_EVENT, TIMER),硬件资源(CPU, GPS, BLUETOOTH, AUDIO)。 -应用或进程申请能效资源后能够获得相应特权: +应用申请不同的能效资源后可以执行相应的操作: * 申请CPU资源后可以不被挂起,直到任务完成。 - * 申请WORK_SCHEDULER资源后不受延迟任务执行频率约束,且任务执行时间增加 + * 申请WORK_SCHEDULER资源后不受延迟任务执行频率约束,且任务执行时间增加。 * 申请COMMON_EVENT资源后,应用在后台处于挂起状态时,仍然能够接收到系统公共事件,申请TIMER资源后,应用能够使用定时器执行精确定时任务、 - * 申请硬件资源后,应用在后台被挂起后,依然能够被相关服务唤醒,执行相应的任务。 + * 申请(GPS, BLUETOOTH, AUDIO)硬件资源后,应用在后台被挂起后,依然能够被管理相关硬件的服务唤醒,执行相应的任务。 **表1** 能效资源种类 @@ -125,4 +125,4 @@ OpenHarmony提供了九种后台模式,供需要在后台做长时任务的业 - 能效资源申请或者释放可以由进程或者应用发起,由应用发起的资源释放会释放属于它的同类型的所有资源,包括进程申请的资源。例如应用申请了CPU资源,进程申请了CPU和WORK_SCHEDULER资源,当应用释放CPU资源的时候,会将进程的CPU资源一同释放,同时不同类型的WORK_SCHEDULER资源不受影响。由进程发起的资源释放对应用申请的资源没有影响,例如当应用和进程同时申请了CPU,进程发起了CPU资源释放,应用的CPU资源不会被释放。 - 同时申请同一类持久资源和非持久资源,持久资源会覆盖非持久资源,在超时时不会释放资源。例如应用首先申请了10s的CPU资源,然后在第5s的时候申请了持久的CPU资源,那么资源会变成持久的,非持久的CPU资源记录会被持久化的CPU资源记录覆盖,到了第10s的时候资源不会被释放,如果在第8s的时候提前释放了资源,那么会将CPU资源释放,无法单独释放其中非持久的或者持久的CPU资源。 - WORK_SCHEDULER资源只能由应用申请和释放,不能由进程申请和释放。 -- 需要使用能效资源的应用,需要向应用中心提出申请,获取相应的特权。 +- 需要使用能效资源的应用必须是系统应用,同时需要向应用中心提出申请,配置相应的特权。 diff --git a/zh-cn/application-dev/task-management/continuous-task-dev-guide.md b/zh-cn/application-dev/task-management/continuous-task-dev-guide.md index 83d0275630..f64d06c713 100644 --- a/zh-cn/application-dev/task-management/continuous-task-dev-guide.md +++ b/zh-cn/application-dev/task-management/continuous-task-dev-guide.md @@ -61,7 +61,7 @@ Stage模型的相关信息参考[Stage模型开发概述](../application-models/ 2、在应用内执行长时任务时,由于元能力启动管控规则限制,不支持同应用通过startAbilityByCall的形式在后台创建并运行Ability。可以直接在page中,执行相应的代码。Stage模型的Ability使用参考[Stage模型开发指导-UIAbility组件](../application-models/uiability-overview.md)。 ```ts -import wantAgent from '@ohos.wantAgent'; +import wantAgent from '@ohos.app.ability.wantAgent'; import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; @Entry @@ -89,18 +89,22 @@ struct Index { }; // 通过wantAgent模块的getWantAgent方法获取WantAgent对象 - wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { - try { - backgroundTaskManager.startBackgroundRunning(this.context, - backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { - console.info("Operation startBackgroundRunning succeeded"); - }).catch((err) => { - console.error("Operation startBackgroundRunning failed Cause: " + err); - }); - } catch (error) { - console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - } - }); + try { + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + try { + backgroundTaskManager.startBackgroundRunning(this.context, + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { + console.info("Operation startBackgroundRunning succeeded"); + }).catch((err) => { + console.error("Operation startBackgroundRunning failed Cause: " + err); + }); + } catch (error) { + console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); + } + }); + } catch (error) { + console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`); + } } stopContinuousTask() { @@ -151,8 +155,8 @@ struct Index { ```ts import UIAbility from '@ohos.app.ability.UIAbility'; -import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; -import wantAgent from '@ohos.wantAgent'; +import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; +import wantAgent from '@ohos.app.ability.wantAgent'; const MSG_SEND_METHOD: string = 'CallSendMsg'; @@ -176,23 +180,27 @@ function startContinuousTask() { }; // 通过wantAgent模块的getWantAgent方法获取WantAgent对象 - wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { - try { - backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), - backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { - console.info("Operation startBackgroundRunning succeeded"); - }).catch((error) => { + try { + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + try { + backgroundTaskManager.startBackgroundRunning(mContext, + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { + console.info("Operation startBackgroundRunning succeeded"); + }).catch((error) => { + console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); + }); + } catch (error) { console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - }); - } catch (error) { - console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - } - }); + } + }); + } catch (error) { + console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`); + } } function stopContinuousTask() { try { - backgroundTaskManager.stopBackgroundRunning(featureAbility.getContext()).then(() => { + backgroundTaskManager.stopBackgroundRunning(mContext).then(() => { console.info("Operation stopBackgroundRunning succeeded"); }).catch((err) => { console.error(`Operation stopBackgroundRunning failed. code is ${error.code} message is ${error.message}`); @@ -312,9 +320,9 @@ export default class BgTaskAbility extends UIAbility { 2、在Service Ability调用长时任务的申请和取消接口。 ```js -import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; +import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; import featureAbility from '@ohos.ability.featureAbility'; -import wantAgent from '@ohos.wantAgent'; +import wantAgent from '@ohos.app.ability.wantAgent'; import rpc from "@ohos.rpc"; function startContinuousTask() { @@ -335,18 +343,22 @@ function startContinuousTask() { }; // 通过wantAgent模块的getWantAgent方法获取WantAgent对象 - wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { - try { - backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), - backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { - console.info("Operation startBackgroundRunning succeeded"); - }).catch((err) => { - console.error("Operation startBackgroundRunning failed Cause: " + err); - }); - } catch (error) { - console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); - } - }); + try { + wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => { + try { + backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(), + backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => { + console.info("Operation startBackgroundRunning succeeded"); + }).catch((err) => { + console.error("Operation startBackgroundRunning failed Cause: " + err); + }); + } catch (error) { + console.error(`Operation startBackgroundRunning failed. code is ${error.code} message is ${error.message}`); + } + }); + } catch (error) { + console.error(`Operation getWantAgent failed. code is ${error.code} message is ${error.message}`); + } } function stopContinuousTask() { @@ -396,7 +408,7 @@ class MyStub extends rpc.RemoteObject { } export default { - onStart(want) { + onStart() { console.info('ServiceAbility onStart'); mMyStub = new MyStub("ServiceAbility-test"); // 在执行后台长时任前,调用申请接口。 @@ -416,7 +428,7 @@ export default { onDisconnect() { console.info('ServiceAbility onDisconnect'); }, - onCommand(want, restart, startId) { + onCommand(want, startId) { console.info('ServiceAbility onCommand'); } }; diff --git a/zh-cn/application-dev/task-management/efficiency-resources-apply-dev-guide.md b/zh-cn/application-dev/task-management/efficiency-resources-apply-dev-guide.md index 885dacbcd1..89b6d5e34c 100644 --- a/zh-cn/application-dev/task-management/efficiency-resources-apply-dev-guide.md +++ b/zh-cn/application-dev/task-management/efficiency-resources-apply-dev-guide.md @@ -23,7 +23,7 @@ 2、当资源使用完毕,需要及时释放。支持释放部分资源或全部资源。 ```js -import backgroundTaskManager from '@ohos.backgroundTaskManager'; +import backgroundTaskManager from '@ohos.resourceschedule.backgroundTaskManager'; // 申请能效资源 let request = { @@ -35,8 +35,14 @@ let request = { isPersist: true, isProcess: true, }; -let res = backgroundTaskManager.applyEfficiencyResources(request); -console.info("the result of request is: " + res); + +let res; +try { + res = backgroundTaskManager.applyEfficiencyResources(request); + console.info("the result of request is: " + res); +} catch (error) { + console.error(`Operation applyEfficiencyResources failed. code is ${error.code} message is ${error.message}`); +} // 释放部分资源 request = { @@ -44,10 +50,20 @@ request = { isApply: false, timeOut: 0, reason: "reset", + isPersist: true, + isProcess: true, }; -res = backgroundTaskManager.applyEfficiencyResources(request); -console.info("the result of request is: " + res); +try { + res = backgroundTaskManager.applyEfficiencyResources(request); + console.info("the result of request is: " + res); +} catch (error) { + console.error(`Operation applyEfficiencyResources failed. code is ${error.code} message is ${error.message}`); +} // 释放全部资源 -backgroundTaskManager.resetAllEfficiencyResources(); +try { + backgroundTaskManager.resetAllEfficiencyResources(); +} catch (error) { + console.error(`Operation resetAllEfficiencyResources failed. code is ${error.code} message is ${error.message}`); +} ``` diff --git a/zh-cn/application-dev/task-management/figures/bgtask_choice.png b/zh-cn/application-dev/task-management/figures/bgtask_choice.png index 4f1fd6eefab0302ba4f936828adefbedf8f6c1f8..f72473386330f4212a7aa8ff8e0c0f57e30b55de 100644 GIT binary patch literal 38904 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 KNrlmGasL2~YSpj+ literal 39202 zcmbrmc{o(z8$Wy)MqyBP%98ABp+XpuHEU#-B|9l0yD23}S&E|U$`-O^$ySjq*@-M= zC;Ptp-9z8+?|Z%1`_Fs5U02MEnKS1+&;8ub{aNnwSW80*L&`*oAP7c9SwROu2(#dS z+7Uu{Md;J>0r++Fma^d;1fi(G|0jszr(i}9Hbg~1PS>+TZmu|0l%lxonc{e9L(SK)tc6Y}q*J>>QP6QE={(kEy{s9C2 z2V#Ek6Gw3H3w`kO|MwrHQ_IUw(8D3kk!sxw0ej^M3D?s!;=X_X?&R#OpKE5SrG;yP z!4W~sAC&uUo)s5&{}#&F-QA605@V3|UKwwGt@-A{F(#(z(NP86MAJ_mWb{Jc8ymkA z!G{iO`mu<$gc znu?0o-j0M28-i3LIQH9ryR+3_pTnHE5H2?N$!#j%{4=3W8~;W`c=+$Jv926bsipo1 z4yCz)PwRsfJ|(FzCMaa9DT-hJT8>F?h0k4`^4XagB0@PE8=HsuscC83+uQ4tZGkh* zgM%_+Vud9o4D^inYsU(E?(gkpTut-!_3bOPmsef=VDVKs<3~$Nt`=)=Z?9ud&Rc2H zIH|i7h#`*dPoHe9+x>zI&GoG9^_?SrY(o#c;+ zi6Oj)P30YRIwnShpXutCF!68SzHN>bf1{_Qcx4E%;UJqG^`#drX%{h-1tv!T^}5dn|C zRS`HK2LrV55JG`fw$iM^JKMN;ZDl3&$rFBIVWo%NHm$8Wrk_kqO<$jL?kl-HV&CzO zlbai^`L$rcBC9H$?-o`*=H!us!E)u{=jTxORZ>z~vY+fL`upV}+10C8wL@1=+oj7t zqDW3mYHU>XH4(qM+Z(%PLXAA|BSy0mh#*c7l|S&yI@e5n#BpYJR{y<$g(SpHEhLs` z0mJqJTTSg&Ep6>%GS!FUMDu&#)7{kX+gn@hlPtEj6CXZ&XnHA}(#S+aFJy9rf`X1% zkc61nZ+o_QLpRHvt=ixV?qHm7ODj_ya4MyrJ_Rg%CV@DJyXdt9Q|vNWo)MJ%f_ln) zJnsJRcdy$gPThG$Mo`h*dAk&*>(v=6rgKg|%e|Ii&A&}ctMXnYWp(c&$7;Bre=`@r zfShB%HGB=7n`%w^`bOdo#fb}vdtI}s>5pGZG@Pm@voU=?$T_dn6!2kX*)u_}nQUa& zbNsoO9dfF%smZ=o3libquB?gaX(m?I{e?gBz8e;>-e6d+j(&T}%+Aifwzf7pFbj(g zi^cUN`_QC+4DI7JBYGQfsw;x+lg84N2UUFfrMK52`UE`CqmNApQ@v2;k+HF5=AZB1 z94OP%bYebx8o~hbyXcs z{%Q$pvR1C#Y{rs*`0eDrfnKGPFH@G_HE zr+aQLSsNMk!3fy7wZK{`zB!Qjd6I<=70y9yG>0#N)PchRgo;zibWdWU*6 z+b}G1IA-(_Chx5k-b&SBG_DB0d_)kxvF>c+)W@1BK4tEIKiajOa#mXJd?8>F_g>I+ znDcsmZ}wAdM7x(RD?8Hmv(*gt$9$9+?nN1^YPm-?Bk~+YLh(Ib`jb`Nv(fvZOyUl( zb3m4=eM#o`@9?9a<|~a0Y%ovfrh0ORLTLGaypc$GJ?31*`NXiH#tl0Y@ZuaoJi++E zZM8t7g}Rtp#t&({!eX8&XPTxEM?TqyypoeAARwslS$~(11>w$o{^sw$HdkOSKO^Lk zvim!tqN2|Wm+akIf{$^0`TEtJb%2A<@VjN>M)3>e1I=ASbYklXY0>Ox%`<7g`35Y7 zA8b8%;TkM_W7JG3V>U7Ab0A4aV$xXCOAfmu=;}LC$N$)!6J~x(gGNwVsQs;;DvFbm zqksM^ekNfRbL<8WId-YlzZ93FdydkDE9ed%U%^d|B!?j8rZT&JPVc37W&#;-PHEitL2 z6|Mm}%wYxg3zQ{BOQ{n>Ztp*=F5q=c^P;KX@)X zeX{lGlgd$z?DtyzO>Ep#8$s6lB~o}RN>_<+gf@>6*Eqmlxa0U1g`g9eU$sd?6=7E8 zU$K?qBi2pKmg%oU{IuvPe|M|xeS^4TH=AAk3OTlvG|d#HmAs7Y)MV=mXx1!rL{`4PmDH`@w5vaA zju;IO?e7)yl%;8>D2~*HaXV+sSM67R!G%j(C5Zby%Kq3Oii>3-w#iSZWI&Wy2`4Te zI~m<{e3Fb~Up)OaziFkf#KnugqxBK6lXRqM?r%;cq?br0WoD|rM6>P6Tku~iAN*U5 z+@LI+DCqIo99dsdB+wN>`f9(Njo0xwegCh%2(mlQy1(&=r)(l6OeR+1&iKpg{$5a} zlA<0+*fr;(;wpp+c3x=TE!CgNko=_Sht|4F>~QUvDyy8^rJ}F9C;Y!~q+`R9|}D)6X?!*q^3C^3!J!Qx)ia88N_ZbV}IlViXIN{vB3a zdghbb6ZMYEJr|V&lvczW@1aP>f5dGs*0I8hot(5I!q{IWtheUg_gnaVk8TU8QG2H# zNV9eCMv{&LS7IZY?ZnK>rz=g`ZO98lLoF%pywL0Gfs*vX)ktT<-66kX@6~B2QzDxr z&8u-Ovil~sZPLhOFvKcURCabeP%vQa?K57#W-cB7^XCr}D>2pIIXdCZFVp;b-wS_{ zRDb6S=ODF=TO+rkl2#i*S7-CSN0I81b#lShuD1!RRV~G*@1wI?&bud1)D#qmvqY+^PXI6w zo#)S=cj?XNJa!-OO@98_oi-AjmaZ-hEv@+N;To<>%Ic@~eKr>UT*ZopzpILiJGogf z2bDh4>1lD~hwAm7Ir@at=`JbAajA&`5;if!l_`=k`VE%NJ9%d;*y)qbg{33t#Pd*4 zjKe-zVAJd{SnjpEwW{=#sR&;C^5s$|t}NzmX3Jgr>kq4?N1omNDWn#1rm8@swRF4h z6r9}Y(=`nZkIU7eP&fTxPQa@%ncO3`xw)CTV{B{;C77cn3(i2!T7#GhL;69JP|NLJ zWgj`V;hdyCD`J)BuRc%6yHDTvOeB|*mazB9v7dC9#y3yvJ;}+j`=yYo+TW_#|8B8O z@cU@f9J@Tx^4jAvl}7ElMngoYljd~1_tMdvRljW z@T6-d$c!HE?d$X3+nfNjaoM7~PYi3c9kYnQ=;ZNnUYl_Y5z}vFxf_lf-$G~%{n)g< zt)CHgp6fO=voU=bMDS|E0jsK_(m;RR*TUtx^z&4uFqXZ&J$rlmcfEW1c8}kXt~Xg| z4o2m9=dO96cjk0X%X(DPyd-3ibgQqcdqg2CB`JBcH-Btx_E&nNQJ}7$&bEDV)#!C& zcP5+yWtE$SjVVdJG>7Igy4tosDd&$+4^k6-NtxcNVUUmkm%)q+-d>-d?=QVm6MU@j zYG+duKRf&92eJF4A7i4#k!NoHIj#QB27Tu=_R8W3o~6ZTO;khOY-wrPKQLfiXlG$z zamM1y1E^M}8=iBg*GW$8aDUh@(n}$zf7<(piSRd{3)%wtzDSn$NF}?`>IWZ=pc*j% zZ0zOgy40C*RZvjywV3@`2(20FN=iz4ih~2<=W?b@#%_&uM@I()@{_ag6Vls|(f991Dtjol+r28zARl{u zL!2pcXvmZGXk>0kdjKe zPrq1HC%SR+maSlG$ST3D*%v7%h0C-xSJh)S*9q!n6Oa8sE_kn`1DmlvH_-gxCBJ~c zdqDfw4X%nII!sYlQghFt*Sc?+O4ISLF_oXmDKA2Xi+_*&mF&`tD3O^&;Rtx-yu7?_ z+(=EaT9u@Rq{GUZFgki;B>qUfq#E{N46Yo_kX&BsVqD{Z42vghD^@GE^HQ<0$~txn z#NL*09j%AF`?%1{{C*1ZGt@PZV3H$@RhBE@A@`M6SS90ufdMN^OL9>=p{}JE2bLY-^r=KEjlUlCRKr*ba zt~LWdvrcgUCsD1!b_b}KoXalVV=EwJ7|pg55$f@AREV}x>cbaw;&(T>im}m#=YXEl z+N5DNjXrq@wyFBo{yQhXwA9oGg}*Yn^J8M%=LZK`S~Ob%gJ{H%wy&$*$c6aKb#!&; z9OFgL1*o54!2}A^{6pNH{Z#?7l9JxAT?10+es2gnB-#bBJVxkkhrIcWO0FcUxI{A` zKW}ixzCE?3MnPfyA22zpr>6%aGn#v`0>zAB;^X5xtAH}6F|QCs=BNlNUNakLX??Ko z;G(CeCnI}uE!(I$PU<`d2dYgPFcVbs-(cYFCR>xXsKicxMNaFJhD2!#HWR(rHW@~( zoYBd>Ki^DR^sV&HghHD%U=4`4GPkMYl{AN+es|fz;!mbtmiO9>%HW8M-N=he^!sZ@1tJov$Hty?It7 zUeu5Tvfsadr6EM$pVXO(Fwi-a)2nq<8n3$0B+11lP-j0Oo z3Q7`xe}5=yzH&1j-~-&!==ivh@yGW-UX7-Rz%~y^@~=;8I4}FjfjhH(;=Xo=hfaU~ z`n*ffg9j^rdo*dp+*T&FJIzfmuY3CV+@0=xEHsHH`ZQ&CAB6GX2+RY4;&KIE?bRy= zn2Du7b{+4Y4x%xPjDY(30A)cQgQE>5$_4UXeRrCRYj5qB%LbMZkClUM~SX z2?z?-J|aClGW%^9t&>t7%a@b z>5F*AU-XK6_3DCs`)MXIG52X*BFwRy{Uz)nbM}3OQ$VUcJ0Wp@lI0*S5XE2~yL2GS zU>QIxyrUDV0ixh%UP@Kf{^s(;V(%f;hixYuYAgl@<%8-47=~$pNsM>hD7`8Y{I_`H zSn?p`{`TaKSOKMZ09rf7AYmLkc1+A}5=uzJa?iXo#28La&d13)}L8&WevJV^_jdXr1a_qSu7zk)copd%W!JmnNA^lfkl1t^L4SX$7 zI@}YYw|-;Wx0Ku{4>)4<=2Tija&q#dgQOq{W_M?~1?a@vw{KVNERhY;9I&Oci$Iy3 zyl|_!tE)&Z5DnKhKUfiagsBX8KG^;tA-4i;1w{;$>woJbII8ydqy~Y$2BOt;3Elt^ z_B~Fj80H6pjzj5LKhO%WJoE&1BqSuR`z{izi|=iWgrNutsRn@C1jaILbZkuUdSy98 z9ei6?rXKKs$6}5EmC}($*((pbE@WgJ%s&1*0+R|0-2n9_^KQ8Y2Axj!@tEu1TyBva zISc1Njxg|1vRwQLeEDQsii-XIWJ;LLk2j?O`~KSaa@OaaMx4VTpSKhSXl-vfVZY`w zoCSm+iy0KqkX(U~6L;=g38a+SSolf_G?LQZCm_-xRPo1uMWmvl0{l1-xg{`OFvDCm zaG+oUT|K=&AdtXYs^KU82RZ)t|2)OMxp~NBn4iAZ=FP8S>Zu7f?H(9zXBJ)iAuk6!t&jPNg$Wu zc`GGKE5H`<-aQDdl?OXJzK)KL_9(V}E?HqgLA}!RIPE11{AWP~2z>hVX;@g;1A-$& zgtoS}T^<6w$eS#bIq|`tC8yAAdK>qs9FP_6(JH>40MV7hlb#d?*p^x=d=^=9xra^k z-VRWSDm8bIvBnIf_G zX#9;rR5rQyujQ?VMZ;CYb$xb2L5iS4eJCi9=b<`y>FDk0PTnqVF0+(5ZdQl27Q5u3o!!v{>zsyiqB4{=q3Ua1@$t1)^8pR3A!Og zDQtLT#MIQZxw#o4cXn#3)Mcm=D0%%`S4~XH?@VZ%KVSS#{k4&yVe_jq9OB}ukeo_h z9ejF=B4ZKWdDqqT6lM$PU?Gzd5l+sxmu??Fe!RS*LdtCtyC!P${T2L!wf$%5Ahajx zA(vw)DCWAd=y`tvVMut7O;oht(n(NiNYLnZX-WnWwo|8IR2b+_Adu6rw&el)d*5S3 zf&IHVR4L8d^5e&kq@*MOHMFtpQc^x}mGVKl6Z`wCxdEJ!5zn6o-h~l_52{`CSrg#o zwBA~oijIy3R@dF#eW1uuA7cOEM;-xze!y89izCcpcCDFu{4Or@p`oELlq1;(6QCs< z6%_^NeNx(6%>Mq}$yN(sHy%HJOe=}U4|#ccqP9Pr0IWZJSPMG|_3`5@(%uiwL)5}I z>jBdbY}-`kF058G5fNOQ{v<0eFYgmN!RhX7W{DPyuR+d3m2n#cgAgaMIBM$~8VoCa zz3@7Ko93-s3&8F0k>C6N{mMNo8!6K%TaYgf-e_3vy&9spUTD{r49Bqg7TTL{O(t4a z_o2S2i40gJIeEyt3(Lz*jg8*>d(wk;_)p;+SY&+bL+4`7Imh--vV2WWO}znuC1#hd z@|+7e6HSod)@B$7y%XsJoC(57Ku=-R87X%DrAXhCaeTna05<9$F``N|Vug3-&4@4r zam-l%O@61JC9v&jF~f|S7TBmmY67AWSWJxs8B+^yxM*R+d<7aY8WtA(+2gAr903C} zB;u4dX_z(m36LoE$=n$M2%QgrF`!0z&ffu;DKU`^zU6RNb%HUBe)Hy{bDx-+S`(yf zb=YR%?4gQK=&~K_D{_ROXFPw?}LNx0y*Rmfu(e54!B3Mhz>u!Qag>IFk7&iX)n zX;h7bKF60bX=xxU6+=;oVLo>PmVLCKanALsXOh{(Ajf=#)f&nmR~ZdMwESOn#vYMB z&OdgM@UVgxISW*J&0}hOVo&iI9v%k8Ks(BvK}^hRX%xR)jf`Ltq$MO6<>Ud!;j0rZ zW}x|j?57sgH!itl;o!j6!WRX~hRt}kZfjVwrrsZ|9mUa#UJp(GX{wl%XjJ+V;c;qe z+m?9sz#zpimI`=;7i!$jkRBE=jkm@cX`@nnZqSJT$yHF+Yn%4YGH}lJM=u}!B3-YL z=g{PU@bV50x=#r2#imB=dUqy^)IB>%cH~H+oIH>kWR#S`e0*OXG5Q^rI&36N10#R` z!YSfM6gX!+yK`h&ENbG>dYCaiosWbLkmLFFXZCqK&fKR+FfjfVyGw zi;fvJDz5Z*GKP4r<<(-a{v^cnIVgWQd01WcZ5n!e2y*BJ`1!#C7BEy-cV~X)!94!4 z3e!FqT-=l^Ku&3&wcwlAv&JV`7>Of05C>9;0!`DM+u~7IU5mdwid5oj3$+nPyoil9 zi1aYnCDIRT$9aAgeZB-0s)@;o#fwlg0_NG+*nkpv_z7&AG!l5RCn-IhM@+19aL^1E zOkpse4bqNTkmO7kY;^LW*~{6YAHHnZZGL}p!C@NpTQYj`!V(6znhEg!RqDHUu&{u} z#xR~Gl9PW&jza@;xz$mj7Do={i`Fr|g2CG}f@I_UjF>Z4n-f__qcCjP`C} zMMdII=X%TBv&K_=9(4Wq^-InkW!~vG&hiT5+%28ehSUe90{dl;@D4gz?Zuu$j=dDV zPC-V-EaQ7Y;xUMzLT2R~kntf?e0>?*Qi79P-TI1`G(uxxXy%5h0stY2mDxgKhpO-H zTz{K}j=FmGRZkWqrLu|Dl>QD;w}sE6dYVdfwM3(EX_?j?G&W&gun4W=_+Pol!`!-1~; zIIMkz@IY%R_dIjqf@f=@+~|tr-8pb}xLze?I^Mm{{`j$YwtpEP6*{pmx)59-y*J0! zwLUfuzQ3!$*n{$Df&Dp5Dmi2MrMnv~Mck}C*Wb&Zkt;7?dEuG0fq`8pGXcx@f+fOZ ze$W(>Ptv3GuSf|?y#=!JCt}cjU{b*9$nlo00V71>D$BH4s0<@67(k25Kv@(TBMzks zfaIyEDaDgw3O?I^9i$VS*m@g)D6T}`V$WGGcX~^nxK(TuI>GYz){EtM-fIQcCrlM- zbNBR4MhdHY{@^n_MqXV~;c z&0oW1Xwtk}ia$p6M2vYIqP?=4hjDM^4(&oku zT?W!jM%;`PDsSkmlBH9{_|Vx${d%RsxPBRgSd;+MiKGSwm3hpnigJIvIbd|{T9EKr z^28k87Fjj9S%1Not3 zTbP%Z6rk9XZJY+;>aHk~cf)+oC)#P|$-b(u`~A=_KYB^nq!$wBbj`b7UYew|{qe>y z&yqN*2kMshrk~atqxjQ{L~w&P&$5K-=TYX_C8Lkxk69~i6h=D6^UpYOw`=(w$r$0g ziF_IhWfP(J?5A)OmCneN*cJD-y=UXOr7#iNoB{6_5)^E1YHI51E5i#q-=1>JrX2`6 zw=(#{%cD_H{=5*c)f{hr@YZ;eZ}7H~2V0UQn$4_nbC9{=d$>0O)()thK>r4B0iB?c z+t!LbXc-Bqsj0xO1)f7LD-Ay^y5@Od(OW=`&0(8C_b)0DwHd;QG_gB;lZu|rnU!km z>c=wR-fgV*T*o_87DwuytL^-G#H#W7+-#F@Ri}|#*pDql>^9FVy{g&C{g9#et;(R@ z0FJ#0VNAm6`+IIK{>_`6m8q+pHnZUg2`*MvR<^cEy44Eg*d3~2SXIl@30Yqe2a-M7 zSycFWyX1kq00tbo)ctQa><^dQq*EdC%ac-JcTPV_zlUVPUSWTyQZv zcO7Le8p)y3R6|d%%!F;$pou5ZvOTx-X^ZjH+ql~V47jBokj=mq1pBfh=o`+9R2XhP zT-6>DTmsl1)&?+!urou@NI<^5m3SuDB|^>F**WgTiyNM3wlrb6%*qhfOSRg_VwxHQ z!aMo}^_Uzt)OY#Wr5{!}lpo@);pMdng|qC=f_!Y!IbaQ5yr9{sCBfc*@Zf=AflXVe zS~8*E)(WGvcOi2t`6(3D5hAn$GQ&Syvc_eBWP(B?C8-o~%|;LjD?Igsik$&B2-UmQ z()pW9qYZR)bdauB78Zh^KCSTEKDW1mdj1xG6(65Nd#Z~1gDbDk35tssWoDB4t;PnL znCYyl%-;3z5E2yJm6dNqY2{NUejM$2aihzY@GMJ)2I_ZARLwFMZ_Std!kL^s9;u3*ubiW{9L)6RXX-oV%3M~~hHKonruSL`xBKOe9* zW7uiqoO9#?(AW2}iM1*zacESX-hQ!7f|IrJ&f`oj!i>+z>E%!hM6n)nMsQdMc@b!N zfTzw$N&Pa|`?36~Il&-rEWj3<*R^zUUiNzg37hsWi7&xkOjr$#)MC{q8-H(RUZJWK zN-?~woT;IuMKv3+x6+{rsX(cQUeC~x8X4&CSMC7b)hPL8t;igCY9T?VbjdlkU`E>N zH^JwH=jw_5&L9?5#DBlKiAW&m#M`Q>s;5q!+FJdqlv9+QEoe^*H7oNyg8G~X<*0d` z@-FJ9UyTOdI!IM1@h0*6n!Uf#h-?O+=8r0CXsj(RPW6|HmLjPGRRB1l%t$=#7;rMN zpg{D_vBY~!)e*tgS&=jh#8g=&?sdl&=rTMiSIlic*1J1W$Bax$+&{HT9QW zdUE1kzSO^T>AngxRvmR+P|za2C{A$Z(EzfM5LF{Y+fDLy`Y7IE#A-!J83y^HGxvG` zLFC!h|L! zCXR@RNKt&6|KS6$KD72*tg`+)z{PGzenoV}kUpN=j4@wKV(6K*mi-?-7jNnb6uTtm zXe>V#v3$>bBV#wxr*+Bso;gxB0bV#j=Xg)xd<|F;FI~C>*gdoYLUZdmiSmFYwwJVF z2ubxG>N0utv=RA{AX^1!2x29&csw^?Hw(*F-`rf=Lx)b3K~c?bMZ=dn3l)7dTclzy zs^mG@|Aho?K1xGJmt$O<1J$dTydVz`kEm$J5lrH{ZS2guN_Wc9b|goGLU-B=!W0J2%SRh5xEM?3{c<`KImH#eW z=R(o_!y=RXF<3?+Yf~_YU}?m_IP>oMQ@63cU+=T6iWsr5ush3SiR+GzmLJKuE}CFE zLD!eP54M6>*?@l*N4QEn?Jj)mpSJQ7Do>aLu!KN9wFfhv>y8;2I&sMenTjq>XKT91 z`&cw``PAv$2OCkz!VebRnzO0O-T%^UnwNa~)G^5dObh?1)fB0TT~7 zv>{dHx$;#_c{zC<>W$Htc17z1JTFM9KlT`Lgl9J9YX*;97U{n(6!&6!wrLs-6ljE=K9+ z-dC`;kq~GKmVQLg856YdhnzFh?^ZKAN6aT(V|tu|TMN`G%S%fOmvID%^nAu!8RgL4`asGLoX(N|k*hWB{#H-eR0lgk03TviA!0lBRR! z>t`v>N1xW34EWhHC!91b3#i*3Ud<$7lacWUQ~}_mzXb0Jm3O1W9f%?l;3zzO=1g02 zb2bq6pyP3I1zm3qZ(N_(c45WcV2{3Q^CnLrNDl0bw=d}H>jTvRRq1im1=rCdK$IU$ zG0%6P+n_K47F|F<0Cr@MH;7xg0sDe>aP-I#?0>$jDB|_&CUPdD3h$zGfk8MiZq0a_ z%j+w%zt*1!SN`{17}w?TW(Yw4wO-rN=iphUl$Di@Lt|o20G$q_pzxo=WiJ800YV2j zKYV>J@)ZUp`>f3k{GFQWO}_jDjbXYHC%IaE4^_3h#w_yyIbbNOavX z^NrM9AvU((AP#}+7~IGz6A$-c%liEJb08W6V{kxj+mr&02mXw@=V@fT*7(IuLPyg#&lzvCHc27Y>{UD&f0BwR>4KLgXNgaH5)KJ~P+gcpD_+;edp&J4c{6p~X#NB``4gF6xVK@yA zc|aw}9jiVolX))k(eQ@q zcY7NgFma0OkZoB(c1zgb;T8h*r5eHAUK*}_0xFXyP*o0{b^wNh=LilC#LjZj)7-}9 znx5W6HF!k?uX7xb@9^mV<*E4>v{uZ8nk#ZdC4OuNht69g&=SSw!Dzy1v7_q$S<;6k z;W!`!1rxMRyIe~_y7oz^;ehZS0CgFAU7S@pD=G5uiaAp4iAnTOG@q@nQW#-nI`~#| zCv>&l=97J`{NEiUmL7-S^qCp=A-zC+wv-DwvQ5ecXA9>VGz8y_S1GP^A`D~*75bpt zz+49)Ls`l;h(G4|KOVdT9{u+zT;0J_6oSpgAddKB{jZed$1W>7)ZDDzhtvne#lG@N-_V;l_$&%hB;(yzAbf?!?ykPSbwNsMBp+S|=}iLfmRjrBkC${0*<*eQ+7S%F#_cF`(bWwQ2QZgsErMDFG-(yl`gkaYGBu;qsc;I{(` ze}5^p%Lf){rg*Mvue7Du$O}?82mdms|SJG z$~QJP2JjQaY@H35dzF}>>3A7p%q%?b= zutacOun*Rsq&|A|sF|7B3OQi!lho9K|I`?3&jWW>{-Z~a-oE9uzw!Lt+K)IXm4Z)~ zs#Mg}me<$k+fqm{Od-L+*j6|`OujELcg40XEMSgc8jxq|P6j#VKBHJC=u-Evx2D=T z%c~%AP>5ytH$P9$lE6Sz0$#BB@ZlD0*2#(N2Qn2o2oQdoj%2utaK;?rHn+{q*-V{f z@glh$sAD-II*pBumR45M7cbhihG%6tf~N$`i;HKFGI89_lK#&Rx1I4#HsJG(i;tJ_ zS#tvKk^QOXL9P#ZBS30_EetN>xl2ztyF7Rtw9U+(wV-kT6pU~f0%&l77O=Md{x@Rx zRjwMyLstf|s9icFTl~E7@KmP}A8x##;`;NJ;i5cW=2``yr?L(b-ZnBE1UwidMwO`wY|NBb6;U+XD7t}h&=IOwV>$* z`j-921BQDfd|bf3GxD8aNLh%SJRU;zbkx>za&e7AkJv`)Kl=w62<^%vU2MrdZLAE)AJ6FPEbTh#F8^HNqf7&CTUb?cLpk) ze=;LSrag)w(tvm3*uMjw0qwHDZAz!iKTZs*BKpGCP1BuGH=i_fLD!iK`DM@Nztzb} z= zF;Rg(k1qOzF!q#&RFQt;_!+=HLfaJ=oSYkb`y4MXaQiTB)Uwswj46kLOf^}%FW9yA z!HtAJXgJR=nVcM3C+ln1;zoE9&XSha5Lm|_&s97pOq}t{IHdT6{*eIe-sh~uCqd+$ zq8{NfF}zeqph^W@FfcIinAiguNH(BEnLp~>fZQc1DcR0zlgg{Y^dj?actQ8s-iNW; zd%djktkr8$?u>}^{qnjq&$w>?o}TF0VI4_urO@BzDf+<*>Jcb?Db(lu{QL^?^9QQ} z!YD67Hy3nDnNOQkc)Nr5;^W7UVr7rSPIS=?e3d4wHcfZTl-)h4_V%TyZcYskPJn=& za@7CWm%1|=IXRtb20E2ji_d3%c-!5viJ(ea#N5Z}5+Tg`)noPbWAqjIr0 zpuC~zvVc_7@JWp+I5p-~LPG96-X&lk)ljCXL`AixHm15ol!@bZMHP!hCwH9cIAxGEfpmb(}i1X75A=cX=!O_P*h5}Ur(-K zw+XSL@;j`WIa1Tp?O=L5JUs9duv$nra8-06d*LFkY)hzWI8W;SupjbNmm+9QGnKpZc8 z9dY#+rx4%M^6s^m1_r*KA(O%v*e{!m$rE>pvu0aayZXXnEQ5hk%t zC_2Fv7bkJ&+t0wD2dn?%X-WUcDJUvx{Ly$*`o&>m4cGFS-gp~V)|9=J`FL9!8`irD zF#`^B4=fOL6TTO~bxgJF7W9RNqhrj%PG>nG{a43J)KW&}N)>4hEJtVaecfzPKH7V_(%MI5ef{ zg57HFbhxj5*S2nR2pBcLKskO^R8)okIv7Ej%%-2swP~WlPd2saF}>|swZBP&TdwOO zz=jsx`{s-smy?H8`c6(BZ_du48G!jM| zhTep_Q>aAe+tJ=8rXLx(*%qrVJ`)-uAB_rFt7|0*-o}tu8-Q>%2b-O}n1- zZPI;b5SfBO#=mF@o4p1TUGA9VCP(#q8`-`ujK8PF5-@x-Lf)3%`f~|-L4iUM5m^Ac z+vT<{87N)>>9wLzw@lpS{8u)^r(hAi96Y^4_!`;>LFU49Z+Wq1m%8 zf1t>ZyDXOZ2&(l+suvAlbt@|<5tOg0`~^&A_j+l`6=E0cIDkQqQgZ=2DC@gHb=jx` z5M*T4IcP!$_YO2VeTi*MdzNX56ruJ*)(GmE#oFe6%93L_4)rIzusiCb%p{+xqQImG zG=Y)@!lmrsFb$*wRJl64>+Nl~A&En2!P8|lNe=ETj!WiL%Sg?mZ?(2>q9IQRy<#cs<7UnhrRh4!r>X4{b(|UHwgKYb#Xo;2H@N^HWCg2njtC3(`U% z=~QS;wn5%~iU+HcZB}EAQP%@@-FaIX-0~yB!df7ikf%^$AOA!iK1iW6`cc|VctXXf z+t|s|tR2bxE2d5KZ~|Dcr@mJ$%7tb_$*K`uOW06%x7WGpBRcn>YIc}iyNEE*f$bPb zgL$YfOG~|gkN%DuPwKWd2cT70(4()I_hN{X&58zlaYE?}QXl_N37X)mik_U{{%VVt zXV90RksWF!sO{8qY`~@gEUE3!<(+$d=C9|{YE@oHP5?w@KIgBh6^0H$Qjd9Lm+ zWr)rO0Irmjl&s85@=oMu+G4?7TIFb8i?Fit9M2pt#8PR3r@iq#vAH_MZ_#fAC=njK zohLH#tlyT~A;+Z=bJiNznV{nC1lCyo8~HX3S+{hp;~Tf>h(!=Cykmr%{IsC|(z<_U?%U}tuf0z>kr&T+X<|^5m{ol46aZ0yTn_K zE(JDm2HY(bcH_5?2pHHQn}gZy-E0z&eh>twfNrnHBz_zmA01WR3s)K&0nhxB??*}g ztg_|Ci9f2RqD7F0u7ROdlsK_DfI+k45BOT2Xr;#F1I$O)OgFJD#8W5 z)F^w`o3d`+9615b)yoPBB_$=Tp=z?SRqx*m&{&=HKtXScI1lQ=@jNHJ$mtZsHQ7hE zLKp{~9NRyzB1p$?s5^nO0nzl3(G#~nSNrYTaaj>hRJgWkDLLC^ja-S5qmBI`*qL)g z0%`gkF>FP~A2kAFpJ#i?e8m`0xLmv!Fnq(t2Hz0mwyOqX3w0t8#|uxpjSp3ujGrV} z7LGIN!bRr?{g5wR`zpDe*2vN_Y3VvSN(7Hz@Ln&#L{K@Lvuia6(iLUB` zudI5|tvHXVu0sqwPD{4+-6QICkNrf6eMT^{qu__GWCx!|5l}Sy>&vr$QP2q75CYMp+7djoBD* zEKs^r)6gjF*F#nNPr9Qb#~KW56yDW4gY>S()?pq?aBoMSrFxc|H#_dR>gR0a--&Wr#K2Zbx8I~FcPi@JP zhm_>ix{zcjC@EP*%n>gaa4(F_&*vt{$&*sr-eE#|pX>INZ^S<=YX4(G z@wwKI7}N%JAS*7Zi2y61SpYsK_z9bfhw)K8V)9@Gfbmd8sGey34_);d2%OCH^g4=oKHr7qZ({B6uOjP&)^6D#U zDUJOW6YkkN0%&u>+rOb_V$?c}QIzYTN8=w%`wX=&STggAiz!J-+g)43-SnP!VAy=P z5^GAz%E%M%56wt1%G$Vbcb-&ovN_fB=W2QH_64^NVyy#1?GNaCFfcR}w{O1zcU6Io zmf$()WygC1$zQ?l2cQ(>CAg(W!kahmU&r9S=+ql_>8cay1QOK0DQc04NVFM9tP#%Q zUi9*568Q67{CM(J`oEE_swBW=ni&`{R9HDd6|uX!3%kS<7YqmofL*i~f$;$b3F6Dx zz@X5ftMThsj&tWezJGru%aPzlDDh-JQquBtH`v{X?e=7u2uDoW)w=>-M;oW-$?(cG zmhD4vu9@m8`0hbHr1+1D^Q{H89N>TeiaXP=9a(Si-JvPI;3D)kn#PYLfHrd?p9udEg;=sGA6jrJ74tyz|my-LtaMO*% z;P-s;^y%ut0?4sZ|J=FM)c?_U5`$pD1qTO1K8`4c{<7|&Az48|b$68VAM(Fh_Dfm9 znYlTkONJEn2IuRgYc9el)S zR`)|!O6TV-DvKZ(wFc~LS+@l42lcG zE9}Jg$u7Wscy>Ta1T{q=#pl|4gM0t!6A57_WdZ^2aa2?nXqv!Wd6HlldrarN)^sN4 zh(Wf4#?Gau_(pYL{{M58SPY)V+TQL+Was8i10~ax7(?)Ql0{fJ7ho22f`ExGER6pE z79y*F=04mUkYu8U5Cg!E$aM(}$$EOUGH(tbHd07{VPXOvZZp_z zuD`dgPDu(n&(%OAQC2>p?g5$}>OXSTBm+apK$B)}gTEjEI|DFK` zUn!|i)4vkHV143*iGe||=E=jeksb!EgOQODBv;x4eKu3tu3q84z5=)_1r!TX8=?O= zox5-c1QeRw09aAj8nt`I6xVBNYCJtX!66O4_b**twEyX@B98)w71kG|v)!E?U2>+g zGXK*a=@02orDGq~32^TROWpi5upbFxw@gh;>XkASpF_iaL2e(mEwvpq z@I!Z1xW@-=x;=1zf_Pix{42V=9rjm_GLp&11PB{5bV6K!3J;XOWI1`T$$(e9^cWF_ zmX`MN<;&`CE<}9e194#&0O&vE!2A!463izk4I^l^x<>dcw3u-+(cG)52g&?CZt*l&8SHJvEDfzl3~(poDmRnZi`TC| z0pASJ6K-B}{rV78VJ7?sL^}s;iQJIWIhy@oxS0kDUtQNU;$x$K`rv3FFxayq;wT!QgYTt2 zi@PZ2ZVbEvr_k90YWpz*lD%gmPO7yVAOeB}oZHAbTN4z5;?n5qe9Nq|u&4wTR z2A;E80fWm!5DP3kgVrT$#5Gf@Y#)w>hCjkT_<_d%{`VAh_!Kmyl|JMH-QgSjfMJ10 zu&y{%fvI0!ev3)W%;b}lWav@^CKf)#c(8) zEL4JQ`%j+ydmT9K*D)~>nb1XaiU_h{35*GxoFYZWI`D0sNHCRwvGL33=;3^L9WOIM zAVLRL4Jw#`iWaUg@@mo_;K=|s5J5i!f42MSsjbT z0yn18;L=x^QBbf9vZaQ<=T!S!pnoBUR6rZhs6No`AbElGq<{PNnH**WVhQ(0+tAQ! z;kO)=+nO?)4_>UnJyLD~*9D8>g4fawViH(3AQ+AE!tH3dH0{Aj2^KC`ByNCt*XM^u zA`hl^k{5h4Ay1#iopUwLEtT5 zmuvAE#fH?^zY#;1o0x0~(Vd1?cMTG9O~01H!ouceAFT1P%zCKIi8u#1wb5-MD=RDL zq+kKi4GKw7MaA@J{!B1x{x}6=lFGfw&@d}IySms727z~=gg}|AcCDYCE-BRnfj$?u zFj(CnJqxP`V(&YcFS{*rtW$R;ke5atBPbYmYAFmXq@~}yfA7Do6|l5j=811GVi|wS zt80Eo&ds_2SljNGPKK$0fE=Lm2c84;r2j63ybW)q*DUx82LKW*f_0!IK*{h?WGo-&;hwwZ-~+H={go%cx`bGc28&|NROJav40Va9IpIFp3elbz-{3t zoSmJuw6rpuKkrv3PrbUj8W4nn_4Bs$N}b26E-J~Bf#S@B?+mZR*13pN)K7gQ1SwKm zT3@|0xlSM3U*f1 z8DwIp?Ch6;82gOWS|(}X$*qIY1a@bPz6nsLt8;|L#>W#A5)czf#2lRa>Oq)OjDurG z>L|LpjJ}SMo-0eV)+#G2uUy%UsA0v6OV3m6aS~V&qcq*)52)i=G^3`3i95i-J{xA4 zeZX9*sjfx}zfray(QNp}8IXmFdAFPJMCImcWv9dfA8jk2f{+yjO(+b453$Y0qW1BV zQ!tYG`!j8kf)%~~9>S*6;Ig17cZccnj`WtoItQ1MSLx~ZOF0o9FA@>)1XXATgLiC4 zf1K*cc_HmJ&{h3QL4Cfv_)dteBofvc$@Y76SHG{RIfeOxV9CH;U13LVd0FnxhI3_u zJ4H%4Sy))G2!D#*Kn1@IBm0S6{xo#YBpoGBL6wIdD*Hcmy(M(ne#AKN4?CY5h8#5l z5`8zfVOZMb+?TJSD=6|Rsvi$TS5rJWD3uB~glJGIO z?E@9g+I8#3$qMSZeRCFuv3Af@_QEYMo?}wNyWcN7e5bvAD`FM^8J}v}Qc~ACx9`~X z=!fOr&tB>6pH!|LKXJ`9*~!HGVaA{;Vf{vWB5S|wn-5;*X9p0ZwE)?|%74t+xhM}I zr@BLh`2O&=Q~o*xDq&t|$udbSlT@FI6bpmXGdlMt)9WSw z5_K()iV3G}8x*w%omLY{%R?u$DqcU{>YiC#SqW>*&J^o(FfEFoL9hPn_wPLH5fbOd zC@?Xbt+6;R9JCw*!wn$;_SMSZGqbf z>nYx^E0aw(+G`N+3;EiL1UA_P3={Nn>wwoP0uLTAZ_q7n2`N}TWfsK!ZGu|^M&2u6 zc>6hK#w&f5=j3w?%0oX)Zis`yKX?J}g4_jgoxrBph-m{R-R@(?N5emwb*?75X=kGZ zJ}vaP%eLh`P{udLOUyj3$(^2eLX6S2#CmskWM}Eex6-a$E`2uyGybkRt#e)W!y`e_ zZ{%3!uVFA4Qu>$Fog1o}n!F)kLwz39z9wu}RqX$+e+3=h7GO^pE*Qf^(*`jF>-P#Q z-g`#u26Tw5Cui4H?kFIf<}ceN_H#*5BE>dpzCfjU8l~vxhR|#l0n>-g5?>x2si(ZV zCFDI+zJ?sN54Yc+9=x4j75EV36D%QKlVd6um&{TFsiAF1n<1lztO;umh7n~dCktdM zVA_j>gt|}HX1#hfNMo)@DftqWT>G?1+=5 zAIZ2uWRURk27s1p9FtC4qqajpcJ$cJGJe6|)Yg;>s+;8A6_&qrCZ1nXI>_6u_JQY& zu|d_n6_-F$K*j@!J-j{cD#?@E9cdT_qmBy_i$@fB%wD{kuNlgT}H|kGt0N((L&{lO+}{>I4u9_R!$< z2>1-41dDy4qrH6!B+av{NF_b@d(PQ4$EgFd2!wiA1rq)MTt9_cicJJFjh)8yEnJ_! zymzuhG-m2q-je2F%8JkfMYdMODuZu~IaEIhcH~d}azO=T9r z+?@>AwuK~7V|nR&c2}#ar60<<*`ohh&MW;Z|Do~ZUvUdz2xy>d-ky^Ds(GlatoO&Y z6+=zVrfNcVg530h zbChD`HS{^{VZVjvgZ`+6`(OlFu%^X39cP2Y8{1G#ju1>l9yH0NCZ-*7p3ho}R(*8pqqYvnna7~q z#u79&AS}-J`rJSb-})N^T}%XjV8tqfmx}5xc4P&c7b~#QBGziWH}JuEa;SuM{jNAc zZFL|vNsIrKJ2dj6ed+e=-Ak-`UIg9eTFw}_(eu3AqC3%7No)T|^wDj5xvkS)Wp~n* zwwzW(WvRn%=C9@9!yPcXA%UpWtBHy2fE3tRHo$=jTef@3P0yC!Pt@id60;3GL}=(!-7FPu<`u>?cyLk8)O4qYYoNv`in$4d zBdi{Jh)shI%Ms9;$@Cw6N1SO1xTdzn%Jp~du>P`B&Vo7PQPoE&V|!@+JEs~pDKw~g zXPE{c5cW^^GMr2aN@Hi-!zT3&ay8rM2a92+<+!Msl*H7d+A@k~k%Yl#dN(R+4_x@Z zi85T(DArq6rfbP7^M>V9%sS1=2&=uW|69e?QI2M|W5;u3Nnjhi0=+G_16kZb1h?S+ z!hPV8^1d6+YVsFKO6zOCuuEFEtjm@^Q|YgsXp`b~ZgSuQxf3IiBdIs*?g2@{x^!&U zt~zX*CT1+G=X;I>8L*LLRXLiZLj3joo9cvTI*X7xqtVaTaDr&#iE#AjZCS?Mid7y( zF=SIe!M*D`NJhTUPw2|XB*n%OzWNkpQLys=zF%Y)w0Qk3rCNYM@K7;^FX&i*T(=QC z2T6S!#}yX8xH2lAgy?MzDLbde{7+{n%?~DZh{EkXhk5&Lxg-V8dzQjHwXkdh${u^K zX0Wpal@PE)_JpNOXlN)hz3PcO>ohgt&ag~IX5pemKX{iD8%;6zv0Fnf$zqP`x7fE%X^ z*@8d=g+mSNG(u?D4}^Pn!t@xj$N_eKBD@_Q$gnDq`b9Y_Q6Zy;B*Ec8Zo`QQnsKcer7Q!$@k;Zxgq9=Z-E~$C=f$Z<8|dXxs;Z%*fzi{HTnS zB4KG+-{0R4)M#=gE7L9Z6m5~B%|RCz)4o!T{qF*R>H=B>^K9ovo+E$1z(ah{&c?zjHCk*Y*_$5PvLN@OuCknhhmJehfOeO4dXfjXF+5L=~Lo~INV?<}Il%3^K|4lcP{%E8R zB{+0HE+B;8E>tFt4I&jmutZ~L=M`I>fs&DkZ z!Bpq9Kb^8f*%evTnC1I6Zj`saMk(rA5~|KyH$i*4*g{%1V4^}tp>kI_A^d2o>Zw3u z0|89QY^T~}a@O=6K~jYhRRjb}>0a}??K*Y+rqZ5l5Si2Uoe5!4e(+g7H##pv=$zD- zn!OqHPumFdkU4Q5-Q&iM8+MF4MmxT?UAh?BKH*vMZ#baz=R0wy0$Y<%ql}!c-eH;pvM~(QWFNrdoY&KL%=J(&-M=Wdy z5D%&uqFpza>tJr5M)?DP$*Z*I1-z%zLE0nRA7^S1La{#3OW&3!`Rd0kV|cHEgmvNo}&N&XYgM@`)OxF-E?p5 zsL(N@q-Fp6t^DJEBII%-+9ZNip0#C}+vC|Hp?zqV14zpG_f zD?e-`+%SmJFaD-$YQ2Fp(LCk=^#TeMQfZTS9ipX@gM)p=%ZLX37F%l7aNp-g-noI7 z_p1?Bx0gA6*!xvu-kM)=@O5aN=*#yVZT7J98L`M-vl&UZ-P!I$cz}F)`=`L$r(Ts> zOl29GKHqHhRpYXz2Cbu zHAj~GoSX^7r=lK1cEW_HC^s{Aa-wBM$K$u{jvdvAJtL!{?r9tabs)B@s|zp=cHGMu znS6}JF2egPWbZuo-CVQ#ki>nDo3U6W->DGkB8-BSlql#T+2ak1r&TFXHv#>C=%@-P ze)g*R$?>5>s&|*l_P-^n?1?{b?T`i`eg`wXW>0{Ywl;V*uYiG|%xUf3+8O*?%g3_t zqt;AY7&~=ftJu+FOrq=U5&qm&S9EP2@4Y#AJn3WlmDR+bk$~n~4UKEP$4+>All?lN zLMb`~BRV^|o3Nnyg8L@KqQ*^t0{e=@Jy7C;bT45&Kel@xoF6tD=(Zz|adUQY$tB+y zqc--tOX^i-=2c0ql`RQWBec_rv-K=@?y$#BkNeFFyGnUkpRBXjM@aJ!=a}ikKEsY@a*-@-$z6qV#At`Y<&W@WX89Jj6v@K zQrq`>G+LvaFfv%gw!?pe&y=@MI+4BM%diUZd&R{u6+(sjw|8s%q`4(wZkp=F>!z1u zmdto}i8~f9yWn91X96|~bvwSFb)WUSR2X zBbOZ|&i;{+J$c^a(^C^adwLWkMy$CeSfy_?9QsMy*(5FP#>L-tw|%wQ!al-onT8gZ zq)erqeZi6+(*dv9xvlMa^d8ztc+#hotnO2=MkXXCnjllf2H(~lilkxTbUJAaCIY$I1DO;YvU?lJ-jyJ81b zNlAF<-PAe+b`FWMagV@Mu)t#>4Kj8HMV%ArdjXI;5R^WVty%tP%}fsA;X~7*I{KW& zz24?wNNLo)g(*L3_^8U70gs$G48_e@2UHJDT120B_@?!WFE*(n?i|%V|8xPp)S6SO zgcvhTI;UBo=%Px6`1+cy5-iTIUz001r1kDo*V#X z9L=)i%c0{oVA*^TPU1LM2TQBpspAkSyV+aO4-;@KO2T4rJNgZk#E zfL}u1cm0Dlct?A}AFg2SrBr;e#xQ4sc7srjf}deiJKBX!I1oK@8Y+ z5lpf?(h2%nZSA++R4QHn0;NF=z}6RpHrTW}!N)`W_|UBxCPaXPGw1HFk|%aCQQNv6 z9uD@(5f)#d=7_(~AXkRWS+HgP+yd^G>DpcbvhU16!zgnBOA@{aU)1FC@Vhy;oUgcuabB5XO#nc7dE4mvngMrb_7Vhn5remt-g zbN>6B#eQG%J^XQ#>Rknx)B%)fThQ9ku^JgU zq}_QFzjFf8>WYEvqPRa)BA*7!)R5dm2|2pJ(oq9O^BrVT5@SYGTnmbT2nIQrb zS~ltB!iay}z}Q9V?mR;i_bTPQT|2=XW#h3}16DAN~#JSu50gZaohjXHT6xUdhI zfLbo_iZRILlyP&%?%nso!_`nF!>~fLC?uuW;N%n)4c!)fM*@Z7_iiM?kYY~9T*oR8 zSFhVQZcL)6HD-n?3T{P%u!QgA0G3{i<0BbpJM{(GWnJo?-R9;OANnG1MHh#tCUKkG zEU0qlJi|#?pGEg+5QT`9fC!FvX0lVa#j|tqBl9h{h2Zjb8h{;G2%D~npNxD+##av> zJh*)EqS|J{7A zqY7o$BhW}M+`9{HbtK@wcJD4zf{%}$(1y|zhN17kYJ532p)QR8rWQ~RywYjh!l;m< z*0g-tGI1U6OqKX)tQa6B>7YDN9#M#L({CgWFuaieiV7}+!btjt5EiUp4Bo+!5ufjY zve+tNb(`n>`8fg>ge|m9Q-FS9TFnZFNsa*EWf1IjwzmU?;2NEEnPg^@ML=+AoSc#m zTW`RkhRrTCDoXLNbpg)Hkww=;Z+LLf25!2xN;AFbl_y+gZ=3U_;o5H7`+Qz+l-vJ5k>@~f0CSBHl(1(C1;DbG%Uq zN3`z5hU3f!?9%JO>cP7@c<3UZ#@+ z<6UiStvD5J>)harQ;0thG@|zwcsGsB^}=-Ue$X(c7GFxq`Cw1PtPC$K% zFLCA-n80ovz}dQM_84n9TYP7Hwr#5*MM8UWF6H3D@tvLC*bz{X86Fx6H(CZ+JwRb8 zU(`;&;32~$^6~_(7w@wSy*3TZjGP_cUq5)zi3xJq+!Ttl-qakPz*JP6L$O7t0P{14aG9IsCvLdCKir-?Bv*cza7UVVi8b5 z9MO>Lnf~h4n!u`r(ruc*6DH2R;s*=h4fX)C_!s>UsS^}z2J=xe=gpn-^}Th$?cIU} z3$RCQ{XPJk)M(8V$styJgDMl+A0bt5gp&qh)C%w`F|qL&wC7x+85{lFGB>|kFDF-0 zULMRkjd=(Ea6h;5zSWCyIFPMQd3eaylQ!Ql10rb>eRFeBWbAiNpOLH=2)u~45t$gfaLxxXLS)GLKKoz_q|~?i6dPg z;^#EQ1eZ>#qM|mQM|j)9sG)tV(Ax2w@f)QO4WN7k+#I z3so<;u)V!aPph>v*wU*)Lqgyxj)%aMrKmrlm^V!d@t8cs{=81AxdlrqgFy@y#3yB7Imy*>=2pEkI?(&mdB9oGXWgr;9WR}H;a<6+Lm#rj4L9>|;`sNC1WkhES!jQP~lsD3rbY$(yW-GwMJ^8J?4hK0BUfJA7}SOc>W zEdC`2pZDcW%$Iunsp#A%Ea=$}V274)-*oFJ1R$$) zbtMYE^!i_dWsl=R|I3#*!CQlqM}t46ZTyOrPW!!4j(^u|Y2@Gr6<@-EEjkjA9|Flp z|A^ab<>-hGWnhA#;t3=O*zy!OAOn6c9-?Y0widRoWIEL#k??c#c^^D_jYKcNMzX8D zZzl5GFc7B;uVF`K6Yqb?cF&$-FZ4!OCMbFySs*Y5W?86`Ot<5uOP5d-x^?R}j5m)$ z1^03LPx{6EhIAW|@2}Qs?9fu^I1N0MH1$Baa@i{n09gP^H^xbovCJMO_M10k7>G3x z9knf>Yeqm;xB9hPNHv9cU1ma~^4XO~K3VkGu9D4=U!}LE?y3fH zIF9U_W#dRTc>zAQLj9r&7HI@#0f`wIr!ffJJk~GRGAb-4^)k+O;GXT~R5m09<138^^LugUmGW3E&;s8L(*-ed69;D0WYAyI9Oj+k8#I3>ANq7r7z z?agy_?=E}7+^$T`PO5@9llJ->EjBJYJ7S?|yxLlDrs)53b*&@=#(3*!=y7SqX3(Yd z%v)3Mvczl~uJ#F))roK-3d>o##BwFsSKA&8(jcO94$#ml58~dHq*{Gb8R36P8L1vd z+}efUvaN!%06MEg=~Zi>S)TL7YVG6`g}*=d44)c*b6~+W%ES2l@5HgSt54GDxp3h- zq+K+TT)xxM5oXO86d2No;g zse{od*@bF0Azb=8H`l1M53J_ke5T2Q4c2it77vc^Y*p0ZVs?%HjCmi+t{QWF)%84WVIn}y$qwapxjCUY6Tg5bc4!8V`hE`zwZEvqwnX^5v;??v~ye`E9-!q=tY$oolcCCRw>t3 z2|B1V_+j2Yo5~8&HID&Dn$N)@)tm_wXKZ3(%~Q7!Ym~KA!n>&~?ld8;)9aGFZWJ}?*U2HG5YxW^EtWLOkD=O;P*J|yKdBM41dnb6~ z=6mUL$8H$$bW0i!Hd*gzPIYvpw60SBgxUod<2c&dGnzypd6CMDq>FAvU}vCl!N#v~ zsBB#S9bv2VDoOKIuC=?U2H(RA4hO?@^bZiyKOP2rW8J$?C5Cb%(NMTd-_aGUnLF37 z$FC$Eqt9c7L*lvKYBHpJ=jh*?WbydVmxDWs8O~W1KL!O|0u3TKFz>CFR8NtPVj!;- ziKzjMB zg`yEUKH0`HIleP_dwhqw9HExHn#_~%%9Y@z^Y1s|OmydfivFQL&SWD%zJw-qFJ~EL*ECkpI!jg}XHAwu(#;okW zeE+oUeM+H9@~h`26wqRO(|&H;l}ec>p5z@l(R=pS2L8U~Wp?~^Y;{~=x2tpFwC+T| zlRW>5jb^_nbeqt4-_79{*o4#*y_}q!e%q|4of>3gquUSfPM~z9{yf^ILWIk)7#hq| zywsKw^)zfs5ZO}dN_E%)>XK{7o%h6zXV!~d;%vhAlotW%sGMyUyu5m?bKvjxk z@>p1&nta*@4|_(-R_^z%=fbN*Ry)4&WEW;6O3mDblWXX2!K{&lqlTJRfOJ5lbn)Jei=h;4Tp#~+<}+BAKbLU*G#!e zB0yO9WNg_V9geo8uiby{^7Wk|MHnC1~3;Fo);Zl(w3(W&cGuB<4MIPj9jyi!}%s~4_W+_9M2I(G5lcVCme zjj`La;L)k5ZZH}fvG$}iCy(`Y)Gb}VAa{4yX6}MTwHA?A;4R=|p;C*cOxpSpW}pf; zsoRB!WR0(4Y#c4C*8EyPZ68SCid9?OIK(7+?*Zu9taQ8buG(d{AdC@YWxrYM`$A2p z5paM4vU%D;1k?!xf@Y3IEasM$Xau`*m+ZSj%}bQ7aUoZcrUB2WGNQs_rLU-xMeaqx z4vn8OGe4v6M)g!0n^fhtRcpR{?s%<0fzf;tNGP^Y<2%ZJN)KdcXwR}Wds6@>ld=vS zU%b610m2s5#{m-ocrf4Au}H7zpen2>flY+xHyA7-4wS{P?(tc7R%`R%0OiAS86iFwu)} zbaIS?3lix73Er)M+BOpt?UUaP_#MR^O=RI!Ix>=>LaTcEoRa-*=cj7#@~}n+bK{=U zGqfcQEB`i8I7BCSmdOq7g^2LDWYjsEv{%4IAmu#wBX~`}t`3ncxM&e*vNby_E47BW z$Mdu%defK0@}D?)GR|jjGRx}21g%g&*rCRO@J{ryvfM3@(w!tA$Z~awkVxkrCEu$@m>91@_f19k?XX+s(y=Nz%($mP0 z{2#}aef+@97Gd<52N|Fw)u5V?M!Km)OzNUB7j$Hiy1q-o=n_f4SsY6?YSE%|;tsKh zM*)XY150{%u=o`doO6ig^h#?Pp5c@uy}oFiXwpWpa^$9qeB5k&^LAaJeBI-m74#TN z*IJ$!iZXZLnngPtKT81|%|a@Jt#AT)N@p9oO+$$n&`?FEO2%3B^OeF`G@d2H{L_Q& zXu)j*sxdG-lF3|36$c?4Hz%Mxm?v-)x|wBvz&eOHVDm?ZW?w|O)s1omb)HI#w0Kk{ zPGcIcY!#eeooZ&LWhJ0+I*yf_xiJ$HX*?#Zq8OzSMO9U@^HRXXMiEAG{IyK0GKIeT zoZmV`sC=4N^+N=41I{5djS#(!q)SmrX`^|@vbKD|>JKaA3$~*TOrOU0wlbf+!GGJX%<=*>7+w>L)Dy$U->@7~xxaNq=}iEJ+1J z@QM`TMC^%upE{ViBd0uBo?wBgt-N!&Ytg*lsd<`Sk^{C3i{B$(ir__h{hTa^mfJlB ziWp$IN(!&}rcBJtWUPkBSMbRBlxM0GYi;-6$v&=H2LhsBKOihOWmZ0Z##4TQWgUB? zVNmv|8T6Mua8=|j;T%XpnUKh(T`q~mNPUqS zCzE@$t*H=0O53mXi1?9tbeZsS_^Cqspk9kA-4rfnY~yali~~eZkk(KIOaHbPk84;i zu4c2Jmd+4+WfCd=Jv}|}O9EdZ>{S9#eI(5QGW{rb4iXVD>dL%yhwpxUT7NXzPXJ5;GL1W> zJMeBnYHDi2PhVszNRk(m5@c&0#^NVg{1G2tb+|Qs9*F)jvoM*%QSU$pyYT$VpfH+= zhpyWDFIU&=#jX!T*W_y^K0aj66R@M<0}JLYs5XEUG+p7$ztr^nvxeYlt8rfiA->m! zl0P1Os*it6cu!Ejr~GKSJL8Pi3lEh)BOPJu9q)wb@&@37K#Qu&Z)`|p6OF{4j!+(>)!?)$fI zPz*|i7x%ti!WcL}G-i1pn_NAa+w<(4AD`)E0cU5T71ic!oEkumg|GpHP3Q>@$VSOkBJtyhiKS22z0+EM48 z(U=YK%ugmfVsUPj$a^vNQNLXe|AN8W==k(M2fKk${o;jsc5V)~R}5(+3>nr``&*sI z#)JvA`pOklGeh6E9roK{X!iouUzAg-sI%t; zjbj(SGh;uY{#SI{n?=V6>5UV8&+A#{IkTjgFDO0A1Yr*SeJ*i}=rzyB);l|xxcgy* zS<*hZ?o@{scz!}M z9F?d8)NbhPtdL$+g}clDJ{Ypu!>F60QUZhoylg)|KhOxUq$}#!|NF@NzaP-mUp(2KH~+awR54 z0+B91KdPpI$e(}k02LJ`9Bom!A;~kC+5AE$+}#uXFJZH6e&{!Y3j=Nri@o^iXHc4< zhL*c%7K}DwqIUcO4aAVTe$>+kwuLQT!zE72Ci`;52C}o`@H86Ao$Le}Ps6r}8nyy@ zQ6WIW?IH`mQS0kltI-@jY-eg$4+C=7~|9D9Q!Vknf;e z4mTYCg`%9?++`&thz&!{|Iut$QT;AuOyh(l(bKO4E06DvOaXB(TL zOMU>iMSRva){J`=Kxf9mpUdq-zb<)#I2>Nwgw=Iy3dm*mQW3_U$2XJTBMXcfxynZk z1`^BiAOC7a>)*}RZ)ynel<9AD!*Ct5m)g9;+}z+hR>RkY1Y9$bj2tUj_iRom%%n*U zpm}wGDBay%ga7=ME1Wxdhy&zTQ;A*M@R4}^C1P8-84Yw;to}wF7q?EI9 z?aYtAcB=Wt%-OfLuAs%rUXh=u6U`iWuKwk!mgwI7=Dc6w1o9?NSfkq5eQl?-_dd=8 zt&!s7jaMev)rdnMZ1@#!`tmO}kiYmn)oilvi=$E9m!+1rOSE?%UR!D@xIa#uko4uR zc~Eb>d|t)Mxo@(cp~ZH67@AKwmNCsB@VvByuGuA>R=~76uWD11ep1PJz#w@=s_-)9 z{vh?9$FDDL3CX-l_F1$in9w{Y#k@ZH1-NdOQFu;XfIW_@zIC-l;?nJ3cuKdZj>I@H)YAoL zhZ%z=%pAFAy>crp$HOs|oBl+TXURYh|L6A0w|K5-<%~c3VY}e=0_7Y^f32YE-lfJl zisYih%{#+4)AxM!tsatnuzU9=A12%)Hi2)gICQvR?jN z)8Eep+xwQ}Rm|_FJ|B(I(t6wZc~=|pV7~T+=c7*PJVDBg=cTv9JFmI-4c}1J)Xd2Y ziF)>{Wb>aTtS%)2g7w{>;!Ita4}I@$f7zpcI&QM`N@L~eClN{B>nfCd-qs1JnRMA* zZfQ`CUsWD_Ciz0;^)`hi&eT7*W?o^h$?i%9?X5Hj7-4Ja5gBSL(FZ?{$fuKjYMP zTubV!h)%jAb7Dzo(vp(YC!2+n&$NBsE>_nTWjo}=Oy73BLqDCjPL;)bLMe5dskZK# z^%{MSZ<^wsSQQwfMN<^d$)%T6+`h|MpZ!|==?1Hd$NQmcU#-(Lh(UuV6aLPYlWy%F zFGpN;XK?3x}rc-BMUjlOBrr}-{V_bTwDmQhRE|yr^=q1!a}B4@ z9c?#rb?)kri+VJ5{NB(@ijL;%U0(Ekh2|q^N9Xs8XGtpE_;Nm5tcYqhU*IV>Lz`n0)^Occfz3nX4i@Zv!H!BN z=ihoXzi3b0h6B84lS3{yzi*PW zg;-yzC+D>FeAKdXhlN7&(|ecH?XA|zP3TQZr3j0TSH1337h)>M-vVeeH#G_UyNr_U zXSc~nhEP@rZ7_9R|LfYlN+NYe(bILbBRO2RHttJ9VCmb}nKY(Oh&6ZY8B2))8oe+2 zc}rTPq`m3x712>AceDPS9#j-Hw|x+&<@;Xczx!;j5zCDCt#G1iay{*p9uh88&U0PZ z>c59Q*rvChk9y`#P6}66$L5^mtEt+8(QL}agh2&Mmj-cjiAmA;j%Nw+KCVi>7cb4; zu2>H4*7_^*%L|Twmt*N(R`clkkH)m7osX@5)h)OBv%ItI$=}}%4%?_z<+5k2hBvAQ zzP$d-MJS?}xTr>PNV5HFkwU4OoH z^^cQTF3T+(Jo%XA=&ksyU<-wZU!rt&Wzn~Z4O%>=bnn+Km)0()9KOe9mVD`5?I!ED zXFUEio%GqgIr856BfQENDE(I@+>E>wp9%|d%4?4*gX93=xurmwd^)~tiq4`kJf*ZU7`K6_tllK)9%k-uj8g0 z8%n;V#o8nl6~CyGK@@@)t?C6$GEY2s`gPC8%q&4ps=b9w?D_cD!Q`HW4Mv#p`sL+u zj_6)h;>GUD-huR{gs^6K5j# z!uYr4L9OLYzc#MnQ}t~$H>u2{%7`(JC+{gy zt*7+u+-*xKB+hswEDnu|<#8!%{V?WrWV2r8t8KLPX%zJxsf>&RPv$>!AKc;d`dBzm ztbyl=(@$NiH>6NjY+Bi6&j>IKJiLJI-^1a19dXT4&Hwu}`o;&Mi@`cKkm`;SJywbH&)HDTOc$)s&ty=F68`RB8{fiq z$KzKF(_lSMb>q_VyX>*KiUr?xaHxH;lU)#c_dYSZdoV^s7;;8j2XilPy)dHqYG>k) zXW=yUX1l=gTRj7;?)r~Tmz0`qa#KrXvoG85&|$MWjXugH`O4hWwC&%MdqQzs{~_qb zOU`3wN|^pDABS{oXY2k<^yE3s2)Xmy7A3j{;i8u zt!c61LMv2c7MLj$r;>(Du<-co;dQiu^1lcDvS3rKu1d z5nhM&@-|SbtW(k=R^D!Tv69Lc^m%!s#rY;%y?>9gf?(ahT3(eykfmDg{5QX|{PG-6 zm;|?>$LVTnpV<};hi@1Bj{eBH{O>B5gb{0Xu!H8-?uK=4Jr-lCk8W4>4Zc}tl^GCi z$ivvVAh1*VWm+Ti_~l{yKa}(GLjKYJ2HDjhN`M51%f-b$3h5qC_5VN96Wk2)xiU;( zr}Vd=o|Q}?$rt(X$azV=n6v->U;SY= Date: Tue, 17 Jan 2023 16:49:18 +0800 Subject: [PATCH 297/383] update doc Signed-off-by: shawn_he --- .../internationalization/Readme-EN.md | 4 +- .../internationalization/i18n-guidelines.md | 781 +++++++++++++----- .../internationalization/intl-guidelines.md | 345 ++++---- .../reference/apis/js-apis-i18n.md | 2 +- .../reference/apis/js-apis-intl.md | 4 +- 5 files changed, 761 insertions(+), 375 deletions(-) diff --git a/en/application-dev/internationalization/Readme-EN.md b/en/application-dev/internationalization/Readme-EN.md index d7042968cf..6c89740e15 100644 --- a/en/application-dev/internationalization/Readme-EN.md +++ b/en/application-dev/internationalization/Readme-EN.md @@ -1,6 +1,6 @@ # Internationalization - [Internationalization Overview](international-overview.md) -- [Internationalization Development (intl)](intl-guidelines.md) -- [Internationalization Development (i18n)](i18n-guidelines.md) +- [intl Development](intl-guidelines.md) +- [i18n Development](i18n-guidelines.md) diff --git a/en/application-dev/internationalization/i18n-guidelines.md b/en/application-dev/internationalization/i18n-guidelines.md index bbdbe2f2d3..8218f25613 100644 --- a/en/application-dev/internationalization/i18n-guidelines.md +++ b/en/application-dev/internationalization/i18n-guidelines.md @@ -1,391 +1,732 @@ -# Internationalization Development (I18N) +# i18n Development -This module provides system-related or enhanced I18N capabilities, such as locale management, phone number formatting, and calendar, through supplementary I18N APIs that are not defined in ECMA 402. For more details about APIs and their usage, see [I18N](../reference/apis/js-apis-i18n.md). +The **i18n** module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402. For more details about APIs and their usage, see [i18n](../reference/apis/js-apis-i18n.md). -## Obtaining System Language and Region Information +The [intl](intl-guidelines.md) module provides basic i18n capabilities through the standard i18n interfaces defined in ECMA 402. It works with the **i18n** module to provide a complete suite of i18n capabilities. -You can use APIs provided in the following table to obtain the system language and region information. +## Obtaining and Setting i18n Information +The system provides APIs to configure information such as the system language, preferred language, country or region, 24-hour clock, and local digit switch. ### Available APIs -| Module | API | Description | -| -------- | -------- | -------- | -| ohos.i18n | getSystemLanguage(): string | Obtains the system language. | -| ohos.i18n | getSystemRegion(): string | Obtains the system region. | -| ohos.i18n | getSystemLocale(): string | Obtains the system locale. | -| ohos.i18n | isRTL(locale: string): boolean7+ | Checks whether the locale uses a right-to-left (RTL) language. | -| ohos.i18n | is24HourClock(): boolean7+ | Checks whether the system uses a 24-hour clock. | -| ohos.i18n | getDisplayLanguage(language: string, locale: string, sentenceCase?: boolean): string | Obtains the localized display of a language. | -| ohos.i18n | getDisplayCountry(country: string, locale: string, sentenceCase?: boolean): string | Obtains the localized display of a country name. | - +| Class | API | Description | +| --------- | ---------------------------------------- | --------------------- | +| System | getDisplayCountry(country:string,locale:string,sentenceCase?:boolean):string9+ | Obtains the localized representation of a country. | +| System | getDisplayLanguage(language:string,locale:string,sentenceCase?:boolean):string9+ | Obtains the localized representation of a language. | +| System | getSystemLanguages():Array9+ | Obtains the system language list. | +| System | getSystemCountries(language: string):Array9+ | Obtains the list of countries and regions supported for the specified language. | +| System | isSuggested(language: string, region?: string): boolean9+ | Checks whether the system language matches the specified region. | +| System | getSystemLanguage():string9+ | Obtains the system language. | +| System | setSystemLanguage(language: string)9+ | Sets the system language. | +| System | getSystemRegion():string9+ | Obtains the system region. | +| System | setSystemRegion(region: string)9+ | Sets the system region. | +| System | getSystemLocale():string9+ | Obtains the system locale. | +| System | setSystemLocale(locale: string)9+ | Sets the system locale. | +| System | is24HourClock():boolean9+ | Checks whether the 24-hour clock is used. | +| System | set24HourClock():boolean9+ | Sets the 24-hour clock. | +| System | addPreferredLanguage(language: string, index?: number)9+ | Adds a preferred language to the specified position on the preferred language list. | +| System | removePreferredLanguage(index: number)9+ | Deletes a preferred language from the specified position on the preferred language list. | +| System | getPreferredLanguageList()9+ | Obtains the preferred language list. | +| System | getFirstPreferredLanguage()9+ | Obtains the first language in the preferred language list. | +| System | getAppPreferredLanguage()9+ | Obtains the preferred language of an application. | +| System | setUsingLocalDigit(flag: boolean)9+ | Sets whether to enable the local digit switch. | +| System | getUsingLocalDigit()9+ | Checks whether the local digit switch is turned on. | +| | isRTL(locale:string):boolean9+ | Checks whether the locale uses a right-to-left (RTL) language.| ### How to Develop +1. Import the **i18n** module. + + ```js + import I18n from '@ohos.i18n' + ``` + +2. Obtain and set the system language. + + Call **setSystemLanguage** to set the system language. (This is a system API and can be called only by system applications with the **UPDATE_CONFIGURATION** permission.) + Call the **getSystemLanguage** API to obtain the system language. + + ```js + try { + I18n.System.setSystemLanguage("en"); // Set the system language to en. + let language = I18n.System.getSystemLanguage(); // language = "en" + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } + ``` -1. Obtain the system language. +3. Obtain and set the system locale. + + Call **setSystemRegion** to set the system country or region. (This is a system API and can be called only by system applications with the **UPDATE_CONFIGURATION** permission.) + Call **getSystemRegion** to obtain the system country or region. + + ```js + try { + I18n.System.setSystemRegion("CN"); // Set the system country to CN. + let region = I18n.System.getSystemRegion(); // region = "CN" + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } + ``` - Call the **getSystemLanguage** method to obtain the system language (**i18n** is the name of the imported module). +4. Obtain and set the system locale. + Call **setSystemLocale** to set the system locale. (This is a system API and can be called only by system applications with the **UPDATE_CONFIGURATION** permission.) For details about how to set a locale, see [Setting Locale Information](../internationalization/intl-guidelines.md#setting-locale-information). + Call **getSystemLocale** to obtain the system locale. - ```js - let language = i18n.getSystemLanguage(); + ```js + try { + I18n.System.setSystemLocale("zh-Hans-CN"); // Set the system locale to zh-Hans-CN. + let locale = I18n.System.getSystemLocale(); // locale = "zh-Hans-CN" + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` -2. Obtain the system region. +5. Check whether the locale uses a right-to-left (RTL) language. + + Call **isRTL** to check whether the locale uses an RTL language. - Call the **getSystemRegion** method to obtain the system region. - - ```js - let region = i18n.getSystemRegion(); + ```js + try { + let rtl = I18n.isRTL("zh-CN"); // rtl = false + rtl = I18n.isRTL("ar"); // rtl = true + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` -3. Obtain the system locale. +6. Obtain and set the 24-hour clock. - Call the **getSystemLocale** method to obtain the system locale. - - ```js - let locale = i18n.getSystemLocale(); + Call **set24HourClock** to enable the 24-hour clock. + Call **is24HourClock** to check whether the 24-hour clock is enabled. + + ```js + try { + I18n.System.set24HourClock(true); + let hourClock = I18n.System.is24HourClock(); // hourClock = true + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` -4. Check whether the locale's language is RTL. +7. Obtain the localized representation of a language. + + Call **getDisplayLanguage** to obtain the localized representation of a language. **language** indicates the language to be localized, **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized. - Call the **isRTL** method to check whether the locale's language is RTL. + ```js + try { + let language = "en"; + let locale = "zh-CN"; + let sentenceCase = false; + let localizedLanguage = I18n.System.getDisplayLanguage(language, locale, sentenceCase); // localizedLanguage = "English" + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } + ``` +8. Obtain the localized representation of a country. - ```js - let rtl = i18n.isRTL("zh-CN"); + Call **getDisplayCountry** to obtain the localized representation of a country. **country** indicates the country to be localized, **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized. + + ```js + try { + let country = "US"; + let locale = "zh-CN"; + let sentenceCase = false; + let localizedCountry = I18n.System.getDisplayCountry(country, locale, sentenceCase); // localizedCountry = "U.S." + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` -5. Check whether the system uses a 24-hour clock. +9. Obtain the list of system languages and the list of countries supported by a system language. - Call the **is24HourClock** method to check whether the system uses a 24-hour clock. - - ```js - let hourClock = i18n.is24HourClock(); + Call **getSystemLanguages** to obtain the list of system languages. + Call **getSystemCountries** to obtain the list of countries and regions supported by a system language. + ```js + + try { + let languageList = I18n.System.getSystemLanguages(); // languageList = ["en-Latn-US", "zh-Hans"] + let countryList = I18n.System.getSystemCountries("zh"); // countryList = ["ZW", "YT", ..., "CN", "DE"], 240 countries and regions in total + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` -6. Obtain the localized display of a language. +10. Check whether the language matches a country or region. - Call the **getDisplayLanguage** method to obtain the localized display of a language. **language** indicates the language to be localized, **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized. - - ```js - let language = "en"; - let locale = "zh-CN"; - let sentenceCase = false; - let localizedLanguage = i18n.getDisplayLanguage(language, locale, sentenceCase); + Call **isSuggested** to check whether the language matches a country or region. + + ```js + try { + let isSuggest = I18n.System.isSuggested("zh", "CN"); // isSuggest = true + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` -7. Obtain the localized display of a country. +11. Obtain and set the preferred language. - Call the **getDisplayCountry** method to obtain the localized display of a country name. **country** indicates the country code (a two-letter code in compliance with ISO-3166, for example, CN), **locale** indicates the locale, and **sentenceCase** indicates whether the first letter of the result must be capitalized. - - ```js - let country = "US"; - let locale = "zh-CN"; - let sentenceCase = false; - let localizedCountry = i18n.getDisplayCountry(country, locale, sentenceCase); + Call **addPreferredLanguage** to add a preferred language to the preferred language list. + Call **removePreferredLanguage** to remove a preferred language from the preferred language list. (**addPreferredLanguage** and **removePreferredLanguage** are system APIs and can be called only by system applications with the **UPDATE_CONFIGURATION** permission.) + Call **getPreferredLanguageList** to obtain the preferred language list. + Call **getFirstPreferredLanguage** to obtain the first preferred language in the preferred language list. + Call **getAppPreferredLanguageList** to obtain the preferred language of the application. It is the first language that matches the application resource in the preferred language list. + + ```js + try { + I18n.System.addPreferredLanguage("en-GB", 0); // Set the first language in the preferred language list to en-GB. + let list = I18n.System.getPreferredLanguageList(); // Obtain the preferred language list. Example: list = ["en-GB", ...] + I18n.System.removePreferredLanguage(list.length - 1); // Remove the last preferred language from the preferred language list. + let firstPreferredLanguage = I18n.System.getFirstPreferredLanguage(); // firstPreferredLanguage = "en-GB" + let appPreferredLanguage = I18n.System.getAppPreferredLanguage(); // Set the preferred language of the application to en-GB if the application contains en-GB resources. + } catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) + } ``` +12. Obtain and set the local digit switch. -## Obtaining Calendar Information + Call **setUsingLocalDigit** to enable the local digit switch. (This is a system API and can be called only by system applications with the UPDATE_CONFIGURATION permission.) + Call **getUsingLocalDigit** to check whether the local digit switch is enabled. + Currently, the local digit switch applies only to the following languages: "ar", "as", "bn", "fa", "mr", "my", "ne", and "ur". -[Calendar](../reference/apis/js-apis-i18n.md#calendar8) APIs are used to obtain calendar information, for example, the localized display of the calendar, the first day of a week, and the minimum count of days in the first week of a year. +```js +try { + I18n.System.setUsingLocalDigit(true); // Enable the local digit switch. + let status = I18n.System.getUsingLocalDigit(); // status = true +} catch(error) { + console.error(`call i18n.System interface failed, error code: ${error.code}, message: ${error.message}`) +} +``` +## Obtain the calendar information. -### Available APIs +[Calendar](../reference/apis/js-apis-i18n.md#calendar8) provides APIs to obtain calendar information, for example, localized representation of the calendar, the start day of a week, and the minimum number of days in the first week of a year. -| Module | API | Description | -| -------- | -------- | -------- | -| ohos.i18n | getCalendar(locale: string, type?: string): Calendar8+ | Obtains the **Calendar** object for a specific locale and type. | -| ohos.i18n | setTime(date: Date): void8+ | Sets the date for the **Calendar** object. | -| ohos.i18n | setTime(time: number): void8+ | Sets the time for the **Calendar** object. | -| ohos.i18n | set(year: number, month: number, date: number, hour?: number, minute?: number, second?: number): void8+ | Sets the year, month, day, hour, minute, and second for the **Calendar** object. | -| ohos.i18n | setTimeZone(timezone: string): void8+ | Sets the time zone for the **Calendar** object. | -| ohos.i18n | getTimeZone(): string8+ | Obtains the time zone for the **Calendar** object. | -| ohos.i18n | getFirstDayOfWeek(): number8+ | Obtains the first day of a week for the **Calendar** object. | -| ohos.i18n | setFirstDayOfWeek(value: number): void8+ | Sets the first day of a week for the **Calendar** object. | -| ohos.i18n | getMinimalDaysInFirstWeek(): number8+ | Obtains the minimum count of days in the first week of a year. | -| ohos.i18n | setMinimalDaysInFirstWeek(value: number): void8+ | Sets the minimum count of days in the first week of a year. | -| ohos.i18n | getDisplayName(locale: string): string8+ | Obtains the localized display of the **Calendar** object. | -| ohos.i18n | isWeekend(date?: Date): boolean8+ | Checks whether a given date is a weekend. | +### Available APIs +| Class | API | Description | +| --------- | ---------------------------------------- | --------------------- | +| | getCalendar(locale:string,type?:string):Calendar8+ | Obtains the **Calendar** object for a specific locale and type.| +| Calendar | setTime(date:Date): void8+ | Sets the date for this **Calendar** object. | +| Calendar | setTime(time:number): void8+ | Sets the date for this **Calendar** object. | +| Calendar | set(year:number,month:number,date:number,hour?:number,minute?:number,second?:number): void8+ | Sets the year, month, day, hour, minute, and second for this **Calendar** object. | +| Calendar | setTimeZone(timezone:string): void8+ | Sets the time zone of this **Calendar** object. | +| Calendar | getTimeZone():string8+ | Obtains the time zone of this **Calendar** object. | +| Calendar | getFirstDayOfWeek():number8+ | Obtains the start day of a week for this **Calendar** object. | +| Calendar | setFirstDayOfWeek(value:number): void8+ | Sets the first day of a week for the **Calendar** object. | +| Calendar | getMinimalDaysInFirstWeek():number8+ | Obtains the minimum number of days in the first week of a year. | +| Calendar | setMinimalDaysInFirstWeek(value:number): void8+ | Sets the minimum number of days in the first week of a year. | +| Calendar | getDisplayName(locale:string):string8+ | Obtains the localized display of the **Calendar** object. | +| Calendar | isWeekend(date?:Date):boolean8+ | Checks whether the specified date in this **Calendar** object is a weekend. | ### How to Develop -1. Instantiate a **Calendar** object. +1. Import the **i18n** module. - Call the **getCalendar** method to obtain the time zone object of a specific locale and type (**i18n** is the name of the imported module). **type** indicates the valid calendar type, for example, **buddhist**, **chinese**, **coptic**, **ethiopic**, **hebrew**, **gregory**, **indian**, **islamic_civil**, **islamic_tbla**, **islamic_umalqura**, **japanese**, and **persian**. If **type** is left unspecified, the default calendar type of the locale is used. + ```js + import I18n from '@ohos.i18n' + ``` +2. Instantiate a **Calendar** object. - ```js - let calendar = i18n.getCalendar("zh-CN", "gregory"); + Call **getCalendar** to obtain the time zone object of a specific locale and type (**i18n** is the name of the imported module). **type** indicates the valid calendar type, for example, **buddhist**, **chinese**, **coptic**, **ethiopic**, **hebrew**, **gregory**, **indian**, **islamic_civil**, **islamic_tbla**, **islamic_umalqura**, **japanese**, and **persian**. If **type** is left unspecified, the default calendar type of the locale is used. + + ```js + let calendar = I18n.getCalendar("zh-CN", "chinese"); // Create the Calendar object for the Chinese lunar calendar. ``` -2. Set the time for the **Calendar** object. +3. Set the time for the **Calendar** object. + + Call **setTime** to set the time of the **Calendar** object. Two types of parameters are supported. One is a **Date** object, and the other is a value indicating the number of milliseconds elapsed since January 1, 1970, 00:00:00 GMT. - Call the **setTime** method to set the time of the **Calendar** object. This method receives two types of parameters. One is a **Date** object, and the other is a value indicating the number of milliseconds elapsed since January 1, 1970, 00:00:00 GMT. - - ```js + ```js let date1 = new Date(); calendar.setTime(date1); let date2 = 1000; calendar.setTime(date2); ``` -3. Set the year, month, day, hour, minute, and second for the **Calendar** object. +4. Set the year, month, day, hour, minute, and second for this **Calendar** object. + + Call **set** to set the year, month, day, hour, minute, and second for the **Calendar** object. - Call the **set** method to set the year, month, day, hour, minute, and second for the **Calendar** object. - - ```js + ```js calendar.set(2021, 12, 21, 6, 0, 0) ``` -4. Set and obtain the time zone for the **Calendar** object. +5. Set and obtain the time zone for the **Calendar** object. - Call the **setTimeZone** and **getTimeZone** methods to set and obtain the time zone for the **Calendar** object. The **setTimeZone** method requires an input string to indicate the time zone to be set. + Call **setTimeZone** and **getTimeZone** to set and obtain the time zone of the **Calendar** object. Note that **setTimeZone** requires an input string to indicate the time zone to be set. - - ```js + ```js calendar.setTimeZone("Asia/Shanghai"); - let timezone = calendar.getTimeZone(); + let timezone = calendar.getTimeZone(); // timezone = "China Standard Time" ``` -5. Set and obtain the first day of a week for the **Calendar** object. +6. Set and obtain the first day of a week for the **Calendar** object. - Call the **setFirstDayOfWeek** and **getFirstDayOfWeek** methods to set and obtain the first day of a week for the **Calendar** object. **setFirstDayOfWeek** must be set to a value indicating the first day of a week. The value **1** indicates Sunday, and the value **7** indicates Saturday. + Call **setFirstDayOfWeek** and **getFirstDayOfWeek** to set and obtain the start day of a week for the **Calendar** object. **setFirstDayOfWeek** must be set to a value indicating the first day of a week. The value **1** indicates Sunday, and the value **7** indicates Saturday. - - ```js + ```js calendar.setFirstDayOfWeek(1); - let firstDayOfWeek = calendar.getFirstDayOfWeek(); + let firstDayOfWeek = calendar.getFirstDayOfWeek(); // firstDayOfWeek = 1 ``` -6. Set and obtain the minimum count of days in the first week for the **Calendar** object. +7. Set and obtain the minimum count of days in the first week for the **Calendar** object. + Call **setMinimalDaysInFirstWeek** and **getMinimalDaysInFirstWeek** to set and obtain the minimum number of days in the first week for the **Calendar** object. - Call the **setMinimalDaysInFirstWeek** and **getMinimalDaysInFirstWeek** methods to set and obtain the minimum count of days in the first week for the **Calendar** object. - - ```js + ```js calendar.setMinimalDaysInFirstWeek(3); - let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); + let minimalDaysInFirstWeek = calendar.getMinimalDaysInFirstWeek(); // minimalDaysInFirstWeek = 3 ``` -7. Obtain the localized display of the **Calendar** object. +8. Obtain the localized representation of the **Calendar** object. + Call **getDisplayName** to obtain the localized representation of the **Calendar** object. - Call the **getDisplayName** method to obtain the localized display of the **Calendar** object. - - - ```js - let localizedName = calendar.getDisplayName("zh-CN"); + ```js + let localizedName = calendar.getDisplayName("zh-CN"); // localizedName = " Lunar Calendar" ``` -8. Check whether a date is a weekend. +9. Check whether a date is a weekend. - Call the **isWeekend** method to determine whether the input date is a weekend. + Call **isWeekend** to determine whether the input date is a weekend. - - ```js - let date = new Date(); - let weekend = calendar.isWeekend(date); + ```js + let date = new Date(2022, 12, 12, 12, 12, 12); + let weekend = calendar.isWeekend(date); // weekend = false ``` - ## Formatting a Phone Number -[PhoneNumberFormat](../reference/apis/js-apis-i18n.md#phonenumberformat8) APIs are used to format phone numbers in different countries and check whether the phone number formats are correct. - +[PhoneNumberFormat](../reference/apis/js-apis-i18n.md#phonenumberformat8) provides APIs to format phone numbers of different countries or regions and check whether the phone number format is correct. ### Available APIs -| Module | API | Description | -| -------- | -------- | -------- | -| ohos.i18n | constructor(country: string, options?: PhoneNumberFormatOptions)8+ | Instantiates a **PhoneNumberFormat** object. | -| ohos.i18n | isValidNumber(number: string): boolean8+ | Checks whether the value of **number** is a phone number in the correct format. | -| ohos.i18n | format(number: string): string8+ | Formats the value of **number** based on the specified country and style. | - +| Class | API | Description | +| --------- | ---------------------------------------- | ----------------------- | +| PhoneNumberFormat | constructor(country:string,options?:PhoneNumberFormatOptions)8+ | Instantiates a **PhoneNumberFormat** object.| +| PhoneNumberFormat | isValidNumber(number:string):boolean8+ | Checks whether the value of **number** is a phone number in the correct format.| +| PhoneNumberFormat | format(number:string):string8+ | Formats the value of **number** based on the specified country and style. | +| PhoneNumberFormat | getLocationName(number: string, locale: string): string9+ | Obtains the home location of a phone number. | ### How to Develop -1. Instantiate a **PhoneNumberFormat** object. +1. Import the **i18n** module. - Call the **PhoneNumberFormat** constructor to instantiate a **PhoneNumberFormat** object. The country code and formatting options of the phone number need to be passed into this constructor. The formatting options are optional, including a style option. Values of this option include: **E164**, **INTERNATIONAL**, **NATIONAL**, and **RFC3966**. + ```js + import I18n from '@ohos.i18n' + ``` +2. Instantiate a **PhoneNumberFormat** object. - ```js - let phoneNumberFormat = new i18n.PhoneNumberFormat("CN", {type: "E164"}); - ``` + Call the **PhoneNumberFormat** constructor to instantiate a **PhoneNumberFormat** object. The country code and formatting options of the phone number need to be passed into this constructor. The formatting options are optional, including a style option. Values of this option include: **E164**, **INTERNATIONAL**, **NATIONAL**, and **RFC3966**. -2. Check whether the phone number format is correct. - Call the **isValidNumber** method to check whether the format of the input phone number is correct. - - ```js - let validNumber = phoneNumberFormat.isValidNumber("15812341234"); + ```js + let phoneNumberFormat = new I18n.PhoneNumberFormat("CN", {type: "E164"}); ``` -3. Format a phone number. - Call the **format** method of **PhoneNumberFormat** to format the input phone number. - - ```js - let formattedNumber = phoneNumberFormat.format("15812341234"); +3. Check whether the phone number format is correct. + + Call **isValidNumber** to check whether the format of the input phone number is correct. + + ```js + let validNumber = phoneNumberFormat.isValidNumber("15812341234"); // validNumber = true ``` +4. Format a phone number. -## Measurement Conversion + Call **format** to format the input phone number. -The **unitConvert** API is provided to help you implement measurement conversion. + ```js + let formattedNumber = phoneNumberFormat.format("15812341234"); // formattedNumber = "+8615812341234" + ``` +## Measurement Conversion -### Available APIs +The **I18NUtil** class provides an API to implement measurement conversion. -| Module | API | Description | -| -------- | -------- | -------- | -| ohos.i18n | unitConvert(fromUnit: UnitInfo, toUnit: UnitInfo, value: number, locale: string, style?: string): string8+ | Converts one measurement unit (**fromUnit**) into another (**toUnit**) and formats the unit based on the specified locale and style. | +### Available APIs +| Class | API | Description | +| --------- | ---------------------------------------- | --------------------------------------- | +| I18NUtil | unitConvert(fromUnit:UnitInfo,toUnit:UnitInfo,value:number,locale:string,style?:string):string9+ | Converts one measurement unit into another and formats the unit based on the specified locale and style.| ### How to Develop -1. Convert a measurement unit. - Call the [unitConvert](../reference/apis/js-apis-i18n.md#unitconvert9) method to convert a measurement unit and format the display result. +1. Import the **i18n** module. - - ```js + ```js + import I18n from '@ohos.i18n' + ``` + +2. Convert a measurement unit. + + Call [unitConvert](../reference/apis/js-apis-i18n.md#unitconvert9) to convert a measurement unit and format the display result. + + ```js let fromUnit = {unit: "cup", measureSystem: "US"}; let toUnit = {unit: "liter", measureSystem: "SI"}; let number = 1000; let locale = "en-US"; let style = "long"; - i18n.Util.unitConvert(fromUtil, toUtil, number, locale, style); - ``` - - -## Alphabet Index + let converttedUnit = I18n.I18NUtil.unitConvert(fromUnit, toUnit, number, locale, style); // converttedUnit = "236.588 liters" + ``` -[IndexUtil](../reference/apis/js-apis-i18n.md#indexutil8) APIs are used to obtain the alphabet indexes of different locales and calculate the index to which a string belongs. +## Alphabet Indexing +[IndexUtil](../reference/apis/js-apis-i18n.md#indexutil8) provides APIs to obtain the alphabet indexes of different locales and calculate the index to which a string belongs. ### Available APIs -| Module | API | Description | -| -------- | -------- | -------- | -| ohos.i18n | getInstance(locale?: string): IndexUtil8+ | Instantiates an **IndexUtil** object. | -| ohos.i18n | getIndexList(): Array<string>8+ | Obtains the index list of the current locale. | -| ohos.i18n | addLocale(locale: string): void8+ | Adds the index of a new locale to the index list. | -| ohos.i18n | getIndex(text: string): string8+ | Obtains the index of **text**. | - +| Class | API | Description | +| --------- | ---------------------------------------- | ----------------------- | +| | getInstance(locale?:string):IndexUtil8+ | Instantiates an **IndexUtil** object. | +| IndexUtil | getIndexList():Array<string>8+ | Obtains the index list of the current locale. | +| IndexUtil | addLocale(locale:string): void8+ | Adds the index of a new locale to the index list.| +| IndexUtil | getIndex(text:string):string8+ | Obtains the index of a text object. | ### How to Develop -1. Instantiate an **IndexUtil** object. +1. Import the **i18n** module. - Call the **getInstance** method to instantiate an **IndexUtil** object for a specific locale. When the **locale** parameter is empty, instantiate an **IndexUtil** object of the default locale. + ```js + import I18n from '@ohos.i18n' + ``` + +2. Instantiates an **IndexUtil** object. + + Call **getInstance** to instantiate an **IndexUtil** object for a specific locale. When the **locale** parameter is empty, instantiate an **IndexUtil** object of the default locale. - ```js - let indexUtil = i18n.getInstance("zh-CN"); + ```js + let indexUtil = I18n.getInstance("zh-CN"); ``` -2. Obtain the index list. +3. Obtain the index list. - Call the **getIndexList** method to obtain the alphabet index list of the current locale. - - ```js - let indexList = indexUtil.getIndexList(); + Call **getIndexList** to obtain the alphabet index list of the current locale. + + ```js + let indexList = indexUtil.getIndexList(); // indexList = ["...", "A", "B", "C", ..., "X", "Y", "Z", "..."] ``` -3. Add an index. +4. Add an index. + + Call **addLocale** to add the alphabet index of a new locale to the current index list. - Call the **addLocale** method to add the alphabet index of a new locale to the current index list. - - ```js + ```js indexUtil.addLocale("ar") ``` -4. Obtain the index of a string. +5. Obtain the index of a string. - Call the **getIndex** method to obtain the alphabet index of a string. - - ```js + Call **getIndex** to obtain the alphabet index of a string. + + ```js let text = "access index"; - indexUtil.getIndex(text); + let index = indexUtil.getIndex(text); // index = "A" ``` - ## Obtaining Line Breaks of Text -When a text is displayed in more than one line, [BreakIterator8](../reference/apis/js-apis-i18n.md#breakiterator8) APIs are used to obtain the line break positions of the text. - +When a text is displayed in more than one line, use [BreakIterator8](../reference/apis/js-apis-i18n.md#breakiterator8) APIs to obtain the line break positions of the text. ### Available APIs -| Module | API | Description | -| -------- | -------- | -------- | -| ohos.i18n | getLineInstance(locale: string): BreakIterator8+ | Instantiates a **BreakIterator** object. | -| ohos.i18n | setLineBreakText(text: string): void8+ | Sets the text to be processed. | -| ohos.i18n | getLineBreakText(): string8+ | Obtains the text to be processed. | -| ohos.i18n | current(): number8+ | Obtains the current position of a **BreakIterator** object in the text being processed. | -| ohos.i18n | first(): number8+ | Sets a **BreakIterator** object to the first breakable point. | -| ohos.i18n | last(): number8+ | Sets a **BreakIterator** object to the last breakable point. | -| ohos.i18n | next(index?: number): number8+ | Moves a **BreakIterator** object to the break point according to **index**. | -| ohos.i18n | previous(): number8+ | Moves a **BreakIterator** object to the previous break point. | -| ohos.i18n | following(offset: number): number8+ | Moves a **BreakIterator** object to the break point following the position specified by **offset**. | -| ohos.i18n | isBoundary(offset: number): boolean8+ | Determines whether a position is a break point. | - +| Class | API | Description | +| --------- | ---------------------------------------- | ------------------------------ | +| | getLineInstance(locale:string):BreakIterator8+ | Instantiates a **BreakIterator** object. | +| BreakIterator | setLineBreakText(text:string): void8+ | Sets the text to be processed. | +| BreakIterator | getLineBreakText():string8+ | Obtains the text to be processed. | +| BreakIterator | current():number8+ | Obtains the current position of a **BreakIterator** object in the text being processed. | +| BreakIterator | first():number8+ | Sets a **BreakIterator** object to the first breakable point. | +| BreakIterator | last():number8+ | Sets a **BreakIterator** object to the last breakable point. | +| BreakIterator | next(index?:number):number8+ | Moves a **BreakIterator** object to the break point according to **index**. | +| BreakIterator | previous():number8+ | Moves a **BreakIterator** object to the previous break point. | +| BreakIterator | following(offset:number):number8+ | Moves a **BreakIterator** object to the break point following the position specified by **offset**.| +| BreakIterator | isBoundary(offset:number):boolean8+ | Determines whether a position is a break point. | ### How to Develop -1. Instantiate a **BreakIterator** object. +1. Import the **i18n** module. - Call the **getLineInstance** method to instantiate a **BreakIterator** object. + ```js + import I18n from '@ohos.i18n' + ``` +2. Instantiate a **BreakIterator** object. - ```js + Call **getLineInstance** to instantiate a **BreakIterator** object. + + ```js let locale = "en-US" - let breakIterator = i18n.getLineInstance(locale); + let breakIterator = I18n.getLineInstance(locale); ``` -2. Set and access the text that requires line breaking. +3. Set and access the text that requires line breaking. - Call the **setLineBreakText** and **getLineBreakText** methods to set and access the text that requires line breaking. + Call **setLineBreakText** and **getLineBreakText** to set and access the text that requires line breaking. - - ```js + ```js let text = "Apple is my favorite fruit"; breakIterator.setLineBreakText(text); - let breakText = breakIterator.getLineBreakText(); + let breakText = breakIterator.getLineBreakText(); // breakText = "Apple is my favorite fruit" ``` -3. Obtain the current position of the **BreakIterator** object. - - Call the **current** method to obtain the current position of the **BreakIterator** object in the text being processed. +4. Obtain the current position of the **BreakIterator** object. + Call **current** to obtain the current position of the **BreakIterator** object in the text being processed. - ```js - let pos = breakIterator.current(); + ```js + let pos = breakIterator.current(); // pos = 0 ``` -4. Set the position of a **BreakIterator** object. +5. Set the position of a **BreakIterator** object. - The following APIs are provided to adjust the **first**, **last**, **next**, **previous**, or **following** position of the **BreakIterator** object in the text to be processed. + The following APIs are provided to adjust the **first**, **last**, **next**, **previous**, or **following** position of the **BreakIterator** object in the text to be processed. - - ```js - let firstPos = breakIterator.first(); // Set a BreakIterator object to the first break point, that is, the start position of the text. - let lastPos = breakIterator.last(); // Set a BreakIterator object to the last break point, that is, the position after the text end. + ```js + let firstPos = breakIterator.first(); // Set a BreakIterator object to the first break point, that is, the start position of the text (firstPos = 0). + let lastPos = breakIterator.last(); // Sets a BreakIterator object to the last break point, that is, the position after the text end (lastPos = 26). // Move a BreakIterator object forward or backward by a certain number of break points. // If a positive number is input, move backward. If a negative number is input, move forward. If no value is input, move one position backward. - // When the object is moved out of the text length range, -1 is returned. - let nextPos = breakIterator.next(-2); - let previousPos = breakIterator.previous(); // Move a BreakIterator object to the previous break point. When the text length is out of the range, -1 is returned. - // Move a BreakIterator object to the break point following the position specified by offset. If the object is moved out of the text length range, -1 is returned. - let followingPos = breakIterator.following(10); + // If the object is moved out of the text length range, **-1** is returned. + let nextPos = breakIterator.next(-2); // nextPos = 12 + let previousPos = breakIterator.previous(); // Move a BreakIterator object to the previous break point. When the text length is out of the range, **-1** is returned. Example: previousPos = 9 + // Move a BreakIterator object to the break point following the position specified by **offset**. If the object is moved out of the text length range, **-1** is returned. + let followingPos = breakIterator.following(10); // Example: followingPos = 12 + ``` + +6. Determine whether a position is a break point. + + Call **isBoundary** to determine whether a position is a break point. If yes, **true** is returned and the **BreakIterator** object is moved to this position. If no, **false** is returned and the **BreakIterator** object is moved to a break point after this position. + + ```js + let isboundary = breakIterator.isBoundary(5); // isboundary = false + ``` + +## Obtaining the Time Zone + +[TimeZone](../reference/apis/js-apis-i18n.md#timezone) provides APIs to obtain time zone information, such as the time zone ID, localized representation, and time zone offset. + +### Available APIs + +| Class | API | Description | +| --------- | ---------------------------------------- | ------------------------------ | +| | getTimeZone(zoneID?: string): TimeZone7+ | Obtains a **TimeZone** object. | +| TimeZone | getID(): string7+ | Obtains the time zone ID. | +| TimeZone | getDisplayName(locale?: string, isDST?: boolean): string7+ | Obtains the localized representation of the time zone. | +| TimeZone | getRawOffset(): number7+ | Obtains the offset between the time zone represented by a **TimeZone** object and the UTC time zone. | +| TimeZone | getOffset(date?: number): number7+ | Obtains the offset between the time zone represented by a **TimeZone** object and the UTC time zone at a certain time point. | +| TimeZone | getAvailableIDs(): Array9+ | Obtains the list of time zone IDs supported by the system. | +| TimeZone | getAvailableZoneCityIDs(): Array9+ | Obtains the list of time zone city IDs supported by the system. | +| TimeZone | getCityDisplayName(cityID: string, locale: string): string9+ | Obtains the localized representation of a time zone city in the specified locale. | +| TimeZone | getTimezoneFromCity(cityID: string): TimeZone9+ | Obtains the **TimeZone** object corresponding to the specified time zone ID.| + +### How to Develop + +1. Import the **i18n** module. + + ```js + import I18n from '@ohos.i18n' + ``` + +2. Instantiate the **TimeZone** object, and obtain the time zone information. + + Call **getTimeZone** to obtain the **TimeZone** object. + + ```js + let timezone = I18n.getTimeZone(); // If you use the default settings, you'll obtain the TimeZone object corresponding to the system time zone. + ``` + + Obtain the time zone ID, localized representation, time zone offset, and time zone offset at a certain time point. + + ```js + let timezoneID = timezone.getID(); // timezoneID = "Asia/Shanghai" + let timezoneDisplayName = timezone.getDisplayName(); // timezoneDisplayName = "China Standard Time" + let rawOffset = timezone.getRawOffset(); // rawOffset = 28800000 + let offset = timezone.getOffset(new Date().getTime()); // offset = 28800000 + ``` + +3. Obtain the list of time zone IDs supported by the system. + + Call **getAvailableIDs** to obtain the list of time zone IDs supported by the system. + You can use the time zone ID in the time zone ID list as an input parameter of the **getTimeZone** API to create a **TimeZone** object. + + ```js + let timezoneIDs = I18n.TimeZone.getAvailableIDs(); // timezoneIDs = ["America/Adak", ...], which contains 24 time zone IDs in total + let timezone = I18n.getTimeZone(timezoneIDs[0]); + let timezoneDisplayName = timezone.getDisplayName(); // timezoneDisplayName = "Hawaii-Aleutian Standard Time" + ``` + +4. Obtain the list of time zone city IDs supported by the system. + + Call **getAvailableZoneCityIDs** to obtain the list of time zone city IDs supported by the system. + Call **getCityDisplayName** to obtain the localized representation of the time zone city ID. + Call **getTimezoneFromCity** to create a **TimeZone** object based on the time zone city ID. + + ```js + let zoneCityIDs = I18n.TimeZone.getAvailableZoneCityIDs(); // ["Auckland", "Magadan", ...] + let cityDisplayName = I18n.TimeZone.getCityDisplayName(zoneCityIDs[0], "zh-Hans"); // cityDisplayName = "Auckland (New Zealand)" + let timezone = I18n.TimeZone.getTimezoneFromCity(zoneCityIDs[0]); + let timezoneDisplayName = timezone.getDisplayName(); // timezoneDisplayName = "New Zealand Standard Time" + ``` + +## Obtain the **Transliterator** object. + +Call [Transliterator](../reference/apis/js-apis-i18n.md#transliterator9) APIs to create a **Transliterator** object and obtain the transliterated string. + +### Available APIs + +| Class | API | Description | +| --------- | ---------------------------------------- | ------------------------------ | +| Transliterator | getAvailableIDs():Array9+ | Obtains the transliterator ID list. | +| Transliterator | getInstance(): Transliterator9+ | Creates a **Transliterator** object. | +| Transliterator | transform(text: string): string9+ | Obtains a transliterated string. | + +### How to Develop + +1. Import the **i18n** module. + + ```js + import I18n from '@ohos.i18n' + ``` + +2. Obtains the transliterator ID list. + + Call **getAvailableIDs** to obtain the transliterator ID list. + An ID is in the **source-destination** format. For example, **ASCII-Latin** means to convert the transliterator ID from ASCII to Latin. + + ```js + let ids = I18n.Transliterator.getAvailableIDs(); // ids = ["ASCII-Latin", "Accents-Any", ... ], 671 languages in total + ``` + +3. Create a **Transliterator** object, and obtain the transliterated string. + + You can use the ID in the transliterator ID list as an input parameter of the **getInstance** API to create a **Transliterator** object. + Call **transform** to obtain the transliterated string. + + ```js + let transliterator = I18n.Transliterator.getInstance("Any-Latn"); // Any-Latn means to convert any text to Latn text. + let transformText = transliterator.transform ("Hello"); // transformText = "nǐ hǎo" + ``` + +## Obtaining the Character Type + +[Unicode](../reference/apis/js-apis-i18n.md#unicode9) provides APIs to obtain character information, for example, whether a character is a digit or a space. + +### Available APIs + +| Class | API | Description | +| --------- | ---------------------------------------- | ------------------------------ | +| Unicode | isDigit(char: string): boolean9+ | Checks whether the input character is a digit. | +| Unicode | isSpaceChar(char: string): boolean9+ | Checks whether the input character is a space. | +| Unicode | isWhitespace(char: string): boolean9+ | Checks whether the input character is a white space. | +| Unicode | isRTL(char: string): boolean9+ | Checks whether the input character is of the RTL language. | +| Unicode | isIdeograph(char: string): boolean9+ | Checks whether the input character is an ideographic character. | +| Unicode | isLetter(char: string): boolean9+ | Checks whether the input character is a letter. | +| Unicode | isLowerCase(char: string): boolean9+ | Checks whether the input character is a lowercase letter. | +| Unicode | isUpperCase(char: string): boolean9+ | Checks whether the input character is an uppercase letter. | +| Unicode | getType(char: string): string9+ | Obtains the type of a character.| + +### How to Develop + +1. Import the **i18n** module. + + ```js + import I18n from '@ohos.i18n' + ``` + +2. Check the input character has a certain attribute. + + Check whether the input character is a digit. + + ```js + let isDigit = I18n.Unicode.isDigit("1"); // isDigit = true + isDigit = I18n.Unicode.isDigit("a"); // isDigit = false + ``` + + Check whether the input character is a space. + + ```js + let isSpaceChar = I18n.Unicode.isSpaceChar(" "); // isSpaceChar = true + isSpaceChar = I18n.Unicode.isSpaceChar("\n"); // isSpaceChar = false ``` -5. Determine whether a position is a break point. + Check whether the input character is a white space. - Call the **isBoundary** method to determine whether a position is a break point. If yes, **true** is returned and the **BreakIterator** object is moved to this position. If no, **false** is returned and the **BreakIterator** object is moved to a break point after this position. + ```js + let isWhitespace = I18n.Unicode.isWhitespace(" "); // isWhitespace = true + isWhitespace = I18n.Unicode.isWhitespace("\n"); // isWhitespace = true + ``` + + Check whether the input character is of the RTL language. + + ```js + let isRTL = I18n.Unicode.isRTL(""); // isRTL = true (Arabic characters are written from left to right.) + isRTL = I18n.Unicode.isRTL("a"); // isRTL = false + ``` + + Check whether the input character is an ideographic character. + + ```js + let isIdeograph = I18n.Unicode.isIdeograph("Hello"); // isIdeograph = true + isIdeograph = I18n.Unicode.isIdeograph("a"); // isIdeograph = false + ``` + + Check whether the input character is a letter. + + ```js + let isLetter = I18n.Unicode.isLetter("a"); // isLetter = true + isLetter = I18n.Unicode.isLetter("."); // isLetter = false + ``` + Check whether the input character is a lowercase letter. - ```js - let isboundary = breakIterator.isBoundary(5); + ```js + let isLowerCase = I18n.Unicode.isLowerCase("a"); // isLetter = true + isLowerCase = I18n.Unicode.isLowerCase("A"); // isLetter = false ``` - ``` \ No newline at end of file + Check whether the input character is an uppercase letter. + + ```js + let isUpperCase = I18n.Unicode.isUpperCase("a"); // isUpperCase = false + isUpperCase = I18n.Unicode.isUpperCase("A"); // isUpperCase = true + ``` + +3. Obtain the character type. + + Call **getType** to obtain the character type. + + ```js + let type = I18n.Unicode.getType("a"); // type = U_LOWER_CASE_LETTER + ``` + +## Obtaining the Sequence of Year, Month, and Day in a Date + +### Available APIs + +| Class | API | Description | +| --------- | ---------------------------------------- | ------------------------------ | +| I18NUtil | getDateOrder(locale: string): string9+ | Checks the sequence of year, month, and day in a date. | + +### How to Develop + +1. Import the **i18n** module. + + ```js + import I18n from '@ohos.i18n' + ``` + +2. Check the sequence of year, month, and day in a date. + + Call **getDateOrder** to obtain the sequence of year, month, and day in the date of the specified locale. + The API returns a string consisting of three parts, **y**, **L**, and **d**, which indicate the year, month, and day, respectively. The three parts are separated by using a hyphen (-), for example, **y-L-d**. + + ```js + let order = I18n.I18NUtil.getDateOrder("zh-CN"); // order = "y-L-d" indicates that the sequence of year, month, and day in Chinese is year-month-day. + ``` diff --git a/en/application-dev/internationalization/intl-guidelines.md b/en/application-dev/internationalization/intl-guidelines.md index 8f38269d95..563ffb5173 100644 --- a/en/application-dev/internationalization/intl-guidelines.md +++ b/en/application-dev/internationalization/intl-guidelines.md @@ -1,38 +1,42 @@ -# Internationalization Development (Intl) +# intl Development -This module provides basic I18N capabilities, such as time and date formatting, number formatting, and string sorting, through the standard I18N APIs defined in ECMA 402. For more details about APIs and their usage, see [Intl](../reference/apis/js-apis-intl.md). +The **intl** module provides basic i18n capabilities, such as time and date formatting, number formatting, and string sorting, through the standard i18n APIs defined in ECMA 402. For more details about APIs and their usage, see [intl](../reference/apis/js-apis-intl.md). -> **NOTE** -> -> In the code snippets in this document, **intl** refers to the name of the imported module. +The [I18N](i18n-guidelines.md) module provides enhanced I18N capabilities through supplementary interfaces that are not defined in ECMA 402. It works with the Intl module to provide a complete suite of I18N capabilities. ## Setting Locale Information -Use [Locale](../reference/apis/js-apis-intl.md#locale) APIs to maximize or minimize locale information. - +[Locale](../reference/apis/js-apis-intl.md#locale) provides APIs to maximize or minimize the locale information. ### Available APIs -| Module | API | Description | +| Class| API| Description| | -------- | -------- | -------- | -| ohos.intl | constructor()8+ | Instantiates a **Locale** object. | -| ohos.intl | constructor(locale?: string, options?: options) | Instantiates a **Locale** object based on the locale parameter and options. | -| ohos.intl | toString(): string | Converts locale information into a string. | -| ohos.intl | maximize(): Locale | Maximizes locale information. | -| ohos.intl | minimize(): Locale | Minimizes locale information. | - +| Locale | constructor()8+ | Instantiates a **Locale** object.| +| Locale | constructor(locale:string,options?:LocaleOptions) | Instantiates a **Locale** object based on the locale parameter and options.| +| Locale | toString():string | Converts locale information into a string.| +| Locale | maximize():Locale | Maximizes locale information.| +| Locale | minimize():Locale | Minimizes locale information.| ### How to Develop -1. Instantiate a **Locale** object. +1. Import the **intl** module. - Create a **Locale** object by using the **Locale** constructor. This method receives a string representing the locale and an optional [Attributes](../reference/apis/js-apis-intl.md#localeoptions) list. + Importing an incorrect bundle can lead to unexpected API behavior. + + ```js + import Intl from '@ohos.intl' + ``` + +2. Instantiates a **Locale** object. + + Create a **Locale** object using the **Locale** constructor. This API receives a string representing the locale and an optional [attribute](../reference/apis/js-apis-intl.md#localeoptions) list. (Note that **intl** is the name of the imported module.) A **Locale** object consists of four parts: language, script, region, and extension, which are separated by using a hyphen (-). - Language: mandatory. It is represented by a two-letter or three-letter code as defined in ISO-639. For example, **en** indicates English and **zh** indicates Chinese. - Script: optional. It is represented by a four-letter code as defined in ISO-15924. The first letter is in uppercase, and the remaining three letters are in lowercase. For example, **Hant** represents the traditional Chinese, and **Hans** represents the simplified Chinese. - Country or region: optional. It is represented by two-letter code as defined in ISO-3166. Both letters are in uppercase. For example, **CN** represents China, and **US** represents the United States. - - Extensions: optional. Each extension consists of two parts, key and value. Currently, the extensions listed in the following table are supported (see BCP 47 Extensions). Extensions can be in any sequence and are written in the format of **-key-value**. They are appended to the language, script, and region by using **-u**. For example, **zh-u-nu-latn-ca-chinese** indicates that the Latin numbering system and Chinese calendar system are used. Extensions can also be passed via the second parameter. + - Extensions: optional. Each extension consists of two parts, key and value. Currently, the extensions listed in the following table are supported (see BCP 47 Extensions). Extensions can be in any sequence and are written in the format of **-key-value**. They are appended to the language, script, and region by using **-u**. For example, **zh-u-nu-latn-ca-chinese** indicates that the latn digital system and chinese calendar system are used. Extensions can also be passed via the second parameter. | Extended Parameter ID| Description| | -------- | -------- | | ca | Calendar algorithm.| @@ -40,305 +44,346 @@ Use [Locale](../reference/apis/js-apis-intl.md#locale) APIs to maximize or minim | hc | Hour cycle.| | nu | Numbering system.| | kn | Whether numeric collation is used when sorting or comparing strings.| - | kf | Whether upper case or lower case is considered when sorting or comparing strings.| + | kf | Whether capitalization is considered when sorting or comparing strings.| ```js let locale = "zh-CN"; let options = {caseFirst: "false", calendar: "chinese", collation: "pinyin"}; - let localeObj = new intl.Locale(locale, options); + let localeObj = new Intl.Locale(locale, options); ``` -2. Obtain the string representing a **Locale** object. +3. Obtain the string representing a **Locale** object. - Call the **toString** method to obtain the string representing a **Locale** object, which includes the language, region, and other options. - + Call **toString** to obtain the string representing a **Locale** object, including the language, region, and other options. + ```js - let localeStr = localeObj.toString(); + let localeStr = localeObj.toString(); // localeStr = "zh-CN-u-ca-chinese-co-pinyin-kf-false ``` -3. Maximize locale information. +4. Maximize locale information. - Call the **maximize** method to maximize locale information; that is, supplement the missing script and region information. - + Call **maximize** to maximize locale information; that is, supplement the missing script and region information. + ```js let maximizedLocale = localeObj.maximize(); + let maximizedLocaleStr = maximizedLocale.toString(); // localeStr = "zh-Hans-CN-u-ca-chinese-co-pinyin-kf-false ``` -4. Minimize locale information. +5. Minimize locale information. - Call the **minimize** method to minimize locale information; that is, delete the unnecessary script and region information. - + Call **minimize** to minimize locale information; that is, delete the unnecessary script and region information. + ```js let minimizedLocale = localeObj.minimize(); + let minimizedLocaleStr = minimizedLocale.toString(); // zh-u-ca-chinese-co-pinyin-kf-false ``` - ## Formatting the Date and Time -Use [DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat) APIs to format the date and time for a specific locale. - +[DateTimeFormat](../reference/apis/js-apis-intl.md#datetimeformat) provides APIs to format the date and time for the specified locale. ### Available APIs -| Module | API | Description | +| Class| API| Description| | -------- | -------- | -------- | -| ohos.intl | constructor()8+ | Creates a **DateTimeFormat** object. | -| ohos.intl | constructor(locale: string \| Array<string>, options?: DateTimeOptions) | Creates a **DateTimeFormat** object and sets the locale and other formatting-related attributes. | -| ohos.intl | format(date: Date): string | Calculates the date and time based on the locale and other formatting-related attributes of the **DateTimeFormat** object. | -| ohos.intl | formatRange(startDate: Date, endDate: Date): string | Calculates the period based on the locale and other formatting-related attributes of the **DateTimeFormat** object. | -| ohos.intl | resolvedOptions(): DateTimeOptions | Obtains the related attributes of the **DateTimeFormat** object. | - +| DateTimeFormat | constructor()8+ | Creates a **DateTimeFormat** object.| +| DateTimeFormat | constructor(locale:string\|Array<string>,options?:DateTimeOptions) | Creates a **DateTimeFormat** object and sets the locale and other formatting-related attributes.| +| DateTimeFormat | format(date:Date):string | Calculates the date and time based on the locale and other formatting-related attributes of the **DateTimeFormat** object.| +| DateTimeFormat | formatRange(startDate:Date,endDate:Date):string | Calculates the period based on the locale and other formatting-related attributes of the **DateTimeFormat** object.| +| DateTimeFormat | resolvedOptions():DateTimeOptions | Obtains the related attributes of the **DateTimeFormat** object.| ### How to Develop -1. Instantiate a **DateTimeFormat** object. +1. Import the **intl** module. + + Importing an incorrect bundle can lead to unexpected API behavior. + + ```js + import Intl from '@ohos.intl' + ``` + +2. Instantiate a **DateTimeFormat** object. Use the default constructor of **DateTimeFormat** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **DateTimeFormat** object. - ```js - let dateTimeFormat = new intl.DateTimeFormat(); + let dateTimeFormat = new Intl.DateTimeFormat(); ``` - Alternatively, use your own locale and formatting parameters to create a **DateTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [DateTimeOptions](../reference/apis/js-apis-intl.md#datetimeoptions). + Alternatively, use your own locale and formatting parameters to create a **DateTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [DateTimeOptions](../reference/apis/js-apis-intl.md#datetimeoptions). ```js let options = {dateStyle: "full", timeStyle: "full"}; - let dateTimeFormat = new intl.DateTimeFormat("zh-CN", options); + let dateTimeFormat = new Intl.DateTimeFormat("zh-CN", options); ``` -2. Format the date and time. +3. Format the date and time. - Call the **format** method to format the date and time in the **DateTimeFormat** object. This method returns a string representing the formatting result. - + Call **format** to format a **Date** object. A string is returned as the formatting result. + ```js - let date = new Date(); - let formatResult = dateTimeFormat.format(date); + let options = {dateStyle: "full", timeStyle: "full"}; + let dateTimeFormat = new Intl.DateTimeFormat("zh-CN", options); + let date = new Date(2022, 12, 12, 12, 12, 12); + let formatResult = dateTimeFormat.format(date); // formatResult = "January 12, 2023, Thursday, 12:12:12 pm, China Standard Time" ``` -3. Format a period. +4. Format a period. - Call the **formatRange** method to format the period in the **DateTimeFormat** object. This method requires input of two **Date** objects, which respectively indicate the start date and end date of a period. This method returns a string representing the formatting result. - + Call **formatRange** to format a period. This API requires the input of two **Date** objects, which respectively indicate the start date and end date of a period. A string is returned as the formatting result. + ```js let startDate = new Date(2021, 11, 17, 3, 24, 0); let endDate = new Date(2021, 11, 18, 3, 24, 0); let datefmt = new Intl.DateTimeFormat("en-GB"); - datefmt.formatRange(startDate, endDate); + let formatRangeResult = datefmt.formatRange(startDate, endDate); // formatRangeResult = "17/12/2021-18/12/2021" ``` -4. Obtain attributes of the **DateTimeFormat** object. +5. Access the attributes of the **DateTimeFormat** object. - Call the **resolvedOptions** method to obtain attributes of the **DateTimeFormat** object. This method will return an array that contains all attributes and values of the object. - + Call **resolvedOptions** to obtain an object that contains all related attributes and values of the **DateTimeFormat** object. + ```js - let options = dateTimeFormat.resolvedOptions(); + let options = {dateStyle: "full", timeStyle: "full"}; + let dateTimeFormat = new Intl.DateTimeFormat("zh-CN", options); + let resolvedOptions = dateTimeFormat.resolvedOptions(); // resolvedOptions = {"locale": "zh-CN", "calendar": "gregorian", "dateStyle":"full", "timeStyle":"full", "timeZone": "CST"} ``` +## Number Formatting -## Formatting Numbers - -Use [NumberFormat](../reference/apis/js-apis-intl.md#numberformat) APIs to format numbers for a specific locale. - +[NumberFormat](../reference/apis/js-apis-intl.md#numberformat) provides APIs to implement the number formatting specific to a locale. ### Available APIs -| Module | API | Description | +| Class| API| Description| | -------- | -------- | -------- | -| ohos.intl | constructor()8+ | Creates a **NumberFormat** object. | -| ohos.intl | constructor(locale: string \| Array<string>, options?: NumberOptions) | Creates a **NumberFormat** object and sets the locale and other formatting-related attributes. | -| ohos.intl | format(number: number): string | Calculates the number based on the locale and other formatting-related attributes of the **NumberFormat** object. | -| ohos.intl | resolvedOptions(): NumberOptions | Obtains attributes of the **NumberFormat** object. | - +| NumberFormat | constructor()8+ | Creates a **NumberFormat** object for the specified locale.| +| NumberFormat | constructor(locale:string\|Array<string>,options?:NumberOptions) | Creates a **NumberFormat** object and sets the locale and other formatting-related attributes.| +| NumberFormat | format(number:number):string | Calculates the number based on the locale and other formatting-related attributes of the **NumberFormat** object.| +| NumberFormat | resolvedOptions():NumberOptions | Obtains the attributes of the **NumberFormat** object.| ### How to Develop -1. Instantiate a **NumberFormat** object. - - Use the default constructor of **NumberFormat** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **NumberFormat** object. +1. Import the **intl** module. + Importing an incorrect bundle can lead to unexpected API behavior. ```js - let numberFormat = new intl.NumberFormat(); + import Intl from '@ohos.intl' + ``` + +2. Instantiate a **NumberFormat** object. + + Use the default constructor of **NumberFormat** to obtain the system default locale by accessing the system language and region settings and set it as the locale in the **NumberFormat** object (**intl** is the name of the imported module). + + ```js + let numberFormat = new Intl.NumberFormat(); ``` - Alternatively, use your own locale and formatting parameters to create a **NumberFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [NumberOptions](../reference/apis/js-apis-intl.md#numberoptions). + Alternatively, use your own locale and formatting parameters to create a **NumberFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [NumberOptions](../reference/apis/js-apis-intl.md#numberoptions). ```js let options = {compactDisplay: "short", notation: "compact"}; - let numberFormat = new intl.NumberFormat("zh-CN", options); + let numberFormat = new Intl.NumberFormat("zh-CN", options); ``` -2. Format a number. +3. Format a number. - Call the **format** method to format a number. A string is returned as the formatting result. - + Call **format** to format a number. A string is returned as the formatting result. + ```js + let options = {compactDisplay: "short", notation: "compact"}; + let numberFormat = new Intl.NumberFormat("zh-CN", options); let number = 1234.5678 - let formatResult = numberFormat.format(number); + let formatResult = numberFormat.format(number); // formatResult = "1235" ``` -3. Obtain attributes of the **NumberFormat** object. +4. Access the attributes of the **NumberFormat** object. - Call the **resolvedOptions** method to obtain attributes of the **NumberFormat** object. This method will return an array that contains all attributes and values of the object. - + Call **resolvedOptions** to obtain an object that contains all related attributes and values of the **NumberFormat** object. + ```js - let options = numberFormat.resolvedOptions(); + let options = {compactDisplay: "short", notation: "compact"}; + let numberFormat = new Intl.NumberFormat("zh-CN", options); + let resolvedOptions = numberFormat.resolvedOptions(); // resolvedOptions = {"locale": "zh-CN", "compactDisplay": "short", "notation": "compact", "numberingSystem": "Latn"} ``` +## String Sorting -## Sorting Strings - -Use [Collator](../reference/apis/js-apis-intl.md#collator8) APIs to sort strings based on a specific locale. Users in different regions have different preferences for string sorting. - +Users in different regions have different requirements for string sorting. [Collator](../reference/apis/js-apis-intl.md#collator8) provides APIs to sort character strings specific to a locale. ### Available APIs -| Module | API | Description | +| Class| API| Description| | -------- | -------- | -------- | -| ohos.intl | constructor()8+ | Creates a **Collator** object. | -| ohos.intl | constructor(locale: string \| Array<string>, options?: CollatorOptions)8+ | Creates a **Collator** object and sets the locale and other related attributes. | -| ohos.intl | compare(first: string, second: string): number8+ | Calculates the comparison result of two strings based on the locale and other attributes of the **Collator** object. | -| ohos.intl | resolvedOptions(): CollatorOptions8+ | Obtains attributes of the **Collator** object. | - +| Collator | constructor()8+ | Creates a **Collator** object.| +| Collator | constructor(locale:string\|Array<string>,options?:CollatorOptions)8+ | Creates a **Collator** object and sets the locale and other related attributes.| +| Collator | compare(first:string,second:string):number8+ | Calculates the comparison result of two strings based on the locale and other attributes of the **Collator** object.| +| Collator | resolvedOptions():CollatorOptions8+ | Obtains the attributes of the **Collator** object.| ### How to Develop -1. Instantiate a **Collator** object. - - Use the default constructor of **Collator** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **Collator** object. +1. Import the **intl** module. + Importing an incorrect bundle can lead to unexpected API behavior. ```js - let collator = new intl.Collator(); + import Intl from '@ohos.intl' ``` - Alternatively, use your own locale and formatting parameters to create a **Collator** object. For a full list of parameters, see [CollatorOptions](../reference/apis/js-apis-intl.md#collatoroptions9). +2. Instantiate a **Collator** object. + + Use the default constructor of **Collator** to obtain the system default locale by accessing the system language and region settings and set it as the locale in the **Collator** object (**intl** is the name of the imported module). + + ```js + let collator = new Intl.Collator(); + ``` + + Alternatively, use your own locale and formatting parameters to create a **Collator** object. For a full list of parameters, see [CollatorOptions](../reference/apis/js-apis-intl.md#collatoroptions9). + The **sensitivity** parameter is used to specify the levels of differences that will be used for string comparison. The value **base** indicates that only characters are compared, but not the accent and capitalization. For example, 'a' != 'b', 'a' == '', 'a'=='A'. The value **accent** indicates that the accent is considered, but not the capitalization. For example, 'a' != 'b', 'a' == '', 'a'=='A'. The value **case** indicates that the capitalization is considered, but the accent. For example, 'a' != 'b', 'a' == '', 'a'=='A'. The value **variant** indicates that the accent and capitalization are considered. For example, 'a' != 'b', 'a' == '', 'a'=='A'. ```js - let collator= new intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}); + let collator= new Intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort", sensitivity: "case"}); ``` -2. Compare two strings. +3. Compare two strings. - Call the **compare** method to compare two input strings. This method returns a value as the comparison result. The return value **-1** indicates that the first string is shorter than the second string, the return value **1** indicates that the first string is longer than the second string, and the return value **0** indicates that the two strings are of equal lengths. This allows you to sort character strings based on the comparison result. - + Call **compare** to compare two input strings. This API returns a value as the comparison result. The return value **-1** indicates that the first string is shorter than the second string, the return value **1** indicates that the first string is longer than the second string, and the return value **0** indicates that the two strings are of equal lengths. This allows you to sort character strings based on the comparison result. + ```js + let collator= new Intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort", sensitivity: "case"}); let str1 = "first string"; let str2 = "second string"; - let compareResult = collator.compare(str1, str2); + let compareResult = collator.compare(str1, str2); // compareResult = -1 + str1 = "first"; + str2 = "First"; + compareResult = collator.compare(str1, str2); // compareResult = -1 ``` -3. Obtain attributes of the **Collator** object. +4. Access the attributes of the **Collator** object. - Call the **resolvedOptions** method to obtain attributes of the **Collator** object. This method will return an array that contains all attributes and values of the object. - + Call **resolvedOptions** to obtain an object that contains all related attributes and values of the **Collator** object. + ```js - let options = collator.resolvedOptions(); + let collator= new Intl.Collator("zh-CN", {localeMatcher: "best fit", usage: "sort"}); + let options = collator.resolvedOptions(); // options = {"localeMatcher": "best fit", "locale": "zh-CN", "usage": "sort", "sensitivity": "variant", "ignorePunctuation": "false", "numeric": false, "caseFirst": "false", "collation": "default"} ``` - ## Determining the Singular-Plural Type -Use [PluralRules](../reference/apis/js-apis-intl.md#pluralrules8) APIs to determine the singular-plural type for a specific locale. According to the grammar of certain languages, the singular or plural form of a noun depends on its preceding number. - +According to grammars in certain languages, the singular or plural form of a noun depends on the number prior to the noun. [PluralRules](../reference/apis/js-apis-intl.md#pluralrules8) provides APIs to determine the singular-plural type for a specific locale. ### Available APIs -| Module | API | Description | +| Class| API| Description| | -------- | -------- | -------- | -| ohos.intl | constructor()8+ | Creates a **PluralRules** object. | -| ohos.intl | constructor(locale: string \| Array<string>, options?: PluralRulesOptions)8+ | Creates a **PluralRules** object and sets the locale and other related attributes. | -| ohos.intl | select(n: number): string8+ | Determines the singular-plural type based on the locale and other formatting-related attributes of the **PluralRules** object. | +| PluralRules | constructor()8+ | Creates a **PluralRules** object.| +| PluralRules | constructor(locale:string\|Array<string>,options?:PluralRulesOptions)8+ | Creates a **PluralRules** object and sets the locale and other related attributes.| +| PluralRules | select(n:number):string8+ | Determines the singular-plural type based on the locale and other formatting-related attributes of the **PluralRules** object.| ### How to Develop -1. Instantiate a **PluralRules** object. - - Use the default constructor of **PluralRules** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **PluralRules** object. +1. Import the **intl** module. + Importing an incorrect bundle can lead to unexpected API behavior. ```js - let pluralRules = new intl.PluralRules(); + import Intl from '@ohos.intl' ``` - Alternatively, use your own locale and formatting parameters to create a **PluralRules** object. For a full list of parameters, see [PluralRulesOptions](../reference/apis/js-apis-intl.md#pluralrulesoptions9). - +2. Instantiate a **PluralRules** object. + + Use the default constructor of **PluralRules** to obtain the system default locale by accessing the system language and region settings and set it as the locale in the **PluralRules** object (**intl** is the name of the imported module). + ```js - let pluralRules = new intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); + let pluralRules = new Intl.PluralRules(); ``` -2. Determine the singular-plural type. - - Call the **select** method to determine the singular-plural type of an input number. This method will return a string representing the singular-plural type, which can be any of the following: **zero**, **one**, **two**, **few**, **many**, and **other**. + Alternatively, use your own locale and formatting parameters to create a **PluralRules** object. For a full list of parameters, see [PluralRulesOptions](../reference/apis/js-apis-intl.md#pluralrulesoptions9). ```js - let number = 1234.5678 - let categoryResult = plurals.select(number); + let pluralRules = new Intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); ``` +3. Determine the singular-plural type. -## Formatting the Relative Time + Call **select** to determine the singular-plural type for an input number. This API returns a string as the category of the input number, which can be any of the following: **zero**, **one**, **two**, **few**, **many**, and **other**. + + ```js + let pluralRules = new Intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); + let number = 1234.5678 + let categoryResult = pluralRules.select(number); // categoryResult = "other" + ``` -Use [RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8) APIs to format the relative time for a specific locale. +## Formatting Relative Time +[RelativeTimeFormat](../reference/apis/js-apis-intl.md#relativetimeformat8) provides APIs to format the relative time for a specific locale. ### Available APIs -| Module | API | Description | +| Class| API| Description| | -------- | -------- | -------- | -| ohos.intl | constructor()8+ | Creates a **RelativeTimeFormat** object. | -| ohos.intl | constructor(locale: string \| Array<string>, options?: RelativeTimeFormatInputOptions)8+ | Creates a **RelativeTimeFormat** object and sets the locale and other formatting-related attributes. | -| ohos.intl | format(value: number, unit: string): string8+ | Calculates the relative time format based on the locale and other formatting-related attributes of the **RelativeTimeFormat** object. | -| ohos.intl | formatToParts(value: number, unit: string): Array<object>8+ | Returns each part of the relative time format based on the locale and other formatting-related attributes of the **RelativeTimeFormat** object. | -| ohos.intl | resolvedOptions(): RelativeTimeFormatResolvedOptions8+ | Obtains attributes of the **RelativeTimeFormat** object. | - +| RelativeTimeFormat | constructor()8+ | Creates a **RelativeTimeFormat** object.| +| RelativeTimeFormat | constructor(locale:string\|Array<string>,options?:RelativeTimeFormatInputOptions)8+ | Creates a **RelativeTimeFormat** object and sets the locale and other formatting-related attributes.| +| RelativeTimeFormat | format(value:number,unit:string):string8+ | Calculates the relative time format based on the locale and other formatting-related attributes of the **RelativeTimeFormat** object.| +| RelativeTimeFormat | formatToParts(value:number,unit:string):Array<object>8+ | Obtains each part of the relative time format based on the locale and other formatting-related attributes of the **RelativeTimeFormat** object.| +| RelativeTimeFormat | resolvedOptions():RelativeTimeFormatResolvedOptions8+ | Obtains the attributes of the **RelativeTimeFormat** object.| ### How to Develop -1. Instantiate a **RelativeTimeFormat** object. +1. Import the **intl** module. + + Importing an incorrect bundle can lead to unexpected API behavior. + + ```js + import Intl from '@ohos.intl' + ``` - Use the default constructor of **RelativeTimeFormat** to obtain the system default locale by accessing the system language and region settings, and set it as the locale in the **RelativeTimeFormat** object. +2. Instantiate a **RelativeTimeFormat** object. + Use the default constructor of **RelativeTimeFormat** to obtain the system default locale by accessing the system language and region settings and set it as the locale in the **RelativeTimeFormat** object (**intl** is the name of the imported module). ```js - let relativeTimeFormat = new intl.RelativeTimeFormat(); + let relativeTimeFormat = new Intl.RelativeTimeFormat(); ``` - Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md#relativetimeformatinputoptions9). + Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md#relativetimeformatinputoptions9). ```js - let relativeTimeFormat = new intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); + let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); ``` -2. Format the relative time. +3. Format the relative time. - Call the **format** method to format the relative time. This method receives a numeric value representing the time length and a string-form unit, like **year**, **quarter**, **month**, **week**, **day**, **hour**, **minute**, and **second**. This method returns a string representing the formatting result. - + Call **format** to format the relative time. This API receives a numeric value representing the time length and a string-form unit, like **year**, **quarter**, **month**, **week**, **day**, **hour**, **minute**, and **second**. A string is returned as the formatting result. + ```js + let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); let number = 2; let unit = "year" - let formatResult = relativeTimeFormat.format(number, unit); + let formatResult = relativeTimeFormat.format(number, unit); // 2 years later ``` -3. Obtain each part of the relative time format. +4. Obtain each part of the relative time format. - Upon obtaining each part of the relative time format, customize the relative time formatting result. - + On obtaining each part of the relative time format, customize the relative time formatting result. + ```js + let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); let number = 2; let unit = "year" - let formatResult = relativeTimeFormat.formatToParts(number, unit); + let formatPartsResult = relativeTimeFormat.formatToParts(number, unit); // formatPartsResult = [{"type": "integer", "value": "2", "unit": "year"}, {"type":"literal", "value": "years later"}] ``` -4. Obtain attributes of the **RelativeTimeFormat** object. +5. Access the attributes of the **RelativeTimeFormat** object. - Call the **resolvedOptions** method to obtain attributes of the **RelativeTimeFormat** object. This method will return an array that contains all attributes and values of the object. For a full list of attributes, see [RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md#relativetimeformatresolvedoptions8). - + Call **resolvedOptions** to obtain an object that contains all related attributes and values of the **RelativeTimeFormat** object. For a full list of attributes, see [RelativeTimeFormatResolvedOptions](../reference/apis/js-apis-intl.md#relativetimeformatresolvedoptions8). + ```js - let options = numberFormat.resolvedOptions(); + let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); + let options = relativeTimeFormat.resolvedOptions(); // options = {"locale": "zh-CN", "style": "long", "numeric": "always", "numberingSystem": "latn"} ``` ## Samples diff --git a/en/application-dev/reference/apis/js-apis-i18n.md b/en/application-dev/reference/apis/js-apis-i18n.md index 913fde73b3..cda33f5434 100644 --- a/en/application-dev/reference/apis/js-apis-i18n.md +++ b/en/application-dev/reference/apis/js-apis-i18n.md @@ -1,6 +1,6 @@ # @ohos.i18n (Internationalization) - The **i18n** module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402. +The **i18n** module provides system-related or enhanced i18n capabilities, such as locale management, phone number formatting, and calendar, through supplementary i18n APIs that are not defined in ECMA 402. The [intl](js-apis-intl.md) module provides basic i18n capabilities through the standard i18n APIs defined in ECMA 402. It works with the i18n module to provide a complete suite of i18n capabilities. > **NOTE** diff --git a/en/application-dev/reference/apis/js-apis-intl.md b/en/application-dev/reference/apis/js-apis-intl.md index ac8d4d80a5..d4f3449ada 100644 --- a/en/application-dev/reference/apis/js-apis-intl.md +++ b/en/application-dev/reference/apis/js-apis-intl.md @@ -1,7 +1,7 @@ # @ohos.intl (Internationalization) - The **intl** module provides basic i18n capabilities, such as time and date formatting, number formatting, and string sorting, through the standard i18n APIs defined in ECMA 402. -The [i18n](i18n-guidelines.md) module provides enhanced i18n capabilities through supplementary interfaces that are not defined in ECMA 402. It works with the intl module to provide a complete suite of i18n capabilities. +The **intl** module provides basic i18n capabilities, such as time and date formatting, number formatting, and string sorting, through the standard i18n APIs defined in ECMA 402. +The [i18n](js-apis-i18n.md) module provides enhanced i18n capabilities through supplementary interfaces that are not defined in ECMA 402. It works with the intl module to provide a complete suite of i18n capabilities. > **NOTE** > - The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. -- GitLab From 563ec15e7a4b4a23dbaeb0868d3ac3bac49a2944 Mon Sep 17 00:00:00 2001 From: qiuxiangdong Date: Tue, 17 Jan 2023 17:11:26 +0800 Subject: [PATCH 298/383] docs: The example code word statisticsp is misspelled in the API reference Signed-off-by: qiuxiangdong --- .../reference/apis/js-apis-batteryStatistics.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-batteryStatistics.md b/zh-cn/application-dev/reference/apis/js-apis-batteryStatistics.md index f5bf333d21..95c477c34d 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-batteryStatistics.md +++ b/zh-cn/application-dev/reference/apis/js-apis-batteryStatistics.md @@ -46,7 +46,7 @@ batteryStats.getBatteryStats() console.info('battery statistics info: ' + data); }) .catch(err => { - console.error('get battery statisitics failed, err: ' + err); + console.error('get battery statistics failed, err: ' + err); }); ``` @@ -81,7 +81,7 @@ batteryStats.getBatteryStats((err, data) => { if (typeof err === 'undefined') { console.info('battery statistics info: ' + data); } else { - console.error('get battery statisitics failed, err: ' + err); + console.error('get battery statistics failed, err: ' + err); } }); ``` @@ -123,7 +123,7 @@ try { var value = batteryStats.getAppPowerValue(10021); console.info('battery statistics value of app is: ' + value); } catch(err) { - console.error('get battery statisitics value of app failed, err: ' + err); + console.error('get battery statistics value of app failed, err: ' + err); } ``` @@ -164,7 +164,7 @@ try { var percent = batteryStats.getAppPowerPercent(10021); console.info('battery statistics percent of app is: ' + percent); } catch(err) { - console.error('get battery statisitics percent of app failed, err: ' + err); + console.error('get battery statistics percent of app failed, err: ' + err); } ``` @@ -205,7 +205,7 @@ try { var value = batteryStats.getHardwareUnitPowerValue(ConsumptionType.CONSUMPTION_TYPE_SCREEN); console.info('battery statistics percent of hardware is: ' + percent); } catch(err) { - console.error('get battery statisitics percent of hardware failed, err: ' + err); + console.error('get battery statistics percent of hardware failed, err: ' + err); } ``` @@ -246,7 +246,7 @@ try { var value = batteryStats.getHardwareUnitPowerPercent(ConsumptionType.CONSUMPTION_TYPE_SCREEN); console.info('battery statistics percent of hardware is: ' + percent); } catch(err) { - console.error('get battery statisitics percent of hardware failed, err: ' + err); + console.error('get battery statistics percent of hardware failed, err: ' + err); } ``` -- GitLab From bb569c4a68d7998288002b707d2261c575dc8df1 Mon Sep 17 00:00:00 2001 From: leafly2021 Date: Thu, 12 Jan 2023 19:56:10 +0800 Subject: [PATCH 299/383] modify BaseContext link Signed-off-by: leafly2021 Change-Id: I47b5f5f684f7b4284b94506919112de26ef9d16f --- .../reference/apis/js-apis-window.md | 32 ++++++++----------- .../windowmanager/application-window-fa.md | 6 ++-- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-window.md b/zh-cn/application-dev/reference/apis/js-apis-window.md index fece859142..70e2b78548 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-window.md +++ b/zh-cn/application-dev/reference/apis/js-apis-window.md @@ -54,7 +54,7 @@ import window from '@ohos.window'; | ---------- | -------------------------- | -- | ----------------------------------- | | name | string | 是 | 窗口名字。 | | windowType | [WindowType](#windowtype7) | 是 | 窗口类型。 | -| ctx | BaseContext | 否 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)。不设置,则默认为空。
        当Context为[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)时,创建系统窗口。 | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 否 | 当前应用上下文信息。不设置,则默认为空。
        FA模型下不需要使用该参数,即可创建子窗口。
        Stage模型下需要使用该参数,用于创建系统窗口。 | | displayId | number | 否 | 当前物理屏幕id。不设置,则默认为-1。 | | parentId | number | 否 | 父窗口id。不设置,则默认为-1。 | @@ -430,7 +430,7 @@ getLastWindow(ctx: BaseContext, callback: AsyncCallback<Window>): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- | -- | ---------------------------------------- | -| ctx | BaseContext | 是 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[Context](js-apis-ability-context.md)。 | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | | callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前应用内最后显示的窗口对象。 | **错误码:** @@ -472,7 +472,7 @@ getLastWindow(ctx: BaseContext): Promise<Window> | 参数名 | 类型 | 必填 | 说明 | | ------ | ----------- | ---- | ------------------------------------------------------------ | -| ctx | BaseContext | 是 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[Context](js-apis-ability-context.md)。 | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | **返回值:** @@ -897,9 +897,7 @@ promise.then((data)=> { create(ctx: BaseContext, id: string, type: WindowType, callback: AsyncCallback<Window>): void -创建子窗口,使用callback异步回调,其中Context详见[Context](js-apis-inner-app-context.md)。 - -从API version 9开始,当Context为[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)时,创建系统窗口,使用callback异步回调。 +创建系统窗口,使用callback异步回调。 > **说明:** > @@ -909,12 +907,12 @@ create(ctx: BaseContext, id: string, type: WindowType, callback: AsyncCallback&l **参数:** -| 参数名 | 类型 | 必填 | 说明 | -| -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | -| ctx | BaseContext | 是 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)。 | -| id | string | 是 | 窗口id。 | -| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | -| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前创建的子窗口对象。 | +| 参数名 | 类型 | 必填 | 说明 | +| -------- | ------------------------------------------------------- | ---- | ------------------------------------ | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | +| id | string | 是 | 窗口id。 | +| type | [WindowType](#windowtype7) | 是 | 窗口类型。 | +| callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前创建的子窗口对象。 | **示例:** @@ -935,9 +933,7 @@ window.create(this.context, 'alertWindow', window.WindowType.TYPE_SYSTEM_ALERT, create(ctx: BaseContext, id: string, type: WindowType): Promise<Window> -创建子窗口,使用Promise异步回调,其中Context详见[Context](js-apis-inner-app-context.md)。 - -从API version 9开始,当Context为[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)时,创建系统窗口,使用Promise异步回调。 +创建系统窗口,使用Promise异步回调。 > **说明:** > @@ -949,7 +945,7 @@ create(ctx: BaseContext, id: string, type: WindowType): Promise<Window> | 参数名 | 类型 | 必填 | 说明 | | ------ | ------------------------- | ---- | ------------------------------------------------------------ | -| ctx | BaseContext | 是 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)。 | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | | id | string | 是 | 窗口id。 | | type | [WindowType](#windowtype7) | 是 | 窗口类型。 | @@ -1125,7 +1121,7 @@ getTopWindow(ctx: BaseContext, callback: AsyncCallback<Window>): void | 参数名 | 类型 | 必填 | 说明 | | -------- | -------------------------------------- | ---- | ------------------------------------------------------------ | -| ctx | BaseContext | 是 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[Context](js-apis-ability-context.md)。 | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | | callback | AsyncCallback<[Window](#window)> | 是 | 回调函数。返回当前应用内最后显示的窗口对象。 | **示例:** @@ -1158,7 +1154,7 @@ getTopWindow(ctx: BaseContext): Promise<Window> | 参数名 | 类型 | 必填 | 说明 | | ------ | ----------- | ---- | ------------------------------------------------------------ | -| ctx | BaseContext | 是 | 当前应用上下文信息。
        FA模型的Context定义见[Context](js-apis-inner-app-context.md)。
        Stage模型的Context定义见[Context](js-apis-ability-context.md)。 | +| ctx | [BaseContext](js-apis-inner-application-baseContext.md) | 是 | 当前应用上下文信息。 | **返回值:** diff --git a/zh-cn/application-dev/windowmanager/application-window-fa.md b/zh-cn/application-dev/windowmanager/application-window-fa.md index a652a09d2b..53473d510d 100644 --- a/zh-cn/application-dev/windowmanager/application-window-fa.md +++ b/zh-cn/application-dev/windowmanager/application-window-fa.md @@ -54,7 +54,7 @@ let windowClass = null; // 方式一:创建子窗口。 - let config = {name: "subWindow", windowType: window.WindowType.TYPE_APP, ctx: this.context}; + let config = {name: "subWindow", windowType: window.WindowType.TYPE_APP}; window.createWindow(config, (err, data) => { if (err.code) { console.error('Failed to create the subWindow. Cause: ' + JSON.stringify(err)); @@ -72,8 +72,8 @@ console.info('Succeeded in finding subWindow. Data: ' + JSON.stringify(data)); windowClass = data; }); - ``` - +``` + 2. 设置子窗口属性。 子窗口创建成功后,可以改变其大小、位置等,还可以根据应用需要设置窗口背景色、亮度等属性。 -- GitLab From a92614cc7d2225f2e5bfc80d3885be9703567ef3 Mon Sep 17 00:00:00 2001 From: shawn_he Date: Tue, 17 Jan 2023 17:21:40 +0800 Subject: [PATCH 300/383] update doc Signed-off-by: shawn_he --- en/application-dev/internationalization/intl-guidelines.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/en/application-dev/internationalization/intl-guidelines.md b/en/application-dev/internationalization/intl-guidelines.md index 563ffb5173..609af84500 100644 --- a/en/application-dev/internationalization/intl-guidelines.md +++ b/en/application-dev/internationalization/intl-guidelines.md @@ -240,7 +240,7 @@ Users in different regions have different requirements for string sorting. [Coll let collator = new Intl.Collator(); ``` - Alternatively, use your own locale and formatting parameters to create a **Collator** object. For a full list of parameters, see [CollatorOptions](../reference/apis/js-apis-intl.md#collatoroptions9). + Alternatively, use your own locale and formatting parameters to create a **Collator** object. For a full list of parameters, see [CollatorOptions](../reference/apis/js-apis-intl.md#collatoroptions8). The **sensitivity** parameter is used to specify the levels of differences that will be used for string comparison. The value **base** indicates that only characters are compared, but not the accent and capitalization. For example, 'a' != 'b', 'a' == '', 'a'=='A'. The value **accent** indicates that the accent is considered, but not the capitalization. For example, 'a' != 'b', 'a' == '', 'a'=='A'. The value **case** indicates that the capitalization is considered, but the accent. For example, 'a' != 'b', 'a' == '', 'a'=='A'. The value **variant** indicates that the accent and capitalization are considered. For example, 'a' != 'b', 'a' == '', 'a'=='A'. ```js @@ -301,7 +301,7 @@ According to grammars in certain languages, the singular or plural form of a nou let pluralRules = new Intl.PluralRules(); ``` - Alternatively, use your own locale and formatting parameters to create a **PluralRules** object. For a full list of parameters, see [PluralRulesOptions](../reference/apis/js-apis-intl.md#pluralrulesoptions9). + Alternatively, use your own locale and formatting parameters to create a **PluralRules** object. For a full list of parameters, see [PluralRulesOptions](../reference/apis/js-apis-intl.md#pluralrulesoptions8). ```js let pluralRules = new Intl.PluralRules("zh-CN", {localeMatcher: "best fit", type: "cardinal"}); @@ -349,7 +349,7 @@ According to grammars in certain languages, the singular or plural form of a nou let relativeTimeFormat = new Intl.RelativeTimeFormat(); ``` - Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md#relativetimeformatinputoptions9). + Alternatively, use your own locale and formatting parameters to create a **RelativeTimeFormat** object. Formatting parameters are optional. For a full list of formatting parameters, see [RelativeTimeFormatInputOptions](../reference/apis/js-apis-intl.md#relativetimeformatinputoptions8). ```js let relativeTimeFormat = new Intl.RelativeTimeFormat("zh-CN", {numeric: "always", style: "long"}); -- GitLab From 3f62f27ffadcb94780da28a5d7b2aa40fa6458a2 Mon Sep 17 00:00:00 2001 From: Gloria Date: Tue, 17 Jan 2023 17:59:30 +0800 Subject: [PATCH 301/383] Update container APIs against multiple PRs Signed-off-by: wusongqing --- .../reference/apis/js-apis-arraylist.md | 53 +- .../reference/apis/js-apis-deque.md | 25 +- .../reference/apis/js-apis-hashmap.md | 32 +- .../reference/apis/js-apis-hashset.md | 21 +- .../reference/apis/js-apis-lightweightmap.md | 71 +- .../reference/apis/js-apis-lightweightset.md | 49 +- .../reference/apis/js-apis-linkedlist.md | 53 +- .../reference/apis/js-apis-list.md | 61 +- .../reference/apis/js-apis-plainarray.md | 57 +- .../reference/apis/js-apis-queue.md | 13 +- .../reference/apis/js-apis-stack.md | 17 +- .../reference/apis/js-apis-treemap.md | 47 +- .../reference/apis/js-apis-treeset.md | 33 +- .../reference/apis/js-apis-uri.md | 86 +- .../reference/apis/js-apis-url.md | 204 +- .../reference/apis/js-apis-util.md | 3071 +++++++++-------- .../reference/apis/js-apis-worker.md | 596 +++- .../reference/apis/js-apis-xml.md | 525 ++- .../reference/apis/js-apis-zlib.md | 45 +- 19 files changed, 2975 insertions(+), 2084 deletions(-) diff --git a/en/application-dev/reference/apis/js-apis-arraylist.md b/en/application-dev/reference/apis/js-apis-arraylist.md index f6334ff328..ebf538d3b5 100644 --- a/en/application-dev/reference/apis/js-apis-arraylist.md +++ b/en/application-dev/reference/apis/js-apis-arraylist.md @@ -1,7 +1,6 @@ # @ohos.util.ArrayList (Linear Container ArrayList) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **ArrayList** is a linear data structure that is implemented based on arrays. **ArrayList** can dynamically adjust the capacity based on project requirements. It increases the capacity by 50% each time. @@ -42,7 +41,7 @@ A constructor used to create an **ArrayList** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -77,7 +76,7 @@ Adds an element at the end of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -113,12 +112,12 @@ Inserts an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The insert method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -151,7 +150,7 @@ Checks whether this container has the specified element. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -188,7 +187,7 @@ Obtains the index of the first occurrence of the specified element in this conta **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -230,7 +229,7 @@ Obtains the index of the last occurrence of the specified element in this contai **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -272,12 +271,12 @@ Removes an element with the specified position from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The removeByIndex method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -313,7 +312,7 @@ Removes the first occurrence of the specified element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -347,12 +346,12 @@ Removes from this container all of the elements within a range, including the el **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The removeByRange method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of fromIndex or toIndex is out of range. | **Example** @@ -391,7 +390,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -426,7 +425,7 @@ Uses a callback to traverse the elements in this container and obtain their posi | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.| +| callbackFn | function | Yes| Callback invoked for the replacement.| | thisArg | Object | No| Value to use when the callback is invoked.| callbackfn @@ -439,7 +438,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -481,7 +480,7 @@ comparator **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -523,12 +522,12 @@ Obtains elements within a range in this container, including the element at the **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The subArrayList method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of fromIndex or toIndex is out of range. | **Example** @@ -553,7 +552,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -587,7 +586,7 @@ Clones this container and returns a copy. The modification to the copy does not **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -620,7 +619,7 @@ Obtains the capacity of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -653,7 +652,7 @@ Converts this container into an array. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -686,7 +685,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -719,7 +718,7 @@ Increases the capacity of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -747,7 +746,7 @@ Trims the capacity of this container to its current length. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -780,7 +779,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-deque.md b/en/application-dev/reference/apis/js-apis-deque.md index e295a1cf9c..d227b545aa 100644 --- a/en/application-dev/reference/apis/js-apis-deque.md +++ b/en/application-dev/reference/apis/js-apis-deque.md @@ -1,7 +1,6 @@ # @ohos.util.Deque (Linear Container Deque) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. Double-ended queue (deque) is a sequence container implemented based on the queue data structure that follows the principles of First In First Out (FIFO) and Last In First Out (LIFO). It allows insertion and removal of elements at both the ends. **Deque** can dynamically adjust the capacity based on project requirements. It doubles the capacity each time. **Deque** differs from **[Queue](js-apis-queue.md)** and **[Vector](js-apis-vector.md)** mainly in the following aspects: @@ -41,7 +40,7 @@ A constructor used to create a **Deque** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -69,7 +68,7 @@ Inserts an element at the front of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -104,7 +103,7 @@ Inserts an element at the end of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -145,7 +144,7 @@ Checks whether this container has the specified element. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -172,11 +171,11 @@ Removes the first element of this container. | Type| Description| | -------- | -------- | -| T | Element removed.| +| T | First element removed.| **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -206,11 +205,11 @@ Removes the last element of this container. | Type| Description| | -------- | -------- | -| T | Element removed.| +| T | Last element removed.| **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -254,7 +253,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -289,7 +288,7 @@ Obtains the first element of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -322,7 +321,7 @@ Obtains the last element of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -355,7 +354,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-hashmap.md b/en/application-dev/reference/apis/js-apis-hashmap.md index d8da0f628f..d39dbd1e66 100644 --- a/en/application-dev/reference/apis/js-apis-hashmap.md +++ b/en/application-dev/reference/apis/js-apis-hashmap.md @@ -1,7 +1,6 @@ # @ohos.util.HashMap (Nonlinear Container HashMap) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **HashMap** is a map implemented based on the array, linked list, and red-black tree. It provides efficient data query, insertion, and removal. The elements in a **HashMap** instance are mappings of key-value pairs. Each key must be unique and have only one value. @@ -43,7 +42,7 @@ A constructor used to create a **HashMap** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -72,7 +71,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -108,7 +107,7 @@ Checks whether this container contains the specified key. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -146,7 +145,7 @@ Checks whether this container contains the specified value. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -184,7 +183,7 @@ Obtains the value of the specified key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -216,7 +215,7 @@ Adds all elements in a **HashMap** instance to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -256,7 +255,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -292,7 +291,7 @@ Removes an element with the specified key from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -318,7 +317,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -350,7 +349,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -387,7 +386,7 @@ Obtains an iterator that contains all the values in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -431,7 +430,7 @@ Replaces an element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -470,7 +469,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -504,7 +503,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -542,14 +541,13 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The Symbol.iterator method cannot be bound. | **Example** - ```ts let hashMap = new HashMap(); hashMap.set("squirrel", 123); diff --git a/en/application-dev/reference/apis/js-apis-hashset.md b/en/application-dev/reference/apis/js-apis-hashset.md index 2c52b1268a..f2ece05248 100644 --- a/en/application-dev/reference/apis/js-apis-hashset.md +++ b/en/application-dev/reference/apis/js-apis-hashset.md @@ -1,7 +1,6 @@ # @ohos.util.HashSet (Nonlinear Container HashSet) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **HashSet** is implemented based on [HashMap](js-apis-hashmap.md). In **HashSet**, only the **value** object is processed. @@ -51,7 +50,7 @@ A constructor used to create a **HashSet** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -80,7 +79,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -116,7 +115,7 @@ Checks whether this container contains the specified element. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -154,7 +153,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -190,7 +189,7 @@ Removes an element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -216,7 +215,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -248,7 +247,7 @@ Obtains an iterator that contains all the values in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -293,7 +292,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -326,7 +325,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -364,7 +363,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-lightweightmap.md b/en/application-dev/reference/apis/js-apis-lightweightmap.md index 1e966a2b65..89893c1c97 100644 --- a/en/application-dev/reference/apis/js-apis-lightweightmap.md +++ b/en/application-dev/reference/apis/js-apis-lightweightmap.md @@ -1,12 +1,13 @@ # @ohos.util.LightWeightMap (Nonlinear Container LightWeightMap) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **LightWeightMap** stores key-value (KV) pairs. Each key must be unique and have only one value. -**LightWeightMap** is based on generics and uses a lightweight structure. Keys in the map are searched using hash values, which are stored in an array. +**LightWeightMap** is based on generics and uses a lightweight structure. Its default initial capacity is 8, and it has the capacity doubled in each expansion. + +The keys in such a set are searched using hash values, which are stored in an array. Compared with **[HashMap](js-apis-hashmap.md)**, which can also store KV pairs, **LightWeightMap** occupies less memory. @@ -44,7 +45,7 @@ A constructor used to create a **LightWeightMap** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -73,7 +74,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -109,7 +110,7 @@ Checks whether this container contains all elements of the specified **LightWeig **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -149,7 +150,7 @@ Checks whether this container contains the specified key. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -159,10 +160,8 @@ For details about the error codes, see [containers Error Codes](../errorcodes/er ```ts let lightWeightMap = new LightWeightMap(); -let result = lightWeightMap.hasKey; -lightWeightMap.hasKey("squirrel"); lightWeightMap.set("squirrel", 123); -let result1 = lightWeightMap.hasKey("squirrel"); +let result = lightWeightMap.hasKey("squirrel"); ``` @@ -188,7 +187,7 @@ Checks whether this container contains the specified value. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -214,7 +213,7 @@ Increases the capacity of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -256,7 +255,7 @@ Obtains the value of the specified key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -294,7 +293,7 @@ Obtains the index of the first occurrence of an element with the specified key i **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -332,7 +331,7 @@ Obtains the index of the first occurrence of an element with the specified value **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -370,12 +369,12 @@ Obtains the key of an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The getKeyAt method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -403,7 +402,7 @@ Adds all elements in a **LightWeightMap** instance to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -416,7 +415,7 @@ let lightWeightMap = new LightWeightMap(); lightWeightMap.set("squirrel", 123); lightWeightMap.set("sparrow", 356); let map = new LightWeightMap(); -lightWeightMap.setAll(map); +map.setAll(lightWeightMap); // Add all elements in lightWeightMap to the map. ``` @@ -442,7 +441,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -478,7 +477,7 @@ Removes an element with the specified key from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -516,7 +515,7 @@ Removes an element at the specified position from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -555,12 +554,12 @@ Sets a value for an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The setValueAt method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -594,12 +593,12 @@ Obtains the value of an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The getValueAt method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -621,7 +620,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -653,7 +652,7 @@ Obtains an iterator that contains all the keys in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -690,7 +689,7 @@ Obtains an iterator that contains all the values in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -735,7 +734,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -769,7 +768,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -800,13 +799,13 @@ Concatenates the elements in this container into a string and returns the string **Return value** -| Type| Description| -| -------- | -------- | -| String | String obtained.| + | Type| Description| + | -------- | -------- | + | String | String obtained.| **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -818,7 +817,7 @@ For details about the error codes, see [containers Error Codes](../errorcodes/er let lightWeightMap = new LightWeightMap(); lightWeightMap.set("squirrel", 123); lightWeightMap.set("sparrow", 356); -let iter = lightWeightMap.toString(); +let result = lightWeightMap.toString(); ``` ### [Symbol.iterator] @@ -837,7 +836,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-lightweightset.md b/en/application-dev/reference/apis/js-apis-lightweightset.md index 0953c12b1a..25c7950dc4 100644 --- a/en/application-dev/reference/apis/js-apis-lightweightset.md +++ b/en/application-dev/reference/apis/js-apis-lightweightset.md @@ -1,7 +1,6 @@ # @ohos.util.LightWeightSet (Nonlinear Container LightWeightSet) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **LightWeightSet** stores a set of values, each of which must be unique. @@ -44,7 +43,7 @@ A constructor used to create a **LightWeightSet** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -73,7 +72,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -108,7 +107,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -138,7 +137,7 @@ Adds all elements in a **LightWeightSet** instance to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -178,7 +177,7 @@ Checks whether this container contains all elements of the specified **LightWeig **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -218,7 +217,7 @@ Checks whether this container has the specified key. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -246,7 +245,7 @@ Checks whether this container contains objects of the same type as the specified | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| obj | Object | Yes| Object to be used for comparison.| +| obj | Object | Yes| **LightWeightSet** instance to be used for comparison.| **Return value** @@ -256,7 +255,7 @@ Checks whether this container contains objects of the same type as the specified **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -289,12 +288,12 @@ Increases the capacity of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The increaseCapacityTo method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of minimumCapacity is out of range. | **Example** @@ -326,7 +325,7 @@ Obtains the position index of the element with the specified key in this contain **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -364,7 +363,7 @@ Removes an element of the specified key from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -402,7 +401,7 @@ Removes the element at the specified position from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -440,7 +439,7 @@ Obtains the value of the element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -466,7 +465,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -496,14 +495,6 @@ Obtains a string that contains all elements in this container. | -------- | -------- | | String | String obtained.| -**Error codes** - -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). - -| ID| Error Message| -| -------- | -------- | -| 10200011 | The toString method cannot be bound. | - **Example** ```ts @@ -530,7 +521,7 @@ Obtains an array that contains all objects in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -562,7 +553,7 @@ Obtains an iterator that contains all the values in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -607,7 +598,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -641,7 +632,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -678,7 +669,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-linkedlist.md b/en/application-dev/reference/apis/js-apis-linkedlist.md index 1eda96e120..0e745d749c 100644 --- a/en/application-dev/reference/apis/js-apis-linkedlist.md +++ b/en/application-dev/reference/apis/js-apis-linkedlist.md @@ -1,14 +1,13 @@ # @ohos.util.LinkedList (Linear Container LinkedList) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **LinkedList** is implemented based on the doubly linked list. Each node of the doubly linked list has references pointing to the previous element and the next element. When querying an element, the system traverses the list from the beginning or end. **LinkedList** offers efficient insertion and removal operations but supports low query efficiency. **LinkedList** allows null elements. Unlike **[List](js-apis-list.md)**, which is a singly linked list, **LinkedList** is a doubly linked list that supports insertion and removal at both ends. -**LinkedList** is less efficient in data access than **[ArrayList](js-apis-arraylist.md)**. +**LinkedList** is more efficient in data insertion than **[ArrayList](js-apis-arraylist.md)**, but less efficient in data access. **Recommended use case**: Use **LinkedList** for frequent insertion and removal operations. @@ -42,7 +41,7 @@ A constructor used to create a **LinkedList** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -78,7 +77,7 @@ Adds an element at the end of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -113,7 +112,7 @@ Adds an element at the top of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -149,12 +148,12 @@ Inserts an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The insert method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -187,7 +186,7 @@ Checks whether this container has the specified element. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -224,7 +223,7 @@ Obtains an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -266,7 +265,7 @@ Obtains the index of the last occurrence of the specified element in this contai **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -308,7 +307,7 @@ Obtains the index of the first occurrence of the specified element in this conta **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -350,12 +349,12 @@ Removes an element at the specified position from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The removeByIndex method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -385,7 +384,7 @@ Removes the first element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -420,7 +419,7 @@ Removes the last element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -461,7 +460,7 @@ Removes the first occurrence of the specified element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -500,7 +499,7 @@ Removes the first occurrence of the specified element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -540,7 +539,7 @@ Removes the last occurrence of the specified element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -574,7 +573,7 @@ Clones this container and returns a copy. The modification to the copy does not **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -617,7 +616,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -646,7 +645,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -686,12 +685,12 @@ Replaces an element at the specified position in this container with a given ele **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The set method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -720,7 +719,7 @@ Converts this container into an array. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -752,7 +751,7 @@ Obtains the first element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -785,7 +784,7 @@ Obtains the last element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -818,7 +817,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-list.md b/en/application-dev/reference/apis/js-apis-list.md index 2c657bc202..bd1272f3a7 100644 --- a/en/application-dev/reference/apis/js-apis-list.md +++ b/en/application-dev/reference/apis/js-apis-list.md @@ -1,7 +1,6 @@ # @ohos.util.List (Linear Container List) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **List** is implemented based on the singly linked list. Each node has a reference pointing to the next element. When querying an element, the system traverses the list from the beginning. **List** offers efficient insertion and removal operations but supports low query efficiency. **List** allows null elements. @@ -16,7 +15,7 @@ This topic uses the following to identify the use of generics: ## Modules to Import ```ts -import List from '@ohos.util.List'; +import List from '@ohos.util.List'; ``` @@ -26,7 +25,7 @@ import List from '@ohos.util.List'; **System capability**: SystemCapability.Utils.Lang -| Name| Type | Readable| Writable| Description| +| Name| Type| Readable| Writable| Description| | -------- | -------- | -------- | -------- | -------- | | length | number | Yes| No| Number of elements in a list (called container later).| @@ -41,7 +40,7 @@ A constructor used to create a **List** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -76,7 +75,7 @@ Adds an element at the end of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -112,12 +111,12 @@ Inserts an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The insert method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -150,7 +149,7 @@ Checks whether this container has the specified element. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -187,7 +186,7 @@ Obtains the element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -229,7 +228,7 @@ Obtains the index of the last occurrence of the specified element in this contai **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -271,7 +270,7 @@ Obtains the index of the first occurrence of the specified element in this conta **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -314,7 +313,7 @@ Compares whether a specified object is equal to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -359,12 +358,12 @@ Removes an element at the specified position from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The removeByIndex method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -400,7 +399,7 @@ Removes the first occurrence of the specified element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -443,7 +442,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -478,7 +477,7 @@ Uses a callback to traverse the elements in this container and obtain their posi | Name| Value Type | Mandatory| Description| | -------- | -------- | -------- | -------- | -| callbackFn | function | Yes| Callback invoked to traverse the elements in the container.| +| callbackFn | function | Yes| Callback invoked for the replacement.| | thisArg | Object | No| Value to use when the callback is invoked.| callbackfn @@ -491,7 +490,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -533,7 +532,7 @@ comparator **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -547,8 +546,8 @@ list.add(2); list.add(4); list.add(5); list.add(4); -list.sort((a: number, b: number) => a - b); -list.sort((a: number, b: number) => b - a); +list.sort((a: number, b: number) => a - b); // The elements are sorted in ascending order. +list.sort((a: number, b: number) => b - a); // The elements are sorted in descending order. ``` ### getSubList @@ -574,12 +573,12 @@ Obtains elements within a range in this container, including the element at the **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The getSubList method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of fromIndex or toIndex is out of range. | **Example** @@ -604,7 +603,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -644,12 +643,12 @@ Replaces an element at the specified position in this container with a given ele **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The set method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -678,7 +677,7 @@ Converts this container into an array. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -711,7 +710,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -744,7 +743,7 @@ Obtains the first element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -777,7 +776,7 @@ Obtains the last element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -810,7 +809,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-plainarray.md b/en/application-dev/reference/apis/js-apis-plainarray.md index dfc0516698..8ccc7d7fb4 100644 --- a/en/application-dev/reference/apis/js-apis-plainarray.md +++ b/en/application-dev/reference/apis/js-apis-plainarray.md @@ -1,7 +1,6 @@ # @ohos.util.PlainArray (Nonlinear Container PlainArray) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **PlainArray** stores key-value (KV) pairs. Each key must be unique, be of the number type, and have only one value. @@ -21,6 +20,8 @@ This topic uses the following to identify the use of generics: import PlainArray from '@ohos.util.PlainArray'; ``` + + ## PlainArray ### Attributes @@ -42,7 +43,7 @@ A constructor used to create a **PlainArray** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -71,7 +72,7 @@ Checks whether this container is empty. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -107,7 +108,7 @@ Checks whether this container contains the specified key. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -145,7 +146,7 @@ Obtains the value of the specified key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -183,7 +184,7 @@ Obtains the index of the first occurrence of an element with the specified key i **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -221,7 +222,7 @@ Obtains the index of the first occurrence of an element with the specified value **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -259,7 +260,7 @@ Obtains the key of the element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -284,24 +285,24 @@ Obtains the value of an element at the specified position in this container. **Parameters** -| Name| Type | Mandatory| Description| -| -------- | -------- | -------- | -------- | -| index | number | Yes| Position index of the target element.| + | Name| Type | Mandatory| Description| + | -------- | -------- | -------- | -------- | + | index | number | Yes| Position index of the target element.| **Return value** -| Type| Description| -| -------- | -------- | -| T | Returns the value of the element if obtained; returns **undefined** otherwise.| + | Type| Description| + | -------- | -------- | + | T | Returns the value of the element if obtained; returns **undefined** otherwise.| **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The getValueAt method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -328,7 +329,7 @@ Clones this container and returns a copy. The modification to the copy does not **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -361,7 +362,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -397,7 +398,7 @@ Removes an element with the specified key from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -435,7 +436,7 @@ Removes an element at the specified position from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -474,12 +475,12 @@ Removes elements in a specified range from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The removeRangeFrom method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -508,12 +509,12 @@ Sets a value for an element at the specified position in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | | 10200011 | The setValueAt method cannot be bound. | -| 10200001 | The parameter value is out of range. | +| 10200001 | The value of index is out of range. | **Example** @@ -541,7 +542,7 @@ Obtains a string that contains all elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -567,7 +568,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -607,7 +608,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -641,7 +642,7 @@ Obtains an iterator object that contains key-value pairs, where the key is of th **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-queue.md b/en/application-dev/reference/apis/js-apis-queue.md index 57ce3f7b30..e4adf559e8 100644 --- a/en/application-dev/reference/apis/js-apis-queue.md +++ b/en/application-dev/reference/apis/js-apis-queue.md @@ -1,7 +1,6 @@ # @ohos.util.Queue (Linear Container Queue) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **Queue** follows the principle of First In First Out (FIFO). It supports insertion of elements at the end and removal from the front of the queue. **Queue** is implemented based on the queue data structure. @@ -41,7 +40,7 @@ A constructor used to create a **Queue** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -76,7 +75,7 @@ Adds an element at the end of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -110,7 +109,7 @@ Removes the first element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -144,7 +143,7 @@ Obtains the first element of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -187,7 +186,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -222,7 +221,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-stack.md b/en/application-dev/reference/apis/js-apis-stack.md index d7c5dcb66c..ff8551cad8 100644 --- a/en/application-dev/reference/apis/js-apis-stack.md +++ b/en/application-dev/reference/apis/js-apis-stack.md @@ -1,7 +1,6 @@ # @ohos.util.Stack (Linear Container Stack) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **Stack** is implemented based on the array data structure. It follows the principle Last Out First In (LOFI) and supports data insertion and removal at one end. @@ -40,7 +39,7 @@ A constructor used to create a **Stack** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -75,7 +74,7 @@ Adds an element at the top of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -109,7 +108,7 @@ Removes the top element from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -143,7 +142,7 @@ Obtains the top element of this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -182,7 +181,7 @@ Obtains the index of the first occurrence of the specified element in this conta **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -225,7 +224,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -260,7 +259,7 @@ Checks whether this container is empty (contains no elements). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -293,7 +292,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-treemap.md b/en/application-dev/reference/apis/js-apis-treemap.md index 573732b547..eb874f0abd 100644 --- a/en/application-dev/reference/apis/js-apis-treemap.md +++ b/en/application-dev/reference/apis/js-apis-treemap.md @@ -1,7 +1,6 @@ # @ohos.util.TreeMap (Nonlinear Container TreeMap) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **TreeMap** stores key-value (KV) pairs. Each key must be unique and have only one value. @@ -49,7 +48,7 @@ A constructor used to create a **TreeMap** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -78,7 +77,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -114,7 +113,7 @@ Checks whether this container has the specified key. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -152,7 +151,7 @@ Checks whether this container has the specified value. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -190,7 +189,7 @@ Obtains the value of the specified key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -222,7 +221,7 @@ Obtains the first key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -254,7 +253,7 @@ Obtains the last key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -282,11 +281,11 @@ Adds all elements in a **TreeMap** instance to this container. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| map | TreeMap | Yes| **TreeMap** instance whose elements are to be added to the current container.| +| map | TreeMap | Yes| **TreeMap** object to be added to the container.| **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -299,7 +298,11 @@ let treeMap = new TreeMap(); treeMap.set("squirrel", 123); treeMap.set("sparrow", 356); let map = new TreeMap(); -treeMap.setAll(map); +map.set("demo", 12); +map.setAll(treeMap); // Add all elements in the treeMap to the map. +map.forEach((value, key) => { + console.log("test" + value, key); // Print result: 12 demo, 356 sparrow, and 123 squirrel +}) ``` @@ -326,7 +329,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -362,7 +365,7 @@ Removes the element with the specified key from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -400,7 +403,7 @@ Obtains the key that is placed in front of the input key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -439,7 +442,7 @@ Obtains the key that is placed next to the input key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -478,7 +481,7 @@ Replaces an element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -503,7 +506,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -535,7 +538,7 @@ Obtains an iterator that contains all the keys in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -572,7 +575,7 @@ Obtains an iterator that contains all the values in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -617,7 +620,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -651,7 +654,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -688,7 +691,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-treeset.md b/en/application-dev/reference/apis/js-apis-treeset.md index bc6f127245..4aaaac1861 100644 --- a/en/application-dev/reference/apis/js-apis-treeset.md +++ b/en/application-dev/reference/apis/js-apis-treeset.md @@ -1,7 +1,6 @@ # @ohos.util.TreeSet (Nonlinear Container TreeSet) > **NOTE** -> > The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version. **TreeSet** is implemented based on **[TreeMap](js-apis-treemap.md)**. In **TreeSet**, only **value** objects are processed. **TreeSet** can be used to store values, each of which must be unique. @@ -46,7 +45,7 @@ A constructor used to create a **TreeSet** instance. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -75,7 +74,7 @@ Checks whether this container is empty (contains no element). **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -111,7 +110,7 @@ Checks whether this container has the specified value. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -143,7 +142,7 @@ Obtains the value of the first element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -175,7 +174,7 @@ Obtains the value of the last element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -213,7 +212,7 @@ Adds an element to this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -249,7 +248,7 @@ Removes the element with the specified key from this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -287,7 +286,7 @@ Obtains the value that is placed in front of the input key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -326,7 +325,7 @@ Obtains the value that is placed next to the input key in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -359,7 +358,7 @@ Removes the first element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -391,7 +390,7 @@ Removes the last element in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -417,7 +416,7 @@ Clears this container and sets its length to **0**. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -449,7 +448,7 @@ Obtains an iterator that contains all the values in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -494,7 +493,7 @@ callbackfn **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -528,7 +527,7 @@ Obtains an iterator that contains all the elements in this container. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | @@ -566,7 +565,7 @@ Obtains an iterator, each item of which is a JavaScript object. **Error codes** -For details about the error codes, see [containers Error Codes](../errorcodes/errorcode-containers.md). +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). | ID| Error Message| | -------- | -------- | diff --git a/en/application-dev/reference/apis/js-apis-uri.md b/en/application-dev/reference/apis/js-apis-uri.md index 6bad7dde78..00bf516569 100644 --- a/en/application-dev/reference/apis/js-apis-uri.md +++ b/en/application-dev/reference/apis/js-apis-uri.md @@ -29,6 +29,70 @@ import uri from '@ohos.uri' | authority | string | Yes| No| Authority part in the URI.| | ssp | string | Yes| No| Scheme-specific part in the URI.| +### Naming Rules + +Naming format: + +A standard URI consists of the following parts: +[scheme:]scheme-specific-part[#fragment] +- Scheme: scheme component, which is mandatory. Example values: **http**, **https**, **ftp**, **datashare**, and **dataability**. +- scheme-specific-part: specific part of the URI decoding scheme. The value consists of [//][authority][path][?query]. Set this parameter as required. + - authority: decoding authority component of the URI. The value consists of [userinfo@]host[:port]. Set this parameter as required. + - userinfo: user information. Set this parameter as required. + - host: host name of the server. This parameter is mandatory when authority exists. + - port: port number of the server. Set this parameter as required. + - path: path information. Set this parameter as required. + - query: query component. Set this parameter as required. +- fragment: fragment component. Set this parameter as required. + +**Example URIs** + +```js +const result1 = new uri.URI("ftp://ftp.aaa.bbb.ccc/dddd/eee.txt"); +console.log(result1.host) // ftp.aaa.bbb.ccc +console.log(result1.fragment) // null +console.log(result1.path) // /dddd/eee.txt +console.log(result1.scheme) // ftp +console.log(result1.userInfo) // null +console.log(result1.port) // -1 +console.log(result1.query) // null + +const result2 = new uri.URI("gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles#fragment"); +console.log(result2.host) // spinaltap.micro.umn.edu +console.log(result2.fragment) // fragment +console.log(result2.path) // /dddd/eee.txt +console.log(result2.scheme) // ftp +console.log(result2.userInfo) // null +console.log(result2.port) //-1 +console.log(result2.query) // null + +const result3 = new uri.URI("datashare:///com.samples.datasharetest.DataShare/DB00/TBL00"); +console.log(result3.host) // null +console.log(result3.fragment) // null +console.log(result3.path) // /com.samples.datasharetest.DataShare/DB00/TBL00 +console.log(result3.scheme) // datashare +console.log(result3.userInfo) // null +console.log(result3.port) // -1 +console.log(result3.query) // null + +const result4 = new uri.URI("https://username:password@host:8080/directory/file?foo=1&bar=2#fragment"); +console.log(result4.host) // host +console.log(result4.fragment) // fragment +console.log(result4.path) // /directory/file +console.log(result4.scheme) // https +console.log(result4.userInfo) // username:password +console.log(result4.port) // 8080 +console.log(result4.query) // foo=1&bar=2 + +const result5 = new uri.URI("dataability:///com.example.DataAbility"); +console.log(result5.host) // null +console.log(result5.fragment) // null +console.log(result5.path) // /com.example.DataAbility: +console.log(result5.scheme) // dataability +console.log(result5.userInfo) // null +console.log(result5.port) // -1 +console.log(result5.query) // null +``` ### constructor @@ -44,6 +108,14 @@ A constructor used to create a URI instance. | -------- | -------- | -------- | -------- | | uri | string | Yes| Input object.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message| +| -------- | -------- | +| 10200002 | Invalid uri string. | + **Example** ```js @@ -79,14 +151,14 @@ result.toString() ### equals(deprecated) -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [equalsTo9+](#equalsto9) instead. - equals(other: URI): boolean Checks whether this URI is the same as another URI object. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [equalsTo9+](#equalsto9) instead. + **System capability**: SystemCapability.Utils.Lang **Parameters** @@ -105,7 +177,7 @@ Checks whether this URI is the same as another URI object. ```js const uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); -const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da#fragment'); +const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); uriInstance.equals(uriInstance1); ``` ### equalsTo9+ @@ -132,7 +204,7 @@ Checks whether this URI is the same as another URI object. ```js const uriInstance = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); -const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da#fragment'); +const uriInstance1 = new uri.URI('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); uriInstance.equalsTo(uriInstance1); ``` @@ -148,7 +220,7 @@ Checks whether this URI is an absolute URI (whether the scheme component is defi | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the URI is an absolute URI; returns **false** otherwise.| +| boolean | If the URI is an absolute URI, **true** is returned. Otherwise, **false** is returned.| **Example** diff --git a/en/application-dev/reference/apis/js-apis-url.md b/en/application-dev/reference/apis/js-apis-url.md index 442c62ee76..8a972e121d 100755 --- a/en/application-dev/reference/apis/js-apis-url.md +++ b/en/application-dev/reference/apis/js-apis-url.md @@ -11,7 +11,6 @@ import Url from '@ohos.url' ``` ## URLParams9+ - ### constructor9+ constructor(init?: string[][] | Record<string, string> | string | URLSearchParams) @@ -32,7 +31,7 @@ A constructor used to create a **URLParams** instance. let objectParams = new Url.URLParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]); let objectParams1 = new Url.URLParams({"fod" : '1' , "bard" : '2'}); let objectParams2 = new Url.URLParams('?fod=1&bard=2'); -let urlObject = new Url.URL('https://developer.mozilla.org/?fod=1&bard=2'); +let urlObject = Url.URL.parseURL('https://developer.mozilla.org/?fod=1&bard=2'); let params = new Url.URLParams(urlObject.search); ``` @@ -55,7 +54,7 @@ Appends a key-value pair into the query string. **Example** ```js -let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); +let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); let paramsObject = new Url.URLParams(urlObject.search.slice(1)); paramsObject.append('fod', '3'); ``` @@ -78,9 +77,9 @@ Deletes key-value pairs of the specified key. **Example** ```js -let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); -let paramsobject = new Url.URLParams(urlObject.search.slice(1)); -paramsobject.delete('fod'); +let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); +let paramsObject = new Url.URLParams(urlObject.search.slice(1)); +paramsObject.delete('fod'); ``` @@ -88,7 +87,7 @@ paramsobject.delete('fod'); getAll(name: string): string[] -Obtains all the key-value pairs based on the specified key. +Obtains all the key-value pairs based on the specified name. **System capability**: SystemCapability.Utils.Lang @@ -102,12 +101,12 @@ Obtains all the key-value pairs based on the specified key. | Type| Description| | -------- | -------- | -| string[] | All key-value pairs matching the specified key.| +| string[] | Key-value pairs obtained.| **Example** ```js -let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); +let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); let params = new Url.URLParams(urlObject.search.slice(1)); params.append('fod', '3'); // Add a second value for the fod parameter. console.log(params.getAll('fod').toString()) // Output ["1","3"]. @@ -132,7 +131,7 @@ Obtains an ES6 iterator. Each item of the iterator is a JavaScript array, and th ```js let searchParamsObject = new Url.URLParams("keyName1=valueName1&keyName2=valueName2"); -for (var pair of searchParamsObject .entries()) { // Show keyName/valueName pairs +for (var pair of searchParamsObject.entries()) { // Show keyName/valueName pairs console.log(pair[0]+ ', '+ pair[1]); } ``` @@ -164,9 +163,9 @@ Traverses the key-value pairs in the **URLSearchParams** instance by using a cal **Example** ```js -const myURLObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); -myURLObject.searchParams.forEach((value, name, searchParams) => { - console.log(name, value, myURLObject.searchParams === searchParams); +const myURLObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); +myURLObject.params.forEach((value, name, searchParams) => { + console.log(name, value, myURLObject.params === searchParams); }); ``` @@ -224,7 +223,7 @@ Checks whether a key has a value. **Example** ```js -let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); +let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); let paramsObject = new Url.URLParams(urlObject.search.slice(1)); paramsObject.has('bard') === true; ``` @@ -248,7 +247,7 @@ Sets the value for a key. If key-value pairs matching the specified key exist, t **Example** ```js -let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); +let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); let paramsObject = new Url.URLParams(urlObject.search.slice(1)); paramsObject.set('baz', '3'); // Add a third parameter. ``` @@ -360,7 +359,7 @@ Obtains search parameters that are serialized as a string and, if necessary, per **Example** ```js -let url = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); +let url = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2'); let params = new Url.URLParams(url.search.slice(1)); params.append('fod', '3'); console.log(params.toString()); @@ -384,20 +383,20 @@ console.log(params.toString()); | port | string | Yes| Yes| Port in a URL.| | protocol | string | Yes| Yes| Protocol in a URL.| | search | string | Yes| Yes| Serialized query string in a URL.| -| searchParams | URLSearchParams | Yes| No| **URLSearchParams** object allowing access to the query parameters in a URL.| -| URLParams | URLParams | Yes| No| **URLParams** object allowing access to the query parameters in a URL.| +| searchParams(deprecated) | [URLSearchParams](#urlsearchparamsdeprecated) | Yes| No| **URLSearchParams** object allowing access to the query parameters in a URL.
        - **NOTE**: This attribute is supported since API version 7 and is deprecated since API version 9. You are advised to use params9+ instead.| +| params9+ | [URLParams](#urlparams9) | Yes| No| **URLParams** object allowing access to the query parameters in a URL.| | username | string | Yes| Yes| Username in a URL.| ### constructor(deprecated) -constructor(url: string, base?: string | URL) - -Creates a URL. - > **NOTE** > > This API is supported since API version 7 and deprecated since API version 9. You are advised to use [parseURL9+](#parseurl9) instead. +constructor(url: string, base?: string | URL) + +Creates a URL. + **System capability**: SystemCapability.Utils.Lang **Parameters** @@ -410,13 +409,13 @@ Creates a URL. **Example** ```js -let mm = 'http://username:password@host:8080'; -let a = new Url.URL("/", mm); // Output 'http://username:password@host:8080/'; -let b = new Url.URL(mm); // Output 'http://username:password@host:8080/'; -new Url.URL('path/path1', b); // Output 'http://username:password@host:8080/path/path1'; -let c = new Url.URL('/path/path1', b); // Output 'http://username:password@host:8080/path/path1'; -new Url.URL('/path/path1', c); // Output 'http://username:password@host:8080/path/path1'; -new Url.URL('/path/path1', a); // Output 'http://username:password@host:8080/path/path1'; +let mm = 'https://username:password@host:8080'; +let a = new Url.URL("/", mm); // Output 'https://username:password@host:8080/'; +let b = new Url.URL(mm); // Output 'https://username:password@host:8080/'; +new Url.URL('path/path1', b); // Output 'https://username:password@host:8080/path/path1'; +let c = new Url.URL('/path/path1', b); // Output 'https://username:password@host:8080/path/path1'; +new Url.URL('/path/path1', c); // Output 'https://username:password@host:8080/path/path1'; +new Url.URL('/path/path1', a); // Output 'https://username:password@host:8080/path/path1'; new Url.URL('/path/path1', "https://www.exampleUrl/fr-FR/toto"); // Output https://www.exampleUrl/path/path1 new Url.URL('/path/path1', ''); // Raises a TypeError exception as '' is not a valid URL new Url.URL('/path/path1'); // Raises a TypeError exception as '/path/path1' is not a valid URL @@ -424,8 +423,16 @@ new Url.URL('https://www.example.com', ); // Output https://www.example.com/ new Url.URL('https://www.example.com', b); // Output https://www.example.com/ ``` -### parseURL9+ +### constructor9+ + +constructor() + +A no-argument constructor used to create a URL. It returns a **URL** object after **parseURL** is called. It is not used independently. + +**System capability**: SystemCapability.Utils.Lang +### parseURL9+ + static parseURL(url : string, base?: string | URL): URL Parses a URL. @@ -447,11 +454,13 @@ For details about the error codes, see [Utils Error Codes](../errorcodes/errorco | -------- | -------- | | 10200002 | Invalid url string. | + **Example** ```js -let mm = 'http://username:password@host:8080'; -Url.URL.parseURL(mm); // Output 'http://username:password@host:8080/'; +let mm = 'https://username:password@host:8080'; +let url = Url.URL.parseURL(mm); +url.toString(); // Output 'https://username:password@host:8080/'; ``` ### tostring @@ -471,11 +480,10 @@ Converts the parsed URL into a string. **Example** ```js -const url = new Url.URL('http://username:password@host:8080/directory/file?query=pppppp#qwer=da'); +const url = Url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); url.toString(); ``` - ### toJSON toJSON(): string @@ -492,7 +500,7 @@ Converts the parsed URL into a JSON string. **Example** ```js -const url = new Url.URL('http://username:password@host:8080/directory/file?query=pppppp#qwer=da'); +const url = Url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); url.toJSON(); ``` @@ -634,7 +642,7 @@ Obtains an ES6 iterator. Each item of the iterator is a JavaScript array, and th ```js let searchParamsObject = new Url.URLSearchParams("keyName1=valueName1&keyName2=valueName2"); -for (var pair of searchParamsObject .entries()) { // Show keyName/valueName pairs +for (var pair of searchParamsObject.entries()) { // Show keyName/valueName pairs console.log(pair[0]+ ', '+ pair[1]); } ``` @@ -657,7 +665,7 @@ Traverses the key-value pairs in the **URLSearchParams** instance by using a cal | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | | callbackFn | function | Yes| Callback invoked to traverse the key-value pairs in the **URLSearchParams** instance.| -| thisArg | Object | No| Value to use when **callbackFn** is invoked.| +| thisArg | Object | No| Value of **this** to use when **callbackFn** is invoked.| **Table 1** callbackFn parameter description @@ -902,126 +910,4 @@ let params = new Url.URLSearchParams(url.search.slice(1)); params.append('fod', '3'); console.log(params.toString()); ``` - -## URL - -### Attributes - -**System capability**: SystemCapability.Utils.Lang - -| Name| Type| Readable| Writable| Description| -| -------- | -------- | -------- | -------- | -------- | -| hash | string | Yes| Yes| String that contains a harsh mark (#) followed by the fragment identifier of a URL.| -| host | string | Yes| Yes| Host information in a URL.| -| hostname | string | Yes| Yes| Hostname (without the port) in a URL.| -| href | string | Yes| Yes| String that contains the whole URL.| -| origin | string | Yes| No| Read-only string that contains the Unicode serialization of the origin of the represented URL.| -| password | string | Yes| Yes| Password in a URL.| -| pathname | string | Yes| Yes| Path in a URL.| -| port | string | Yes| Yes| Port in a URL.| -| protocol | string | Yes| Yes| Protocol in a URL.| -| search | string | Yes| Yes| Serialized query string in a URL.| -| searchParams | URLSearchParams | Yes| No| **URLSearchParams** object allowing access to the query parameters in a URL.| -| URLParams | URLParams | Yes| No| **URLParams** object allowing access to the query parameters in a URL.| -| username | string | Yes| Yes| Username in a URL.| - -### constructor(deprecated) - -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [parseURL9+](#parseurl9) instead. - -constructor(url: string, base?: string | URL) - -Creates a URL. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| url | string | Yes| Input object.| -| base | string \| URL | No| Input parameter, which can be any of the following:
        - **string**: string
        - **URL**: string or object| - -**Example** - -```js -let mm = 'https://username:password@host:8080'; -let a = new Url.URL("/", mm); // Output 'https://username:password@host:8080/'; -let b = new Url.URL(mm); // Output 'https://username:password@host:8080/'; -new Url.URL('path/path1', b); // Output 'https://username:password@host:8080/path/path1'; -let c = new Url.URL('/path/path1', b); // Output 'https://username:password@host:8080/path/path1'; -new Url.URL('/path/path1', c); // Output 'https://username:password@host:8080/path/path1'; -new Url.URL('/path/path1', a); // Output 'https://username:password@host:8080/path/path1'; -new Url.URL('/path/path1', "https://www.exampleUrl/fr-FR/toto"); // Output https://www.exampleUrl/path/path1 -new Url.URL('/path/path1', ''); // Raises a TypeError exception as '' is not a valid URL -new Url.URL('/path/path1'); // Raises a TypeError exception as '/path/path1' is not a valid URL -new Url.URL('https://www.example.com', ); // Output https://www.example.com/ -new Url.URL('https://www.example.com', b); // Output https://www.example.com/ -``` - -### parseURL9+ - -static parseURL(url : string, base?: string | URL): URL - -Parses a URL. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| url | string | Yes| Input object.| -| base | string \| URL | No| Input parameter, which can be any of the following:
        - **string**: string
        - **URL**: string or object| - -**Example** - -```js -let mm = 'https://username:password@host:8080'; -Url.URL.parseURL(mm); // Output 'https://username:password@host:8080/'; -``` - -### tostring - -toString(): string - -Converts the parsed URL into a string. - -**System capability**: SystemCapability.Utils.Lang - -**Return value** - -| Type| Description| -| -------- | -------- | -| string | Website address in a serialized string.| - -**Example** - -```js -const url = new Url.URL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); -url.toString(); -``` - - -### toJSON - -toJSON(): string - -Converts the parsed URL into a JSON string. - -**System capability**: SystemCapability.Utils.Lang - -**Return value** - -| Type| Description| -| -------- | -------- | -| string | Website address in a serialized string.| - -**Example** -```js -const url = new Url.URL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da'); -url.toJSON(); -``` diff --git a/en/application-dev/reference/apis/js-apis-util.md b/en/application-dev/reference/apis/js-apis-util.md index 09e3c24532..f4193680d4 100755 --- a/en/application-dev/reference/apis/js-apis-util.md +++ b/en/application-dev/reference/apis/js-apis-util.md @@ -1,4 +1,4 @@ -# @ohos.util (Utilities) +# @ohos.util (util) The **util** module provides common utility functions, such as **TextEncoder** and **TextDecoder** for string encoding and decoding, **RationalNumber** for rational number operations, **LruBuffer** for buffer management, **Scope** for range determination, **Base64** for Base64 encoding and decoding, and **Types** for checks of built-in object types. @@ -41,38 +41,6 @@ let res = util.format("%s", "hello world!"); console.log(res); ``` -## util.printf(deprecated) - -printf(format: string, ...args: Object[]): string - -Formats the specified values and inserts them into the string by replacing the wildcard in the string. - -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [util.format9+](#utilformat9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| format | string | Yes| String.| -| ...args | Object[] | No| Values to format. The formatted values will be replaced the wildcard in the string.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| string | String containing the formatted values.| - -**Example** - - ```js - let res = util.printf("%s", "hello world!"); - console.log(res); - ``` - ## util.errnoToString9+ errnoToString(errno: number): string @@ -96,43 +64,11 @@ Obtains detailed information about a system error code. **Example** ```js -let errnum = 10; // 10 is a system error code. +let errnum = -1; // -1 is a system error code. let result = util.errnoToString(errnum); console.log("result = " + result); ``` -## util.getErrorString(deprecated) - -getErrorString(errno: number): string - -Obtains detailed information about a system error code. - -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [util.errnoToString9+](#utilerrnotostring9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| errno | number | Yes| Error code generated.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| string | Detailed information about the error code.| - -**Example** - - ```js - let errnum = 10; // 10 is a system error code. - let result = util.getErrorString(errnum); - console.log("result = " + result); - ``` - ## util.callbackWrapper callbackWrapper(original: Function): (err: Object, value: Object )=>void @@ -203,30 +139,6 @@ Processes an asynchronous function and returns a promise. }) ``` -## util.promiseWrapper(deprecated) - -promiseWrapper(original: (err: Object, value: Object) => void): Object - -Processes an asynchronous function and returns a promise. - -> **NOTE** -> -> This API is unavailable. You are advised to use [util.promisify9+](#utilpromisify9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| original | Function | Yes| Asynchronous function.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise.| - ## util.randomUUID9+ randomUUID(entropyCache?: boolean): string @@ -314,6 +226,96 @@ Parses a UUID from a string, as described in RFC 4122 version 4. // 132,189,247,150,102,204,70,85,155,137,214,33,141,16,15,156 ``` +## util.printf(deprecated) + +printf(format: string, ...args: Object[]): string + +Formats the specified values and inserts them into the string by replacing the wildcard in the string. + +> **NOTE** +> +> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [util.format9+](#utilformat9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| format | string | Yes| String.| +| ...args | Object[] | No| Values to format. The formatted values will be replaced the wildcard in the string.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| string | String containing the formatted values.| + +**Example** + + ```js + let res = util.printf("%s", "hello world!"); + console.log(res); + ``` + + +## util.getErrorString(deprecated) + +getErrorString(errno: number): string + +Obtains detailed information about a system error code. + +> **NOTE** +> +> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [util.errnoToString9+](#utilerrnotostring9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| errno | number | Yes| Error code generated.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| string | Detailed information about the error code.| + +**Example** + + ```js + let errnum = -1; // -1 is a system error code. + let result = util.getErrorString(errnum); + console.log("result = " + result); + ``` + +## util.promiseWrapper(deprecated) + +promiseWrapper(original: (err: Object, value: Object) => void): Object + +Processes an asynchronous function and returns a promise. + +> **NOTE** +> +> This API is unavailable. You are advised to use [util.promisify9+](#utilpromisify9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| original | Function | Yes| Asynchronous function.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| Function | Function in the error-first style (that is, **(err, value) =>...** is called as the last parameter) and the promise.| + + ## TextDecoder ### Attributes @@ -336,7 +338,7 @@ A constructor used to create a **TextDecoder** object. ### create9+ -create(encoding?: string,options?: { fatal?: boolean; ignoreBOM?: boolean },): TextDecoder; +create(encoding?: string,options?: { fatal?: boolean; ignoreBOM?: boolean }): TextDecoder; Creates a **TextDecoder** object. It provides the same function as the deprecated argument constructor. @@ -363,41 +365,9 @@ let textDecoder = new util.TextDecoder() textDecoder.create('utf-8', { ignoreBOM : true }); ``` -### constructor(deprecated) - -constructor(encoding?: string, options?: { fatal?: boolean; ignoreBOM?: boolean },) - -A constructor used to create a **TextDecoder** object. - -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| encoding | string | No| Encoding format.| -| options | Object | No| Encoding-related options, which include **fatal** and **ignoreBOM**.| - - **Table 1** options - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| fatal | boolean | No| Whether to display fatal errors.| -| ignoreBOM | boolean | No| Whether to ignore the BOM.| - -**Example** - - ```js - let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true}); - ``` - -### decode +### decodeWithStream9+ -decode(input: Uint8Array, options?: { stream?: false }): string +decodeWithStream(input: Uint8Array, options?: { stream?: boolean }): string Decodes the input content. @@ -414,7 +384,7 @@ Decodes the input content. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| stream | boolean | No| Whether to allow data blocks in subsequent **decode()**. If data is processed in blocks, set this parameter to **true**. If this is the last data block to process or data is not divided into blocks, set this parameter to **false**. The default value is **false**.| +| stream | boolean | No| Whether to allow data blocks in subsequent **decodeWithStream()**. If data is processed in blocks, set this parameter to **true**. If this is the last data block to process or data is not divided into blocks, set this parameter to **false**. The default value is **false**.| **Return value** @@ -434,17 +404,52 @@ Decodes the input content. result[4] = 0x62; result[5] = 0x63; console.log("input num:"); - let retStr = textDecoder.decode( result , {stream: false}); + let retStr = textDecoder.decodeWithStream( result , {stream: false}); console.log("retStr = " + retStr); ``` +### constructor(deprecated) -### decodeWithStream9+ +constructor(encoding?: string, options?: { fatal?: boolean; ignoreBOM?: boolean }) -decodeWithStream(input: Uint8Array, options?: { stream?: boolean }): string +A constructor used to create a **TextDecoder** object. + +> **NOTE** +> +> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [create9+](#create9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| encoding | string | No| Encoding format.| +| options | Object | No| Encoding-related options, which include **fatal** and **ignoreBOM**.| + + **Table 1** options + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| fatal | boolean | No| Whether to display fatal errors.| +| ignoreBOM | boolean | No| Whether to ignore the BOM.| + +**Example** + + ```js + let textDecoder = new util.TextDecoder("utf-8",{ignoreBOM: true}); + ``` + +### decode(deprecated) + +decode(input: Uint8Array, options?: { stream?: false }): string Decodes the input content. +> **NOTE** +> +> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [decodeWithStream9+](#decodewithstream9) instead. + **System capability**: SystemCapability.Utils.Lang **Parameters** @@ -458,7 +463,7 @@ Decodes the input content. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| stream | boolean | No| Whether to allow data blocks in subsequent **decodeWithStream()**. If data is processed in blocks, set this parameter to **true**. If this is the last data block to process or data is not divided into blocks, set this parameter to **false**. The default value is **false**.| +| stream | boolean | No| Whether to allow data blocks in subsequent **decode()**. If data is processed in blocks, set this parameter to **true**. If this is the last data block to process or data is not divided into blocks, set this parameter to **false**. The default value is **false**.| **Return value** @@ -478,11 +483,10 @@ Decodes the input content. result[4] = 0x62; result[5] = 0x63; console.log("input num:"); - let retStr = textDecoder.decodeWithStream( result , {stream: false}); + let retStr = textDecoder.decode( result , {stream: false}); console.log("retStr = " + retStr); ``` - ## TextEncoder ### Attributes @@ -493,7 +497,6 @@ Decodes the input content. | -------- | -------- | -------- | -------- | -------- | | encoding | string | Yes| No| Encoding format. The default format is **utf-8**.| - ### constructor constructor() @@ -508,65 +511,53 @@ A constructor used to create a **TextEncoder** object. let textEncoder = new util.TextEncoder(); ``` -### encodeInto9+ +### constructor9+ -encodeInto(input?: string): Uint8Array +constructor(encoding?: string) -Encodes the input content. +A constructor used to create a **TextEncoder** object. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ------ | ---- | ------------------ | -| input | string | No | String to encode.| - -**Return value** - -| Type | Description | -| ---------- | ------------------ | -| Uint8Array | Encoded text.| +| Name| Type| Mandatory| Description| +| ----- | ---- | ---- | ---- | +| encoding | string | No| Encoding format.| **Example** ```js -let textEncoder = new util.TextEncoder(); -let buffer = new ArrayBuffer(20); -let result = new Uint8Array(buffer); -result = textEncoder.encodeInto("\uD800¥¥"); + let textEncoder = new util.TextEncoder("utf-8"); ``` -### encode(deprecated) +### encodeInto9+ -encode(input?: string): Uint8Array +encodeInto(input?: string): Uint8Array Encodes the input content. -> **NOTE** -> -> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [encodeInto9+](#encodeinto9) instead. - **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| input | string | No| String to encode.| +| Name| Type | Mandatory| Description | +| ------ | ------ | ---- | ------------------ | +| input | string | No | String to encode.| **Return value** -| Type| Description| -| -------- | -------- | +| Type | Description | +| ---------- | ------------------ | | Uint8Array | Encoded text.| **Example** + ```js - let textEncoder = new util.TextEncoder(); - let buffer = new ArrayBuffer(20); - let result = new Uint8Array(buffer); - result = textEncoder.encode("\uD800¥¥"); +let textEncoder = new util.TextEncoder(); +let buffer = new ArrayBuffer(20); +let result = new Uint8Array(buffer); +result = textEncoder.encodeInto("\uD800¥¥"); ``` ### encodeIntoUint8Array9+ @@ -597,7 +588,7 @@ let that = new util.TextEncoder() let buffer = new ArrayBuffer(4) let dest = new Uint8Array(buffer) let result = new Object() -result = that.encodeInto('abcd', dest) +result = that.encodeIntoUint8Array('abcd', dest) ``` ### encodeInto(deprecated) @@ -634,6 +625,38 @@ Stores the UTF-8 encoded text. result = that.encodeInto('abcd', dest) ``` +### encode(deprecated) + +encode(input?: string): Uint8Array + +Encodes the input content. + +> **NOTE** +> +> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [encodeInto9+](#encodeinto9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| input | string | No| String to encode.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| Uint8Array | Encoded text.| + +**Example** + ```js + let textEncoder = new util.TextEncoder(); + let buffer = new ArrayBuffer(20); + let result = new Uint8Array(buffer); + result = textEncoder.encode("\uD800¥¥"); + ``` + ## RationalNumber8+ ### constructor9+ @@ -671,31 +694,6 @@ Parses a rational number. Previously, this processing is an internal action of t let rationalNumber = util.RationalNumber.parseRationalNumber(1,2) ``` -### constructor(deprecated) - -constructor(numerator: number,denominator: number) - -A constructor used to create a **RationalNumber** object. - -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| numerator | number | Yes| Numerator, which is an integer.| -| denominator | number | Yes| Denominator, which is an integer.| - -**Example** - -```js -let rationalNumber = new util.RationalNumber(1,2); -``` - ### createRationalFromString8+ static createRationalFromString​(rationalString: string): RationalNumber​ @@ -751,38 +749,6 @@ let rational = util.RationalNumber.createRationalFromString("3/4"); let result = rationalNumber.compare(rational); ``` -### compareTo(deprecated) - -compareTo​(another: RationalNumber): number​ - -Compares this **RationalNumber** object with a given object. - -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [compare9+](#compare9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| another | RationalNumber | Yes| Object used to compare with this **RationalNumber** object.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| number | Returns **0** if the two objects are equal; returns **1** if the given object is less than this object; return **-1** if the given object is greater than this object.| - -**Example** - -```js -let rationalNumber = new util.RationalNumber(1,2); -let rational = util.RationalNumber.createRationalFromString("3/4"); -let result = rationalNumber.compareTo(rational); -``` - ### valueOf8+ valueOf(): number @@ -860,38 +826,6 @@ let rationalNumber = new util.RationalNumber(1,2); let result = util.RationalNumber.getCommonFactor(4,6); ``` -### getCommonDivisor(deprecated) - -static getCommonDivisor​(number1: number,number2: number): number - -Obtains the greatest common divisor of two specified integers. - -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCommonFactor9+](#getcommonfactor9) instead. - -**System capability**: SystemCapability.Utils.Lang - -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| number1 | number | Yes| The first integer used to get the greatest common divisor.| -| number2 | number | Yes| The second integer used to get the greatest common divisor.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| number | Greatest common divisor obtained.| - -**Example** - -```js -let rationalNumber = new util.RationalNumber(1,2); -let result = util.RationalNumber.getCommonDivisor(4,6); -``` - ### getNumerator8+ getNumerator​(): number @@ -1018,6 +952,94 @@ let rationalNumber = new util.RationalNumber(1,2); let result = rationalNumber.toString(); ``` +### constructor(deprecated) + +constructor(numerator: number,denominator: number) + +A constructor used to create a **RationalNumber** object. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| numerator | number | Yes| Numerator, which is an integer.| +| denominator | number | Yes| Denominator, which is an integer.| + +**Example** + +```js +let rationalNumber = new util.RationalNumber(1,2); +``` + +### compareTo(deprecated) + +compareTo​(another: RationalNumber): number​ + +Compares this **RationalNumber** object with a given object. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [compare9+](#compare9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| another | RationalNumber | Yes| Object used to compare with this **RationalNumber** object.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| number | Returns **0** if the two objects are equal; returns **1** if the given object is less than this object; return **-1** if the given object is greater than this object.| + +**Example** + +```js +let rationalNumber = new util.RationalNumber(1,2); +let rational = util.RationalNumber.createRationalFromString("3/4"); +let result = rationalNumber.compareTo(rational); +``` + +### getCommonDivisor(deprecated) + +static getCommonDivisor​(number1: number,number2: number): number + +Obtains the greatest common divisor of two specified integers. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCommonFactor9+](#getcommonfactor9) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| number1 | number | Yes| The first integer used to get the greatest common divisor.| +| number2 | number | Yes| The second integer used to get the greatest common divisor.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| number | Greatest common divisor obtained.| + +**Example** + +```js +let rationalNumber = new util.RationalNumber(1,2); +let result = util.RationalNumber.getCommonDivisor(4,6); +``` ## LRUCache9+ @@ -1464,7 +1486,7 @@ lru.afterRemoval(false,10,30,null); ### contains9+ -contains(key: object): boolean +contains(key: K): boolean Checks whether this cache contains the specified key. @@ -1474,7 +1496,7 @@ Checks whether this cache contains the specified key. | Name| Type | Mandatory| Description | | ------ | ------ | ---- | ---------------- | -| key | object | Yes | Key to check.| +| key | K | Yes | Key to check.| **Return value** @@ -1564,1026 +1586,1014 @@ pro.put(2,10); let result = pro[Symbol.iterator](); ``` -## LruBuffer(deprecated) - -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache9+](#lrucache9) instead. +## ScopeComparable8+ -### Attributes +The values of the **ScopeComparable** type are used to implement the **compareTo** method. Therefore, ensure that the input parameters are comparable. **System capability**: SystemCapability.Utils.Lang -| Name| Type| Readable| Writable| Description| -| -------- | -------- | -------- | -------- | -------- | -| length | number | Yes| No| Total number of values in this buffer.| +### compareTo8+ -**Example** +compareTo(other: ScopeComparable): boolean; - ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - pro.put(1,8); - let result = pro.length; - ``` +Compares two values and returns a Boolean value. -### constructor(deprecated) +**System capability**: SystemCapability.Utils.Lang -constructor(capacity?: number) +**Parameters** -A constructor used to create a **LruBuffer** instance. The default capacity of the buffer is 64. +| Name| Type| Mandatory| Description | +| ------ | ---- | ---- | -------------- | +| other | [ScopeComparable](#scopecomparable8) | Yes | The other value to be compared with the current value.| -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. +**Return value** -**System capability**: SystemCapability.Utils.Lang +| Type| Description | +| ---- | ------------------ | +| boolean | If the current value is greater than or equal to the input value, **true** is returned. Otherwise, **false** is returned.| -**Parameters** +**Example** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| capacity | number | No| Capacity of the **LruBuffer** to create.| +Create a class to implement the **compareTo** method. The **Temperature** class is used as an example in the following sample code. -**Example** +```js +class Temperature{ + constructor(value){ + // If TS is used for development, add the following code: + // private readonly _temp: Temperature; + this._temp = value; + } + compareTo(value){ + return this._temp >= value.getTemp(); + } + getTemp(){ + return this._temp; + } + toString(){ + return this._temp.toString(); + } +} +``` - ```js - let lrubuffer= new util.LruBuffer(); - ``` +## ScopeType8+ -### updateCapacity(deprecated) +Defines the type of values in a **Scope** object. -updateCapacity(newCapacity: number): void +**System capability**: SystemCapability.Utils.Lang -Changes the **LruBuffer** capacity. If the new capacity is less than or equal to **0**, an exception will be thrown. +| Type| Description| +| -------- | -------- | +| number | The value type is a number.| +| [ScopeComparable](#scopecomparable8) | The value type is ScopeComparable.| -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [updateCapacity9+](#updatecapacity9) instead. +## ScopeHelper9+ + +### constructor9+ + +constructor(lowerObj: ScopeType, upperObj: ScopeType) + +A constructor used to create a **ScopeHelper** object with the specified upper and lower limits. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| newCapacity | number | Yes| New capacity of the **LruBuffer**.| +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | ---------------------- | +| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit of the **Scope** object.| +| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit of the **Scope** object.| **Example** ```js - let pro = new util.LruBuffer(); - let result = pro.updateCapacity(100); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let range = new util.ScopeHelper(tempLower, tempUpper); ``` -### toString(deprecated) -toString(): string +### toString9+ -Obtains the string representation of this **LruBuffer** object. +toString(): string -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [toString9+](#tostring9) instead. +Obtains a string representation that contains this **Scope**. **System capability**: SystemCapability.Utils.Lang **Return value** -| Type| Description| -| -------- | -------- | -| string | String representation of this **LruBuffer** object.| +| Type | Description | +| ------ | -------------------------------------- | +| string | String representation containing the **Scope**.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - pro.get(2); - pro.remove(20); - let result = pro.toString(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.toString(); ``` -### getCapacity(deprecated) -getCapacity(): number +### intersect9+ -Obtains the capacity of this buffer. +intersect(range: ScopeHelper): ScopeHelper -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCapacity9+](#getcapacity9) instead. +Obtains the intersection of this **Scope** and the given **Scope**. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ---------------------------- | ---- | ------------------ | +| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.| + **Return value** -| Type| Description| -| -------- | -------- | -| number | Capacity of this buffer.| +| Type | Description | +| ------------------------------ | ------------------------------ | +| [ScopeHelper9+](#scopehelper9) | Intersection of this **Scope** and the given **Scope**.| **Example** + ```js - let pro = new util.LruBuffer(); - let result = pro.getCapacity(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let range = new util.ScopeHelper(tempLower, tempUpper); +let tempMiDF = new Temperature(35); +let tempMidS = new Temperature(39); +let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS); +range.intersect(rangeFir); ``` -### clear(deprecated) -clear(): void +### intersect9+ -Clears key-value pairs from this buffer. The **afterRemoval()** method will be called to perform subsequent operations. +intersect(lowerObj:ScopeType,upperObj:ScopeType):ScopeHelper -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [clear9+](#clear9) instead. +Obtains the intersection of this **Scope** and the given lower and upper limits. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | ---------------- | +| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit.| +| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit.| + +**Return value** + +| Type | Description | +| ---------------------------- | ---------------------------------------- | +| [ScopeHelper](#scopehelper9) | Intersection of this **Scope** and the given lower and upper limits.| + **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.length; - pro.clear(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let tempMiDF = new Temperature(35); +let tempMidS = new Temperature(39); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.intersect(tempMiDF, tempMidS); ``` -### getCreateCount(deprecated) -getCreateCount(): number +### getUpper9+ -Obtains the number of return values for **createDefault()**. +getUpper(): ScopeType -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCreateCount9+](#getcreatecount9) instead. +Obtains the upper limit of this **Scope**. **System capability**: SystemCapability.Utils.Lang **Return value** -| Type| Description| -| -------- | -------- | -| number | Number of return values for **createDefault()**.| +| Type | Description | +| ------------------------ | ---------------------- | +| [ScopeType](#scopetype8) | Upper limit of this **Scope**.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(1,8); - let result = pro.getCreateCount(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.getUpper(); ``` -### getMissCount(deprecated) -getMissCount(): number +### getLower9+ -Obtains the number of times that the queried values are mismatched. +getLower(): ScopeType -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getMissCount9+](#getmisscount9) instead. +Obtains the lower limit of this **Scope**. **System capability**: SystemCapability.Utils.Lang **Return value** -| Type| Description| -| -------- | -------- | -| number | Number of times that the queried values are mismatched.| +| Type | Description | +| ------------------------ | ---------------------- | +| [ScopeType](#scopetype8) | Lower limit of this **Scope**.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - pro.get(2); - let result = pro.getMissCount(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.getLower(); ``` -### getRemovalCount(deprecated) -getRemovalCount(): number +### expand9+ -Obtains the number of removals from this buffer. +expand(lowerObj: ScopeType,upperObj: ScopeType): ScopeHelper -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getRemovalCount9+](#getremovalcount9) instead. +Obtains the union set of this **Scope** and the given lower and upper limits. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------------------ | ---- | ---------------- | +| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit.| +| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit.| + **Return value** -| Type| Description| -| -------- | -------- | -| number | Number of removals from the buffer.| +| Type | Description | +| ---------------------------- | ------------------------------------ | +| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given lower and upper limits.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - pro.updateCapacity(2); - pro.put(50,22); - let result = pro.getRemovalCount(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let tempMiDF = new Temperature(35); +let tempMidS = new Temperature(39); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.expand(tempMiDF, tempMidS); ``` -### getMatchCount(deprecated) -getMatchCount(): number +### expand9+ -Obtains the number of times that the queried values are matched. +expand(range: ScopeHelper): ScopeHelper -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getMatchCount9+](#getmatchcount9) instead. +Obtains the union set of this **Scope** and the given **Scope**. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ---------------------------- | ---- | ------------------ | +| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.| + **Return value** -| Type| Description| -| -------- | -------- | -| number | Number of times that the queried values are matched.| +| Type | Description | +| ---------------------------- | ---------------------------------- | +| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given **Scope**.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - pro.get(2); - let result = pro.getMatchCount(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let tempMiDF = new Temperature(35); +let tempMidS = new Temperature(39); +let range = new util.ScopeHelper(tempLower, tempUpper); +let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS); +let result = range.expand(rangeFir); ``` -### getPutCount(deprecated) -getPutCount(): number +### expand9+ -Obtains the number of additions to this buffer. +expand(value: ScopeType): ScopeHelper -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getPutCount9+](#getputcount9) instead. +Obtains the union set of this **Scope** and the given value. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------------------ | ---- | ---------------- | +| value | [ScopeType](#scopetype8) | Yes | Value specified.| + **Return value** -| Type| Description| -| -------- | -------- | -| number | Number of additions to the buffer.| +| Type | Description | +| ---------------------------- | -------------------------------- | +| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given value.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.getPutCount(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let tempMiDF = new Temperature(35); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.expand(tempMiDF); ``` -### isEmpty(deprecated) -isEmpty(): boolean +### contains9+ -Checks whether this buffer is empty. +contains(value: ScopeType): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [isEmpty9+](#isempty9) instead. +Checks whether a value is within this **Scope**. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ------------------------ | ---- | ---------------- | +| value | [ScopeType](#scopetype8) | Yes | Value specified.| + **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the buffer does not contain any value.| +| Type | Description | +| ------- | --------------------------------------------------- | +| boolean | Returns **true** if the value is within this **Scope**; returns **false** otherwise.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.isEmpty(); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let tempMiDF = new Temperature(35); +let range = new util.ScopeHelper(tempLower, tempUpper); +range.contains(tempMiDF); ``` -### get(deprecated) -get(key: K): V | undefined +### contains9+ -Obtains the value of the specified key. +contains(range: ScopeHelper): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [get9+](#get9) instead. +Checks whether a range is within this **Scope**. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| key | K | Yes| Key based on which the value is queried.| +| Name| Type | Mandatory| Description | +| ------ | ---------------------------- | ---- | ------------------ | +| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.| **Return value** -| Type| Description| -| -------- | -------- | -| V \| undefined | Returns the value of the key if a match is found in the buffer; returns **undefined** otherwise.| +| Type | Description | +| ------- | ----------------------------------------------------- | +| boolean | Returns **true** if the range is within this **Scope**; returns **false** otherwise.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.get(2); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let range = new util.ScopeHelper(tempLower, tempUpper); +let tempLess = new Temperature(20); +let tempMore = new Temperature(45); +let rangeSec = new util.ScopeHelper(tempLess, tempMore); +let result = range.contains(rangeSec); ``` -### put(deprecated) -put(key: K,value: V): V +### clamp9+ -Adds a key-value pair to this buffer. +clamp(value: ScopeType): ScopeType -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [put9+](#put9) instead. +Limits a value to this **Scope**. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| key | K | Yes| Key of the key-value pair to add.| -| value | V | Yes| Value of the key-value pair to add.| +| Name| Type | Mandatory| Description | +| ------ | ------------------------ | ---- | -------------- | +| value | [ScopeType](#scopetype8) | Yes | Value specified.| **Return value** -| Type| Description| -| -------- | -------- | -| V | Returns the existing value if the key already exists; returns the value added otherwise. If the key or value is null, an exception will be thrown. | +| Type | Description | +| ------------------------ | ------------------------------------------------------------ | +| [ScopeType](#scopetype8) | Returns **lowerObj** if the specified value is less than the lower limit; returns **upperObj** if the specified value is greater than the upper limit; returns the specified value if it is within this **Scope**.| **Example** ```js - let pro = new util.LruBuffer(); - let result = pro.put(2,10); +let tempLower = new Temperature(30); +let tempUpper = new Temperature(40); +let tempMiDF = new Temperature(35); +let range = new util.ScopeHelper(tempLower, tempUpper); +let result = range.clamp(tempMiDF); ``` -### values(deprecated) +## Base64Helper9+ -values(): V[] +### constructor9+ -Obtains all values in this buffer, listed from the most to the least recently accessed. +constructor() -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [values9+](#values9) instead. +A constructor used to create a **Base64Helper** instance. **System capability**: SystemCapability.Utils.Lang +**Example** + + ```js +let base64 = new util.Base64Helper(); + ``` + +### encodeSync9+ + +encodeSync(src: Uint8Array): Uint8Array + +Encodes the input content. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ---------- | ---- | ------------------- | +| src | Uint8Array | Yes | Uint8Array to encode.| + **Return value** -| Type| Description| -| -------- | -------- | -| V [] | All values in the buffer, listed from the most to the least recently accessed.| +| Type | Description | +| ---------- | ----------------------------- | +| Uint8Array | Uint8Array encoded.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - pro.put(2,"anhu"); - pro.put("afaf","grfb"); - let result = pro.values(); +let that = new util.Base64Helper(); +let array = new Uint8Array([115,49,51]); +let result = that.encodeSync(array); ``` -### keys(deprecated) -keys(): K[] +### encodeToStringSync9+ -Obtains all keys in this buffer, listed from the most to the least recently accessed. +encodeToStringSync(src: Uint8Array): string -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [keys9+](#keys9) instead. +Encodes the input content. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | ---------- | ---- | ------------------- | +| src | Uint8Array | Yes | Uint8Array to encode.| + **Return value** -| Type| Description| -| -------- | -------- | -| K [] | All keys in the buffer, listed from the most to the least recently accessed.| +| Type | Description | +| ------ | -------------------- | +| string | String encoded from the Uint8Array.| **Example** - ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.keys(); + + ```js +let that = new util.Base64Helper(); +let array = new Uint8Array([115,49,51]); +let result = that.encodeToStringSync(array); ``` -### remove(deprecated) -remove(key: K): V | undefined +### decodeSync9+ -Removes the specified key and its value from this buffer. +decodeSync(src: Uint8Array | string): Uint8Array -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [remove9+](#remove9) instead. +Decodes the input content. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| key | K | Yes| Key to remove.| +| Name| Type | Mandatory| Description | +| ------ | ------------------------------ | ---- | ----------------------------- | +| src | Uint8Array \| string | Yes | Uint8Array or string to decode.| **Return value** -| Type| Description| -| -------- | -------- | -| V \| undefined | Returns an **Optional** object containing the removed key-value pair if the key exists in the buffer; returns an empty **Optional** object otherwise. If the key is null, an exception will be thrown.| +| Type | Description | +| ---------- | ----------------------------- | +| Uint8Array | Uint8Array decoded.| **Example** + ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.remove(20); +let that = new util.Base64Helper(); +let buff = 'czEz'; +let result = that.decodeSync(buff); ``` -### afterRemoval(deprecated) -afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void +### encode9+ -Performs subsequent operations after a value is removed. +encode(src: Uint8Array): Promise<Uint8Array> -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [afterRemoval9+](#afterremoval9) instead. +Encodes the input content asynchronously. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| isEvict | boolean | Yes| Whether the buffer capacity is insufficient. If the value is **true**, this method is called due to insufficient capacity.| -| key | K | Yes| Key removed.| -| value | V | Yes| Value removed.| -| newValue | V | Yes| New value for the key if the **put()** method is called and the key to be added already exists. In other cases, this parameter is left blank.| +| Name| Type | Mandatory| Description | +| ------ | ---------- | ---- | ----------------------- | +| src | Uint8Array | Yes | Uint8Array to encode asynchronously.| + +**Return value** + +| Type | Description | +| ------------------------- | --------------------------------- | +| Promise<Uint8Array> | Uint8Array obtained after asynchronous encoding.| **Example** ```js - let arr = []; - class ChildLruBuffer extends util.LruBuffer - { - constructor() - { - super(); - } - afterRemoval(isEvict, key, value, newValue) - { - if (isEvict === false) - { - arr = [key, value, newValue]; - } - } - } - let lru = new ChildLruBuffer(); - lru.afterRemoval(false,10,30,null); +let that = new util.Base64Helper(); +let array = new Uint8Array([115,49,51]); +let rarray = new Uint8Array([99,122,69,122]); +that.encode(array).then(val=>{ + for (var i = 0; i < rarray.length; i++) { + console.log(val[i].toString()) + } +}) ``` -### contains(deprecated) - -contains(key: K): boolean -Checks whether this buffer contains the specified key. +### encodeToString9+ +encodeToString(src: Uint8Array): Promise<string> -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [contains9+](#contains9) instead. +Encodes the input content asynchronously. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| key | K | Yes| Key to check.| +| Name| Type | Mandatory| Description | +| ------ | ---------- | ---- | ----------------------- | +| src | Uint8Array | Yes | Uint8Array to encode asynchronously.| **Return value** -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the buffer contains the specified key; returns **false** otherwise.| +| Type | Description | +| --------------------- | ------------------------ | +| Promise<string> | String obtained after asynchronous encoding.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.contains(20); +let that = new util.Base64Helper(); +let array = new Uint8Array([115,49,51]); +that.encodeToString(array).then(val=>{ + console.log(val) +}) ``` -### createDefault(deprecated) -createDefault(key: K): V +### decode9+ -Creates a value if the value of the specified key is not available. +decode(src: Uint8Array | string): Promise<Uint8Array> -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [createDefault9+](#createdefault9) instead. +Decodes the input content asynchronously. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| key | K | Yes| Key of which the value is missing.| +| Name| Type | Mandatory| Description | +| ------ | ------------------------------ | ---- | --------------------------------- | +| src | Uint8Array \| string | Yes | Uint8Array or string to decode asynchronously.| **Return value** -| Type| Description| -| -------- | -------- | -| V | Value of the key.| +| Type | Description | +| ------------------------- | --------------------------------- | +| Promise<Uint8Array> | Uint8Array obtained after asynchronous decoding.| **Example** ```js - let pro = new util.LruBuffer(); - let result = pro.createDefault(50); +let that = new util.Base64Helper(); +let array = new Uint8Array([99,122,69,122]); +let rarray = new Uint8Array([115,49,51]); +that.decode(array).then(val=>{ + for (var i = 0; i < rarray.length; i++) { + console.log(val[i].toString()) + } +}) ``` -### entries(deprecated) +## types8+ -entries(): IterableIterator<[K,V]> +### constructor8+ -Obtains a new iterator object that contains all key-value pairs in this object. +constructor() -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [entries9+](#entries9) instead. +A constructor used to create a **Types** object. **System capability**: SystemCapability.Utils.Lang -**Return value** - -| Type| Description| -| -------- | -------- | -| [K, V] | Iterable array.| - **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro.entries(); + let type = new util.types(); ``` -### [Symbol.iterator](deprecated) -[Symbol.iterator]\(): IterableIterator<[K, V]> +### isAnyArrayBuffer8+ -Obtains a two-dimensional array in key-value pairs. +isAnyArrayBuffer(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Symbol.iterator9+](#symboliterator9) instead. +Checks whether the input value is of the **ArrayBuffer** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** | Type| Description| | -------- | -------- | -| [K, V] | Two-dimensional array in key-value pairs.| +| boolean | Returns **true** if the input value is of the **ArrayBuffer** type; returns **false** otherwise.| **Example** ```js - let pro = new util.LruBuffer(); - pro.put(2,10); - let result = pro[Symbol.iterator](); + let that = new util.types(); + let result = that.isAnyArrayBuffer(new ArrayBuffer(0)); ``` -### ScopeType8+ - -Defines the type of values in a **Scope** object. The value type can be **ScopeComparable** or **number**. - -The values of the **ScopeComparable** type are used to implement the **compareTo** method. Therefore, ensure that the input parameters are comparable. - -```js -interface ScopeComparable{ - compareTo(other: ScopeComparable): boolean; -} -type ScopeType = ScopeComparable | number; -``` - - -Create a class to implement the **compareTo** method. In the subsequent sample code, **Temperature** is used as an example of the [ScopeType](#scopetype8) object. - - -Example -```js -class Temperature{ - constructor(value){ - // If TS is used for development, add the following code: - // private readonly _temp: Temperature; - this._temp = value; - } - compareTo(value){ - return this._temp >= value.getTemp(); - } - getTemp(){ - return this._temp; - } - toString(){ - return this._temp.toString(); - } -} -``` -## ScopeHelper9+ +### isArrayBufferView8+ -### constructor9+ +isArrayBufferView(value: Object): boolean -constructor(lowerObj: ScopeType, upperObj: ScopeType) +Checks whether the input value is of the **ArrayBufferView** type. -A constructor used to create a **ScopeHelper** object with the specified upper and lower limits. +**ArrayBufferView** is a helper type representing any of the following: **Int8Array**, **Int16Array**, **Int32Array**, **Uint8Array**, **Uint8ClampedArray**, **Uint32Array**, **Float32Array**, **Float64Array**, and **DataView**. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------ | ---- | ---------------------- | -| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit of the **Scope** object.| -| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit of the **Scope** object.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **ArrayBufferView** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let range = new util.ScopeHelper(tempLower, tempUpper); + let that = new util.types(); + let result = that.isArrayBufferView(new Int8Array([])); ``` -### toString9+ +### isArgumentsObject8+ -toString(): string +isArgumentsObject(value: Object): boolean -Obtains a string representation that contains this **Scope**. +Checks whether the input value is of the **arguments** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** -| Type | Description | -| ------ | -------------------------------------- | -| string | String representation containing the **Scope**.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **arguments** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.toString(); + let that = new util.types(); + function foo() { + var result = that.isArgumentsObject(arguments); + } + let f = foo(); ``` -### intersect9+ +### isArrayBuffer8+ -intersect(range: ScopeHelper): ScopeHelper +isArrayBuffer(value: Object): boolean -Obtains the intersection of this **Scope** and the given **Scope**. +Checks whether the input value is of the **ArrayBuffer** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------------------------- | ---- | ------------------ | -| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------------------------------ | ------------------------------ | -| [ScopeHelper9+](#scopehelper9) | Intersection of this **Scope** and the given **Scope**.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **ArrayBuffer** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let range = new util.ScopeHelper(tempLower, tempUpper); -let tempMiDF = new Temperature(35); -let tempMidS = new Temperature(39); -let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS); -range.intersect(rangeFir ); + let that = new util.types(); + let result = that.isArrayBuffer(new ArrayBuffer(0)); ``` -### intersect9+ +### isAsyncFunction8+ -intersect(lowerObj:ScopeType,upperObj:ScopeType):ScopeHelper +isAsyncFunction(value: Object): boolean -Obtains the intersection of this **Scope** and the given lower and upper limits. +Checks whether the input value is an asynchronous function. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------ | ---- | ---------------- | -| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit.| -| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ---------------------------- | ---------------------------------------- | -| [ScopeHelper](#scopehelper9) | Intersection of this **Scope** and the given lower and upper limits.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is an asynchronous function; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let tempMiDF = new Temperature(35); -let tempMidS = new Temperature(39); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.intersect(tempMiDF, tempMidS); + let that = new util.types(); + let result = that.isAsyncFunction(async function foo() {}); ``` -### getUpper9+ +### isBooleanObject8+ -getUpper(): ScopeType +isBooleanObject(value: Object): boolean -Obtains the upper limit of this **Scope**. +Checks whether the input value is of the **Boolean** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** -| Type | Description | -| ------------------------ | ---------------------- | -| [ScopeType](#scopetype8) | Upper limit of this **Scope**.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Boolean** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.getUpper(); + let that = new util.types(); + let result = that.isBooleanObject(new Boolean(true)); ``` -### getLower9+ +### isBoxedPrimitive8+ -getLower(): ScopeType +isBoxedPrimitive(value: Object): boolean -Obtains the lower limit of this **Scope**. +Checks whether the input value is of the **Boolean**, **Number**, **String**, or **Symbol** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** -| Type | Description | -| ------------------------ | ---------------------- | -| [ScopeType](#scopetype8) | Lower limit of this **Scope**.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Boolean**, **Number**, **String**, or **Symbol** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.getLower(); + let that = new util.types(); + let result = that.isBoxedPrimitive(new Boolean(false)); ``` -### expand9+ +### isDataView8+ -expand(lowerObj: ScopeType,upperObj: ScopeType): ScopeHelper +isDataView(value: Object): boolean -Obtains the union set of this **Scope** and the given lower and upper limits. +Checks whether the input value is of the **DataView** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name | Type | Mandatory| Description | -| -------- | ------------------------ | ---- | ---------------- | -| lowerObj | [ScopeType](#scopetype8) | Yes | Lower limit.| -| upperObj | [ScopeType](#scopetype8) | Yes | Upper limit.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ---------------------------- | ------------------------------------ | -| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given lower and upper limits.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **DataView** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let tempMiDF = new Temperature(35); -let tempMidS = new Temperature(39); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.expand(tempMiDF, tempMidS); + let that = new util.types(); + const ab = new ArrayBuffer(20); + let result = that.isDataView(new DataView(ab)); ``` -### expand9+ +### isDate8+ -expand(range: ScopeHelper): ScopeHelper +isDate(value: Object): boolean -Obtains the union set of this **Scope** and the given **Scope**. +Checks whether the input value is of the **Date** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------------------------- | ---- | ------------------ | -| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ---------------------------- | ---------------------------------- | -| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given **Scope**.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Date** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let tempMiDF = new Temperature(35); -let tempMidS = new Temperature(39); -let range = new util.ScopeHelper(tempLower, tempUpper); -let rangeFir = new util.ScopeHelper(tempMiDF, tempMidS); -let result = range.expand(rangeFir); + let that = new util.types(); + let result = that.isDate(new Date()); ``` -### expand9+ +### isExternal8+ -expand(value: ScopeType): ScopeHelper +isExternal(value: Object): boolean -Obtains the union set of this **Scope** and the given value. +Checks whether the input value is of the **native external** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ------------------------ | ---- | ---------------- | -| value | [ScopeType](#scopetype8) | Yes | Value specified.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ---------------------------- | -------------------------------- | -| [ScopeHelper](#scopehelper9) | Union set of this **Scope** and the given value.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **native external** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let tempMiDF = new Temperature(35); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.expand(tempMiDF); + let that = new util.types(); + let result = that.isExternal(true); ``` -### contains9+ +### isFloat32Array8+ -contains(value: ScopeType): boolean +isFloat32Array(value: Object): boolean -Checks whether a value is within this **Scope**. +Checks whether the input value is of the **Float32Array** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ------------------------ | ---- | ---------------- | -| value | [ScopeType](#scopetype8) | Yes | Value specified.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------- | --------------------------------------------------- | -| boolean | Returns **true** if the value is within this **Scope**; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Float32Array** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let tempMiDF = new Temperature(35); -let range = new util.ScopeHelper(tempLower, tempUpper); -range.contains(tempMiDF); + let that = new util.types(); + let result = that.isFloat32Array(new Float32Array()); ``` -### contains9+ +### isFloat64Array8+ -contains(range: ScopeHelper): boolean +isFloat64Array(value: Object): boolean -Checks whether a range is within this **Scope**. +Checks whether the input value is of the **Float64Array** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------------------------- | ---- | ------------------ | -| range | [ScopeHelper](#scopehelper9) | Yes | **Scope** specified.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------- | ----------------------------------------------------- | -| boolean | Returns **true** if the range is within this **Scope**; returns **false** otherwise.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Float64Array** type; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let range = new util.ScopeHelper(tempLower, tempUpper); -let tempLess = new Temperature(20); -let tempMore = new Temperature(45); -let rangeSec = new util.ScopeHelper(tempLess, tempMore); -let result = range.contains(rangeSec); + let that = new util.types(); + let result = that.isFloat64Array(new Float64Array()); ``` -### clamp9+ +### isGeneratorFunction8+ -clamp(value: ScopeType): ScopeType +isGeneratorFunction(value: Object): boolean -Limits a value to this **Scope**. +Checks whether the input value is a generator function. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ------------------------ | ---- | -------------- | -| value | [ScopeType](#scopetype8) | Yes | Value specified.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------------------------ | ------------------------------------------------------------ | -| [ScopeType](#scopetype8) | Returns **lowerObj** if the specified value is less than the lower limit; returns **upperObj** if the specified value is greater than the upper limit; returns the specified value if it is within this **Scope**.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is a generator function; returns **false** otherwise.| **Example** ```js -let tempLower = new Temperature(30); -let tempUpper = new Temperature(40); -let tempMiDF = new Temperature(35); -let range = new util.ScopeHelper(tempLower, tempUpper); -let result = range.clamp(tempMiDF); + let that = new util.types(); + let result = that.isGeneratorFunction(function* foo() {}); ``` -## Scope(deprecated) - -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper9+](#scopehelper9) instead. - -### constructor(deprecated) - -constructor(lowerObj: ScopeType, upperObj: ScopeType) -A constructor used to create a **Scope** object with the specified upper and lower limits. +### isGeneratorObject8+ -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. +isGeneratorObject(value: Object): boolean +Checks whether the input value is a generator object. **System capability**: SystemCapability.Utils.Lang @@ -2591,52 +2601,57 @@ A constructor used to create a **Scope** object with the specified upper and low | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit of the **Scope** object.| -| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit of the **Scope** object.| +| value | Object | Yes| Object to check.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is a generator object; returns **false** otherwise.| **Example** + ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let range = new util.Scope(tempLower, tempUpper); + let that = new util.types(); + function* foo() {} + const generator = foo(); + let result = that.isGeneratorObject(generator); ``` -### toString(deprecated) -toString(): string +### isInt8Array8+ -Obtains a string representation that contains this **Scope**. +isInt8Array(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [toString9+](#tostring9) instead. +Checks whether the input value is of the **Int8Array** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** | Type| Description| | -------- | -------- | -| string | String representation containing the **Scope**.| +| boolean | Returns **true** if the input value is of the **Int8Array** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let range = new util.Scope(tempLower, tempUpper); - let result = range.toString(); + let that = new util.types(); + let result = that.isInt8Array(new Int8Array([])); ``` -### intersect(deprecated) -intersect(range: Scope): Scope +### isInt16Array8+ -Obtains the intersection of this **Scope** and the given **Scope**. +isInt16Array(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [intersect9+](#intersect9) instead. +Checks whether the input value is of the **Int16Array** type. **System capability**: SystemCapability.Utils.Lang @@ -2644,35 +2659,27 @@ Obtains the intersection of this **Scope** and the given **Scope**. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| [Scope](#scopedeprecated) | Intersection of this **Scope** and the given **Scope**.| +| boolean | Returns **true** if the input value is of the **Int16Array** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let range = new util.Scope(tempLower, tempUpper); - let tempMiDF = new Temperature(35); - let tempMidS = new Temperature(39); - let rangeFir = new util.Scope(tempMiDF, tempMidS); - range.intersect(rangeFir ); + let that = new util.types(); + let result = that.isInt16Array(new Int16Array([])); ``` -### intersect(deprecated) -intersect(lowerObj:ScopeType,upperObj:ScopeType):Scope +### isInt32Array8+ -Obtains the intersection of this **Scope** and the given lower and upper limits. +isInt32Array(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [intersect9+](#intersect9) instead. +Checks whether the input value is of the **Int32Array** type. **System capability**: SystemCapability.Utils.Lang @@ -2680,89 +2687,85 @@ Obtains the intersection of this **Scope** and the given lower and upper limits. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit.| -| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| [Scope](#scopedeprecated) | Intersection of this **Scope** and the given lower and upper limits.| +| boolean | Returns **true** if the input value is of the **Int32Array** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let tempMiDF = new Temperature(35); - let tempMidS = new Temperature(39); - let range = new util.Scope(tempLower, tempUpper); - let result = range.intersect(tempMiDF, tempMidS); + let that = new util.types(); + let result = that.isInt32Array(new Int32Array([])); ``` -### getUpper(deprecated) -getUpper(): ScopeType +### isMap8+ -Obtains the upper limit of this **Scope**. +isMap(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getUpper9+](#getupper9) instead. +Checks whether the input value is of the **Map** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** | Type| Description| | -------- | -------- | -| [ScopeType](#scopetype8) | Upper limit of this **Scope**.| +| boolean | Returns **true** if the input value is of the **Map** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let range = new util.Scope(tempLower, tempUpper); - let result = range.getUpper(); + let that = new util.types(); + let result = that.isMap(new Map()); ``` -### getLower(deprecated) -getLower(): ScopeType +### isMapIterator8+ -Obtains the lower limit of this **Scope**. +isMapIterator(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getLower9+](#getlower9) instead. +Checks whether the input value is of the **MapIterator** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + **Return value** | Type| Description| | -------- | -------- | -| [ScopeType](#scopetype8) | Lower limit of this **Scope**.| +| boolean | Returns **true** if the input value is of the **MapIterator** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let range = new util.Scope(tempLower, tempUpper); - let result = range.getLower(); + let that = new util.types(); + const map = new Map(); + let result = that.isMapIterator(map.keys()); ``` -### expand(deprecated) -expand(lowerObj: ScopeType,upperObj: ScopeType): Scope +### isNativeError8+ -Obtains the union set of this **Scope** and the given lower and upper limits. +isNativeError(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [expand9+](#expand9) instead. +Checks whether the input value is of the **Error** type. **System capability**: SystemCapability.Utils.Lang @@ -2770,35 +2773,27 @@ Obtains the union set of this **Scope** and the given lower and upper limits. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit.| -| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| [Scope](#scopedeprecated) | Union set of this **Scope** and the given lower and upper limits.| +| boolean | Returns **true** if the input value is of the **Error** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let tempMiDF = new Temperature(35); - let tempMidS = new Temperature(39); - let range = new util.Scope(tempLower, tempUpper); - let result = range.expand(tempMiDF, tempMidS); + let that = new util.types(); + let result = that.isNativeError(new TypeError()); ``` -### expand(deprecated) -expand(range: Scope): Scope +### isNumberObject8+ -Obtains the union set of this **Scope** and the given **Scope**. +isNumberObject(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [expand9+](#expand9) instead. +Checks whether the input value is a number object. **System capability**: SystemCapability.Utils.Lang @@ -2806,35 +2801,27 @@ Obtains the union set of this **Scope** and the given **Scope**. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| [Scope](#scopedeprecated) | Union set of this **Scope** and the given **Scope**.| +| boolean | Returns **true** if the input value is a number object; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let tempMiDF = new Temperature(35); - let tempMidS = new Temperature(39); - let range = new util.Scope(tempLower, tempUpper); - let rangeFir = new util.Scope(tempMiDF, tempMidS); - let result = range.expand(rangeFir); + let that = new util.types(); + let result = that.isNumberObject(new Number(0)); ``` -### expand(deprecated) -expand(value: ScopeType): Scope +### isPromise8+ -Obtains the union set of this **Scope** and the given value. +isPromise(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [expand9+](#expand9) instead. +Checks whether the input value is a promise. **System capability**: SystemCapability.Utils.Lang @@ -2842,33 +2829,27 @@ Obtains the union set of this **Scope** and the given value. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | [ScopeType](#scopetype8) | Yes| Value specified.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| [Scope](#scopedeprecated) | Union set of this **Scope** and the given value.| +| boolean | Returns **true** if the input value is a promise; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let tempMiDF = new Temperature(35); - let range = new util.Scope(tempLower, tempUpper); - let result = range.expand(tempMiDF); + let that = new util.types(); + let result = that.isPromise(Promise.resolve(1)); ``` -### contains(deprecated) -contains(value: ScopeType): boolean +### isProxy8+ -Checks whether a value is within this **Scope**. +isProxy(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [contains9+](#contains9) instead. +Checks whether the input value is a proxy. **System capability**: SystemCapability.Utils.Lang @@ -2876,33 +2857,29 @@ Checks whether a value is within this **Scope**. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | [ScopeType](#scopetype8) | Yes| Value specified.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the value is within this **Scope**; returns **false** otherwise.| +| boolean | Returns **true** if the input value is a proxy; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let tempMiDF = new Temperature(35); - let range = new util.Scope(tempLower, tempUpper); - range.contains(tempMiDF); + let that = new util.types(); + const target = {}; + const proxy = new Proxy(target, {}); + let result = that.isProxy(proxy); ``` -### contains(deprecated) - -contains(range: Scope): boolean -Checks whether a range is within this **Scope**. +### isRegExp8+ -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [contains9+](#contains9) instead. +isRegExp(value: Object): boolean + +Checks whether the input value is of the **RegExp** type. **System capability**: SystemCapability.Utils.Lang @@ -2910,36 +2887,27 @@ Checks whether a range is within this **Scope**. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the range is within this **Scope**; returns **false** otherwise.| +| boolean | Returns **true** if the input value is of the **RegExp** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let range = new util.Scope(tempLower, tempUpper); - let tempLess = new Temperature(20); - let tempMore = new Temperature(45); - let rangeSec = new util.Scope(tempLess, tempMore); - let result = range.contains(rangeSec); + let that = new util.types(); + let result = that.isRegExp(new RegExp('abc')); ``` -### clamp(deprecated) - -clamp(value: ScopeType): ScopeType +### isSet8+ -Limits a value to this **Scope**. +isSet(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [clamp9+](#clamp9) instead. +Checks whether the input value is of the **Set** type. **System capability**: SystemCapability.Utils.Lang @@ -2947,259 +2915,255 @@ Limits a value to this **Scope**. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | [ScopeType](#scopetype8) | Yes| Value specified.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| [ScopeType](#scopetype8) | Returns **lowerObj** if the specified value is less than the lower limit; returns **upperObj** if the specified value is greater than the upper limit; returns the specified value if it is within this **Scope**.| +| boolean | Returns **true** if the input value is of the **Set** type; returns **false** otherwise.| **Example** ```js - let tempLower = new Temperature(30); - let tempUpper = new Temperature(40); - let tempMiDF = new Temperature(35); - let range = new util.Scope(tempLower, tempUpper); - let result = range.clamp(tempMiDF); + let that = new util.types(); + let result = that.isSet(new Set()); ``` -## Base64Helper9+ -### constructor9+ +### isSetIterator8+ -constructor() +isSetIterator(value: Object): boolean -A constructor used to create a **Base64Helper** instance. +Checks whether the input value is of the **SetIterator** type. **System capability**: SystemCapability.Utils.Lang +**Parameters** + +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| + +**Return value** + +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **SetIterator** type; returns **false** otherwise.| + **Example** ```js -let base64 = new util.Base64Helper(); + let that = new util.types(); + const set = new Set(); + let result = that.isSetIterator(set.keys()); ``` -### encodeSync9+ -encodeSync(src: Uint8Array): Uint8Array +### isStringObject8+ -Encodes the input content. +isStringObject(value: Object): boolean + +Checks whether the input value is a string object. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------- | ---- | ------------------- | -| src | Uint8Array | Yes | Uint8Array to encode.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ---------- | ----------------------------- | -| Uint8Array | Uint8Array encoded.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is a string object; returns **false** otherwise.| **Example** ```js -let that = new util.Base64Helper(); -let array = new Uint8Array([115,49,51]); -let result = that.encodeSync(array); + let that = new util.types(); + let result = that.isStringObject(new String('foo')); ``` -### encodeToStringSync9+ +### isSymbolObjec8+ -encodeToStringSync(src: Uint8Array): string +isSymbolObject(value: Object): boolean -Encodes the input content. +Checks whether the input value is a symbol object. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------- | ---- | ------------------- | -| src | Uint8Array | Yes | Uint8Array to encode.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------ | -------------------- | -| string | String encoded from the Uint8Array.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is a symbol object; returns **false** otherwise.| **Example** ```js -let that = new util.Base64Helper(); -let array = new Uint8Array([115,49,51]); -let result = that.encodeToStringSync(array); + let that = new util.types(); + const symbols = Symbol('foo'); + let result = that.isSymbolObject(Object(symbols)); ``` -### decodeSync9+ +### isTypedArray8+ -decodeSync(src: Uint8Array | string): Uint8Array +isTypedArray(value: Object): boolean -Decodes the input content. +Checks whether the input value is of the **TypedArray** type. + +**TypedArray** is a helper type representing any of the following: **Int8Array**, **Int16Array**, **Int32Array**, **Uint8Array**, **Uint8ClampedArray**, **Uint16Array**, **Uint32Array**, **Float32Array**, **Float64Array**, and **DataView**. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ------------------------------ | ---- | ----------------------------- | -| src | Uint8Array \| string | Yes | Uint8Array or string to decode.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ---------- | ----------------------------- | -| Uint8Array | Uint8Array decoded.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **TypedArray** type; returns **false** otherwise.| **Example** ```js -let that = new util.Base64Helper(); -let buff = 'czEz'; -let result = that.decodeSync(buff); + let that = new util.types(); + let result = that.isTypedArray(new Float64Array([])); ``` -### encode9+ +### isUint8Array8+ -encode(src: Uint8Array): Promise<Uint8Array> +isUint8Array(value: Object): boolean -Encodes the input content asynchronously. +Checks whether the input value is of the **Uint8Array** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------- | ---- | ----------------------- | -| src | Uint8Array | Yes | Uint8Array to encode asynchronously.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------------------------- | --------------------------------- | -| Promise<Uint8Array> | Uint8Array obtained after asynchronous encoding.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Uint8Array** type; returns **false** otherwise.| **Example** ```js -let that = new util.Base64Helper(); -let array = new Uint8Array([115,49,51]); -let rarray = new Uint8Array([99,122,69,122]); -that.encode(array).then(val=>{ - for (var i = 0; i < rarray.length; i++) { - console.log(val[i].toString()) - } -}) + let that = new util.types(); + let result = that.isUint8Array(new Uint8Array([])); ``` -### encodeToString9+ +### isUint8ClampedArray8+ -encodeToString(src: Uint8Array): Promise<string> +isUint8ClampedArray(value: Object): boolean -Encodes the input content asynchronously. +Checks whether the input value is of the **Uint8ClampedArray** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ---------- | ---- | ----------------------- | -| src | Uint8Array | Yes | Uint8Array to encode asynchronously.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| --------------------- | ------------------------ | -| Promise<string> | String obtained after asynchronous encoding.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Uint8ClampedArray** type; returns **false** otherwise.| **Example** ```js -let that = new util.Base64Helper(); -let array = new Uint8Array([115,49,51]); -that.encodeToString(array).then(val=>{ - console.log(val) -}) + let that = new util.types(); + let result = that.isUint8ClampedArray(new Uint8ClampedArray([])); ``` -### decode9+ +### isUint16Array8+ -decode(src: Uint8Array | string): Promise<Uint8Array> +isUint16Array(value: Object): boolean -Decodes the input content asynchronously. +Checks whether the input value is of the **Uint16Array** type. **System capability**: SystemCapability.Utils.Lang **Parameters** -| Name| Type | Mandatory| Description | -| ------ | ------------------------------ | ---- | --------------------------------- | -| src | Uint8Array \| string | Yes | Uint8Array or string to decode asynchronously.| +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| **Return value** -| Type | Description | -| ------------------------- | --------------------------------- | -| Promise<Uint8Array> | Uint8Array obtained after asynchronous decoding.| +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Uint16Array** type; returns **false** otherwise.| **Example** ```js -let that = new util.Base64Helper(); -let array = new Uint8Array([99,122,69,122]); -let rarray = new Uint8Array([115,49,51]); -that.decode(array).then(val=>{ - for (var i = 0; i < rarray.length; i++) { - console.log(val[i].toString()) - } -}) + let that = new util.types(); + let result = that.isUint16Array(new Uint16Array([])); ``` -## Base64(deprecated) +### isUint32Array8+ -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper9+](#base64helper9) instead. +isUint32Array(value: Object): boolean -### constructor(deprecated) +Checks whether the input value is of the **Uint32Array** type. -constructor() +**System capability**: SystemCapability.Utils.Lang -A constructor used to create a **Base64** object. +**Parameters** -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. +| Name| Type| Mandatory| Description| +| -------- | -------- | -------- | -------- | +| value | Object | Yes| Object to check.| -**System capability**: SystemCapability.Utils.Lang +**Return value** + +| Type| Description| +| -------- | -------- | +| boolean | Returns **true** if the input value is of the **Uint32Array** type; returns **false** otherwise.| **Example** ```js - let base64 = new util.Base64(); + let that = new util.types(); + let result = that.isUint32Array(new Uint32Array([])); ``` -### encodeSync(deprecated) -encodeSync(src: Uint8Array): Uint8Array +### isWeakMap8+ -Encodes the input content. +isWeakMap(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encodeSync9+](#encodesync9) instead. +Checks whether the input value is of the **WeakMap** type. **System capability**: SystemCapability.Utils.Lang @@ -3207,31 +3171,27 @@ Encodes the input content. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| src | Uint8Array | Yes| Uint8Array to encode.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| Uint8Array | Uint8Array encoded.| +| boolean | Returns **true** if the input value is of the **WeakMap** type; returns **false** otherwise.| **Example** ```js - let that = new util.Base64(); - let array = new Uint8Array([115,49,51]); - let result = that.encodeSync(array); + let that = new util.types(); + let result = that.isWeakMap(new WeakMap()); ``` -### encodeToStringSync(deprecated) -encodeToStringSync(src: Uint8Array): string +### isWeakSet8+ -Encodes the input content. +isWeakSet(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encodeToStringSync9+](#encodetostringsync9) instead. +Checks whether the input value is of the **WeakSet** type. **System capability**: SystemCapability.Utils.Lang @@ -3239,31 +3199,27 @@ Encodes the input content. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| src | Uint8Array | Yes| Uint8Array to encode.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| string | String encoded from the Uint8Array.| +| boolean | Returns **true** if the input value is of the **WeakSet** type; returns **false** otherwise.| **Example** ```js - let that = new util.Base64(); - let array = new Uint8Array([115,49,51]); - let result = that.encodeToStringSync(array); + let that = new util.types(); + let result = that.isWeakSet(new WeakSet()); ``` -### decodeSync(deprecated) -decodeSync(src: Uint8Array | string): Uint8Array +### isBigInt64Array8+ -Decodes the input content. +isBigInt64Array(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [decodeSync9+](#decodesync9) instead. +Checks whether the input value is of the **BigInt64Array** type. **System capability**: SystemCapability.Utils.Lang @@ -3271,31 +3227,27 @@ Decodes the input content. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| src | Uint8Array \| string | Yes| Uint8Array or string to decode.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| Uint8Array | Uint8Array decoded.| +| boolean | Returns **true** if the input value is of the **BigInt64Array** type; returns **false** otherwise.| **Example** ```js - let that = new util.Base64(); - let buff = 'czEz'; - let result = that.decodeSync(buff); + let that = new util.types(); + let result = that.isBigInt64Array(new BigInt64Array([])); ``` -### encode(deprecated) -encode(src: Uint8Array): Promise<Uint8Array> +### isBigUint64Array8+ -Encodes the input content asynchronously. +isBigUint64Array(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encode9+](#encode9) instead. +Checks whether the input value is of the **BigUint64Array** type. **System capability**: SystemCapability.Utils.Lang @@ -3303,36 +3255,27 @@ Encodes the input content asynchronously. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| src | Uint8Array | Yes| Uint8Array to encode asynchronously.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| Promise<Uint8Array> | Uint8Array obtained after asynchronous encoding.| +| boolean | Returns **true** if the input value is of the **BigUint64Array** type; returns **false** otherwise.| **Example** ```js - let that = new util.Base64(); - let array = new Uint8Array([115,49,51]); - let rarray = new Uint8Array([99,122,69,122]); - that.encode(array).then(val=>{ - for (var i = 0; i < rarray.length; i++) { - console.log(val[i].toString()) - } - }) + let that = new util.types(); + let result = that.isBigUint64Array(new BigUint64Array([])); ``` -### encodeToString(deprecated) -encodeToString(src: Uint8Array): Promise<string> +### isModuleNamespaceObject8+ -Encodes the input content asynchronously. +isModuleNamespaceObject(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encodeToString9+](#encodetostring9) instead. +Checks whether the input value is a module namespace object. **System capability**: SystemCapability.Utils.Lang @@ -3340,34 +3283,28 @@ Encodes the input content asynchronously. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| src | Uint8Array | Yes| Uint8Array to encode asynchronously.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| Promise<string> | String obtained after asynchronous encoding.| +| boolean | Returns **true** if the input value is a module namespace object; returns **false** otherwise.| **Example** ```js - let that = new util.Base64(); - let array = new Uint8Array([115,49,51]); - that.encodeToString(array).then(val=>{ - console.log(val) - }) + import url from '@ohos.url' + let that = new util.types(); + let result = that.isModuleNamespaceObject(url); ``` -### decode(deprecated) - -decode(src: Uint8Array | string): Promise<Uint8Array> +### isSharedArrayBuffer8+ -Decodes the input content asynchronously. +isSharedArrayBuffer(value: Object): boolean -> **NOTE** -> -> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [decode9+](#decode9) instead. +Checks whether the input value is of the **SharedArrayBuffer** type. **System capability**: SystemCapability.Utils.Lang @@ -3375,50 +3312,53 @@ Decodes the input content asynchronously. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| src | Uint8Array \| string | Yes| Uint8Array or string to decode asynchronously.| +| value | Object | Yes| Object to check.| **Return value** | Type| Description| | -------- | -------- | -| Promise<Uint8Array> | Uint8Array obtained after asynchronous decoding.| +| boolean | Returns **true** if the input value is of the **SharedArrayBuffer** type; returns **false** otherwise.| **Example** ```js - let that = new util.Base64(); - let array = new Uint8Array([99,122,69,122]); - let rarray = new Uint8Array([115,49,51]); - that.decode(array).then(val=>{ - for (var i = 0; i < rarray.length; i++) { - console.log(val[i].toString()) - } - }) + let that = new util.types(); + let result = that.isSharedArrayBuffer(new SharedArrayBuffer(0)); ``` -## types8+ - - -### constructor8+ +## LruBuffer(deprecated) -constructor() +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [LRUCache9+](#lrucache9) instead. -A constructor used to create a **Types** object. +### Attributes **System capability**: SystemCapability.Utils.Lang +| Name| Type| Readable| Writable| Description| +| -------- | -------- | -------- | -------- | -------- | +| length | number | Yes| No| Total number of values in this buffer.| + **Example** ```js - let type = new util.types(); + let pro = new util.LruBuffer(); + pro.put(2,10); + pro.put(1,8); + let result = pro.length; ``` +### constructor(deprecated) -### isAnyArrayBuffer8+ +constructor(capacity?: number) -isAnyArrayBuffer(value: Object): boolean +A constructor used to create a **LruBuffer** instance. The default capacity of the buffer is 64. -Checks whether the input value is of the **ArrayBuffer** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3426,29 +3366,23 @@ Checks whether the input value is of the **ArrayBuffer** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the input value is of the **ArrayBuffer** type; returns **false** otherwise.| +| capacity | number | No| Capacity of the **LruBuffer** to create.| **Example** ```js - let that = new util.types(); - let result = that.isAnyArrayBuffer(new ArrayBuffer(0)); + let lrubuffer= new util.LruBuffer(); ``` +### updateCapacity(deprecated) -### isArrayBufferView8+ - -isArrayBufferView(value: Object): boolean +updateCapacity(newCapacity: number): void -Checks whether the input value is of the **ArrayBufferView** type. +Changes the **LruBuffer** capacity. If the new capacity is less than or equal to **0**, an exception will be thrown. -**ArrayBufferView** is a helper type representing any of the following: **Int8Array**, **Int16Array**, **Int32Array**, **Uint8Array**, **Uint8ClampedArray**, **Uint32Array**, **Float32Array**, **Float64Array**, and **DataView**. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [updateCapacity9+](#updatecapacity9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3456,255 +3390,257 @@ Checks whether the input value is of the **ArrayBufferView** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the input value is of the **ArrayBufferView** type; returns **false** otherwise.| +| newCapacity | number | Yes| New capacity of the **LruBuffer**.| **Example** ```js - let that = new util.types(); - let result = that.isArrayBufferView(new Int8Array([])); + let pro = new util.LruBuffer(); + let result = pro.updateCapacity(100); ``` +### toString(deprecated) -### isArgumentsObject8+ +toString(): string -isArgumentsObject(value: Object): boolean +Obtains the string representation of this **LruBuffer** object. -Checks whether the input value is of the **arguments** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [toString9+](#tostring9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **arguments** type; returns **false** otherwise.| +| string | String representation of this **LruBuffer** object.| **Example** ```js - let that = new util.types(); - function foo() { - var result = that.isArgumentsObject(arguments); - } - let f = foo(); + let pro = new util.LruBuffer(); + pro.put(2,10); + pro.get(2); + pro.remove(20); + let result = pro.toString(); ``` +### getCapacity(deprecated) -### isArrayBuffer8+ +getCapacity(): number -isArrayBuffer(value: Object): boolean +Obtains the capacity of this buffer. -Checks whether the input value is of the **ArrayBuffer** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCapacity9+](#getcapacity9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **ArrayBuffer** type; returns **false** otherwise.| +| number | Capacity of this buffer.| **Example** - ```js - let that = new util.types(); - let result = that.isArrayBuffer(new ArrayBuffer(0)); + let pro = new util.LruBuffer(); + let result = pro.getCapacity(); ``` +### clear(deprecated) -### isAsyncFunction8+ +clear(): void -isAsyncFunction(value: Object): boolean +Clears key-value pairs from this buffer. The **afterRemoval()** method will be called to perform subsequent operations. -Checks whether the input value is an asynchronous function. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [clear9+](#clear9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** +**Example** -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| + ```js + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.length; + pro.clear(); + ``` + +### getCreateCount(deprecated) + +getCreateCount(): number + +Obtains the number of return values for **createDefault()**. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getCreateCount9+](#getcreatecount9) instead. + +**System capability**: SystemCapability.Utils.Lang **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is an asynchronous function; returns **false** otherwise.| +| number | Number of return values for **createDefault()**.| **Example** ```js - let that = new util.types(); - let result = that.isAsyncFunction(async function foo() {}); + let pro = new util.LruBuffer(); + pro.put(1,8); + let result = pro.getCreateCount(); ``` +### getMissCount(deprecated) -### isBooleanObject8+ +getMissCount(): number -isBooleanObject(value: Object): boolean +Obtains the number of times that the queried values are mismatched. -Checks whether the input value is of the **Boolean** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getMissCount9+](#getmisscount9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Boolean** type; returns **false** otherwise.| +| number | Number of times that the queried values are mismatched.| **Example** ```js - let that = new util.types(); - let result = that.isBooleanObject(new Boolean(true)); + let pro = new util.LruBuffer(); + pro.put(2,10); + pro.get(2); + let result = pro.getMissCount(); ``` +### getRemovalCount(deprecated) -### isBoxedPrimitive8+ +getRemovalCount(): number -isBoxedPrimitive(value: Object): boolean +Obtains the number of removals from this buffer. -Checks whether the input value is of the **Boolean**, **Number**, **String**, or **Symbol** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getRemovalCount9+](#getremovalcount9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Boolean**, **Number**, **String**, or **Symbol** type; returns **false** otherwise.| +| number | Number of removals from the buffer.| **Example** ```js - let that = new util.types(); - let result = that.isBoxedPrimitive(new Boolean(false)); + let pro = new util.LruBuffer(); + pro.put(2,10); + pro.updateCapacity(2); + pro.put(50,22); + let result = pro.getRemovalCount(); ``` +### getMatchCount(deprecated) -### isDataView8+ +getMatchCount(): number -isDataView(value: Object): boolean +Obtains the number of times that the queried values are matched. -Checks whether the input value is of the **DataView** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getMatchCount9+](#getmatchcount9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **DataView** type; returns **false** otherwise.| +| number | Number of times that the queried values are matched.| **Example** ```js - let that = new util.types(); - const ab = new ArrayBuffer(20); - let result = that.isDataView(new DataView(ab)); + let pro = new util.LruBuffer(); + pro.put(2,10); + pro.get(2); + let result = pro.getMatchCount(); ``` +### getPutCount(deprecated) -### isDate8+ +getPutCount(): number -isDate(value: Object): boolean +Obtains the number of additions to this buffer. -Checks whether the input value is of the **Date** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getPutCount9+](#getputcount9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Date** type; returns **false** otherwise.| +| number | Number of additions to the buffer.| **Example** ```js - let that = new util.types(); - let result = that.isDate(new Date()); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.getPutCount(); ``` +### isEmpty(deprecated) -### isExternal8+ +isEmpty(): boolean -isExternal(value: Object): boolean +Checks whether this buffer is empty. -Checks whether the input value is of the **native external** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [isEmpty9+](#isempty9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **native external** type; returns **false** otherwise.| +| boolean | Returns **true** if the buffer does not contain any value.| **Example** ```js - let that = new util.types(); - let result = that.isExternal(true); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.isEmpty(); ``` +### get(deprecated) -### isFloat32Array8+ +get(key: K): V | undefined -isFloat32Array(value: Object): boolean +Obtains the value of the specified key. -Checks whether the input value is of the **Float32Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [get9+](#get9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3712,27 +3648,31 @@ Checks whether the input value is of the **Float32Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| key | K | Yes| Key based on which the value is queried.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Float32Array** type; returns **false** otherwise.| +| V \| undefined | Returns the value of the key if a match is found in the buffer; returns **undefined** otherwise.| **Example** ```js - let that = new util.types(); - let result = that.isFloat32Array(new Float32Array()); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.get(2); ``` +### put(deprecated) -### isFloat64Array8+ +put(key: K,value: V): V -isFloat64Array(value: Object): boolean +Adds a key-value pair to this buffer. -Checks whether the input value is of the **Float64Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [put9+](#put9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3740,85 +3680,84 @@ Checks whether the input value is of the **Float64Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| key | K | Yes| Key of the key-value pair to add.| +| value | V | Yes| Value of the key-value pair to add.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Float64Array** type; returns **false** otherwise.| +| V | Returns the existing value if the key already exists; returns the value added otherwise. If the key or value is null, an exception will be thrown. | **Example** ```js - let that = new util.types(); - let result = that.isFloat64Array(new Float64Array()); + let pro = new util.LruBuffer(); + let result = pro.put(2,10); ``` +### values(deprecated) -### isGeneratorFunction8+ +values(): V[] -isGeneratorFunction(value: Object): boolean +Obtains all values in this buffer, listed from the most to the least recently accessed. -Checks whether the input value is a generator function. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [values9+](#values9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a generator function; returns **false** otherwise.| +| V [] | All values in the buffer, listed from the most to the least recently accessed.| **Example** ```js - let that = new util.types(); - let result = that.isGeneratorFunction(function* foo() {}); + let pro = new util.LruBuffer(); + pro.put(2,10); + pro.put(2,"anhu"); + pro.put("afaf","grfb"); + let result = pro.values(); ``` +### keys(deprecated) -### isGeneratorObject8+ +keys(): K[] -isGeneratorObject(value: Object): boolean +Obtains all keys in this buffer, listed from the most to the least recently accessed. -Checks whether the input value is a generator object. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [keys9+](#keys9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a generator object; returns **false** otherwise.| +| K [] | All keys in the buffer, listed from the most to the least recently accessed.| **Example** - ```js - let that = new util.types(); - function* foo() {} - const generator = foo(); - let result = that.isGeneratorObject(generator); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.keys(); ``` +### remove(deprecated) -### isInt8Array8+ +remove(key: K): V | undefined -isInt8Array(value: Object): boolean +Removes the specified key and its value from this buffer. -Checks whether the input value is of the **Int8Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [remove9+](#remove9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3826,27 +3765,30 @@ Checks whether the input value is of the **Int8Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| key | K | Yes| Key to remove.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Int8Array** type; returns **false** otherwise.| +| V \| undefined | Returns an **Optional** object containing the removed key-value pair if the key exists in the buffer; returns an empty **Optional** object otherwise. If the key is null, an exception will be thrown.| **Example** - ```js - let that = new util.types(); - let result = that.isInt8Array(new Int8Array([])); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.remove(20); ``` +### afterRemoval(deprecated) -### isInt16Array8+ +afterRemoval(isEvict: boolean,key: K,value: V,newValue: V): void -isInt16Array(value: Object): boolean +Performs subsequent operations after a value is removed. -Checks whether the input value is of the **Int16Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [afterRemoval9+](#afterremoval9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3854,27 +3796,43 @@ Checks whether the input value is of the **Int16Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the input value is of the **Int16Array** type; returns **false** otherwise.| +| isEvict | boolean | Yes| Whether the buffer capacity is insufficient. If the value is **true**, this method is called due to insufficient capacity.| +| key | K | Yes| Key removed.| +| value | V | Yes| Value removed.| +| newValue | V | Yes| New value for the key if the **put()** method is called and the key to be added already exists. In other cases, this parameter is left blank.| **Example** ```js - let that = new util.types(); - let result = that.isInt16Array(new Int16Array([])); + let arr = []; + class ChildLruBuffer extends util.LruBuffer + { + constructor() + { + super(); + } + afterRemoval(isEvict, key, value, newValue) + { + if (isEvict === false) + { + arr = [key, value, newValue]; + } + } + } + let lru = new ChildLruBuffer(); + lru.afterRemoval(false,10,30,null); ``` +### contains(deprecated) -### isInt32Array8+ +contains(key: K): boolean -isInt32Array(value: Object): boolean +Checks whether this buffer contains the specified key. -Checks whether the input value is of the **Int32Array** type. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [contains9+](#contains9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3882,27 +3840,31 @@ Checks whether the input value is of the **Int32Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| key | K | Yes| Key to check.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Int32Array** type; returns **false** otherwise.| +| boolean | Returns **true** if the buffer contains the specified key; returns **false** otherwise.| **Example** ```js - let that = new util.types(); - let result = that.isInt32Array(new Int32Array([])); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.contains(20); ``` +### createDefault(deprecated) -### isMap8+ +createDefault(key: K): V -isMap(value: Object): boolean +Creates a value if the value of the specified key is not available. -Checks whether the input value is of the **Map** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [createDefault9+](#createdefault9) instead. **System capability**: SystemCapability.Utils.Lang @@ -3910,85 +3872,89 @@ Checks whether the input value is of the **Map** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| key | K | Yes| Key of which the value is missing.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Map** type; returns **false** otherwise.| +| V | Value of the key.| **Example** ```js - let that = new util.types(); - let result = that.isMap(new Map()); + let pro = new util.LruBuffer(); + let result = pro.createDefault(50); ``` +### entries(deprecated) -### isMapIterator8+ +entries(): IterableIterator<[K,V]> -isMapIterator(value: Object): boolean +Obtains a new iterator object that contains all key-value pairs in this object. -Checks whether the input value is of the **MapIterator** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [entries9+](#entries9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **MapIterator** type; returns **false** otherwise.| +| [K, V] | Iterable array.| **Example** ```js - let that = new util.types(); - const map = new Map(); - let result = that.isMapIterator(map.keys()); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro.entries(); ``` +### [Symbol.iterator](deprecated) -### isNativeError8+ +[Symbol.iterator]\(): IterableIterator<[K, V]> -isNativeError(value: Object): boolean +Obtains a two-dimensional array in key-value pairs. -Checks whether the input value is of the **Error** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Symbol.iterator9+](#symboliterator9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Error** type; returns **false** otherwise.| +| [K, V] | Two-dimensional array in key-value pairs.| **Example** ```js - let that = new util.types(); - let result = that.isNativeError(new TypeError()); + let pro = new util.LruBuffer(); + pro.put(2,10); + let result = pro[Symbol.iterator](); ``` +## Scope(deprecated) -### isNumberObject8+ +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [ScopeHelper9+](#scopehelper9) instead. -isNumberObject(value: Object): boolean +### constructor(deprecated) + +constructor(lowerObj: ScopeType, upperObj: ScopeType) + +A constructor used to create a **Scope** object with the specified upper and lower limits. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. -Checks whether the input value is a number object. **System capability**: SystemCapability.Utils.Lang @@ -3996,55 +3962,52 @@ Checks whether the input value is a number object. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - -**Return value** - -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the input value is a number object; returns **false** otherwise.| +| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit of the **Scope** object.| +| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit of the **Scope** object.| **Example** - ```js - let that = new util.types(); - let result = that.isNumberObject(new Number(0)); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let range = new util.Scope(tempLower, tempUpper); ``` +### toString(deprecated) -### isPromise8+ +toString(): string -isPromise(value: Object): boolean +Obtains a string representation that contains this **Scope**. -Checks whether the input value is a promise. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [toString9+](#tostring9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a promise; returns **false** otherwise.| +| string | String representation containing the **Scope**.| **Example** ```js - let that = new util.types(); - let result = that.isPromise(Promise.resolve(1)); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let range = new util.Scope(tempLower, tempUpper); + let result = range.toString(); ``` +### intersect(deprecated) -### isProxy8+ +intersect(range: Scope): Scope -isProxy(value: Object): boolean +Obtains the intersection of this **Scope** and the given **Scope**. -Checks whether the input value is a proxy. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [intersect9+](#intersect9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4052,29 +4015,35 @@ Checks whether the input value is a proxy. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a proxy; returns **false** otherwise.| +| [Scope](#scopedeprecated) | Intersection of this **Scope** and the given **Scope**.| **Example** ```js - let that = new util.types(); - const target = {}; - const proxy = new Proxy(target, {}); - let result = that.isProxy(proxy); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let range = new util.Scope(tempLower, tempUpper); + let tempMiDF = new Temperature(35); + let tempMidS = new Temperature(39); + let rangeFir = new util.Scope(tempMiDF, tempMidS); + range.intersect(rangeFir ); ``` +### intersect(deprecated) -### isRegExp8+ +intersect(lowerObj:ScopeType,upperObj:ScopeType):Scope -isRegExp(value: Object): boolean +Obtains the intersection of this **Scope** and the given lower and upper limits. -Checks whether the input value is of the **RegExp** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [intersect9+](#intersect9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4082,84 +4051,89 @@ Checks whether the input value is of the **RegExp** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit.| +| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **RegExp** type; returns **false** otherwise.| +| [Scope](#scopedeprecated) | Intersection of this **Scope** and the given lower and upper limits.| **Example** ```js - let that = new util.types(); - let result = that.isRegExp(new RegExp('abc')); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let tempMiDF = new Temperature(35); + let tempMidS = new Temperature(39); + let range = new util.Scope(tempLower, tempUpper); + let result = range.intersect(tempMiDF, tempMidS); ``` +### getUpper(deprecated) -### isSet8+ +getUpper(): ScopeType -isSet(value: Object): boolean +Obtains the upper limit of this **Scope**. -Checks whether the input value is of the **Set** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getUpper9+](#getupper9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Set** type; returns **false** otherwise.| +| [ScopeType](#scopetype8) | Upper limit of this **Scope**.| **Example** ```js - let that = new util.types(); - let result = that.isSet(new Set()); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let range = new util.Scope(tempLower, tempUpper); + let result = range.getUpper(); ``` +### getLower(deprecated) -### isSetIterator8+ +getLower(): ScopeType -isSetIterator(value: Object): boolean +Obtains the lower limit of this **Scope**. -Checks whether the input value is of the **SetIterator** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [getLower9+](#getlower9) instead. **System capability**: SystemCapability.Utils.Lang -**Parameters** - -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| - **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **SetIterator** type; returns **false** otherwise.| +| [ScopeType](#scopetype8) | Lower limit of this **Scope**.| **Example** ```js - let that = new util.types(); - const set = new Set(); - let result = that.isSetIterator(set.keys()); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let range = new util.Scope(tempLower, tempUpper); + let result = range.getLower(); ``` +### expand(deprecated) -### isStringObject8+ +expand(lowerObj: ScopeType,upperObj: ScopeType): Scope -isStringObject(value: Object): boolean +Obtains the union set of this **Scope** and the given lower and upper limits. -Checks whether the input value is a string object. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [expand9+](#expand9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4167,27 +4141,35 @@ Checks whether the input value is a string object. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| lowerObj | [ScopeType](#scopetype8) | Yes| Lower limit.| +| upperObj | [ScopeType](#scopetype8) | Yes| Upper limit.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a string object; returns **false** otherwise.| +| [Scope](#scopedeprecated) | Union set of this **Scope** and the given lower and upper limits.| **Example** ```js - let that = new util.types(); - let result = that.isStringObject(new String('foo')); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let tempMiDF = new Temperature(35); + let tempMidS = new Temperature(39); + let range = new util.Scope(tempLower, tempUpper); + let result = range.expand(tempMiDF, tempMidS); ``` +### expand(deprecated) -### isSymbolObjec8+ +expand(range: Scope): Scope -isSymbolObject(value: Object): boolean +Obtains the union set of this **Scope** and the given **Scope**. -Checks whether the input value is a symbol object. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [expand9+](#expand9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4195,30 +4177,35 @@ Checks whether the input value is a symbol object. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a symbol object; returns **false** otherwise.| +| [Scope](#scopedeprecated) | Union set of this **Scope** and the given **Scope**.| **Example** ```js - let that = new util.types(); - const symbols = Symbol('foo'); - let result = that.isSymbolObject(Object(symbols)); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let tempMiDF = new Temperature(35); + let tempMidS = new Temperature(39); + let range = new util.Scope(tempLower, tempUpper); + let rangeFir = new util.Scope(tempMiDF, tempMidS); + let result = range.expand(rangeFir); ``` +### expand(deprecated) -### isTypedArray8+ - -isTypedArray(value: Object): boolean +expand(value: ScopeType): Scope -Checks whether the input value is of the **TypedArray** type. +Obtains the union set of this **Scope** and the given value. -**TypedArray** is a helper type representing any of the following: **Int8Array**, **Int16Array**, **Int32Array**, **Uint8Array**, **Uint8ClampedArray**, **Uint16Array**, **Uint32Array**, **Float32Array**, **Float64Array**, and **DataView**. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [expand9+](#expand9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4226,27 +4213,33 @@ Checks whether the input value is of the **TypedArray** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| value | [ScopeType](#scopetype8) | Yes| Value specified.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **TypedArray** type; returns **false** otherwise.| +| [Scope](#scopedeprecated) | Union set of this **Scope** and the given value.| **Example** ```js - let that = new util.types(); - let result = that.isTypedArray(new Float64Array([])); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let tempMiDF = new Temperature(35); + let range = new util.Scope(tempLower, tempUpper); + let result = range.expand(tempMiDF); ``` +### contains(deprecated) -### isUint8Array8+ +contains(value: ScopeType): boolean -isUint8Array(value: Object): boolean +Checks whether a value is within this **Scope**. -Checks whether the input value is of the **Uint8Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [contains9+](#contains9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4254,27 +4247,33 @@ Checks whether the input value is of the **Uint8Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| value | [ScopeType](#scopetype8) | Yes| Value specified.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Uint8Array** type; returns **false** otherwise.| +| boolean | Returns **true** if the value is within this **Scope**; returns **false** otherwise.| **Example** ```js - let that = new util.types(); - let result = that.isUint8Array(new Uint8Array([])); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let tempMiDF = new Temperature(35); + let range = new util.Scope(tempLower, tempUpper); + range.contains(tempMiDF); ``` +### contains(deprecated) -### isUint8ClampedArray8+ +contains(range: Scope): boolean -isUint8ClampedArray(value: Object): boolean +Checks whether a range is within this **Scope**. -Checks whether the input value is of the **Uint8ClampedArray** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [contains9+](#contains9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4282,27 +4281,36 @@ Checks whether the input value is of the **Uint8ClampedArray** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| range | [Scope](#scopedeprecated) | Yes| **Scope** specified.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Uint8ClampedArray** type; returns **false** otherwise.| +| boolean | Returns **true** if the range is within this **Scope**; returns **false** otherwise.| **Example** ```js - let that = new util.types(); - let result = that.isUint8ClampedArray(new Uint8ClampedArray([])); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let range = new util.Scope(tempLower, tempUpper); + let tempLess = new Temperature(20); + let tempMore = new Temperature(45); + let rangeSec = new util.Scope(tempLess, tempMore); + let result = range.contains(rangeSec); ``` +### clamp(deprecated) -### isUint16Array8+ -isUint16Array(value: Object): boolean +clamp(value: ScopeType): ScopeType -Checks whether the input value is of the **Uint16Array** type. +Limits a value to this **Scope**. + +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [clamp9+](#clamp9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4310,55 +4318,58 @@ Checks whether the input value is of the **Uint16Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| value | [ScopeType](#scopetype8) | Yes| Value specified.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **Uint16Array** type; returns **false** otherwise.| +| [ScopeType](#scopetype8) | Returns **lowerObj** if the specified value is less than the lower limit; returns **upperObj** if the specified value is greater than the upper limit; returns the specified value if it is within this **Scope**.| **Example** ```js - let that = new util.types(); - let result = that.isUint16Array(new Uint16Array([])); + let tempLower = new Temperature(30); + let tempUpper = new Temperature(40); + let tempMiDF = new Temperature(35); + let range = new util.Scope(tempLower, tempUpper); + let result = range.clamp(tempMiDF); ``` -### isUint32Array8+ - -isUint32Array(value: Object): boolean +## Base64(deprecated) -Checks whether the input value is of the **Uint32Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [Base64Helper9+](#base64helper9) instead. -**System capability**: SystemCapability.Utils.Lang +### constructor(deprecated) -**Parameters** +constructor() -| Name| Type| Mandatory| Description| -| -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +A constructor used to create a **Base64** object. -**Return value** +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [constructor9+](#constructor9) instead. -| Type| Description| -| -------- | -------- | -| boolean | Returns **true** if the input value is of the **Uint32Array** type; returns **false** otherwise.| +**System capability**: SystemCapability.Utils.Lang **Example** ```js - let that = new util.types(); - let result = that.isUint32Array(new Uint32Array([])); + let base64 = new util.Base64(); ``` +### encodeSync(deprecated) -### isWeakMap8+ +encodeSync(src: Uint8Array): Uint8Array -isWeakMap(value: Object): boolean +Encodes the input content. -Checks whether the input value is of the **WeakMap** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encodeSync9+](#encodesync9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4366,27 +4377,31 @@ Checks whether the input value is of the **WeakMap** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| src | Uint8Array | Yes| Uint8Array to encode.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **WeakMap** type; returns **false** otherwise.| +| Uint8Array | Uint8Array encoded.| **Example** ```js - let that = new util.types(); - let result = that.isWeakMap(new WeakMap()); + let that = new util.Base64(); + let array = new Uint8Array([115,49,51]); + let result = that.encodeSync(array); ``` +### encodeToStringSync(deprecated) -### isWeakSet8+ +encodeToStringSync(src: Uint8Array): string -isWeakSet(value: Object): boolean +Encodes the input content. -Checks whether the input value is of the **WeakSet** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encodeToStringSync9+](#encodetostringsync9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4394,27 +4409,31 @@ Checks whether the input value is of the **WeakSet** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| src | Uint8Array | Yes| Uint8Array to encode.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **WeakSet** type; returns **false** otherwise.| +| string | String encoded from the Uint8Array.| **Example** ```js - let that = new util.types(); - let result = that.isWeakSet(new WeakSet()); + let that = new util.Base64(); + let array = new Uint8Array([115,49,51]); + let result = that.encodeToStringSync(array); ``` +### decodeSync(deprecated) -### isBigInt64Array8+ +decodeSync(src: Uint8Array | string): Uint8Array -isBigInt64Array(value: Object): boolean +Decodes the input content. -Checks whether the input value is of the **BigInt64Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [decodeSync9+](#decodesync9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4422,27 +4441,31 @@ Checks whether the input value is of the **BigInt64Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| src | Uint8Array \| string | Yes| Uint8Array or string to decode.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **BigInt64Array** type; returns **false** otherwise.| +| Uint8Array | Uint8Array decoded.| **Example** ```js - let that = new util.types(); - let result = that.isBigInt64Array(new BigInt64Array([])); + let that = new util.Base64(); + let buff = 'czEz'; + let result = that.decodeSync(buff); ``` +### encode(deprecated) -### isBigUint64Array8+ +encode(src: Uint8Array): Promise<Uint8Array> -isBigUint64Array(value: Object): boolean +Encodes the input content asynchronously. -Checks whether the input value is of the **BigUint64Array** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encode9+](#encode9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4450,27 +4473,36 @@ Checks whether the input value is of the **BigUint64Array** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| src | Uint8Array | Yes| Uint8Array to encode asynchronously.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **BigUint64Array** type; returns **false** otherwise.| +| Promise<Uint8Array> | Uint8Array obtained after asynchronous encoding.| **Example** ```js - let that = new util.types(); - let result = that.isBigUint64Array(new BigUint64Array([])); + let that = new util.Base64(); + let array = new Uint8Array([115,49,51]); + let rarray = new Uint8Array([99,122,69,122]); + that.encode(array).then(val=>{ + for (var i = 0; i < rarray.length; i++) { + console.log(val[i].toString()) + } + }) ``` +### encodeToString(deprecated) -### isModuleNamespaceObject8+ +encodeToString(src: Uint8Array): Promise<string> -isModuleNamespaceObject(value: Object): boolean +Encodes the input content asynchronously. -Checks whether the input value is a module namespace object. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [encodeToString9+](#encodetostring9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4478,28 +4510,34 @@ Checks whether the input value is a module namespace object. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| src | Uint8Array | Yes| Uint8Array to encode asynchronously.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is a module namespace object; returns **false** otherwise.| +| Promise<string> | String obtained after asynchronous encoding.| **Example** ```js - import url from '@ohos.url' - let that = new util.types(); - let result = that.isModuleNamespaceObject(url); + let that = new util.Base64(); + let array = new Uint8Array([115,49,51]); + that.encodeToString(array).then(val=>{ + console.log(val) + }) ``` +### decode(deprecated) + -### isSharedArrayBuffer8+ +decode(src: Uint8Array | string): Promise<Uint8Array> -isSharedArrayBuffer(value: Object): boolean +Decodes the input content asynchronously. -Checks whether the input value is of the **SharedArrayBuffer** type. +> **NOTE** +> +> This API is supported since API version 8 and deprecated since API version 9. You are advised to use [decode9+](#decode9) instead. **System capability**: SystemCapability.Utils.Lang @@ -4507,18 +4545,25 @@ Checks whether the input value is of the **SharedArrayBuffer** type. | Name| Type| Mandatory| Description| | -------- | -------- | -------- | -------- | -| value | Object | Yes| Object to check.| +| src | Uint8Array \| string | Yes| Uint8Array or string to decode asynchronously.| **Return value** | Type| Description| | -------- | -------- | -| boolean | Returns **true** if the input value is of the **SharedArrayBuffer** type; returns **false** otherwise.| +| Promise<Uint8Array> | Uint8Array obtained after asynchronous decoding.| **Example** ```js - let that = new util.types(); - let result = that.isSharedArrayBuffer(new SharedArrayBuffer(0)); + let that = new util.Base64(); + let array = new Uint8Array([99,122,69,122]); + let rarray = new Uint8Array([115,49,51]); + that.decode(array).then(val=>{ + for (var i = 0; i < rarray.length; i++) { + console.log(val[i].toString()) + } + }) ``` + diff --git a/en/application-dev/reference/apis/js-apis-worker.md b/en/application-dev/reference/apis/js-apis-worker.md index 1b269ea335..db8a73c0ff 100644 --- a/en/application-dev/reference/apis/js-apis-worker.md +++ b/en/application-dev/reference/apis/js-apis-worker.md @@ -1,9 +1,11 @@ -# @ohos.worker +# @ohos.worker (Worker Startup) The worker thread is an independent thread running in parallel with the main thread. The thread that creates the worker thread is referred to as the host thread. The URL file passed in during worker creation is executed in the worker thread. The worker thread can process time-consuming operations, but cannot directly operate the UI. With the **Worker** module, you can provide a multithreading environment for an application, so that the application can perform a time-consuming operation in a background thread. This greatly prevents a computing-intensive or high-latency task from blocking the running of the main thread. A **Worker** instance will not be proactively destroyed once it is created. It consumes resources to keep running. Therefore, you should call the API to terminate it in a timely manner. +The **Context** object of the worker thread is different from that of the main thread. The worker thread does not support UI operations. + > **NOTE** > > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. @@ -40,13 +42,13 @@ Provides options that can be set for the **Worker** instance to create. ## ThreadWorker9+ -Before using the following APIs, you must create a **Worker** instance. The **Worker** class inherits from [WorkerEventTarget](#workereventtarget9). +Before using the following APIs, you must create a **ThreadWorker** instance. The **ThreadWorker** class inherits from [WorkerEventTarget](#workereventtarget9). ### constructor9+ constructor(scriptURL: string, options?: WorkerOptions) -A constructor used to create a **Worker** instance. +A constructor used to create a **ThreadWorker** instance. **System capability**: SystemCapability.Utils.Lang @@ -59,9 +61,20 @@ A constructor used to create a **Worker** instance. **Return value** -| Type | Description | -| ------ | --------------------------------------------------------- | -| Worker | Returns the **Worker** instance created; returns **undefined** if the **Worker** instance fails to be created.| +| Type | Description | +| ------------ | ------------------------------------------------------------ | +| ThreadWorker | Returns the **ThreadWorker** instance created; returns **undefined** if the **ThreadWorker** instance fails to be created.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message| +| -------- | -------- | +| 10200003 | Worker initialization failure. | +| 10200007 | The worker file patch is invalid path. | + + **Example** @@ -94,7 +107,7 @@ In the FA model: "buildOption": { "sourceOption": { "workers": [ - "./src/main/ets/MainAbility/workers/worker.ts" + "./src/main/ets/entryability/workers/worker.ts" ] } } @@ -138,6 +151,40 @@ In the stage model: } ``` +### postMessage9+ + +postMessage(message: Object, transfer: ArrayBuffer[]): void; + +Sends a message to the worker thread. The data type of the message must be sequenceable. For details about the sequenceable data types, see [More Information](#more-information). + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------- | ---- | ------------------------------------------------------------ | +| message | Object | Yes | Message to be sent to the worker thread. | +| transfer | ArrayBuffer[] | Yes | An **ArrayBuffer** object can be transferred. The value **null** should not be passed in the array.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ----------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200006 | Serializing an uncaught exception failed. | + +**Example** + +```js +const workerInstance = new worker.ThreadWorker("workers/worker.js"); + +workerInstance.postMessage("hello world"); + +var buffer = new ArrayBuffer(8); +workerInstance.postMessage(buffer, [buffer]); +``` ### postMessage9+ @@ -154,6 +201,15 @@ Sends a message to the worker thread. The data type of the message must be seque | message | Object | Yes | Message to be sent to the worker thread. | | options | [PostMessageOptions](#postmessageoptions) | No | **ArrayBuffer** instances that can be transferred. The **transferList** array cannot contain **null**.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ----------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200006 | Serializing an uncaught exception failed. | + **Example** ```js @@ -165,7 +221,6 @@ var buffer = new ArrayBuffer(8); workerInstance.postMessage(buffer, [buffer]); ``` - ### on9+ on(type: string, listener: WorkerEventListener): void @@ -181,6 +236,15 @@ Adds an event listener for the worker thread. This API provides the same functio | type | string | Yes | Type of the event to listen for. | | listener | [WorkerEventListener](#workereventlistener9) | Yes| Callback to invoke when an event of the specified type occurs. Callback to invoke when an event of the specified type occurs.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -206,6 +270,15 @@ Adds an event listener for the worker thread and removes the event listener afte | type | string | Yes | Type of the event to listen for. | | listener | [WorkerEventListener](#workereventlistener9) | Yes| Callback to invoke when an event of the specified type occurs. Callback to invoke when an event of the specified type occurs.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -231,6 +304,15 @@ Removes an event listener for the worker thread. This API provides the same func | type | string | Yes | Type of the event for which the event listener is to be removed. | | listener | [WorkerEventListener](#workereventlistener9) | No| Callback to invoke when an event of the specified type occurs. Callback of the event listener to remove.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -248,6 +330,14 @@ Terminates the worker thread to stop it from receiving messages. **System capability**: SystemCapability.Utils.Lang +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + **Example** ```js @@ -270,6 +360,15 @@ Defines the event handler to be called when the worker thread exits. The handler | ------ | ------ | ---- | ------------------ | | code | number | Yes | Code indicating the worker thread exit state.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -301,6 +400,15 @@ Defines the event handler to be called when an exception occurs during worker ex | ------ | ------------------------- | ---- | ---------- | | err | [ErrorEvent](#errorevent) | Yes | Error data.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -325,6 +433,15 @@ Defines the event handler to be called when the host thread receives a message s | ------ | -------------------------------- | ---- | ---------------------- | | event | [MessageEvents](#messageevents9) | Yes | Message received.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -351,6 +468,15 @@ Defines the event handler to be called when the worker thread receives a message | ------ | -------------------------------- | ---- | ---------- | | event | [MessageEvents](#messageevents9) | Yes | Error data.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -360,6 +486,169 @@ workerInstance.onmessageerror= function(e) { } ``` +### addEventListener9+ + +addEventListener(type: string, listener: WorkerEventListener): void + +Adds an event listener for the worker thread. This API provides the same functionality as [on9+](#on9). + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------------------------------- | ---- | ---------------- | +| type | string | Yes | Type of the event to listen for.| +| listener | [WorkerEventListener](#workereventlistener9) | Yes | Callback to invoke when an event of the specified type occurs. | + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + +**Example** + +```js +const workerInstance = new worker.ThreadWorker("workers/worker.js"); +workerInstance.addEventListener("alert", (e)=>{ + console.log("alert listener callback"); +}) +``` + + +### removeEventListener9+ + +removeEventListener(type: string, callback?: WorkerEventListener): void + +Removes an event listener for the worker thread. This API provides the same functionality as [off9+](#off9). + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | -------------------------------------------- | ---- | ---------------------------- | +| type | string | Yes | Type of the event for which the event listener is to be removed. | +| callback | [WorkerEventListener](#workereventlistener9) | No| Callback to invoke when an event of the specified type occurs. Callback of the event listener to remove.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + +**Example** + +```js +const workerInstance = new worker.ThreadWorker("workers/worker.js"); +workerInstance.addEventListener("alert", (e)=>{ + console.log("alert listener callback"); +}) +workerInstance.removeEventListener("alert"); +``` + + +### dispatchEvent9+ + +dispatchEvent(event: Event): boolean + +Dispatches the event defined for the worker thread. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name| Type | Mandatory| Description | +| ------ | --------------- | ---- | ---------------- | +| event | [Event](#event) | Yes | Event to dispatch.| + +**Return value** + +| Type | Description | +| ------- | ------------------------------- | +| boolean | Returns **true** if the event is dispatched successfully; returns **false** otherwise.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + +**Example** + +```js +const workerInstance = new worker.ThreadWorker("workers/worker.js"); +// Usage 1: +workerInstance.on("alert_on", (e)=>{ + console.log("alert listener callback"); +}) +workerInstance.once("alert_once", (e)=>{ + console.log("alert listener callback"); +}) +workerInstance.addEventListener("alert_add", (e)=>{ + console.log("alert listener callback"); +}) + +// The event listener created by once is removed after being executed once. +workerInstance.dispatchEvent({type:"alert_once", timeStamp:0});// timeStamp is not supported yet. +// The event listener created by on will not be proactively deleted. +workerInstance.dispatchEvent({type:"alert_on", timeStamp:0}); +workerInstance.dispatchEvent({type:"alert_on", timeStamp:0}); +// The event listener created by addEventListener will be always valid and will not be proactively deleted. +workerInstance.dispatchEvent({type:"alert_add", timeStamp:0}); +workerInstance.dispatchEvent({type:"alert_add", timeStamp:0}); + +// Usage 2: +// The event type can be customized, and the special types "message", "messageerror", and "error" exist. +// When type = "message", the event handler defined by onmessage will also be executed. +// When type = "messageerror", the event handler defined by onmessageerror will also be executed. +// When type = "error", the event handler defined by onerror will also be executed. +// removeEventListener or off can be used to remove an event listener that is created by addEventListener, on, or once. + +workerInstance.addEventListener("message", (e)=>{ + console.log("message listener callback"); +}) +workerInstance.onmessage = function(e) { + console.log("onmessage : message listener callback"); +} +// When dispatchEvent is called to distribute the "message" event, the callback passed in addEventListener and onmessage will be invoked. +workerInstance.dispatchEvent({type:"message", timeStamp:0}); +``` + + +### removeAllListener9+ + +removeAllListener(): void + +Removes all event listeners for the worker thread. + +**System capability**: SystemCapability.Utils.Lang + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + +**Example** + +```js +const workerInstance = new worker.ThreadWorker("workers/worker.js"); +workerInstance.addEventListener("alert", (e)=>{ + console.log("alert listener callback"); +}) +workerInstance.removeAllListener(); +``` ## WorkerEventTarget9+ @@ -378,6 +667,15 @@ Adds an event listener for the worker thread. This API provides the same functio | type | string | Yes | Type of the event to listen for.| | listener | [WorkerEventListener](#workereventlistener9) | Yes | Callback to invoke when an event of the specified type occurs. | +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -401,7 +699,15 @@ Removes an event listener for the worker thread. This API provides the same func | Name | Type | Mandatory| Description | | -------- | -------------------------------------------- | ---- | ---------------------------- | | type | string | Yes | Type of the event for which the event listener is to be removed. | -| callback | [WorkerEventListener](#workereventlistener9) | No| Callback to invoke when an event of the specified type occurs. Callback of the event listener to remove.| +| callback | [WorkerEventListener](#workereventlistener9) | No| Callback to invoke when an event of the specified type occurs. | + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | **Example** @@ -434,6 +740,14 @@ Dispatches the event defined for the worker thread. | ------- | ------------------------------- | | boolean | Returns **true** if the event is dispatched successfully; returns **false** otherwise.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + **Example** ```js @@ -450,11 +764,11 @@ workerInstance.addEventListener("alert_add", (e)=>{ }) // The event listener created by once is removed after being executed once. -workerInstance.dispatchEvent({type:"alert_once", timeStamp:0}); -// The event listener created by on will be always valid and will not be proactively deleted. +workerInstance.dispatchEvent({type:"alert_once", timeStamp:0});// timeStamp is not supported yet. +// The event listener created by on will not be proactively deleted. workerInstance.dispatchEvent({type:"alert_on", timeStamp:0}); workerInstance.dispatchEvent({type:"alert_on", timeStamp:0}); -// The event listener created by addEventListener will be always valid and will not be proactively deleted. +// The event listener created by addEventListener will not be proactively deleted. workerInstance.dispatchEvent({type:"alert_add", timeStamp:0}); workerInstance.dispatchEvent({type:"alert_add", timeStamp:0}); @@ -484,6 +798,14 @@ Removes all event listeners for the worker thread. **System capability**: SystemCapability.Utils.Lang +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + **Example** ```js @@ -499,6 +821,53 @@ workerInstance.removeAllListener(); Implements communication between the worker thread and the host thread. The **postMessage** API is used to send messages to the host thread, and the **close** API is used to terminate the worker thread. The **ThreadWorkerGlobalScope** class inherits from [GlobalScope9+](#globalscope9). +### postMessage9+ + +postMessage(messageObject: Object, transfer: ArrayBuffer[]): void; + +Sends a message to the host thread from the worker thread. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------- | ---- | ------------------------------------------------------- | +| message | Object | Yes | Message to be sent to the worker thread. | +| transfer | ArrayBuffer[] | Yes | An **ArrayBuffer** object can be transferred. The value **null** should not be passed in the array.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ----------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200006 | Serializing an uncaught exception failed. | + +**Example** + +```js +// main.js +import worker from '@ohos.worker'; +const workerInstance = new worker.ThreadWorker("workers/worker.js"); +workerInstance.postMessage("hello world"); +workerInstance.onmessage = function(e) { + // let data = e.data; + console.log("receive data from worker.js"); +} +``` + +```js +// worker.js +import worker from '@ohos.worker'; +const workerPort = worker.workerPort; +workerPort.onmessage = function(e){ + // let data = e.data; + var buffer = new ArrayBuffer(8); + workerPort.postMessage(buffer, [buffer]); +} +``` ### postMessage9+ @@ -515,6 +884,15 @@ Sends a message to the host thread from the worker thread. | message | Object | Yes | Message to be sent to the worker thread. | | options | [PostMessageOptions](#postmessageoptions) | No | **ArrayBuffer** instances that can be transferred. The **transferList** array cannot contain **null**.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ----------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200006 | Serializing an uncaught exception failed. | + **Example** ```js @@ -531,10 +909,10 @@ workerInstance.onmessage = function(e) { ```js // worker.js import worker from '@ohos.worker'; -const parentPort = worker.workerPort; -parentPort.onmessage = function(e){ +const workerPort = worker.workerPort; +workerPort.onmessage = function(e){ // let data = e.data; - parentPort.postMessage("receive data from main.js"); + workerPort.postMessage("receive data from main.js"); } ``` @@ -547,6 +925,14 @@ Terminates the worker thread to stop it from receiving messages. **System capability**: SystemCapability.Utils.Lang +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | ------------------------------- | +| 10200004 | Worker instance is not running. | + **Example** ```js @@ -558,16 +944,16 @@ const workerInstance = new worker.ThreadWorker("workers/worker.js"); ```js // worker.js import worker from '@ohos.worker'; -const parentPort = worker.workerPort; -parentPort.onmessage = function(e) { - parentPort.close() +const workerPort = worker.workerPort; +workerPort.onmessage = function(e) { + workerPort.close() } ``` ### onmessage9+ -onmessage?: (this: ThreadWorkerGlobalScope, event: MessageEvents) => void +onmessage?: (this: ThreadWorkerGlobalScope, ev: MessageEvents) => void Defines the event handler to be called when the worker thread receives a message sent by the host thread through **postMessage**. The event handler is executed in the worker thread. @@ -578,7 +964,16 @@ Defines the event handler to be called when the worker thread receives a message | Name| Type | Mandatory| Description | | ------ | ---------------------------------------------------- | ---- | ------------------------ | | this | [ThreadWorkerGlobalScope](#threadworkerglobalscope9) | Yes | Caller. | -| event | [MessageEvents](#messageevents9) | Yes | Message received.| +| ev | [MessageEvents](#messageevents9) | Yes | Message received.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | **Example** @@ -592,8 +987,8 @@ workerInstance.postMessage("hello world"); ```js // worker.js import worker from '@ohos.worker'; -const parentPort = worker.workerPort; -parentPort.onmessage = function(e) { +const workerPort = worker.workerPort; +workerPort.onmessage = function(e) { console.log("receive main.js message"); } ``` @@ -601,7 +996,7 @@ parentPort.onmessage = function(e) { ### onmessageerror9+ -onmessageerror?: (this: ThreadWorkerGlobalScope, event: MessageEvents) => void +onmessageerror?: (this: ThreadWorkerGlobalScope, ev: MessageEvents) => void Defines the event handler to be called when the worker thread receives a message that cannot be deserialized. The event handler is executed in the worker thread. @@ -612,7 +1007,16 @@ Defines the event handler to be called when the worker thread receives a message | Name| Type | Mandatory| Description | | ------ | -------------------------------- | ---- | ---------- | | this | [ThreadWorkerGlobalScope](#threadworkerglobalscope9) | Yes | Caller. | -| event | [MessageEvents](#messageevents9) | Yes | Error data.| +| ev | [MessageEvents](#messageevents9) | Yes | Error data.| + +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | **Example** @@ -652,6 +1056,15 @@ Implements event listening. | ------------------------------------- | ------------------------------- | | void \| Promise<void> | Returns no value or returns a **Promise**.| +**Error codes** + +For details about the error codes, see [Utils Error Codes](../errorcodes/errorcode-utils.md). + +| ID| Error Message | +| -------- | -------------------------------------------- | +| 10200004 | Worker instance is not running. | +| 10200005 | The invoked API is not supported in workers. | + **Example** ```js @@ -701,8 +1114,8 @@ const workerInstance = new worker.ThreadWorker("workers/worker.js") ```js // worker.js import worker from '@ohos.worker'; -const parentPort = worker.workerPort -parentPort.onerror = function(e){ +const workerPort = worker.workerPort +workerPort.onerror = function(e){ console.log("worker.js onerror") } ``` @@ -779,7 +1192,7 @@ In the FA model: "buildOption": { "sourceOption": { "workers": [ - "./src/main/ets/MainAbility/workers/worker.ts" + "./src/main/ets/entryability/workers/worker.ts" ] } } @@ -816,9 +1229,10 @@ In the stage model: } } ``` + ### postMessage(deprecated) -postMessage(message: Object, options?: PostMessageOptions): void +postMessage(message: Object, transfer: ArrayBuffer[]): void; Sends a message to the worker thread. The data type of the message must be sequenceable. For details about the sequenceable data types, see [More Information](#more-information). @@ -829,6 +1243,35 @@ Sends a message to the worker thread. The data type of the message must be seque **Parameters** +| Name | Type | Mandatory| Description | +| -------- | ------------- | ---- | ----------------------------------------------- | +| message | Object | Yes | Message to be sent to the worker thread. | +| transfer | ArrayBuffer[] | Yes | **ArrayBuffer** instances that can be transferred.| + +**Example** + +```js +const workerInstance = new worker.Worker("workers/worker.js"); + +workerInstance.postMessage("hello world"); + +var buffer = new ArrayBuffer(8); +workerInstance.postMessage(buffer, [buffer]); +``` + +### postMessage(deprecated) + +postMessage(message: Object, options?: PostMessageOptions): void + +Sends a message to the worker thread. The data type of the message must be sequenceable. For details about the sequenceable data types, see [More Information](#more-information). + +> **NOTE**
        +> This API is supported since API version 7 and deprecated since API version 9. You are advised to use [ThreadWorker.postMessage9+](#postmessage9-1) instead. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + | Name | Type | Mandatory| Description | | ------- | ----------------------------------------- | ---- | ------------------------------------------------------------ | | message | Object | Yes | Message to be sent to the worker thread. | @@ -840,9 +1283,6 @@ Sends a message to the worker thread. The data type of the message must be seque const workerInstance = new worker.Worker("workers/worker.js"); workerInstance.postMessage("hello world"); - -var buffer = new ArrayBuffer(8); -workerInstance.postMessage(buffer, [buffer]); ``` @@ -1024,7 +1464,7 @@ Defines the event handler to be called when the host thread receives a message s | Name| Type | Mandatory| Description | | ------ | ------------------------------ | ---- | ---------------------- | -| event | [MessageEvent](#messageeventt) | Yes | Message received.| +| event | [MessageEvent](#messageevent)| Yes | Message received.| **Example** @@ -1053,7 +1493,7 @@ Defines the event handler to be called when the worker thread receives a message | Name| Type | Mandatory| Description | | ------ | ------------------------------ | ---- | ---------- | -| event | [MessageEvent](#messageeventt) | Yes | Error data.| +| event | [MessageEvent](#messageevent)| Yes | Error data.| **Example** @@ -1166,7 +1606,7 @@ workerInstance.addEventListener("alert_add", (e)=>{ }) // The event listener created by once is removed after being executed once. -workerInstance.dispatchEvent({type:"alert_once", timeStamp:0}); +workerInstance.dispatchEvent({type:"alert_once", timeStamp:0});// timeStamp is not supported yet. // The event listener created by on will not be proactively deleted. workerInstance.dispatchEvent({type:"alert_on", timeStamp:0}); workerInstance.dispatchEvent({type:"alert_on", timeStamp:0}); @@ -1219,6 +1659,44 @@ Implements communication between the worker thread and the host thread. The **po > **NOTE**
        > This API is supported since API version 7 and deprecated since API version 9. You are advised to use [ThreadWorkerGlobalScope9+](#threadworkerglobalscope9) instead. +### postMessage9+ + +postMessage(messageObject: Object, transfer: ArrayBuffer[]): void; + +Sends a message to the host thread from the worker thread. + +**System capability**: SystemCapability.Utils.Lang + +**Parameters** + +| Name | Type | Mandatory| Description | +| -------- | ------------- | ---- | ----------------------------------------------------- | +| message | Object | Yes | Message to be sent to the worker thread. | +| transfer | ArrayBuffer[] | Yes | An **ArrayBuffer** object can be transferred. The value **null** should not be passed in the array.| + +**Example** + +```js +// main.js +import worker from '@ohos.worker'; +const workerInstance = new worker.Worker("workers/worker.js"); +workerInstance.postMessage("hello world"); +workerInstance.onmessage = function(e) { + // let data = e.data; + console.log("receive data from worker.js"); +} +``` +```js +// worker.js +import worker from '@ohos.worker'; +const parentPort = worker.parentPort; +parentPort.onmessage = function(e){ + // let data = e.data; + let buffer = new ArrayBuffer(5) + parentPort.postMessage(buffer, [buffer]); +} +``` + ### postMessage(deprecated) postMessage(messageObject: Object, options?: PostMessageOptions): void @@ -1259,7 +1737,6 @@ parentPort.onmessage = function(e){ } ``` - ### close(deprecated) close(): void @@ -1290,7 +1767,7 @@ parentPort.onmessage = function(e) { ### onmessage(deprecated) -onmessage?: (this: DedicatedWorkerGlobalScope, event: MessageEvent) => void +onmessage?: (this: DedicatedWorkerGlobalScope, ev: MessageEvent) => void Defines the event handler to be called when the worker thread receives a message sent by the host thread through **postMessage**. The event handler is executed in the worker thread. @@ -1304,7 +1781,7 @@ Defines the event handler to be called when the worker thread receives a message | Name| Type | Mandatory| Description | | ------ | ------------------------------------------------------------ | ---- | ------------------------ | | this | [DedicatedWorkerGlobalScope](#dedicatedworkerglobalscopedeprecated) | Yes | Caller. | -| event | [MessageEvent](#messageeventt) | Yes | Message received.| +| ev | [MessageEvent](#messageevent) | Yes | Message received.| **Example** @@ -1326,7 +1803,7 @@ parentPort.onmessage = function(e) { ### onmessageerror(deprecated) -onmessageerror?: (this: DedicatedWorkerGlobalScope, event: MessageEvent) => void +onmessageerror?: (this: DedicatedWorkerGlobalScope, ev: MessageEvent) => void Defines the event handler to be called when the worker thread receives a message that cannot be deserialized. The event handler is executed in the worker thread. @@ -1340,7 +1817,7 @@ Defines the event handler to be called when the worker thread receives a message | Name| Type | Mandatory| Description | | ------ | ------------------------------ | ---- | ---------- | | this | [DedicatedWorkerGlobalScope](#dedicatedworkerglobalscopedeprecated) | Yes | Caller.| -| event | [MessageEvent](#messageeventt) | Yes | Error data.| +| ev | [MessageEvent](#messageevent)| Yes | Error data.| **Example** @@ -1376,10 +1853,10 @@ Defines the event. **System capability**: SystemCapability.Utils.Lang -| Name | Type | Readable| Writable| Description | -| --------- | ------ | ---- | ---- | ---------------------------------- | -| type | string | Yes | No | Type of the event. | -| timeStamp | number | Yes | No | Timestamp (accurate to millisecond) when the event is created.| +| Name | Type | Readable| Writable| Description | +| --------- | ------ | ---- | ---- | -------------------------------------------- | +| type | string | Yes | No | Type of the event. | +| timeStamp | number | Yes | No | Timestamp (accurate to millisecond) when the event is created. This parameter is not supported yet.| ## EventListener(deprecated) @@ -1525,14 +2002,14 @@ workerInstance.onmessage = function(d) { ```js // worker.js import worker from '@ohos.worker'; -const parentPort = worker.workerPort; +const workerPort = worker.workerPort; class MyModel { name = "undefined" Init() { this.name = "MyModel" } } -parentPort.onmessage = function(d) { +workerPort.onmessage = function(d) { console.log("worker.js onmessage"); let data = d.data; let func1 = function() { @@ -1546,14 +2023,14 @@ parentPort.onmessage = function(d) { } } let obj2 = new MyModel(); - // parentPort.postMessage(func1); A serialization error occurs when passing func1. - // parentPort.postMessage(obj1); A serialization error occurs when passing obj1. - parentPort.postMessage(obj2); // No serialization error occurs when passing obj2. + // workerPort.postMessage(func1); A serialization error occurs when passing func1. + // workerPort.postMessage(obj1); A serialization error occurs when passing obj1. + workerPort.postMessage(obj2); // No serialization error occurs when passing obj2. } -parentPort.onmessageerror = function(e) { +workerPort.onmessageerror = function(e) { console.log("worker.js onmessageerror"); } -parentPort.onerror = function(e) { +workerPort.onerror = function(e) { console.log("worker.js onerror"); } ``` @@ -1571,6 +2048,7 @@ Each actor concurrently processes tasks of the main thread. For each actor, ther - Since API version 9, if a **Worker** instance in a non-running state (such as destroyed or being destroyed) calls an API, a business error is thrown. - Creating and terminating worker threads consume performance. Therefore, you are advised to manage available workers and reuse them. - Do not use both **new worker.Worker** and **new worker.ThreadWorker** to create a **Worker** project. Otherwise, **Worker** functions abnormally. Since API version 9, you are advised to use [new worker.ThreadWorker](#constructor9). In API version 8 and earlier versions, you are advised to use [new worker.Worker](#constructordeprecated). +- When creating a **Worker** project, do not import any UI construction method (such as .ets file) to the worker thread file (for example, **worker.ts** used in this document). Otherwise, the worker module becomes invalid. To check whether any UI construction method has been imported, decompress the generated HAP file, find **worker.js** in the directory where the worker thread is created, and search for the keyword **View** globally. If the keyword exists, a UI construction method has been packaged in **worker.js**. If this is your case, change the directory level of **src** in the statement **import "xxx" from src** in the worker thread file. ## Sample Code > **NOTE**
        @@ -1611,23 +2089,23 @@ workerInstance.onexit = function() { import worker from '@ohos.worker'; // Create an object in the worker thread for communicating with the main thread. -const parentPort = worker.workerPort +const workerPort = worker.workerPort // In versions earlier than API version 9, use the following to create an object in the worker thread for communicating with the main thread. // const parentPort = worker.parentPort // The worker thread receives information from the main thread. -parentPort.onmessage = function(e) { +workerPort.onmessage = function(e) { // data carries the information sent by the main thread. let data = e.data; console.log("worker.ts onmessage"); // The worker thread sends information to the main thread. - parentPort.postMessage("123") + workerPort.postMessage("123") } // Trigger a callback when an error occurs in the worker thread. -parentPort.onerror= function(e) { +workerPort.onerror= function(e) { console.log("worker.ts onerror"); } ``` @@ -1636,7 +2114,7 @@ Configuration of the **build-profile.json5** file: "buildOption": { "sourceOption": { "workers": [ - "./src/main/ets/MainAbility/workers/worker.ts" + "./src/main/ets/entryability/workers/worker.ts" ] } } @@ -1673,20 +2151,20 @@ workerInstance.onexit = function() { import worker from '@ohos.worker'; // Create an object in the worker thread for communicating with the main thread. -const parentPort = worker.workerPort +const workerPort = worker.workerPort // The worker thread receives information from the main thread. -parentPort.onmessage = function(e) { +workerPort.onmessage = function(e) { // data carries the information sent by the main thread. let data = e.data; console.log("worker.ts onmessage"); // The worker thread sends information to the main thread. - parentPort.postMessage("123") + workerPort.postMessage("123") } // Trigger a callback when an error occurs in the worker thread. -parentPort.onerror= function(e) { +workerPort.onerror= function(e) { console.log("worker.ts onerror"); } ``` diff --git a/en/application-dev/reference/apis/js-apis-xml.md b/en/application-dev/reference/apis/js-apis-xml.md index ec3549a405..2f793c39a2 100644 --- a/en/application-dev/reference/apis/js-apis-xml.md +++ b/en/application-dev/reference/apis/js-apis-xml.md @@ -32,9 +32,16 @@ A constructor used to create an **XmlSerializer** instance. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); -let bufView = new DataView(arrayBuffer); -let thatSer = new xml.XmlSerializer(bufView); +let arrayBuffer = new ArrayBuffer(2048); +let thatSer = new xml.XmlSerializer(arrayBuffer,"utf-8"); +thatSer.setDeclaration(); +let result = ''; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) // ``` @@ -56,12 +63,19 @@ Sets an attribute. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); -let bufView = new DataView(arrayBuffer); -let thatSer = new xml.XmlSerializer(bufView); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); +let thatSer = new xml.XmlSerializer(arrayBuffer); thatSer.startElement("note"); -thatSer.setAttributes("importance", "high"); -thatSer.endElement(); +thatSer.setAttributes("importance1", "high1"); +thatSer.endElement(); +let result = ''; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) // ``` @@ -82,10 +96,17 @@ Adds an empty element. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); -let bufView = new DataView(arrayBuffer); -let thatSer = new xml.XmlSerializer(bufView); -thatSer.addEmptyElement("b"); // => +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); +let thatSer = new xml.XmlSerializer(arrayBuffer); +thatSer.addEmptyElement("d"); +let result = ''; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) // ``` @@ -100,10 +121,20 @@ Sets a declaration. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); -let bufView = new DataView(arrayBuffer); -let thatSer = new xml.XmlSerializer(bufView); -thatSer.setDeclaration() // => ; +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); +let thatSer = new xml.XmlSerializer(arrayBuffer); +thatSer.setDeclaration(); +thatSer.setNamespace("h", "http://www.w3.org/TR/html4/"); +thatSer.startElement("note"); +thatSer.endElement(); +let result = '\r\n'; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) // ``` @@ -124,13 +155,22 @@ Writes the start tag based on the given element name. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); let thatSer = new xml.XmlSerializer(arrayBuffer); -thatSer.startElement("notel"); -thatSer.endElement();// => ''; +thatSer.setDeclaration(); +thatSer.setNamespace("h", "http://www.w3.org/TR/html4/"); +thatSer.startElement("note"); +thatSer.endElement(); +let result = '\r\n'; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(JSON.stringify(view1)) //\r\n ``` - ### endElement endElement(): void @@ -142,14 +182,20 @@ Writes the end tag of the element. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); -let bufView = new DataView(arrayBuffer); -let thatSer = new xml.XmlSerializer(bufView); -thatSer.setNamespace("h", "https://www.w3.org/TR/html4/"); -thatSer.startElement("table"); -thatSer.setAttributes("importance", "high"); -thatSer.setText("Happy"); -thatSer.endElement(); // => Happy +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); +let thatSer = new xml.XmlSerializer(arrayBuffer); +thatSer.setDeclaration(); +thatSer.setNamespace("h", "http://www.w3.org/TR/html4/"); +thatSer.startElement("note"); +thatSer.endElement(); +let result = '\r\n'; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(JSON.stringify(view1)) //\r\n ``` @@ -171,12 +217,20 @@ Sets the namespace for an element tag. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); let thatSer = new xml.XmlSerializer(arrayBuffer); thatSer.setDeclaration(); -thatSer.setNamespace("h", "https://www.w3.org/TR/html4/"); +thatSer.setNamespace("h", "http://www.w3.org/TR/html4/"); thatSer.startElement("note"); -thatSer.endElement();// = >'\r\n'; +thatSer.endElement(); +let result = '\r\n'; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(JSON.stringify(view1)) //\r\n ``` ### setComment @@ -196,11 +250,17 @@ Sets the comment. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); let thatSer = new xml.XmlSerializer(arrayBuffer); -thatSer.startElement("note"); -thatSer.setComment("Hi!"); -thatSer.endElement(); // => '\r\n \r\n'; +thatSer.setComment("Hello, World!"); +let result = ''; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) //' ``` @@ -221,9 +281,17 @@ Sets CDATA attributes. **Example** ```js -let arrayBuffer = new ArrayBuffer(1028); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); let thatSer = new xml.XmlSerializer(arrayBuffer); -thatSer.setCDATA('root SYSTEM') // => ''; +thatSer.setCDATA('root SYSTEM') +let result = ''; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) //''' ``` @@ -244,12 +312,20 @@ Sets **Text**. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); let thatSer = new xml.XmlSerializer(arrayBuffer); thatSer.startElement("note"); thatSer.setAttributes("importance", "high"); thatSer.setText("Happy1"); -thatSer.endElement(); // => 'Happy1'; +thatSer.endElement(); +let result = 'Happy1'; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) // 'Happy1' ``` @@ -270,9 +346,17 @@ Sets **DocType**. **Example** ```js -let arrayBuffer = new ArrayBuffer(1024); +const myMAX = 2048; +let arrayBuffer = new ArrayBuffer(myMAX); let thatSer = new xml.XmlSerializer(arrayBuffer); -thatSer.setDocType('root SYSTEM'); // => ''; +thatSer.setDocType('root SYSTEM "http://www.test.org/test.dtd"'); +let result = ''; +let view = new Uint8Array(arrayBuffer); +let view1 = ""; +for (let i = 0; i < result.length; ++i) { + view1 = view1 + String.fromCodePoint(view[i]); +} +console.log(view1) //'' ``` @@ -298,19 +382,40 @@ Creates and returns an **XmlPullParser** object. The **XmlPullParser** object pa ```js let strXml = - '' + - '' + - ' Happy' + - ' Work' + - ' Play' + - ''; + '' + + ']>' + + '' + + ' ' + + ' ' + + ' John & Hans' + + ' Happy' + + ' Happy' + + ' Work' + + ' Play' + + ' ' + + ' ' + + ' ' + + ' ' + + ' Apples' + + ' Bananas' + + ' ' + + ' ' + + ''; let arrayBuffer = new ArrayBuffer(strXml.length); let bufView = new Uint8Array(arrayBuffer); let strLen = strXml.length; -for (var i = 0; i < strLen; ++i) { - bufView[i] = strXml.charCodeAt(i);// Set the ArrayBuffer mode. +for (let i = 0; i < strLen; ++i) { + bufView[i] = strXml.charCodeAt(i); } -let that = new xml.XmlPullParser(arrayBuffer); +let that = new xml.XmlPullParser(arrayBuffer, 'UTF-8'); +let str1 = ''; +function func1(name, value){ + str1 += name+':'+value; + return true; +} +let options = {supportDoctype:true, ignoreNameSpace:true, tagValueCallbackFunction:func1} +that.parse(options); +console.log(str1) //'note:company:title:title:lens:lens:a:b:h:table:h:tr:h:td:h:td:' ``` @@ -341,7 +446,7 @@ let strXml = let arrayBuffer = new ArrayBuffer(strXml.length); let bufView = new Uint8Array(arrayBuffer); let strLen = strXml.length; -for (var tmp = 0; tmp < strLen; ++tmp) { +for (let tmp = 0; tmp < strLen; ++tmp) { bufView[tmp] = strXml.charCodeAt(tmp); } let that = new xml.XmlPullParser(arrayBuffer); @@ -399,6 +504,38 @@ Obtains the column line number, starting from 1. | ------ | -------------- | | number | Column number obtained.| +**Example** + +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getColumnNumber(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:1key:2 value:77key:10 value:81key:2 value:88key:4 value:93key:3 value:101key:10 value:105key:2 value:111key:4 value:115key:3 value:122key:10 value:126key:2 value:132key:4 value:136key:3 value:143key:3 value:150key:1 value:299 +``` ### getDepth @@ -414,6 +551,41 @@ Obtains the depth of this element. | ------ | -------------------- | | number | Depth obtained.| +**Example** + +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getDepth(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:0key:2 value:1key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:10 value:1key:2 value:2key:4 value:2key:3 value:2key:3 value:1key:1 value:0 +// Note: +// key indicates the event type, and value indicates the parsing depth. You can learn the specific parsed event based on EVENTTYPE. In this example, key: value means: +// 0(START_DOCUMENT):0 (START_DOCUMENT is being parsed, and the depth is 0), 2(START_TAG):1 (START_TAG is being parsed, and the depth is 1), 10(WHITESPACE):1 (WHITESPACE is being parsed, and the depth is 1), 2(START_TAG):2 (START_TAG is being parsed, and the depth is 2), ... +``` ### getLineNumber @@ -429,6 +601,38 @@ Obtains the current line number, starting from 1. | ------ | -------------- | | number | Line number obtained.| +**Example** + +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getLineNumber(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:1key:2 value:1key:10 value:1key:2 value:1key:4 value:1key:3 value:1key:10 value:1key:2 value:1key:4 value:1key:3 value:1key:10 value:1key:2 value:1key:4 value:1key:3 value:1key:3 value:1key:1 value:1 +``` ### getName @@ -444,7 +648,38 @@ Obtains the name of this element. | ------ | ------------------ | | string | Element name obtained.| +**Example** +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getName(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:key:2 value:notekey:10 value:key:2 value:titlekey:4 value:key:3 value:titlekey:10 value:key:2 value:todokey:4 value:key:3 value:todokey:10 value:key:2 value:todokey:4 value:key:3 value:todokey:3 value:notekey:1 value: +``` ### getNamespace getNamespace(): string @@ -459,7 +694,38 @@ Obtains the namespace of this element. | ------ | ------------------------ | | string | Namespace obtained.| +**Example** +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getNamespace(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:key:2 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:3 value:key:1 value: +``` ### getPrefix getPrefix(): string @@ -474,6 +740,38 @@ Obtains the prefix of this element. | ------ | ------------------ | | string | Element prefix obtained.| +**Example** + +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getPrefix(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:key:2 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:10 value:key:2 value:key:4 value:key:3 value:key:3 value:key:1 value: +``` ### getText @@ -489,7 +787,38 @@ Obtains the text of the current event. | ------ | ------------------------ | | string | Text content obtained.| +**Example** +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getText(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:key:2 value:key:10 value: key:2 value:key:4 value:Happykey:3 value:key:10 value: key:2 value:key:4 value:Workkey:3 value:key:10 value: key:2 value:key:4 value:Playkey:3 value:key:3 value:key:1 value: +``` ### isEmptyElementTag isEmptyElementTag(): boolean @@ -504,7 +833,38 @@ Checks whether the current element is empty. | ------- | ---------------------------- | | boolean | Returns **true** if the element is empty; returns **false** otherwise.| +**Example** +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.isEmptyElementTag(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:falsekey:2 value:falsekey:10 value:falsekey:2 value:falsekey:4 value:falsekey:3 value:falsekey:10 value:falsekey:2 value:falsekey:4 value:falsekey:3 value:falsekey:10 value:falsekey:2 value:falsekey:4 value:falsekey:3 value:falsekey:3 value:falsekey:1 value:false +``` ### isWhitespace isWhitespace(): boolean @@ -519,7 +879,38 @@ Checks whether the current text event contains only whitespace characters. | ------- | -------------------------------------- | | boolean | Returns **true** if the text event contains only whitespace characters; returns **false** otherwise.| +**Example** +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.isWhitespace(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:truekey:2 value:falsekey:10 value:truekey:2 value:truekey:4 value:falsekey:3 value:truekey:10 value:truekey:2 value:truekey:4 value:falsekey:3 value:truekey:10 value:truekey:2 value:truekey:4 value:falsekey:3 value:truekey:3 value:truekey:1 value:true +``` ### getAttributeCount getAttributeCount(): number @@ -533,6 +924,38 @@ Obtains the number of attributes for the current start tag. | ------ | ---------------------- | | number | Number of attributes obtained.| +**Example** + +```js +let strXml = + '' + + '' + + ' Happy' + + ' Work' + + ' Play' + + ''; +let arrayBuffer = new ArrayBuffer(strXml.length); +let bufView = new Uint8Array(arrayBuffer); +let strLen = strXml.length; +for (let tmp = 0; tmp < strLen; ++tmp) { + bufView[tmp] = strXml.charCodeAt(tmp); +} +let that = new xml.XmlPullParser(arrayBuffer); +let arrTag = {}; +let str = ""; +let i = 0; +function func(key, value){ + arrTag[i] = 'key:'+key+' value:'+ value.getAttributeCount(); + str += arrTag[i]; + i++; + return true; // Determines whether to continuely parse, which is used to continue or terminate parsing. +} +let options = {supportDoctype:true, ignoreNameSpace:true, tokenValueCallbackFunction:func} +that.parse(options); +console.log(str); +// Output: +// key:0 value:0key:2 value:2key:10 value:0key:2 value:0key:4 value:0key:3 value:0key:10 value:0key:2 value:0key:4 value:0key:3 value:0key:10 value:0key:2 value:0key:4 value:0key:3 value:0key:3 value:0key:1 value:0 +``` ## EventType diff --git a/en/application-dev/reference/apis/js-apis-zlib.md b/en/application-dev/reference/apis/js-apis-zlib.md index aa7d700534..8ab71a62dd 100644 --- a/en/application-dev/reference/apis/js-apis-zlib.md +++ b/en/application-dev/reference/apis/js-apis-zlib.md @@ -1,6 +1,6 @@ -# @ohos.zlib +# @ohos.zlib (Zip) -The **zlib** module provides APIs for file compression and decompression. +The **Zip** module provides APIs for file compression and decompression. > **NOTE** > @@ -25,7 +25,7 @@ Zips a file. This API uses a promise to return the result. | Name | Type | Mandatory| Description | | ------- | ------------------- | ---- | ------------------------------------------------------------ | -| inFile | string | Yes | Path of the folder or file to zip. For details about the path, see [FA Model](js-apis-inner-app-context.md) or [Stage Model](js-apis-application-context.md).| +| inFile | string | Yes | Path of the folder or file to zip. The path must be an application sandbox path, which can be obtained from the context. For details about the context, see [FA Model](js-apis-inner-app-context.md) and [Stage Model] (js-apis-application-context.md).| | outFile | string | Yes | Path of the zipped file. The file name extension is .zip. | | options | [Options](#options) | Yes | Optional parameters for the zip operation. | @@ -39,6 +39,7 @@ Zips a file. This API uses a promise to return the result. ```typescript // Zip a file. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xxx/filename.xxx'; let outFile = '/xxx/xxx.zip'; @@ -59,6 +60,7 @@ zlib.zipFile(inFile, outFile, options).then((data) => { ```typescript // Zip a folder. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xxx/xxx'; let outFile = '/xxx/xxx.zip'; @@ -89,7 +91,7 @@ Unzips a file. This API uses a promise to return the result. | Name | Type | Mandatory| Description | | ------- | ------------------- | ---- | ------------------------------------------------------------ | -| inFile | string | Yes | Path of the folder or file to unzip. For details about the path, see [FA Model](js-apis-inner-app-context.md) or [Stage Model](js-apis-application-context.md).| +| inFile | string | Yes | Path of the file to unzip. The path must be an application sandbox path, which can be obtained from the context. For details about the context, see [FA Model](js-apis-inner-app-context.md) and [Stage Model] (js-apis-application-context.md).| | outFile | string | Yes | Path of the unzipped file. | | options | [Options](#options) | Yes | Optional parameters for the unzip operation. | @@ -103,6 +105,7 @@ Unzips a file. This API uses a promise to return the result. ```typescript // Unzip a file. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xx/xxx.zip'; let outFile = '/xxx'; @@ -131,7 +134,7 @@ Compresses a file. This API uses an asynchronous callback to return the result. | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | ------------------------------------------------------------ | -| inFile | string | Yes | Path of the folder or file to compress. For details about the path, see [FA Model](js-apis-inner-app-context.md) or [Stage Model](js-apis-application-context.md).| +| inFile | string | Yes | Path of the folder or file to compress. The path must be an application sandbox path, which can be obtained from the context. For details about the context, see [FA Model](js-apis-inner-app-context.md) and [Stage Model] (js-apis-application-context.md).| | outFile | string | Yes | Path of the compressed file. | | options | [Options](#options) | Yes | Compression parameters. | | AsyncCallback<**void**> | callback | No | Callback used to return the result. If the operation is successful, **null** is returned; otherwise, a specific error code is returned. | @@ -141,14 +144,14 @@ Compresses a file. This API uses an asynchronous callback to return the result. For details about the error codes, see [zlib Error Codes](../errorcodes/errorcode-zlib.md). | ID| Error Message | | -------- | --------------------------------------| -| 900001 | The Input source file is invalid. | -| 900002 | The Input destination file is invalid. | +| 900001 | The input source file is invalid. | +| 900002 | The input destination file is invalid. | **Example** ```typescript // Compress a file. -// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through context. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xxx/filename.xxx'; let outFile = '/xxx/xxx.zip'; @@ -179,7 +182,7 @@ Compresses a file. This API uses a promise to return the result. | Name | Type | Mandatory| Description | | ------- | ------------------- | ---- | ------------------------------------------------------------ | -| inFile | string | Yes | Path of the folder or file to compress. For details about the path, see [FA Model](js-apis-inner-app-context.md) or [Stage Model](js-apis-application-context.md).| +| inFile | string | Yes | Path of the folder or file to compress. The path must be an application sandbox path, which can be obtained from the context. For details about the context, see [FA Model](js-apis-inner-app-context.md) and [Stage Model] (js-apis-application-context.md).| | outFile | string | Yes | Path of the compressed file. | | options | [Options](#options) | Yes | Compression parameters. | @@ -189,12 +192,12 @@ For details about the error codes, see [zlib Error Codes](../errorcodes/errorcod | ID| Error Message | | -------- | ------------------------------------- | -| 900001 | The Input source file is invalid. | -| 900002 | The Input destination file is invalid. | +| 900001 | The input source file is invalid. | +| 900002 | The input destination file is invalid. | ```typescript // Compress a file. -// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through context. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xxx/filename.xxx'; let outFile = '/xxx/xxx.zip'; @@ -229,7 +232,7 @@ Decompresses a file. This API uses an asynchronous callback to return the result | Name | Type | Mandatory| Description | | ----------------------- | ------------------- | ---- | ------------------------------------------------------------ | -| inFile | string | Yes | Path of the file to decompress. For details about the path, see [FA Model](js-apis-inner-app-context.md) or [Stage Model](js-apis-application-context.md).| +| inFile | string | Yes | Path of the file to decompress. The path must be an application sandbox path, which can be obtained from the context. For details about the context, see [FA Model](js-apis-inner-app-context.md) and [Stage Model] (js-apis-application-context.md).| | outFile | string | Yes | Path of the decompressed file. | | options | [Options](#options) | Yes | Decompression parameters. | | AsyncCallback<**void**> | callback | No | Callback used to return the result. If the operation is successful, **null** is returned; otherwise, a specific error code is returned. | @@ -240,14 +243,14 @@ For details about the error codes, see [zlib Error Codes](../errorcodes/errorcod | ID| Error Message | -------- | --------------------------------------| -| 900001 | The Input source file is invalid. | -| 900002 | The Input destination file is invalid. | +| 900001 | The input source file is invalid. | +| 900002 | The input destination file is invalid. | **Example** ```typescript // Decompress a file. -// The path used in the code must be the application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through context. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xx/xxx.zip'; let outFile = '/xxx'; @@ -270,7 +273,7 @@ try { decompressFile(inFile: string, outFile: string, options: Options): Promise\; -Decompress a file. This API uses a promise to return the result. +Decompresses a file. This API uses a promise to return the result. **System capability**: SystemCapability.BundleManager.Zlib @@ -278,7 +281,7 @@ Decompress a file. This API uses a promise to return the result. | Name | Type | Mandatory| Description | | ------- | ------------------- | ---- | ------------------------------------------------------------ | -| inFile | string | Yes | Path of the file to decompress. For details about the path, see [FA Model](js-apis-inner-app-context.md) or [Stage Model](js-apis-application-context.md).| +| inFile | string | Yes | Path of the file to decompress. The path must be an application sandbox path, which can be obtained from the context. For details about the context, see [FA Model](js-apis-inner-app-context.md) and [Stage Model] (js-apis-application-context.md).| | outFile | string | Yes | Path of the decompressed file. | | options | [Options](#options) | Yes | Decompression parameters. | @@ -288,12 +291,12 @@ For details about the error codes, see [zlib Error Codes](../errorcodes/errorcod | ID| Error Message | | ------ | ------------------------------------- | -| 900001 | The Input source file is invalid. | -| 900002 | The Input destination file is invalid. | +| 900001 | The input source file is invalid. | +| 900002 | The input destination file is invalid. | ```typescript // Decompress a file. -// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through context. +// The path used in the code must be an application sandbox path, for example, /data/storage/el2/base/haps. You can obtain the path through the context. import zlib from '@ohos.zlib'; let inFile = '/xx/xxx.zip'; let outFile = '/xxx'; -- GitLab From c660a22101be1149abc71f083ef173891d2d4cc1 Mon Sep 17 00:00:00 2001 From: "ester.zhou" Date: Tue, 17 Jan 2023 18:36:13 +0800 Subject: [PATCH 302/383] Update docs (0117) Signed-off-by: ester.zhou --- en/application-dev/faqs/faqs-language.md | 6 ++++-- en/application-dev/reference/arkui-ts/ts-container-flex.md | 4 ++-- .../reference/arkui-ts/ts-container-swiper.md | 2 +- .../js-service-widget-ui/js-service-widget-common-styles.md | 2 +- .../js-service-widget-custom-basic-usage.md | 2 +- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/en/application-dev/faqs/faqs-language.md b/en/application-dev/faqs/faqs-language.md index db7e95d5ed..22a450b4c8 100644 --- a/en/application-dev/faqs/faqs-language.md +++ b/en/application-dev/faqs/faqs-language.md @@ -155,7 +155,9 @@ The global function **encodeURI** is used for URI encoding, and **decodeURI** is Applicable to: OpenHarmony SDK 3.2.5.5, stage model of API version 9 -Yes. The **convert** API of the **convertxml** module can be used to convert XML text into JavaScript objects. Reference: [@ohos.convertxml](../reference/apis/js-apis-convertxml.md) +Yes. The **convert** API of the **convertxml** module can be used to convert XML text into JavaScript objects. + +Reference: [@ohos.convertxml](../reference/apis/js-apis-convertxml.md) ## How do I configure application icons to be used across devices? @@ -287,4 +289,4 @@ Applicable to: OpenHarmony SDK 3.2.5.5, stage model of API version 9 No. Relational database operations cannot be performed in the worker thread. - \ No newline at end of file + \ No newline at end of file diff --git a/en/application-dev/reference/arkui-ts/ts-container-flex.md b/en/application-dev/reference/arkui-ts/ts-container-flex.md index 5b8c2e1044..a2de237b09 100644 --- a/en/application-dev/reference/arkui-ts/ts-container-flex.md +++ b/en/application-dev/reference/arkui-ts/ts-container-flex.md @@ -4,7 +4,7 @@ The **\** component allows for flexible layout of child components. > **NOTE** > - This component is supported since API version 7. Updates will be marked with a superscript to indicate their earliest API version. -> - The **\** component adapts the layout of flex items during rendering. This may affect the performance. Therefore, you are advised to use **[Column](ts-container-column.md)** or **[Row](ts-container-row.md)** instead under scenarios where consistently high performance is required. +> - The **\** component adapts the layout of flex items during rendering. This may affect the performance. Therefore, you are advised to use **[\](ts-container-column.md)** or **[\](ts-container-row.md)** instead under scenarios where consistently high performance is required. ## Required Permissions @@ -30,7 +30,7 @@ Creates a standard **\** component. | wrap | [FlexWrap](ts-appendix-enums.md#flexwrap) | No | FlexWrap.NoWrap | Whether the **\** component has a single line or multiple lines. | | justifyContent | [FlexAlign](ts-appendix-enums.md#flexalign) | No | FlexAlign.Start | Alignment mode of the child components in the **\** component along the main axis. | | alignItems | [ItemAlign](ts-appendix-enums.md#itemalign) | No | ItemAlign.Start | Alignment mode of the child components in the **\** component along the cross axis. | - | alignContent | [FlexAlign](ts-appendix-enums.md#flexalign) | No | FlexAlign.Start | Alignment mode of the child components in a multi-line **** component along the cross axis. This parameter is valid only when **wrap** is set to **Wrap** or **WrapReverse**.| + | alignContent | [FlexAlign](ts-appendix-enums.md#flexalign) | No | FlexAlign.Start | Alignment mode of the child components in a multi-line **\** component along the cross axis. This parameter is valid only when **wrap** is set to **Wrap** or **WrapReverse**. | ## Example diff --git a/en/application-dev/reference/arkui-ts/ts-container-swiper.md b/en/application-dev/reference/arkui-ts/ts-container-swiper.md index dc3c3e9859..849218cf45 100644 --- a/en/application-dev/reference/arkui-ts/ts-container-swiper.md +++ b/en/application-dev/reference/arkui-ts/ts-container-swiper.md @@ -54,7 +54,7 @@ In addition to the [universal attributes](ts-universal-attributes-size.md), the ## SwiperController -Controller of the **\** component. You can bind this object to the **** component and use it to control page switching. +Controller of the **\** component. You can bind this object to the **\** component and use it to control page switching. ### showNext diff --git a/en/application-dev/reference/js-service-widget-ui/js-service-widget-common-styles.md b/en/application-dev/reference/js-service-widget-ui/js-service-widget-common-styles.md index cbf1f5fcb5..31b25496a0 100644 --- a/en/application-dev/reference/js-service-widget-ui/js-service-widget-common-styles.md +++ b/en/application-dev/reference/js-service-widget-ui/js-service-widget-common-styles.md @@ -55,5 +55,5 @@ You can set universal styles for components in the **style** attribute or **.css | image-fill | <color> | - | Fill color for SVG images. The following components (and attributes) are supported: **button** (**icon** attribute) and **image** (**src** attribute).
        The **fill** color value in the SVG image file is replaced with the value of **image-fill** during rendering, and is valid only for the fill attribute that is declared in the SVG image.| | clip-path | [ <geometry-box> \|<basic-shape> ] \| none | - | Clip area of the component. Only the content within this area is displayed.
        **\**: applicable scope of the clip area's width and height. The default value is **border-box**. Available values are as follows:
        - **margin-box**: The width and height includes the margin.
        - **border-box**: The width and height includes the border.
        - **padding-box**: The width and height includes the padding.
        - **content-box**: The width and height does not include any margin, border, or padding.
        **\**: shape of the clip area. Available values include:
        - **inset**, in the format of inset( <percentage>{1,4} [ round <'border-radius'> ]? )
        - **circle**, in the format of circle( [ <percentage> ]? [ at <percentage> <percentage> ]? )
        - **ellipse**, in the format of ellipse( [ <percentage>{2} ]? [ at <percentage> <percentage> ]? )
        - **polygon**, in the format of polygon( [ <percentage> <percentage> ]\# )
        - **path**, in the format of path( <string> )| | mask-image | - <linear-gradient>
        - string | - | Image used for the mask of the component:
        Gradient color mask, for example, **linear-gradient(to left, black, white)**.
        Solid color mask, for example, **linear-gradient(to right, grey , grey)**.
        Mask filled by a local SVG image, for example, **url(common/mask.svg)**| -| mask-size | - string
        - <length><length>
        - <percentage> <percentage> | auto | Display size of the mask image. The setting is valid only when **mask-image** is set to an image source.
        The **string** values are as follows:
        - **contain**: extends the image to the maximum size so that its height and width are fully applicable to the content area.
        - **cover**: extends the image to a large enough size so that it completely covers the background area. Some parts of the image may not be displayed in the background area.
        - **auto**: retains the original aspect ratio of the image.
        The two **\** values are as follows: The first value indicates the width, and the second value indicates the height. If you only set one value, the other value is set to **auto** by default.
        The two **** values indicate the image size in relative to the original image size. The first value indicates the width, and the second value indicates the height. If you only set one value, the other value is set to **auto** by default.| +| mask-size | - string
        - <length><length>
        - <percentage> <percentage> | auto | Display size of the mask image. The setting is valid only when **mask-image** is set to an image source.
        The **string** values are as follows:
        - **contain**: extends the image to the maximum size so that its height and width are fully applicable to the content area.
        - **cover**: extends the image to a large enough size so that it completely covers the background area. Some parts of the image may not be displayed in the background area.
        - **auto**: retains the original aspect ratio of the image.
        The two **\** values are as follows: The first value indicates the width, and the second value indicates the height. If you only set one value, the other value is set to **auto** by default.
        The two **\** values indicate the image size in relative to the original image size. The first value indicates the width, and the second value indicates the height. If you only set one value, the other value is set to **auto** by default. | | mask-position | - string string
        - <length> <length>
        - <percentage> <percentage> | 0px 0px | Display position of the mask image. The setting is valid only when **mask-image** is set to an image source. Using keywords: If only one keyword is specified, the other value is **center** by default. The two values define the horizontal position and vertical position, respectively.
        The **string** values are as follows:
        - **left**: leftmost in the horizontal direction.
        - **right**: rightmost in the horizontal direction.
        - **top**: top in the vertical direction.
        - **bottom**: bottom in the vertical direction.
        - **center**: center position.
        Using **\**: The first value indicates the horizontal position, and the second value indicates the vertical position. For the upper left corner, the value is 0 0 in px (**0px 0px**). If only one value is specified, the other one is **50%**.
        Using **\**: The first value indicates the horizontal position, and the second value indicates the vertical position. For the upper left corner, the value is 0% 0%. For the lower right corner, the value is **100% 100%**. If only one value is specified, the other one is **50%**.
        Using both **\** and **\**.| diff --git a/en/application-dev/reference/js-service-widget-ui/js-service-widget-custom-basic-usage.md b/en/application-dev/reference/js-service-widget-ui/js-service-widget-custom-basic-usage.md index 9dbecd2d91..1622e3755d 100644 --- a/en/application-dev/reference/js-service-widget-ui/js-service-widget-custom-basic-usage.md +++ b/en/application-dev/reference/js-service-widget-ui/js-service-widget-custom-basic-usage.md @@ -24,7 +24,7 @@ Custom components are existing components encapsulated based on service requirem | Name| Type| Description| | -------- | -------- | -------- | | data | Object | Data model of the page. The name cannot start with a dollar sign ($) or underscore (_). Do not use reserved words (**for**, **if**, **show**, and **tid**).| -| props | Array/Object | Used for communication between components. This attribute can be transferred to components via ****. A **props** name must be in lowercase and cannot start with a dollar sign ($) or underscore (_). Do not use reserved words (**for**, **if**, **show**, and **tid**). Currently, **props** does not support functions.| +| props | Array/Object | Used for communication between components. This attribute can be transferred to components via **\**. A **props** name must be in lowercase and cannot start with a dollar sign ($) or underscore (_). Do not use reserved words (**for**, **if**, **show**, and **tid**). Currently, **props** does not support functions. | ## Adding a Custom Event -- GitLab From cfc7d4e5856a8f759a57c3aff0e7e0188be838fb Mon Sep 17 00:00:00 2001 From: dwx1032708 Date: Tue, 17 Jan 2023 11:12:41 +0000 Subject: [PATCH 303/383] update zh-cn/application-dev/reference/apis/js-apis-uri.md. Signed-off-by: dwx1032708 --- zh-cn/application-dev/reference/apis/js-apis-uri.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/reference/apis/js-apis-uri.md b/zh-cn/application-dev/reference/apis/js-apis-uri.md index 3c08e32b72..6cc9eef1ee 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-uri.md +++ b/zh-cn/application-dev/reference/apis/js-apis-uri.md @@ -35,7 +35,7 @@ import uri from '@ohos.uri' 标准uri定义由以下三个部分组成 [scheme:]scheme-specific-part[#fragment] -- Scheme: 协议名,根据需要填写。例如http、https、ftp、datashare、dataability等。 +- scheme: 协议名,根据需要填写。例如http、https、ftp、datashare、dataability等。 - scheme-specific-part: URI的特定解码方案特定部分,由[//][authority][path][?query]组成,根据需要填写。 - authority: URI的解码权限组件部分。由[userinfo@]host[:port]组成,根据需要填写。 - userinfo: 用户信息,根据需要填写。 -- GitLab From 742805990d171c96edd2deaf5658b39248bc3ac8 Mon Sep 17 00:00:00 2001 From: mali Date: Tue, 17 Jan 2023 19:21:00 +0800 Subject: [PATCH 304/383] Camera development and interface document update-01 Signed-off-by: mali --- zh-cn/application-dev/media/camera.md | 2 +- .../figures/camera_framework_process.jpg | Bin 2035911 -> 0 bytes .../figures/camera_framework_process.png | Bin 0 -> 860590 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 zh-cn/application-dev/media/figures/camera_framework_process.jpg create mode 100644 zh-cn/application-dev/media/figures/camera_framework_process.png diff --git a/zh-cn/application-dev/media/camera.md b/zh-cn/application-dev/media/camera.md index bd716b3cd3..49c42eb12d 100644 --- a/zh-cn/application-dev/media/camera.md +++ b/zh-cn/application-dev/media/camera.md @@ -512,4 +512,4 @@ captureSession = null ## 流程图 应用使用相机的流程示意图如下 -![camera_framework process](figures/camera_framework_process.jpg) \ No newline at end of file +![camera_framework process](figures/camera_framework_process.png) \ No newline at end of file diff --git a/zh-cn/application-dev/media/figures/camera_framework_process.jpg b/zh-cn/application-dev/media/figures/camera_framework_process.jpg deleted file mode 100644 index 91f88cc6d5b0372031236be55f5785f49b33e2b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2035911 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

        qoh^eVPf>e@!hj#7X+$9XZ%XH%4yUb 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%0A@(T8qSa; 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"qVZ9X|9#9BQp6uUgQ^$ZQ9I}221b# zsY=sZ-(z01DVCgB*ZkIl-g(&7I`R$07iDYz#r)u59>M(WyKg?UEx=&%kx1@cB53( ztu3`%)tybe>H{6X^g*oZkO4`;M>IM9%=J*5lsV}`kwR(z{k3iD*vP$&z{>F-h{(b~_{;8_enl9)dG^@LS=B{23 zx7Rmtvn;Xj=&DBL^&&WMe%s};0&0pKw29ekmP0_JZ%?9$xw^T-!vTxj=kOeZB_VFD@jeY9*@PNhispylgf9Y` zUSA5D%Q(kdi2D5C_Rj?a1owoRhVV=Zn+lq|be+JbN>7LhwX>I<-}roJ!)6$cOuzYQ z-x8E$jS?omGB-CnKl}=I-IXdCZ3U!T;(50{SkXN`5Gjc7=lp?*DkWg%KVw-QQW{E^adkY=8f(Sxkc|Jfo(D$_+9z~=^db=3Y4L?96CI)u%zw*t`v`h%8VGYRjHA zGZ-Ry=PG5mINtAeq{?)UzZ&N;~!-eu8DjRG1f@* zYE#D3jR&}YNdF66H8ib)H1lvvP-qe((-iWh zeHo%B!`0WHyfe>VVSz5 z^5K>+eXaZPu`@2iUzqlu8n@0&lRCI)cV1PMwuy8JmUO1XTR0oOha5Qctk9+ov{fpW zumIBOk~9;@nX)ZEnE5c~nBoPe@#ZumPFdetDtY7Gj>i?5dO}gJAf3=;?-q&+byDl8 z98UDF7?aw;W<^{#mvxD<194p)Z((Ix3pI9M(X8WBvY2ShJ-c$S{m#MXtA))Zi-RL$ zTdiN7!=>nGZJnX~fS7ZmN!_lGWC~>*v+GU>l7!5@jMjvr1K+=%-L@52cNF=*7egy_ z2gsWbIsmylJ{a&}Rgd5A>oSzZc4+NBZbqp($dzVy3;EWf^I%AD|1bIL8S)pPB>fhZJX=M8VE6h0dqg+;GDB^R~9BH10!J z-rsKs!tzi-kU;Sgp1_L6X>g%sIt7y9xBYS3y!Xbl4sD%F(G2^?8^cM)610kIo7_C# zO>JnbGG45@1rPLxS<|tV5>E}cYhjb<&v*0Z|~O` zIy`H_S@6Ks`WX(u{*K(YAI^h#dj^!1Irm8({c+lR$pv0Z49p6ADiV_n~5S^2yt|TX& z9E}>3?cSrs*b9uP8cee~dm{HEa9CDkk27I1#ID@^zvMX^_Q z?&JHiBn!V6-=KsRT-V+KRoyfw!cNiTr`#Wn+&so`AC~ahK>$n@(l1 z6Kle2#zfN%j-9SLSX`iwzcO&|?TqxmWAkL^OJXISv`cmU= zbvHz2R&{4gw~&>bg2^7qrh5yIX8Ky?k?Nd_)abaG{3PMJG&>gOsq7fd{Lz=xT&0@E zeq6o#O{wkeVkE)pm(wo?Lz7H9&q?{Zg+mwZf9!SOgzbSK^&haq0^*gu2=NL(TJ3l9 z_U=>EaD3T2GELLkt1k7iPP5?$-fAtq)FJ#a0fp_(yVsM1E@XKmsB&vG6sjI7qOO>T zc6piuBOEe81v)yKr!;#i4%_7KFsgq^EyRb(%6EEvA1WXTmi+!n*Q1RmRy@DF3`fU} zrnN^D)OT+^a6w8V_GQDtE`}}XRAFY)v;lkT___bPmXX7W-NBK8ohS!<=e+yG>NvkJ zW=hj=&^1>sZK({dYMTu@%^rQ}a)-?e-qwtJY%AXARFJLgVBid65>F)@%~kB9pV@ku zp36`yknV9cPqXiP?xNkqTCYW2SE%8lG4Lt;S5K*Y0~ZTXBH29ACf_?-v+jLb4pqG{ zvv-<%F|URiT1b-eop{>|V>`DoikIU!EQxdA^6|{vtqij)MN49`HQ6@b)XFfr<6!@?;m`4eF|N2%D&4(>;20J^S){TfY;Z+?1#d3XxNy|DqNY&W#h8Eg z>*Koj;tc6%8K)^0yBrHp00(v;GXdvhlbJ|+g`xZslp@nhoMSF5a*^=rWayH#H3WG* zx>@s3=km*y2eU*oiVjB>iWu1ZW$Y4CAoC_8{miWDk+6+1GCEWP(tTSODW?c)>WCC& zs(y`RREzNX)>yIuYwJ|dc#unLu~?y$V($LzU~M($OT!k6o-PWaehE3fMeBP7zp$H|*`-I{nzBtPY$+@QD0@oD->p zC)zC^^HomhL(pAO4Oj*x2n75H;v?|c!|IC4TP;->uy!r#^|%BYgfq(DSiCEJ1dzJH z5;=2Y6_V}g-Rv<6zr71W8MyXn77{OChShp?0ul$o=?uU!$Z)b5m=DNI~%M( z)>jByc+u#2SMUh5DL|Pp)E2z_ffFktZ|ywyWgU$BFZh^&hWAKFl53a$JNtyrIh3E3 z6d`L-3={6)QVUb5T`qaGVy<0zc5n}1NlAc&{V`fP(Sw*i2!`x<4vt7&%r+czWBUHu z_bs4N@6^RmrDJc8T*5)F&(6Q)6hX_pn>mMLQElB5M_}h+bI1Wl#PbbSgzeCuTSnJtvl z?8m)S@KyJ&)7bwwToibPX8Xqw=+e7?nLr*(n7P#mc)G*LyAQZ?Nn4h7f~@SNi5~`PXas?KVDW`O-jNuXKMowcT*?3b z15lym;PN#CUg0B_tnoO5N7s8jNN?4kRSRZbkn=KI1>vJ|;0T6n19bZ<+9m42+UBw* z-hPq}2eO2?XTs~PiaB=QRHpTM;-;Y&-v>5kc5xP8SfAur)|&XO=U;G+02qQEU03$` z_WHEcVrxpYXx8*Q&+?~}N*_^>j9mLVa2IR#-g0yN&CUjNg(7e#S<&$g?7TYQExUxC z%r!S(o0oWuI6$6~a6M!YXwhMnT!Zk52TA)ZERyU65E5f)cANM;m>7Rv0IiqsUvl8O z#`EMeWNy{#>Vm2E-sG7#=kjbA$i<_q{ZVa7D*03|Y&9AA?T%`PYfFHN-c%q_s)eeq#Yb@HYobHr<=h znj*x=ojjCbi}!`0t~a_pYXvTGgGjcbBNvX-@aZ;vJ1%RTf`1*lK{#$(nqrf3pGR0@ z?iYwJyKN{ySDX2p+wTT^ju*`@p5{qEkX(~jp1w8dbnn5z8&cpFLySj%cJ1PIo^%@s z?!Lv4)_i9?;=T?4x|fBb4B_#flhK~0i7)-MG5hst_sv7&*U~aSH-~i=^GM1qUHGyz zh7g#`4FY#KYs=lePJ&TQzDOPdd*lnsf%433&ntbH1Dw)N{Ua z&8eDw6$O~_9h@-qrqMt<+#$%y5NMqqz)pE(?w{y}v5lwKJ-f8d^?J-a@ho%F#QTCX zNS!jD)-3EtZy6uFhj`2S@R)a?ovM+#T82#MkU$_8}UWd`4hW+DS39HoW z&m8jm;D`j*1)v-K_`9NQ%WEqK;<FWZhoBo`sI0<%27&-QyII3|#vh*GJROYwpjZC? zdGgzGD_})<26mJxV7{{wxt84OtbiG`4Q|PtG%axA(1^B5<=)oh>UrP|e zjD8wdJb#BX5S)Lf&~N-#Mza43`VaQcqpk0lbLT6@oQ&Pa529b`XdONHMDxsF{|A~z B6BYmf literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/en-us_image_0000001466582045.png b/en/application-dev/notification/figures/en-us_image_0000001466582045.png new file mode 100644 index 0000000000000000000000000000000000000000..4040452a87bc69ae8fa0eb9b55ca77ac32bdb2d8 GIT binary patch literal 133946 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 z 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

      fEx64s&qV&Ktb?HWdV4194oVwx-bc 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 literal 0 HcmV?d00001 diff --git a/en/application-dev/notification/figures/en-us_image_0000001466462305.png b/en/application-dev/notification/figures/en-us_image_0000001466462305.png new file mode 100644 index 0000000000000000000000000000000000000000..740f4b79a9ee234008cad6cf3616a8f213569476 GIT binary patch literal 418390 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 I?65ZZB5n2n1c@#Itzc3jkk~x!pcSiCfJ0(guYR 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�&nFhL^uH+^xQ(C+*ahQFIIm2!iu4c4o4fDzGr;{ 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

  • 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 z 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%0AfDMO7g^1{%)C4} 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

    cH8_W9P0r6in7w_=mM>25d%l-XN5C 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� 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

    ^brKttJ_!0! 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 KUF%o}1OPh&_^j0c literal 0 HcmV?d00001 diff --git a/en/application-dev/reference/arkui-js/figures/en-us_image1.png b/en/application-dev/reference/arkui-js/figures/en-us_image1.png new file mode 100644 index 0000000000000000000000000000000000000000..971b33355ee838054f24e2a7005c3ef3906a24d1 GIT binary patch literal 11052 zcmeHscT^PLmTr-ggeGSs2Z;@mBnb^oXmXG!lA0h*Xricy#3rW(nk+eqN|daUBxjHe zlCuhmk_TtKJJ-2yy;<+hoxk4uRsB)xtlInRZ||?pIp5lKHGQ=VP-v=Yr~z150DyIU z16Ol^%Jt}9yM9mdug!4nef1sy5dyhbVK`VE05%8<2ZVLi39$W!ij9T$8}R?Sh=@t> zv2bwl2nn#S4b&+B02dbjGy_H`Da0Kg6agi8Mt1Gc_Y^ig`+Il~q3Bazkd zoCN($WmVA3+GV!4Sy><(0Jh~eX!3)s(vF-d!8}iXnc!mi_)>@JxmBcyPYxSV@ZnwG_aDY>d;Cl3A<#L&*pQUW?R6LzFd?$_{Umv-(*2;bSOqf{&@!sCAn>K#J zIIx12^V$c$iiHET^oQ{kaBFm{$F+=WWzBMcmon3n_JSKd1cdLfD-nQKvJfoH(s9YsbUS?Z@-@&?h!d7pnJm zs%(GzJOqugv;6$KvHM}Gys>*TvERmn(c@8h=Cs1L;q{KN{e~NHzuHGnqh3$ic3%73 zye32W&X>O%|G`PYetv+Ah{n_0{s@w}zX<$0Cw~$6|LzK8yX++NA#-eyI~3HC=@6IZASzQ5cadc{3S3qr( z7xpZ{A28H>2E^)kdUO&H>s$gn=3_9WD? z$FX-vHXi5#QQ!cPYO4StAsPZG;mW<>z{Xjfr(nAo`jkN&T_}b^rYKQSbn`ve(Gx|( z?ot4vSW&j9u+Lf8ta|hS2yU-B1c#`e4V*+@LY2W_ZqOkkI#@BW4Bx&m@q9uJn(noh z!hi&&<91;+zyLXH_Q29J4w6!RS*LO&HRJ}8$BP;l`x};+k`gXXw^TezE>L|3z?ly7 z`10(+VVT! zWzYr|DpbQ5XwT5(!{y6bQKo-yfcKt9(uvGj2_hmokL7<~L3#^(FXAH8TIDi{etZLB zZ!Nwd7@xLz)~1@Cd%z(shqA9CKa*^WxZo1g;;+JDa1b*$VYp~y_HD!hN&zZpJlpv1@`711@?F@0AHZ{a+&9TBHO3hXHm_U z3(Wj4(gPsR?vGvyd^z*>Xp$7UC>mEBmbe1KFx>=!#qZ_==HK<{Egd81s9*s8ht+sO z08j=1iXZ^@CV=&SJIFE}DBE!{q?9H}A4SXgbXSlybmHEYSNkyRfbKUeL*HlH>47{g z)6?-v>*Ye$FImp|Nl5aD6KcSi?W&!*PTes45`F?9AGzu=`C@nyt;Z{N?!pR8E{r;$y6t_7=_1Ek zl}-Wy8>gS)n;IKnJ`KEtvR5q|mBE-+*2tDI%BI>nQUX4B4xG`N3jZ7;xZ+MqCw8W( zU_OVeUoj>wEiHh^wgoi#v!`2~hA_M`q7jl8NVMgDd3!+UyR#-k`Kq&d0r}o51Sy@_ zm=ANA#KdKGdI z7l|Fohs}MqZqDn%Ca{GHUb6=XlW|0x&yq%Q`S8Gh0Hlh(YAsR0`! zMh-YeQ~oZ^QnW$wZ{IfMv{dtl$_v57NX_-@aP3Luq1yb-5t^4?eVjR=Vd&w~?Y&k* z=?r*XdcGEIn!=NgFl(N?S8bHLF2%0ts+{Uurs&BZuqiS3JEQ`M<0(Q38QPm-h>q&- zD!oDI4_%#2#q>yagi6_s>ecYj+_CyI;*?Io+ufF@{SV+HABP3Itlas3%`426h01G* zy)55;q@-pv?y{kfSZKG+C?>jB&f-n|3TiT7M`rKoIazDV^#(Z;@mzJ;H;=F1S)gIO z4=Ed&xHbP6=f`(>A+gN5I~l{9?iRlSl6-C=WmQPY7QlP?>Dg66@iBpnE-1_vuPy(D zMq7Ac=R?D03e7ZJZJsY-ioo|DclOZPctrp|i`9 z)hP9_#ZY1YeJ$&r;P~*$o z*vu`HOI;+ddO_jjgrPVtUkS2@@xWbOeG|OpxSapOfof|f({ha~n1}Y(x_}?KbX6($ zl;+r?Rq7iXp?xzZQ;RLe!RX2-llH~mFI1h1eptyEzGcvwGl?oIUQ3bh3)D8Y zq>m~F>!FCfx282>ls~tPwwUxm1BA3YYbQD8;aZ-2+ZUV+Ol0H2-I{TJ!hyt$kA!$f zR+ut-Y!__3cu_*_pWz9jiKGp)8Qe7bf(At<#u78s{^aVTR9Z&q^=VR;N0hZR%pCR^ z6cn`BYm|^EJ|%1Ep`eQL3?~`+m{;l3wQWr=J`^^k%PZ{oNGMm?sp#Hvt}U!}8TV!y zKT1+4&1Ln7wFj#%!R~8~c$*>B9&!q{>vf$THG-{CeV)(mLY4&Yn)UACT8Usi;4?#b zi8YAxF31Ly2B-BD)!iP4>sdS2kP?Zy^XXrS6oe15 zpInHm&%$K;cbZF0f`eP=keG52W*Ty>nFfnoo~$9Khfk%;X_SY{`3FaGYB*yx)Ish= z2K;vXkUlRXt)fH(%Nm{wtb54xK*r*2TbqlCgIR>R(>Q5XS$)c;)sv$+B*Uv2q@-Ws` z6nFkTKbDx0=q|Zwvc%Zgc>EOa#S`O8w^~iA3TBiYRLyw1NC}O}E4c7Xk+0ZhXPQ&iBV+49Kdi)IM)k)#7CQke zofAmnZkZw@uv*cfX6jO>l99Nn^iN}vLQXm>&70*M;lU-m%z6hhb1}wCw`%;0#&)1b zRM6J^R~0A5Lb5TH4%JSwE_=4-esXXXshE;7hFD0U^7~eD!aeOfoY9!B>Iv{oMrVpI z@_nUQHz%ki0$Jf(<<1##`T3r7kHuJ?l&fmmZCejV_5HBu@6sOPaAri(^aaxzbmFe8 z^{$W2z+4wnZMKQs7(`&48$I5uC-PJ6ojyyAn4t6t!`>$}&8@%GOWrKjuWwT98}nwi zPyS5u5id=~p#qRzAz^8jk>=~X#|7U&RA%-T`UxIyLOWjH)n{y-&U5U=owK4KaK!eb3vq+mTqD;d zqb~xtr!d0ifA=ti-h-#j z+2LEeGTM`-<28mE<^lI)vnq=zDm&g=8io|Va*)B}OH$SMd2#^rIGQFxDAHJue=Q;h zqlb1HVLQYYcrwGjY{!VF_Eo4qw*crrc;s(pmj92)3IksJ(B5`U=DCl&)NojVm5x0Vb_(B`!{7@cV6 zMHBR0>wYJ*It{s`8iF74<;^K&OR{yb>N0k?B#pgq7#_(ua*Y3$PWPs`8$XmYAak@A+IlE)EPyY zPbjxS-bALLv&#C~k|Yf>I%FBfDQInim&c0i<6GJI&suIDHsD98h#G2>EJ9a9J5M zav`_vOzND<9cxG)KK})9_%po9-Hax+jngPcb`LgcyOq3 z3lNCFgyM(&vZdRyeHtRA+htA2m4UT!h_A0M;gGus<}F^*kg!Moet{p+q7;o0%Kg#} z^{itxMmy_sP2;CKQxu=Sb@L2)%*^j*?-E8R$rg=T@Lp>1YY*=2lKk9MXf>tDYtzaK zpSc25A_hC&hT5)t{k2NvDD8USGxQ@=`iW;`O_rpe>}Eha`v`v2jN+l0rklH?sr5UV zA3IL&Nt^8T&qh8UdF+3tZ)j1F?wlE7x|8kIYD31xZ0ov7nmyFG_y*;Tm0z!Wo@$Vp zIWtA~W$0-@2Gd$&4Ug1NVmS0R&B0kb*%5*q-z4Cj>!2&o{ zCSL*E=;DoIpRlu|-227hC&EZ3#|ttxDY8XSboBo@Q^s5NS3s`=e`9O5P2l$Bew^uC;%8|aMC;Li!U;90Kc=r>X7@tTBt=D3~44Q*cKnKZULm+-MUH-c26AEGf$<- z!5s5;1e;et*XumT^fk+OhvHH6e1YaQeG%?z$(<3b5;|3|fYe5-r@W%=c}zly8Cu>O zaA*b!oh*?a)7e8?rWx7S*Do-cnLaCV_EDb~UT*#1N!UMZob)QM^qIOEdG4*TRfiIZKa@sFEn z5)NX;?6SU7am?%8?p z4}N@+P(St1&opc&sbp;GGgFG8#4G*pwcXIA@*)C>ZKH=bpG5m2;B^9#{TsgScg=6C zAVi5I@>KfPBxY`PgSYGMifPoQV|b!Jexav14BicWzpY+XtdWSh$r4kH@8PNqPl#I_~B7H5-JPo#{ z)d^=@EH#%@MqhW-_Dy@B5pA<`kt%zogS9P5^9;4s`aEcprI(e|i_#`}9%`-*!j2>` zZI0YjqXJ*_sgFfCf~P=`$m?XqyRR^pRJLn8@@rq{{m=%B=W(EJz01Qi8!Rz2?)#u} z4iBnZZ>YO@0zD0BUaQkk;MVI-^WqQ!hh(m(fyPITT4|W-(+!8-bFH5dS3sk#$cFTQ z$~VodajmE@J~|`A)(II1wSfly0RFo9#>gz;rz@b$zD`n8s6Tpva&m{)s|VA|Y^en< znM>*9Mz_P-__OUcO6&FJ`h$l}J8u=MHh5%vj%%Sj5t3uQ&P9$hP(!2d#cde5G@Y5#g1>6o6&W7&AP zKG=IslJG8QKPF0PL!X2Bg9qj<>RIVR15=tCf#@S_y$1~toZc0R4GJvM(a(qXr5*v$ zegFX3ZT!=1&7Bg^Sd`|!23aGG?RMaV>BF+?yW=_y1E?Yk`{8Y)3f(HvO zh8)|NW8P;JUi4zTlvnAxt@$i(VpA`e=OvbG5GN>+VI*ZBO8B2SyEn)wR_Ms~+ocG} z<3z1vlhN%q6lcTS6jfltM%kW7wNuNeM|Hc&Ng6!bwVGUsl`=0;!w2aJU%8Wb^H$i2 zd9X8_DS9OuMMFY3Vo_k_OhjkB2aJd4QJHX4@e*qNZeBGPUr(bR*=sgaZQRpRoi|`A zYF?Y$3>8IV-cg}}9v&Z7w3%sEp-{I`0_2(rw6$E+SIKzS(;FVYD0RO()n%{LPn1aV zrmig?90kXBM)BMjr^anJBqZ~vFIc%~yBT*Ii!(9;7AvB7!+{^8W5+zX`)m@{S?oZT z8mmorOI1{-?iNpS=EHe@)rN&%n_L;imOm6GAT34Y{2PY!uTlKblv@!dt8dD}`FvC= z549>BN^_%>HLAHQlf4@sIT69*>ix57xnlzAoPRlBujOfS5SEo<5M<@qQxO*W zLMlON#gO7XmZ!SAQSpt)?mBoc*U@}g3p$t^l(wi*cnDVT&QY^mMR8<dJ~MSKK#NP~0E>ggHHJndhEG<|6#%q4mQFnkz) z>-c^hb-lH74}4-aG9szcF48O!#CLYxERdeCs}iG#5XER0Q4xl?=JJ`CC3oEwLYWvL z9$JcohnYR39e45kiFV;hfY>DgiHdJ-DPpou-6*qYO)i>OQk7<%3e31#&-+q{+4pu# zM{$#l3nyJH?9u3pkpcBc)hGpYqF_ zFZ_dkqF?Y*qOs+l*kg5RbL(eJ4We*iBd6rPI!*eqZ^ChD=TgM9x<|ERb;EA9Xm7LnTY!ANW@1kTFycGO@bV0fX^{BiB@VKdx-!K$bKh+(Zn3&ahgDnsY{)yZH=Uf332Y#i(qh9s? zQC>vBIxWgB>)2e%DL6FDAGGWt#gr_!@0mu?^`7-P-om?tjpMCTQ5TaHJEX4a zI{1Pw@IlrUaFkH-7~v5oxIDDbtEqz=u2x`MDb8g&elAb&)l4bKI?o;v|lQnmm%dl7kdSO_IT^_ zM#AR~pjkFf*-+1jw{~Ay3F}w^BUU@zM>pgxp(bLl9{g9{FXo>19K{Gxl^%#5?*-y~ zAO{4<#Y$SjSzmEh(0>xeu~VcLS38*Ve77PWdOX3bH^|hC=)M9_$5eBAh_4F(xls%Seu##pZ>;T)UC91SKynEww@L!pxf3Jb z%og-j%K#`8t9>5iq$ovU-N)`>=GgF2uk0 zXJ5vcUqWplRAgK$(arL69DPk`FQE}QQ5dva<`Amaui>& zUmP($?y=cfk*$jL0wl%1sYtl(zh%1QoYqC${SyHGKh)PBOYc#v{F>+wPZrbe#vmq! zUw`uP;y)ok{Nx-Gt<@=L=$NbeMUE>6l*)DI9MT6g#J#k$d`}v4{+}x9`6q<>v&2n$ zb6)*rCz_r&w~@9{R|oF}ZR;nm_j z*IRqqM7UAx+lKyRktU7) **NOTE**
    +> **NOTE** +> > Do not set styles in attribute fields. + +## Example + +### Example 1 + +```html + +